@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,723 +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": "excludeArtifacts",
18
- "inputs": [],
19
- "outputs": [
20
- {
21
- "name": "excludedArtifacts_",
22
- "type": "string[]",
23
- "internalType": "string[]"
24
- }
25
- ],
26
- "stateMutability": "view"
27
- },
28
- {
29
- "type": "function",
30
- "name": "excludeContracts",
31
- "inputs": [],
32
- "outputs": [
33
- {
34
- "name": "excludedContracts_",
35
- "type": "address[]",
36
- "internalType": "address[]"
37
- }
38
- ],
39
- "stateMutability": "view"
40
- },
41
- {
42
- "type": "function",
43
- "name": "excludeSelectors",
44
- "inputs": [],
45
- "outputs": [
46
- {
47
- "name": "excludedSelectors_",
48
- "type": "tuple[]",
49
- "internalType": "struct StdInvariant.FuzzSelector[]",
50
- "components": [
51
- {
52
- "name": "addr",
53
- "type": "address",
54
- "internalType": "address"
55
- },
56
- {
57
- "name": "selectors",
58
- "type": "bytes4[]",
59
- "internalType": "bytes4[]"
60
- }
61
- ]
62
- }
63
- ],
64
- "stateMutability": "view"
65
- },
66
- {
67
- "type": "function",
68
- "name": "excludeSenders",
69
- "inputs": [],
70
- "outputs": [
71
- {
72
- "name": "excludedSenders_",
73
- "type": "address[]",
74
- "internalType": "address[]"
75
- }
76
- ],
77
- "stateMutability": "view"
78
- },
79
- {
80
- "type": "function",
81
- "name": "factoryProxy",
82
- "inputs": [],
83
- "outputs": [
84
- {
85
- "name": "",
86
- "type": "address",
87
- "internalType": "contract ZoraFactoryImpl"
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": "test_canCanFixBrokenContentCoinAndSwap",
266
- "inputs": [],
267
- "outputs": [],
268
- "stateMutability": "nonpayable"
269
- },
270
- {
271
- "type": "function",
272
- "name": "test_canUpgradeAndSwap",
273
- "inputs": [],
274
- "outputs": [],
275
- "stateMutability": "nonpayable"
276
- },
277
- {
278
- "type": "function",
279
- "name": "test_canUpgradeBrokenContentCoinAndSwap",
280
- "inputs": [],
281
- "outputs": [],
282
- "stateMutability": "nonpayable"
283
- },
284
- {
285
- "type": "function",
286
- "name": "test_canUpgradeBrokenCreatorCoinAndSwap",
287
- "inputs": [],
288
- "outputs": [],
289
- "stateMutability": "nonpayable"
290
- },
291
- {
292
- "type": "function",
293
- "name": "test_canUpgradeFromVersionWithoutContractName",
294
- "inputs": [],
295
- "outputs": [],
296
- "stateMutability": "nonpayable"
297
- },
298
- {
299
- "type": "function",
300
- "name": "test_canUpgradeToSameContractName",
301
- "inputs": [],
302
- "outputs": [],
303
- "stateMutability": "nonpayable"
304
- },
305
- {
306
- "type": "function",
307
- "name": "test_cannotUpgradeToMismatchedContractName",
308
- "inputs": [],
309
- "outputs": [],
310
- "stateMutability": "nonpayable"
311
- },
312
- {
313
- "type": "event",
314
- "name": "log",
315
- "inputs": [
316
- {
317
- "name": "",
318
- "type": "string",
319
- "indexed": false,
320
- "internalType": "string"
321
- }
322
- ],
323
- "anonymous": false
324
- },
325
- {
326
- "type": "event",
327
- "name": "log_address",
328
- "inputs": [
329
- {
330
- "name": "",
331
- "type": "address",
332
- "indexed": false,
333
- "internalType": "address"
334
- }
335
- ],
336
- "anonymous": false
337
- },
338
- {
339
- "type": "event",
340
- "name": "log_array",
341
- "inputs": [
342
- {
343
- "name": "val",
344
- "type": "uint256[]",
345
- "indexed": false,
346
- "internalType": "uint256[]"
347
- }
348
- ],
349
- "anonymous": false
350
- },
351
- {
352
- "type": "event",
353
- "name": "log_array",
354
- "inputs": [
355
- {
356
- "name": "val",
357
- "type": "int256[]",
358
- "indexed": false,
359
- "internalType": "int256[]"
360
- }
361
- ],
362
- "anonymous": false
363
- },
364
- {
365
- "type": "event",
366
- "name": "log_array",
367
- "inputs": [
368
- {
369
- "name": "val",
370
- "type": "address[]",
371
- "indexed": false,
372
- "internalType": "address[]"
373
- }
374
- ],
375
- "anonymous": false
376
- },
377
- {
378
- "type": "event",
379
- "name": "log_bytes",
380
- "inputs": [
381
- {
382
- "name": "",
383
- "type": "bytes",
384
- "indexed": false,
385
- "internalType": "bytes"
386
- }
387
- ],
388
- "anonymous": false
389
- },
390
- {
391
- "type": "event",
392
- "name": "log_bytes32",
393
- "inputs": [
394
- {
395
- "name": "",
396
- "type": "bytes32",
397
- "indexed": false,
398
- "internalType": "bytes32"
399
- }
400
- ],
401
- "anonymous": false
402
- },
403
- {
404
- "type": "event",
405
- "name": "log_int",
406
- "inputs": [
407
- {
408
- "name": "",
409
- "type": "int256",
410
- "indexed": false,
411
- "internalType": "int256"
412
- }
413
- ],
414
- "anonymous": false
415
- },
416
- {
417
- "type": "event",
418
- "name": "log_named_address",
419
- "inputs": [
420
- {
421
- "name": "key",
422
- "type": "string",
423
- "indexed": false,
424
- "internalType": "string"
425
- },
426
- {
427
- "name": "val",
428
- "type": "address",
429
- "indexed": false,
430
- "internalType": "address"
431
- }
432
- ],
433
- "anonymous": false
434
- },
435
- {
436
- "type": "event",
437
- "name": "log_named_array",
438
- "inputs": [
439
- {
440
- "name": "key",
441
- "type": "string",
442
- "indexed": false,
443
- "internalType": "string"
444
- },
445
- {
446
- "name": "val",
447
- "type": "uint256[]",
448
- "indexed": false,
449
- "internalType": "uint256[]"
450
- }
451
- ],
452
- "anonymous": false
453
- },
454
- {
455
- "type": "event",
456
- "name": "log_named_array",
457
- "inputs": [
458
- {
459
- "name": "key",
460
- "type": "string",
461
- "indexed": false,
462
- "internalType": "string"
463
- },
464
- {
465
- "name": "val",
466
- "type": "int256[]",
467
- "indexed": false,
468
- "internalType": "int256[]"
469
- }
470
- ],
471
- "anonymous": false
472
- },
473
- {
474
- "type": "event",
475
- "name": "log_named_array",
476
- "inputs": [
477
- {
478
- "name": "key",
479
- "type": "string",
480
- "indexed": false,
481
- "internalType": "string"
482
- },
483
- {
484
- "name": "val",
485
- "type": "address[]",
486
- "indexed": false,
487
- "internalType": "address[]"
488
- }
489
- ],
490
- "anonymous": false
491
- },
492
- {
493
- "type": "event",
494
- "name": "log_named_bytes",
495
- "inputs": [
496
- {
497
- "name": "key",
498
- "type": "string",
499
- "indexed": false,
500
- "internalType": "string"
501
- },
502
- {
503
- "name": "val",
504
- "type": "bytes",
505
- "indexed": false,
506
- "internalType": "bytes"
507
- }
508
- ],
509
- "anonymous": false
510
- },
511
- {
512
- "type": "event",
513
- "name": "log_named_bytes32",
514
- "inputs": [
515
- {
516
- "name": "key",
517
- "type": "string",
518
- "indexed": false,
519
- "internalType": "string"
520
- },
521
- {
522
- "name": "val",
523
- "type": "bytes32",
524
- "indexed": false,
525
- "internalType": "bytes32"
526
- }
527
- ],
528
- "anonymous": false
529
- },
530
- {
531
- "type": "event",
532
- "name": "log_named_decimal_int",
533
- "inputs": [
534
- {
535
- "name": "key",
536
- "type": "string",
537
- "indexed": false,
538
- "internalType": "string"
539
- },
540
- {
541
- "name": "val",
542
- "type": "int256",
543
- "indexed": false,
544
- "internalType": "int256"
545
- },
546
- {
547
- "name": "decimals",
548
- "type": "uint256",
549
- "indexed": false,
550
- "internalType": "uint256"
551
- }
552
- ],
553
- "anonymous": false
554
- },
555
- {
556
- "type": "event",
557
- "name": "log_named_decimal_uint",
558
- "inputs": [
559
- {
560
- "name": "key",
561
- "type": "string",
562
- "indexed": false,
563
- "internalType": "string"
564
- },
565
- {
566
- "name": "val",
567
- "type": "uint256",
568
- "indexed": false,
569
- "internalType": "uint256"
570
- },
571
- {
572
- "name": "decimals",
573
- "type": "uint256",
574
- "indexed": false,
575
- "internalType": "uint256"
576
- }
577
- ],
578
- "anonymous": false
579
- },
580
- {
581
- "type": "event",
582
- "name": "log_named_int",
583
- "inputs": [
584
- {
585
- "name": "key",
586
- "type": "string",
587
- "indexed": false,
588
- "internalType": "string"
589
- },
590
- {
591
- "name": "val",
592
- "type": "int256",
593
- "indexed": false,
594
- "internalType": "int256"
595
- }
596
- ],
597
- "anonymous": false
598
- },
599
- {
600
- "type": "event",
601
- "name": "log_named_string",
602
- "inputs": [
603
- {
604
- "name": "key",
605
- "type": "string",
606
- "indexed": false,
607
- "internalType": "string"
608
- },
609
- {
610
- "name": "val",
611
- "type": "string",
612
- "indexed": false,
613
- "internalType": "string"
614
- }
615
- ],
616
- "anonymous": false
617
- },
618
- {
619
- "type": "event",
620
- "name": "log_named_uint",
621
- "inputs": [
622
- {
623
- "name": "key",
624
- "type": "string",
625
- "indexed": false,
626
- "internalType": "string"
627
- },
628
- {
629
- "name": "val",
630
- "type": "uint256",
631
- "indexed": false,
632
- "internalType": "uint256"
633
- }
634
- ],
635
- "anonymous": false
636
- },
637
- {
638
- "type": "event",
639
- "name": "log_string",
640
- "inputs": [
641
- {
642
- "name": "",
643
- "type": "string",
644
- "indexed": false,
645
- "internalType": "string"
646
- }
647
- ],
648
- "anonymous": false
649
- },
650
- {
651
- "type": "event",
652
- "name": "log_uint",
653
- "inputs": [
654
- {
655
- "name": "",
656
- "type": "uint256",
657
- "indexed": false,
658
- "internalType": "uint256"
659
- }
660
- ],
661
- "anonymous": false
662
- },
663
- {
664
- "type": "event",
665
- "name": "logs",
666
- "inputs": [
667
- {
668
- "name": "",
669
- "type": "bytes",
670
- "indexed": false,
671
- "internalType": "bytes"
672
- }
673
- ],
674
- "anonymous": false
675
- },
676
- {
677
- "type": "error",
678
- "name": "Create2EmptyBytecode",
679
- "inputs": []
680
- },
681
- {
682
- "type": "error",
683
- "name": "Create2FailedDeployment",
684
- "inputs": []
685
- },
686
- {
687
- "type": "error",
688
- "name": "Create2InsufficientBalance",
689
- "inputs": [
690
- {
691
- "name": "balance",
692
- "type": "uint256",
693
- "internalType": "uint256"
694
- },
695
- {
696
- "name": "needed",
697
- "type": "uint256",
698
- "internalType": "uint256"
699
- }
700
- ]
701
- },
702
- {
703
- "type": "error",
704
- "name": "HookNotDeployed",
705
- "inputs": []
706
- },
707
- {
708
- "type": "error",
709
- "name": "InvalidHookAddress",
710
- "inputs": [
711
- {
712
- "name": "expected",
713
- "type": "address",
714
- "internalType": "address"
715
- },
716
- {
717
- "name": "actual",
718
- "type": "address",
719
- "internalType": "address"
720
- }
721
- ]
722
- }
723
- ]