@zoralabs/coins 0.7.1 → 0.9.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 (104) hide show
  1. package/.env +1 -0
  2. package/.turbo/turbo-build.log +114 -109
  3. package/.turbo/turbo-update-contract-version.log +22 -0
  4. package/CHANGELOG.md +28 -0
  5. package/abis/BadImpl.json +15 -0
  6. package/abis/BalanceDeltaLibrary.json +15 -0
  7. package/abis/BaseCoin.json +1442 -0
  8. package/abis/BaseCoinDeployHook.json +78 -0
  9. package/abis/BaseHook.json +897 -0
  10. package/abis/BaseTest.json +13 -91
  11. package/abis/BeforeSwapDeltaLibrary.json +15 -0
  12. package/abis/BuySupplyWithSwapRouterHook.json +126 -0
  13. package/abis/Coin.json +48 -92
  14. package/abis/CoinConstants.json +65 -0
  15. package/abis/CoinTest.json +13 -91
  16. package/abis/CoinV4.json +1664 -0
  17. package/abis/CurrencyLibrary.json +25 -0
  18. package/abis/DeployHooks.json +9 -0
  19. package/abis/DopplerUniswapV3Test.json +13 -91
  20. package/abis/FactoryTest.json +13 -91
  21. package/abis/FakeHookNoInterface.json +21 -0
  22. package/abis/HookDeployer.json +68 -0
  23. package/abis/Hooks.json +28 -0
  24. package/abis/HooksTest.json +651 -0
  25. package/abis/IAllowanceTransfer.json +486 -0
  26. package/abis/ICoin.json +25 -1
  27. package/abis/ICoinDeployHook.json +31 -0
  28. package/abis/IContractMetadata.json +28 -0
  29. package/abis/IEIP712.json +15 -0
  30. package/abis/IEIP712_v4.json +15 -0
  31. package/abis/IERC20Minimal.json +172 -0
  32. package/abis/IERC6909Claims.json +288 -0
  33. package/abis/IERC721Permit_v4.json +88 -0
  34. package/abis/IExtsload.json +64 -0
  35. package/abis/IExttload.json +40 -0
  36. package/abis/IHasAfterCoinDeploy.json +31 -0
  37. package/abis/IHasContractName.json +15 -0
  38. package/abis/IHookDeployer.json +42 -0
  39. package/abis/IHooks.json +789 -0
  40. package/abis/IImmutableState.json +15 -0
  41. package/abis/IMulticall_v4.json +21 -0
  42. package/abis/INotifier.json +187 -0
  43. package/abis/IPermit2.json +865 -0
  44. package/abis/IPermit2Forwarder.json +138 -0
  45. package/abis/IPoolInitializer_v4.json +53 -0
  46. package/abis/IPoolManager.json +1286 -0
  47. package/abis/IPositionManager.json +712 -0
  48. package/abis/IProtocolFees.json +174 -0
  49. package/abis/ISignatureTransfer.json +394 -0
  50. package/abis/ISubscriber.json +89 -0
  51. package/abis/ISwapRouter.json +82 -0
  52. package/abis/IUnorderedNonce.json +44 -0
  53. package/abis/IV4Router.json +47 -0
  54. package/abis/IZoraFactory.json +144 -0
  55. package/abis/IZoraV4CoinHook.json +83 -0
  56. package/abis/ImmutableState.json +36 -0
  57. package/abis/LPFeeLibrary.json +65 -0
  58. package/abis/MultiOwnableTest.json +13 -91
  59. package/abis/Simulate.json +0 -91
  60. package/abis/UniV3BuySell.json +12 -0
  61. package/abis/UniV3Errors.json +32 -0
  62. package/abis/UpgradeFactoryImpl.json +9 -0
  63. package/abis/UpgradesTest.json +604 -0
  64. package/abis/ZoraFactoryImpl.json +111 -0
  65. package/abis/ZoraV4CoinHook.json +989 -0
  66. package/addresses/8453.json +2 -1
  67. package/addresses/84532.json +4 -3
  68. package/dist/index.cjs +125 -62
  69. package/dist/index.cjs.map +1 -1
  70. package/dist/index.js +120 -56
  71. package/dist/index.js.map +1 -1
  72. package/dist/wagmiGenerated.d.ts +212 -464
  73. package/dist/wagmiGenerated.d.ts.map +1 -1
  74. package/package/wagmiGenerated.ts +122 -66
  75. package/package.json +4 -4
  76. package/script/CoinsDeployerBase.sol +32 -0
  77. package/script/DeployHooks.s.sol +22 -0
  78. package/script/Simulate.s.sol +3 -2
  79. package/script/UpgradeCoinImpl.sol +2 -2
  80. package/script/UpgradeFactoryImpl.s.sol +23 -0
  81. package/src/Coin.sol +35 -342
  82. package/src/ZoraFactoryImpl.sol +73 -45
  83. package/src/hooks/BaseCoinDeployHook.sol +62 -0
  84. package/src/hooks/BuySupplyWithSwapRouterHook.sol +78 -0
  85. package/src/interfaces/ICoin.sol +5 -1
  86. package/src/interfaces/ICoinDeployHook.sol +8 -0
  87. package/src/interfaces/ISwapRouter.sol +1 -35
  88. package/src/interfaces/IZoraFactory.sol +52 -0
  89. package/src/{utils → libs}/CoinConstants.sol +6 -6
  90. package/src/libs/CoinLegacy.sol +4 -4
  91. package/src/libs/CoinLegacyMarket.sol +182 -0
  92. package/src/libs/CoinSetupV3.sol +111 -0
  93. package/src/libs/UniV3BuySell.sol +449 -0
  94. package/src/libs/UniV3Errors.sol +11 -0
  95. package/src/version/ContractVersionBase.sol +1 -1
  96. package/test/Coin.t.sol +20 -17
  97. package/test/CoinDopplerUniV3.t.sol +7 -17
  98. package/test/Factory.t.sol +4 -3
  99. package/test/Hooks.t.sol +274 -0
  100. package/test/Upgrades.t.sol +67 -0
  101. package/test/utils/BaseTest.sol +18 -3
  102. package/wagmi.config.ts +6 -9
  103. package/src/libs/CoinSetup.sol +0 -37
  104. /package/abis/{CoinSetup.json → CoinSetupV3.json} +0 -0
@@ -0,0 +1,712 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "DOMAIN_SEPARATOR",
5
+ "inputs": [],
6
+ "outputs": [
7
+ {
8
+ "name": "",
9
+ "type": "bytes32",
10
+ "internalType": "bytes32"
11
+ }
12
+ ],
13
+ "stateMutability": "view"
14
+ },
15
+ {
16
+ "type": "function",
17
+ "name": "getPoolAndPositionInfo",
18
+ "inputs": [
19
+ {
20
+ "name": "tokenId",
21
+ "type": "uint256",
22
+ "internalType": "uint256"
23
+ }
24
+ ],
25
+ "outputs": [
26
+ {
27
+ "name": "",
28
+ "type": "tuple",
29
+ "internalType": "struct PoolKey",
30
+ "components": [
31
+ {
32
+ "name": "currency0",
33
+ "type": "address",
34
+ "internalType": "Currency"
35
+ },
36
+ {
37
+ "name": "currency1",
38
+ "type": "address",
39
+ "internalType": "Currency"
40
+ },
41
+ {
42
+ "name": "fee",
43
+ "type": "uint24",
44
+ "internalType": "uint24"
45
+ },
46
+ {
47
+ "name": "tickSpacing",
48
+ "type": "int24",
49
+ "internalType": "int24"
50
+ },
51
+ {
52
+ "name": "hooks",
53
+ "type": "address",
54
+ "internalType": "contract IHooks"
55
+ }
56
+ ]
57
+ },
58
+ {
59
+ "name": "",
60
+ "type": "uint256",
61
+ "internalType": "PositionInfo"
62
+ }
63
+ ],
64
+ "stateMutability": "view"
65
+ },
66
+ {
67
+ "type": "function",
68
+ "name": "getPositionLiquidity",
69
+ "inputs": [
70
+ {
71
+ "name": "tokenId",
72
+ "type": "uint256",
73
+ "internalType": "uint256"
74
+ }
75
+ ],
76
+ "outputs": [
77
+ {
78
+ "name": "liquidity",
79
+ "type": "uint128",
80
+ "internalType": "uint128"
81
+ }
82
+ ],
83
+ "stateMutability": "view"
84
+ },
85
+ {
86
+ "type": "function",
87
+ "name": "initializePool",
88
+ "inputs": [
89
+ {
90
+ "name": "key",
91
+ "type": "tuple",
92
+ "internalType": "struct PoolKey",
93
+ "components": [
94
+ {
95
+ "name": "currency0",
96
+ "type": "address",
97
+ "internalType": "Currency"
98
+ },
99
+ {
100
+ "name": "currency1",
101
+ "type": "address",
102
+ "internalType": "Currency"
103
+ },
104
+ {
105
+ "name": "fee",
106
+ "type": "uint24",
107
+ "internalType": "uint24"
108
+ },
109
+ {
110
+ "name": "tickSpacing",
111
+ "type": "int24",
112
+ "internalType": "int24"
113
+ },
114
+ {
115
+ "name": "hooks",
116
+ "type": "address",
117
+ "internalType": "contract IHooks"
118
+ }
119
+ ]
120
+ },
121
+ {
122
+ "name": "sqrtPriceX96",
123
+ "type": "uint160",
124
+ "internalType": "uint160"
125
+ }
126
+ ],
127
+ "outputs": [
128
+ {
129
+ "name": "",
130
+ "type": "int24",
131
+ "internalType": "int24"
132
+ }
133
+ ],
134
+ "stateMutability": "payable"
135
+ },
136
+ {
137
+ "type": "function",
138
+ "name": "modifyLiquidities",
139
+ "inputs": [
140
+ {
141
+ "name": "unlockData",
142
+ "type": "bytes",
143
+ "internalType": "bytes"
144
+ },
145
+ {
146
+ "name": "deadline",
147
+ "type": "uint256",
148
+ "internalType": "uint256"
149
+ }
150
+ ],
151
+ "outputs": [],
152
+ "stateMutability": "payable"
153
+ },
154
+ {
155
+ "type": "function",
156
+ "name": "modifyLiquiditiesWithoutUnlock",
157
+ "inputs": [
158
+ {
159
+ "name": "actions",
160
+ "type": "bytes",
161
+ "internalType": "bytes"
162
+ },
163
+ {
164
+ "name": "params",
165
+ "type": "bytes[]",
166
+ "internalType": "bytes[]"
167
+ }
168
+ ],
169
+ "outputs": [],
170
+ "stateMutability": "payable"
171
+ },
172
+ {
173
+ "type": "function",
174
+ "name": "multicall",
175
+ "inputs": [
176
+ {
177
+ "name": "data",
178
+ "type": "bytes[]",
179
+ "internalType": "bytes[]"
180
+ }
181
+ ],
182
+ "outputs": [
183
+ {
184
+ "name": "results",
185
+ "type": "bytes[]",
186
+ "internalType": "bytes[]"
187
+ }
188
+ ],
189
+ "stateMutability": "payable"
190
+ },
191
+ {
192
+ "type": "function",
193
+ "name": "nextTokenId",
194
+ "inputs": [],
195
+ "outputs": [
196
+ {
197
+ "name": "",
198
+ "type": "uint256",
199
+ "internalType": "uint256"
200
+ }
201
+ ],
202
+ "stateMutability": "view"
203
+ },
204
+ {
205
+ "type": "function",
206
+ "name": "nonces",
207
+ "inputs": [
208
+ {
209
+ "name": "owner",
210
+ "type": "address",
211
+ "internalType": "address"
212
+ },
213
+ {
214
+ "name": "word",
215
+ "type": "uint256",
216
+ "internalType": "uint256"
217
+ }
218
+ ],
219
+ "outputs": [
220
+ {
221
+ "name": "",
222
+ "type": "uint256",
223
+ "internalType": "uint256"
224
+ }
225
+ ],
226
+ "stateMutability": "view"
227
+ },
228
+ {
229
+ "type": "function",
230
+ "name": "permit",
231
+ "inputs": [
232
+ {
233
+ "name": "spender",
234
+ "type": "address",
235
+ "internalType": "address"
236
+ },
237
+ {
238
+ "name": "tokenId",
239
+ "type": "uint256",
240
+ "internalType": "uint256"
241
+ },
242
+ {
243
+ "name": "deadline",
244
+ "type": "uint256",
245
+ "internalType": "uint256"
246
+ },
247
+ {
248
+ "name": "nonce",
249
+ "type": "uint256",
250
+ "internalType": "uint256"
251
+ },
252
+ {
253
+ "name": "signature",
254
+ "type": "bytes",
255
+ "internalType": "bytes"
256
+ }
257
+ ],
258
+ "outputs": [],
259
+ "stateMutability": "payable"
260
+ },
261
+ {
262
+ "type": "function",
263
+ "name": "permit",
264
+ "inputs": [
265
+ {
266
+ "name": "owner",
267
+ "type": "address",
268
+ "internalType": "address"
269
+ },
270
+ {
271
+ "name": "permitSingle",
272
+ "type": "tuple",
273
+ "internalType": "struct IAllowanceTransfer.PermitSingle",
274
+ "components": [
275
+ {
276
+ "name": "details",
277
+ "type": "tuple",
278
+ "internalType": "struct IAllowanceTransfer.PermitDetails",
279
+ "components": [
280
+ {
281
+ "name": "token",
282
+ "type": "address",
283
+ "internalType": "address"
284
+ },
285
+ {
286
+ "name": "amount",
287
+ "type": "uint160",
288
+ "internalType": "uint160"
289
+ },
290
+ {
291
+ "name": "expiration",
292
+ "type": "uint48",
293
+ "internalType": "uint48"
294
+ },
295
+ {
296
+ "name": "nonce",
297
+ "type": "uint48",
298
+ "internalType": "uint48"
299
+ }
300
+ ]
301
+ },
302
+ {
303
+ "name": "spender",
304
+ "type": "address",
305
+ "internalType": "address"
306
+ },
307
+ {
308
+ "name": "sigDeadline",
309
+ "type": "uint256",
310
+ "internalType": "uint256"
311
+ }
312
+ ]
313
+ },
314
+ {
315
+ "name": "signature",
316
+ "type": "bytes",
317
+ "internalType": "bytes"
318
+ }
319
+ ],
320
+ "outputs": [
321
+ {
322
+ "name": "err",
323
+ "type": "bytes",
324
+ "internalType": "bytes"
325
+ }
326
+ ],
327
+ "stateMutability": "payable"
328
+ },
329
+ {
330
+ "type": "function",
331
+ "name": "permitBatch",
332
+ "inputs": [
333
+ {
334
+ "name": "owner",
335
+ "type": "address",
336
+ "internalType": "address"
337
+ },
338
+ {
339
+ "name": "_permitBatch",
340
+ "type": "tuple",
341
+ "internalType": "struct IAllowanceTransfer.PermitBatch",
342
+ "components": [
343
+ {
344
+ "name": "details",
345
+ "type": "tuple[]",
346
+ "internalType": "struct IAllowanceTransfer.PermitDetails[]",
347
+ "components": [
348
+ {
349
+ "name": "token",
350
+ "type": "address",
351
+ "internalType": "address"
352
+ },
353
+ {
354
+ "name": "amount",
355
+ "type": "uint160",
356
+ "internalType": "uint160"
357
+ },
358
+ {
359
+ "name": "expiration",
360
+ "type": "uint48",
361
+ "internalType": "uint48"
362
+ },
363
+ {
364
+ "name": "nonce",
365
+ "type": "uint48",
366
+ "internalType": "uint48"
367
+ }
368
+ ]
369
+ },
370
+ {
371
+ "name": "spender",
372
+ "type": "address",
373
+ "internalType": "address"
374
+ },
375
+ {
376
+ "name": "sigDeadline",
377
+ "type": "uint256",
378
+ "internalType": "uint256"
379
+ }
380
+ ]
381
+ },
382
+ {
383
+ "name": "signature",
384
+ "type": "bytes",
385
+ "internalType": "bytes"
386
+ }
387
+ ],
388
+ "outputs": [
389
+ {
390
+ "name": "err",
391
+ "type": "bytes",
392
+ "internalType": "bytes"
393
+ }
394
+ ],
395
+ "stateMutability": "payable"
396
+ },
397
+ {
398
+ "type": "function",
399
+ "name": "permitForAll",
400
+ "inputs": [
401
+ {
402
+ "name": "owner",
403
+ "type": "address",
404
+ "internalType": "address"
405
+ },
406
+ {
407
+ "name": "operator",
408
+ "type": "address",
409
+ "internalType": "address"
410
+ },
411
+ {
412
+ "name": "approved",
413
+ "type": "bool",
414
+ "internalType": "bool"
415
+ },
416
+ {
417
+ "name": "deadline",
418
+ "type": "uint256",
419
+ "internalType": "uint256"
420
+ },
421
+ {
422
+ "name": "nonce",
423
+ "type": "uint256",
424
+ "internalType": "uint256"
425
+ },
426
+ {
427
+ "name": "signature",
428
+ "type": "bytes",
429
+ "internalType": "bytes"
430
+ }
431
+ ],
432
+ "outputs": [],
433
+ "stateMutability": "payable"
434
+ },
435
+ {
436
+ "type": "function",
437
+ "name": "poolManager",
438
+ "inputs": [],
439
+ "outputs": [
440
+ {
441
+ "name": "",
442
+ "type": "address",
443
+ "internalType": "contract IPoolManager"
444
+ }
445
+ ],
446
+ "stateMutability": "view"
447
+ },
448
+ {
449
+ "type": "function",
450
+ "name": "positionInfo",
451
+ "inputs": [
452
+ {
453
+ "name": "tokenId",
454
+ "type": "uint256",
455
+ "internalType": "uint256"
456
+ }
457
+ ],
458
+ "outputs": [
459
+ {
460
+ "name": "",
461
+ "type": "uint256",
462
+ "internalType": "PositionInfo"
463
+ }
464
+ ],
465
+ "stateMutability": "view"
466
+ },
467
+ {
468
+ "type": "function",
469
+ "name": "revokeNonce",
470
+ "inputs": [
471
+ {
472
+ "name": "nonce",
473
+ "type": "uint256",
474
+ "internalType": "uint256"
475
+ }
476
+ ],
477
+ "outputs": [],
478
+ "stateMutability": "payable"
479
+ },
480
+ {
481
+ "type": "function",
482
+ "name": "subscribe",
483
+ "inputs": [
484
+ {
485
+ "name": "tokenId",
486
+ "type": "uint256",
487
+ "internalType": "uint256"
488
+ },
489
+ {
490
+ "name": "newSubscriber",
491
+ "type": "address",
492
+ "internalType": "address"
493
+ },
494
+ {
495
+ "name": "data",
496
+ "type": "bytes",
497
+ "internalType": "bytes"
498
+ }
499
+ ],
500
+ "outputs": [],
501
+ "stateMutability": "payable"
502
+ },
503
+ {
504
+ "type": "function",
505
+ "name": "subscriber",
506
+ "inputs": [
507
+ {
508
+ "name": "tokenId",
509
+ "type": "uint256",
510
+ "internalType": "uint256"
511
+ }
512
+ ],
513
+ "outputs": [
514
+ {
515
+ "name": "subscriber",
516
+ "type": "address",
517
+ "internalType": "contract ISubscriber"
518
+ }
519
+ ],
520
+ "stateMutability": "view"
521
+ },
522
+ {
523
+ "type": "function",
524
+ "name": "unsubscribe",
525
+ "inputs": [
526
+ {
527
+ "name": "tokenId",
528
+ "type": "uint256",
529
+ "internalType": "uint256"
530
+ }
531
+ ],
532
+ "outputs": [],
533
+ "stateMutability": "payable"
534
+ },
535
+ {
536
+ "type": "function",
537
+ "name": "unsubscribeGasLimit",
538
+ "inputs": [],
539
+ "outputs": [
540
+ {
541
+ "name": "",
542
+ "type": "uint256",
543
+ "internalType": "uint256"
544
+ }
545
+ ],
546
+ "stateMutability": "view"
547
+ },
548
+ {
549
+ "type": "event",
550
+ "name": "Subscription",
551
+ "inputs": [
552
+ {
553
+ "name": "tokenId",
554
+ "type": "uint256",
555
+ "indexed": true,
556
+ "internalType": "uint256"
557
+ },
558
+ {
559
+ "name": "subscriber",
560
+ "type": "address",
561
+ "indexed": true,
562
+ "internalType": "address"
563
+ }
564
+ ],
565
+ "anonymous": false
566
+ },
567
+ {
568
+ "type": "event",
569
+ "name": "Unsubscription",
570
+ "inputs": [
571
+ {
572
+ "name": "tokenId",
573
+ "type": "uint256",
574
+ "indexed": true,
575
+ "internalType": "uint256"
576
+ },
577
+ {
578
+ "name": "subscriber",
579
+ "type": "address",
580
+ "indexed": true,
581
+ "internalType": "address"
582
+ }
583
+ ],
584
+ "anonymous": false
585
+ },
586
+ {
587
+ "type": "error",
588
+ "name": "AlreadySubscribed",
589
+ "inputs": [
590
+ {
591
+ "name": "tokenId",
592
+ "type": "uint256",
593
+ "internalType": "uint256"
594
+ },
595
+ {
596
+ "name": "subscriber",
597
+ "type": "address",
598
+ "internalType": "address"
599
+ }
600
+ ]
601
+ },
602
+ {
603
+ "type": "error",
604
+ "name": "BurnNotificationReverted",
605
+ "inputs": [
606
+ {
607
+ "name": "subscriber",
608
+ "type": "address",
609
+ "internalType": "address"
610
+ },
611
+ {
612
+ "name": "reason",
613
+ "type": "bytes",
614
+ "internalType": "bytes"
615
+ }
616
+ ]
617
+ },
618
+ {
619
+ "type": "error",
620
+ "name": "DeadlinePassed",
621
+ "inputs": [
622
+ {
623
+ "name": "deadline",
624
+ "type": "uint256",
625
+ "internalType": "uint256"
626
+ }
627
+ ]
628
+ },
629
+ {
630
+ "type": "error",
631
+ "name": "GasLimitTooLow",
632
+ "inputs": []
633
+ },
634
+ {
635
+ "type": "error",
636
+ "name": "ModifyLiquidityNotificationReverted",
637
+ "inputs": [
638
+ {
639
+ "name": "subscriber",
640
+ "type": "address",
641
+ "internalType": "address"
642
+ },
643
+ {
644
+ "name": "reason",
645
+ "type": "bytes",
646
+ "internalType": "bytes"
647
+ }
648
+ ]
649
+ },
650
+ {
651
+ "type": "error",
652
+ "name": "NoCodeSubscriber",
653
+ "inputs": []
654
+ },
655
+ {
656
+ "type": "error",
657
+ "name": "NoSelfPermit",
658
+ "inputs": []
659
+ },
660
+ {
661
+ "type": "error",
662
+ "name": "NonceAlreadyUsed",
663
+ "inputs": []
664
+ },
665
+ {
666
+ "type": "error",
667
+ "name": "NotApproved",
668
+ "inputs": [
669
+ {
670
+ "name": "caller",
671
+ "type": "address",
672
+ "internalType": "address"
673
+ }
674
+ ]
675
+ },
676
+ {
677
+ "type": "error",
678
+ "name": "NotSubscribed",
679
+ "inputs": []
680
+ },
681
+ {
682
+ "type": "error",
683
+ "name": "PoolManagerMustBeLocked",
684
+ "inputs": []
685
+ },
686
+ {
687
+ "type": "error",
688
+ "name": "SignatureDeadlineExpired",
689
+ "inputs": []
690
+ },
691
+ {
692
+ "type": "error",
693
+ "name": "SubscriptionReverted",
694
+ "inputs": [
695
+ {
696
+ "name": "subscriber",
697
+ "type": "address",
698
+ "internalType": "address"
699
+ },
700
+ {
701
+ "name": "reason",
702
+ "type": "bytes",
703
+ "internalType": "bytes"
704
+ }
705
+ ]
706
+ },
707
+ {
708
+ "type": "error",
709
+ "name": "Unauthorized",
710
+ "inputs": []
711
+ }
712
+ ]