@zoralabs/coins 2.0.0 → 2.1.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 (69) hide show
  1. package/.turbo/turbo-build.log +106 -110
  2. package/CHANGELOG.md +28 -0
  3. package/README.md +30 -109
  4. package/abis/BaseCoin.json +442 -0
  5. package/abis/CoinTest.json +3 -246
  6. package/abis/FactoryTest.json +5 -137
  7. package/abis/HooksTest.json +0 -26
  8. package/abis/ICoin.json +378 -0
  9. package/abis/ICoinV3.json +378 -0
  10. package/abis/IZoraFactory.json +0 -18
  11. package/abis/LiquidityMigrationTest.json +101 -0
  12. package/abis/MockBadFactory.json +15 -0
  13. package/abis/ZoraFactoryImpl.json +1 -67
  14. package/dist/index.cjs +236 -265
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.js +235 -264
  17. package/dist/index.js.map +1 -1
  18. package/dist/wagmiGenerated.d.ts +389 -493
  19. package/dist/wagmiGenerated.d.ts.map +1 -1
  20. package/package/wagmiGenerated.ts +240 -269
  21. package/package.json +3 -3
  22. package/script/DeployPostDeploymentHooks.s.sol +2 -2
  23. package/script/TestBackingCoinSwap.s.sol +8 -8
  24. package/script/TestV4Swap.s.sol +8 -8
  25. package/script/UpgradeFactoryImpl.s.sol +0 -1
  26. package/src/BaseCoin.sol +109 -6
  27. package/src/ContentCoin.sol +4 -4
  28. package/src/CreatorCoin.sol +5 -5
  29. package/src/ZoraFactoryImpl.sol +10 -93
  30. package/src/deployment/CoinsDeployerBase.sol +10 -27
  31. package/src/hooks/BaseZoraV4CoinHook.sol +5 -5
  32. package/src/hooks/deployment/BuySupplyWithSwapRouterHook.sol +4 -5
  33. package/src/interfaces/ICoin.sol +67 -1
  34. package/src/interfaces/ICreatorCoin.sol +2 -2
  35. package/src/interfaces/IZoraFactory.sol +0 -5
  36. package/src/libs/CoinConfigurationVersions.sol +1 -39
  37. package/src/libs/CoinRewardsV4.sol +2 -2
  38. package/src/libs/CoinSetup.sol +1 -4
  39. package/src/libs/UniV4SwapHelper.sol +1 -1
  40. package/src/libs/UniV4SwapToCurrency.sol +2 -2
  41. package/src/libs/V4Liquidity.sol +1 -1
  42. package/src/version/ContractVersionBase.sol +1 -1
  43. package/test/Coin.t.sol +112 -535
  44. package/test/CoinUniV4.t.sol +5 -5
  45. package/test/DeploymentHooks.t.sol +5 -102
  46. package/test/Factory.t.sol +23 -306
  47. package/test/LiquidityMigration.t.sol +160 -2
  48. package/test/MultiOwnable.t.sol +36 -36
  49. package/test/Upgrades.t.sol +16 -35
  50. package/test/utils/BaseTest.sol +16 -69
  51. package/test/utils/FeeEstimatorHook.sol +3 -3
  52. package/wagmi.config.ts +1 -1
  53. package/abis/BaseCoinV4.json +0 -1840
  54. package/abis/Coin.json +0 -1912
  55. package/abis/DopplerUniswapV3Test.json +0 -800
  56. package/abis/ICoinV4.json +0 -1048
  57. package/abis/Simulate.json +0 -29
  58. package/abis/UniV3BuySell.json +0 -12
  59. package/abis/UniV3Errors.json +0 -32
  60. package/script/Simulate.s.sol +0 -59
  61. package/src/BaseCoinV4.sol +0 -143
  62. package/src/Coin.sol +0 -236
  63. package/src/interfaces/ICoinV4.sol +0 -74
  64. package/src/libs/CoinDopplerUniV3.sol +0 -50
  65. package/src/libs/CoinRewards.sol +0 -201
  66. package/src/libs/CoinSetupV3.sol +0 -50
  67. package/src/libs/UniV3BuySell.sol +0 -231
  68. package/src/libs/UniV3Errors.sol +0 -11
  69. package/test/CoinDopplerUniV3.t.sol +0 -310
@@ -123,191 +123,7 @@ export declare const autoSwapperABI: readonly [{
123
123
  readonly inputs: readonly [];
124
124
  readonly name: "NotSwapper";
125
125
  }];
126
- export declare const buySupplyWithSwapRouterHookABI: readonly [{
127
- readonly type: "constructor";
128
- readonly inputs: readonly [{
129
- readonly name: "_factory";
130
- readonly internalType: "contract IZoraFactory";
131
- readonly type: "address";
132
- }, {
133
- readonly name: "_swapRouter";
134
- readonly internalType: "address";
135
- readonly type: "address";
136
- }, {
137
- readonly name: "_poolManager";
138
- readonly internalType: "address";
139
- readonly type: "address";
140
- }];
141
- readonly stateMutability: "nonpayable";
142
- }, {
143
- readonly type: "function";
144
- readonly inputs: readonly [{
145
- readonly name: "sender";
146
- readonly internalType: "address";
147
- readonly type: "address";
148
- }, {
149
- readonly name: "coin";
150
- readonly internalType: "contract ICoin";
151
- readonly type: "address";
152
- }, {
153
- readonly name: "hookData";
154
- readonly internalType: "bytes";
155
- readonly type: "bytes";
156
- }];
157
- readonly name: "afterCoinDeploy";
158
- readonly outputs: readonly [{
159
- readonly name: "";
160
- readonly internalType: "bytes";
161
- readonly type: "bytes";
162
- }];
163
- readonly stateMutability: "payable";
164
- }, {
165
- readonly type: "function";
166
- readonly inputs: readonly [];
167
- readonly name: "factory";
168
- readonly outputs: readonly [{
169
- readonly name: "";
170
- readonly internalType: "contract IZoraFactory";
171
- readonly type: "address";
172
- }];
173
- readonly stateMutability: "view";
174
- }, {
175
- readonly type: "function";
176
- readonly inputs: readonly [{
177
- readonly name: "interfaceId";
178
- readonly internalType: "bytes4";
179
- readonly type: "bytes4";
180
- }];
181
- readonly name: "supportsInterface";
182
- readonly outputs: readonly [{
183
- readonly name: "";
184
- readonly internalType: "bool";
185
- readonly type: "bool";
186
- }];
187
- readonly stateMutability: "pure";
188
- }, {
189
- readonly type: "function";
190
- readonly inputs: readonly [{
191
- readonly name: "data";
192
- readonly internalType: "bytes";
193
- readonly type: "bytes";
194
- }];
195
- readonly name: "unlockCallback";
196
- readonly outputs: readonly [{
197
- readonly name: "";
198
- readonly internalType: "bytes";
199
- readonly type: "bytes";
200
- }];
201
- readonly stateMutability: "nonpayable";
202
- }, {
203
- readonly type: "error";
204
- readonly inputs: readonly [{
205
- readonly name: "target";
206
- readonly internalType: "address";
207
- readonly type: "address";
208
- }];
209
- readonly name: "AddressEmptyCode";
210
- }, {
211
- readonly type: "error";
212
- readonly inputs: readonly [{
213
- readonly name: "account";
214
- readonly internalType: "address";
215
- readonly type: "address";
216
- }];
217
- readonly name: "AddressInsufficientBalance";
218
- }, {
219
- readonly type: "error";
220
- readonly inputs: readonly [];
221
- readonly name: "AddressZero";
222
- }, {
223
- readonly type: "error";
224
- readonly inputs: readonly [{
225
- readonly name: "balance";
226
- readonly internalType: "uint256";
227
- readonly type: "uint256";
228
- }];
229
- readonly name: "CoinBalanceNot0";
230
- }, {
231
- readonly type: "error";
232
- readonly inputs: readonly [{
233
- readonly name: "balance";
234
- readonly internalType: "uint256";
235
- readonly type: "uint256";
236
- }];
237
- readonly name: "CurrencyBalanceNot0";
238
- }, {
239
- readonly type: "error";
240
- readonly inputs: readonly [];
241
- readonly name: "Erc20NotReceived";
242
- }, {
243
- readonly type: "error";
244
- readonly inputs: readonly [];
245
- readonly name: "FailedInnerCall";
246
- }, {
247
- readonly type: "error";
248
- readonly inputs: readonly [];
249
- readonly name: "HookNotImplemented";
250
- }, {
251
- readonly type: "error";
252
- readonly inputs: readonly [];
253
- readonly name: "InvalidSwapRouterCall";
254
- }, {
255
- readonly type: "error";
256
- readonly inputs: readonly [];
257
- readonly name: "NotFactory";
258
- }, {
259
- readonly type: "error";
260
- readonly inputs: readonly [];
261
- readonly name: "OnlyPoolManager";
262
- }, {
263
- readonly type: "error";
264
- readonly inputs: readonly [{
265
- readonly name: "token";
266
- readonly internalType: "address";
267
- readonly type: "address";
268
- }];
269
- readonly name: "SafeERC20FailedOperation";
270
- }, {
271
- readonly type: "error";
272
- readonly inputs: readonly [{
273
- readonly name: "error";
274
- readonly internalType: "bytes";
275
- readonly type: "bytes";
276
- }];
277
- readonly name: "SwapReverted";
278
- }];
279
- export declare const coinABI: readonly [{
280
- readonly type: "constructor";
281
- readonly inputs: readonly [{
282
- readonly name: "protocolRewardRecipient_";
283
- readonly internalType: "address";
284
- readonly type: "address";
285
- }, {
286
- readonly name: "protocolRewards_";
287
- readonly internalType: "address";
288
- readonly type: "address";
289
- }, {
290
- readonly name: "weth_";
291
- readonly internalType: "address";
292
- readonly type: "address";
293
- }, {
294
- readonly name: "v3Factory_";
295
- readonly internalType: "address";
296
- readonly type: "address";
297
- }, {
298
- readonly name: "swapRouter_";
299
- readonly internalType: "address";
300
- readonly type: "address";
301
- }, {
302
- readonly name: "airlock_";
303
- readonly internalType: "address";
304
- readonly type: "address";
305
- }];
306
- readonly stateMutability: "nonpayable";
307
- }, {
308
- readonly type: "receive";
309
- readonly stateMutability: "payable";
310
- }, {
126
+ export declare const baseCoinABI: readonly [{
311
127
  readonly type: "function";
312
128
  readonly inputs: readonly [];
313
129
  readonly name: "DOMAIN_SEPARATOR";
@@ -317,16 +133,6 @@ export declare const coinABI: readonly [{
317
133
  readonly type: "bytes32";
318
134
  }];
319
135
  readonly stateMutability: "view";
320
- }, {
321
- readonly type: "function";
322
- readonly inputs: readonly [];
323
- readonly name: "WETH";
324
- readonly outputs: readonly [{
325
- readonly name: "";
326
- readonly internalType: "address";
327
- readonly type: "address";
328
- }];
329
- readonly stateMutability: "view";
330
136
  }, {
331
137
  readonly type: "function";
332
138
  readonly inputs: readonly [{
@@ -417,50 +223,6 @@ export declare const coinABI: readonly [{
417
223
  readonly name: "burn";
418
224
  readonly outputs: readonly [];
419
225
  readonly stateMutability: "nonpayable";
420
- }, {
421
- readonly type: "function";
422
- readonly inputs: readonly [{
423
- readonly name: "recipient";
424
- readonly internalType: "address";
425
- readonly type: "address";
426
- }, {
427
- readonly name: "orderSize";
428
- readonly internalType: "uint256";
429
- readonly type: "uint256";
430
- }, {
431
- readonly name: "minAmountOut";
432
- readonly internalType: "uint256";
433
- readonly type: "uint256";
434
- }, {
435
- readonly name: "sqrtPriceLimitX96";
436
- readonly internalType: "uint160";
437
- readonly type: "uint160";
438
- }, {
439
- readonly name: "tradeReferrer";
440
- readonly internalType: "address";
441
- readonly type: "address";
442
- }];
443
- readonly name: "buy";
444
- readonly outputs: readonly [{
445
- readonly name: "";
446
- readonly internalType: "uint256";
447
- readonly type: "uint256";
448
- }, {
449
- readonly name: "";
450
- readonly internalType: "uint256";
451
- readonly type: "uint256";
452
- }];
453
- readonly stateMutability: "payable";
454
- }, {
455
- readonly type: "function";
456
- readonly inputs: readonly [{
457
- readonly name: "pushEthRewards";
458
- readonly internalType: "bool";
459
- readonly type: "bool";
460
- }];
461
- readonly name: "claimSecondaryRewards";
462
- readonly outputs: readonly [];
463
- readonly stateMutability: "nonpayable";
464
226
  }, {
465
227
  readonly type: "function";
466
228
  readonly inputs: readonly [];
@@ -545,6 +307,50 @@ export declare const coinABI: readonly [{
545
307
  readonly type: "uint256[]";
546
308
  }];
547
309
  readonly stateMutability: "view";
310
+ }, {
311
+ readonly type: "function";
312
+ readonly inputs: readonly [{
313
+ readonly name: "coinVersionLookup";
314
+ readonly internalType: "contract IDeployedCoinVersionLookup";
315
+ readonly type: "address";
316
+ }];
317
+ readonly name: "getPayoutSwapPath";
318
+ readonly outputs: readonly [{
319
+ readonly name: "payoutSwapPath";
320
+ readonly internalType: "struct IHasSwapPath.PayoutSwapPath";
321
+ readonly type: "tuple";
322
+ readonly components: readonly [{
323
+ readonly name: "path";
324
+ readonly internalType: "struct PathKey[]";
325
+ readonly type: "tuple[]";
326
+ readonly components: readonly [{
327
+ readonly name: "intermediateCurrency";
328
+ readonly internalType: "Currency";
329
+ readonly type: "address";
330
+ }, {
331
+ readonly name: "fee";
332
+ readonly internalType: "uint24";
333
+ readonly type: "uint24";
334
+ }, {
335
+ readonly name: "tickSpacing";
336
+ readonly internalType: "int24";
337
+ readonly type: "int24";
338
+ }, {
339
+ readonly name: "hooks";
340
+ readonly internalType: "contract IHooks";
341
+ readonly type: "address";
342
+ }, {
343
+ readonly name: "hookData";
344
+ readonly internalType: "bytes";
345
+ readonly type: "bytes";
346
+ }];
347
+ }, {
348
+ readonly name: "currencyIn";
349
+ readonly internalType: "Currency";
350
+ readonly type: "address";
351
+ }];
352
+ }];
353
+ readonly stateMutability: "view";
548
354
  }, {
549
355
  readonly type: "function";
550
356
  readonly inputs: readonly [];
@@ -588,6 +394,47 @@ export declare const coinABI: readonly [{
588
394
  }];
589
395
  }];
590
396
  readonly stateMutability: "view";
397
+ }, {
398
+ readonly type: "function";
399
+ readonly inputs: readonly [];
400
+ readonly name: "getPoolKey";
401
+ readonly outputs: readonly [{
402
+ readonly name: "";
403
+ readonly internalType: "struct PoolKey";
404
+ readonly type: "tuple";
405
+ readonly components: readonly [{
406
+ readonly name: "currency0";
407
+ readonly internalType: "Currency";
408
+ readonly type: "address";
409
+ }, {
410
+ readonly name: "currency1";
411
+ readonly internalType: "Currency";
412
+ readonly type: "address";
413
+ }, {
414
+ readonly name: "fee";
415
+ readonly internalType: "uint24";
416
+ readonly type: "uint24";
417
+ }, {
418
+ readonly name: "tickSpacing";
419
+ readonly internalType: "int24";
420
+ readonly type: "int24";
421
+ }, {
422
+ readonly name: "hooks";
423
+ readonly internalType: "contract IHooks";
424
+ readonly type: "address";
425
+ }];
426
+ }];
427
+ readonly stateMutability: "view";
428
+ }, {
429
+ readonly type: "function";
430
+ readonly inputs: readonly [];
431
+ readonly name: "hooks";
432
+ readonly outputs: readonly [{
433
+ readonly name: "";
434
+ readonly internalType: "contract IHooks";
435
+ readonly type: "address";
436
+ }];
437
+ readonly stateMutability: "view";
591
438
  }, {
592
439
  readonly type: "function";
593
440
  readonly inputs: readonly [{
@@ -619,9 +466,34 @@ export declare const coinABI: readonly [{
619
466
  readonly internalType: "address";
620
467
  readonly type: "address";
621
468
  }, {
622
- readonly name: "poolAddress_";
623
- readonly internalType: "address";
624
- readonly type: "address";
469
+ readonly name: "poolKey_";
470
+ readonly internalType: "struct PoolKey";
471
+ readonly type: "tuple";
472
+ readonly components: readonly [{
473
+ readonly name: "currency0";
474
+ readonly internalType: "Currency";
475
+ readonly type: "address";
476
+ }, {
477
+ readonly name: "currency1";
478
+ readonly internalType: "Currency";
479
+ readonly type: "address";
480
+ }, {
481
+ readonly name: "fee";
482
+ readonly internalType: "uint24";
483
+ readonly type: "uint24";
484
+ }, {
485
+ readonly name: "tickSpacing";
486
+ readonly internalType: "int24";
487
+ readonly type: "int24";
488
+ }, {
489
+ readonly name: "hooks";
490
+ readonly internalType: "contract IHooks";
491
+ readonly type: "address";
492
+ }];
493
+ }, {
494
+ readonly name: "sqrtPriceX96";
495
+ readonly internalType: "uint160";
496
+ readonly type: "uint160";
625
497
  }, {
626
498
  readonly name: "poolConfiguration_";
627
499
  readonly internalType: "struct PoolConfiguration";
@@ -659,23 +531,6 @@ export declare const coinABI: readonly [{
659
531
  readonly internalType: "uint256[]";
660
532
  readonly type: "uint256[]";
661
533
  }];
662
- }, {
663
- readonly name: "positions_";
664
- readonly internalType: "struct LpPosition[]";
665
- readonly type: "tuple[]";
666
- readonly components: readonly [{
667
- readonly name: "tickLower";
668
- readonly internalType: "int24";
669
- readonly type: "int24";
670
- }, {
671
- readonly name: "tickUpper";
672
- readonly internalType: "int24";
673
- readonly type: "int24";
674
- }, {
675
- readonly name: "liquidity";
676
- readonly internalType: "uint128";
677
- readonly type: "uint128";
678
- }];
679
534
  }];
680
535
  readonly name: "initialize";
681
536
  readonly outputs: readonly [];
@@ -696,24 +551,43 @@ export declare const coinABI: readonly [{
696
551
  readonly stateMutability: "view";
697
552
  }, {
698
553
  readonly type: "function";
699
- readonly inputs: readonly [];
700
- readonly name: "market";
701
- readonly outputs: readonly [{
702
- readonly name: "";
554
+ readonly inputs: readonly [{
555
+ readonly name: "newHook";
556
+ readonly internalType: "address";
557
+ readonly type: "address";
558
+ }, {
559
+ readonly name: "additionalData";
703
560
  readonly internalType: "bytes";
704
561
  readonly type: "bytes";
705
562
  }];
706
- readonly stateMutability: "view";
707
- }, {
708
- readonly type: "function";
709
- readonly inputs: readonly [];
710
- readonly name: "marketVersion";
563
+ readonly name: "migrateLiquidity";
711
564
  readonly outputs: readonly [{
712
- readonly name: "";
713
- readonly internalType: "uint8";
714
- readonly type: "uint8";
565
+ readonly name: "newPoolKey";
566
+ readonly internalType: "struct PoolKey";
567
+ readonly type: "tuple";
568
+ readonly components: readonly [{
569
+ readonly name: "currency0";
570
+ readonly internalType: "Currency";
571
+ readonly type: "address";
572
+ }, {
573
+ readonly name: "currency1";
574
+ readonly internalType: "Currency";
575
+ readonly type: "address";
576
+ }, {
577
+ readonly name: "fee";
578
+ readonly internalType: "uint24";
579
+ readonly type: "uint24";
580
+ }, {
581
+ readonly name: "tickSpacing";
582
+ readonly internalType: "int24";
583
+ readonly type: "int24";
584
+ }, {
585
+ readonly name: "hooks";
586
+ readonly internalType: "contract IHooks";
587
+ readonly type: "address";
588
+ }];
715
589
  }];
716
- readonly stateMutability: "view";
590
+ readonly stateMutability: "nonpayable";
717
591
  }, {
718
592
  readonly type: "function";
719
593
  readonly inputs: readonly [];
@@ -805,57 +679,13 @@ export declare const coinABI: readonly [{
805
679
  }, {
806
680
  readonly type: "function";
807
681
  readonly inputs: readonly [];
808
- readonly name: "poolAddress";
682
+ readonly name: "poolManager";
809
683
  readonly outputs: readonly [{
810
684
  readonly name: "";
811
- readonly internalType: "address";
685
+ readonly internalType: "contract IPoolManager";
812
686
  readonly type: "address";
813
687
  }];
814
688
  readonly stateMutability: "view";
815
- }, {
816
- readonly type: "function";
817
- readonly inputs: readonly [];
818
- readonly name: "poolConfiguration";
819
- readonly outputs: readonly [{
820
- readonly name: "version";
821
- readonly internalType: "uint8";
822
- readonly type: "uint8";
823
- }, {
824
- readonly name: "numPositions";
825
- readonly internalType: "uint16";
826
- readonly type: "uint16";
827
- }, {
828
- readonly name: "fee";
829
- readonly internalType: "uint24";
830
- readonly type: "uint24";
831
- }, {
832
- readonly name: "tickSpacing";
833
- readonly internalType: "int24";
834
- readonly type: "int24";
835
- }];
836
- readonly stateMutability: "view";
837
- }, {
838
- readonly type: "function";
839
- readonly inputs: readonly [{
840
- readonly name: "";
841
- readonly internalType: "uint256";
842
- readonly type: "uint256";
843
- }];
844
- readonly name: "positions";
845
- readonly outputs: readonly [{
846
- readonly name: "tickLower";
847
- readonly internalType: "int24";
848
- readonly type: "int24";
849
- }, {
850
- readonly name: "tickUpper";
851
- readonly internalType: "int24";
852
- readonly type: "int24";
853
- }, {
854
- readonly name: "liquidity";
855
- readonly internalType: "uint128";
856
- readonly type: "uint128";
857
- }];
858
- readonly stateMutability: "view";
859
689
  }, {
860
690
  readonly type: "function";
861
691
  readonly inputs: readonly [];
@@ -902,40 +732,6 @@ export declare const coinABI: readonly [{
902
732
  readonly name: "revokeOwnership";
903
733
  readonly outputs: readonly [];
904
734
  readonly stateMutability: "nonpayable";
905
- }, {
906
- readonly type: "function";
907
- readonly inputs: readonly [{
908
- readonly name: "recipient";
909
- readonly internalType: "address";
910
- readonly type: "address";
911
- }, {
912
- readonly name: "orderSize";
913
- readonly internalType: "uint256";
914
- readonly type: "uint256";
915
- }, {
916
- readonly name: "minAmountOut";
917
- readonly internalType: "uint256";
918
- readonly type: "uint256";
919
- }, {
920
- readonly name: "sqrtPriceLimitX96";
921
- readonly internalType: "uint160";
922
- readonly type: "uint160";
923
- }, {
924
- readonly name: "tradeReferrer";
925
- readonly internalType: "address";
926
- readonly type: "address";
927
- }];
928
- readonly name: "sell";
929
- readonly outputs: readonly [{
930
- readonly name: "";
931
- readonly internalType: "uint256";
932
- readonly type: "uint256";
933
- }, {
934
- readonly name: "";
935
- readonly internalType: "uint256";
936
- readonly type: "uint256";
937
- }];
938
- readonly stateMutability: "nonpayable";
939
735
  }, {
940
736
  readonly type: "function";
941
737
  readonly inputs: readonly [{
@@ -984,16 +780,6 @@ export declare const coinABI: readonly [{
984
780
  readonly type: "bool";
985
781
  }];
986
782
  readonly stateMutability: "view";
987
- }, {
988
- readonly type: "function";
989
- readonly inputs: readonly [];
990
- readonly name: "swapRouter";
991
- readonly outputs: readonly [{
992
- readonly name: "";
993
- readonly internalType: "address";
994
- readonly type: "address";
995
- }];
996
- readonly stateMutability: "view";
997
783
  }, {
998
784
  readonly type: "function";
999
785
  readonly inputs: readonly [];
@@ -1064,34 +850,6 @@ export declare const coinABI: readonly [{
1064
850
  readonly type: "bool";
1065
851
  }];
1066
852
  readonly stateMutability: "nonpayable";
1067
- }, {
1068
- readonly type: "function";
1069
- readonly inputs: readonly [{
1070
- readonly name: "amount0Owed";
1071
- readonly internalType: "uint256";
1072
- readonly type: "uint256";
1073
- }, {
1074
- readonly name: "amount1Owed";
1075
- readonly internalType: "uint256";
1076
- readonly type: "uint256";
1077
- }, {
1078
- readonly name: "";
1079
- readonly internalType: "bytes";
1080
- readonly type: "bytes";
1081
- }];
1082
- readonly name: "uniswapV3MintCallback";
1083
- readonly outputs: readonly [];
1084
- readonly stateMutability: "nonpayable";
1085
- }, {
1086
- readonly type: "function";
1087
- readonly inputs: readonly [];
1088
- readonly name: "v3Factory";
1089
- readonly outputs: readonly [{
1090
- readonly name: "";
1091
- readonly internalType: "address";
1092
- readonly type: "address";
1093
- }];
1094
- readonly stateMutability: "view";
1095
853
  }, {
1096
854
  readonly type: "event";
1097
855
  readonly anonymous: false;
@@ -1369,32 +1127,99 @@ export declare const coinABI: readonly [{
1369
1127
  readonly type: "string";
1370
1128
  readonly indexed: false;
1371
1129
  }, {
1372
- readonly name: "name";
1373
- readonly internalType: "string";
1374
- readonly type: "string";
1375
- readonly indexed: false;
1376
- }];
1377
- readonly name: "ContractMetadataUpdated";
1378
- }, {
1379
- readonly type: "event";
1380
- readonly anonymous: false;
1381
- readonly inputs: readonly [];
1382
- readonly name: "ContractURIUpdated";
1383
- }, {
1384
- readonly type: "event";
1385
- readonly anonymous: false;
1386
- readonly inputs: readonly [];
1387
- readonly name: "EIP712DomainChanged";
1388
- }, {
1389
- readonly type: "event";
1390
- readonly anonymous: false;
1391
- readonly inputs: readonly [{
1392
- readonly name: "version";
1393
- readonly internalType: "uint64";
1394
- readonly type: "uint64";
1130
+ readonly name: "name";
1131
+ readonly internalType: "string";
1132
+ readonly type: "string";
1133
+ readonly indexed: false;
1134
+ }];
1135
+ readonly name: "ContractMetadataUpdated";
1136
+ }, {
1137
+ readonly type: "event";
1138
+ readonly anonymous: false;
1139
+ readonly inputs: readonly [];
1140
+ readonly name: "ContractURIUpdated";
1141
+ }, {
1142
+ readonly type: "event";
1143
+ readonly anonymous: false;
1144
+ readonly inputs: readonly [];
1145
+ readonly name: "EIP712DomainChanged";
1146
+ }, {
1147
+ readonly type: "event";
1148
+ readonly anonymous: false;
1149
+ readonly inputs: readonly [{
1150
+ readonly name: "version";
1151
+ readonly internalType: "uint64";
1152
+ readonly type: "uint64";
1153
+ readonly indexed: false;
1154
+ }];
1155
+ readonly name: "Initialized";
1156
+ }, {
1157
+ readonly type: "event";
1158
+ readonly anonymous: false;
1159
+ readonly inputs: readonly [{
1160
+ readonly name: "fromPoolKey";
1161
+ readonly internalType: "struct PoolKey";
1162
+ readonly type: "tuple";
1163
+ readonly components: readonly [{
1164
+ readonly name: "currency0";
1165
+ readonly internalType: "Currency";
1166
+ readonly type: "address";
1167
+ }, {
1168
+ readonly name: "currency1";
1169
+ readonly internalType: "Currency";
1170
+ readonly type: "address";
1171
+ }, {
1172
+ readonly name: "fee";
1173
+ readonly internalType: "uint24";
1174
+ readonly type: "uint24";
1175
+ }, {
1176
+ readonly name: "tickSpacing";
1177
+ readonly internalType: "int24";
1178
+ readonly type: "int24";
1179
+ }, {
1180
+ readonly name: "hooks";
1181
+ readonly internalType: "contract IHooks";
1182
+ readonly type: "address";
1183
+ }];
1184
+ readonly indexed: false;
1185
+ }, {
1186
+ readonly name: "fromPoolKeyHash";
1187
+ readonly internalType: "bytes32";
1188
+ readonly type: "bytes32";
1189
+ readonly indexed: false;
1190
+ }, {
1191
+ readonly name: "toPoolKey";
1192
+ readonly internalType: "struct PoolKey";
1193
+ readonly type: "tuple";
1194
+ readonly components: readonly [{
1195
+ readonly name: "currency0";
1196
+ readonly internalType: "Currency";
1197
+ readonly type: "address";
1198
+ }, {
1199
+ readonly name: "currency1";
1200
+ readonly internalType: "Currency";
1201
+ readonly type: "address";
1202
+ }, {
1203
+ readonly name: "fee";
1204
+ readonly internalType: "uint24";
1205
+ readonly type: "uint24";
1206
+ }, {
1207
+ readonly name: "tickSpacing";
1208
+ readonly internalType: "int24";
1209
+ readonly type: "int24";
1210
+ }, {
1211
+ readonly name: "hooks";
1212
+ readonly internalType: "contract IHooks";
1213
+ readonly type: "address";
1214
+ }];
1215
+ readonly indexed: false;
1216
+ }, {
1217
+ readonly name: "toPoolKeyHash";
1218
+ readonly internalType: "bytes32";
1219
+ readonly type: "bytes32";
1395
1220
  readonly indexed: false;
1396
1221
  }];
1397
- readonly name: "Initialized";
1222
+ readonly name: "LiquidityMigrated";
1398
1223
  }, {
1399
1224
  readonly type: "event";
1400
1225
  readonly anonymous: false;
@@ -1455,26 +1280,6 @@ export declare const coinABI: readonly [{
1455
1280
  readonly indexed: false;
1456
1281
  }];
1457
1282
  readonly name: "Transfer";
1458
- }, {
1459
- readonly type: "error";
1460
- readonly inputs: readonly [{
1461
- readonly name: "target";
1462
- readonly internalType: "address";
1463
- readonly type: "address";
1464
- }];
1465
- readonly name: "AddressEmptyCode";
1466
- }, {
1467
- readonly type: "error";
1468
- readonly inputs: readonly [{
1469
- readonly name: "account";
1470
- readonly internalType: "address";
1471
- readonly type: "address";
1472
- }];
1473
- readonly name: "AddressInsufficientBalance";
1474
- }, {
1475
- readonly type: "error";
1476
- readonly inputs: readonly [];
1477
- readonly name: "AddressZero";
1478
1283
  }, {
1479
1284
  readonly type: "error";
1480
1285
  readonly inputs: readonly [];
@@ -1615,10 +1420,6 @@ export declare const coinABI: readonly [{
1615
1420
  readonly type: "error";
1616
1421
  readonly inputs: readonly [];
1617
1422
  readonly name: "EthTransferInvalid";
1618
- }, {
1619
- readonly type: "error";
1620
- readonly inputs: readonly [];
1621
- readonly name: "FailedInnerCall";
1622
1423
  }, {
1623
1424
  readonly type: "error";
1624
1425
  readonly inputs: readonly [];
@@ -1749,20 +1550,165 @@ export declare const coinABI: readonly [{
1749
1550
  readonly name: "ReentrancyGuardReentrantCall";
1750
1551
  }, {
1751
1552
  readonly type: "error";
1553
+ readonly inputs: readonly [];
1554
+ readonly name: "SlippageBoundsExceeded";
1555
+ }, {
1556
+ readonly type: "error";
1557
+ readonly inputs: readonly [];
1558
+ readonly name: "UseRevokeOwnershipToRemoveSelf";
1559
+ }];
1560
+ export declare const buySupplyWithSwapRouterHookABI: readonly [{
1561
+ readonly type: "constructor";
1752
1562
  readonly inputs: readonly [{
1753
- readonly name: "token";
1563
+ readonly name: "_factory";
1564
+ readonly internalType: "contract IZoraFactory";
1565
+ readonly type: "address";
1566
+ }, {
1567
+ readonly name: "_swapRouter";
1568
+ readonly internalType: "address";
1569
+ readonly type: "address";
1570
+ }, {
1571
+ readonly name: "_poolManager";
1754
1572
  readonly internalType: "address";
1755
1573
  readonly type: "address";
1756
1574
  }];
1757
- readonly name: "SafeERC20FailedOperation";
1575
+ readonly stateMutability: "nonpayable";
1576
+ }, {
1577
+ readonly type: "function";
1578
+ readonly inputs: readonly [{
1579
+ readonly name: "sender";
1580
+ readonly internalType: "address";
1581
+ readonly type: "address";
1582
+ }, {
1583
+ readonly name: "coin";
1584
+ readonly internalType: "contract ICoin";
1585
+ readonly type: "address";
1586
+ }, {
1587
+ readonly name: "hookData";
1588
+ readonly internalType: "bytes";
1589
+ readonly type: "bytes";
1590
+ }];
1591
+ readonly name: "afterCoinDeploy";
1592
+ readonly outputs: readonly [{
1593
+ readonly name: "";
1594
+ readonly internalType: "bytes";
1595
+ readonly type: "bytes";
1596
+ }];
1597
+ readonly stateMutability: "payable";
1598
+ }, {
1599
+ readonly type: "function";
1600
+ readonly inputs: readonly [];
1601
+ readonly name: "factory";
1602
+ readonly outputs: readonly [{
1603
+ readonly name: "";
1604
+ readonly internalType: "contract IZoraFactory";
1605
+ readonly type: "address";
1606
+ }];
1607
+ readonly stateMutability: "view";
1608
+ }, {
1609
+ readonly type: "function";
1610
+ readonly inputs: readonly [{
1611
+ readonly name: "interfaceId";
1612
+ readonly internalType: "bytes4";
1613
+ readonly type: "bytes4";
1614
+ }];
1615
+ readonly name: "supportsInterface";
1616
+ readonly outputs: readonly [{
1617
+ readonly name: "";
1618
+ readonly internalType: "bool";
1619
+ readonly type: "bool";
1620
+ }];
1621
+ readonly stateMutability: "pure";
1622
+ }, {
1623
+ readonly type: "function";
1624
+ readonly inputs: readonly [{
1625
+ readonly name: "data";
1626
+ readonly internalType: "bytes";
1627
+ readonly type: "bytes";
1628
+ }];
1629
+ readonly name: "unlockCallback";
1630
+ readonly outputs: readonly [{
1631
+ readonly name: "";
1632
+ readonly internalType: "bytes";
1633
+ readonly type: "bytes";
1634
+ }];
1635
+ readonly stateMutability: "nonpayable";
1636
+ }, {
1637
+ readonly type: "error";
1638
+ readonly inputs: readonly [{
1639
+ readonly name: "target";
1640
+ readonly internalType: "address";
1641
+ readonly type: "address";
1642
+ }];
1643
+ readonly name: "AddressEmptyCode";
1644
+ }, {
1645
+ readonly type: "error";
1646
+ readonly inputs: readonly [{
1647
+ readonly name: "account";
1648
+ readonly internalType: "address";
1649
+ readonly type: "address";
1650
+ }];
1651
+ readonly name: "AddressInsufficientBalance";
1758
1652
  }, {
1759
1653
  readonly type: "error";
1760
1654
  readonly inputs: readonly [];
1761
- readonly name: "SlippageBoundsExceeded";
1655
+ readonly name: "AddressZero";
1656
+ }, {
1657
+ readonly type: "error";
1658
+ readonly inputs: readonly [{
1659
+ readonly name: "balance";
1660
+ readonly internalType: "uint256";
1661
+ readonly type: "uint256";
1662
+ }];
1663
+ readonly name: "CoinBalanceNot0";
1664
+ }, {
1665
+ readonly type: "error";
1666
+ readonly inputs: readonly [{
1667
+ readonly name: "balance";
1668
+ readonly internalType: "uint256";
1669
+ readonly type: "uint256";
1670
+ }];
1671
+ readonly name: "CurrencyBalanceNot0";
1762
1672
  }, {
1763
1673
  readonly type: "error";
1764
1674
  readonly inputs: readonly [];
1765
- readonly name: "UseRevokeOwnershipToRemoveSelf";
1675
+ readonly name: "Erc20NotReceived";
1676
+ }, {
1677
+ readonly type: "error";
1678
+ readonly inputs: readonly [];
1679
+ readonly name: "FailedInnerCall";
1680
+ }, {
1681
+ readonly type: "error";
1682
+ readonly inputs: readonly [];
1683
+ readonly name: "HookNotImplemented";
1684
+ }, {
1685
+ readonly type: "error";
1686
+ readonly inputs: readonly [];
1687
+ readonly name: "InvalidSwapRouterCall";
1688
+ }, {
1689
+ readonly type: "error";
1690
+ readonly inputs: readonly [];
1691
+ readonly name: "NotFactory";
1692
+ }, {
1693
+ readonly type: "error";
1694
+ readonly inputs: readonly [];
1695
+ readonly name: "OnlyPoolManager";
1696
+ }, {
1697
+ readonly type: "error";
1698
+ readonly inputs: readonly [{
1699
+ readonly name: "token";
1700
+ readonly internalType: "address";
1701
+ readonly type: "address";
1702
+ }];
1703
+ readonly name: "SafeERC20FailedOperation";
1704
+ }, {
1705
+ readonly type: "error";
1706
+ readonly inputs: readonly [{
1707
+ readonly name: "error";
1708
+ readonly internalType: "bytes";
1709
+ readonly type: "bytes";
1710
+ }];
1711
+ readonly name: "SwapReverted";
1766
1712
  }];
1767
1713
  export declare const contentCoinABI: readonly [{
1768
1714
  readonly type: "constructor";
@@ -5731,10 +5677,6 @@ export declare const iUniversalRouterABI: readonly [{
5731
5677
  export declare const zoraFactoryImplABI: readonly [{
5732
5678
  readonly type: "constructor";
5733
5679
  readonly inputs: readonly [{
5734
- readonly name: "_coinImpl";
5735
- readonly internalType: "address";
5736
- readonly type: "address";
5737
- }, {
5738
5680
  readonly name: "_coinV4Impl";
5739
5681
  readonly internalType: "address";
5740
5682
  readonly type: "address";
@@ -5802,16 +5744,6 @@ export declare const zoraFactoryImplABI: readonly [{
5802
5744
  readonly type: "address";
5803
5745
  }];
5804
5746
  readonly stateMutability: "view";
5805
- }, {
5806
- readonly type: "function";
5807
- readonly inputs: readonly [];
5808
- readonly name: "coinImpl";
5809
- readonly outputs: readonly [{
5810
- readonly name: "";
5811
- readonly internalType: "address";
5812
- readonly type: "address";
5813
- }];
5814
- readonly stateMutability: "view";
5815
5747
  }, {
5816
5748
  readonly type: "function";
5817
5749
  readonly inputs: readonly [];
@@ -6007,7 +5939,7 @@ export declare const zoraFactoryImplABI: readonly [{
6007
5939
  readonly internalType: "address";
6008
5940
  readonly type: "address";
6009
5941
  }, {
6010
- readonly name: "orderSize";
5942
+ readonly name: "";
6011
5943
  readonly internalType: "uint256";
6012
5944
  readonly type: "uint256";
6013
5945
  }];
@@ -6483,22 +6415,10 @@ export declare const zoraFactoryImplABI: readonly [{
6483
6415
  readonly type: "address";
6484
6416
  }];
6485
6417
  readonly name: "AddressEmptyCode";
6486
- }, {
6487
- readonly type: "error";
6488
- readonly inputs: readonly [{
6489
- readonly name: "account";
6490
- readonly internalType: "address";
6491
- readonly type: "address";
6492
- }];
6493
- readonly name: "AddressInsufficientBalance";
6494
6418
  }, {
6495
6419
  readonly type: "error";
6496
6420
  readonly inputs: readonly [];
6497
6421
  readonly name: "ArrayLengthMismatch";
6498
- }, {
6499
- readonly type: "error";
6500
- readonly inputs: readonly [];
6501
- readonly name: "CannotMintZeroLiquidity";
6502
6422
  }, {
6503
6423
  readonly type: "error";
6504
6424
  readonly inputs: readonly [];
@@ -6523,10 +6443,6 @@ export declare const zoraFactoryImplABI: readonly [{
6523
6443
  readonly type: "error";
6524
6444
  readonly inputs: readonly [];
6525
6445
  readonly name: "ERC1967NonPayable";
6526
- }, {
6527
- readonly type: "error";
6528
- readonly inputs: readonly [];
6529
- readonly name: "ERC20TransferAmountMismatch";
6530
6446
  }, {
6531
6447
  readonly type: "error";
6532
6448
  readonly inputs: readonly [];
@@ -6563,18 +6479,6 @@ export declare const zoraFactoryImplABI: readonly [{
6563
6479
  readonly type: "int24";
6564
6480
  }];
6565
6481
  readonly name: "InvalidTickRangeMisordered";
6566
- }, {
6567
- readonly type: "error";
6568
- readonly inputs: readonly [{
6569
- readonly name: "tickLower";
6570
- readonly internalType: "int24";
6571
- readonly type: "int24";
6572
- }, {
6573
- readonly name: "tickUpper";
6574
- readonly internalType: "int24";
6575
- readonly type: "int24";
6576
- }];
6577
- readonly name: "InvalidTickRangeMisordered";
6578
6482
  }, {
6579
6483
  readonly type: "error";
6580
6484
  readonly inputs: readonly [{
@@ -6615,14 +6519,6 @@ export declare const zoraFactoryImplABI: readonly [{
6615
6519
  readonly type: "error";
6616
6520
  readonly inputs: readonly [];
6617
6521
  readonly name: "ReentrancyGuardReentrantCall";
6618
- }, {
6619
- readonly type: "error";
6620
- readonly inputs: readonly [{
6621
- readonly name: "token";
6622
- readonly internalType: "address";
6623
- readonly type: "address";
6624
- }];
6625
- readonly name: "SafeERC20FailedOperation";
6626
6522
  }, {
6627
6523
  readonly type: "error";
6628
6524
  readonly inputs: readonly [];