@zoralabs/coins 2.1.1 → 2.2.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 (97) hide show
  1. package/.turbo/turbo-build$colon$js.log +152 -0
  2. package/CHANGELOG.md +60 -0
  3. package/abis/BaseCoin.json +26 -0
  4. package/abis/BaseTest.json +2 -7
  5. package/abis/CoinConstants.json +0 -104
  6. package/abis/ContentCoin.json +26 -0
  7. package/abis/CreatorCoin.json +30 -4
  8. package/abis/FeeEstimatorHook.json +0 -5
  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/IZoraFactory.json +52 -0
  16. package/abis/IZoraHookRegistry.json +188 -0
  17. package/abis/VmContractHelper227.json +233 -0
  18. package/abis/ZoraFactoryImpl.json +32 -6
  19. package/abis/ZoraHookRegistry.json +375 -0
  20. package/abis/{CreatorCoinHook.json → ZoraV4CoinHook.json} +1 -1
  21. package/addresses/8453.json +2 -1
  22. package/dist/index.cjs +72 -10
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.js +72 -10
  25. package/dist/index.js.map +1 -1
  26. package/dist/wagmiGenerated.d.ts +90 -10
  27. package/dist/wagmiGenerated.d.ts.map +1 -1
  28. package/foundry.toml +4 -1
  29. package/package/wagmiGenerated.ts +72 -10
  30. package/package.json +7 -5
  31. package/script/PrintRegisterUpgradePath.s.sol +0 -7
  32. package/script/TestBackingCoinSwap.s.sol +0 -1
  33. package/script/TestV4Swap.s.sol +0 -1
  34. package/script/UpgradeFactoryImpl.s.sol +1 -1
  35. package/src/BaseCoin.sol +15 -12
  36. package/src/ContentCoin.sol +10 -0
  37. package/src/CreatorCoin.sol +28 -7
  38. package/src/ZoraFactoryImpl.sol +62 -23
  39. package/src/deployment/CoinsDeployerBase.sol +24 -58
  40. package/src/hook-registry/ZoraHookRegistry.sol +93 -0
  41. package/src/hooks/{BaseZoraV4CoinHook.sol → ZoraV4CoinHook.sol} +13 -8
  42. package/src/interfaces/ICoin.sol +19 -1
  43. package/src/interfaces/ICreatorCoin.sol +4 -0
  44. package/src/interfaces/IZoraFactory.sol +32 -10
  45. package/src/interfaces/IZoraHookRegistry.sol +47 -0
  46. package/src/libs/CoinConstants.sol +0 -32
  47. package/src/libs/CoinRewardsV4.sol +53 -15
  48. package/src/libs/CreatorCoinConstants.sol +0 -1
  49. package/src/libs/HooksDeployment.sol +13 -65
  50. package/src/libs/MarketConstants.sol +10 -12
  51. package/src/libs/V4Liquidity.sol +30 -0
  52. package/src/version/ContractVersionBase.sol +1 -1
  53. package/test/CoinUniV4.t.sol +33 -30
  54. package/test/ContentCoinRewards.t.sol +320 -0
  55. package/test/CreatorCoin.t.sol +1 -1
  56. package/test/CreatorCoinRewards.t.sol +375 -0
  57. package/test/DeploymentHooks.t.sol +10 -10
  58. package/test/Factory.t.sol +24 -7
  59. package/test/HooksDeployment.t.sol +4 -4
  60. package/test/LiquidityMigration.t.sol +4 -9
  61. package/test/Upgrades.t.sol +44 -48
  62. package/test/ZoraHookRegistry.t.sol +266 -0
  63. package/test/utils/BaseTest.sol +25 -42
  64. package/test/utils/FeeEstimatorHook.sol +4 -6
  65. package/test/utils/RewardTestHelpers.sol +106 -0
  66. package/.turbo/turbo-build.log +0 -199
  67. package/abis/AutoSwapperTest.json +0 -618
  68. package/abis/BadImpl.json +0 -15
  69. package/abis/BaseZoraV4CoinHook.json +0 -1664
  70. package/abis/CoinTest.json +0 -819
  71. package/abis/CoinUniV4Test.json +0 -1128
  72. package/abis/ContentCoinHook.json +0 -1733
  73. package/abis/CreatorCoinTest.json +0 -887
  74. package/abis/Deploy.json +0 -9
  75. package/abis/DeployHooks.json +0 -9
  76. package/abis/DeployScript.json +0 -35
  77. package/abis/DeployedCoinVersionLookupTest.json +0 -740
  78. package/abis/DifferentNamespaceVersionLookup.json +0 -39
  79. package/abis/FactoryTest.json +0 -748
  80. package/abis/FakeHookNoInterface.json +0 -21
  81. package/abis/GenerateDeterministicParams.json +0 -9
  82. package/abis/HooksDeploymentTest.json +0 -645
  83. package/abis/HooksTest.json +0 -709
  84. package/abis/InvalidLiquidityMigrationReceiver.json +0 -21
  85. package/abis/LiquidityMigrationReceiver.json +0 -103
  86. package/abis/LiquidityMigrationTest.json +0 -889
  87. package/abis/MockBadFactory.json +0 -15
  88. package/abis/MultiOwnableTest.json +0 -766
  89. package/abis/PrintUpgradeCommand.json +0 -9
  90. package/abis/TestDeployedCoinVersionLookupImplementation.json +0 -39
  91. package/abis/TestV4Swap.json +0 -9
  92. package/abis/UpgradeFactoryImpl.json +0 -9
  93. package/abis/UpgradeHooks.json +0 -35
  94. package/abis/UpgradesTest.json +0 -723
  95. package/src/hooks/ContentCoinHook.sol +0 -27
  96. package/src/hooks/CreatorCoinHook.sol +0 -27
  97. package/src/libs/CreatorCoinRewards.sol +0 -34
package/abis/IERC721.json CHANGED
@@ -4,32 +4,32 @@
4
4
  "name": "approve",
5
5
  "inputs": [
6
6
  {
7
- "name": "to",
7
+ "name": "_approved",
8
8
  "type": "address",
9
9
  "internalType": "address"
10
10
  },
11
11
  {
12
- "name": "tokenId",
12
+ "name": "_tokenId",
13
13
  "type": "uint256",
14
14
  "internalType": "uint256"
15
15
  }
16
16
  ],
17
17
  "outputs": [],
18
- "stateMutability": "nonpayable"
18
+ "stateMutability": "payable"
19
19
  },
20
20
  {
21
21
  "type": "function",
22
22
  "name": "balanceOf",
23
23
  "inputs": [
24
24
  {
25
- "name": "owner",
25
+ "name": "_owner",
26
26
  "type": "address",
27
27
  "internalType": "address"
28
28
  }
29
29
  ],
30
30
  "outputs": [
31
31
  {
32
- "name": "balance",
32
+ "name": "",
33
33
  "type": "uint256",
34
34
  "internalType": "uint256"
35
35
  }
@@ -41,14 +41,14 @@
41
41
  "name": "getApproved",
42
42
  "inputs": [
43
43
  {
44
- "name": "tokenId",
44
+ "name": "_tokenId",
45
45
  "type": "uint256",
46
46
  "internalType": "uint256"
47
47
  }
48
48
  ],
49
49
  "outputs": [
50
50
  {
51
- "name": "operator",
51
+ "name": "",
52
52
  "type": "address",
53
53
  "internalType": "address"
54
54
  }
@@ -60,12 +60,12 @@
60
60
  "name": "isApprovedForAll",
61
61
  "inputs": [
62
62
  {
63
- "name": "owner",
63
+ "name": "_owner",
64
64
  "type": "address",
65
65
  "internalType": "address"
66
66
  },
67
67
  {
68
- "name": "operator",
68
+ "name": "_operator",
69
69
  "type": "address",
70
70
  "internalType": "address"
71
71
  }
@@ -84,14 +84,14 @@
84
84
  "name": "ownerOf",
85
85
  "inputs": [
86
86
  {
87
- "name": "tokenId",
87
+ "name": "_tokenId",
88
88
  "type": "uint256",
89
89
  "internalType": "uint256"
90
90
  }
91
91
  ],
92
92
  "outputs": [
93
93
  {
94
- "name": "owner",
94
+ "name": "",
95
95
  "type": "address",
96
96
  "internalType": "address"
97
97
  }
@@ -103,40 +103,40 @@
103
103
  "name": "safeTransferFrom",
104
104
  "inputs": [
105
105
  {
106
- "name": "from",
106
+ "name": "_from",
107
107
  "type": "address",
108
108
  "internalType": "address"
109
109
  },
110
110
  {
111
- "name": "to",
111
+ "name": "_to",
112
112
  "type": "address",
113
113
  "internalType": "address"
114
114
  },
115
115
  {
116
- "name": "tokenId",
116
+ "name": "_tokenId",
117
117
  "type": "uint256",
118
118
  "internalType": "uint256"
119
119
  }
120
120
  ],
121
121
  "outputs": [],
122
- "stateMutability": "nonpayable"
122
+ "stateMutability": "payable"
123
123
  },
124
124
  {
125
125
  "type": "function",
126
126
  "name": "safeTransferFrom",
127
127
  "inputs": [
128
128
  {
129
- "name": "from",
129
+ "name": "_from",
130
130
  "type": "address",
131
131
  "internalType": "address"
132
132
  },
133
133
  {
134
- "name": "to",
134
+ "name": "_to",
135
135
  "type": "address",
136
136
  "internalType": "address"
137
137
  },
138
138
  {
139
- "name": "tokenId",
139
+ "name": "_tokenId",
140
140
  "type": "uint256",
141
141
  "internalType": "uint256"
142
142
  },
@@ -147,19 +147,19 @@
147
147
  }
148
148
  ],
149
149
  "outputs": [],
150
- "stateMutability": "nonpayable"
150
+ "stateMutability": "payable"
151
151
  },
152
152
  {
153
153
  "type": "function",
154
154
  "name": "setApprovalForAll",
155
155
  "inputs": [
156
156
  {
157
- "name": "operator",
157
+ "name": "_operator",
158
158
  "type": "address",
159
159
  "internalType": "address"
160
160
  },
161
161
  {
162
- "name": "approved",
162
+ "name": "_approved",
163
163
  "type": "bool",
164
164
  "internalType": "bool"
165
165
  }
@@ -172,7 +172,7 @@
172
172
  "name": "supportsInterface",
173
173
  "inputs": [
174
174
  {
175
- "name": "interfaceId",
175
+ "name": "interfaceID",
176
176
  "type": "bytes4",
177
177
  "internalType": "bytes4"
178
178
  }
@@ -191,42 +191,42 @@
191
191
  "name": "transferFrom",
192
192
  "inputs": [
193
193
  {
194
- "name": "from",
194
+ "name": "_from",
195
195
  "type": "address",
196
196
  "internalType": "address"
197
197
  },
198
198
  {
199
- "name": "to",
199
+ "name": "_to",
200
200
  "type": "address",
201
201
  "internalType": "address"
202
202
  },
203
203
  {
204
- "name": "tokenId",
204
+ "name": "_tokenId",
205
205
  "type": "uint256",
206
206
  "internalType": "uint256"
207
207
  }
208
208
  ],
209
209
  "outputs": [],
210
- "stateMutability": "nonpayable"
210
+ "stateMutability": "payable"
211
211
  },
212
212
  {
213
213
  "type": "event",
214
214
  "name": "Approval",
215
215
  "inputs": [
216
216
  {
217
- "name": "owner",
217
+ "name": "_owner",
218
218
  "type": "address",
219
219
  "indexed": true,
220
220
  "internalType": "address"
221
221
  },
222
222
  {
223
- "name": "approved",
223
+ "name": "_approved",
224
224
  "type": "address",
225
225
  "indexed": true,
226
226
  "internalType": "address"
227
227
  },
228
228
  {
229
- "name": "tokenId",
229
+ "name": "_tokenId",
230
230
  "type": "uint256",
231
231
  "indexed": true,
232
232
  "internalType": "uint256"
@@ -239,19 +239,19 @@
239
239
  "name": "ApprovalForAll",
240
240
  "inputs": [
241
241
  {
242
- "name": "owner",
242
+ "name": "_owner",
243
243
  "type": "address",
244
244
  "indexed": true,
245
245
  "internalType": "address"
246
246
  },
247
247
  {
248
- "name": "operator",
248
+ "name": "_operator",
249
249
  "type": "address",
250
250
  "indexed": true,
251
251
  "internalType": "address"
252
252
  },
253
253
  {
254
- "name": "approved",
254
+ "name": "_approved",
255
255
  "type": "bool",
256
256
  "indexed": false,
257
257
  "internalType": "bool"
@@ -264,19 +264,19 @@
264
264
  "name": "Transfer",
265
265
  "inputs": [
266
266
  {
267
- "name": "from",
267
+ "name": "_from",
268
268
  "type": "address",
269
269
  "indexed": true,
270
270
  "internalType": "address"
271
271
  },
272
272
  {
273
- "name": "to",
273
+ "name": "_to",
274
274
  "type": "address",
275
275
  "indexed": true,
276
276
  "internalType": "address"
277
277
  },
278
278
  {
279
- "name": "tokenId",
279
+ "name": "_tokenId",
280
280
  "type": "uint256",
281
281
  "indexed": true,
282
282
  "internalType": "uint256"
@@ -284,4 +284,4 @@
284
284
  ],
285
285
  "anonymous": false
286
286
  }
287
- ]]
287
+ ]
@@ -0,0 +1,15 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "coinType",
5
+ "inputs": [],
6
+ "outputs": [
7
+ {
8
+ "name": "",
9
+ "type": "uint8",
10
+ "internalType": "enum IHasCoinType.CoinType"
11
+ }
12
+ ],
13
+ "stateMutability": "view"
14
+ }
15
+ ]
@@ -0,0 +1,15 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "totalSupplyForPositions",
5
+ "inputs": [],
6
+ "outputs": [
7
+ {
8
+ "name": "",
9
+ "type": "uint256",
10
+ "internalType": "uint256"
11
+ }
12
+ ],
13
+ "stateMutability": "view"
14
+ }
15
+ ]
@@ -43,6 +43,32 @@
43
43
  ],
44
44
  "stateMutability": "view"
45
45
  },
46
+ {
47
+ "type": "function",
48
+ "name": "contentCoinHook",
49
+ "inputs": [],
50
+ "outputs": [
51
+ {
52
+ "name": "",
53
+ "type": "address",
54
+ "internalType": "address"
55
+ }
56
+ ],
57
+ "stateMutability": "view"
58
+ },
59
+ {
60
+ "type": "function",
61
+ "name": "creatorCoinHook",
62
+ "inputs": [],
63
+ "outputs": [
64
+ {
65
+ "name": "",
66
+ "type": "address",
67
+ "internalType": "address"
68
+ }
69
+ ],
70
+ "stateMutability": "view"
71
+ },
46
72
  {
47
73
  "type": "function",
48
74
  "name": "deploy",
@@ -308,6 +334,19 @@
308
334
  ],
309
335
  "stateMutability": "view"
310
336
  },
337
+ {
338
+ "type": "function",
339
+ "name": "hook",
340
+ "inputs": [],
341
+ "outputs": [
342
+ {
343
+ "name": "",
344
+ "type": "address",
345
+ "internalType": "address"
346
+ }
347
+ ],
348
+ "stateMutability": "view"
349
+ },
311
350
  {
312
351
  "type": "function",
313
352
  "name": "implementation",
@@ -321,6 +360,19 @@
321
360
  ],
322
361
  "stateMutability": "view"
323
362
  },
363
+ {
364
+ "type": "function",
365
+ "name": "zoraHookRegistry",
366
+ "inputs": [],
367
+ "outputs": [
368
+ {
369
+ "name": "",
370
+ "type": "address",
371
+ "internalType": "address"
372
+ }
373
+ ],
374
+ "stateMutability": "view"
375
+ },
324
376
  {
325
377
  "type": "event",
326
378
  "name": "CoinCreated",
@@ -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
+ ]