@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
@@ -0,0 +1,188 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "getHookAddresses",
5
+ "inputs": [],
6
+ "outputs": [
7
+ {
8
+ "name": "",
9
+ "type": "address[]",
10
+ "internalType": "address[]"
11
+ }
12
+ ],
13
+ "stateMutability": "view"
14
+ },
15
+ {
16
+ "type": "function",
17
+ "name": "getHookTag",
18
+ "inputs": [
19
+ {
20
+ "name": "hook",
21
+ "type": "address",
22
+ "internalType": "address"
23
+ }
24
+ ],
25
+ "outputs": [
26
+ {
27
+ "name": "",
28
+ "type": "string",
29
+ "internalType": "string"
30
+ }
31
+ ],
32
+ "stateMutability": "view"
33
+ },
34
+ {
35
+ "type": "function",
36
+ "name": "getHookVersion",
37
+ "inputs": [
38
+ {
39
+ "name": "hook",
40
+ "type": "address",
41
+ "internalType": "address"
42
+ }
43
+ ],
44
+ "outputs": [
45
+ {
46
+ "name": "",
47
+ "type": "string",
48
+ "internalType": "string"
49
+ }
50
+ ],
51
+ "stateMutability": "view"
52
+ },
53
+ {
54
+ "type": "function",
55
+ "name": "getHooks",
56
+ "inputs": [],
57
+ "outputs": [
58
+ {
59
+ "name": "",
60
+ "type": "tuple[]",
61
+ "internalType": "struct IZoraHookRegistry.ZoraHook[]",
62
+ "components": [
63
+ {
64
+ "name": "hook",
65
+ "type": "address",
66
+ "internalType": "address"
67
+ },
68
+ {
69
+ "name": "tag",
70
+ "type": "string",
71
+ "internalType": "string"
72
+ },
73
+ {
74
+ "name": "version",
75
+ "type": "string",
76
+ "internalType": "string"
77
+ }
78
+ ]
79
+ }
80
+ ],
81
+ "stateMutability": "view"
82
+ },
83
+ {
84
+ "type": "function",
85
+ "name": "isRegisteredHook",
86
+ "inputs": [
87
+ {
88
+ "name": "hook",
89
+ "type": "address",
90
+ "internalType": "address"
91
+ }
92
+ ],
93
+ "outputs": [
94
+ {
95
+ "name": "",
96
+ "type": "bool",
97
+ "internalType": "bool"
98
+ }
99
+ ],
100
+ "stateMutability": "view"
101
+ },
102
+ {
103
+ "type": "function",
104
+ "name": "registerHooks",
105
+ "inputs": [
106
+ {
107
+ "name": "hooks",
108
+ "type": "address[]",
109
+ "internalType": "address[]"
110
+ },
111
+ {
112
+ "name": "tags",
113
+ "type": "string[]",
114
+ "internalType": "string[]"
115
+ }
116
+ ],
117
+ "outputs": [],
118
+ "stateMutability": "nonpayable"
119
+ },
120
+ {
121
+ "type": "function",
122
+ "name": "removeHooks",
123
+ "inputs": [
124
+ {
125
+ "name": "hooks",
126
+ "type": "address[]",
127
+ "internalType": "address[]"
128
+ }
129
+ ],
130
+ "outputs": [],
131
+ "stateMutability": "nonpayable"
132
+ },
133
+ {
134
+ "type": "event",
135
+ "name": "ZoraHookRegistered",
136
+ "inputs": [
137
+ {
138
+ "name": "hook",
139
+ "type": "address",
140
+ "indexed": true,
141
+ "internalType": "address"
142
+ },
143
+ {
144
+ "name": "tag",
145
+ "type": "string",
146
+ "indexed": false,
147
+ "internalType": "string"
148
+ },
149
+ {
150
+ "name": "version",
151
+ "type": "string",
152
+ "indexed": false,
153
+ "internalType": "string"
154
+ }
155
+ ],
156
+ "anonymous": false
157
+ },
158
+ {
159
+ "type": "event",
160
+ "name": "ZoraHookRemoved",
161
+ "inputs": [
162
+ {
163
+ "name": "hook",
164
+ "type": "address",
165
+ "indexed": true,
166
+ "internalType": "address"
167
+ },
168
+ {
169
+ "name": "tag",
170
+ "type": "string",
171
+ "indexed": false,
172
+ "internalType": "string"
173
+ },
174
+ {
175
+ "name": "version",
176
+ "type": "string",
177
+ "indexed": false,
178
+ "internalType": "string"
179
+ }
180
+ ],
181
+ "anonymous": false
182
+ },
183
+ {
184
+ "type": "error",
185
+ "name": "ArrayLengthMismatch",
186
+ "inputs": []
187
+ }
188
+ ]
@@ -0,0 +1,233 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "deployCode",
5
+ "inputs": [
6
+ {
7
+ "name": "_artifact",
8
+ "type": "string",
9
+ "internalType": "string"
10
+ },
11
+ {
12
+ "name": "_value",
13
+ "type": "uint256",
14
+ "internalType": "uint256"
15
+ },
16
+ {
17
+ "name": "_salt",
18
+ "type": "bytes32",
19
+ "internalType": "bytes32"
20
+ }
21
+ ],
22
+ "outputs": [
23
+ {
24
+ "name": "",
25
+ "type": "address",
26
+ "internalType": "address"
27
+ }
28
+ ],
29
+ "stateMutability": "nonpayable"
30
+ },
31
+ {
32
+ "type": "function",
33
+ "name": "deployCode",
34
+ "inputs": [
35
+ {
36
+ "name": "_artifact",
37
+ "type": "string",
38
+ "internalType": "string"
39
+ },
40
+ {
41
+ "name": "_args",
42
+ "type": "bytes",
43
+ "internalType": "bytes"
44
+ },
45
+ {
46
+ "name": "_salt",
47
+ "type": "bytes32",
48
+ "internalType": "bytes32"
49
+ }
50
+ ],
51
+ "outputs": [
52
+ {
53
+ "name": "",
54
+ "type": "address",
55
+ "internalType": "address"
56
+ }
57
+ ],
58
+ "stateMutability": "nonpayable"
59
+ },
60
+ {
61
+ "type": "function",
62
+ "name": "deployCode",
63
+ "inputs": [
64
+ {
65
+ "name": "_artifact",
66
+ "type": "string",
67
+ "internalType": "string"
68
+ },
69
+ {
70
+ "name": "_value",
71
+ "type": "uint256",
72
+ "internalType": "uint256"
73
+ }
74
+ ],
75
+ "outputs": [
76
+ {
77
+ "name": "",
78
+ "type": "address",
79
+ "internalType": "address"
80
+ }
81
+ ],
82
+ "stateMutability": "nonpayable"
83
+ },
84
+ {
85
+ "type": "function",
86
+ "name": "deployCode",
87
+ "inputs": [
88
+ {
89
+ "name": "_artifact",
90
+ "type": "string",
91
+ "internalType": "string"
92
+ },
93
+ {
94
+ "name": "_salt",
95
+ "type": "bytes32",
96
+ "internalType": "bytes32"
97
+ }
98
+ ],
99
+ "outputs": [
100
+ {
101
+ "name": "",
102
+ "type": "address",
103
+ "internalType": "address"
104
+ }
105
+ ],
106
+ "stateMutability": "nonpayable"
107
+ },
108
+ {
109
+ "type": "function",
110
+ "name": "deployCode",
111
+ "inputs": [
112
+ {
113
+ "name": "_artifact",
114
+ "type": "string",
115
+ "internalType": "string"
116
+ },
117
+ {
118
+ "name": "_args",
119
+ "type": "bytes",
120
+ "internalType": "bytes"
121
+ }
122
+ ],
123
+ "outputs": [
124
+ {
125
+ "name": "",
126
+ "type": "address",
127
+ "internalType": "address"
128
+ }
129
+ ],
130
+ "stateMutability": "nonpayable"
131
+ },
132
+ {
133
+ "type": "function",
134
+ "name": "deployCode",
135
+ "inputs": [
136
+ {
137
+ "name": "_artifact",
138
+ "type": "string",
139
+ "internalType": "string"
140
+ },
141
+ {
142
+ "name": "_args",
143
+ "type": "bytes",
144
+ "internalType": "bytes"
145
+ },
146
+ {
147
+ "name": "_value",
148
+ "type": "uint256",
149
+ "internalType": "uint256"
150
+ },
151
+ {
152
+ "name": "_salt",
153
+ "type": "bytes32",
154
+ "internalType": "bytes32"
155
+ }
156
+ ],
157
+ "outputs": [
158
+ {
159
+ "name": "",
160
+ "type": "address",
161
+ "internalType": "address"
162
+ }
163
+ ],
164
+ "stateMutability": "nonpayable"
165
+ },
166
+ {
167
+ "type": "function",
168
+ "name": "deployCode",
169
+ "inputs": [
170
+ {
171
+ "name": "_artifact",
172
+ "type": "string",
173
+ "internalType": "string"
174
+ }
175
+ ],
176
+ "outputs": [
177
+ {
178
+ "name": "",
179
+ "type": "address",
180
+ "internalType": "address"
181
+ }
182
+ ],
183
+ "stateMutability": "nonpayable"
184
+ },
185
+ {
186
+ "type": "function",
187
+ "name": "deployCode",
188
+ "inputs": [
189
+ {
190
+ "name": "_artifact",
191
+ "type": "string",
192
+ "internalType": "string"
193
+ },
194
+ {
195
+ "name": "_args",
196
+ "type": "bytes",
197
+ "internalType": "bytes"
198
+ },
199
+ {
200
+ "name": "_value",
201
+ "type": "uint256",
202
+ "internalType": "uint256"
203
+ }
204
+ ],
205
+ "outputs": [
206
+ {
207
+ "name": "",
208
+ "type": "address",
209
+ "internalType": "address"
210
+ }
211
+ ],
212
+ "stateMutability": "nonpayable"
213
+ },
214
+ {
215
+ "type": "function",
216
+ "name": "getCode",
217
+ "inputs": [
218
+ {
219
+ "name": "_artifact",
220
+ "type": "string",
221
+ "internalType": "string"
222
+ }
223
+ ],
224
+ "outputs": [
225
+ {
226
+ "name": "",
227
+ "type": "bytes",
228
+ "internalType": "bytes"
229
+ }
230
+ ],
231
+ "stateMutability": "nonpayable"
232
+ }
233
+ ]
@@ -3,22 +3,22 @@
3
3
  "type": "constructor",
4
4
  "inputs": [
5
5
  {
6
- "name": "_coinV4Impl",
6
+ "name": "coinV4Impl_",
7
7
  "type": "address",
8
8
  "internalType": "address"
9
9
  },
10
10
  {
11
- "name": "_creatorCoinImpl",
11
+ "name": "creatorCoinImpl_",
12
12
  "type": "address",
13
13
  "internalType": "address"
14
14
  },
15
15
  {
16
- "name": "_contentCoinHook",
16
+ "name": "hook_",
17
17
  "type": "address",
18
18
  "internalType": "address"
19
19
  },
20
20
  {
21
- "name": "_creatorCoinHook",
21
+ "name": "zoraHookRegistry_",
22
22
  "type": "address",
23
23
  "internalType": "address"
24
24
  }
@@ -212,7 +212,7 @@
212
212
  "internalType": "int24"
213
213
  },
214
214
  {
215
- "name": "orderSize",
215
+ "name": "",
216
216
  "type": "uint256",
217
217
  "internalType": "uint256"
218
218
  }
@@ -413,6 +413,75 @@
413
413
  ],
414
414
  "stateMutability": "nonpayable"
415
415
  },
416
+ {
417
+ "type": "function",
418
+ "name": "deployCreatorCoin",
419
+ "inputs": [
420
+ {
421
+ "name": "payoutRecipient",
422
+ "type": "address",
423
+ "internalType": "address"
424
+ },
425
+ {
426
+ "name": "owners",
427
+ "type": "address[]",
428
+ "internalType": "address[]"
429
+ },
430
+ {
431
+ "name": "uri",
432
+ "type": "string",
433
+ "internalType": "string"
434
+ },
435
+ {
436
+ "name": "name",
437
+ "type": "string",
438
+ "internalType": "string"
439
+ },
440
+ {
441
+ "name": "symbol",
442
+ "type": "string",
443
+ "internalType": "string"
444
+ },
445
+ {
446
+ "name": "poolConfig",
447
+ "type": "bytes",
448
+ "internalType": "bytes"
449
+ },
450
+ {
451
+ "name": "platformReferrer",
452
+ "type": "address",
453
+ "internalType": "address"
454
+ },
455
+ {
456
+ "name": "postDeployHook",
457
+ "type": "address",
458
+ "internalType": "address"
459
+ },
460
+ {
461
+ "name": "postDeployHookData",
462
+ "type": "bytes",
463
+ "internalType": "bytes"
464
+ },
465
+ {
466
+ "name": "coinSalt",
467
+ "type": "bytes32",
468
+ "internalType": "bytes32"
469
+ }
470
+ ],
471
+ "outputs": [
472
+ {
473
+ "name": "coin",
474
+ "type": "address",
475
+ "internalType": "address"
476
+ },
477
+ {
478
+ "name": "postDeployHookDataOut",
479
+ "type": "bytes",
480
+ "internalType": "bytes"
481
+ }
482
+ ],
483
+ "stateMutability": "payable"
484
+ },
416
485
  {
417
486
  "type": "function",
418
487
  "name": "deployWithHook",
@@ -453,7 +522,7 @@
453
522
  "internalType": "address"
454
523
  },
455
524
  {
456
- "name": "hook",
525
+ "name": "deployHook",
457
526
  "type": "address",
458
527
  "internalType": "address"
459
528
  },
@@ -496,6 +565,19 @@
496
565
  ],
497
566
  "stateMutability": "view"
498
567
  },
568
+ {
569
+ "type": "function",
570
+ "name": "hook",
571
+ "inputs": [],
572
+ "outputs": [
573
+ {
574
+ "name": "",
575
+ "type": "address",
576
+ "internalType": "address"
577
+ }
578
+ ],
579
+ "stateMutability": "view"
580
+ },
499
581
  {
500
582
  "type": "function",
501
583
  "name": "implementation",
@@ -599,6 +681,19 @@
599
681
  "outputs": [],
600
682
  "stateMutability": "payable"
601
683
  },
684
+ {
685
+ "type": "function",
686
+ "name": "zoraHookRegistry",
687
+ "inputs": [],
688
+ "outputs": [
689
+ {
690
+ "name": "",
691
+ "type": "address",
692
+ "internalType": "address"
693
+ }
694
+ ],
695
+ "stateMutability": "view"
696
+ },
602
697
  {
603
698
  "type": "event",
604
699
  "name": "CoinCreated",