@zoralabs/coins 0.1.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 (116) hide show
  1. package/.turbo/turbo-build.log +76 -0
  2. package/CHANGELOG.md +14 -0
  3. package/LICENSE +21 -0
  4. package/abis/Address.json +29 -0
  5. package/abis/BaseTest.json +691 -0
  6. package/abis/Clones.json +7 -0
  7. package/abis/Coin.json +1693 -0
  8. package/abis/CoinConstants.json +93 -0
  9. package/abis/CoinTest.json +998 -0
  10. package/abis/ContextUpgradeable.json +25 -0
  11. package/abis/ContractVersionBase.json +15 -0
  12. package/abis/Deploy.json +29 -0
  13. package/abis/ECDSA.json +29 -0
  14. package/abis/EIP712.json +67 -0
  15. package/abis/EIP712Upgradeable.json +74 -0
  16. package/abis/ERC1967Proxy.json +67 -0
  17. package/abis/ERC1967Utils.json +85 -0
  18. package/abis/ERC20PermitUpgradeable.json +527 -0
  19. package/abis/ERC20Upgradeable.json +333 -0
  20. package/abis/FactoryTest.json +845 -0
  21. package/abis/IBeacon.json +15 -0
  22. package/abis/ICoin.json +541 -0
  23. package/abis/ICoinComments.json +53 -0
  24. package/abis/IERC1155Errors.json +104 -0
  25. package/abis/IERC165.json +21 -0
  26. package/abis/IERC1822Proxiable.json +15 -0
  27. package/abis/IERC20.json +221 -0
  28. package/abis/IERC20Errors.json +88 -0
  29. package/abis/IERC20Metadata.json +224 -0
  30. package/abis/IERC20Permit.json +77 -0
  31. package/abis/IERC5267.json +51 -0
  32. package/abis/IERC721.json +287 -0
  33. package/abis/IERC721Enumerable.json +343 -0
  34. package/abis/IERC721Errors.json +105 -0
  35. package/abis/IERC721Metadata.json +332 -0
  36. package/abis/IERC721Receiver.json +36 -0
  37. package/abis/IERC721TokenReceiver.json +36 -0
  38. package/abis/IERC7572.json +21 -0
  39. package/abis/IMulticall3.json +440 -0
  40. package/abis/INonfungiblePositionManager.json +366 -0
  41. package/abis/IProtocolRewards.json +348 -0
  42. package/abis/ISwapRouter.json +137 -0
  43. package/abis/IUniswapV3Pool.json +148 -0
  44. package/abis/IUniswapV3SwapCallback.json +25 -0
  45. package/abis/IVersionedContract.json +15 -0
  46. package/abis/IWETH.json +118 -0
  47. package/abis/IZoraFactory.json +138 -0
  48. package/abis/Initializable.json +25 -0
  49. package/abis/Math.json +7 -0
  50. package/abis/MockERC20.json +322 -0
  51. package/abis/MockERC721.json +350 -0
  52. package/abis/MultiOwnable.json +171 -0
  53. package/abis/MultiOwnableTest.json +796 -0
  54. package/abis/NoncesUpgradeable.json +60 -0
  55. package/abis/OwnableUpgradeable.json +99 -0
  56. package/abis/ProtocolRewards.json +494 -0
  57. package/abis/Proxy.json +6 -0
  58. package/abis/ReentrancyGuardUpgradeable.json +30 -0
  59. package/abis/SafeERC20.json +34 -0
  60. package/abis/Script.json +15 -0
  61. package/abis/ShortStrings.json +18 -0
  62. package/abis/StdAssertions.json +379 -0
  63. package/abis/StdInvariant.json +180 -0
  64. package/abis/Strings.json +18 -0
  65. package/abis/Test.json +570 -0
  66. package/abis/UUPSUpgradeable.json +130 -0
  67. package/abis/Vm.json +8627 -0
  68. package/abis/VmSafe.json +7297 -0
  69. package/abis/ZoraFactory.json +67 -0
  70. package/abis/ZoraFactoryImpl.json +422 -0
  71. package/abis/stdError.json +119 -0
  72. package/abis/stdStorageSafe.json +52 -0
  73. package/addresses/1.json +4 -0
  74. package/addresses/8453.json +9 -0
  75. package/addresses/84532.json +9 -0
  76. package/dist/index.cjs +1236 -0
  77. package/dist/index.cjs.map +1 -0
  78. package/dist/index.d.ts +2 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +1208 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/wagmiGenerated.d.ts +1645 -0
  83. package/dist/wagmiGenerated.d.ts.map +1 -0
  84. package/foundry.toml +9 -0
  85. package/package/index.ts +1 -0
  86. package/package/wagmiGenerated.ts +1211 -0
  87. package/package.json +48 -0
  88. package/remappings.txt +4 -0
  89. package/script/Deploy.s.sol +14 -0
  90. package/slither.config.json +6 -0
  91. package/src/Coin.sol +579 -0
  92. package/src/ZoraFactoryImpl.sol +142 -0
  93. package/src/interfaces/ICoin.sol +194 -0
  94. package/src/interfaces/ICoinComments.sol +8 -0
  95. package/src/interfaces/IERC7572.sol +12 -0
  96. package/src/interfaces/INonfungiblePositionManager.sol +104 -0
  97. package/src/interfaces/IProtocolRewards.sol +12 -0
  98. package/src/interfaces/ISwapRouter.sol +38 -0
  99. package/src/interfaces/IUniswapV3Pool.sol +43 -0
  100. package/src/interfaces/IUniswapV3SwapCallback.sol +17 -0
  101. package/src/interfaces/IWETH.sol +16 -0
  102. package/src/interfaces/IZoraFactory.sol +56 -0
  103. package/src/proxy/ZoraFactory.sol +26 -0
  104. package/src/utils/CoinConstants.sol +67 -0
  105. package/src/utils/MultiOwnable.sol +126 -0
  106. package/src/utils/TickMath.sol +210 -0
  107. package/src/version/ContractVersionBase.sol +14 -0
  108. package/test/Coin.t.sol +443 -0
  109. package/test/Factory.t.sol +298 -0
  110. package/test/MultiOwnable.t.sol +156 -0
  111. package/test/utils/BaseTest.sol +178 -0
  112. package/test/utils/ProtocolRewards.sol +1499 -0
  113. package/tsconfig.build.json +10 -0
  114. package/tsconfig.json +9 -0
  115. package/tsup.config.ts +11 -0
  116. package/wagmi.config.ts +16 -0
@@ -0,0 +1,1211 @@
1
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2
+ // Coin
3
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4
+
5
+ export const coinABI = [
6
+ {
7
+ type: 'constructor',
8
+ inputs: [
9
+ {
10
+ name: '_protocolRewardRecipient',
11
+ internalType: 'address',
12
+ type: 'address',
13
+ },
14
+ { name: '_protocolRewards', internalType: 'address', type: 'address' },
15
+ { name: '_weth', internalType: 'address', type: 'address' },
16
+ {
17
+ name: '_nonfungiblePositionManager',
18
+ internalType: 'address',
19
+ type: 'address',
20
+ },
21
+ { name: '_swapRouter', internalType: 'address', type: 'address' },
22
+ ],
23
+ stateMutability: 'nonpayable',
24
+ },
25
+ { type: 'receive', stateMutability: 'payable' },
26
+ {
27
+ type: 'function',
28
+ inputs: [],
29
+ name: 'DOMAIN_SEPARATOR',
30
+ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
31
+ stateMutability: 'view',
32
+ },
33
+ {
34
+ type: 'function',
35
+ inputs: [],
36
+ name: 'MAX_TOTAL_SUPPLY',
37
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
38
+ stateMutability: 'view',
39
+ },
40
+ {
41
+ type: 'function',
42
+ inputs: [],
43
+ name: 'MIN_ORDER_SIZE',
44
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
45
+ stateMutability: 'view',
46
+ },
47
+ {
48
+ type: 'function',
49
+ inputs: [],
50
+ name: 'PLATFORM_REFERRER_FEE_BPS',
51
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
52
+ stateMutability: 'view',
53
+ },
54
+ {
55
+ type: 'function',
56
+ inputs: [],
57
+ name: 'PROTOCOL_FEE_BPS',
58
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
59
+ stateMutability: 'view',
60
+ },
61
+ {
62
+ type: 'function',
63
+ inputs: [],
64
+ name: 'TOKEN_CREATOR_FEE_BPS',
65
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
66
+ stateMutability: 'view',
67
+ },
68
+ {
69
+ type: 'function',
70
+ inputs: [],
71
+ name: 'TOTAL_FEE_BPS',
72
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
73
+ stateMutability: 'view',
74
+ },
75
+ {
76
+ type: 'function',
77
+ inputs: [],
78
+ name: 'TRADE_REFERRER_FEE_BPS',
79
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
80
+ stateMutability: 'view',
81
+ },
82
+ {
83
+ type: 'function',
84
+ inputs: [],
85
+ name: 'WETH',
86
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
87
+ stateMutability: 'view',
88
+ },
89
+ {
90
+ type: 'function',
91
+ inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
92
+ name: 'addOwner',
93
+ outputs: [],
94
+ stateMutability: 'nonpayable',
95
+ },
96
+ {
97
+ type: 'function',
98
+ inputs: [
99
+ { name: 'accounts', internalType: 'address[]', type: 'address[]' },
100
+ ],
101
+ name: 'addOwners',
102
+ outputs: [],
103
+ stateMutability: 'nonpayable',
104
+ },
105
+ {
106
+ type: 'function',
107
+ inputs: [
108
+ { name: 'owner', internalType: 'address', type: 'address' },
109
+ { name: 'spender', internalType: 'address', type: 'address' },
110
+ ],
111
+ name: 'allowance',
112
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
113
+ stateMutability: 'view',
114
+ },
115
+ {
116
+ type: 'function',
117
+ inputs: [
118
+ { name: 'spender', internalType: 'address', type: 'address' },
119
+ { name: 'value', internalType: 'uint256', type: 'uint256' },
120
+ ],
121
+ name: 'approve',
122
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
123
+ stateMutability: 'nonpayable',
124
+ },
125
+ {
126
+ type: 'function',
127
+ inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
128
+ name: 'balanceOf',
129
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
130
+ stateMutability: 'view',
131
+ },
132
+ {
133
+ type: 'function',
134
+ inputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }],
135
+ name: 'burn',
136
+ outputs: [],
137
+ stateMutability: 'nonpayable',
138
+ },
139
+ {
140
+ type: 'function',
141
+ inputs: [
142
+ { name: 'recipient', internalType: 'address', type: 'address' },
143
+ { name: 'orderSize', internalType: 'uint256', type: 'uint256' },
144
+ { name: 'minAmountOut', internalType: 'uint256', type: 'uint256' },
145
+ { name: 'sqrtPriceLimitX96', internalType: 'uint160', type: 'uint160' },
146
+ { name: 'tradeReferrer', internalType: 'address', type: 'address' },
147
+ ],
148
+ name: 'buy',
149
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
150
+ stateMutability: 'payable',
151
+ },
152
+ {
153
+ type: 'function',
154
+ inputs: [{ name: 'pushEthRewards', internalType: 'bool', type: 'bool' }],
155
+ name: 'claimSecondaryRewards',
156
+ outputs: [],
157
+ stateMutability: 'nonpayable',
158
+ },
159
+ {
160
+ type: 'function',
161
+ inputs: [],
162
+ name: 'contractURI',
163
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
164
+ stateMutability: 'view',
165
+ },
166
+ {
167
+ type: 'function',
168
+ inputs: [],
169
+ name: 'contractVersion',
170
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
171
+ stateMutability: 'pure',
172
+ },
173
+ {
174
+ type: 'function',
175
+ inputs: [],
176
+ name: 'currency',
177
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
178
+ stateMutability: 'view',
179
+ },
180
+ {
181
+ type: 'function',
182
+ inputs: [],
183
+ name: 'decimals',
184
+ outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
185
+ stateMutability: 'view',
186
+ },
187
+ {
188
+ type: 'function',
189
+ inputs: [],
190
+ name: 'eip712Domain',
191
+ outputs: [
192
+ { name: 'fields', internalType: 'bytes1', type: 'bytes1' },
193
+ { name: 'name', internalType: 'string', type: 'string' },
194
+ { name: 'version', internalType: 'string', type: 'string' },
195
+ { name: 'chainId', internalType: 'uint256', type: 'uint256' },
196
+ { name: 'verifyingContract', internalType: 'address', type: 'address' },
197
+ { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
198
+ { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },
199
+ ],
200
+ stateMutability: 'view',
201
+ },
202
+ {
203
+ type: 'function',
204
+ inputs: [
205
+ { name: 'payoutRecipient_', internalType: 'address', type: 'address' },
206
+ { name: 'owners_', internalType: 'address[]', type: 'address[]' },
207
+ { name: 'tokenURI_', internalType: 'string', type: 'string' },
208
+ { name: 'name_', internalType: 'string', type: 'string' },
209
+ { name: 'symbol_', internalType: 'string', type: 'string' },
210
+ { name: 'platformReferrer_', internalType: 'address', type: 'address' },
211
+ { name: 'currency_', internalType: 'address', type: 'address' },
212
+ { name: 'tickLower_', internalType: 'int24', type: 'int24' },
213
+ ],
214
+ name: 'initialize',
215
+ outputs: [],
216
+ stateMutability: 'nonpayable',
217
+ },
218
+ {
219
+ type: 'function',
220
+ inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
221
+ name: 'isOwner',
222
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
223
+ stateMutability: 'view',
224
+ },
225
+ {
226
+ type: 'function',
227
+ inputs: [],
228
+ name: 'lpTokenId',
229
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
230
+ stateMutability: 'view',
231
+ },
232
+ {
233
+ type: 'function',
234
+ inputs: [],
235
+ name: 'name',
236
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
237
+ stateMutability: 'view',
238
+ },
239
+ {
240
+ type: 'function',
241
+ inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],
242
+ name: 'nonces',
243
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
244
+ stateMutability: 'view',
245
+ },
246
+ {
247
+ type: 'function',
248
+ inputs: [],
249
+ name: 'nonfungiblePositionManager',
250
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
251
+ stateMutability: 'view',
252
+ },
253
+ {
254
+ type: 'function',
255
+ inputs: [
256
+ { name: '', internalType: 'address', type: 'address' },
257
+ { name: '', internalType: 'address', type: 'address' },
258
+ { name: '', internalType: 'uint256', type: 'uint256' },
259
+ { name: '', internalType: 'bytes', type: 'bytes' },
260
+ ],
261
+ name: 'onERC721Received',
262
+ outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],
263
+ stateMutability: 'view',
264
+ },
265
+ {
266
+ type: 'function',
267
+ inputs: [],
268
+ name: 'owners',
269
+ outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],
270
+ stateMutability: 'view',
271
+ },
272
+ {
273
+ type: 'function',
274
+ inputs: [],
275
+ name: 'payoutRecipient',
276
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
277
+ stateMutability: 'view',
278
+ },
279
+ {
280
+ type: 'function',
281
+ inputs: [
282
+ { name: 'owner', internalType: 'address', type: 'address' },
283
+ { name: 'spender', internalType: 'address', type: 'address' },
284
+ { name: 'value', internalType: 'uint256', type: 'uint256' },
285
+ { name: 'deadline', internalType: 'uint256', type: 'uint256' },
286
+ { name: 'v', internalType: 'uint8', type: 'uint8' },
287
+ { name: 'r', internalType: 'bytes32', type: 'bytes32' },
288
+ { name: 's', internalType: 'bytes32', type: 'bytes32' },
289
+ ],
290
+ name: 'permit',
291
+ outputs: [],
292
+ stateMutability: 'nonpayable',
293
+ },
294
+ {
295
+ type: 'function',
296
+ inputs: [],
297
+ name: 'platformReferrer',
298
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
299
+ stateMutability: 'view',
300
+ },
301
+ {
302
+ type: 'function',
303
+ inputs: [],
304
+ name: 'poolAddress',
305
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
306
+ stateMutability: 'view',
307
+ },
308
+ {
309
+ type: 'function',
310
+ inputs: [],
311
+ name: 'protocolRewardRecipient',
312
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
313
+ stateMutability: 'view',
314
+ },
315
+ {
316
+ type: 'function',
317
+ inputs: [],
318
+ name: 'protocolRewards',
319
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
320
+ stateMutability: 'view',
321
+ },
322
+ {
323
+ type: 'function',
324
+ inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
325
+ name: 'removeOwner',
326
+ outputs: [],
327
+ stateMutability: 'nonpayable',
328
+ },
329
+ {
330
+ type: 'function',
331
+ inputs: [
332
+ { name: 'accounts', internalType: 'address[]', type: 'address[]' },
333
+ ],
334
+ name: 'removeOwners',
335
+ outputs: [],
336
+ stateMutability: 'nonpayable',
337
+ },
338
+ {
339
+ type: 'function',
340
+ inputs: [],
341
+ name: 'revokeOwnership',
342
+ outputs: [],
343
+ stateMutability: 'nonpayable',
344
+ },
345
+ {
346
+ type: 'function',
347
+ inputs: [
348
+ { name: 'recipient', internalType: 'address', type: 'address' },
349
+ { name: 'orderSize', internalType: 'uint256', type: 'uint256' },
350
+ { name: 'minAmountOut', internalType: 'uint256', type: 'uint256' },
351
+ { name: 'sqrtPriceLimitX96', internalType: 'uint160', type: 'uint160' },
352
+ { name: 'tradeReferrer', internalType: 'address', type: 'address' },
353
+ ],
354
+ name: 'sell',
355
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
356
+ stateMutability: 'nonpayable',
357
+ },
358
+ {
359
+ type: 'function',
360
+ inputs: [{ name: 'newURI', internalType: 'string', type: 'string' }],
361
+ name: 'setContractURI',
362
+ outputs: [],
363
+ stateMutability: 'nonpayable',
364
+ },
365
+ {
366
+ type: 'function',
367
+ inputs: [
368
+ { name: 'newPayoutRecipient', internalType: 'address', type: 'address' },
369
+ ],
370
+ name: 'setPayoutRecipient',
371
+ outputs: [],
372
+ stateMutability: 'nonpayable',
373
+ },
374
+ {
375
+ type: 'function',
376
+ inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
377
+ name: 'supportsInterface',
378
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
379
+ stateMutability: 'pure',
380
+ },
381
+ {
382
+ type: 'function',
383
+ inputs: [],
384
+ name: 'swapRouter',
385
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
386
+ stateMutability: 'view',
387
+ },
388
+ {
389
+ type: 'function',
390
+ inputs: [],
391
+ name: 'symbol',
392
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
393
+ stateMutability: 'view',
394
+ },
395
+ {
396
+ type: 'function',
397
+ inputs: [],
398
+ name: 'tokenURI',
399
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
400
+ stateMutability: 'view',
401
+ },
402
+ {
403
+ type: 'function',
404
+ inputs: [],
405
+ name: 'totalSupply',
406
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
407
+ stateMutability: 'view',
408
+ },
409
+ {
410
+ type: 'function',
411
+ inputs: [
412
+ { name: 'to', internalType: 'address', type: 'address' },
413
+ { name: 'value', internalType: 'uint256', type: 'uint256' },
414
+ ],
415
+ name: 'transfer',
416
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
417
+ stateMutability: 'nonpayable',
418
+ },
419
+ {
420
+ type: 'function',
421
+ inputs: [
422
+ { name: 'from', internalType: 'address', type: 'address' },
423
+ { name: 'to', internalType: 'address', type: 'address' },
424
+ { name: 'value', internalType: 'uint256', type: 'uint256' },
425
+ ],
426
+ name: 'transferFrom',
427
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
428
+ stateMutability: 'nonpayable',
429
+ },
430
+ {
431
+ type: 'function',
432
+ inputs: [
433
+ { name: 'amount0Delta', internalType: 'int256', type: 'int256' },
434
+ { name: 'amount1Delta', internalType: 'int256', type: 'int256' },
435
+ { name: '', internalType: 'bytes', type: 'bytes' },
436
+ ],
437
+ name: 'uniswapV3SwapCallback',
438
+ outputs: [],
439
+ stateMutability: 'nonpayable',
440
+ },
441
+ {
442
+ type: 'event',
443
+ anonymous: false,
444
+ inputs: [
445
+ {
446
+ name: 'owner',
447
+ internalType: 'address',
448
+ type: 'address',
449
+ indexed: true,
450
+ },
451
+ {
452
+ name: 'spender',
453
+ internalType: 'address',
454
+ type: 'address',
455
+ indexed: true,
456
+ },
457
+ {
458
+ name: 'value',
459
+ internalType: 'uint256',
460
+ type: 'uint256',
461
+ indexed: false,
462
+ },
463
+ ],
464
+ name: 'Approval',
465
+ },
466
+ {
467
+ type: 'event',
468
+ anonymous: false,
469
+ inputs: [
470
+ {
471
+ name: 'buyer',
472
+ internalType: 'address',
473
+ type: 'address',
474
+ indexed: true,
475
+ },
476
+ {
477
+ name: 'recipient',
478
+ internalType: 'address',
479
+ type: 'address',
480
+ indexed: true,
481
+ },
482
+ {
483
+ name: 'tradeReferrer',
484
+ internalType: 'address',
485
+ type: 'address',
486
+ indexed: true,
487
+ },
488
+ {
489
+ name: 'coinsPurchased',
490
+ internalType: 'uint256',
491
+ type: 'uint256',
492
+ indexed: false,
493
+ },
494
+ {
495
+ name: 'currency',
496
+ internalType: 'address',
497
+ type: 'address',
498
+ indexed: false,
499
+ },
500
+ {
501
+ name: 'amountFee',
502
+ internalType: 'uint256',
503
+ type: 'uint256',
504
+ indexed: false,
505
+ },
506
+ {
507
+ name: 'amountSold',
508
+ internalType: 'uint256',
509
+ type: 'uint256',
510
+ indexed: false,
511
+ },
512
+ {
513
+ name: 'comment',
514
+ internalType: 'string',
515
+ type: 'string',
516
+ indexed: false,
517
+ },
518
+ ],
519
+ name: 'CoinBuy',
520
+ },
521
+ {
522
+ type: 'event',
523
+ anonymous: false,
524
+ inputs: [
525
+ {
526
+ name: 'creatorPayoutAddress',
527
+ internalType: 'address',
528
+ type: 'address',
529
+ indexed: true,
530
+ },
531
+ {
532
+ name: 'platformReferrer',
533
+ internalType: 'address',
534
+ type: 'address',
535
+ indexed: true,
536
+ },
537
+ {
538
+ name: 'protocolRewardRecipient',
539
+ internalType: 'address',
540
+ type: 'address',
541
+ indexed: false,
542
+ },
543
+ {
544
+ name: 'currency',
545
+ internalType: 'address',
546
+ type: 'address',
547
+ indexed: false,
548
+ },
549
+ {
550
+ name: 'marketRewards',
551
+ internalType: 'struct ICoin.MarketRewards',
552
+ type: 'tuple',
553
+ components: [
554
+ {
555
+ name: 'totalAmountCurrency',
556
+ internalType: 'uint256',
557
+ type: 'uint256',
558
+ },
559
+ { name: 'totalAmountCoin', internalType: 'uint256', type: 'uint256' },
560
+ {
561
+ name: 'creatorPayoutAmountCurrency',
562
+ internalType: 'uint256',
563
+ type: 'uint256',
564
+ },
565
+ {
566
+ name: 'creatorPayoutAmountCoin',
567
+ internalType: 'uint256',
568
+ type: 'uint256',
569
+ },
570
+ {
571
+ name: 'platformReferrerAmountCurrency',
572
+ internalType: 'uint256',
573
+ type: 'uint256',
574
+ },
575
+ {
576
+ name: 'platformReferrerAmountCoin',
577
+ internalType: 'uint256',
578
+ type: 'uint256',
579
+ },
580
+ {
581
+ name: 'protocolAmountCurrency',
582
+ internalType: 'uint256',
583
+ type: 'uint256',
584
+ },
585
+ {
586
+ name: 'protocolAmountCoin',
587
+ internalType: 'uint256',
588
+ type: 'uint256',
589
+ },
590
+ ],
591
+ indexed: false,
592
+ },
593
+ ],
594
+ name: 'CoinMarketRewards',
595
+ },
596
+ {
597
+ type: 'event',
598
+ anonymous: false,
599
+ inputs: [
600
+ {
601
+ name: 'caller',
602
+ internalType: 'address',
603
+ type: 'address',
604
+ indexed: true,
605
+ },
606
+ {
607
+ name: 'prevRecipient',
608
+ internalType: 'address',
609
+ type: 'address',
610
+ indexed: true,
611
+ },
612
+ {
613
+ name: 'newRecipient',
614
+ internalType: 'address',
615
+ type: 'address',
616
+ indexed: true,
617
+ },
618
+ ],
619
+ name: 'CoinPayoutRecipientUpdated',
620
+ },
621
+ {
622
+ type: 'event',
623
+ anonymous: false,
624
+ inputs: [
625
+ {
626
+ name: 'seller',
627
+ internalType: 'address',
628
+ type: 'address',
629
+ indexed: true,
630
+ },
631
+ {
632
+ name: 'recipient',
633
+ internalType: 'address',
634
+ type: 'address',
635
+ indexed: true,
636
+ },
637
+ {
638
+ name: 'tradeReferrer',
639
+ internalType: 'address',
640
+ type: 'address',
641
+ indexed: true,
642
+ },
643
+ {
644
+ name: 'coinsSold',
645
+ internalType: 'uint256',
646
+ type: 'uint256',
647
+ indexed: false,
648
+ },
649
+ {
650
+ name: 'currency',
651
+ internalType: 'address',
652
+ type: 'address',
653
+ indexed: false,
654
+ },
655
+ {
656
+ name: 'amountFee',
657
+ internalType: 'uint256',
658
+ type: 'uint256',
659
+ indexed: false,
660
+ },
661
+ {
662
+ name: 'amountPurchased',
663
+ internalType: 'uint256',
664
+ type: 'uint256',
665
+ indexed: false,
666
+ },
667
+ {
668
+ name: 'comment',
669
+ internalType: 'string',
670
+ type: 'string',
671
+ indexed: false,
672
+ },
673
+ ],
674
+ name: 'CoinSell',
675
+ },
676
+ {
677
+ type: 'event',
678
+ anonymous: false,
679
+ inputs: [
680
+ {
681
+ name: 'creatorPayoutRecipient',
682
+ internalType: 'address',
683
+ type: 'address',
684
+ indexed: true,
685
+ },
686
+ {
687
+ name: 'platformReferrer',
688
+ internalType: 'address',
689
+ type: 'address',
690
+ indexed: true,
691
+ },
692
+ {
693
+ name: 'tradeReferrer',
694
+ internalType: 'address',
695
+ type: 'address',
696
+ indexed: true,
697
+ },
698
+ {
699
+ name: 'protocolRewardRecipient',
700
+ internalType: 'address',
701
+ type: 'address',
702
+ indexed: false,
703
+ },
704
+ {
705
+ name: 'creatorReward',
706
+ internalType: 'uint256',
707
+ type: 'uint256',
708
+ indexed: false,
709
+ },
710
+ {
711
+ name: 'platformReferrerReward',
712
+ internalType: 'uint256',
713
+ type: 'uint256',
714
+ indexed: false,
715
+ },
716
+ {
717
+ name: 'traderReferrerReward',
718
+ internalType: 'uint256',
719
+ type: 'uint256',
720
+ indexed: false,
721
+ },
722
+ {
723
+ name: 'protocolReward',
724
+ internalType: 'uint256',
725
+ type: 'uint256',
726
+ indexed: false,
727
+ },
728
+ {
729
+ name: 'currency',
730
+ internalType: 'address',
731
+ type: 'address',
732
+ indexed: false,
733
+ },
734
+ ],
735
+ name: 'CoinTradeRewards',
736
+ },
737
+ {
738
+ type: 'event',
739
+ anonymous: false,
740
+ inputs: [
741
+ {
742
+ name: 'sender',
743
+ internalType: 'address',
744
+ type: 'address',
745
+ indexed: true,
746
+ },
747
+ {
748
+ name: 'recipient',
749
+ internalType: 'address',
750
+ type: 'address',
751
+ indexed: true,
752
+ },
753
+ {
754
+ name: 'amount',
755
+ internalType: 'uint256',
756
+ type: 'uint256',
757
+ indexed: false,
758
+ },
759
+ {
760
+ name: 'senderBalance',
761
+ internalType: 'uint256',
762
+ type: 'uint256',
763
+ indexed: false,
764
+ },
765
+ {
766
+ name: 'recipientBalance',
767
+ internalType: 'uint256',
768
+ type: 'uint256',
769
+ indexed: false,
770
+ },
771
+ ],
772
+ name: 'CoinTransfer',
773
+ },
774
+ {
775
+ type: 'event',
776
+ anonymous: false,
777
+ inputs: [
778
+ {
779
+ name: 'caller',
780
+ internalType: 'address',
781
+ type: 'address',
782
+ indexed: true,
783
+ },
784
+ {
785
+ name: 'newURI',
786
+ internalType: 'string',
787
+ type: 'string',
788
+ indexed: false,
789
+ },
790
+ { name: 'name', internalType: 'string', type: 'string', indexed: false },
791
+ ],
792
+ name: 'ContractMetadataUpdated',
793
+ },
794
+ { type: 'event', anonymous: false, inputs: [], name: 'ContractURIUpdated' },
795
+ { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },
796
+ {
797
+ type: 'event',
798
+ anonymous: false,
799
+ inputs: [
800
+ {
801
+ name: 'version',
802
+ internalType: 'uint64',
803
+ type: 'uint64',
804
+ indexed: false,
805
+ },
806
+ ],
807
+ name: 'Initialized',
808
+ },
809
+ {
810
+ type: 'event',
811
+ anonymous: false,
812
+ inputs: [
813
+ {
814
+ name: 'caller',
815
+ internalType: 'address',
816
+ type: 'address',
817
+ indexed: true,
818
+ },
819
+ {
820
+ name: 'prevOwner',
821
+ internalType: 'address',
822
+ type: 'address',
823
+ indexed: true,
824
+ },
825
+ {
826
+ name: 'newOwner',
827
+ internalType: 'address',
828
+ type: 'address',
829
+ indexed: true,
830
+ },
831
+ ],
832
+ name: 'OwnerUpdated',
833
+ },
834
+ {
835
+ type: 'event',
836
+ anonymous: false,
837
+ inputs: [
838
+ { name: 'from', internalType: 'address', type: 'address', indexed: true },
839
+ { name: 'to', internalType: 'address', type: 'address', indexed: true },
840
+ {
841
+ name: 'value',
842
+ internalType: 'uint256',
843
+ type: 'uint256',
844
+ indexed: false,
845
+ },
846
+ ],
847
+ name: 'Transfer',
848
+ },
849
+ {
850
+ type: 'error',
851
+ inputs: [{ name: 'target', internalType: 'address', type: 'address' }],
852
+ name: 'AddressEmptyCode',
853
+ },
854
+ {
855
+ type: 'error',
856
+ inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
857
+ name: 'AddressInsufficientBalance',
858
+ },
859
+ { type: 'error', inputs: [], name: 'AddressZero' },
860
+ { type: 'error', inputs: [], name: 'AlreadyOwner' },
861
+ { type: 'error', inputs: [], name: 'ECDSAInvalidSignature' },
862
+ {
863
+ type: 'error',
864
+ inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }],
865
+ name: 'ECDSAInvalidSignatureLength',
866
+ },
867
+ {
868
+ type: 'error',
869
+ inputs: [{ name: 's', internalType: 'bytes32', type: 'bytes32' }],
870
+ name: 'ECDSAInvalidSignatureS',
871
+ },
872
+ {
873
+ type: 'error',
874
+ inputs: [
875
+ { name: 'spender', internalType: 'address', type: 'address' },
876
+ { name: 'allowance', internalType: 'uint256', type: 'uint256' },
877
+ { name: 'needed', internalType: 'uint256', type: 'uint256' },
878
+ ],
879
+ name: 'ERC20InsufficientAllowance',
880
+ },
881
+ {
882
+ type: 'error',
883
+ inputs: [
884
+ { name: 'sender', internalType: 'address', type: 'address' },
885
+ { name: 'balance', internalType: 'uint256', type: 'uint256' },
886
+ { name: 'needed', internalType: 'uint256', type: 'uint256' },
887
+ ],
888
+ name: 'ERC20InsufficientBalance',
889
+ },
890
+ {
891
+ type: 'error',
892
+ inputs: [{ name: 'approver', internalType: 'address', type: 'address' }],
893
+ name: 'ERC20InvalidApprover',
894
+ },
895
+ {
896
+ type: 'error',
897
+ inputs: [{ name: 'receiver', internalType: 'address', type: 'address' }],
898
+ name: 'ERC20InvalidReceiver',
899
+ },
900
+ {
901
+ type: 'error',
902
+ inputs: [{ name: 'sender', internalType: 'address', type: 'address' }],
903
+ name: 'ERC20InvalidSender',
904
+ },
905
+ {
906
+ type: 'error',
907
+ inputs: [{ name: 'spender', internalType: 'address', type: 'address' }],
908
+ name: 'ERC20InvalidSpender',
909
+ },
910
+ { type: 'error', inputs: [], name: 'ERC20TransferAmountMismatch' },
911
+ {
912
+ type: 'error',
913
+ inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],
914
+ name: 'ERC2612ExpiredSignature',
915
+ },
916
+ {
917
+ type: 'error',
918
+ inputs: [
919
+ { name: 'signer', internalType: 'address', type: 'address' },
920
+ { name: 'owner', internalType: 'address', type: 'address' },
921
+ ],
922
+ name: 'ERC2612InvalidSigner',
923
+ },
924
+ { type: 'error', inputs: [], name: 'EthAmountMismatch' },
925
+ { type: 'error', inputs: [], name: 'EthAmountTooSmall' },
926
+ { type: 'error', inputs: [], name: 'EthTransferFailed' },
927
+ { type: 'error', inputs: [], name: 'EthTransferInvalid' },
928
+ { type: 'error', inputs: [], name: 'FailedInnerCall' },
929
+ { type: 'error', inputs: [], name: 'InitialOrderSizeTooLarge' },
930
+ { type: 'error', inputs: [], name: 'InsufficientFunds' },
931
+ { type: 'error', inputs: [], name: 'InsufficientLiquidity' },
932
+ {
933
+ type: 'error',
934
+ inputs: [
935
+ { name: 'account', internalType: 'address', type: 'address' },
936
+ { name: 'currentNonce', internalType: 'uint256', type: 'uint256' },
937
+ ],
938
+ name: 'InvalidAccountNonce',
939
+ },
940
+ { type: 'error', inputs: [], name: 'InvalidCurrencyLowerTick' },
941
+ { type: 'error', inputs: [], name: 'InvalidInitialization' },
942
+ { type: 'error', inputs: [], name: 'InvalidMarketType' },
943
+ { type: 'error', inputs: [], name: 'InvalidWethLowerTick' },
944
+ { type: 'error', inputs: [], name: 'MarketAlreadyGraduated' },
945
+ { type: 'error', inputs: [], name: 'MarketNotGraduated' },
946
+ { type: 'error', inputs: [], name: 'NotInitializing' },
947
+ { type: 'error', inputs: [], name: 'NotOwner' },
948
+ { type: 'error', inputs: [], name: 'OneOwnerRequired' },
949
+ { type: 'error', inputs: [], name: 'OnlyOwner' },
950
+ { type: 'error', inputs: [], name: 'OnlyPool' },
951
+ { type: 'error', inputs: [], name: 'OnlyWeth' },
952
+ { type: 'error', inputs: [], name: 'OwnerCannotBeAddressZero' },
953
+ { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' },
954
+ {
955
+ type: 'error',
956
+ inputs: [{ name: 'token', internalType: 'address', type: 'address' }],
957
+ name: 'SafeERC20FailedOperation',
958
+ },
959
+ { type: 'error', inputs: [], name: 'SlippageBoundsExceeded' },
960
+ { type: 'error', inputs: [], name: 'UseRevokeOwnershipToRemoveSelf' },
961
+ ] as const
962
+
963
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
964
+ // ZoraFactoryImpl
965
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
966
+
967
+ export const zoraFactoryImplABI = [
968
+ {
969
+ type: 'constructor',
970
+ inputs: [{ name: '_coinImpl', internalType: 'address', type: 'address' }],
971
+ stateMutability: 'nonpayable',
972
+ },
973
+ {
974
+ type: 'function',
975
+ inputs: [],
976
+ name: 'UPGRADE_INTERFACE_VERSION',
977
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
978
+ stateMutability: 'view',
979
+ },
980
+ {
981
+ type: 'function',
982
+ inputs: [],
983
+ name: 'coinImpl',
984
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
985
+ stateMutability: 'view',
986
+ },
987
+ {
988
+ type: 'function',
989
+ inputs: [
990
+ { name: 'payoutRecipient', internalType: 'address', type: 'address' },
991
+ { name: 'owners', internalType: 'address[]', type: 'address[]' },
992
+ { name: 'uri', internalType: 'string', type: 'string' },
993
+ { name: 'name', internalType: 'string', type: 'string' },
994
+ { name: 'symbol', internalType: 'string', type: 'string' },
995
+ { name: 'platformReferrer', internalType: 'address', type: 'address' },
996
+ { name: 'currency', internalType: 'address', type: 'address' },
997
+ { name: 'tickLower', internalType: 'int24', type: 'int24' },
998
+ { name: 'orderSize', internalType: 'uint256', type: 'uint256' },
999
+ ],
1000
+ name: 'deploy',
1001
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
1002
+ stateMutability: 'payable',
1003
+ },
1004
+ {
1005
+ type: 'function',
1006
+ inputs: [],
1007
+ name: 'implementation',
1008
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
1009
+ stateMutability: 'view',
1010
+ },
1011
+ {
1012
+ type: 'function',
1013
+ inputs: [
1014
+ { name: 'initialOwner', internalType: 'address', type: 'address' },
1015
+ ],
1016
+ name: 'initialize',
1017
+ outputs: [],
1018
+ stateMutability: 'nonpayable',
1019
+ },
1020
+ {
1021
+ type: 'function',
1022
+ inputs: [],
1023
+ name: 'owner',
1024
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
1025
+ stateMutability: 'view',
1026
+ },
1027
+ {
1028
+ type: 'function',
1029
+ inputs: [],
1030
+ name: 'proxiableUUID',
1031
+ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
1032
+ stateMutability: 'view',
1033
+ },
1034
+ {
1035
+ type: 'function',
1036
+ inputs: [],
1037
+ name: 'renounceOwnership',
1038
+ outputs: [],
1039
+ stateMutability: 'nonpayable',
1040
+ },
1041
+ {
1042
+ type: 'function',
1043
+ inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
1044
+ name: 'transferOwnership',
1045
+ outputs: [],
1046
+ stateMutability: 'nonpayable',
1047
+ },
1048
+ {
1049
+ type: 'function',
1050
+ inputs: [
1051
+ { name: 'newImplementation', internalType: 'address', type: 'address' },
1052
+ { name: 'data', internalType: 'bytes', type: 'bytes' },
1053
+ ],
1054
+ name: 'upgradeToAndCall',
1055
+ outputs: [],
1056
+ stateMutability: 'payable',
1057
+ },
1058
+ {
1059
+ type: 'event',
1060
+ anonymous: false,
1061
+ inputs: [
1062
+ {
1063
+ name: 'deployer',
1064
+ internalType: 'address',
1065
+ type: 'address',
1066
+ indexed: true,
1067
+ },
1068
+ {
1069
+ name: 'creator',
1070
+ internalType: 'address',
1071
+ type: 'address',
1072
+ indexed: true,
1073
+ },
1074
+ {
1075
+ name: 'payoutRecipient',
1076
+ internalType: 'address',
1077
+ type: 'address',
1078
+ indexed: true,
1079
+ },
1080
+ {
1081
+ name: 'platformReferrer',
1082
+ internalType: 'address',
1083
+ type: 'address',
1084
+ indexed: false,
1085
+ },
1086
+ {
1087
+ name: 'currency',
1088
+ internalType: 'address',
1089
+ type: 'address',
1090
+ indexed: false,
1091
+ },
1092
+ {
1093
+ name: 'tokenURI',
1094
+ internalType: 'string',
1095
+ type: 'string',
1096
+ indexed: false,
1097
+ },
1098
+ { name: 'name', internalType: 'string', type: 'string', indexed: false },
1099
+ {
1100
+ name: 'symbol',
1101
+ internalType: 'string',
1102
+ type: 'string',
1103
+ indexed: false,
1104
+ },
1105
+ {
1106
+ name: 'coin',
1107
+ internalType: 'address',
1108
+ type: 'address',
1109
+ indexed: false,
1110
+ },
1111
+ {
1112
+ name: 'pool',
1113
+ internalType: 'address',
1114
+ type: 'address',
1115
+ indexed: false,
1116
+ },
1117
+ ],
1118
+ name: 'CoinCreated',
1119
+ },
1120
+ {
1121
+ type: 'event',
1122
+ anonymous: false,
1123
+ inputs: [
1124
+ {
1125
+ name: 'version',
1126
+ internalType: 'uint64',
1127
+ type: 'uint64',
1128
+ indexed: false,
1129
+ },
1130
+ ],
1131
+ name: 'Initialized',
1132
+ },
1133
+ {
1134
+ type: 'event',
1135
+ anonymous: false,
1136
+ inputs: [
1137
+ {
1138
+ name: 'previousOwner',
1139
+ internalType: 'address',
1140
+ type: 'address',
1141
+ indexed: true,
1142
+ },
1143
+ {
1144
+ name: 'newOwner',
1145
+ internalType: 'address',
1146
+ type: 'address',
1147
+ indexed: true,
1148
+ },
1149
+ ],
1150
+ name: 'OwnershipTransferred',
1151
+ },
1152
+ {
1153
+ type: 'event',
1154
+ anonymous: false,
1155
+ inputs: [
1156
+ {
1157
+ name: 'implementation',
1158
+ internalType: 'address',
1159
+ type: 'address',
1160
+ indexed: true,
1161
+ },
1162
+ ],
1163
+ name: 'Upgraded',
1164
+ },
1165
+ {
1166
+ type: 'error',
1167
+ inputs: [{ name: 'target', internalType: 'address', type: 'address' }],
1168
+ name: 'AddressEmptyCode',
1169
+ },
1170
+ {
1171
+ type: 'error',
1172
+ inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
1173
+ name: 'AddressInsufficientBalance',
1174
+ },
1175
+ { type: 'error', inputs: [], name: 'ERC1167FailedCreateClone' },
1176
+ {
1177
+ type: 'error',
1178
+ inputs: [
1179
+ { name: 'implementation', internalType: 'address', type: 'address' },
1180
+ ],
1181
+ name: 'ERC1967InvalidImplementation',
1182
+ },
1183
+ { type: 'error', inputs: [], name: 'ERC1967NonPayable' },
1184
+ { type: 'error', inputs: [], name: 'ERC20TransferAmountMismatch' },
1185
+ { type: 'error', inputs: [], name: 'EthTransferInvalid' },
1186
+ { type: 'error', inputs: [], name: 'FailedInnerCall' },
1187
+ { type: 'error', inputs: [], name: 'InvalidInitialization' },
1188
+ { type: 'error', inputs: [], name: 'NotInitializing' },
1189
+ {
1190
+ type: 'error',
1191
+ inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],
1192
+ name: 'OwnableInvalidOwner',
1193
+ },
1194
+ {
1195
+ type: 'error',
1196
+ inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
1197
+ name: 'OwnableUnauthorizedAccount',
1198
+ },
1199
+ { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' },
1200
+ {
1201
+ type: 'error',
1202
+ inputs: [{ name: 'token', internalType: 'address', type: 'address' }],
1203
+ name: 'SafeERC20FailedOperation',
1204
+ },
1205
+ { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },
1206
+ {
1207
+ type: 'error',
1208
+ inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],
1209
+ name: 'UUPSUnsupportedProxiableUUID',
1210
+ },
1211
+ ] as const