@zoralabs/coins 2.1.2 → 2.3.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 (107) hide show
  1. package/.turbo/turbo-build$colon$js.log +152 -0
  2. package/CHANGELOG.md +93 -0
  3. package/README.md +4 -0
  4. package/abis/BaseCoin.json +26 -5
  5. package/abis/BaseTest.json +2 -7
  6. package/abis/ContentCoin.json +26 -5
  7. package/abis/CreatorCoin.json +30 -9
  8. package/abis/FeeEstimatorHook.json +94 -6
  9. package/abis/ICoin.json +26 -0
  10. package/abis/ICoinV3.json +26 -0
  11. package/abis/ICreatorCoin.json +39 -0
  12. package/abis/IERC721.json +36 -36
  13. package/abis/IHasCoinType.json +15 -0
  14. package/abis/IHasTotalSupplyForPositions.json +15 -0
  15. package/abis/{LiquidityMigrationReceiver.json → IUpgradeableDestinationV4HookWithUpdateableFee.json} +10 -18
  16. package/abis/IZoraFactory.json +121 -0
  17. package/abis/IZoraHookRegistry.json +188 -0
  18. package/abis/VmContractHelper226.json +233 -0
  19. package/abis/ZoraFactoryImpl.json +101 -6
  20. package/abis/ZoraHookRegistry.json +375 -0
  21. package/abis/{CreatorCoinHook.json → ZoraV4CoinHook.json} +95 -2
  22. package/addresses/8453.json +6 -5
  23. package/audits/report-cantinacode-zora-0827.pdf +3498 -4
  24. package/dist/index.cjs +93 -13
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.js +93 -13
  27. package/dist/index.js.map +1 -1
  28. package/dist/wagmiGenerated.d.ts +144 -22
  29. package/dist/wagmiGenerated.d.ts.map +1 -1
  30. package/foundry.toml +4 -1
  31. package/package/wagmiGenerated.ts +93 -13
  32. package/package.json +6 -4
  33. package/script/PrintRegisterUpgradePath.s.sol +0 -7
  34. package/script/TestBackingCoinSwap.s.sol +0 -3
  35. package/script/TestV4Swap.s.sol +0 -3
  36. package/script/UpgradeFactoryImpl.s.sol +1 -1
  37. package/src/BaseCoin.sol +19 -24
  38. package/src/ContentCoin.sol +11 -2
  39. package/src/CreatorCoin.sol +34 -15
  40. package/src/ZoraFactoryImpl.sol +163 -92
  41. package/src/deployment/CoinsDeployerBase.sol +24 -58
  42. package/src/hook-registry/ZoraHookRegistry.sol +97 -0
  43. package/src/hooks/{BaseZoraV4CoinHook.sol → ZoraV4CoinHook.sol} +77 -15
  44. package/src/interfaces/ICoin.sol +19 -1
  45. package/src/interfaces/ICreatorCoin.sol +4 -0
  46. package/src/interfaces/IUpgradeableV4Hook.sol +18 -0
  47. package/src/interfaces/IZoraFactory.sol +51 -10
  48. package/src/interfaces/IZoraHookRegistry.sol +47 -0
  49. package/src/libs/CoinConstants.sol +43 -32
  50. package/src/libs/CoinDopplerMultiCurve.sol +11 -11
  51. package/src/libs/CoinRewardsV4.sol +68 -37
  52. package/src/libs/CoinSetup.sol +2 -9
  53. package/src/libs/DopplerMath.sol +2 -2
  54. package/src/libs/HooksDeployment.sol +13 -65
  55. package/src/libs/V4Liquidity.sol +109 -15
  56. package/src/version/ContractVersionBase.sol +1 -1
  57. package/test/Coin.t.sol +5 -5
  58. package/test/CoinRewardsV4.t.sol +33 -0
  59. package/test/CoinUniV4.t.sol +32 -30
  60. package/test/ContentCoinRewards.t.sol +363 -0
  61. package/test/CreatorCoin.t.sol +53 -29
  62. package/test/CreatorCoinRewards.t.sol +375 -0
  63. package/test/DeploymentHooks.t.sol +64 -12
  64. package/test/Factory.t.sol +24 -7
  65. package/test/HooksDeployment.t.sol +4 -4
  66. package/test/LiquidityMigration.t.sol +149 -16
  67. package/test/Upgrades.t.sol +44 -48
  68. package/test/V4Liquidity.t.sol +178 -0
  69. package/test/ZoraHookRegistry.t.sol +266 -0
  70. package/test/utils/BaseTest.sol +25 -43
  71. package/test/utils/FeeEstimatorHook.sol +4 -6
  72. package/test/utils/RewardTestHelpers.sol +106 -0
  73. package/.turbo/turbo-build.log +0 -199
  74. package/abis/AutoSwapperTest.json +0 -618
  75. package/abis/BadImpl.json +0 -15
  76. package/abis/BaseZoraV4CoinHook.json +0 -1664
  77. package/abis/CoinConstants.json +0 -158
  78. package/abis/CoinRewardsV4.json +0 -67
  79. package/abis/CoinTest.json +0 -819
  80. package/abis/CoinUniV4Test.json +0 -1128
  81. package/abis/ContentCoinHook.json +0 -1733
  82. package/abis/CreatorCoinTest.json +0 -887
  83. package/abis/Deploy.json +0 -9
  84. package/abis/DeployHooks.json +0 -9
  85. package/abis/DeployScript.json +0 -35
  86. package/abis/DeployedCoinVersionLookupTest.json +0 -740
  87. package/abis/DifferentNamespaceVersionLookup.json +0 -39
  88. package/abis/FactoryTest.json +0 -748
  89. package/abis/FakeHookNoInterface.json +0 -21
  90. package/abis/GenerateDeterministicParams.json +0 -9
  91. package/abis/HooksDeploymentTest.json +0 -645
  92. package/abis/HooksTest.json +0 -709
  93. package/abis/InvalidLiquidityMigrationReceiver.json +0 -21
  94. package/abis/LiquidityMigrationTest.json +0 -889
  95. package/abis/MockBadFactory.json +0 -15
  96. package/abis/MultiOwnableTest.json +0 -766
  97. package/abis/PrintUpgradeCommand.json +0 -9
  98. package/abis/TestDeployedCoinVersionLookupImplementation.json +0 -39
  99. package/abis/TestV4Swap.json +0 -9
  100. package/abis/UpgradeFactoryImpl.json +0 -9
  101. package/abis/UpgradeHooks.json +0 -35
  102. package/abis/UpgradesTest.json +0 -723
  103. package/src/hooks/ContentCoinHook.sol +0 -27
  104. package/src/hooks/CreatorCoinHook.sol +0 -27
  105. package/src/libs/CreatorCoinConstants.sol +0 -16
  106. package/src/libs/CreatorCoinRewards.sol +0 -34
  107. package/src/libs/MarketConstants.sol +0 -15
@@ -1,740 +0,0 @@
1
- [
2
- {
3
- "type": "function",
4
- "name": "IS_TEST",
5
- "inputs": [],
6
- "outputs": [
7
- {
8
- "name": "",
9
- "type": "bool",
10
- "internalType": "bool"
11
- }
12
- ],
13
- "stateMutability": "view"
14
- },
15
- {
16
- "type": "function",
17
- "name": "differentNamespaceLookup",
18
- "inputs": [],
19
- "outputs": [
20
- {
21
- "name": "",
22
- "type": "address",
23
- "internalType": "contract DifferentNamespaceVersionLookup"
24
- }
25
- ],
26
- "stateMutability": "view"
27
- },
28
- {
29
- "type": "function",
30
- "name": "excludeArtifacts",
31
- "inputs": [],
32
- "outputs": [
33
- {
34
- "name": "excludedArtifacts_",
35
- "type": "string[]",
36
- "internalType": "string[]"
37
- }
38
- ],
39
- "stateMutability": "view"
40
- },
41
- {
42
- "type": "function",
43
- "name": "excludeContracts",
44
- "inputs": [],
45
- "outputs": [
46
- {
47
- "name": "excludedContracts_",
48
- "type": "address[]",
49
- "internalType": "address[]"
50
- }
51
- ],
52
- "stateMutability": "view"
53
- },
54
- {
55
- "type": "function",
56
- "name": "excludeSelectors",
57
- "inputs": [],
58
- "outputs": [
59
- {
60
- "name": "excludedSelectors_",
61
- "type": "tuple[]",
62
- "internalType": "struct StdInvariant.FuzzSelector[]",
63
- "components": [
64
- {
65
- "name": "addr",
66
- "type": "address",
67
- "internalType": "address"
68
- },
69
- {
70
- "name": "selectors",
71
- "type": "bytes4[]",
72
- "internalType": "bytes4[]"
73
- }
74
- ]
75
- }
76
- ],
77
- "stateMutability": "view"
78
- },
79
- {
80
- "type": "function",
81
- "name": "excludeSenders",
82
- "inputs": [],
83
- "outputs": [
84
- {
85
- "name": "excludedSenders_",
86
- "type": "address[]",
87
- "internalType": "address[]"
88
- }
89
- ],
90
- "stateMutability": "view"
91
- },
92
- {
93
- "type": "function",
94
- "name": "failed",
95
- "inputs": [],
96
- "outputs": [
97
- {
98
- "name": "",
99
- "type": "bool",
100
- "internalType": "bool"
101
- }
102
- ],
103
- "stateMutability": "view"
104
- },
105
- {
106
- "type": "function",
107
- "name": "getSalts",
108
- "inputs": [
109
- {
110
- "name": "trustedMessageSenders",
111
- "type": "address[]",
112
- "internalType": "address[]"
113
- }
114
- ],
115
- "outputs": [
116
- {
117
- "name": "contentCoinSalt",
118
- "type": "bytes32",
119
- "internalType": "bytes32"
120
- },
121
- {
122
- "name": "creatorCoinSalt",
123
- "type": "bytes32",
124
- "internalType": "bytes32"
125
- }
126
- ],
127
- "stateMutability": "nonpayable"
128
- },
129
- {
130
- "type": "function",
131
- "name": "setUp",
132
- "inputs": [],
133
- "outputs": [],
134
- "stateMutability": "nonpayable"
135
- },
136
- {
137
- "type": "function",
138
- "name": "setUpWithBlockNumber",
139
- "inputs": [
140
- {
141
- "name": "forkBlockNumber",
142
- "type": "uint256",
143
- "internalType": "uint256"
144
- }
145
- ],
146
- "outputs": [],
147
- "stateMutability": "nonpayable"
148
- },
149
- {
150
- "type": "function",
151
- "name": "targetArtifactSelectors",
152
- "inputs": [],
153
- "outputs": [
154
- {
155
- "name": "targetedArtifactSelectors_",
156
- "type": "tuple[]",
157
- "internalType": "struct StdInvariant.FuzzArtifactSelector[]",
158
- "components": [
159
- {
160
- "name": "artifact",
161
- "type": "string",
162
- "internalType": "string"
163
- },
164
- {
165
- "name": "selectors",
166
- "type": "bytes4[]",
167
- "internalType": "bytes4[]"
168
- }
169
- ]
170
- }
171
- ],
172
- "stateMutability": "view"
173
- },
174
- {
175
- "type": "function",
176
- "name": "targetArtifacts",
177
- "inputs": [],
178
- "outputs": [
179
- {
180
- "name": "targetedArtifacts_",
181
- "type": "string[]",
182
- "internalType": "string[]"
183
- }
184
- ],
185
- "stateMutability": "view"
186
- },
187
- {
188
- "type": "function",
189
- "name": "targetContracts",
190
- "inputs": [],
191
- "outputs": [
192
- {
193
- "name": "targetedContracts_",
194
- "type": "address[]",
195
- "internalType": "address[]"
196
- }
197
- ],
198
- "stateMutability": "view"
199
- },
200
- {
201
- "type": "function",
202
- "name": "targetInterfaces",
203
- "inputs": [],
204
- "outputs": [
205
- {
206
- "name": "targetedInterfaces_",
207
- "type": "tuple[]",
208
- "internalType": "struct StdInvariant.FuzzInterface[]",
209
- "components": [
210
- {
211
- "name": "addr",
212
- "type": "address",
213
- "internalType": "address"
214
- },
215
- {
216
- "name": "artifacts",
217
- "type": "string[]",
218
- "internalType": "string[]"
219
- }
220
- ]
221
- }
222
- ],
223
- "stateMutability": "view"
224
- },
225
- {
226
- "type": "function",
227
- "name": "targetSelectors",
228
- "inputs": [],
229
- "outputs": [
230
- {
231
- "name": "targetedSelectors_",
232
- "type": "tuple[]",
233
- "internalType": "struct StdInvariant.FuzzSelector[]",
234
- "components": [
235
- {
236
- "name": "addr",
237
- "type": "address",
238
- "internalType": "address"
239
- },
240
- {
241
- "name": "selectors",
242
- "type": "bytes4[]",
243
- "internalType": "bytes4[]"
244
- }
245
- ]
246
- }
247
- ],
248
- "stateMutability": "view"
249
- },
250
- {
251
- "type": "function",
252
- "name": "targetSenders",
253
- "inputs": [],
254
- "outputs": [
255
- {
256
- "name": "targetedSenders_",
257
- "type": "address[]",
258
- "internalType": "address[]"
259
- }
260
- ],
261
- "stateMutability": "view"
262
- },
263
- {
264
- "type": "function",
265
- "name": "testCoin1",
266
- "inputs": [],
267
- "outputs": [
268
- {
269
- "name": "",
270
- "type": "address",
271
- "internalType": "address"
272
- }
273
- ],
274
- "stateMutability": "view"
275
- },
276
- {
277
- "type": "function",
278
- "name": "testCoin2",
279
- "inputs": [],
280
- "outputs": [
281
- {
282
- "name": "",
283
- "type": "address",
284
- "internalType": "address"
285
- }
286
- ],
287
- "stateMutability": "view"
288
- },
289
- {
290
- "type": "function",
291
- "name": "testContractAddress",
292
- "inputs": [],
293
- "outputs": [
294
- {
295
- "name": "",
296
- "type": "address",
297
- "internalType": "address"
298
- }
299
- ],
300
- "stateMutability": "view"
301
- },
302
- {
303
- "type": "function",
304
- "name": "test_differentNamespaceIndependence",
305
- "inputs": [],
306
- "outputs": [],
307
- "stateMutability": "nonpayable"
308
- },
309
- {
310
- "type": "function",
311
- "name": "test_getAndSetVersionForDeployedCoin",
312
- "inputs": [],
313
- "outputs": [],
314
- "stateMutability": "nonpayable"
315
- },
316
- {
317
- "type": "function",
318
- "name": "versionLookup",
319
- "inputs": [],
320
- "outputs": [
321
- {
322
- "name": "",
323
- "type": "address",
324
- "internalType": "contract TestDeployedCoinVersionLookupImplementation"
325
- }
326
- ],
327
- "stateMutability": "view"
328
- },
329
- {
330
- "type": "event",
331
- "name": "log",
332
- "inputs": [
333
- {
334
- "name": "",
335
- "type": "string",
336
- "indexed": false,
337
- "internalType": "string"
338
- }
339
- ],
340
- "anonymous": false
341
- },
342
- {
343
- "type": "event",
344
- "name": "log_address",
345
- "inputs": [
346
- {
347
- "name": "",
348
- "type": "address",
349
- "indexed": false,
350
- "internalType": "address"
351
- }
352
- ],
353
- "anonymous": false
354
- },
355
- {
356
- "type": "event",
357
- "name": "log_array",
358
- "inputs": [
359
- {
360
- "name": "val",
361
- "type": "uint256[]",
362
- "indexed": false,
363
- "internalType": "uint256[]"
364
- }
365
- ],
366
- "anonymous": false
367
- },
368
- {
369
- "type": "event",
370
- "name": "log_array",
371
- "inputs": [
372
- {
373
- "name": "val",
374
- "type": "int256[]",
375
- "indexed": false,
376
- "internalType": "int256[]"
377
- }
378
- ],
379
- "anonymous": false
380
- },
381
- {
382
- "type": "event",
383
- "name": "log_array",
384
- "inputs": [
385
- {
386
- "name": "val",
387
- "type": "address[]",
388
- "indexed": false,
389
- "internalType": "address[]"
390
- }
391
- ],
392
- "anonymous": false
393
- },
394
- {
395
- "type": "event",
396
- "name": "log_bytes",
397
- "inputs": [
398
- {
399
- "name": "",
400
- "type": "bytes",
401
- "indexed": false,
402
- "internalType": "bytes"
403
- }
404
- ],
405
- "anonymous": false
406
- },
407
- {
408
- "type": "event",
409
- "name": "log_bytes32",
410
- "inputs": [
411
- {
412
- "name": "",
413
- "type": "bytes32",
414
- "indexed": false,
415
- "internalType": "bytes32"
416
- }
417
- ],
418
- "anonymous": false
419
- },
420
- {
421
- "type": "event",
422
- "name": "log_int",
423
- "inputs": [
424
- {
425
- "name": "",
426
- "type": "int256",
427
- "indexed": false,
428
- "internalType": "int256"
429
- }
430
- ],
431
- "anonymous": false
432
- },
433
- {
434
- "type": "event",
435
- "name": "log_named_address",
436
- "inputs": [
437
- {
438
- "name": "key",
439
- "type": "string",
440
- "indexed": false,
441
- "internalType": "string"
442
- },
443
- {
444
- "name": "val",
445
- "type": "address",
446
- "indexed": false,
447
- "internalType": "address"
448
- }
449
- ],
450
- "anonymous": false
451
- },
452
- {
453
- "type": "event",
454
- "name": "log_named_array",
455
- "inputs": [
456
- {
457
- "name": "key",
458
- "type": "string",
459
- "indexed": false,
460
- "internalType": "string"
461
- },
462
- {
463
- "name": "val",
464
- "type": "uint256[]",
465
- "indexed": false,
466
- "internalType": "uint256[]"
467
- }
468
- ],
469
- "anonymous": false
470
- },
471
- {
472
- "type": "event",
473
- "name": "log_named_array",
474
- "inputs": [
475
- {
476
- "name": "key",
477
- "type": "string",
478
- "indexed": false,
479
- "internalType": "string"
480
- },
481
- {
482
- "name": "val",
483
- "type": "int256[]",
484
- "indexed": false,
485
- "internalType": "int256[]"
486
- }
487
- ],
488
- "anonymous": false
489
- },
490
- {
491
- "type": "event",
492
- "name": "log_named_array",
493
- "inputs": [
494
- {
495
- "name": "key",
496
- "type": "string",
497
- "indexed": false,
498
- "internalType": "string"
499
- },
500
- {
501
- "name": "val",
502
- "type": "address[]",
503
- "indexed": false,
504
- "internalType": "address[]"
505
- }
506
- ],
507
- "anonymous": false
508
- },
509
- {
510
- "type": "event",
511
- "name": "log_named_bytes",
512
- "inputs": [
513
- {
514
- "name": "key",
515
- "type": "string",
516
- "indexed": false,
517
- "internalType": "string"
518
- },
519
- {
520
- "name": "val",
521
- "type": "bytes",
522
- "indexed": false,
523
- "internalType": "bytes"
524
- }
525
- ],
526
- "anonymous": false
527
- },
528
- {
529
- "type": "event",
530
- "name": "log_named_bytes32",
531
- "inputs": [
532
- {
533
- "name": "key",
534
- "type": "string",
535
- "indexed": false,
536
- "internalType": "string"
537
- },
538
- {
539
- "name": "val",
540
- "type": "bytes32",
541
- "indexed": false,
542
- "internalType": "bytes32"
543
- }
544
- ],
545
- "anonymous": false
546
- },
547
- {
548
- "type": "event",
549
- "name": "log_named_decimal_int",
550
- "inputs": [
551
- {
552
- "name": "key",
553
- "type": "string",
554
- "indexed": false,
555
- "internalType": "string"
556
- },
557
- {
558
- "name": "val",
559
- "type": "int256",
560
- "indexed": false,
561
- "internalType": "int256"
562
- },
563
- {
564
- "name": "decimals",
565
- "type": "uint256",
566
- "indexed": false,
567
- "internalType": "uint256"
568
- }
569
- ],
570
- "anonymous": false
571
- },
572
- {
573
- "type": "event",
574
- "name": "log_named_decimal_uint",
575
- "inputs": [
576
- {
577
- "name": "key",
578
- "type": "string",
579
- "indexed": false,
580
- "internalType": "string"
581
- },
582
- {
583
- "name": "val",
584
- "type": "uint256",
585
- "indexed": false,
586
- "internalType": "uint256"
587
- },
588
- {
589
- "name": "decimals",
590
- "type": "uint256",
591
- "indexed": false,
592
- "internalType": "uint256"
593
- }
594
- ],
595
- "anonymous": false
596
- },
597
- {
598
- "type": "event",
599
- "name": "log_named_int",
600
- "inputs": [
601
- {
602
- "name": "key",
603
- "type": "string",
604
- "indexed": false,
605
- "internalType": "string"
606
- },
607
- {
608
- "name": "val",
609
- "type": "int256",
610
- "indexed": false,
611
- "internalType": "int256"
612
- }
613
- ],
614
- "anonymous": false
615
- },
616
- {
617
- "type": "event",
618
- "name": "log_named_string",
619
- "inputs": [
620
- {
621
- "name": "key",
622
- "type": "string",
623
- "indexed": false,
624
- "internalType": "string"
625
- },
626
- {
627
- "name": "val",
628
- "type": "string",
629
- "indexed": false,
630
- "internalType": "string"
631
- }
632
- ],
633
- "anonymous": false
634
- },
635
- {
636
- "type": "event",
637
- "name": "log_named_uint",
638
- "inputs": [
639
- {
640
- "name": "key",
641
- "type": "string",
642
- "indexed": false,
643
- "internalType": "string"
644
- },
645
- {
646
- "name": "val",
647
- "type": "uint256",
648
- "indexed": false,
649
- "internalType": "uint256"
650
- }
651
- ],
652
- "anonymous": false
653
- },
654
- {
655
- "type": "event",
656
- "name": "log_string",
657
- "inputs": [
658
- {
659
- "name": "",
660
- "type": "string",
661
- "indexed": false,
662
- "internalType": "string"
663
- }
664
- ],
665
- "anonymous": false
666
- },
667
- {
668
- "type": "event",
669
- "name": "log_uint",
670
- "inputs": [
671
- {
672
- "name": "",
673
- "type": "uint256",
674
- "indexed": false,
675
- "internalType": "uint256"
676
- }
677
- ],
678
- "anonymous": false
679
- },
680
- {
681
- "type": "event",
682
- "name": "logs",
683
- "inputs": [
684
- {
685
- "name": "",
686
- "type": "bytes",
687
- "indexed": false,
688
- "internalType": "bytes"
689
- }
690
- ],
691
- "anonymous": false
692
- },
693
- {
694
- "type": "error",
695
- "name": "Create2EmptyBytecode",
696
- "inputs": []
697
- },
698
- {
699
- "type": "error",
700
- "name": "Create2FailedDeployment",
701
- "inputs": []
702
- },
703
- {
704
- "type": "error",
705
- "name": "Create2InsufficientBalance",
706
- "inputs": [
707
- {
708
- "name": "balance",
709
- "type": "uint256",
710
- "internalType": "uint256"
711
- },
712
- {
713
- "name": "needed",
714
- "type": "uint256",
715
- "internalType": "uint256"
716
- }
717
- ]
718
- },
719
- {
720
- "type": "error",
721
- "name": "HookNotDeployed",
722
- "inputs": []
723
- },
724
- {
725
- "type": "error",
726
- "name": "InvalidHookAddress",
727
- "inputs": [
728
- {
729
- "name": "expected",
730
- "type": "address",
731
- "internalType": "address"
732
- },
733
- {
734
- "name": "actual",
735
- "type": "address",
736
- "internalType": "address"
737
- }
738
- ]
739
- }
740
- ]