@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,375 @@
1
+ [
2
+ {
3
+ "type": "constructor",
4
+ "inputs": [],
5
+ "stateMutability": "nonpayable"
6
+ },
7
+ {
8
+ "type": "function",
9
+ "name": "addOwner",
10
+ "inputs": [
11
+ {
12
+ "name": "account",
13
+ "type": "address",
14
+ "internalType": "address"
15
+ }
16
+ ],
17
+ "outputs": [],
18
+ "stateMutability": "nonpayable"
19
+ },
20
+ {
21
+ "type": "function",
22
+ "name": "addOwners",
23
+ "inputs": [
24
+ {
25
+ "name": "accounts",
26
+ "type": "address[]",
27
+ "internalType": "address[]"
28
+ }
29
+ ],
30
+ "outputs": [],
31
+ "stateMutability": "nonpayable"
32
+ },
33
+ {
34
+ "type": "function",
35
+ "name": "getHookAddresses",
36
+ "inputs": [],
37
+ "outputs": [
38
+ {
39
+ "name": "",
40
+ "type": "address[]",
41
+ "internalType": "address[]"
42
+ }
43
+ ],
44
+ "stateMutability": "view"
45
+ },
46
+ {
47
+ "type": "function",
48
+ "name": "getHookTag",
49
+ "inputs": [
50
+ {
51
+ "name": "hook",
52
+ "type": "address",
53
+ "internalType": "address"
54
+ }
55
+ ],
56
+ "outputs": [
57
+ {
58
+ "name": "",
59
+ "type": "string",
60
+ "internalType": "string"
61
+ }
62
+ ],
63
+ "stateMutability": "view"
64
+ },
65
+ {
66
+ "type": "function",
67
+ "name": "getHookVersion",
68
+ "inputs": [
69
+ {
70
+ "name": "hook",
71
+ "type": "address",
72
+ "internalType": "address"
73
+ }
74
+ ],
75
+ "outputs": [
76
+ {
77
+ "name": "version",
78
+ "type": "string",
79
+ "internalType": "string"
80
+ }
81
+ ],
82
+ "stateMutability": "pure"
83
+ },
84
+ {
85
+ "type": "function",
86
+ "name": "getHooks",
87
+ "inputs": [],
88
+ "outputs": [
89
+ {
90
+ "name": "",
91
+ "type": "tuple[]",
92
+ "internalType": "struct IZoraHookRegistry.ZoraHook[]",
93
+ "components": [
94
+ {
95
+ "name": "hook",
96
+ "type": "address",
97
+ "internalType": "address"
98
+ },
99
+ {
100
+ "name": "tag",
101
+ "type": "string",
102
+ "internalType": "string"
103
+ },
104
+ {
105
+ "name": "version",
106
+ "type": "string",
107
+ "internalType": "string"
108
+ }
109
+ ]
110
+ }
111
+ ],
112
+ "stateMutability": "view"
113
+ },
114
+ {
115
+ "type": "function",
116
+ "name": "initialize",
117
+ "inputs": [
118
+ {
119
+ "name": "initialOwners",
120
+ "type": "address[]",
121
+ "internalType": "address[]"
122
+ }
123
+ ],
124
+ "outputs": [],
125
+ "stateMutability": "nonpayable"
126
+ },
127
+ {
128
+ "type": "function",
129
+ "name": "isOwner",
130
+ "inputs": [
131
+ {
132
+ "name": "account",
133
+ "type": "address",
134
+ "internalType": "address"
135
+ }
136
+ ],
137
+ "outputs": [
138
+ {
139
+ "name": "",
140
+ "type": "bool",
141
+ "internalType": "bool"
142
+ }
143
+ ],
144
+ "stateMutability": "view"
145
+ },
146
+ {
147
+ "type": "function",
148
+ "name": "isRegisteredHook",
149
+ "inputs": [
150
+ {
151
+ "name": "hook",
152
+ "type": "address",
153
+ "internalType": "address"
154
+ }
155
+ ],
156
+ "outputs": [
157
+ {
158
+ "name": "",
159
+ "type": "bool",
160
+ "internalType": "bool"
161
+ }
162
+ ],
163
+ "stateMutability": "view"
164
+ },
165
+ {
166
+ "type": "function",
167
+ "name": "owners",
168
+ "inputs": [],
169
+ "outputs": [
170
+ {
171
+ "name": "",
172
+ "type": "address[]",
173
+ "internalType": "address[]"
174
+ }
175
+ ],
176
+ "stateMutability": "view"
177
+ },
178
+ {
179
+ "type": "function",
180
+ "name": "registerHooks",
181
+ "inputs": [
182
+ {
183
+ "name": "hooks",
184
+ "type": "address[]",
185
+ "internalType": "address[]"
186
+ },
187
+ {
188
+ "name": "tags",
189
+ "type": "string[]",
190
+ "internalType": "string[]"
191
+ }
192
+ ],
193
+ "outputs": [],
194
+ "stateMutability": "nonpayable"
195
+ },
196
+ {
197
+ "type": "function",
198
+ "name": "removeHooks",
199
+ "inputs": [
200
+ {
201
+ "name": "hooks",
202
+ "type": "address[]",
203
+ "internalType": "address[]"
204
+ }
205
+ ],
206
+ "outputs": [],
207
+ "stateMutability": "nonpayable"
208
+ },
209
+ {
210
+ "type": "function",
211
+ "name": "removeOwner",
212
+ "inputs": [
213
+ {
214
+ "name": "account",
215
+ "type": "address",
216
+ "internalType": "address"
217
+ }
218
+ ],
219
+ "outputs": [],
220
+ "stateMutability": "nonpayable"
221
+ },
222
+ {
223
+ "type": "function",
224
+ "name": "removeOwners",
225
+ "inputs": [
226
+ {
227
+ "name": "accounts",
228
+ "type": "address[]",
229
+ "internalType": "address[]"
230
+ }
231
+ ],
232
+ "outputs": [],
233
+ "stateMutability": "nonpayable"
234
+ },
235
+ {
236
+ "type": "function",
237
+ "name": "revokeOwnership",
238
+ "inputs": [],
239
+ "outputs": [],
240
+ "stateMutability": "nonpayable"
241
+ },
242
+ {
243
+ "type": "event",
244
+ "name": "Initialized",
245
+ "inputs": [
246
+ {
247
+ "name": "version",
248
+ "type": "uint64",
249
+ "indexed": false,
250
+ "internalType": "uint64"
251
+ }
252
+ ],
253
+ "anonymous": false
254
+ },
255
+ {
256
+ "type": "event",
257
+ "name": "OwnerUpdated",
258
+ "inputs": [
259
+ {
260
+ "name": "caller",
261
+ "type": "address",
262
+ "indexed": true,
263
+ "internalType": "address"
264
+ },
265
+ {
266
+ "name": "prevOwner",
267
+ "type": "address",
268
+ "indexed": true,
269
+ "internalType": "address"
270
+ },
271
+ {
272
+ "name": "newOwner",
273
+ "type": "address",
274
+ "indexed": true,
275
+ "internalType": "address"
276
+ }
277
+ ],
278
+ "anonymous": false
279
+ },
280
+ {
281
+ "type": "event",
282
+ "name": "ZoraHookRegistered",
283
+ "inputs": [
284
+ {
285
+ "name": "hook",
286
+ "type": "address",
287
+ "indexed": true,
288
+ "internalType": "address"
289
+ },
290
+ {
291
+ "name": "tag",
292
+ "type": "string",
293
+ "indexed": false,
294
+ "internalType": "string"
295
+ },
296
+ {
297
+ "name": "version",
298
+ "type": "string",
299
+ "indexed": false,
300
+ "internalType": "string"
301
+ }
302
+ ],
303
+ "anonymous": false
304
+ },
305
+ {
306
+ "type": "event",
307
+ "name": "ZoraHookRemoved",
308
+ "inputs": [
309
+ {
310
+ "name": "hook",
311
+ "type": "address",
312
+ "indexed": true,
313
+ "internalType": "address"
314
+ },
315
+ {
316
+ "name": "tag",
317
+ "type": "string",
318
+ "indexed": false,
319
+ "internalType": "string"
320
+ },
321
+ {
322
+ "name": "version",
323
+ "type": "string",
324
+ "indexed": false,
325
+ "internalType": "string"
326
+ }
327
+ ],
328
+ "anonymous": false
329
+ },
330
+ {
331
+ "type": "error",
332
+ "name": "AlreadyOwner",
333
+ "inputs": []
334
+ },
335
+ {
336
+ "type": "error",
337
+ "name": "ArrayLengthMismatch",
338
+ "inputs": []
339
+ },
340
+ {
341
+ "type": "error",
342
+ "name": "InvalidInitialization",
343
+ "inputs": []
344
+ },
345
+ {
346
+ "type": "error",
347
+ "name": "NotInitializing",
348
+ "inputs": []
349
+ },
350
+ {
351
+ "type": "error",
352
+ "name": "NotOwner",
353
+ "inputs": []
354
+ },
355
+ {
356
+ "type": "error",
357
+ "name": "OneOwnerRequired",
358
+ "inputs": []
359
+ },
360
+ {
361
+ "type": "error",
362
+ "name": "OnlyOwner",
363
+ "inputs": []
364
+ },
365
+ {
366
+ "type": "error",
367
+ "name": "OwnerCannotBeAddressZero",
368
+ "inputs": []
369
+ },
370
+ {
371
+ "type": "error",
372
+ "name": "UseRevokeOwnershipToRemoveSelf",
373
+ "inputs": []
374
+ }
375
+ ]
@@ -18,7 +18,7 @@
18
18
  "internalType": "address[]"
19
19
  },
20
20
  {
21
- "name": "upgradeGate",
21
+ "name": "upgradeGate_",
22
22
  "type": "address",
23
23
  "internalType": "contract IHooksUpgradeGate"
24
24
  }
@@ -1111,7 +1111,7 @@
1111
1111
  ]
1112
1112
  },
1113
1113
  {
1114
- "name": "",
1114
+ "name": "additionalData",
1115
1115
  "type": "bytes",
1116
1116
  "internalType": "bytes"
1117
1117
  }
@@ -1119,6 +1119,99 @@
1119
1119
  "outputs": [],
1120
1120
  "stateMutability": "nonpayable"
1121
1121
  },
1122
+ {
1123
+ "type": "function",
1124
+ "name": "initializeFromMigrationWithUpdateableFee",
1125
+ "inputs": [
1126
+ {
1127
+ "name": "poolKey",
1128
+ "type": "tuple",
1129
+ "internalType": "struct PoolKey",
1130
+ "components": [
1131
+ {
1132
+ "name": "currency0",
1133
+ "type": "address",
1134
+ "internalType": "Currency"
1135
+ },
1136
+ {
1137
+ "name": "currency1",
1138
+ "type": "address",
1139
+ "internalType": "Currency"
1140
+ },
1141
+ {
1142
+ "name": "fee",
1143
+ "type": "uint24",
1144
+ "internalType": "uint24"
1145
+ },
1146
+ {
1147
+ "name": "tickSpacing",
1148
+ "type": "int24",
1149
+ "internalType": "int24"
1150
+ },
1151
+ {
1152
+ "name": "hooks",
1153
+ "type": "address",
1154
+ "internalType": "contract IHooks"
1155
+ }
1156
+ ]
1157
+ },
1158
+ {
1159
+ "name": "coin",
1160
+ "type": "address",
1161
+ "internalType": "address"
1162
+ },
1163
+ {
1164
+ "name": "sqrtPriceX96",
1165
+ "type": "uint160",
1166
+ "internalType": "uint160"
1167
+ },
1168
+ {
1169
+ "name": "migratedLiquidity",
1170
+ "type": "tuple[]",
1171
+ "internalType": "struct BurnedPosition[]",
1172
+ "components": [
1173
+ {
1174
+ "name": "tickLower",
1175
+ "type": "int24",
1176
+ "internalType": "int24"
1177
+ },
1178
+ {
1179
+ "name": "tickUpper",
1180
+ "type": "int24",
1181
+ "internalType": "int24"
1182
+ },
1183
+ {
1184
+ "name": "amount0Received",
1185
+ "type": "uint128",
1186
+ "internalType": "uint128"
1187
+ },
1188
+ {
1189
+ "name": "amount1Received",
1190
+ "type": "uint128",
1191
+ "internalType": "uint128"
1192
+ }
1193
+ ]
1194
+ },
1195
+ {
1196
+ "name": "additionalData",
1197
+ "type": "bytes",
1198
+ "internalType": "bytes"
1199
+ }
1200
+ ],
1201
+ "outputs": [
1202
+ {
1203
+ "name": "fee",
1204
+ "type": "uint24",
1205
+ "internalType": "uint24"
1206
+ },
1207
+ {
1208
+ "name": "tickSpacing",
1209
+ "type": "int24",
1210
+ "internalType": "int24"
1211
+ }
1212
+ ],
1213
+ "stateMutability": "nonpayable"
1214
+ },
1122
1215
  {
1123
1216
  "type": "function",
1124
1217
  "name": "isTrustedMessageSender",
@@ -3,12 +3,13 @@
3
3
  "COIN_V3_IMPL": "0x45Bf86430af7CD071Ea23aE52325A78C8d12aD5a",
4
4
  "COIN_V4_IMPL": "0xca72309AaF706d290E08608b1Af47943902f69b2",
5
5
  "COIN_VERSION": "1.1.0",
6
- "CREATOR_COIN_HOOK": "0xd61A675F8a0c67A73DC3B54FB7318B4D91409040",
7
- "CREATOR_COIN_HOOK_SALT": "0x0000000000000000000000000000000000000000000000000000000000000ae8",
6
+ "CREATOR_COIN_HOOK": "0x1258e5f3C71ca9dCE95Ce734Ba5759532E46D040",
7
+ "CREATOR_COIN_HOOK_SALT": "0x00000000000000000000000000000000000000000000000000000000000029b1",
8
8
  "CREATOR_COIN_IMPL": "0x88CC4E08C7608723f3E44e17aC669Fb43b6A8313",
9
9
  "HOOK_UPGRADE_GATE": "0xD88f6BdD765313CaFA5888C177c325E2C3AbF2D2",
10
10
  "ZORA_FACTORY": "0x777777751622c0d3258f214F9DF38E35BF45baF3",
11
- "ZORA_FACTORY_IMPL": "0x0e2ea62E5377D46FeF114A60AfBE3d5eA7490577",
12
- "ZORA_V4_COIN_HOOK": "0x9ea932730A7787000042e34390B8E435dD839040",
13
- "ZORA_V4_COIN_HOOK_SALT": "0x0000000000000000000000000000000000000000000000000000000000002fa2"
11
+ "ZORA_FACTORY_IMPL": "0x57e338b97757f6E416965BEB9A5Cd2DB48b10c42",
12
+ "ZORA_HOOK_REGISTRY": "0x777777C4c14b133858c3982D41Dbf02509fc18d7",
13
+ "ZORA_V4_COIN_HOOK": "0x2b15a16B3Ef024005bA899Bb51764FCd58Cf9040",
14
+ "ZORA_V4_COIN_HOOK_SALT": "0x0000000000000000000000000000000000000000000000000000000000000f90"
14
15
  }