@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
package/dist/index.cjs CHANGED
@@ -21,9 +21,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
23
  autoSwapperABI: () => autoSwapperABI,
24
+ baseCoinABI: () => baseCoinABI,
24
25
  buySupplyWithSwapRouterHookABI: () => buySupplyWithSwapRouterHookABI,
25
- coinABI: () => coinABI,
26
- coinV4ABI: () => coinV4ABI,
26
+ contentCoinABI: () => contentCoinABI,
27
27
  creatorCoinABI: () => creatorCoinABI,
28
28
  iPermit2ABI: () => iPermit2ABI,
29
29
  iPoolConfigEncodingABI: () => iPoolConfigEncodingABI,
@@ -126,110 +126,7 @@ var autoSwapperABI = [
126
126
  { type: "error", inputs: [], name: "InvalidSelector" },
127
127
  { type: "error", inputs: [], name: "NotSwapper" }
128
128
  ];
129
- var buySupplyWithSwapRouterHookABI = [
130
- {
131
- type: "constructor",
132
- inputs: [
133
- {
134
- name: "_factory",
135
- internalType: "contract IZoraFactory",
136
- type: "address"
137
- },
138
- { name: "_swapRouter", internalType: "address", type: "address" },
139
- { name: "_poolManager", internalType: "address", type: "address" }
140
- ],
141
- stateMutability: "nonpayable"
142
- },
143
- {
144
- type: "function",
145
- inputs: [
146
- { name: "sender", internalType: "address", type: "address" },
147
- { name: "coin", internalType: "contract ICoin", type: "address" },
148
- { name: "hookData", internalType: "bytes", type: "bytes" }
149
- ],
150
- name: "afterCoinDeploy",
151
- outputs: [{ name: "", internalType: "bytes", type: "bytes" }],
152
- stateMutability: "payable"
153
- },
154
- {
155
- type: "function",
156
- inputs: [],
157
- name: "factory",
158
- outputs: [
159
- { name: "", internalType: "contract IZoraFactory", type: "address" }
160
- ],
161
- stateMutability: "view"
162
- },
163
- {
164
- type: "function",
165
- inputs: [{ name: "interfaceId", internalType: "bytes4", type: "bytes4" }],
166
- name: "supportsInterface",
167
- outputs: [{ name: "", internalType: "bool", type: "bool" }],
168
- stateMutability: "pure"
169
- },
170
- {
171
- type: "function",
172
- inputs: [{ name: "data", internalType: "bytes", type: "bytes" }],
173
- name: "unlockCallback",
174
- outputs: [{ name: "", internalType: "bytes", type: "bytes" }],
175
- stateMutability: "nonpayable"
176
- },
177
- {
178
- type: "error",
179
- inputs: [{ name: "target", internalType: "address", type: "address" }],
180
- name: "AddressEmptyCode"
181
- },
182
- {
183
- type: "error",
184
- inputs: [{ name: "account", internalType: "address", type: "address" }],
185
- name: "AddressInsufficientBalance"
186
- },
187
- { type: "error", inputs: [], name: "AddressZero" },
188
- {
189
- type: "error",
190
- inputs: [{ name: "balance", internalType: "uint256", type: "uint256" }],
191
- name: "CoinBalanceNot0"
192
- },
193
- {
194
- type: "error",
195
- inputs: [{ name: "balance", internalType: "uint256", type: "uint256" }],
196
- name: "CurrencyBalanceNot0"
197
- },
198
- { type: "error", inputs: [], name: "Erc20NotReceived" },
199
- { type: "error", inputs: [], name: "FailedInnerCall" },
200
- { type: "error", inputs: [], name: "HookNotImplemented" },
201
- { type: "error", inputs: [], name: "InvalidSwapRouterCall" },
202
- { type: "error", inputs: [], name: "NotFactory" },
203
- { type: "error", inputs: [], name: "OnlyPoolManager" },
204
- {
205
- type: "error",
206
- inputs: [{ name: "token", internalType: "address", type: "address" }],
207
- name: "SafeERC20FailedOperation"
208
- },
209
- {
210
- type: "error",
211
- inputs: [{ name: "error", internalType: "bytes", type: "bytes" }],
212
- name: "SwapReverted"
213
- }
214
- ];
215
- var coinABI = [
216
- {
217
- type: "constructor",
218
- inputs: [
219
- {
220
- name: "protocolRewardRecipient_",
221
- internalType: "address",
222
- type: "address"
223
- },
224
- { name: "protocolRewards_", internalType: "address", type: "address" },
225
- { name: "weth_", internalType: "address", type: "address" },
226
- { name: "v3Factory_", internalType: "address", type: "address" },
227
- { name: "swapRouter_", internalType: "address", type: "address" },
228
- { name: "airlock_", internalType: "address", type: "address" }
229
- ],
230
- stateMutability: "nonpayable"
231
- },
232
- { type: "receive", stateMutability: "payable" },
129
+ var baseCoinABI = [
233
130
  {
234
131
  type: "function",
235
132
  inputs: [],
@@ -237,13 +134,6 @@ var coinABI = [
237
134
  outputs: [{ name: "", internalType: "bytes32", type: "bytes32" }],
238
135
  stateMutability: "view"
239
136
  },
240
- {
241
- type: "function",
242
- inputs: [],
243
- name: "WETH",
244
- outputs: [{ name: "", internalType: "address", type: "address" }],
245
- stateMutability: "view"
246
- },
247
137
  {
248
138
  type: "function",
249
139
  inputs: [{ name: "account", internalType: "address", type: "address" }],
@@ -301,29 +191,6 @@ var coinABI = [
301
191
  outputs: [],
302
192
  stateMutability: "nonpayable"
303
193
  },
304
- {
305
- type: "function",
306
- inputs: [
307
- { name: "recipient", internalType: "address", type: "address" },
308
- { name: "orderSize", internalType: "uint256", type: "uint256" },
309
- { name: "minAmountOut", internalType: "uint256", type: "uint256" },
310
- { name: "sqrtPriceLimitX96", internalType: "uint160", type: "uint160" },
311
- { name: "tradeReferrer", internalType: "address", type: "address" }
312
- ],
313
- name: "buy",
314
- outputs: [
315
- { name: "", internalType: "uint256", type: "uint256" },
316
- { name: "", internalType: "uint256", type: "uint256" }
317
- ],
318
- stateMutability: "payable"
319
- },
320
- {
321
- type: "function",
322
- inputs: [{ name: "pushEthRewards", internalType: "bool", type: "bool" }],
323
- name: "claimSecondaryRewards",
324
- outputs: [],
325
- stateMutability: "nonpayable"
326
- },
327
194
  {
328
195
  type: "function",
329
196
  inputs: [],
@@ -374,6 +241,48 @@ var coinABI = [
374
241
  ],
375
242
  stateMutability: "view"
376
243
  },
244
+ {
245
+ type: "function",
246
+ inputs: [
247
+ {
248
+ name: "coinVersionLookup",
249
+ internalType: "contract IDeployedCoinVersionLookup",
250
+ type: "address"
251
+ }
252
+ ],
253
+ name: "getPayoutSwapPath",
254
+ outputs: [
255
+ {
256
+ name: "payoutSwapPath",
257
+ internalType: "struct IHasSwapPath.PayoutSwapPath",
258
+ type: "tuple",
259
+ components: [
260
+ {
261
+ name: "path",
262
+ internalType: "struct PathKey[]",
263
+ type: "tuple[]",
264
+ components: [
265
+ {
266
+ name: "intermediateCurrency",
267
+ internalType: "Currency",
268
+ type: "address"
269
+ },
270
+ { name: "fee", internalType: "uint24", type: "uint24" },
271
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
272
+ {
273
+ name: "hooks",
274
+ internalType: "contract IHooks",
275
+ type: "address"
276
+ },
277
+ { name: "hookData", internalType: "bytes", type: "bytes" }
278
+ ]
279
+ },
280
+ { name: "currencyIn", internalType: "Currency", type: "address" }
281
+ ]
282
+ }
283
+ ],
284
+ stateMutability: "view"
285
+ },
377
286
  {
378
287
  type: "function",
379
288
  inputs: [],
@@ -405,6 +314,33 @@ var coinABI = [
405
314
  ],
406
315
  stateMutability: "view"
407
316
  },
317
+ {
318
+ type: "function",
319
+ inputs: [],
320
+ name: "getPoolKey",
321
+ outputs: [
322
+ {
323
+ name: "",
324
+ internalType: "struct PoolKey",
325
+ type: "tuple",
326
+ components: [
327
+ { name: "currency0", internalType: "Currency", type: "address" },
328
+ { name: "currency1", internalType: "Currency", type: "address" },
329
+ { name: "fee", internalType: "uint24", type: "uint24" },
330
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
331
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
332
+ ]
333
+ }
334
+ ],
335
+ stateMutability: "view"
336
+ },
337
+ {
338
+ type: "function",
339
+ inputs: [],
340
+ name: "hooks",
341
+ outputs: [{ name: "", internalType: "contract IHooks", type: "address" }],
342
+ stateMutability: "view"
343
+ },
408
344
  {
409
345
  type: "function",
410
346
  inputs: [
@@ -415,7 +351,19 @@ var coinABI = [
415
351
  { name: "symbol_", internalType: "string", type: "string" },
416
352
  { name: "platformReferrer_", internalType: "address", type: "address" },
417
353
  { name: "currency_", internalType: "address", type: "address" },
418
- { name: "poolAddress_", internalType: "address", type: "address" },
354
+ {
355
+ name: "poolKey_",
356
+ internalType: "struct PoolKey",
357
+ type: "tuple",
358
+ components: [
359
+ { name: "currency0", internalType: "Currency", type: "address" },
360
+ { name: "currency1", internalType: "Currency", type: "address" },
361
+ { name: "fee", internalType: "uint24", type: "uint24" },
362
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
363
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
364
+ ]
365
+ },
366
+ { name: "sqrtPriceX96", internalType: "uint160", type: "uint160" },
419
367
  {
420
368
  name: "poolConfiguration_",
421
369
  internalType: "struct PoolConfiguration",
@@ -438,16 +386,6 @@ var coinABI = [
438
386
  type: "uint256[]"
439
387
  }
440
388
  ]
441
- },
442
- {
443
- name: "positions_",
444
- internalType: "struct LpPosition[]",
445
- type: "tuple[]",
446
- components: [
447
- { name: "tickLower", internalType: "int24", type: "int24" },
448
- { name: "tickUpper", internalType: "int24", type: "int24" },
449
- { name: "liquidity", internalType: "uint128", type: "uint128" }
450
- ]
451
389
  }
452
390
  ],
453
391
  name: "initialize",
@@ -463,17 +401,26 @@ var coinABI = [
463
401
  },
464
402
  {
465
403
  type: "function",
466
- inputs: [],
467
- name: "market",
468
- outputs: [{ name: "", internalType: "bytes", type: "bytes" }],
469
- stateMutability: "view"
470
- },
471
- {
472
- type: "function",
473
- inputs: [],
474
- name: "marketVersion",
475
- outputs: [{ name: "", internalType: "uint8", type: "uint8" }],
476
- stateMutability: "view"
404
+ inputs: [
405
+ { name: "newHook", internalType: "address", type: "address" },
406
+ { name: "additionalData", internalType: "bytes", type: "bytes" }
407
+ ],
408
+ name: "migrateLiquidity",
409
+ outputs: [
410
+ {
411
+ name: "newPoolKey",
412
+ internalType: "struct PoolKey",
413
+ type: "tuple",
414
+ components: [
415
+ { name: "currency0", internalType: "Currency", type: "address" },
416
+ { name: "currency1", internalType: "Currency", type: "address" },
417
+ { name: "fee", internalType: "uint24", type: "uint24" },
418
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
419
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
420
+ ]
421
+ }
422
+ ],
423
+ stateMutability: "nonpayable"
477
424
  },
478
425
  {
479
426
  type: "function",
@@ -528,30 +475,9 @@ var coinABI = [
528
475
  {
529
476
  type: "function",
530
477
  inputs: [],
531
- name: "poolAddress",
532
- outputs: [{ name: "", internalType: "address", type: "address" }],
533
- stateMutability: "view"
534
- },
535
- {
536
- type: "function",
537
- inputs: [],
538
- name: "poolConfiguration",
539
- outputs: [
540
- { name: "version", internalType: "uint8", type: "uint8" },
541
- { name: "numPositions", internalType: "uint16", type: "uint16" },
542
- { name: "fee", internalType: "uint24", type: "uint24" },
543
- { name: "tickSpacing", internalType: "int24", type: "int24" }
544
- ],
545
- stateMutability: "view"
546
- },
547
- {
548
- type: "function",
549
- inputs: [{ name: "", internalType: "uint256", type: "uint256" }],
550
- name: "positions",
478
+ name: "poolManager",
551
479
  outputs: [
552
- { name: "tickLower", internalType: "int24", type: "int24" },
553
- { name: "tickUpper", internalType: "int24", type: "int24" },
554
- { name: "liquidity", internalType: "uint128", type: "uint128" }
480
+ { name: "", internalType: "contract IPoolManager", type: "address" }
555
481
  ],
556
482
  stateMutability: "view"
557
483
  },
@@ -592,22 +518,6 @@ var coinABI = [
592
518
  outputs: [],
593
519
  stateMutability: "nonpayable"
594
520
  },
595
- {
596
- type: "function",
597
- inputs: [
598
- { name: "recipient", internalType: "address", type: "address" },
599
- { name: "orderSize", internalType: "uint256", type: "uint256" },
600
- { name: "minAmountOut", internalType: "uint256", type: "uint256" },
601
- { name: "sqrtPriceLimitX96", internalType: "uint160", type: "uint160" },
602
- { name: "tradeReferrer", internalType: "address", type: "address" }
603
- ],
604
- name: "sell",
605
- outputs: [
606
- { name: "", internalType: "uint256", type: "uint256" },
607
- { name: "", internalType: "uint256", type: "uint256" }
608
- ],
609
- stateMutability: "nonpayable"
610
- },
611
521
  {
612
522
  type: "function",
613
523
  inputs: [{ name: "newURI", internalType: "string", type: "string" }],
@@ -641,13 +551,6 @@ var coinABI = [
641
551
  outputs: [{ name: "", internalType: "bool", type: "bool" }],
642
552
  stateMutability: "view"
643
553
  },
644
- {
645
- type: "function",
646
- inputs: [],
647
- name: "swapRouter",
648
- outputs: [{ name: "", internalType: "address", type: "address" }],
649
- stateMutability: "view"
650
- },
651
554
  {
652
555
  type: "function",
653
556
  inputs: [],
@@ -690,24 +593,6 @@ var coinABI = [
690
593
  outputs: [{ name: "", internalType: "bool", type: "bool" }],
691
594
  stateMutability: "nonpayable"
692
595
  },
693
- {
694
- type: "function",
695
- inputs: [
696
- { name: "amount0Owed", internalType: "uint256", type: "uint256" },
697
- { name: "amount1Owed", internalType: "uint256", type: "uint256" },
698
- { name: "", internalType: "bytes", type: "bytes" }
699
- ],
700
- name: "uniswapV3MintCallback",
701
- outputs: [],
702
- stateMutability: "nonpayable"
703
- },
704
- {
705
- type: "function",
706
- inputs: [],
707
- name: "v3Factory",
708
- outputs: [{ name: "", internalType: "address", type: "address" }],
709
- stateMutability: "view"
710
- },
711
596
  {
712
597
  type: "event",
713
598
  anonymous: false,
@@ -1064,6 +949,51 @@ var coinABI = [
1064
949
  ],
1065
950
  name: "Initialized"
1066
951
  },
952
+ {
953
+ type: "event",
954
+ anonymous: false,
955
+ inputs: [
956
+ {
957
+ name: "fromPoolKey",
958
+ internalType: "struct PoolKey",
959
+ type: "tuple",
960
+ components: [
961
+ { name: "currency0", internalType: "Currency", type: "address" },
962
+ { name: "currency1", internalType: "Currency", type: "address" },
963
+ { name: "fee", internalType: "uint24", type: "uint24" },
964
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
965
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
966
+ ],
967
+ indexed: false
968
+ },
969
+ {
970
+ name: "fromPoolKeyHash",
971
+ internalType: "bytes32",
972
+ type: "bytes32",
973
+ indexed: false
974
+ },
975
+ {
976
+ name: "toPoolKey",
977
+ internalType: "struct PoolKey",
978
+ type: "tuple",
979
+ components: [
980
+ { name: "currency0", internalType: "Currency", type: "address" },
981
+ { name: "currency1", internalType: "Currency", type: "address" },
982
+ { name: "fee", internalType: "uint24", type: "uint24" },
983
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
984
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
985
+ ],
986
+ indexed: false
987
+ },
988
+ {
989
+ name: "toPoolKeyHash",
990
+ internalType: "bytes32",
991
+ type: "bytes32",
992
+ indexed: false
993
+ }
994
+ ],
995
+ name: "LiquidityMigrated"
996
+ },
1067
997
  {
1068
998
  type: "event",
1069
999
  anonymous: false,
@@ -1129,17 +1059,6 @@ var coinABI = [
1129
1059
  ],
1130
1060
  name: "Transfer"
1131
1061
  },
1132
- {
1133
- type: "error",
1134
- inputs: [{ name: "target", internalType: "address", type: "address" }],
1135
- name: "AddressEmptyCode"
1136
- },
1137
- {
1138
- type: "error",
1139
- inputs: [{ name: "account", internalType: "address", type: "address" }],
1140
- name: "AddressInsufficientBalance"
1141
- },
1142
- { type: "error", inputs: [], name: "AddressZero" },
1143
1062
  { type: "error", inputs: [], name: "AddressZero" },
1144
1063
  { type: "error", inputs: [], name: "AlreadyOwner" },
1145
1064
  { type: "error", inputs: [], name: "CannotMintZeroLiquidity" },
@@ -1215,7 +1134,6 @@ var coinABI = [
1215
1134
  { type: "error", inputs: [], name: "EthAmountTooSmall" },
1216
1135
  { type: "error", inputs: [], name: "EthTransferFailed" },
1217
1136
  { type: "error", inputs: [], name: "EthTransferInvalid" },
1218
- { type: "error", inputs: [], name: "FailedInnerCall" },
1219
1137
  { type: "error", inputs: [], name: "InitialOrderSizeTooLarge" },
1220
1138
  { type: "error", inputs: [], name: "InsufficientFunds" },
1221
1139
  { type: "error", inputs: [], name: "InsufficientLiquidity" },
@@ -1268,15 +1186,96 @@ var coinABI = [
1268
1186
  { type: "error", inputs: [], name: "OnlyWeth" },
1269
1187
  { type: "error", inputs: [], name: "OwnerCannotBeAddressZero" },
1270
1188
  { type: "error", inputs: [], name: "ReentrancyGuardReentrantCall" },
1189
+ { type: "error", inputs: [], name: "SlippageBoundsExceeded" },
1190
+ { type: "error", inputs: [], name: "UseRevokeOwnershipToRemoveSelf" }
1191
+ ];
1192
+ var buySupplyWithSwapRouterHookABI = [
1193
+ {
1194
+ type: "constructor",
1195
+ inputs: [
1196
+ {
1197
+ name: "_factory",
1198
+ internalType: "contract IZoraFactory",
1199
+ type: "address"
1200
+ },
1201
+ { name: "_swapRouter", internalType: "address", type: "address" },
1202
+ { name: "_poolManager", internalType: "address", type: "address" }
1203
+ ],
1204
+ stateMutability: "nonpayable"
1205
+ },
1206
+ {
1207
+ type: "function",
1208
+ inputs: [
1209
+ { name: "sender", internalType: "address", type: "address" },
1210
+ { name: "coin", internalType: "contract ICoin", type: "address" },
1211
+ { name: "hookData", internalType: "bytes", type: "bytes" }
1212
+ ],
1213
+ name: "afterCoinDeploy",
1214
+ outputs: [{ name: "", internalType: "bytes", type: "bytes" }],
1215
+ stateMutability: "payable"
1216
+ },
1217
+ {
1218
+ type: "function",
1219
+ inputs: [],
1220
+ name: "factory",
1221
+ outputs: [
1222
+ { name: "", internalType: "contract IZoraFactory", type: "address" }
1223
+ ],
1224
+ stateMutability: "view"
1225
+ },
1226
+ {
1227
+ type: "function",
1228
+ inputs: [{ name: "interfaceId", internalType: "bytes4", type: "bytes4" }],
1229
+ name: "supportsInterface",
1230
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
1231
+ stateMutability: "pure"
1232
+ },
1233
+ {
1234
+ type: "function",
1235
+ inputs: [{ name: "data", internalType: "bytes", type: "bytes" }],
1236
+ name: "unlockCallback",
1237
+ outputs: [{ name: "", internalType: "bytes", type: "bytes" }],
1238
+ stateMutability: "nonpayable"
1239
+ },
1240
+ {
1241
+ type: "error",
1242
+ inputs: [{ name: "target", internalType: "address", type: "address" }],
1243
+ name: "AddressEmptyCode"
1244
+ },
1245
+ {
1246
+ type: "error",
1247
+ inputs: [{ name: "account", internalType: "address", type: "address" }],
1248
+ name: "AddressInsufficientBalance"
1249
+ },
1250
+ { type: "error", inputs: [], name: "AddressZero" },
1251
+ {
1252
+ type: "error",
1253
+ inputs: [{ name: "balance", internalType: "uint256", type: "uint256" }],
1254
+ name: "CoinBalanceNot0"
1255
+ },
1256
+ {
1257
+ type: "error",
1258
+ inputs: [{ name: "balance", internalType: "uint256", type: "uint256" }],
1259
+ name: "CurrencyBalanceNot0"
1260
+ },
1261
+ { type: "error", inputs: [], name: "Erc20NotReceived" },
1262
+ { type: "error", inputs: [], name: "FailedInnerCall" },
1263
+ { type: "error", inputs: [], name: "HookNotImplemented" },
1264
+ { type: "error", inputs: [], name: "InvalidSwapRouterCall" },
1265
+ { type: "error", inputs: [], name: "NotFactory" },
1266
+ { type: "error", inputs: [], name: "OnlyPoolManager" },
1271
1267
  {
1272
1268
  type: "error",
1273
1269
  inputs: [{ name: "token", internalType: "address", type: "address" }],
1274
1270
  name: "SafeERC20FailedOperation"
1275
1271
  },
1276
- { type: "error", inputs: [], name: "SlippageBoundsExceeded" },
1277
- { type: "error", inputs: [], name: "UseRevokeOwnershipToRemoveSelf" }
1272
+ {
1273
+ type: "error",
1274
+ inputs: [{ name: "error", internalType: "bytes", type: "bytes" }],
1275
+ name: "SwapReverted"
1276
+ }
1278
1277
  ];
1279
- var coinV4ABI = [
1278
+ var contentCoinABI = [
1280
1279
  {
1281
1280
  type: "constructor",
1282
1281
  inputs: [
@@ -4201,7 +4200,6 @@ var zoraFactoryImplABI = [
4201
4200
  {
4202
4201
  type: "constructor",
4203
4202
  inputs: [
4204
- { name: "_coinImpl", internalType: "address", type: "address" },
4205
4203
  { name: "_coinV4Impl", internalType: "address", type: "address" },
4206
4204
  { name: "_creatorCoinImpl", internalType: "address", type: "address" },
4207
4205
  { name: "_contentCoinHook", internalType: "address", type: "address" },
@@ -4216,6 +4214,13 @@ var zoraFactoryImplABI = [
4216
4214
  outputs: [{ name: "", internalType: "string", type: "string" }],
4217
4215
  stateMutability: "view"
4218
4216
  },
4217
+ {
4218
+ type: "function",
4219
+ inputs: [],
4220
+ name: "acceptOwnership",
4221
+ outputs: [],
4222
+ stateMutability: "nonpayable"
4223
+ },
4219
4224
  {
4220
4225
  type: "function",
4221
4226
  inputs: [
@@ -4230,13 +4235,6 @@ var zoraFactoryImplABI = [
4230
4235
  outputs: [{ name: "", internalType: "address", type: "address" }],
4231
4236
  stateMutability: "view"
4232
4237
  },
4233
- {
4234
- type: "function",
4235
- inputs: [],
4236
- name: "coinImpl",
4237
- outputs: [{ name: "", internalType: "address", type: "address" }],
4238
- stateMutability: "view"
4239
- },
4240
4238
  {
4241
4239
  type: "function",
4242
4240
  inputs: [],
@@ -4330,7 +4328,7 @@ var zoraFactoryImplABI = [
4330
4328
  { name: "symbol", internalType: "string", type: "string" },
4331
4329
  { name: "poolConfig", internalType: "bytes", type: "bytes" },
4332
4330
  { name: "platformReferrer", internalType: "address", type: "address" },
4333
- { name: "orderSize", internalType: "uint256", type: "uint256" }
4331
+ { name: "", internalType: "uint256", type: "uint256" }
4334
4332
  ],
4335
4333
  name: "deploy",
4336
4334
  outputs: [
@@ -4405,6 +4403,13 @@ var zoraFactoryImplABI = [
4405
4403
  outputs: [{ name: "", internalType: "address", type: "address" }],
4406
4404
  stateMutability: "view"
4407
4405
  },
4406
+ {
4407
+ type: "function",
4408
+ inputs: [],
4409
+ name: "pendingOwner",
4410
+ outputs: [{ name: "", internalType: "address", type: "address" }],
4411
+ stateMutability: "view"
4412
+ },
4408
4413
  {
4409
4414
  type: "function",
4410
4415
  inputs: [],
@@ -4646,6 +4651,25 @@ var zoraFactoryImplABI = [
4646
4651
  ],
4647
4652
  name: "Initialized"
4648
4653
  },
4654
+ {
4655
+ type: "event",
4656
+ anonymous: false,
4657
+ inputs: [
4658
+ {
4659
+ name: "previousOwner",
4660
+ internalType: "address",
4661
+ type: "address",
4662
+ indexed: true
4663
+ },
4664
+ {
4665
+ name: "newOwner",
4666
+ internalType: "address",
4667
+ type: "address",
4668
+ indexed: true
4669
+ }
4670
+ ],
4671
+ name: "OwnershipTransferStarted"
4672
+ },
4649
4673
  {
4650
4674
  type: "event",
4651
4675
  anonymous: false,
@@ -4683,13 +4707,7 @@ var zoraFactoryImplABI = [
4683
4707
  inputs: [{ name: "target", internalType: "address", type: "address" }],
4684
4708
  name: "AddressEmptyCode"
4685
4709
  },
4686
- {
4687
- type: "error",
4688
- inputs: [{ name: "account", internalType: "address", type: "address" }],
4689
- name: "AddressInsufficientBalance"
4690
- },
4691
4710
  { type: "error", inputs: [], name: "ArrayLengthMismatch" },
4692
- { type: "error", inputs: [], name: "CannotMintZeroLiquidity" },
4693
4711
  { type: "error", inputs: [], name: "ConfigTickLowerMustBeLessThanTickUpper" },
4694
4712
  { type: "error", inputs: [], name: "Deprecated" },
4695
4713
  { type: "error", inputs: [], name: "ERC1167FailedCreateClone" },
@@ -4701,7 +4719,6 @@ var zoraFactoryImplABI = [
4701
4719
  name: "ERC1967InvalidImplementation"
4702
4720
  },
4703
4721
  { type: "error", inputs: [], name: "ERC1967NonPayable" },
4704
- { type: "error", inputs: [], name: "ERC20TransferAmountMismatch" },
4705
4722
  { type: "error", inputs: [], name: "EthTransferInvalid" },
4706
4723
  { type: "error", inputs: [], name: "FailedInnerCall" },
4707
4724
  { type: "error", inputs: [], name: "InvalidConfig" },
@@ -4716,14 +4733,6 @@ var zoraFactoryImplABI = [
4716
4733
  ],
4717
4734
  name: "InvalidTickRangeMisordered"
4718
4735
  },
4719
- {
4720
- type: "error",
4721
- inputs: [
4722
- { name: "tickLower", internalType: "int24", type: "int24" },
4723
- { name: "tickUpper", internalType: "int24", type: "int24" }
4724
- ],
4725
- name: "InvalidTickRangeMisordered"
4726
- },
4727
4736
  {
4728
4737
  type: "error",
4729
4738
  inputs: [
@@ -4745,11 +4754,6 @@ var zoraFactoryImplABI = [
4745
4754
  name: "OwnableUnauthorizedAccount"
4746
4755
  },
4747
4756
  { type: "error", inputs: [], name: "ReentrancyGuardReentrantCall" },
4748
- {
4749
- type: "error",
4750
- inputs: [{ name: "token", internalType: "address", type: "address" }],
4751
- name: "SafeERC20FailedOperation"
4752
- },
4753
4757
  { type: "error", inputs: [], name: "UUPSUnauthorizedCallContext" },
4754
4758
  {
4755
4759
  type: "error",
@@ -4770,9 +4774,9 @@ var zoraFactoryImplABI = [
4770
4774
  // Annotate the CommonJS export names for ESM import in node:
4771
4775
  0 && (module.exports = {
4772
4776
  autoSwapperABI,
4777
+ baseCoinABI,
4773
4778
  buySupplyWithSwapRouterHookABI,
4774
- coinABI,
4775
- coinV4ABI,
4779
+ contentCoinABI,
4776
4780
  creatorCoinABI,
4777
4781
  iPermit2ABI,
4778
4782
  iPoolConfigEncodingABI,