@zoralabs/coins 2.0.0 → 2.1.1

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 (72) hide show
  1. package/.turbo/turbo-build.log +107 -114
  2. package/CHANGELOG.md +34 -0
  3. package/README.md +30 -109
  4. package/abis/BaseCoin.json +442 -0
  5. package/abis/CoinTest.json +3 -246
  6. package/abis/FactoryTest.json +5 -137
  7. package/abis/HooksTest.json +0 -26
  8. package/abis/ICoin.json +378 -0
  9. package/abis/ICoinV3.json +378 -0
  10. package/abis/IZoraFactory.json +0 -18
  11. package/abis/LiquidityMigrationTest.json +101 -0
  12. package/abis/MockBadFactory.json +15 -0
  13. package/abis/ZoraFactoryImpl.json +1 -67
  14. package/dist/index.cjs +236 -265
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.js +235 -264
  17. package/dist/index.js.map +1 -1
  18. package/dist/wagmiGenerated.d.ts +389 -493
  19. package/dist/wagmiGenerated.d.ts.map +1 -1
  20. package/foundry.toml +1 -3
  21. package/package/wagmiGenerated.ts +240 -269
  22. package/package.json +3 -3
  23. package/script/DeployPostDeploymentHooks.s.sol +2 -2
  24. package/script/TestBackingCoinSwap.s.sol +8 -8
  25. package/script/TestV4Swap.s.sol +8 -8
  26. package/script/UpgradeFactoryImpl.s.sol +0 -1
  27. package/src/BaseCoin.sol +111 -7
  28. package/src/ContentCoin.sol +4 -4
  29. package/src/CreatorCoin.sol +5 -5
  30. package/src/ZoraFactoryImpl.sol +10 -93
  31. package/src/deployment/CoinsDeployerBase.sol +10 -27
  32. package/src/hooks/BaseZoraV4CoinHook.sol +5 -5
  33. package/src/hooks/ContentCoinHook.sol +2 -2
  34. package/src/hooks/deployment/BuySupplyWithSwapRouterHook.sol +4 -5
  35. package/src/interfaces/ICoin.sol +67 -1
  36. package/src/interfaces/ICreatorCoin.sol +2 -2
  37. package/src/interfaces/IZoraFactory.sol +0 -5
  38. package/src/libs/CoinConfigurationVersions.sol +1 -39
  39. package/src/libs/CoinRewardsV4.sol +2 -2
  40. package/src/libs/CoinSetup.sol +1 -4
  41. package/src/libs/MarketConstants.sol +0 -4
  42. package/src/libs/UniV4SwapHelper.sol +1 -1
  43. package/src/libs/UniV4SwapToCurrency.sol +2 -2
  44. package/src/libs/V4Liquidity.sol +1 -1
  45. package/src/version/ContractVersionBase.sol +1 -1
  46. package/test/Coin.t.sol +112 -535
  47. package/test/CoinUniV4.t.sol +7 -7
  48. package/test/DeploymentHooks.t.sol +5 -102
  49. package/test/Factory.t.sol +23 -306
  50. package/test/LiquidityMigration.t.sol +160 -2
  51. package/test/MultiOwnable.t.sol +36 -36
  52. package/test/Upgrades.t.sol +16 -35
  53. package/test/utils/BaseTest.sol +16 -69
  54. package/test/utils/FeeEstimatorHook.sol +3 -3
  55. package/wagmi.config.ts +1 -1
  56. package/abis/BaseCoinV4.json +0 -1840
  57. package/abis/Coin.json +0 -1912
  58. package/abis/DopplerUniswapV3Test.json +0 -800
  59. package/abis/ICoinV4.json +0 -1048
  60. package/abis/Simulate.json +0 -29
  61. package/abis/UniV3BuySell.json +0 -12
  62. package/abis/UniV3Errors.json +0 -32
  63. package/script/Simulate.s.sol +0 -59
  64. package/src/BaseCoinV4.sol +0 -143
  65. package/src/Coin.sol +0 -236
  66. package/src/interfaces/ICoinV4.sol +0 -74
  67. package/src/libs/CoinDopplerUniV3.sol +0 -50
  68. package/src/libs/CoinRewards.sol +0 -201
  69. package/src/libs/CoinSetupV3.sol +0 -50
  70. package/src/libs/UniV3BuySell.sol +0 -231
  71. package/src/libs/UniV3Errors.sol +0 -11
  72. package/test/CoinDopplerUniV3.t.sol +0 -310
@@ -1,1840 +0,0 @@
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": "addOwner",
18
- "inputs": [
19
- {
20
- "name": "account",
21
- "type": "address",
22
- "internalType": "address"
23
- }
24
- ],
25
- "outputs": [],
26
- "stateMutability": "nonpayable"
27
- },
28
- {
29
- "type": "function",
30
- "name": "addOwners",
31
- "inputs": [
32
- {
33
- "name": "accounts",
34
- "type": "address[]",
35
- "internalType": "address[]"
36
- }
37
- ],
38
- "outputs": [],
39
- "stateMutability": "nonpayable"
40
- },
41
- {
42
- "type": "function",
43
- "name": "airlock",
44
- "inputs": [],
45
- "outputs": [
46
- {
47
- "name": "",
48
- "type": "address",
49
- "internalType": "address"
50
- }
51
- ],
52
- "stateMutability": "view"
53
- },
54
- {
55
- "type": "function",
56
- "name": "allowance",
57
- "inputs": [
58
- {
59
- "name": "owner",
60
- "type": "address",
61
- "internalType": "address"
62
- },
63
- {
64
- "name": "spender",
65
- "type": "address",
66
- "internalType": "address"
67
- }
68
- ],
69
- "outputs": [
70
- {
71
- "name": "",
72
- "type": "uint256",
73
- "internalType": "uint256"
74
- }
75
- ],
76
- "stateMutability": "view"
77
- },
78
- {
79
- "type": "function",
80
- "name": "approve",
81
- "inputs": [
82
- {
83
- "name": "spender",
84
- "type": "address",
85
- "internalType": "address"
86
- },
87
- {
88
- "name": "value",
89
- "type": "uint256",
90
- "internalType": "uint256"
91
- }
92
- ],
93
- "outputs": [
94
- {
95
- "name": "",
96
- "type": "bool",
97
- "internalType": "bool"
98
- }
99
- ],
100
- "stateMutability": "nonpayable"
101
- },
102
- {
103
- "type": "function",
104
- "name": "balanceOf",
105
- "inputs": [
106
- {
107
- "name": "account",
108
- "type": "address",
109
- "internalType": "address"
110
- }
111
- ],
112
- "outputs": [
113
- {
114
- "name": "",
115
- "type": "uint256",
116
- "internalType": "uint256"
117
- }
118
- ],
119
- "stateMutability": "view"
120
- },
121
- {
122
- "type": "function",
123
- "name": "burn",
124
- "inputs": [
125
- {
126
- "name": "amount",
127
- "type": "uint256",
128
- "internalType": "uint256"
129
- }
130
- ],
131
- "outputs": [],
132
- "stateMutability": "nonpayable"
133
- },
134
- {
135
- "type": "function",
136
- "name": "contractURI",
137
- "inputs": [],
138
- "outputs": [
139
- {
140
- "name": "",
141
- "type": "string",
142
- "internalType": "string"
143
- }
144
- ],
145
- "stateMutability": "view"
146
- },
147
- {
148
- "type": "function",
149
- "name": "contractVersion",
150
- "inputs": [],
151
- "outputs": [
152
- {
153
- "name": "",
154
- "type": "string",
155
- "internalType": "string"
156
- }
157
- ],
158
- "stateMutability": "pure"
159
- },
160
- {
161
- "type": "function",
162
- "name": "currency",
163
- "inputs": [],
164
- "outputs": [
165
- {
166
- "name": "",
167
- "type": "address",
168
- "internalType": "address"
169
- }
170
- ],
171
- "stateMutability": "view"
172
- },
173
- {
174
- "type": "function",
175
- "name": "decimals",
176
- "inputs": [],
177
- "outputs": [
178
- {
179
- "name": "",
180
- "type": "uint8",
181
- "internalType": "uint8"
182
- }
183
- ],
184
- "stateMutability": "view"
185
- },
186
- {
187
- "type": "function",
188
- "name": "dopplerFeeRecipient",
189
- "inputs": [],
190
- "outputs": [
191
- {
192
- "name": "",
193
- "type": "address",
194
- "internalType": "address"
195
- }
196
- ],
197
- "stateMutability": "view"
198
- },
199
- {
200
- "type": "function",
201
- "name": "eip712Domain",
202
- "inputs": [],
203
- "outputs": [
204
- {
205
- "name": "fields",
206
- "type": "bytes1",
207
- "internalType": "bytes1"
208
- },
209
- {
210
- "name": "name",
211
- "type": "string",
212
- "internalType": "string"
213
- },
214
- {
215
- "name": "version",
216
- "type": "string",
217
- "internalType": "string"
218
- },
219
- {
220
- "name": "chainId",
221
- "type": "uint256",
222
- "internalType": "uint256"
223
- },
224
- {
225
- "name": "verifyingContract",
226
- "type": "address",
227
- "internalType": "address"
228
- },
229
- {
230
- "name": "salt",
231
- "type": "bytes32",
232
- "internalType": "bytes32"
233
- },
234
- {
235
- "name": "extensions",
236
- "type": "uint256[]",
237
- "internalType": "uint256[]"
238
- }
239
- ],
240
- "stateMutability": "view"
241
- },
242
- {
243
- "type": "function",
244
- "name": "getPayoutSwapPath",
245
- "inputs": [
246
- {
247
- "name": "coinVersionLookup",
248
- "type": "address",
249
- "internalType": "contract IDeployedCoinVersionLookup"
250
- }
251
- ],
252
- "outputs": [
253
- {
254
- "name": "payoutSwapPath",
255
- "type": "tuple",
256
- "internalType": "struct IHasSwapPath.PayoutSwapPath",
257
- "components": [
258
- {
259
- "name": "path",
260
- "type": "tuple[]",
261
- "internalType": "struct PathKey[]",
262
- "components": [
263
- {
264
- "name": "intermediateCurrency",
265
- "type": "address",
266
- "internalType": "Currency"
267
- },
268
- {
269
- "name": "fee",
270
- "type": "uint24",
271
- "internalType": "uint24"
272
- },
273
- {
274
- "name": "tickSpacing",
275
- "type": "int24",
276
- "internalType": "int24"
277
- },
278
- {
279
- "name": "hooks",
280
- "type": "address",
281
- "internalType": "contract IHooks"
282
- },
283
- {
284
- "name": "hookData",
285
- "type": "bytes",
286
- "internalType": "bytes"
287
- }
288
- ]
289
- },
290
- {
291
- "name": "currencyIn",
292
- "type": "address",
293
- "internalType": "Currency"
294
- }
295
- ]
296
- }
297
- ],
298
- "stateMutability": "view"
299
- },
300
- {
301
- "type": "function",
302
- "name": "getPoolConfiguration",
303
- "inputs": [],
304
- "outputs": [
305
- {
306
- "name": "",
307
- "type": "tuple",
308
- "internalType": "struct PoolConfiguration",
309
- "components": [
310
- {
311
- "name": "version",
312
- "type": "uint8",
313
- "internalType": "uint8"
314
- },
315
- {
316
- "name": "numPositions",
317
- "type": "uint16",
318
- "internalType": "uint16"
319
- },
320
- {
321
- "name": "fee",
322
- "type": "uint24",
323
- "internalType": "uint24"
324
- },
325
- {
326
- "name": "tickSpacing",
327
- "type": "int24",
328
- "internalType": "int24"
329
- },
330
- {
331
- "name": "numDiscoveryPositions",
332
- "type": "uint16[]",
333
- "internalType": "uint16[]"
334
- },
335
- {
336
- "name": "tickLower",
337
- "type": "int24[]",
338
- "internalType": "int24[]"
339
- },
340
- {
341
- "name": "tickUpper",
342
- "type": "int24[]",
343
- "internalType": "int24[]"
344
- },
345
- {
346
- "name": "maxDiscoverySupplyShare",
347
- "type": "uint256[]",
348
- "internalType": "uint256[]"
349
- }
350
- ]
351
- }
352
- ],
353
- "stateMutability": "view"
354
- },
355
- {
356
- "type": "function",
357
- "name": "getPoolKey",
358
- "inputs": [],
359
- "outputs": [
360
- {
361
- "name": "",
362
- "type": "tuple",
363
- "internalType": "struct PoolKey",
364
- "components": [
365
- {
366
- "name": "currency0",
367
- "type": "address",
368
- "internalType": "Currency"
369
- },
370
- {
371
- "name": "currency1",
372
- "type": "address",
373
- "internalType": "Currency"
374
- },
375
- {
376
- "name": "fee",
377
- "type": "uint24",
378
- "internalType": "uint24"
379
- },
380
- {
381
- "name": "tickSpacing",
382
- "type": "int24",
383
- "internalType": "int24"
384
- },
385
- {
386
- "name": "hooks",
387
- "type": "address",
388
- "internalType": "contract IHooks"
389
- }
390
- ]
391
- }
392
- ],
393
- "stateMutability": "view"
394
- },
395
- {
396
- "type": "function",
397
- "name": "hooks",
398
- "inputs": [],
399
- "outputs": [
400
- {
401
- "name": "",
402
- "type": "address",
403
- "internalType": "contract IHooks"
404
- }
405
- ],
406
- "stateMutability": "view"
407
- },
408
- {
409
- "type": "function",
410
- "name": "initialize",
411
- "inputs": [
412
- {
413
- "name": "payoutRecipient_",
414
- "type": "address",
415
- "internalType": "address"
416
- },
417
- {
418
- "name": "owners_",
419
- "type": "address[]",
420
- "internalType": "address[]"
421
- },
422
- {
423
- "name": "tokenURI_",
424
- "type": "string",
425
- "internalType": "string"
426
- },
427
- {
428
- "name": "name_",
429
- "type": "string",
430
- "internalType": "string"
431
- },
432
- {
433
- "name": "symbol_",
434
- "type": "string",
435
- "internalType": "string"
436
- },
437
- {
438
- "name": "platformReferrer_",
439
- "type": "address",
440
- "internalType": "address"
441
- },
442
- {
443
- "name": "currency_",
444
- "type": "address",
445
- "internalType": "address"
446
- },
447
- {
448
- "name": "poolKey_",
449
- "type": "tuple",
450
- "internalType": "struct PoolKey",
451
- "components": [
452
- {
453
- "name": "currency0",
454
- "type": "address",
455
- "internalType": "Currency"
456
- },
457
- {
458
- "name": "currency1",
459
- "type": "address",
460
- "internalType": "Currency"
461
- },
462
- {
463
- "name": "fee",
464
- "type": "uint24",
465
- "internalType": "uint24"
466
- },
467
- {
468
- "name": "tickSpacing",
469
- "type": "int24",
470
- "internalType": "int24"
471
- },
472
- {
473
- "name": "hooks",
474
- "type": "address",
475
- "internalType": "contract IHooks"
476
- }
477
- ]
478
- },
479
- {
480
- "name": "sqrtPriceX96",
481
- "type": "uint160",
482
- "internalType": "uint160"
483
- },
484
- {
485
- "name": "poolConfiguration_",
486
- "type": "tuple",
487
- "internalType": "struct PoolConfiguration",
488
- "components": [
489
- {
490
- "name": "version",
491
- "type": "uint8",
492
- "internalType": "uint8"
493
- },
494
- {
495
- "name": "numPositions",
496
- "type": "uint16",
497
- "internalType": "uint16"
498
- },
499
- {
500
- "name": "fee",
501
- "type": "uint24",
502
- "internalType": "uint24"
503
- },
504
- {
505
- "name": "tickSpacing",
506
- "type": "int24",
507
- "internalType": "int24"
508
- },
509
- {
510
- "name": "numDiscoveryPositions",
511
- "type": "uint16[]",
512
- "internalType": "uint16[]"
513
- },
514
- {
515
- "name": "tickLower",
516
- "type": "int24[]",
517
- "internalType": "int24[]"
518
- },
519
- {
520
- "name": "tickUpper",
521
- "type": "int24[]",
522
- "internalType": "int24[]"
523
- },
524
- {
525
- "name": "maxDiscoverySupplyShare",
526
- "type": "uint256[]",
527
- "internalType": "uint256[]"
528
- }
529
- ]
530
- }
531
- ],
532
- "outputs": [],
533
- "stateMutability": "nonpayable"
534
- },
535
- {
536
- "type": "function",
537
- "name": "isOwner",
538
- "inputs": [
539
- {
540
- "name": "account",
541
- "type": "address",
542
- "internalType": "address"
543
- }
544
- ],
545
- "outputs": [
546
- {
547
- "name": "",
548
- "type": "bool",
549
- "internalType": "bool"
550
- }
551
- ],
552
- "stateMutability": "view"
553
- },
554
- {
555
- "type": "function",
556
- "name": "migrateLiquidity",
557
- "inputs": [
558
- {
559
- "name": "newHook",
560
- "type": "address",
561
- "internalType": "address"
562
- },
563
- {
564
- "name": "additionalData",
565
- "type": "bytes",
566
- "internalType": "bytes"
567
- }
568
- ],
569
- "outputs": [
570
- {
571
- "name": "newPoolKey",
572
- "type": "tuple",
573
- "internalType": "struct PoolKey",
574
- "components": [
575
- {
576
- "name": "currency0",
577
- "type": "address",
578
- "internalType": "Currency"
579
- },
580
- {
581
- "name": "currency1",
582
- "type": "address",
583
- "internalType": "Currency"
584
- },
585
- {
586
- "name": "fee",
587
- "type": "uint24",
588
- "internalType": "uint24"
589
- },
590
- {
591
- "name": "tickSpacing",
592
- "type": "int24",
593
- "internalType": "int24"
594
- },
595
- {
596
- "name": "hooks",
597
- "type": "address",
598
- "internalType": "contract IHooks"
599
- }
600
- ]
601
- }
602
- ],
603
- "stateMutability": "nonpayable"
604
- },
605
- {
606
- "type": "function",
607
- "name": "name",
608
- "inputs": [],
609
- "outputs": [
610
- {
611
- "name": "",
612
- "type": "string",
613
- "internalType": "string"
614
- }
615
- ],
616
- "stateMutability": "view"
617
- },
618
- {
619
- "type": "function",
620
- "name": "nonces",
621
- "inputs": [
622
- {
623
- "name": "owner",
624
- "type": "address",
625
- "internalType": "address"
626
- }
627
- ],
628
- "outputs": [
629
- {
630
- "name": "",
631
- "type": "uint256",
632
- "internalType": "uint256"
633
- }
634
- ],
635
- "stateMutability": "view"
636
- },
637
- {
638
- "type": "function",
639
- "name": "owners",
640
- "inputs": [],
641
- "outputs": [
642
- {
643
- "name": "",
644
- "type": "address[]",
645
- "internalType": "address[]"
646
- }
647
- ],
648
- "stateMutability": "view"
649
- },
650
- {
651
- "type": "function",
652
- "name": "payoutRecipient",
653
- "inputs": [],
654
- "outputs": [
655
- {
656
- "name": "",
657
- "type": "address",
658
- "internalType": "address"
659
- }
660
- ],
661
- "stateMutability": "view"
662
- },
663
- {
664
- "type": "function",
665
- "name": "permit",
666
- "inputs": [
667
- {
668
- "name": "owner",
669
- "type": "address",
670
- "internalType": "address"
671
- },
672
- {
673
- "name": "spender",
674
- "type": "address",
675
- "internalType": "address"
676
- },
677
- {
678
- "name": "value",
679
- "type": "uint256",
680
- "internalType": "uint256"
681
- },
682
- {
683
- "name": "deadline",
684
- "type": "uint256",
685
- "internalType": "uint256"
686
- },
687
- {
688
- "name": "v",
689
- "type": "uint8",
690
- "internalType": "uint8"
691
- },
692
- {
693
- "name": "r",
694
- "type": "bytes32",
695
- "internalType": "bytes32"
696
- },
697
- {
698
- "name": "s",
699
- "type": "bytes32",
700
- "internalType": "bytes32"
701
- }
702
- ],
703
- "outputs": [],
704
- "stateMutability": "nonpayable"
705
- },
706
- {
707
- "type": "function",
708
- "name": "platformReferrer",
709
- "inputs": [],
710
- "outputs": [
711
- {
712
- "name": "",
713
- "type": "address",
714
- "internalType": "address"
715
- }
716
- ],
717
- "stateMutability": "view"
718
- },
719
- {
720
- "type": "function",
721
- "name": "poolManager",
722
- "inputs": [],
723
- "outputs": [
724
- {
725
- "name": "",
726
- "type": "address",
727
- "internalType": "contract IPoolManager"
728
- }
729
- ],
730
- "stateMutability": "view"
731
- },
732
- {
733
- "type": "function",
734
- "name": "protocolRewardRecipient",
735
- "inputs": [],
736
- "outputs": [
737
- {
738
- "name": "",
739
- "type": "address",
740
- "internalType": "address"
741
- }
742
- ],
743
- "stateMutability": "view"
744
- },
745
- {
746
- "type": "function",
747
- "name": "protocolRewards",
748
- "inputs": [],
749
- "outputs": [
750
- {
751
- "name": "",
752
- "type": "address",
753
- "internalType": "address"
754
- }
755
- ],
756
- "stateMutability": "view"
757
- },
758
- {
759
- "type": "function",
760
- "name": "removeOwner",
761
- "inputs": [
762
- {
763
- "name": "account",
764
- "type": "address",
765
- "internalType": "address"
766
- }
767
- ],
768
- "outputs": [],
769
- "stateMutability": "nonpayable"
770
- },
771
- {
772
- "type": "function",
773
- "name": "removeOwners",
774
- "inputs": [
775
- {
776
- "name": "accounts",
777
- "type": "address[]",
778
- "internalType": "address[]"
779
- }
780
- ],
781
- "outputs": [],
782
- "stateMutability": "nonpayable"
783
- },
784
- {
785
- "type": "function",
786
- "name": "revokeOwnership",
787
- "inputs": [],
788
- "outputs": [],
789
- "stateMutability": "nonpayable"
790
- },
791
- {
792
- "type": "function",
793
- "name": "setContractURI",
794
- "inputs": [
795
- {
796
- "name": "newURI",
797
- "type": "string",
798
- "internalType": "string"
799
- }
800
- ],
801
- "outputs": [],
802
- "stateMutability": "nonpayable"
803
- },
804
- {
805
- "type": "function",
806
- "name": "setNameAndSymbol",
807
- "inputs": [
808
- {
809
- "name": "newName",
810
- "type": "string",
811
- "internalType": "string"
812
- },
813
- {
814
- "name": "newSymbol",
815
- "type": "string",
816
- "internalType": "string"
817
- }
818
- ],
819
- "outputs": [],
820
- "stateMutability": "nonpayable"
821
- },
822
- {
823
- "type": "function",
824
- "name": "setPayoutRecipient",
825
- "inputs": [
826
- {
827
- "name": "newPayoutRecipient",
828
- "type": "address",
829
- "internalType": "address"
830
- }
831
- ],
832
- "outputs": [],
833
- "stateMutability": "nonpayable"
834
- },
835
- {
836
- "type": "function",
837
- "name": "supportsInterface",
838
- "inputs": [
839
- {
840
- "name": "interfaceId",
841
- "type": "bytes4",
842
- "internalType": "bytes4"
843
- }
844
- ],
845
- "outputs": [
846
- {
847
- "name": "",
848
- "type": "bool",
849
- "internalType": "bool"
850
- }
851
- ],
852
- "stateMutability": "view"
853
- },
854
- {
855
- "type": "function",
856
- "name": "symbol",
857
- "inputs": [],
858
- "outputs": [
859
- {
860
- "name": "",
861
- "type": "string",
862
- "internalType": "string"
863
- }
864
- ],
865
- "stateMutability": "view"
866
- },
867
- {
868
- "type": "function",
869
- "name": "tokenURI",
870
- "inputs": [],
871
- "outputs": [
872
- {
873
- "name": "",
874
- "type": "string",
875
- "internalType": "string"
876
- }
877
- ],
878
- "stateMutability": "view"
879
- },
880
- {
881
- "type": "function",
882
- "name": "totalSupply",
883
- "inputs": [],
884
- "outputs": [
885
- {
886
- "name": "",
887
- "type": "uint256",
888
- "internalType": "uint256"
889
- }
890
- ],
891
- "stateMutability": "view"
892
- },
893
- {
894
- "type": "function",
895
- "name": "transfer",
896
- "inputs": [
897
- {
898
- "name": "to",
899
- "type": "address",
900
- "internalType": "address"
901
- },
902
- {
903
- "name": "value",
904
- "type": "uint256",
905
- "internalType": "uint256"
906
- }
907
- ],
908
- "outputs": [
909
- {
910
- "name": "",
911
- "type": "bool",
912
- "internalType": "bool"
913
- }
914
- ],
915
- "stateMutability": "nonpayable"
916
- },
917
- {
918
- "type": "function",
919
- "name": "transferFrom",
920
- "inputs": [
921
- {
922
- "name": "from",
923
- "type": "address",
924
- "internalType": "address"
925
- },
926
- {
927
- "name": "to",
928
- "type": "address",
929
- "internalType": "address"
930
- },
931
- {
932
- "name": "value",
933
- "type": "uint256",
934
- "internalType": "uint256"
935
- }
936
- ],
937
- "outputs": [
938
- {
939
- "name": "",
940
- "type": "bool",
941
- "internalType": "bool"
942
- }
943
- ],
944
- "stateMutability": "nonpayable"
945
- },
946
- {
947
- "type": "event",
948
- "name": "Approval",
949
- "inputs": [
950
- {
951
- "name": "owner",
952
- "type": "address",
953
- "indexed": true,
954
- "internalType": "address"
955
- },
956
- {
957
- "name": "spender",
958
- "type": "address",
959
- "indexed": true,
960
- "internalType": "address"
961
- },
962
- {
963
- "name": "value",
964
- "type": "uint256",
965
- "indexed": false,
966
- "internalType": "uint256"
967
- }
968
- ],
969
- "anonymous": false
970
- },
971
- {
972
- "type": "event",
973
- "name": "CoinBuy",
974
- "inputs": [
975
- {
976
- "name": "buyer",
977
- "type": "address",
978
- "indexed": true,
979
- "internalType": "address"
980
- },
981
- {
982
- "name": "recipient",
983
- "type": "address",
984
- "indexed": true,
985
- "internalType": "address"
986
- },
987
- {
988
- "name": "tradeReferrer",
989
- "type": "address",
990
- "indexed": true,
991
- "internalType": "address"
992
- },
993
- {
994
- "name": "coinsPurchased",
995
- "type": "uint256",
996
- "indexed": false,
997
- "internalType": "uint256"
998
- },
999
- {
1000
- "name": "currency",
1001
- "type": "address",
1002
- "indexed": false,
1003
- "internalType": "address"
1004
- },
1005
- {
1006
- "name": "amountFee",
1007
- "type": "uint256",
1008
- "indexed": false,
1009
- "internalType": "uint256"
1010
- },
1011
- {
1012
- "name": "amountSold",
1013
- "type": "uint256",
1014
- "indexed": false,
1015
- "internalType": "uint256"
1016
- }
1017
- ],
1018
- "anonymous": false
1019
- },
1020
- {
1021
- "type": "event",
1022
- "name": "CoinMarketRewards",
1023
- "inputs": [
1024
- {
1025
- "name": "payoutRecipient",
1026
- "type": "address",
1027
- "indexed": true,
1028
- "internalType": "address"
1029
- },
1030
- {
1031
- "name": "platformReferrer",
1032
- "type": "address",
1033
- "indexed": true,
1034
- "internalType": "address"
1035
- },
1036
- {
1037
- "name": "protocolRewardRecipient",
1038
- "type": "address",
1039
- "indexed": false,
1040
- "internalType": "address"
1041
- },
1042
- {
1043
- "name": "currency",
1044
- "type": "address",
1045
- "indexed": false,
1046
- "internalType": "address"
1047
- },
1048
- {
1049
- "name": "marketRewards",
1050
- "type": "tuple",
1051
- "indexed": false,
1052
- "internalType": "struct ICoin.MarketRewards",
1053
- "components": [
1054
- {
1055
- "name": "totalAmountCurrency",
1056
- "type": "uint256",
1057
- "internalType": "uint256"
1058
- },
1059
- {
1060
- "name": "totalAmountCoin",
1061
- "type": "uint256",
1062
- "internalType": "uint256"
1063
- },
1064
- {
1065
- "name": "creatorPayoutAmountCurrency",
1066
- "type": "uint256",
1067
- "internalType": "uint256"
1068
- },
1069
- {
1070
- "name": "creatorPayoutAmountCoin",
1071
- "type": "uint256",
1072
- "internalType": "uint256"
1073
- },
1074
- {
1075
- "name": "platformReferrerAmountCurrency",
1076
- "type": "uint256",
1077
- "internalType": "uint256"
1078
- },
1079
- {
1080
- "name": "platformReferrerAmountCoin",
1081
- "type": "uint256",
1082
- "internalType": "uint256"
1083
- },
1084
- {
1085
- "name": "protocolAmountCurrency",
1086
- "type": "uint256",
1087
- "internalType": "uint256"
1088
- },
1089
- {
1090
- "name": "protocolAmountCoin",
1091
- "type": "uint256",
1092
- "internalType": "uint256"
1093
- }
1094
- ]
1095
- }
1096
- ],
1097
- "anonymous": false
1098
- },
1099
- {
1100
- "type": "event",
1101
- "name": "CoinPayoutRecipientUpdated",
1102
- "inputs": [
1103
- {
1104
- "name": "caller",
1105
- "type": "address",
1106
- "indexed": true,
1107
- "internalType": "address"
1108
- },
1109
- {
1110
- "name": "prevRecipient",
1111
- "type": "address",
1112
- "indexed": true,
1113
- "internalType": "address"
1114
- },
1115
- {
1116
- "name": "newRecipient",
1117
- "type": "address",
1118
- "indexed": true,
1119
- "internalType": "address"
1120
- }
1121
- ],
1122
- "anonymous": false
1123
- },
1124
- {
1125
- "type": "event",
1126
- "name": "CoinSell",
1127
- "inputs": [
1128
- {
1129
- "name": "seller",
1130
- "type": "address",
1131
- "indexed": true,
1132
- "internalType": "address"
1133
- },
1134
- {
1135
- "name": "recipient",
1136
- "type": "address",
1137
- "indexed": true,
1138
- "internalType": "address"
1139
- },
1140
- {
1141
- "name": "tradeReferrer",
1142
- "type": "address",
1143
- "indexed": true,
1144
- "internalType": "address"
1145
- },
1146
- {
1147
- "name": "coinsSold",
1148
- "type": "uint256",
1149
- "indexed": false,
1150
- "internalType": "uint256"
1151
- },
1152
- {
1153
- "name": "currency",
1154
- "type": "address",
1155
- "indexed": false,
1156
- "internalType": "address"
1157
- },
1158
- {
1159
- "name": "amountFee",
1160
- "type": "uint256",
1161
- "indexed": false,
1162
- "internalType": "uint256"
1163
- },
1164
- {
1165
- "name": "amountPurchased",
1166
- "type": "uint256",
1167
- "indexed": false,
1168
- "internalType": "uint256"
1169
- }
1170
- ],
1171
- "anonymous": false
1172
- },
1173
- {
1174
- "type": "event",
1175
- "name": "CoinTradeRewards",
1176
- "inputs": [
1177
- {
1178
- "name": "payoutRecipient",
1179
- "type": "address",
1180
- "indexed": true,
1181
- "internalType": "address"
1182
- },
1183
- {
1184
- "name": "platformReferrer",
1185
- "type": "address",
1186
- "indexed": true,
1187
- "internalType": "address"
1188
- },
1189
- {
1190
- "name": "tradeReferrer",
1191
- "type": "address",
1192
- "indexed": true,
1193
- "internalType": "address"
1194
- },
1195
- {
1196
- "name": "protocolRewardRecipient",
1197
- "type": "address",
1198
- "indexed": false,
1199
- "internalType": "address"
1200
- },
1201
- {
1202
- "name": "creatorReward",
1203
- "type": "uint256",
1204
- "indexed": false,
1205
- "internalType": "uint256"
1206
- },
1207
- {
1208
- "name": "platformReferrerReward",
1209
- "type": "uint256",
1210
- "indexed": false,
1211
- "internalType": "uint256"
1212
- },
1213
- {
1214
- "name": "traderReferrerReward",
1215
- "type": "uint256",
1216
- "indexed": false,
1217
- "internalType": "uint256"
1218
- },
1219
- {
1220
- "name": "protocolReward",
1221
- "type": "uint256",
1222
- "indexed": false,
1223
- "internalType": "uint256"
1224
- },
1225
- {
1226
- "name": "currency",
1227
- "type": "address",
1228
- "indexed": false,
1229
- "internalType": "address"
1230
- }
1231
- ],
1232
- "anonymous": false
1233
- },
1234
- {
1235
- "type": "event",
1236
- "name": "CoinTransfer",
1237
- "inputs": [
1238
- {
1239
- "name": "sender",
1240
- "type": "address",
1241
- "indexed": true,
1242
- "internalType": "address"
1243
- },
1244
- {
1245
- "name": "recipient",
1246
- "type": "address",
1247
- "indexed": true,
1248
- "internalType": "address"
1249
- },
1250
- {
1251
- "name": "amount",
1252
- "type": "uint256",
1253
- "indexed": false,
1254
- "internalType": "uint256"
1255
- },
1256
- {
1257
- "name": "senderBalance",
1258
- "type": "uint256",
1259
- "indexed": false,
1260
- "internalType": "uint256"
1261
- },
1262
- {
1263
- "name": "recipientBalance",
1264
- "type": "uint256",
1265
- "indexed": false,
1266
- "internalType": "uint256"
1267
- }
1268
- ],
1269
- "anonymous": false
1270
- },
1271
- {
1272
- "type": "event",
1273
- "name": "ContractMetadataUpdated",
1274
- "inputs": [
1275
- {
1276
- "name": "caller",
1277
- "type": "address",
1278
- "indexed": true,
1279
- "internalType": "address"
1280
- },
1281
- {
1282
- "name": "newURI",
1283
- "type": "string",
1284
- "indexed": false,
1285
- "internalType": "string"
1286
- },
1287
- {
1288
- "name": "name",
1289
- "type": "string",
1290
- "indexed": false,
1291
- "internalType": "string"
1292
- }
1293
- ],
1294
- "anonymous": false
1295
- },
1296
- {
1297
- "type": "event",
1298
- "name": "ContractURIUpdated",
1299
- "inputs": [],
1300
- "anonymous": false
1301
- },
1302
- {
1303
- "type": "event",
1304
- "name": "EIP712DomainChanged",
1305
- "inputs": [],
1306
- "anonymous": false
1307
- },
1308
- {
1309
- "type": "event",
1310
- "name": "Initialized",
1311
- "inputs": [
1312
- {
1313
- "name": "version",
1314
- "type": "uint64",
1315
- "indexed": false,
1316
- "internalType": "uint64"
1317
- }
1318
- ],
1319
- "anonymous": false
1320
- },
1321
- {
1322
- "type": "event",
1323
- "name": "LiquidityMigrated",
1324
- "inputs": [
1325
- {
1326
- "name": "fromPoolKey",
1327
- "type": "tuple",
1328
- "indexed": false,
1329
- "internalType": "struct PoolKey",
1330
- "components": [
1331
- {
1332
- "name": "currency0",
1333
- "type": "address",
1334
- "internalType": "Currency"
1335
- },
1336
- {
1337
- "name": "currency1",
1338
- "type": "address",
1339
- "internalType": "Currency"
1340
- },
1341
- {
1342
- "name": "fee",
1343
- "type": "uint24",
1344
- "internalType": "uint24"
1345
- },
1346
- {
1347
- "name": "tickSpacing",
1348
- "type": "int24",
1349
- "internalType": "int24"
1350
- },
1351
- {
1352
- "name": "hooks",
1353
- "type": "address",
1354
- "internalType": "contract IHooks"
1355
- }
1356
- ]
1357
- },
1358
- {
1359
- "name": "fromPoolKeyHash",
1360
- "type": "bytes32",
1361
- "indexed": false,
1362
- "internalType": "bytes32"
1363
- },
1364
- {
1365
- "name": "toPoolKey",
1366
- "type": "tuple",
1367
- "indexed": false,
1368
- "internalType": "struct PoolKey",
1369
- "components": [
1370
- {
1371
- "name": "currency0",
1372
- "type": "address",
1373
- "internalType": "Currency"
1374
- },
1375
- {
1376
- "name": "currency1",
1377
- "type": "address",
1378
- "internalType": "Currency"
1379
- },
1380
- {
1381
- "name": "fee",
1382
- "type": "uint24",
1383
- "internalType": "uint24"
1384
- },
1385
- {
1386
- "name": "tickSpacing",
1387
- "type": "int24",
1388
- "internalType": "int24"
1389
- },
1390
- {
1391
- "name": "hooks",
1392
- "type": "address",
1393
- "internalType": "contract IHooks"
1394
- }
1395
- ]
1396
- },
1397
- {
1398
- "name": "toPoolKeyHash",
1399
- "type": "bytes32",
1400
- "indexed": false,
1401
- "internalType": "bytes32"
1402
- }
1403
- ],
1404
- "anonymous": false
1405
- },
1406
- {
1407
- "type": "event",
1408
- "name": "NameAndSymbolUpdated",
1409
- "inputs": [
1410
- {
1411
- "name": "caller",
1412
- "type": "address",
1413
- "indexed": true,
1414
- "internalType": "address"
1415
- },
1416
- {
1417
- "name": "newName",
1418
- "type": "string",
1419
- "indexed": false,
1420
- "internalType": "string"
1421
- },
1422
- {
1423
- "name": "newSymbol",
1424
- "type": "string",
1425
- "indexed": false,
1426
- "internalType": "string"
1427
- }
1428
- ],
1429
- "anonymous": false
1430
- },
1431
- {
1432
- "type": "event",
1433
- "name": "OwnerUpdated",
1434
- "inputs": [
1435
- {
1436
- "name": "caller",
1437
- "type": "address",
1438
- "indexed": true,
1439
- "internalType": "address"
1440
- },
1441
- {
1442
- "name": "prevOwner",
1443
- "type": "address",
1444
- "indexed": true,
1445
- "internalType": "address"
1446
- },
1447
- {
1448
- "name": "newOwner",
1449
- "type": "address",
1450
- "indexed": true,
1451
- "internalType": "address"
1452
- }
1453
- ],
1454
- "anonymous": false
1455
- },
1456
- {
1457
- "type": "event",
1458
- "name": "Transfer",
1459
- "inputs": [
1460
- {
1461
- "name": "from",
1462
- "type": "address",
1463
- "indexed": true,
1464
- "internalType": "address"
1465
- },
1466
- {
1467
- "name": "to",
1468
- "type": "address",
1469
- "indexed": true,
1470
- "internalType": "address"
1471
- },
1472
- {
1473
- "name": "value",
1474
- "type": "uint256",
1475
- "indexed": false,
1476
- "internalType": "uint256"
1477
- }
1478
- ],
1479
- "anonymous": false
1480
- },
1481
- {
1482
- "type": "error",
1483
- "name": "AddressZero",
1484
- "inputs": []
1485
- },
1486
- {
1487
- "type": "error",
1488
- "name": "AlreadyOwner",
1489
- "inputs": []
1490
- },
1491
- {
1492
- "type": "error",
1493
- "name": "CannotMintZeroLiquidity",
1494
- "inputs": []
1495
- },
1496
- {
1497
- "type": "error",
1498
- "name": "DopplerPoolMustHaveMoreThan2DiscoveryPositions",
1499
- "inputs": []
1500
- },
1501
- {
1502
- "type": "error",
1503
- "name": "ECDSAInvalidSignature",
1504
- "inputs": []
1505
- },
1506
- {
1507
- "type": "error",
1508
- "name": "ECDSAInvalidSignatureLength",
1509
- "inputs": [
1510
- {
1511
- "name": "length",
1512
- "type": "uint256",
1513
- "internalType": "uint256"
1514
- }
1515
- ]
1516
- },
1517
- {
1518
- "type": "error",
1519
- "name": "ECDSAInvalidSignatureS",
1520
- "inputs": [
1521
- {
1522
- "name": "s",
1523
- "type": "bytes32",
1524
- "internalType": "bytes32"
1525
- }
1526
- ]
1527
- },
1528
- {
1529
- "type": "error",
1530
- "name": "ERC20InsufficientAllowance",
1531
- "inputs": [
1532
- {
1533
- "name": "spender",
1534
- "type": "address",
1535
- "internalType": "address"
1536
- },
1537
- {
1538
- "name": "allowance",
1539
- "type": "uint256",
1540
- "internalType": "uint256"
1541
- },
1542
- {
1543
- "name": "needed",
1544
- "type": "uint256",
1545
- "internalType": "uint256"
1546
- }
1547
- ]
1548
- },
1549
- {
1550
- "type": "error",
1551
- "name": "ERC20InsufficientBalance",
1552
- "inputs": [
1553
- {
1554
- "name": "sender",
1555
- "type": "address",
1556
- "internalType": "address"
1557
- },
1558
- {
1559
- "name": "balance",
1560
- "type": "uint256",
1561
- "internalType": "uint256"
1562
- },
1563
- {
1564
- "name": "needed",
1565
- "type": "uint256",
1566
- "internalType": "uint256"
1567
- }
1568
- ]
1569
- },
1570
- {
1571
- "type": "error",
1572
- "name": "ERC20InvalidApprover",
1573
- "inputs": [
1574
- {
1575
- "name": "approver",
1576
- "type": "address",
1577
- "internalType": "address"
1578
- }
1579
- ]
1580
- },
1581
- {
1582
- "type": "error",
1583
- "name": "ERC20InvalidReceiver",
1584
- "inputs": [
1585
- {
1586
- "name": "receiver",
1587
- "type": "address",
1588
- "internalType": "address"
1589
- }
1590
- ]
1591
- },
1592
- {
1593
- "type": "error",
1594
- "name": "ERC20InvalidSender",
1595
- "inputs": [
1596
- {
1597
- "name": "sender",
1598
- "type": "address",
1599
- "internalType": "address"
1600
- }
1601
- ]
1602
- },
1603
- {
1604
- "type": "error",
1605
- "name": "ERC20InvalidSpender",
1606
- "inputs": [
1607
- {
1608
- "name": "spender",
1609
- "type": "address",
1610
- "internalType": "address"
1611
- }
1612
- ]
1613
- },
1614
- {
1615
- "type": "error",
1616
- "name": "ERC20TransferAmountMismatch",
1617
- "inputs": []
1618
- },
1619
- {
1620
- "type": "error",
1621
- "name": "ERC2612ExpiredSignature",
1622
- "inputs": [
1623
- {
1624
- "name": "deadline",
1625
- "type": "uint256",
1626
- "internalType": "uint256"
1627
- }
1628
- ]
1629
- },
1630
- {
1631
- "type": "error",
1632
- "name": "ERC2612InvalidSigner",
1633
- "inputs": [
1634
- {
1635
- "name": "signer",
1636
- "type": "address",
1637
- "internalType": "address"
1638
- },
1639
- {
1640
- "name": "owner",
1641
- "type": "address",
1642
- "internalType": "address"
1643
- }
1644
- ]
1645
- },
1646
- {
1647
- "type": "error",
1648
- "name": "EthAmountMismatch",
1649
- "inputs": []
1650
- },
1651
- {
1652
- "type": "error",
1653
- "name": "EthAmountTooSmall",
1654
- "inputs": []
1655
- },
1656
- {
1657
- "type": "error",
1658
- "name": "EthTransferFailed",
1659
- "inputs": []
1660
- },
1661
- {
1662
- "type": "error",
1663
- "name": "EthTransferInvalid",
1664
- "inputs": []
1665
- },
1666
- {
1667
- "type": "error",
1668
- "name": "InitialOrderSizeTooLarge",
1669
- "inputs": []
1670
- },
1671
- {
1672
- "type": "error",
1673
- "name": "InsufficientFunds",
1674
- "inputs": []
1675
- },
1676
- {
1677
- "type": "error",
1678
- "name": "InsufficientLiquidity",
1679
- "inputs": []
1680
- },
1681
- {
1682
- "type": "error",
1683
- "name": "InvalidAccountNonce",
1684
- "inputs": [
1685
- {
1686
- "name": "account",
1687
- "type": "address",
1688
- "internalType": "address"
1689
- },
1690
- {
1691
- "name": "currentNonce",
1692
- "type": "uint256",
1693
- "internalType": "uint256"
1694
- }
1695
- ]
1696
- },
1697
- {
1698
- "type": "error",
1699
- "name": "InvalidCurrencyLowerTick",
1700
- "inputs": []
1701
- },
1702
- {
1703
- "type": "error",
1704
- "name": "InvalidInitialization",
1705
- "inputs": []
1706
- },
1707
- {
1708
- "type": "error",
1709
- "name": "InvalidMarketType",
1710
- "inputs": []
1711
- },
1712
- {
1713
- "type": "error",
1714
- "name": "InvalidPoolVersion",
1715
- "inputs": []
1716
- },
1717
- {
1718
- "type": "error",
1719
- "name": "InvalidTickRangeMisordered",
1720
- "inputs": [
1721
- {
1722
- "name": "tickLower",
1723
- "type": "int24",
1724
- "internalType": "int24"
1725
- },
1726
- {
1727
- "name": "tickUpper",
1728
- "type": "int24",
1729
- "internalType": "int24"
1730
- }
1731
- ]
1732
- },
1733
- {
1734
- "type": "error",
1735
- "name": "InvalidWethLowerTick",
1736
- "inputs": []
1737
- },
1738
- {
1739
- "type": "error",
1740
- "name": "LegacyPoolMustHaveOneDiscoveryPosition",
1741
- "inputs": []
1742
- },
1743
- {
1744
- "type": "error",
1745
- "name": "MarketAlreadyGraduated",
1746
- "inputs": []
1747
- },
1748
- {
1749
- "type": "error",
1750
- "name": "MarketNotGraduated",
1751
- "inputs": []
1752
- },
1753
- {
1754
- "type": "error",
1755
- "name": "MaxShareToBeSoldExceeded",
1756
- "inputs": [
1757
- {
1758
- "name": "value",
1759
- "type": "uint256",
1760
- "internalType": "uint256"
1761
- },
1762
- {
1763
- "name": "limit",
1764
- "type": "uint256",
1765
- "internalType": "uint256"
1766
- }
1767
- ]
1768
- },
1769
- {
1770
- "type": "error",
1771
- "name": "NameIsRequired",
1772
- "inputs": []
1773
- },
1774
- {
1775
- "type": "error",
1776
- "name": "NotInitializing",
1777
- "inputs": []
1778
- },
1779
- {
1780
- "type": "error",
1781
- "name": "NotOwner",
1782
- "inputs": []
1783
- },
1784
- {
1785
- "type": "error",
1786
- "name": "NumDiscoveryPositionsOutOfRange",
1787
- "inputs": []
1788
- },
1789
- {
1790
- "type": "error",
1791
- "name": "OneOwnerRequired",
1792
- "inputs": []
1793
- },
1794
- {
1795
- "type": "error",
1796
- "name": "OnlyOwner",
1797
- "inputs": []
1798
- },
1799
- {
1800
- "type": "error",
1801
- "name": "OnlyPool",
1802
- "inputs": [
1803
- {
1804
- "name": "sender",
1805
- "type": "address",
1806
- "internalType": "address"
1807
- },
1808
- {
1809
- "name": "pool",
1810
- "type": "address",
1811
- "internalType": "address"
1812
- }
1813
- ]
1814
- },
1815
- {
1816
- "type": "error",
1817
- "name": "OnlyWeth",
1818
- "inputs": []
1819
- },
1820
- {
1821
- "type": "error",
1822
- "name": "OwnerCannotBeAddressZero",
1823
- "inputs": []
1824
- },
1825
- {
1826
- "type": "error",
1827
- "name": "ReentrancyGuardReentrantCall",
1828
- "inputs": []
1829
- },
1830
- {
1831
- "type": "error",
1832
- "name": "SlippageBoundsExceeded",
1833
- "inputs": []
1834
- },
1835
- {
1836
- "type": "error",
1837
- "name": "UseRevokeOwnershipToRemoveSelf",
1838
- "inputs": []
1839
- }
1840
- ]