@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,174 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "collectProtocolFees",
5
+ "inputs": [
6
+ {
7
+ "name": "recipient",
8
+ "type": "address",
9
+ "internalType": "address"
10
+ },
11
+ {
12
+ "name": "currency",
13
+ "type": "address",
14
+ "internalType": "Currency"
15
+ },
16
+ {
17
+ "name": "amount",
18
+ "type": "uint256",
19
+ "internalType": "uint256"
20
+ }
21
+ ],
22
+ "outputs": [
23
+ {
24
+ "name": "amountCollected",
25
+ "type": "uint256",
26
+ "internalType": "uint256"
27
+ }
28
+ ],
29
+ "stateMutability": "nonpayable"
30
+ },
31
+ {
32
+ "type": "function",
33
+ "name": "protocolFeeController",
34
+ "inputs": [],
35
+ "outputs": [
36
+ {
37
+ "name": "",
38
+ "type": "address",
39
+ "internalType": "address"
40
+ }
41
+ ],
42
+ "stateMutability": "view"
43
+ },
44
+ {
45
+ "type": "function",
46
+ "name": "protocolFeesAccrued",
47
+ "inputs": [
48
+ {
49
+ "name": "currency",
50
+ "type": "address",
51
+ "internalType": "Currency"
52
+ }
53
+ ],
54
+ "outputs": [
55
+ {
56
+ "name": "amount",
57
+ "type": "uint256",
58
+ "internalType": "uint256"
59
+ }
60
+ ],
61
+ "stateMutability": "view"
62
+ },
63
+ {
64
+ "type": "function",
65
+ "name": "setProtocolFee",
66
+ "inputs": [
67
+ {
68
+ "name": "key",
69
+ "type": "tuple",
70
+ "internalType": "struct PoolKey",
71
+ "components": [
72
+ {
73
+ "name": "currency0",
74
+ "type": "address",
75
+ "internalType": "Currency"
76
+ },
77
+ {
78
+ "name": "currency1",
79
+ "type": "address",
80
+ "internalType": "Currency"
81
+ },
82
+ {
83
+ "name": "fee",
84
+ "type": "uint24",
85
+ "internalType": "uint24"
86
+ },
87
+ {
88
+ "name": "tickSpacing",
89
+ "type": "int24",
90
+ "internalType": "int24"
91
+ },
92
+ {
93
+ "name": "hooks",
94
+ "type": "address",
95
+ "internalType": "contract IHooks"
96
+ }
97
+ ]
98
+ },
99
+ {
100
+ "name": "newProtocolFee",
101
+ "type": "uint24",
102
+ "internalType": "uint24"
103
+ }
104
+ ],
105
+ "outputs": [],
106
+ "stateMutability": "nonpayable"
107
+ },
108
+ {
109
+ "type": "function",
110
+ "name": "setProtocolFeeController",
111
+ "inputs": [
112
+ {
113
+ "name": "controller",
114
+ "type": "address",
115
+ "internalType": "address"
116
+ }
117
+ ],
118
+ "outputs": [],
119
+ "stateMutability": "nonpayable"
120
+ },
121
+ {
122
+ "type": "event",
123
+ "name": "ProtocolFeeControllerUpdated",
124
+ "inputs": [
125
+ {
126
+ "name": "protocolFeeController",
127
+ "type": "address",
128
+ "indexed": true,
129
+ "internalType": "address"
130
+ }
131
+ ],
132
+ "anonymous": false
133
+ },
134
+ {
135
+ "type": "event",
136
+ "name": "ProtocolFeeUpdated",
137
+ "inputs": [
138
+ {
139
+ "name": "id",
140
+ "type": "bytes32",
141
+ "indexed": true,
142
+ "internalType": "PoolId"
143
+ },
144
+ {
145
+ "name": "protocolFee",
146
+ "type": "uint24",
147
+ "indexed": false,
148
+ "internalType": "uint24"
149
+ }
150
+ ],
151
+ "anonymous": false
152
+ },
153
+ {
154
+ "type": "error",
155
+ "name": "InvalidCaller",
156
+ "inputs": []
157
+ },
158
+ {
159
+ "type": "error",
160
+ "name": "ProtocolFeeCurrencySynced",
161
+ "inputs": []
162
+ },
163
+ {
164
+ "type": "error",
165
+ "name": "ProtocolFeeTooLarge",
166
+ "inputs": [
167
+ {
168
+ "name": "fee",
169
+ "type": "uint24",
170
+ "internalType": "uint24"
171
+ }
172
+ ]
173
+ }
174
+ ]
@@ -0,0 +1,394 @@
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": "invalidateUnorderedNonces",
18
+ "inputs": [
19
+ {
20
+ "name": "wordPos",
21
+ "type": "uint256",
22
+ "internalType": "uint256"
23
+ },
24
+ {
25
+ "name": "mask",
26
+ "type": "uint256",
27
+ "internalType": "uint256"
28
+ }
29
+ ],
30
+ "outputs": [],
31
+ "stateMutability": "nonpayable"
32
+ },
33
+ {
34
+ "type": "function",
35
+ "name": "nonceBitmap",
36
+ "inputs": [
37
+ {
38
+ "name": "",
39
+ "type": "address",
40
+ "internalType": "address"
41
+ },
42
+ {
43
+ "name": "",
44
+ "type": "uint256",
45
+ "internalType": "uint256"
46
+ }
47
+ ],
48
+ "outputs": [
49
+ {
50
+ "name": "",
51
+ "type": "uint256",
52
+ "internalType": "uint256"
53
+ }
54
+ ],
55
+ "stateMutability": "view"
56
+ },
57
+ {
58
+ "type": "function",
59
+ "name": "permitTransferFrom",
60
+ "inputs": [
61
+ {
62
+ "name": "permit",
63
+ "type": "tuple",
64
+ "internalType": "struct ISignatureTransfer.PermitTransferFrom",
65
+ "components": [
66
+ {
67
+ "name": "permitted",
68
+ "type": "tuple",
69
+ "internalType": "struct ISignatureTransfer.TokenPermissions",
70
+ "components": [
71
+ {
72
+ "name": "token",
73
+ "type": "address",
74
+ "internalType": "address"
75
+ },
76
+ {
77
+ "name": "amount",
78
+ "type": "uint256",
79
+ "internalType": "uint256"
80
+ }
81
+ ]
82
+ },
83
+ {
84
+ "name": "nonce",
85
+ "type": "uint256",
86
+ "internalType": "uint256"
87
+ },
88
+ {
89
+ "name": "deadline",
90
+ "type": "uint256",
91
+ "internalType": "uint256"
92
+ }
93
+ ]
94
+ },
95
+ {
96
+ "name": "transferDetails",
97
+ "type": "tuple",
98
+ "internalType": "struct ISignatureTransfer.SignatureTransferDetails",
99
+ "components": [
100
+ {
101
+ "name": "to",
102
+ "type": "address",
103
+ "internalType": "address"
104
+ },
105
+ {
106
+ "name": "requestedAmount",
107
+ "type": "uint256",
108
+ "internalType": "uint256"
109
+ }
110
+ ]
111
+ },
112
+ {
113
+ "name": "owner",
114
+ "type": "address",
115
+ "internalType": "address"
116
+ },
117
+ {
118
+ "name": "signature",
119
+ "type": "bytes",
120
+ "internalType": "bytes"
121
+ }
122
+ ],
123
+ "outputs": [],
124
+ "stateMutability": "nonpayable"
125
+ },
126
+ {
127
+ "type": "function",
128
+ "name": "permitTransferFrom",
129
+ "inputs": [
130
+ {
131
+ "name": "permit",
132
+ "type": "tuple",
133
+ "internalType": "struct ISignatureTransfer.PermitBatchTransferFrom",
134
+ "components": [
135
+ {
136
+ "name": "permitted",
137
+ "type": "tuple[]",
138
+ "internalType": "struct ISignatureTransfer.TokenPermissions[]",
139
+ "components": [
140
+ {
141
+ "name": "token",
142
+ "type": "address",
143
+ "internalType": "address"
144
+ },
145
+ {
146
+ "name": "amount",
147
+ "type": "uint256",
148
+ "internalType": "uint256"
149
+ }
150
+ ]
151
+ },
152
+ {
153
+ "name": "nonce",
154
+ "type": "uint256",
155
+ "internalType": "uint256"
156
+ },
157
+ {
158
+ "name": "deadline",
159
+ "type": "uint256",
160
+ "internalType": "uint256"
161
+ }
162
+ ]
163
+ },
164
+ {
165
+ "name": "transferDetails",
166
+ "type": "tuple[]",
167
+ "internalType": "struct ISignatureTransfer.SignatureTransferDetails[]",
168
+ "components": [
169
+ {
170
+ "name": "to",
171
+ "type": "address",
172
+ "internalType": "address"
173
+ },
174
+ {
175
+ "name": "requestedAmount",
176
+ "type": "uint256",
177
+ "internalType": "uint256"
178
+ }
179
+ ]
180
+ },
181
+ {
182
+ "name": "owner",
183
+ "type": "address",
184
+ "internalType": "address"
185
+ },
186
+ {
187
+ "name": "signature",
188
+ "type": "bytes",
189
+ "internalType": "bytes"
190
+ }
191
+ ],
192
+ "outputs": [],
193
+ "stateMutability": "nonpayable"
194
+ },
195
+ {
196
+ "type": "function",
197
+ "name": "permitWitnessTransferFrom",
198
+ "inputs": [
199
+ {
200
+ "name": "permit",
201
+ "type": "tuple",
202
+ "internalType": "struct ISignatureTransfer.PermitTransferFrom",
203
+ "components": [
204
+ {
205
+ "name": "permitted",
206
+ "type": "tuple",
207
+ "internalType": "struct ISignatureTransfer.TokenPermissions",
208
+ "components": [
209
+ {
210
+ "name": "token",
211
+ "type": "address",
212
+ "internalType": "address"
213
+ },
214
+ {
215
+ "name": "amount",
216
+ "type": "uint256",
217
+ "internalType": "uint256"
218
+ }
219
+ ]
220
+ },
221
+ {
222
+ "name": "nonce",
223
+ "type": "uint256",
224
+ "internalType": "uint256"
225
+ },
226
+ {
227
+ "name": "deadline",
228
+ "type": "uint256",
229
+ "internalType": "uint256"
230
+ }
231
+ ]
232
+ },
233
+ {
234
+ "name": "transferDetails",
235
+ "type": "tuple",
236
+ "internalType": "struct ISignatureTransfer.SignatureTransferDetails",
237
+ "components": [
238
+ {
239
+ "name": "to",
240
+ "type": "address",
241
+ "internalType": "address"
242
+ },
243
+ {
244
+ "name": "requestedAmount",
245
+ "type": "uint256",
246
+ "internalType": "uint256"
247
+ }
248
+ ]
249
+ },
250
+ {
251
+ "name": "owner",
252
+ "type": "address",
253
+ "internalType": "address"
254
+ },
255
+ {
256
+ "name": "witness",
257
+ "type": "bytes32",
258
+ "internalType": "bytes32"
259
+ },
260
+ {
261
+ "name": "witnessTypeString",
262
+ "type": "string",
263
+ "internalType": "string"
264
+ },
265
+ {
266
+ "name": "signature",
267
+ "type": "bytes",
268
+ "internalType": "bytes"
269
+ }
270
+ ],
271
+ "outputs": [],
272
+ "stateMutability": "nonpayable"
273
+ },
274
+ {
275
+ "type": "function",
276
+ "name": "permitWitnessTransferFrom",
277
+ "inputs": [
278
+ {
279
+ "name": "permit",
280
+ "type": "tuple",
281
+ "internalType": "struct ISignatureTransfer.PermitBatchTransferFrom",
282
+ "components": [
283
+ {
284
+ "name": "permitted",
285
+ "type": "tuple[]",
286
+ "internalType": "struct ISignatureTransfer.TokenPermissions[]",
287
+ "components": [
288
+ {
289
+ "name": "token",
290
+ "type": "address",
291
+ "internalType": "address"
292
+ },
293
+ {
294
+ "name": "amount",
295
+ "type": "uint256",
296
+ "internalType": "uint256"
297
+ }
298
+ ]
299
+ },
300
+ {
301
+ "name": "nonce",
302
+ "type": "uint256",
303
+ "internalType": "uint256"
304
+ },
305
+ {
306
+ "name": "deadline",
307
+ "type": "uint256",
308
+ "internalType": "uint256"
309
+ }
310
+ ]
311
+ },
312
+ {
313
+ "name": "transferDetails",
314
+ "type": "tuple[]",
315
+ "internalType": "struct ISignatureTransfer.SignatureTransferDetails[]",
316
+ "components": [
317
+ {
318
+ "name": "to",
319
+ "type": "address",
320
+ "internalType": "address"
321
+ },
322
+ {
323
+ "name": "requestedAmount",
324
+ "type": "uint256",
325
+ "internalType": "uint256"
326
+ }
327
+ ]
328
+ },
329
+ {
330
+ "name": "owner",
331
+ "type": "address",
332
+ "internalType": "address"
333
+ },
334
+ {
335
+ "name": "witness",
336
+ "type": "bytes32",
337
+ "internalType": "bytes32"
338
+ },
339
+ {
340
+ "name": "witnessTypeString",
341
+ "type": "string",
342
+ "internalType": "string"
343
+ },
344
+ {
345
+ "name": "signature",
346
+ "type": "bytes",
347
+ "internalType": "bytes"
348
+ }
349
+ ],
350
+ "outputs": [],
351
+ "stateMutability": "nonpayable"
352
+ },
353
+ {
354
+ "type": "event",
355
+ "name": "UnorderedNonceInvalidation",
356
+ "inputs": [
357
+ {
358
+ "name": "owner",
359
+ "type": "address",
360
+ "indexed": true,
361
+ "internalType": "address"
362
+ },
363
+ {
364
+ "name": "word",
365
+ "type": "uint256",
366
+ "indexed": false,
367
+ "internalType": "uint256"
368
+ },
369
+ {
370
+ "name": "mask",
371
+ "type": "uint256",
372
+ "indexed": false,
373
+ "internalType": "uint256"
374
+ }
375
+ ],
376
+ "anonymous": false
377
+ },
378
+ {
379
+ "type": "error",
380
+ "name": "InvalidAmount",
381
+ "inputs": [
382
+ {
383
+ "name": "maxAmount",
384
+ "type": "uint256",
385
+ "internalType": "uint256"
386
+ }
387
+ ]
388
+ },
389
+ {
390
+ "type": "error",
391
+ "name": "LengthMismatch",
392
+ "inputs": []
393
+ }
394
+ ]
@@ -0,0 +1,89 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "notifyBurn",
5
+ "inputs": [
6
+ {
7
+ "name": "tokenId",
8
+ "type": "uint256",
9
+ "internalType": "uint256"
10
+ },
11
+ {
12
+ "name": "owner",
13
+ "type": "address",
14
+ "internalType": "address"
15
+ },
16
+ {
17
+ "name": "info",
18
+ "type": "uint256",
19
+ "internalType": "PositionInfo"
20
+ },
21
+ {
22
+ "name": "liquidity",
23
+ "type": "uint256",
24
+ "internalType": "uint256"
25
+ },
26
+ {
27
+ "name": "feesAccrued",
28
+ "type": "int256",
29
+ "internalType": "BalanceDelta"
30
+ }
31
+ ],
32
+ "outputs": [],
33
+ "stateMutability": "nonpayable"
34
+ },
35
+ {
36
+ "type": "function",
37
+ "name": "notifyModifyLiquidity",
38
+ "inputs": [
39
+ {
40
+ "name": "tokenId",
41
+ "type": "uint256",
42
+ "internalType": "uint256"
43
+ },
44
+ {
45
+ "name": "liquidityChange",
46
+ "type": "int256",
47
+ "internalType": "int256"
48
+ },
49
+ {
50
+ "name": "feesAccrued",
51
+ "type": "int256",
52
+ "internalType": "BalanceDelta"
53
+ }
54
+ ],
55
+ "outputs": [],
56
+ "stateMutability": "nonpayable"
57
+ },
58
+ {
59
+ "type": "function",
60
+ "name": "notifySubscribe",
61
+ "inputs": [
62
+ {
63
+ "name": "tokenId",
64
+ "type": "uint256",
65
+ "internalType": "uint256"
66
+ },
67
+ {
68
+ "name": "data",
69
+ "type": "bytes",
70
+ "internalType": "bytes"
71
+ }
72
+ ],
73
+ "outputs": [],
74
+ "stateMutability": "nonpayable"
75
+ },
76
+ {
77
+ "type": "function",
78
+ "name": "notifyUnsubscribe",
79
+ "inputs": [
80
+ {
81
+ "name": "tokenId",
82
+ "type": "uint256",
83
+ "internalType": "uint256"
84
+ }
85
+ ],
86
+ "outputs": [],
87
+ "stateMutability": "nonpayable"
88
+ }
89
+ ]