@zoralabs/coins 2.3.0 → 2.4.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 (72) hide show
  1. package/.turbo/turbo-build$colon$js.log +119 -101
  2. package/CHANGELOG.md +31 -1
  3. package/README.md +1 -0
  4. package/abis/AddressConstants.json +7 -0
  5. package/abis/BaseTest.json +65 -3
  6. package/abis/BuySupplyWithV4SwapHook.json +429 -0
  7. package/abis/FeeEstimatorHook.json +23 -0
  8. package/abis/ITrustedMsgSenderProviderLookup.json +21 -0
  9. package/abis/IUniswapV4Router04.json +484 -0
  10. package/abis/IZoraV4CoinHook.json +5 -0
  11. package/abis/MockAirlock.json +39 -0
  12. package/abis/SimpleERC20.json +326 -0
  13. package/abis/TrustedMsgSenderProviderLookup.json +215 -0
  14. package/abis/VmContractHelper242.json +233 -0
  15. package/abis/ZoraV4CoinHook.json +21 -3
  16. package/addresses/8453.json +7 -9
  17. package/audits/report-cantinacode-zora-1021.pdf +0 -0
  18. package/dist/index.cjs +140 -19
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.js +139 -18
  21. package/dist/index.js.map +1 -1
  22. package/dist/wagmiGenerated.d.ts +205 -28
  23. package/dist/wagmiGenerated.d.ts.map +1 -1
  24. package/foundry.toml +5 -1
  25. package/package/wagmiGenerated.ts +139 -18
  26. package/package.json +3 -3
  27. package/script/DeployPostDeploymentHooks.s.sol +1 -3
  28. package/script/DeployTrustedMsgSenderLookup.s.sol +20 -0
  29. package/src/deployment/CoinsDeployerBase.sol +31 -9
  30. package/src/hooks/ZoraV4CoinHook.sol +19 -55
  31. package/src/hooks/deployment/BuySupplyWithV4SwapHook.sol +310 -0
  32. package/src/interfaces/ITrustedMsgSenderProviderLookup.sol +18 -0
  33. package/src/interfaces/IZoraV4CoinHook.sol +3 -0
  34. package/src/libs/HooksDeployment.sol +9 -8
  35. package/src/libs/V4Liquidity.sol +50 -6
  36. package/src/utils/AutoSwapper.sol +1 -1
  37. package/src/utils/TrustedMsgSenderProviderLookup.sol +73 -0
  38. package/src/version/ContractVersionBase.sol +1 -1
  39. package/test/BuySupplyWithV4SwapHook.t.sol +509 -0
  40. package/test/Coin.t.sol +21 -9
  41. package/test/CoinUniV4.t.sol +1 -2
  42. package/test/ContentCoinRewards.t.sol +1 -3
  43. package/test/CreatorCoin.t.sol +1 -4
  44. package/test/CreatorCoinRewards.t.sol +5 -3
  45. package/test/Factory.t.sol +3 -3
  46. package/test/HooksDeployment.t.sol +58 -6
  47. package/test/LiquidityMigration.t.sol +6 -2
  48. package/test/MultiOwnable.t.sol +4 -4
  49. package/test/TrustedMsgSenderProviderLookup.t.sol +112 -0
  50. package/test/Upgrades.t.sol +41 -27
  51. package/test/ZoraHookRegistry.t.sol +19 -9
  52. package/test/mocks/MockAirlock.sol +22 -0
  53. package/test/mocks/SimpleERC20.sol +8 -0
  54. package/test/utils/BaseTest.sol +185 -6
  55. package/test/utils/FeeEstimatorHook.sol +3 -1
  56. package/test/utils/TrustedSenderTestHelper.sol +18 -0
  57. package/test/utils/hookmate/README.md +50 -0
  58. package/test/utils/hookmate/artifacts/DeployHelper.sol +20 -0
  59. package/test/utils/hookmate/artifacts/Permit2.sol +16 -0
  60. package/test/utils/hookmate/artifacts/UniversalRouter.sol +29 -0
  61. package/test/utils/hookmate/artifacts/V4PoolManager.sol +17 -0
  62. package/test/utils/hookmate/artifacts/V4PositionManager.sol +23 -0
  63. package/test/utils/hookmate/artifacts/V4Quoter.sol +17 -0
  64. package/test/utils/hookmate/artifacts/V4Router.sol +18 -0
  65. package/test/utils/hookmate/constants/AddressConstants.sol +193 -0
  66. package/test/utils/hookmate/interfaces/router/IUniswapV4Router04.sol +173 -0
  67. package/test/utils/hookmate/interfaces/router/PathKey.sol +34 -0
  68. package/test/utils/hookmate/test/utils/SwapFeeEventAsserter.sol +24 -0
  69. package/wagmi.config.ts +1 -1
  70. package/src/utils/uniswap/BytesLib.sol +0 -35
  71. package/src/utils/uniswap/Path.sol +0 -31
  72. /package/abis/{VmContractHelper226.json → VmContractHelper235.json} +0 -0
@@ -0,0 +1,326 @@
1
+ [
2
+ {
3
+ "type": "constructor",
4
+ "inputs": [
5
+ {
6
+ "name": "name",
7
+ "type": "string",
8
+ "internalType": "string"
9
+ },
10
+ {
11
+ "name": "symbol",
12
+ "type": "string",
13
+ "internalType": "string"
14
+ }
15
+ ],
16
+ "stateMutability": "nonpayable"
17
+ },
18
+ {
19
+ "type": "function",
20
+ "name": "allowance",
21
+ "inputs": [
22
+ {
23
+ "name": "owner",
24
+ "type": "address",
25
+ "internalType": "address"
26
+ },
27
+ {
28
+ "name": "spender",
29
+ "type": "address",
30
+ "internalType": "address"
31
+ }
32
+ ],
33
+ "outputs": [
34
+ {
35
+ "name": "",
36
+ "type": "uint256",
37
+ "internalType": "uint256"
38
+ }
39
+ ],
40
+ "stateMutability": "view"
41
+ },
42
+ {
43
+ "type": "function",
44
+ "name": "approve",
45
+ "inputs": [
46
+ {
47
+ "name": "spender",
48
+ "type": "address",
49
+ "internalType": "address"
50
+ },
51
+ {
52
+ "name": "value",
53
+ "type": "uint256",
54
+ "internalType": "uint256"
55
+ }
56
+ ],
57
+ "outputs": [
58
+ {
59
+ "name": "",
60
+ "type": "bool",
61
+ "internalType": "bool"
62
+ }
63
+ ],
64
+ "stateMutability": "nonpayable"
65
+ },
66
+ {
67
+ "type": "function",
68
+ "name": "balanceOf",
69
+ "inputs": [
70
+ {
71
+ "name": "account",
72
+ "type": "address",
73
+ "internalType": "address"
74
+ }
75
+ ],
76
+ "outputs": [
77
+ {
78
+ "name": "",
79
+ "type": "uint256",
80
+ "internalType": "uint256"
81
+ }
82
+ ],
83
+ "stateMutability": "view"
84
+ },
85
+ {
86
+ "type": "function",
87
+ "name": "decimals",
88
+ "inputs": [],
89
+ "outputs": [
90
+ {
91
+ "name": "",
92
+ "type": "uint8",
93
+ "internalType": "uint8"
94
+ }
95
+ ],
96
+ "stateMutability": "view"
97
+ },
98
+ {
99
+ "type": "function",
100
+ "name": "name",
101
+ "inputs": [],
102
+ "outputs": [
103
+ {
104
+ "name": "",
105
+ "type": "string",
106
+ "internalType": "string"
107
+ }
108
+ ],
109
+ "stateMutability": "view"
110
+ },
111
+ {
112
+ "type": "function",
113
+ "name": "symbol",
114
+ "inputs": [],
115
+ "outputs": [
116
+ {
117
+ "name": "",
118
+ "type": "string",
119
+ "internalType": "string"
120
+ }
121
+ ],
122
+ "stateMutability": "view"
123
+ },
124
+ {
125
+ "type": "function",
126
+ "name": "totalSupply",
127
+ "inputs": [],
128
+ "outputs": [
129
+ {
130
+ "name": "",
131
+ "type": "uint256",
132
+ "internalType": "uint256"
133
+ }
134
+ ],
135
+ "stateMutability": "view"
136
+ },
137
+ {
138
+ "type": "function",
139
+ "name": "transfer",
140
+ "inputs": [
141
+ {
142
+ "name": "to",
143
+ "type": "address",
144
+ "internalType": "address"
145
+ },
146
+ {
147
+ "name": "value",
148
+ "type": "uint256",
149
+ "internalType": "uint256"
150
+ }
151
+ ],
152
+ "outputs": [
153
+ {
154
+ "name": "",
155
+ "type": "bool",
156
+ "internalType": "bool"
157
+ }
158
+ ],
159
+ "stateMutability": "nonpayable"
160
+ },
161
+ {
162
+ "type": "function",
163
+ "name": "transferFrom",
164
+ "inputs": [
165
+ {
166
+ "name": "from",
167
+ "type": "address",
168
+ "internalType": "address"
169
+ },
170
+ {
171
+ "name": "to",
172
+ "type": "address",
173
+ "internalType": "address"
174
+ },
175
+ {
176
+ "name": "value",
177
+ "type": "uint256",
178
+ "internalType": "uint256"
179
+ }
180
+ ],
181
+ "outputs": [
182
+ {
183
+ "name": "",
184
+ "type": "bool",
185
+ "internalType": "bool"
186
+ }
187
+ ],
188
+ "stateMutability": "nonpayable"
189
+ },
190
+ {
191
+ "type": "event",
192
+ "name": "Approval",
193
+ "inputs": [
194
+ {
195
+ "name": "owner",
196
+ "type": "address",
197
+ "indexed": true,
198
+ "internalType": "address"
199
+ },
200
+ {
201
+ "name": "spender",
202
+ "type": "address",
203
+ "indexed": true,
204
+ "internalType": "address"
205
+ },
206
+ {
207
+ "name": "value",
208
+ "type": "uint256",
209
+ "indexed": false,
210
+ "internalType": "uint256"
211
+ }
212
+ ],
213
+ "anonymous": false
214
+ },
215
+ {
216
+ "type": "event",
217
+ "name": "Transfer",
218
+ "inputs": [
219
+ {
220
+ "name": "from",
221
+ "type": "address",
222
+ "indexed": true,
223
+ "internalType": "address"
224
+ },
225
+ {
226
+ "name": "to",
227
+ "type": "address",
228
+ "indexed": true,
229
+ "internalType": "address"
230
+ },
231
+ {
232
+ "name": "value",
233
+ "type": "uint256",
234
+ "indexed": false,
235
+ "internalType": "uint256"
236
+ }
237
+ ],
238
+ "anonymous": false
239
+ },
240
+ {
241
+ "type": "error",
242
+ "name": "ERC20InsufficientAllowance",
243
+ "inputs": [
244
+ {
245
+ "name": "spender",
246
+ "type": "address",
247
+ "internalType": "address"
248
+ },
249
+ {
250
+ "name": "allowance",
251
+ "type": "uint256",
252
+ "internalType": "uint256"
253
+ },
254
+ {
255
+ "name": "needed",
256
+ "type": "uint256",
257
+ "internalType": "uint256"
258
+ }
259
+ ]
260
+ },
261
+ {
262
+ "type": "error",
263
+ "name": "ERC20InsufficientBalance",
264
+ "inputs": [
265
+ {
266
+ "name": "sender",
267
+ "type": "address",
268
+ "internalType": "address"
269
+ },
270
+ {
271
+ "name": "balance",
272
+ "type": "uint256",
273
+ "internalType": "uint256"
274
+ },
275
+ {
276
+ "name": "needed",
277
+ "type": "uint256",
278
+ "internalType": "uint256"
279
+ }
280
+ ]
281
+ },
282
+ {
283
+ "type": "error",
284
+ "name": "ERC20InvalidApprover",
285
+ "inputs": [
286
+ {
287
+ "name": "approver",
288
+ "type": "address",
289
+ "internalType": "address"
290
+ }
291
+ ]
292
+ },
293
+ {
294
+ "type": "error",
295
+ "name": "ERC20InvalidReceiver",
296
+ "inputs": [
297
+ {
298
+ "name": "receiver",
299
+ "type": "address",
300
+ "internalType": "address"
301
+ }
302
+ ]
303
+ },
304
+ {
305
+ "type": "error",
306
+ "name": "ERC20InvalidSender",
307
+ "inputs": [
308
+ {
309
+ "name": "sender",
310
+ "type": "address",
311
+ "internalType": "address"
312
+ }
313
+ ]
314
+ },
315
+ {
316
+ "type": "error",
317
+ "name": "ERC20InvalidSpender",
318
+ "inputs": [
319
+ {
320
+ "name": "spender",
321
+ "type": "address",
322
+ "internalType": "address"
323
+ }
324
+ ]
325
+ }
326
+ ]
@@ -0,0 +1,215 @@
1
+ [
2
+ {
3
+ "type": "constructor",
4
+ "inputs": [
5
+ {
6
+ "name": "trustedMessageSenders",
7
+ "type": "address[]",
8
+ "internalType": "address[]"
9
+ },
10
+ {
11
+ "name": "initialOwner",
12
+ "type": "address",
13
+ "internalType": "address"
14
+ }
15
+ ],
16
+ "stateMutability": "nonpayable"
17
+ },
18
+ {
19
+ "type": "function",
20
+ "name": "acceptOwnership",
21
+ "inputs": [],
22
+ "outputs": [],
23
+ "stateMutability": "nonpayable"
24
+ },
25
+ {
26
+ "type": "function",
27
+ "name": "addTrustedMsgSenderProviders",
28
+ "inputs": [
29
+ {
30
+ "name": "senders",
31
+ "type": "address[]",
32
+ "internalType": "address[]"
33
+ }
34
+ ],
35
+ "outputs": [],
36
+ "stateMutability": "nonpayable"
37
+ },
38
+ {
39
+ "type": "function",
40
+ "name": "contractVersion",
41
+ "inputs": [],
42
+ "outputs": [
43
+ {
44
+ "name": "",
45
+ "type": "string",
46
+ "internalType": "string"
47
+ }
48
+ ],
49
+ "stateMutability": "pure"
50
+ },
51
+ {
52
+ "type": "function",
53
+ "name": "isTrustedMsgSenderProvider",
54
+ "inputs": [
55
+ {
56
+ "name": "sender",
57
+ "type": "address",
58
+ "internalType": "address"
59
+ }
60
+ ],
61
+ "outputs": [
62
+ {
63
+ "name": "",
64
+ "type": "bool",
65
+ "internalType": "bool"
66
+ }
67
+ ],
68
+ "stateMutability": "view"
69
+ },
70
+ {
71
+ "type": "function",
72
+ "name": "owner",
73
+ "inputs": [],
74
+ "outputs": [
75
+ {
76
+ "name": "",
77
+ "type": "address",
78
+ "internalType": "address"
79
+ }
80
+ ],
81
+ "stateMutability": "view"
82
+ },
83
+ {
84
+ "type": "function",
85
+ "name": "pendingOwner",
86
+ "inputs": [],
87
+ "outputs": [
88
+ {
89
+ "name": "",
90
+ "type": "address",
91
+ "internalType": "address"
92
+ }
93
+ ],
94
+ "stateMutability": "view"
95
+ },
96
+ {
97
+ "type": "function",
98
+ "name": "removeTrustedMsgSenderProviders",
99
+ "inputs": [
100
+ {
101
+ "name": "senders",
102
+ "type": "address[]",
103
+ "internalType": "address[]"
104
+ }
105
+ ],
106
+ "outputs": [],
107
+ "stateMutability": "nonpayable"
108
+ },
109
+ {
110
+ "type": "function",
111
+ "name": "renounceOwnership",
112
+ "inputs": [],
113
+ "outputs": [],
114
+ "stateMutability": "nonpayable"
115
+ },
116
+ {
117
+ "type": "function",
118
+ "name": "transferOwnership",
119
+ "inputs": [
120
+ {
121
+ "name": "newOwner",
122
+ "type": "address",
123
+ "internalType": "address"
124
+ }
125
+ ],
126
+ "outputs": [],
127
+ "stateMutability": "nonpayable"
128
+ },
129
+ {
130
+ "type": "event",
131
+ "name": "OwnershipTransferStarted",
132
+ "inputs": [
133
+ {
134
+ "name": "previousOwner",
135
+ "type": "address",
136
+ "indexed": true,
137
+ "internalType": "address"
138
+ },
139
+ {
140
+ "name": "newOwner",
141
+ "type": "address",
142
+ "indexed": true,
143
+ "internalType": "address"
144
+ }
145
+ ],
146
+ "anonymous": false
147
+ },
148
+ {
149
+ "type": "event",
150
+ "name": "OwnershipTransferred",
151
+ "inputs": [
152
+ {
153
+ "name": "previousOwner",
154
+ "type": "address",
155
+ "indexed": true,
156
+ "internalType": "address"
157
+ },
158
+ {
159
+ "name": "newOwner",
160
+ "type": "address",
161
+ "indexed": true,
162
+ "internalType": "address"
163
+ }
164
+ ],
165
+ "anonymous": false
166
+ },
167
+ {
168
+ "type": "event",
169
+ "name": "TrustedSenderAdded",
170
+ "inputs": [
171
+ {
172
+ "name": "sender",
173
+ "type": "address",
174
+ "indexed": true,
175
+ "internalType": "address"
176
+ }
177
+ ],
178
+ "anonymous": false
179
+ },
180
+ {
181
+ "type": "event",
182
+ "name": "TrustedSenderRemoved",
183
+ "inputs": [
184
+ {
185
+ "name": "sender",
186
+ "type": "address",
187
+ "indexed": true,
188
+ "internalType": "address"
189
+ }
190
+ ],
191
+ "anonymous": false
192
+ },
193
+ {
194
+ "type": "error",
195
+ "name": "OwnableInvalidOwner",
196
+ "inputs": [
197
+ {
198
+ "name": "owner",
199
+ "type": "address",
200
+ "internalType": "address"
201
+ }
202
+ ]
203
+ },
204
+ {
205
+ "type": "error",
206
+ "name": "OwnableUnauthorizedAccount",
207
+ "inputs": [
208
+ {
209
+ "name": "account",
210
+ "type": "address",
211
+ "internalType": "address"
212
+ }
213
+ ]
214
+ }
215
+ ]