@zoralabs/coins 0.7.1 → 1.0.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 (167) hide show
  1. package/.turbo/turbo-build.log +106 -84
  2. package/CHANGELOG.md +68 -0
  3. package/abis/BadImpl.json +15 -0
  4. package/abis/BalanceDeltaLibrary.json +15 -0
  5. package/abis/BaseCoin.json +1350 -0
  6. package/abis/BaseCoinDeployHook.json +78 -0
  7. package/abis/BaseHook.json +897 -0
  8. package/abis/BaseTest.json +60 -91
  9. package/abis/BeforeSwapDeltaLibrary.json +15 -0
  10. package/abis/BuySupplyWithSwapRouterHook.json +126 -0
  11. package/abis/Coin.json +214 -150
  12. package/abis/CoinConstants.json +65 -0
  13. package/abis/CoinDopplerMultiCurve.json +38 -0
  14. package/abis/CoinRewardsV4.json +54 -0
  15. package/abis/CoinTest.json +66 -111
  16. package/abis/CoinUniV4Test.json +1053 -0
  17. package/abis/CoinV4.json +1687 -0
  18. package/abis/CurrencyLibrary.json +25 -0
  19. package/abis/DeployHooks.json +9 -0
  20. package/abis/DeployScript.json +47 -0
  21. package/abis/DeployedCoinVersionLookup.json +21 -0
  22. package/abis/DeployedCoinVersionLookupTest.json +716 -0
  23. package/abis/DifferentNamespaceVersionLookup.json +39 -0
  24. package/abis/DopplerUniswapV3Test.json +62 -184
  25. package/abis/ERC20.json +310 -0
  26. package/abis/FactoryTest.json +98 -98
  27. package/abis/FakeHookNoInterface.json +21 -0
  28. package/abis/FeeEstimatorHook.json +1528 -0
  29. package/abis/Hooks.json +28 -0
  30. package/abis/HooksDeployment.json +23 -0
  31. package/abis/HooksTest.json +698 -0
  32. package/abis/IAllowanceTransfer.json +486 -0
  33. package/abis/ICoin.json +62 -69
  34. package/abis/ICoinDeployHook.json +31 -0
  35. package/abis/ICoinV3.json +879 -0
  36. package/abis/ICoinV4.json +915 -0
  37. package/abis/IContractMetadata.json +28 -0
  38. package/abis/IDeployedCoinVersionLookup.json +21 -0
  39. package/abis/IEIP712.json +15 -0
  40. package/abis/IEIP712_v4.json +15 -0
  41. package/abis/IERC20Minimal.json +172 -0
  42. package/abis/IERC6909Claims.json +288 -0
  43. package/abis/IERC721.json +36 -36
  44. package/abis/IERC721Permit_v4.json +88 -0
  45. package/abis/IExtsload.json +64 -0
  46. package/abis/IExttload.json +40 -0
  47. package/abis/IHasAfterCoinDeploy.json +31 -0
  48. package/abis/IHasContractName.json +15 -0
  49. package/abis/IHasPoolKey.json +42 -0
  50. package/abis/IHasRewardsRecipients.json +54 -0
  51. package/abis/IHasSwapPath.json +60 -0
  52. package/abis/IHooks.json +789 -0
  53. package/abis/IImmutableState.json +15 -0
  54. package/abis/IMsgSender.json +15 -0
  55. package/abis/IMulticall_v4.json +21 -0
  56. package/abis/INotifier.json +187 -0
  57. package/abis/IPermit2.json +865 -0
  58. package/abis/IPermit2Forwarder.json +138 -0
  59. package/abis/IPoolConfigEncoding.json +46 -0
  60. package/abis/IPoolInitializer_v4.json +53 -0
  61. package/abis/IPoolManager.json +1286 -0
  62. package/abis/IPositionManager.json +712 -0
  63. package/abis/IProtocolFees.json +174 -0
  64. package/abis/ISignatureTransfer.json +394 -0
  65. package/abis/ISubscriber.json +89 -0
  66. package/abis/ISwapPathRouter.json +92 -0
  67. package/abis/ISwapRouter.json +82 -0
  68. package/abis/IUniversalRouter.json +61 -0
  69. package/abis/IUnlockCallback.json +21 -0
  70. package/abis/IUnorderedNonce.json +44 -0
  71. package/abis/IV4Quoter.json +310 -0
  72. package/abis/IV4Router.json +47 -0
  73. package/abis/IZoraFactory.json +328 -4
  74. package/abis/IZoraV4CoinHook.json +427 -0
  75. package/abis/ImmutableState.json +36 -0
  76. package/abis/LPFeeLibrary.json +65 -0
  77. package/abis/MockERC20.json +21 -0
  78. package/abis/MultiOwnableTest.json +60 -91
  79. package/abis/{CoinConfigurationVersions.json → Position.json} +1 -1
  80. package/abis/PrintUpgradeCommand.json +9 -0
  81. package/abis/ProxyShim.json +24 -0
  82. package/abis/Simulate.json +0 -91
  83. package/abis/StateLibrary.json +80 -0
  84. package/abis/TestDeployedCoinVersionLookupImplementation.json +39 -0
  85. package/abis/TestV4Swap.json +9 -0
  86. package/abis/{CoinSetup.json → UniV3BuySell.json} +5 -0
  87. package/abis/UniV3Errors.json +32 -0
  88. package/abis/UpgradeCoinImpl.json +47 -0
  89. package/abis/UpgradeFactoryImpl.json +9 -0
  90. package/abis/UpgradesTest.json +671 -0
  91. package/abis/Vm.json +1482 -111
  92. package/abis/VmSafe.json +856 -32
  93. package/abis/ZoraFactoryImpl.json +450 -1
  94. package/abis/ZoraV4CoinHook.json +1439 -0
  95. package/addresses/8453.json +8 -3
  96. package/addresses/84532.json +8 -3
  97. package/dist/index.cjs +1998 -184
  98. package/dist/index.cjs.map +1 -1
  99. package/dist/index.js +1989 -178
  100. package/dist/index.js.map +1 -1
  101. package/dist/wagmiGenerated.d.ts +2852 -688
  102. package/dist/wagmiGenerated.d.ts.map +1 -1
  103. package/package/wagmiGenerated.ts +1992 -173
  104. package/package.json +7 -2
  105. package/remappings.txt +6 -1
  106. package/script/CoinsDeployerBase.sol +105 -10
  107. package/script/DeployDevFactory.s.sol +21 -0
  108. package/script/DeployHooks.s.sol +22 -0
  109. package/script/PrintUpgradeCommand.s.sol +13 -0
  110. package/script/Simulate.s.sol +4 -12
  111. package/script/TestBackingCoinSwap.s.sol +146 -0
  112. package/script/TestV4Swap.s.sol +136 -0
  113. package/script/UpgradeCoinImpl.sol +2 -2
  114. package/script/UpgradeFactoryImpl.s.sol +23 -0
  115. package/src/BaseCoin.sol +176 -0
  116. package/src/Coin.sol +93 -515
  117. package/src/CoinV4.sol +121 -0
  118. package/src/ZoraFactoryImpl.sol +257 -57
  119. package/src/hooks/ZoraV4CoinHook.sol +195 -0
  120. package/src/hooks/deployment/BaseCoinDeployHook.sol +62 -0
  121. package/src/hooks/deployment/BuySupplyWithSwapRouterHook.sol +80 -0
  122. package/src/interfaces/ICoin.sol +35 -39
  123. package/src/interfaces/ICoinDeployHook.sol +8 -0
  124. package/src/interfaces/ICoinV3.sol +71 -0
  125. package/src/interfaces/ICoinV4.sol +69 -0
  126. package/src/interfaces/IDeployedCoinVersionLookup.sol +11 -0
  127. package/src/interfaces/IMsgSender.sol +9 -0
  128. package/src/interfaces/IPoolConfigEncoding.sol +14 -0
  129. package/src/interfaces/ISwapPathRouter.sol +14 -0
  130. package/src/interfaces/ISwapRouter.sol +1 -35
  131. package/src/interfaces/IZoraFactory.sol +97 -7
  132. package/src/interfaces/IZoraV4CoinHook.sol +116 -0
  133. package/src/libs/CoinCommon.sol +15 -0
  134. package/src/libs/CoinConfigurationVersions.sol +116 -1
  135. package/src/{utils → libs}/CoinConstants.sol +11 -6
  136. package/src/libs/CoinDopplerMultiCurve.sol +134 -0
  137. package/src/libs/CoinDopplerUniV3.sol +19 -171
  138. package/src/libs/CoinRewards.sol +195 -0
  139. package/src/libs/CoinRewardsV4.sol +180 -0
  140. package/src/libs/CoinSetup.sol +40 -20
  141. package/src/libs/CoinSetupV3.sol +50 -0
  142. package/src/libs/DopplerMath.sol +156 -0
  143. package/src/libs/HooksDeployment.sol +84 -0
  144. package/src/libs/MarketConstants.sol +4 -0
  145. package/src/libs/PoolStateReader.sol +22 -0
  146. package/src/libs/UniV3BuySell.sol +231 -0
  147. package/src/libs/UniV3Errors.sol +11 -0
  148. package/src/libs/UniV4SwapHelper.sol +65 -0
  149. package/src/libs/UniV4SwapToCurrency.sol +109 -0
  150. package/src/libs/V4Liquidity.sol +129 -0
  151. package/src/types/PoolConfiguration.sol +15 -0
  152. package/src/utils/DeployedCoinVersionLookup.sol +52 -0
  153. package/src/version/ContractVersionBase.sol +1 -1
  154. package/test/Coin.t.sol +94 -101
  155. package/test/CoinDopplerUniV3.t.sol +35 -184
  156. package/test/CoinUniV4.t.sol +752 -0
  157. package/test/DeploymentHooks.t.sol +270 -0
  158. package/test/Factory.t.sol +84 -50
  159. package/test/MultiOwnable.t.sol +6 -3
  160. package/test/Upgrades.t.sol +68 -0
  161. package/test/mocks/MockERC20.sol +12 -0
  162. package/test/utils/BaseTest.sol +124 -59
  163. package/test/utils/DeployedCoinVersionLookup.t.sol +127 -0
  164. package/test/utils/FeeEstimatorHook.sol +84 -0
  165. package/test/utils/ProxyShim.sol +17 -0
  166. package/wagmi.config.ts +10 -9
  167. package/src/libs/CoinLegacy.sol +0 -48
@@ -0,0 +1,1350 @@
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": "addOwner",
18
+ "inputs": [
19
+ {
20
+ "name": "account",
21
+ "type": "address",
22
+ "internalType": "address"
23
+ }
24
+ ],
25
+ "outputs": [],
26
+ "stateMutability": "nonpayable"
27
+ },
28
+ {
29
+ "type": "function",
30
+ "name": "addOwners",
31
+ "inputs": [
32
+ {
33
+ "name": "accounts",
34
+ "type": "address[]",
35
+ "internalType": "address[]"
36
+ }
37
+ ],
38
+ "outputs": [],
39
+ "stateMutability": "nonpayable"
40
+ },
41
+ {
42
+ "type": "function",
43
+ "name": "airlock",
44
+ "inputs": [],
45
+ "outputs": [
46
+ {
47
+ "name": "",
48
+ "type": "address",
49
+ "internalType": "address"
50
+ }
51
+ ],
52
+ "stateMutability": "view"
53
+ },
54
+ {
55
+ "type": "function",
56
+ "name": "allowance",
57
+ "inputs": [
58
+ {
59
+ "name": "owner",
60
+ "type": "address",
61
+ "internalType": "address"
62
+ },
63
+ {
64
+ "name": "spender",
65
+ "type": "address",
66
+ "internalType": "address"
67
+ }
68
+ ],
69
+ "outputs": [
70
+ {
71
+ "name": "",
72
+ "type": "uint256",
73
+ "internalType": "uint256"
74
+ }
75
+ ],
76
+ "stateMutability": "view"
77
+ },
78
+ {
79
+ "type": "function",
80
+ "name": "approve",
81
+ "inputs": [
82
+ {
83
+ "name": "spender",
84
+ "type": "address",
85
+ "internalType": "address"
86
+ },
87
+ {
88
+ "name": "value",
89
+ "type": "uint256",
90
+ "internalType": "uint256"
91
+ }
92
+ ],
93
+ "outputs": [
94
+ {
95
+ "name": "",
96
+ "type": "bool",
97
+ "internalType": "bool"
98
+ }
99
+ ],
100
+ "stateMutability": "nonpayable"
101
+ },
102
+ {
103
+ "type": "function",
104
+ "name": "balanceOf",
105
+ "inputs": [
106
+ {
107
+ "name": "account",
108
+ "type": "address",
109
+ "internalType": "address"
110
+ }
111
+ ],
112
+ "outputs": [
113
+ {
114
+ "name": "",
115
+ "type": "uint256",
116
+ "internalType": "uint256"
117
+ }
118
+ ],
119
+ "stateMutability": "view"
120
+ },
121
+ {
122
+ "type": "function",
123
+ "name": "burn",
124
+ "inputs": [
125
+ {
126
+ "name": "amount",
127
+ "type": "uint256",
128
+ "internalType": "uint256"
129
+ }
130
+ ],
131
+ "outputs": [],
132
+ "stateMutability": "nonpayable"
133
+ },
134
+ {
135
+ "type": "function",
136
+ "name": "contractURI",
137
+ "inputs": [],
138
+ "outputs": [
139
+ {
140
+ "name": "",
141
+ "type": "string",
142
+ "internalType": "string"
143
+ }
144
+ ],
145
+ "stateMutability": "view"
146
+ },
147
+ {
148
+ "type": "function",
149
+ "name": "contractVersion",
150
+ "inputs": [],
151
+ "outputs": [
152
+ {
153
+ "name": "",
154
+ "type": "string",
155
+ "internalType": "string"
156
+ }
157
+ ],
158
+ "stateMutability": "pure"
159
+ },
160
+ {
161
+ "type": "function",
162
+ "name": "currency",
163
+ "inputs": [],
164
+ "outputs": [
165
+ {
166
+ "name": "",
167
+ "type": "address",
168
+ "internalType": "address"
169
+ }
170
+ ],
171
+ "stateMutability": "view"
172
+ },
173
+ {
174
+ "type": "function",
175
+ "name": "decimals",
176
+ "inputs": [],
177
+ "outputs": [
178
+ {
179
+ "name": "",
180
+ "type": "uint8",
181
+ "internalType": "uint8"
182
+ }
183
+ ],
184
+ "stateMutability": "view"
185
+ },
186
+ {
187
+ "type": "function",
188
+ "name": "dopplerFeeRecipient",
189
+ "inputs": [],
190
+ "outputs": [
191
+ {
192
+ "name": "",
193
+ "type": "address",
194
+ "internalType": "address"
195
+ }
196
+ ],
197
+ "stateMutability": "view"
198
+ },
199
+ {
200
+ "type": "function",
201
+ "name": "eip712Domain",
202
+ "inputs": [],
203
+ "outputs": [
204
+ {
205
+ "name": "fields",
206
+ "type": "bytes1",
207
+ "internalType": "bytes1"
208
+ },
209
+ {
210
+ "name": "name",
211
+ "type": "string",
212
+ "internalType": "string"
213
+ },
214
+ {
215
+ "name": "version",
216
+ "type": "string",
217
+ "internalType": "string"
218
+ },
219
+ {
220
+ "name": "chainId",
221
+ "type": "uint256",
222
+ "internalType": "uint256"
223
+ },
224
+ {
225
+ "name": "verifyingContract",
226
+ "type": "address",
227
+ "internalType": "address"
228
+ },
229
+ {
230
+ "name": "salt",
231
+ "type": "bytes32",
232
+ "internalType": "bytes32"
233
+ },
234
+ {
235
+ "name": "extensions",
236
+ "type": "uint256[]",
237
+ "internalType": "uint256[]"
238
+ }
239
+ ],
240
+ "stateMutability": "view"
241
+ },
242
+ {
243
+ "type": "function",
244
+ "name": "isOwner",
245
+ "inputs": [
246
+ {
247
+ "name": "account",
248
+ "type": "address",
249
+ "internalType": "address"
250
+ }
251
+ ],
252
+ "outputs": [
253
+ {
254
+ "name": "",
255
+ "type": "bool",
256
+ "internalType": "bool"
257
+ }
258
+ ],
259
+ "stateMutability": "view"
260
+ },
261
+ {
262
+ "type": "function",
263
+ "name": "name",
264
+ "inputs": [],
265
+ "outputs": [
266
+ {
267
+ "name": "",
268
+ "type": "string",
269
+ "internalType": "string"
270
+ }
271
+ ],
272
+ "stateMutability": "view"
273
+ },
274
+ {
275
+ "type": "function",
276
+ "name": "nonces",
277
+ "inputs": [
278
+ {
279
+ "name": "owner",
280
+ "type": "address",
281
+ "internalType": "address"
282
+ }
283
+ ],
284
+ "outputs": [
285
+ {
286
+ "name": "",
287
+ "type": "uint256",
288
+ "internalType": "uint256"
289
+ }
290
+ ],
291
+ "stateMutability": "view"
292
+ },
293
+ {
294
+ "type": "function",
295
+ "name": "owners",
296
+ "inputs": [],
297
+ "outputs": [
298
+ {
299
+ "name": "",
300
+ "type": "address[]",
301
+ "internalType": "address[]"
302
+ }
303
+ ],
304
+ "stateMutability": "view"
305
+ },
306
+ {
307
+ "type": "function",
308
+ "name": "payoutRecipient",
309
+ "inputs": [],
310
+ "outputs": [
311
+ {
312
+ "name": "",
313
+ "type": "address",
314
+ "internalType": "address"
315
+ }
316
+ ],
317
+ "stateMutability": "view"
318
+ },
319
+ {
320
+ "type": "function",
321
+ "name": "permit",
322
+ "inputs": [
323
+ {
324
+ "name": "owner",
325
+ "type": "address",
326
+ "internalType": "address"
327
+ },
328
+ {
329
+ "name": "spender",
330
+ "type": "address",
331
+ "internalType": "address"
332
+ },
333
+ {
334
+ "name": "value",
335
+ "type": "uint256",
336
+ "internalType": "uint256"
337
+ },
338
+ {
339
+ "name": "deadline",
340
+ "type": "uint256",
341
+ "internalType": "uint256"
342
+ },
343
+ {
344
+ "name": "v",
345
+ "type": "uint8",
346
+ "internalType": "uint8"
347
+ },
348
+ {
349
+ "name": "r",
350
+ "type": "bytes32",
351
+ "internalType": "bytes32"
352
+ },
353
+ {
354
+ "name": "s",
355
+ "type": "bytes32",
356
+ "internalType": "bytes32"
357
+ }
358
+ ],
359
+ "outputs": [],
360
+ "stateMutability": "nonpayable"
361
+ },
362
+ {
363
+ "type": "function",
364
+ "name": "platformReferrer",
365
+ "inputs": [],
366
+ "outputs": [
367
+ {
368
+ "name": "",
369
+ "type": "address",
370
+ "internalType": "address"
371
+ }
372
+ ],
373
+ "stateMutability": "view"
374
+ },
375
+ {
376
+ "type": "function",
377
+ "name": "protocolRewardRecipient",
378
+ "inputs": [],
379
+ "outputs": [
380
+ {
381
+ "name": "",
382
+ "type": "address",
383
+ "internalType": "address"
384
+ }
385
+ ],
386
+ "stateMutability": "view"
387
+ },
388
+ {
389
+ "type": "function",
390
+ "name": "protocolRewards",
391
+ "inputs": [],
392
+ "outputs": [
393
+ {
394
+ "name": "",
395
+ "type": "address",
396
+ "internalType": "address"
397
+ }
398
+ ],
399
+ "stateMutability": "view"
400
+ },
401
+ {
402
+ "type": "function",
403
+ "name": "removeOwner",
404
+ "inputs": [
405
+ {
406
+ "name": "account",
407
+ "type": "address",
408
+ "internalType": "address"
409
+ }
410
+ ],
411
+ "outputs": [],
412
+ "stateMutability": "nonpayable"
413
+ },
414
+ {
415
+ "type": "function",
416
+ "name": "removeOwners",
417
+ "inputs": [
418
+ {
419
+ "name": "accounts",
420
+ "type": "address[]",
421
+ "internalType": "address[]"
422
+ }
423
+ ],
424
+ "outputs": [],
425
+ "stateMutability": "nonpayable"
426
+ },
427
+ {
428
+ "type": "function",
429
+ "name": "revokeOwnership",
430
+ "inputs": [],
431
+ "outputs": [],
432
+ "stateMutability": "nonpayable"
433
+ },
434
+ {
435
+ "type": "function",
436
+ "name": "setContractURI",
437
+ "inputs": [
438
+ {
439
+ "name": "newURI",
440
+ "type": "string",
441
+ "internalType": "string"
442
+ }
443
+ ],
444
+ "outputs": [],
445
+ "stateMutability": "nonpayable"
446
+ },
447
+ {
448
+ "type": "function",
449
+ "name": "setPayoutRecipient",
450
+ "inputs": [
451
+ {
452
+ "name": "newPayoutRecipient",
453
+ "type": "address",
454
+ "internalType": "address"
455
+ }
456
+ ],
457
+ "outputs": [],
458
+ "stateMutability": "nonpayable"
459
+ },
460
+ {
461
+ "type": "function",
462
+ "name": "supportsInterface",
463
+ "inputs": [
464
+ {
465
+ "name": "interfaceId",
466
+ "type": "bytes4",
467
+ "internalType": "bytes4"
468
+ }
469
+ ],
470
+ "outputs": [
471
+ {
472
+ "name": "",
473
+ "type": "bool",
474
+ "internalType": "bool"
475
+ }
476
+ ],
477
+ "stateMutability": "pure"
478
+ },
479
+ {
480
+ "type": "function",
481
+ "name": "symbol",
482
+ "inputs": [],
483
+ "outputs": [
484
+ {
485
+ "name": "",
486
+ "type": "string",
487
+ "internalType": "string"
488
+ }
489
+ ],
490
+ "stateMutability": "view"
491
+ },
492
+ {
493
+ "type": "function",
494
+ "name": "tokenURI",
495
+ "inputs": [],
496
+ "outputs": [
497
+ {
498
+ "name": "",
499
+ "type": "string",
500
+ "internalType": "string"
501
+ }
502
+ ],
503
+ "stateMutability": "view"
504
+ },
505
+ {
506
+ "type": "function",
507
+ "name": "totalSupply",
508
+ "inputs": [],
509
+ "outputs": [
510
+ {
511
+ "name": "",
512
+ "type": "uint256",
513
+ "internalType": "uint256"
514
+ }
515
+ ],
516
+ "stateMutability": "view"
517
+ },
518
+ {
519
+ "type": "function",
520
+ "name": "transfer",
521
+ "inputs": [
522
+ {
523
+ "name": "to",
524
+ "type": "address",
525
+ "internalType": "address"
526
+ },
527
+ {
528
+ "name": "value",
529
+ "type": "uint256",
530
+ "internalType": "uint256"
531
+ }
532
+ ],
533
+ "outputs": [
534
+ {
535
+ "name": "",
536
+ "type": "bool",
537
+ "internalType": "bool"
538
+ }
539
+ ],
540
+ "stateMutability": "nonpayable"
541
+ },
542
+ {
543
+ "type": "function",
544
+ "name": "transferFrom",
545
+ "inputs": [
546
+ {
547
+ "name": "from",
548
+ "type": "address",
549
+ "internalType": "address"
550
+ },
551
+ {
552
+ "name": "to",
553
+ "type": "address",
554
+ "internalType": "address"
555
+ },
556
+ {
557
+ "name": "value",
558
+ "type": "uint256",
559
+ "internalType": "uint256"
560
+ }
561
+ ],
562
+ "outputs": [
563
+ {
564
+ "name": "",
565
+ "type": "bool",
566
+ "internalType": "bool"
567
+ }
568
+ ],
569
+ "stateMutability": "nonpayable"
570
+ },
571
+ {
572
+ "type": "event",
573
+ "name": "Approval",
574
+ "inputs": [
575
+ {
576
+ "name": "owner",
577
+ "type": "address",
578
+ "indexed": true,
579
+ "internalType": "address"
580
+ },
581
+ {
582
+ "name": "spender",
583
+ "type": "address",
584
+ "indexed": true,
585
+ "internalType": "address"
586
+ },
587
+ {
588
+ "name": "value",
589
+ "type": "uint256",
590
+ "indexed": false,
591
+ "internalType": "uint256"
592
+ }
593
+ ],
594
+ "anonymous": false
595
+ },
596
+ {
597
+ "type": "event",
598
+ "name": "CoinBuy",
599
+ "inputs": [
600
+ {
601
+ "name": "buyer",
602
+ "type": "address",
603
+ "indexed": true,
604
+ "internalType": "address"
605
+ },
606
+ {
607
+ "name": "recipient",
608
+ "type": "address",
609
+ "indexed": true,
610
+ "internalType": "address"
611
+ },
612
+ {
613
+ "name": "tradeReferrer",
614
+ "type": "address",
615
+ "indexed": true,
616
+ "internalType": "address"
617
+ },
618
+ {
619
+ "name": "coinsPurchased",
620
+ "type": "uint256",
621
+ "indexed": false,
622
+ "internalType": "uint256"
623
+ },
624
+ {
625
+ "name": "currency",
626
+ "type": "address",
627
+ "indexed": false,
628
+ "internalType": "address"
629
+ },
630
+ {
631
+ "name": "amountFee",
632
+ "type": "uint256",
633
+ "indexed": false,
634
+ "internalType": "uint256"
635
+ },
636
+ {
637
+ "name": "amountSold",
638
+ "type": "uint256",
639
+ "indexed": false,
640
+ "internalType": "uint256"
641
+ }
642
+ ],
643
+ "anonymous": false
644
+ },
645
+ {
646
+ "type": "event",
647
+ "name": "CoinMarketRewards",
648
+ "inputs": [
649
+ {
650
+ "name": "payoutRecipient",
651
+ "type": "address",
652
+ "indexed": true,
653
+ "internalType": "address"
654
+ },
655
+ {
656
+ "name": "platformReferrer",
657
+ "type": "address",
658
+ "indexed": true,
659
+ "internalType": "address"
660
+ },
661
+ {
662
+ "name": "protocolRewardRecipient",
663
+ "type": "address",
664
+ "indexed": false,
665
+ "internalType": "address"
666
+ },
667
+ {
668
+ "name": "currency",
669
+ "type": "address",
670
+ "indexed": false,
671
+ "internalType": "address"
672
+ },
673
+ {
674
+ "name": "marketRewards",
675
+ "type": "tuple",
676
+ "indexed": false,
677
+ "internalType": "struct ICoin.MarketRewards",
678
+ "components": [
679
+ {
680
+ "name": "totalAmountCurrency",
681
+ "type": "uint256",
682
+ "internalType": "uint256"
683
+ },
684
+ {
685
+ "name": "totalAmountCoin",
686
+ "type": "uint256",
687
+ "internalType": "uint256"
688
+ },
689
+ {
690
+ "name": "creatorPayoutAmountCurrency",
691
+ "type": "uint256",
692
+ "internalType": "uint256"
693
+ },
694
+ {
695
+ "name": "creatorPayoutAmountCoin",
696
+ "type": "uint256",
697
+ "internalType": "uint256"
698
+ },
699
+ {
700
+ "name": "platformReferrerAmountCurrency",
701
+ "type": "uint256",
702
+ "internalType": "uint256"
703
+ },
704
+ {
705
+ "name": "platformReferrerAmountCoin",
706
+ "type": "uint256",
707
+ "internalType": "uint256"
708
+ },
709
+ {
710
+ "name": "protocolAmountCurrency",
711
+ "type": "uint256",
712
+ "internalType": "uint256"
713
+ },
714
+ {
715
+ "name": "protocolAmountCoin",
716
+ "type": "uint256",
717
+ "internalType": "uint256"
718
+ }
719
+ ]
720
+ }
721
+ ],
722
+ "anonymous": false
723
+ },
724
+ {
725
+ "type": "event",
726
+ "name": "CoinPayoutRecipientUpdated",
727
+ "inputs": [
728
+ {
729
+ "name": "caller",
730
+ "type": "address",
731
+ "indexed": true,
732
+ "internalType": "address"
733
+ },
734
+ {
735
+ "name": "prevRecipient",
736
+ "type": "address",
737
+ "indexed": true,
738
+ "internalType": "address"
739
+ },
740
+ {
741
+ "name": "newRecipient",
742
+ "type": "address",
743
+ "indexed": true,
744
+ "internalType": "address"
745
+ }
746
+ ],
747
+ "anonymous": false
748
+ },
749
+ {
750
+ "type": "event",
751
+ "name": "CoinSell",
752
+ "inputs": [
753
+ {
754
+ "name": "seller",
755
+ "type": "address",
756
+ "indexed": true,
757
+ "internalType": "address"
758
+ },
759
+ {
760
+ "name": "recipient",
761
+ "type": "address",
762
+ "indexed": true,
763
+ "internalType": "address"
764
+ },
765
+ {
766
+ "name": "tradeReferrer",
767
+ "type": "address",
768
+ "indexed": true,
769
+ "internalType": "address"
770
+ },
771
+ {
772
+ "name": "coinsSold",
773
+ "type": "uint256",
774
+ "indexed": false,
775
+ "internalType": "uint256"
776
+ },
777
+ {
778
+ "name": "currency",
779
+ "type": "address",
780
+ "indexed": false,
781
+ "internalType": "address"
782
+ },
783
+ {
784
+ "name": "amountFee",
785
+ "type": "uint256",
786
+ "indexed": false,
787
+ "internalType": "uint256"
788
+ },
789
+ {
790
+ "name": "amountPurchased",
791
+ "type": "uint256",
792
+ "indexed": false,
793
+ "internalType": "uint256"
794
+ }
795
+ ],
796
+ "anonymous": false
797
+ },
798
+ {
799
+ "type": "event",
800
+ "name": "CoinTradeRewards",
801
+ "inputs": [
802
+ {
803
+ "name": "payoutRecipient",
804
+ "type": "address",
805
+ "indexed": true,
806
+ "internalType": "address"
807
+ },
808
+ {
809
+ "name": "platformReferrer",
810
+ "type": "address",
811
+ "indexed": true,
812
+ "internalType": "address"
813
+ },
814
+ {
815
+ "name": "tradeReferrer",
816
+ "type": "address",
817
+ "indexed": true,
818
+ "internalType": "address"
819
+ },
820
+ {
821
+ "name": "protocolRewardRecipient",
822
+ "type": "address",
823
+ "indexed": false,
824
+ "internalType": "address"
825
+ },
826
+ {
827
+ "name": "creatorReward",
828
+ "type": "uint256",
829
+ "indexed": false,
830
+ "internalType": "uint256"
831
+ },
832
+ {
833
+ "name": "platformReferrerReward",
834
+ "type": "uint256",
835
+ "indexed": false,
836
+ "internalType": "uint256"
837
+ },
838
+ {
839
+ "name": "traderReferrerReward",
840
+ "type": "uint256",
841
+ "indexed": false,
842
+ "internalType": "uint256"
843
+ },
844
+ {
845
+ "name": "protocolReward",
846
+ "type": "uint256",
847
+ "indexed": false,
848
+ "internalType": "uint256"
849
+ },
850
+ {
851
+ "name": "currency",
852
+ "type": "address",
853
+ "indexed": false,
854
+ "internalType": "address"
855
+ }
856
+ ],
857
+ "anonymous": false
858
+ },
859
+ {
860
+ "type": "event",
861
+ "name": "CoinTransfer",
862
+ "inputs": [
863
+ {
864
+ "name": "sender",
865
+ "type": "address",
866
+ "indexed": true,
867
+ "internalType": "address"
868
+ },
869
+ {
870
+ "name": "recipient",
871
+ "type": "address",
872
+ "indexed": true,
873
+ "internalType": "address"
874
+ },
875
+ {
876
+ "name": "amount",
877
+ "type": "uint256",
878
+ "indexed": false,
879
+ "internalType": "uint256"
880
+ },
881
+ {
882
+ "name": "senderBalance",
883
+ "type": "uint256",
884
+ "indexed": false,
885
+ "internalType": "uint256"
886
+ },
887
+ {
888
+ "name": "recipientBalance",
889
+ "type": "uint256",
890
+ "indexed": false,
891
+ "internalType": "uint256"
892
+ }
893
+ ],
894
+ "anonymous": false
895
+ },
896
+ {
897
+ "type": "event",
898
+ "name": "ContractMetadataUpdated",
899
+ "inputs": [
900
+ {
901
+ "name": "caller",
902
+ "type": "address",
903
+ "indexed": true,
904
+ "internalType": "address"
905
+ },
906
+ {
907
+ "name": "newURI",
908
+ "type": "string",
909
+ "indexed": false,
910
+ "internalType": "string"
911
+ },
912
+ {
913
+ "name": "name",
914
+ "type": "string",
915
+ "indexed": false,
916
+ "internalType": "string"
917
+ }
918
+ ],
919
+ "anonymous": false
920
+ },
921
+ {
922
+ "type": "event",
923
+ "name": "ContractURIUpdated",
924
+ "inputs": [],
925
+ "anonymous": false
926
+ },
927
+ {
928
+ "type": "event",
929
+ "name": "EIP712DomainChanged",
930
+ "inputs": [],
931
+ "anonymous": false
932
+ },
933
+ {
934
+ "type": "event",
935
+ "name": "Initialized",
936
+ "inputs": [
937
+ {
938
+ "name": "version",
939
+ "type": "uint64",
940
+ "indexed": false,
941
+ "internalType": "uint64"
942
+ }
943
+ ],
944
+ "anonymous": false
945
+ },
946
+ {
947
+ "type": "event",
948
+ "name": "OwnerUpdated",
949
+ "inputs": [
950
+ {
951
+ "name": "caller",
952
+ "type": "address",
953
+ "indexed": true,
954
+ "internalType": "address"
955
+ },
956
+ {
957
+ "name": "prevOwner",
958
+ "type": "address",
959
+ "indexed": true,
960
+ "internalType": "address"
961
+ },
962
+ {
963
+ "name": "newOwner",
964
+ "type": "address",
965
+ "indexed": true,
966
+ "internalType": "address"
967
+ }
968
+ ],
969
+ "anonymous": false
970
+ },
971
+ {
972
+ "type": "event",
973
+ "name": "Transfer",
974
+ "inputs": [
975
+ {
976
+ "name": "from",
977
+ "type": "address",
978
+ "indexed": true,
979
+ "internalType": "address"
980
+ },
981
+ {
982
+ "name": "to",
983
+ "type": "address",
984
+ "indexed": true,
985
+ "internalType": "address"
986
+ },
987
+ {
988
+ "name": "value",
989
+ "type": "uint256",
990
+ "indexed": false,
991
+ "internalType": "uint256"
992
+ }
993
+ ],
994
+ "anonymous": false
995
+ },
996
+ {
997
+ "type": "error",
998
+ "name": "AddressZero",
999
+ "inputs": []
1000
+ },
1001
+ {
1002
+ "type": "error",
1003
+ "name": "AlreadyOwner",
1004
+ "inputs": []
1005
+ },
1006
+ {
1007
+ "type": "error",
1008
+ "name": "CannotMintZeroLiquidity",
1009
+ "inputs": []
1010
+ },
1011
+ {
1012
+ "type": "error",
1013
+ "name": "DopplerPoolMustHaveMoreThan2DiscoveryPositions",
1014
+ "inputs": []
1015
+ },
1016
+ {
1017
+ "type": "error",
1018
+ "name": "ECDSAInvalidSignature",
1019
+ "inputs": []
1020
+ },
1021
+ {
1022
+ "type": "error",
1023
+ "name": "ECDSAInvalidSignatureLength",
1024
+ "inputs": [
1025
+ {
1026
+ "name": "length",
1027
+ "type": "uint256",
1028
+ "internalType": "uint256"
1029
+ }
1030
+ ]
1031
+ },
1032
+ {
1033
+ "type": "error",
1034
+ "name": "ECDSAInvalidSignatureS",
1035
+ "inputs": [
1036
+ {
1037
+ "name": "s",
1038
+ "type": "bytes32",
1039
+ "internalType": "bytes32"
1040
+ }
1041
+ ]
1042
+ },
1043
+ {
1044
+ "type": "error",
1045
+ "name": "ERC20InsufficientAllowance",
1046
+ "inputs": [
1047
+ {
1048
+ "name": "spender",
1049
+ "type": "address",
1050
+ "internalType": "address"
1051
+ },
1052
+ {
1053
+ "name": "allowance",
1054
+ "type": "uint256",
1055
+ "internalType": "uint256"
1056
+ },
1057
+ {
1058
+ "name": "needed",
1059
+ "type": "uint256",
1060
+ "internalType": "uint256"
1061
+ }
1062
+ ]
1063
+ },
1064
+ {
1065
+ "type": "error",
1066
+ "name": "ERC20InsufficientBalance",
1067
+ "inputs": [
1068
+ {
1069
+ "name": "sender",
1070
+ "type": "address",
1071
+ "internalType": "address"
1072
+ },
1073
+ {
1074
+ "name": "balance",
1075
+ "type": "uint256",
1076
+ "internalType": "uint256"
1077
+ },
1078
+ {
1079
+ "name": "needed",
1080
+ "type": "uint256",
1081
+ "internalType": "uint256"
1082
+ }
1083
+ ]
1084
+ },
1085
+ {
1086
+ "type": "error",
1087
+ "name": "ERC20InvalidApprover",
1088
+ "inputs": [
1089
+ {
1090
+ "name": "approver",
1091
+ "type": "address",
1092
+ "internalType": "address"
1093
+ }
1094
+ ]
1095
+ },
1096
+ {
1097
+ "type": "error",
1098
+ "name": "ERC20InvalidReceiver",
1099
+ "inputs": [
1100
+ {
1101
+ "name": "receiver",
1102
+ "type": "address",
1103
+ "internalType": "address"
1104
+ }
1105
+ ]
1106
+ },
1107
+ {
1108
+ "type": "error",
1109
+ "name": "ERC20InvalidSender",
1110
+ "inputs": [
1111
+ {
1112
+ "name": "sender",
1113
+ "type": "address",
1114
+ "internalType": "address"
1115
+ }
1116
+ ]
1117
+ },
1118
+ {
1119
+ "type": "error",
1120
+ "name": "ERC20InvalidSpender",
1121
+ "inputs": [
1122
+ {
1123
+ "name": "spender",
1124
+ "type": "address",
1125
+ "internalType": "address"
1126
+ }
1127
+ ]
1128
+ },
1129
+ {
1130
+ "type": "error",
1131
+ "name": "ERC20TransferAmountMismatch",
1132
+ "inputs": []
1133
+ },
1134
+ {
1135
+ "type": "error",
1136
+ "name": "ERC2612ExpiredSignature",
1137
+ "inputs": [
1138
+ {
1139
+ "name": "deadline",
1140
+ "type": "uint256",
1141
+ "internalType": "uint256"
1142
+ }
1143
+ ]
1144
+ },
1145
+ {
1146
+ "type": "error",
1147
+ "name": "ERC2612InvalidSigner",
1148
+ "inputs": [
1149
+ {
1150
+ "name": "signer",
1151
+ "type": "address",
1152
+ "internalType": "address"
1153
+ },
1154
+ {
1155
+ "name": "owner",
1156
+ "type": "address",
1157
+ "internalType": "address"
1158
+ }
1159
+ ]
1160
+ },
1161
+ {
1162
+ "type": "error",
1163
+ "name": "EthAmountMismatch",
1164
+ "inputs": []
1165
+ },
1166
+ {
1167
+ "type": "error",
1168
+ "name": "EthAmountTooSmall",
1169
+ "inputs": []
1170
+ },
1171
+ {
1172
+ "type": "error",
1173
+ "name": "EthTransferFailed",
1174
+ "inputs": []
1175
+ },
1176
+ {
1177
+ "type": "error",
1178
+ "name": "EthTransferInvalid",
1179
+ "inputs": []
1180
+ },
1181
+ {
1182
+ "type": "error",
1183
+ "name": "InitialOrderSizeTooLarge",
1184
+ "inputs": []
1185
+ },
1186
+ {
1187
+ "type": "error",
1188
+ "name": "InsufficientFunds",
1189
+ "inputs": []
1190
+ },
1191
+ {
1192
+ "type": "error",
1193
+ "name": "InsufficientLiquidity",
1194
+ "inputs": []
1195
+ },
1196
+ {
1197
+ "type": "error",
1198
+ "name": "InvalidAccountNonce",
1199
+ "inputs": [
1200
+ {
1201
+ "name": "account",
1202
+ "type": "address",
1203
+ "internalType": "address"
1204
+ },
1205
+ {
1206
+ "name": "currentNonce",
1207
+ "type": "uint256",
1208
+ "internalType": "uint256"
1209
+ }
1210
+ ]
1211
+ },
1212
+ {
1213
+ "type": "error",
1214
+ "name": "InvalidCurrencyLowerTick",
1215
+ "inputs": []
1216
+ },
1217
+ {
1218
+ "type": "error",
1219
+ "name": "InvalidInitialization",
1220
+ "inputs": []
1221
+ },
1222
+ {
1223
+ "type": "error",
1224
+ "name": "InvalidMarketType",
1225
+ "inputs": []
1226
+ },
1227
+ {
1228
+ "type": "error",
1229
+ "name": "InvalidPoolVersion",
1230
+ "inputs": []
1231
+ },
1232
+ {
1233
+ "type": "error",
1234
+ "name": "InvalidTickRangeMisordered",
1235
+ "inputs": [
1236
+ {
1237
+ "name": "tickLower",
1238
+ "type": "int24",
1239
+ "internalType": "int24"
1240
+ },
1241
+ {
1242
+ "name": "tickUpper",
1243
+ "type": "int24",
1244
+ "internalType": "int24"
1245
+ }
1246
+ ]
1247
+ },
1248
+ {
1249
+ "type": "error",
1250
+ "name": "InvalidWethLowerTick",
1251
+ "inputs": []
1252
+ },
1253
+ {
1254
+ "type": "error",
1255
+ "name": "LegacyPoolMustHaveOneDiscoveryPosition",
1256
+ "inputs": []
1257
+ },
1258
+ {
1259
+ "type": "error",
1260
+ "name": "MarketAlreadyGraduated",
1261
+ "inputs": []
1262
+ },
1263
+ {
1264
+ "type": "error",
1265
+ "name": "MarketNotGraduated",
1266
+ "inputs": []
1267
+ },
1268
+ {
1269
+ "type": "error",
1270
+ "name": "MaxShareToBeSoldExceeded",
1271
+ "inputs": [
1272
+ {
1273
+ "name": "value",
1274
+ "type": "uint256",
1275
+ "internalType": "uint256"
1276
+ },
1277
+ {
1278
+ "name": "limit",
1279
+ "type": "uint256",
1280
+ "internalType": "uint256"
1281
+ }
1282
+ ]
1283
+ },
1284
+ {
1285
+ "type": "error",
1286
+ "name": "NotInitializing",
1287
+ "inputs": []
1288
+ },
1289
+ {
1290
+ "type": "error",
1291
+ "name": "NotOwner",
1292
+ "inputs": []
1293
+ },
1294
+ {
1295
+ "type": "error",
1296
+ "name": "NumDiscoveryPositionsOutOfRange",
1297
+ "inputs": []
1298
+ },
1299
+ {
1300
+ "type": "error",
1301
+ "name": "OneOwnerRequired",
1302
+ "inputs": []
1303
+ },
1304
+ {
1305
+ "type": "error",
1306
+ "name": "OnlyOwner",
1307
+ "inputs": []
1308
+ },
1309
+ {
1310
+ "type": "error",
1311
+ "name": "OnlyPool",
1312
+ "inputs": [
1313
+ {
1314
+ "name": "sender",
1315
+ "type": "address",
1316
+ "internalType": "address"
1317
+ },
1318
+ {
1319
+ "name": "pool",
1320
+ "type": "address",
1321
+ "internalType": "address"
1322
+ }
1323
+ ]
1324
+ },
1325
+ {
1326
+ "type": "error",
1327
+ "name": "OnlyWeth",
1328
+ "inputs": []
1329
+ },
1330
+ {
1331
+ "type": "error",
1332
+ "name": "OwnerCannotBeAddressZero",
1333
+ "inputs": []
1334
+ },
1335
+ {
1336
+ "type": "error",
1337
+ "name": "ReentrancyGuardReentrantCall",
1338
+ "inputs": []
1339
+ },
1340
+ {
1341
+ "type": "error",
1342
+ "name": "SlippageBoundsExceeded",
1343
+ "inputs": []
1344
+ },
1345
+ {
1346
+ "type": "error",
1347
+ "name": "UseRevokeOwnershipToRemoveSelf",
1348
+ "inputs": []
1349
+ }
1350
+ ]