@zoralabs/coins 1.1.2 → 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 (78) hide show
  1. package/.turbo/turbo-build.log +107 -110
  2. package/CHANGELOG.md +50 -0
  3. package/README.md +48 -1
  4. package/abis/BaseCoin.json +442 -0
  5. package/abis/BaseZoraV4CoinHook.json +6 -2
  6. package/abis/CoinTest.json +3 -246
  7. package/abis/CoinUniV4Test.json +20 -0
  8. package/abis/ContentCoinHook.json +6 -2
  9. package/abis/CreatorCoinHook.json +6 -2
  10. package/abis/FactoryTest.json +8 -133
  11. package/abis/FeeEstimatorHook.json +6 -2
  12. package/abis/HooksTest.json +0 -26
  13. package/abis/ICoin.json +378 -0
  14. package/abis/ICoinV3.json +378 -0
  15. package/abis/IZoraFactory.json +0 -18
  16. package/abis/IZoraV4CoinHook.json +2 -2
  17. package/abis/LiquidityMigrationTest.json +101 -0
  18. package/abis/MockBadFactory.json +15 -0
  19. package/abis/Ownable2StepUpgradeable.json +138 -0
  20. package/abis/ZoraFactoryImpl.json +38 -65
  21. package/addresses/8453.json +5 -5
  22. package/dist/index.cjs +272 -268
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.js +270 -266
  25. package/dist/index.js.map +1 -1
  26. package/dist/wagmiGenerated.d.ts +397 -470
  27. package/dist/wagmiGenerated.d.ts.map +1 -1
  28. package/package/wagmiGenerated.ts +275 -271
  29. package/package.json +3 -3
  30. package/script/DeployPostDeploymentHooks.s.sol +2 -2
  31. package/script/TestBackingCoinSwap.s.sol +9 -9
  32. package/script/TestV4Swap.s.sol +9 -9
  33. package/script/UpgradeFactoryImpl.s.sol +0 -1
  34. package/src/BaseCoin.sol +109 -6
  35. package/src/ContentCoin.sol +45 -0
  36. package/src/CreatorCoin.sol +7 -5
  37. package/src/ZoraFactoryImpl.sol +12 -95
  38. package/src/deployment/CoinsDeployerBase.sol +13 -30
  39. package/src/hooks/BaseZoraV4CoinHook.sol +8 -6
  40. package/src/hooks/deployment/BuySupplyWithSwapRouterHook.sol +4 -5
  41. package/src/interfaces/ICoin.sol +67 -1
  42. package/src/interfaces/ICreatorCoin.sol +2 -2
  43. package/src/interfaces/IZoraFactory.sol +0 -5
  44. package/src/interfaces/IZoraV4CoinHook.sol +1 -1
  45. package/src/libs/CoinConfigurationVersions.sol +1 -39
  46. package/src/libs/CoinRewardsV4.sol +2 -2
  47. package/src/libs/CoinSetup.sol +1 -4
  48. package/src/libs/UniV4SwapHelper.sol +1 -1
  49. package/src/libs/UniV4SwapToCurrency.sol +2 -2
  50. package/src/libs/V4Liquidity.sol +1 -1
  51. package/src/version/ContractVersionBase.sol +1 -1
  52. package/test/Coin.t.sol +112 -535
  53. package/test/CoinUniV4.t.sol +66 -10
  54. package/test/DeploymentHooks.t.sol +5 -102
  55. package/test/Factory.t.sol +49 -291
  56. package/test/LiquidityMigration.t.sol +160 -2
  57. package/test/MultiOwnable.t.sol +36 -36
  58. package/test/Upgrades.t.sol +23 -42
  59. package/test/utils/BaseTest.sol +39 -84
  60. package/test/utils/FeeEstimatorHook.sol +3 -3
  61. package/wagmi.config.ts +2 -2
  62. package/abis/Coin.json +0 -1912
  63. package/abis/DopplerUniswapV3Test.json +0 -800
  64. package/abis/ICoinV4.json +0 -1048
  65. package/abis/Simulate.json +0 -29
  66. package/abis/UniV3BuySell.json +0 -12
  67. package/abis/UniV3Errors.json +0 -32
  68. package/script/Simulate.s.sol +0 -59
  69. package/src/Coin.sol +0 -236
  70. package/src/CoinV4.sol +0 -151
  71. package/src/interfaces/ICoinV4.sol +0 -74
  72. package/src/libs/CoinDopplerUniV3.sol +0 -50
  73. package/src/libs/CoinRewards.sol +0 -201
  74. package/src/libs/CoinSetupV3.sol +0 -50
  75. package/src/libs/UniV3BuySell.sol +0 -231
  76. package/src/libs/UniV3Errors.sol +0 -11
  77. package/test/CoinDopplerUniV3.t.sol +0 -310
  78. /package/abis/{CoinV4.json → ContentCoin.json} +0 -0
@@ -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;
@@ -1395,6 +1153,73 @@ export declare const coinABI: readonly [{
1395
1153
  readonly indexed: false;
1396
1154
  }];
1397
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";
1220
+ readonly indexed: false;
1221
+ }];
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,22 +1550,167 @@ 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
- export declare const coinV4ABI: readonly [{
1713
+ export declare const contentCoinABI: readonly [{
1768
1714
  readonly type: "constructor";
1769
1715
  readonly inputs: readonly [{
1770
1716
  readonly name: "protocolRewardRecipient_";
@@ -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";
@@ -5762,6 +5704,12 @@ export declare const zoraFactoryImplABI: readonly [{
5762
5704
  readonly type: "string";
5763
5705
  }];
5764
5706
  readonly stateMutability: "view";
5707
+ }, {
5708
+ readonly type: "function";
5709
+ readonly inputs: readonly [];
5710
+ readonly name: "acceptOwnership";
5711
+ readonly outputs: readonly [];
5712
+ readonly stateMutability: "nonpayable";
5765
5713
  }, {
5766
5714
  readonly type: "function";
5767
5715
  readonly inputs: readonly [{
@@ -5796,16 +5744,6 @@ export declare const zoraFactoryImplABI: readonly [{
5796
5744
  readonly type: "address";
5797
5745
  }];
5798
5746
  readonly stateMutability: "view";
5799
- }, {
5800
- readonly type: "function";
5801
- readonly inputs: readonly [];
5802
- readonly name: "coinImpl";
5803
- readonly outputs: readonly [{
5804
- readonly name: "";
5805
- readonly internalType: "address";
5806
- readonly type: "address";
5807
- }];
5808
- readonly stateMutability: "view";
5809
5747
  }, {
5810
5748
  readonly type: "function";
5811
5749
  readonly inputs: readonly [];
@@ -6001,7 +5939,7 @@ export declare const zoraFactoryImplABI: readonly [{
6001
5939
  readonly internalType: "address";
6002
5940
  readonly type: "address";
6003
5941
  }, {
6004
- readonly name: "orderSize";
5942
+ readonly name: "";
6005
5943
  readonly internalType: "uint256";
6006
5944
  readonly type: "uint256";
6007
5945
  }];
@@ -6152,6 +6090,16 @@ export declare const zoraFactoryImplABI: readonly [{
6152
6090
  readonly type: "address";
6153
6091
  }];
6154
6092
  readonly stateMutability: "view";
6093
+ }, {
6094
+ readonly type: "function";
6095
+ readonly inputs: readonly [];
6096
+ readonly name: "pendingOwner";
6097
+ readonly outputs: readonly [{
6098
+ readonly name: "";
6099
+ readonly internalType: "address";
6100
+ readonly type: "address";
6101
+ }];
6102
+ readonly stateMutability: "view";
6155
6103
  }, {
6156
6104
  readonly type: "function";
6157
6105
  readonly inputs: readonly [];
@@ -6433,41 +6381,44 @@ export declare const zoraFactoryImplABI: readonly [{
6433
6381
  readonly type: "address";
6434
6382
  readonly indexed: true;
6435
6383
  }];
6436
- readonly name: "OwnershipTransferred";
6384
+ readonly name: "OwnershipTransferStarted";
6437
6385
  }, {
6438
6386
  readonly type: "event";
6439
6387
  readonly anonymous: false;
6440
6388
  readonly inputs: readonly [{
6441
- readonly name: "implementation";
6389
+ readonly name: "previousOwner";
6390
+ readonly internalType: "address";
6391
+ readonly type: "address";
6392
+ readonly indexed: true;
6393
+ }, {
6394
+ readonly name: "newOwner";
6442
6395
  readonly internalType: "address";
6443
6396
  readonly type: "address";
6444
6397
  readonly indexed: true;
6445
6398
  }];
6446
- readonly name: "Upgraded";
6399
+ readonly name: "OwnershipTransferred";
6447
6400
  }, {
6448
- readonly type: "error";
6401
+ readonly type: "event";
6402
+ readonly anonymous: false;
6449
6403
  readonly inputs: readonly [{
6450
- readonly name: "target";
6404
+ readonly name: "implementation";
6451
6405
  readonly internalType: "address";
6452
6406
  readonly type: "address";
6407
+ readonly indexed: true;
6453
6408
  }];
6454
- readonly name: "AddressEmptyCode";
6409
+ readonly name: "Upgraded";
6455
6410
  }, {
6456
6411
  readonly type: "error";
6457
6412
  readonly inputs: readonly [{
6458
- readonly name: "account";
6413
+ readonly name: "target";
6459
6414
  readonly internalType: "address";
6460
6415
  readonly type: "address";
6461
6416
  }];
6462
- readonly name: "AddressInsufficientBalance";
6417
+ readonly name: "AddressEmptyCode";
6463
6418
  }, {
6464
6419
  readonly type: "error";
6465
6420
  readonly inputs: readonly [];
6466
6421
  readonly name: "ArrayLengthMismatch";
6467
- }, {
6468
- readonly type: "error";
6469
- readonly inputs: readonly [];
6470
- readonly name: "CannotMintZeroLiquidity";
6471
6422
  }, {
6472
6423
  readonly type: "error";
6473
6424
  readonly inputs: readonly [];
@@ -6492,10 +6443,6 @@ export declare const zoraFactoryImplABI: readonly [{
6492
6443
  readonly type: "error";
6493
6444
  readonly inputs: readonly [];
6494
6445
  readonly name: "ERC1967NonPayable";
6495
- }, {
6496
- readonly type: "error";
6497
- readonly inputs: readonly [];
6498
- readonly name: "ERC20TransferAmountMismatch";
6499
6446
  }, {
6500
6447
  readonly type: "error";
6501
6448
  readonly inputs: readonly [];
@@ -6532,18 +6479,6 @@ export declare const zoraFactoryImplABI: readonly [{
6532
6479
  readonly type: "int24";
6533
6480
  }];
6534
6481
  readonly name: "InvalidTickRangeMisordered";
6535
- }, {
6536
- readonly type: "error";
6537
- readonly inputs: readonly [{
6538
- readonly name: "tickLower";
6539
- readonly internalType: "int24";
6540
- readonly type: "int24";
6541
- }, {
6542
- readonly name: "tickUpper";
6543
- readonly internalType: "int24";
6544
- readonly type: "int24";
6545
- }];
6546
- readonly name: "InvalidTickRangeMisordered";
6547
6482
  }, {
6548
6483
  readonly type: "error";
6549
6484
  readonly inputs: readonly [{
@@ -6584,14 +6519,6 @@ export declare const zoraFactoryImplABI: readonly [{
6584
6519
  readonly type: "error";
6585
6520
  readonly inputs: readonly [];
6586
6521
  readonly name: "ReentrancyGuardReentrantCall";
6587
- }, {
6588
- readonly type: "error";
6589
- readonly inputs: readonly [{
6590
- readonly name: "token";
6591
- readonly internalType: "address";
6592
- readonly type: "address";
6593
- }];
6594
- readonly name: "SafeERC20FailedOperation";
6595
6522
  }, {
6596
6523
  readonly type: "error";
6597
6524
  readonly inputs: readonly [];