@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,748 +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": "failed",
82
- "inputs": [],
83
- "outputs": [
84
- {
85
- "name": "",
86
- "type": "bool",
87
- "internalType": "bool"
88
- }
89
- ],
90
- "stateMutability": "view"
91
- },
92
- {
93
- "type": "function",
94
- "name": "getSalts",
95
- "inputs": [
96
- {
97
- "name": "trustedMessageSenders",
98
- "type": "address[]",
99
- "internalType": "address[]"
100
- }
101
- ],
102
- "outputs": [
103
- {
104
- "name": "contentCoinSalt",
105
- "type": "bytes32",
106
- "internalType": "bytes32"
107
- },
108
- {
109
- "name": "creatorCoinSalt",
110
- "type": "bytes32",
111
- "internalType": "bytes32"
112
- }
113
- ],
114
- "stateMutability": "nonpayable"
115
- },
116
- {
117
- "type": "function",
118
- "name": "setUp",
119
- "inputs": [],
120
- "outputs": [],
121
- "stateMutability": "nonpayable"
122
- },
123
- {
124
- "type": "function",
125
- "name": "setUpWithBlockNumber",
126
- "inputs": [
127
- {
128
- "name": "forkBlockNumber",
129
- "type": "uint256",
130
- "internalType": "uint256"
131
- }
132
- ],
133
- "outputs": [],
134
- "stateMutability": "nonpayable"
135
- },
136
- {
137
- "type": "function",
138
- "name": "targetArtifactSelectors",
139
- "inputs": [],
140
- "outputs": [
141
- {
142
- "name": "targetedArtifactSelectors_",
143
- "type": "tuple[]",
144
- "internalType": "struct StdInvariant.FuzzArtifactSelector[]",
145
- "components": [
146
- {
147
- "name": "artifact",
148
- "type": "string",
149
- "internalType": "string"
150
- },
151
- {
152
- "name": "selectors",
153
- "type": "bytes4[]",
154
- "internalType": "bytes4[]"
155
- }
156
- ]
157
- }
158
- ],
159
- "stateMutability": "view"
160
- },
161
- {
162
- "type": "function",
163
- "name": "targetArtifacts",
164
- "inputs": [],
165
- "outputs": [
166
- {
167
- "name": "targetedArtifacts_",
168
- "type": "string[]",
169
- "internalType": "string[]"
170
- }
171
- ],
172
- "stateMutability": "view"
173
- },
174
- {
175
- "type": "function",
176
- "name": "targetContracts",
177
- "inputs": [],
178
- "outputs": [
179
- {
180
- "name": "targetedContracts_",
181
- "type": "address[]",
182
- "internalType": "address[]"
183
- }
184
- ],
185
- "stateMutability": "view"
186
- },
187
- {
188
- "type": "function",
189
- "name": "targetInterfaces",
190
- "inputs": [],
191
- "outputs": [
192
- {
193
- "name": "targetedInterfaces_",
194
- "type": "tuple[]",
195
- "internalType": "struct StdInvariant.FuzzInterface[]",
196
- "components": [
197
- {
198
- "name": "addr",
199
- "type": "address",
200
- "internalType": "address"
201
- },
202
- {
203
- "name": "artifacts",
204
- "type": "string[]",
205
- "internalType": "string[]"
206
- }
207
- ]
208
- }
209
- ],
210
- "stateMutability": "view"
211
- },
212
- {
213
- "type": "function",
214
- "name": "targetSelectors",
215
- "inputs": [],
216
- "outputs": [
217
- {
218
- "name": "targetedSelectors_",
219
- "type": "tuple[]",
220
- "internalType": "struct StdInvariant.FuzzSelector[]",
221
- "components": [
222
- {
223
- "name": "addr",
224
- "type": "address",
225
- "internalType": "address"
226
- },
227
- {
228
- "name": "selectors",
229
- "type": "bytes4[]",
230
- "internalType": "bytes4[]"
231
- }
232
- ]
233
- }
234
- ],
235
- "stateMutability": "view"
236
- },
237
- {
238
- "type": "function",
239
- "name": "targetSenders",
240
- "inputs": [],
241
- "outputs": [
242
- {
243
- "name": "targetedSenders_",
244
- "type": "address[]",
245
- "internalType": "address[]"
246
- }
247
- ],
248
- "stateMutability": "view"
249
- },
250
- {
251
- "type": "function",
252
- "name": "test_coinAddress_canBePredicted",
253
- "inputs": [
254
- {
255
- "name": "msgSenderChanged",
256
- "type": "bool",
257
- "internalType": "bool"
258
- },
259
- {
260
- "name": "saltChanged",
261
- "type": "bool",
262
- "internalType": "bool"
263
- },
264
- {
265
- "name": "poolConfigChanged",
266
- "type": "bool",
267
- "internalType": "bool"
268
- },
269
- {
270
- "name": "platformReferrerChanged",
271
- "type": "bool",
272
- "internalType": "bool"
273
- },
274
- {
275
- "name": "nameChanged",
276
- "type": "bool",
277
- "internalType": "bool"
278
- },
279
- {
280
- "name": "symbolChanged",
281
- "type": "bool",
282
- "internalType": "bool"
283
- }
284
- ],
285
- "outputs": [],
286
- "stateMutability": "nonpayable"
287
- },
288
- {
289
- "type": "function",
290
- "name": "test_factory_constructor_and_proxy_setup",
291
- "inputs": [],
292
- "outputs": [],
293
- "stateMutability": "nonpayable"
294
- },
295
- {
296
- "type": "function",
297
- "name": "test_implementation_address",
298
- "inputs": [],
299
- "outputs": [],
300
- "stateMutability": "view"
301
- },
302
- {
303
- "type": "function",
304
- "name": "test_ownable2Step",
305
- "inputs": [],
306
- "outputs": [],
307
- "stateMutability": "nonpayable"
308
- },
309
- {
310
- "type": "function",
311
- "name": "test_revert_invalid_owner",
312
- "inputs": [],
313
- "outputs": [],
314
- "stateMutability": "nonpayable"
315
- },
316
- {
317
- "type": "function",
318
- "name": "test_revert_invalid_upgrade_impl",
319
- "inputs": [],
320
- "outputs": [],
321
- "stateMutability": "nonpayable"
322
- },
323
- {
324
- "type": "function",
325
- "name": "test_upgrade",
326
- "inputs": [],
327
- "outputs": [],
328
- "stateMutability": "nonpayable"
329
- },
330
- {
331
- "type": "function",
332
- "name": "test_upgrade_with_mismatched_contract_name",
333
- "inputs": [],
334
- "outputs": [],
335
- "stateMutability": "nonpayable"
336
- },
337
- {
338
- "type": "event",
339
- "name": "log",
340
- "inputs": [
341
- {
342
- "name": "",
343
- "type": "string",
344
- "indexed": false,
345
- "internalType": "string"
346
- }
347
- ],
348
- "anonymous": false
349
- },
350
- {
351
- "type": "event",
352
- "name": "log_address",
353
- "inputs": [
354
- {
355
- "name": "",
356
- "type": "address",
357
- "indexed": false,
358
- "internalType": "address"
359
- }
360
- ],
361
- "anonymous": false
362
- },
363
- {
364
- "type": "event",
365
- "name": "log_array",
366
- "inputs": [
367
- {
368
- "name": "val",
369
- "type": "uint256[]",
370
- "indexed": false,
371
- "internalType": "uint256[]"
372
- }
373
- ],
374
- "anonymous": false
375
- },
376
- {
377
- "type": "event",
378
- "name": "log_array",
379
- "inputs": [
380
- {
381
- "name": "val",
382
- "type": "int256[]",
383
- "indexed": false,
384
- "internalType": "int256[]"
385
- }
386
- ],
387
- "anonymous": false
388
- },
389
- {
390
- "type": "event",
391
- "name": "log_array",
392
- "inputs": [
393
- {
394
- "name": "val",
395
- "type": "address[]",
396
- "indexed": false,
397
- "internalType": "address[]"
398
- }
399
- ],
400
- "anonymous": false
401
- },
402
- {
403
- "type": "event",
404
- "name": "log_bytes",
405
- "inputs": [
406
- {
407
- "name": "",
408
- "type": "bytes",
409
- "indexed": false,
410
- "internalType": "bytes"
411
- }
412
- ],
413
- "anonymous": false
414
- },
415
- {
416
- "type": "event",
417
- "name": "log_bytes32",
418
- "inputs": [
419
- {
420
- "name": "",
421
- "type": "bytes32",
422
- "indexed": false,
423
- "internalType": "bytes32"
424
- }
425
- ],
426
- "anonymous": false
427
- },
428
- {
429
- "type": "event",
430
- "name": "log_int",
431
- "inputs": [
432
- {
433
- "name": "",
434
- "type": "int256",
435
- "indexed": false,
436
- "internalType": "int256"
437
- }
438
- ],
439
- "anonymous": false
440
- },
441
- {
442
- "type": "event",
443
- "name": "log_named_address",
444
- "inputs": [
445
- {
446
- "name": "key",
447
- "type": "string",
448
- "indexed": false,
449
- "internalType": "string"
450
- },
451
- {
452
- "name": "val",
453
- "type": "address",
454
- "indexed": false,
455
- "internalType": "address"
456
- }
457
- ],
458
- "anonymous": false
459
- },
460
- {
461
- "type": "event",
462
- "name": "log_named_array",
463
- "inputs": [
464
- {
465
- "name": "key",
466
- "type": "string",
467
- "indexed": false,
468
- "internalType": "string"
469
- },
470
- {
471
- "name": "val",
472
- "type": "uint256[]",
473
- "indexed": false,
474
- "internalType": "uint256[]"
475
- }
476
- ],
477
- "anonymous": false
478
- },
479
- {
480
- "type": "event",
481
- "name": "log_named_array",
482
- "inputs": [
483
- {
484
- "name": "key",
485
- "type": "string",
486
- "indexed": false,
487
- "internalType": "string"
488
- },
489
- {
490
- "name": "val",
491
- "type": "int256[]",
492
- "indexed": false,
493
- "internalType": "int256[]"
494
- }
495
- ],
496
- "anonymous": false
497
- },
498
- {
499
- "type": "event",
500
- "name": "log_named_array",
501
- "inputs": [
502
- {
503
- "name": "key",
504
- "type": "string",
505
- "indexed": false,
506
- "internalType": "string"
507
- },
508
- {
509
- "name": "val",
510
- "type": "address[]",
511
- "indexed": false,
512
- "internalType": "address[]"
513
- }
514
- ],
515
- "anonymous": false
516
- },
517
- {
518
- "type": "event",
519
- "name": "log_named_bytes",
520
- "inputs": [
521
- {
522
- "name": "key",
523
- "type": "string",
524
- "indexed": false,
525
- "internalType": "string"
526
- },
527
- {
528
- "name": "val",
529
- "type": "bytes",
530
- "indexed": false,
531
- "internalType": "bytes"
532
- }
533
- ],
534
- "anonymous": false
535
- },
536
- {
537
- "type": "event",
538
- "name": "log_named_bytes32",
539
- "inputs": [
540
- {
541
- "name": "key",
542
- "type": "string",
543
- "indexed": false,
544
- "internalType": "string"
545
- },
546
- {
547
- "name": "val",
548
- "type": "bytes32",
549
- "indexed": false,
550
- "internalType": "bytes32"
551
- }
552
- ],
553
- "anonymous": false
554
- },
555
- {
556
- "type": "event",
557
- "name": "log_named_decimal_int",
558
- "inputs": [
559
- {
560
- "name": "key",
561
- "type": "string",
562
- "indexed": false,
563
- "internalType": "string"
564
- },
565
- {
566
- "name": "val",
567
- "type": "int256",
568
- "indexed": false,
569
- "internalType": "int256"
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_decimal_uint",
583
- "inputs": [
584
- {
585
- "name": "key",
586
- "type": "string",
587
- "indexed": false,
588
- "internalType": "string"
589
- },
590
- {
591
- "name": "val",
592
- "type": "uint256",
593
- "indexed": false,
594
- "internalType": "uint256"
595
- },
596
- {
597
- "name": "decimals",
598
- "type": "uint256",
599
- "indexed": false,
600
- "internalType": "uint256"
601
- }
602
- ],
603
- "anonymous": false
604
- },
605
- {
606
- "type": "event",
607
- "name": "log_named_int",
608
- "inputs": [
609
- {
610
- "name": "key",
611
- "type": "string",
612
- "indexed": false,
613
- "internalType": "string"
614
- },
615
- {
616
- "name": "val",
617
- "type": "int256",
618
- "indexed": false,
619
- "internalType": "int256"
620
- }
621
- ],
622
- "anonymous": false
623
- },
624
- {
625
- "type": "event",
626
- "name": "log_named_string",
627
- "inputs": [
628
- {
629
- "name": "key",
630
- "type": "string",
631
- "indexed": false,
632
- "internalType": "string"
633
- },
634
- {
635
- "name": "val",
636
- "type": "string",
637
- "indexed": false,
638
- "internalType": "string"
639
- }
640
- ],
641
- "anonymous": false
642
- },
643
- {
644
- "type": "event",
645
- "name": "log_named_uint",
646
- "inputs": [
647
- {
648
- "name": "key",
649
- "type": "string",
650
- "indexed": false,
651
- "internalType": "string"
652
- },
653
- {
654
- "name": "val",
655
- "type": "uint256",
656
- "indexed": false,
657
- "internalType": "uint256"
658
- }
659
- ],
660
- "anonymous": false
661
- },
662
- {
663
- "type": "event",
664
- "name": "log_string",
665
- "inputs": [
666
- {
667
- "name": "",
668
- "type": "string",
669
- "indexed": false,
670
- "internalType": "string"
671
- }
672
- ],
673
- "anonymous": false
674
- },
675
- {
676
- "type": "event",
677
- "name": "log_uint",
678
- "inputs": [
679
- {
680
- "name": "",
681
- "type": "uint256",
682
- "indexed": false,
683
- "internalType": "uint256"
684
- }
685
- ],
686
- "anonymous": false
687
- },
688
- {
689
- "type": "event",
690
- "name": "logs",
691
- "inputs": [
692
- {
693
- "name": "",
694
- "type": "bytes",
695
- "indexed": false,
696
- "internalType": "bytes"
697
- }
698
- ],
699
- "anonymous": false
700
- },
701
- {
702
- "type": "error",
703
- "name": "Create2EmptyBytecode",
704
- "inputs": []
705
- },
706
- {
707
- "type": "error",
708
- "name": "Create2FailedDeployment",
709
- "inputs": []
710
- },
711
- {
712
- "type": "error",
713
- "name": "Create2InsufficientBalance",
714
- "inputs": [
715
- {
716
- "name": "balance",
717
- "type": "uint256",
718
- "internalType": "uint256"
719
- },
720
- {
721
- "name": "needed",
722
- "type": "uint256",
723
- "internalType": "uint256"
724
- }
725
- ]
726
- },
727
- {
728
- "type": "error",
729
- "name": "HookNotDeployed",
730
- "inputs": []
731
- },
732
- {
733
- "type": "error",
734
- "name": "InvalidHookAddress",
735
- "inputs": [
736
- {
737
- "name": "expected",
738
- "type": "address",
739
- "internalType": "address"
740
- },
741
- {
742
- "name": "actual",
743
- "type": "address",
744
- "internalType": "address"
745
- }
746
- ]
747
- }
748
- ]