@zoralabs/coins 0.9.0 → 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 (124) hide show
  1. package/.turbo/turbo-build.log +131 -114
  2. package/CHANGELOG.md +40 -0
  3. package/abis/BaseCoin.json +26 -118
  4. package/abis/BaseTest.json +47 -0
  5. package/abis/Coin.json +171 -63
  6. package/abis/CoinDopplerMultiCurve.json +38 -0
  7. package/abis/CoinRewardsV4.json +54 -0
  8. package/abis/CoinTest.json +53 -20
  9. package/abis/CoinUniV4Test.json +1053 -0
  10. package/abis/CoinV4.json +234 -211
  11. package/abis/DeployScript.json +47 -0
  12. package/abis/DeployedCoinVersionLookup.json +21 -0
  13. package/abis/DeployedCoinVersionLookupTest.json +716 -0
  14. package/abis/DifferentNamespaceVersionLookup.json +39 -0
  15. package/abis/DopplerUniswapV3Test.json +49 -93
  16. package/abis/ERC20.json +310 -0
  17. package/abis/FactoryTest.json +85 -7
  18. package/abis/FeeEstimatorHook.json +1528 -0
  19. package/abis/HooksDeployment.json +23 -0
  20. package/abis/HooksTest.json +47 -0
  21. package/abis/ICoin.json +40 -71
  22. package/abis/ICoinV3.json +879 -0
  23. package/abis/ICoinV4.json +915 -0
  24. package/abis/IDeployedCoinVersionLookup.json +21 -0
  25. package/abis/IERC721.json +36 -36
  26. package/abis/IHasPoolKey.json +42 -0
  27. package/abis/IHasRewardsRecipients.json +54 -0
  28. package/abis/IHasSwapPath.json +60 -0
  29. package/abis/IMsgSender.json +15 -0
  30. package/abis/IPoolConfigEncoding.json +46 -0
  31. package/abis/ISwapPathRouter.json +92 -0
  32. package/abis/IUniversalRouter.json +61 -0
  33. package/abis/IUnlockCallback.json +21 -0
  34. package/abis/IV4Quoter.json +310 -0
  35. package/abis/IZoraFactory.json +191 -11
  36. package/abis/IZoraV4CoinHook.json +348 -4
  37. package/abis/MockERC20.json +21 -0
  38. package/abis/MultiOwnableTest.json +47 -0
  39. package/abis/{CoinConfigurationVersions.json → Position.json} +1 -1
  40. package/abis/PrintUpgradeCommand.json +9 -0
  41. package/abis/ProxyShim.json +24 -0
  42. package/abis/StateLibrary.json +80 -0
  43. package/abis/TestDeployedCoinVersionLookupImplementation.json +39 -0
  44. package/abis/TestV4Swap.json +9 -0
  45. package/abis/UpgradeCoinImpl.json +47 -0
  46. package/abis/UpgradesTest.json +67 -0
  47. package/abis/Vm.json +1482 -111
  48. package/abis/VmSafe.json +856 -32
  49. package/abis/ZoraFactoryImpl.json +339 -1
  50. package/abis/ZoraV4CoinHook.json +455 -5
  51. package/addresses/8453.json +8 -4
  52. package/addresses/84532.json +8 -4
  53. package/dist/index.cjs +1920 -169
  54. package/dist/index.cjs.map +1 -1
  55. package/dist/index.js +1916 -169
  56. package/dist/index.js.map +1 -1
  57. package/dist/wagmiGenerated.d.ts +2599 -183
  58. package/dist/wagmiGenerated.d.ts.map +1 -1
  59. package/package/wagmiGenerated.ts +1928 -165
  60. package/package.json +8 -3
  61. package/remappings.txt +6 -1
  62. package/script/CoinsDeployerBase.sol +74 -11
  63. package/script/DeployDevFactory.s.sol +21 -0
  64. package/script/PrintUpgradeCommand.s.sol +13 -0
  65. package/script/Simulate.s.sol +1 -10
  66. package/script/TestBackingCoinSwap.s.sol +146 -0
  67. package/script/TestV4Swap.s.sol +136 -0
  68. package/script/UpgradeFactoryImpl.s.sol +1 -1
  69. package/src/BaseCoin.sol +176 -0
  70. package/src/Coin.sol +87 -202
  71. package/src/CoinV4.sol +121 -0
  72. package/src/ZoraFactoryImpl.sol +208 -36
  73. package/src/hooks/ZoraV4CoinHook.sol +195 -0
  74. package/src/hooks/{BaseCoinDeployHook.sol → deployment/BaseCoinDeployHook.sol} +3 -3
  75. package/src/hooks/{BuySupplyWithSwapRouterHook.sol → deployment/BuySupplyWithSwapRouterHook.sol} +7 -5
  76. package/src/interfaces/ICoin.sol +31 -39
  77. package/src/interfaces/ICoinV3.sol +71 -0
  78. package/src/interfaces/ICoinV4.sol +69 -0
  79. package/src/interfaces/IDeployedCoinVersionLookup.sol +11 -0
  80. package/src/interfaces/IMsgSender.sol +9 -0
  81. package/src/interfaces/IPoolConfigEncoding.sol +14 -0
  82. package/src/interfaces/ISwapPathRouter.sol +14 -0
  83. package/src/interfaces/IZoraFactory.sol +65 -27
  84. package/src/interfaces/IZoraV4CoinHook.sol +116 -0
  85. package/src/libs/CoinCommon.sol +15 -0
  86. package/src/libs/CoinConfigurationVersions.sol +116 -1
  87. package/src/libs/CoinConstants.sol +5 -0
  88. package/src/libs/CoinDopplerMultiCurve.sol +134 -0
  89. package/src/libs/CoinDopplerUniV3.sol +19 -171
  90. package/src/libs/CoinRewards.sol +195 -0
  91. package/src/libs/CoinRewardsV4.sol +180 -0
  92. package/src/libs/CoinSetup.sol +57 -0
  93. package/src/libs/CoinSetupV3.sol +6 -67
  94. package/src/libs/DopplerMath.sol +156 -0
  95. package/src/libs/HooksDeployment.sol +84 -0
  96. package/src/libs/MarketConstants.sol +4 -0
  97. package/src/libs/PoolStateReader.sol +22 -0
  98. package/src/libs/UniV3BuySell.sol +74 -292
  99. package/src/libs/UniV4SwapHelper.sol +65 -0
  100. package/src/libs/UniV4SwapToCurrency.sol +109 -0
  101. package/src/libs/V4Liquidity.sol +129 -0
  102. package/src/types/PoolConfiguration.sol +15 -0
  103. package/src/utils/DeployedCoinVersionLookup.sol +52 -0
  104. package/src/version/ContractVersionBase.sol +1 -1
  105. package/test/Coin.t.sol +78 -88
  106. package/test/CoinDopplerUniV3.t.sol +32 -171
  107. package/test/CoinUniV4.t.sol +752 -0
  108. package/test/{Hooks.t.sol → DeploymentHooks.t.sol} +2 -6
  109. package/test/Factory.t.sol +80 -47
  110. package/test/MultiOwnable.t.sol +6 -3
  111. package/test/Upgrades.t.sol +6 -5
  112. package/test/mocks/MockERC20.sol +12 -0
  113. package/test/utils/BaseTest.sol +106 -56
  114. package/test/utils/DeployedCoinVersionLookup.t.sol +127 -0
  115. package/test/utils/FeeEstimatorHook.sol +84 -0
  116. package/test/utils/ProxyShim.sol +17 -0
  117. package/wagmi.config.ts +4 -0
  118. package/.env +0 -1
  119. package/.turbo/turbo-update-contract-version.log +0 -22
  120. package/abis/CoinSetupV3.json +0 -7
  121. package/abis/HookDeployer.json +0 -68
  122. package/abis/IHookDeployer.json +0 -42
  123. package/src/libs/CoinLegacy.sol +0 -48
  124. package/src/libs/CoinLegacyMarket.sol +0 -182
package/dist/index.cjs CHANGED
@@ -22,7 +22,11 @@ var index_exports = {};
22
22
  __export(index_exports, {
23
23
  buySupplyWithSwapRouterHookABI: () => buySupplyWithSwapRouterHookABI,
24
24
  coinABI: () => coinABI,
25
+ coinV4ABI: () => coinV4ABI,
26
+ iPermit2ABI: () => iPermit2ABI,
27
+ iPoolConfigEncodingABI: () => iPoolConfigEncodingABI,
25
28
  iUniswapV3PoolABI: () => iUniswapV3PoolABI,
29
+ iUniversalRouterABI: () => iUniversalRouterABI,
26
30
  zoraFactoryImplABI: () => zoraFactoryImplABI
27
31
  });
28
32
  module.exports = __toCommonJS(index_exports);
@@ -89,15 +93,15 @@ var coinABI = [
89
93
  type: "constructor",
90
94
  inputs: [
91
95
  {
92
- name: "_protocolRewardRecipient",
96
+ name: "protocolRewardRecipient_",
93
97
  internalType: "address",
94
98
  type: "address"
95
99
  },
96
- { name: "_protocolRewards", internalType: "address", type: "address" },
97
- { name: "_weth", internalType: "address", type: "address" },
98
- { name: "_v3Factory", internalType: "address", type: "address" },
99
- { name: "_swapRouter", internalType: "address", type: "address" },
100
- { name: "_airlock", internalType: "address", type: "address" }
100
+ { name: "protocolRewards_", internalType: "address", type: "address" },
101
+ { name: "weth_", internalType: "address", type: "address" },
102
+ { name: "v3Factory_", internalType: "address", type: "address" },
103
+ { name: "swapRouter_", internalType: "address", type: "address" },
104
+ { name: "airlock_", internalType: "address", type: "address" }
101
105
  ],
102
106
  stateMutability: "nonpayable"
103
107
  },
@@ -224,6 +228,13 @@ var coinABI = [
224
228
  outputs: [{ name: "", internalType: "uint8", type: "uint8" }],
225
229
  stateMutability: "view"
226
230
  },
231
+ {
232
+ type: "function",
233
+ inputs: [],
234
+ name: "dopplerFeeRecipient",
235
+ outputs: [{ name: "", internalType: "address", type: "address" }],
236
+ stateMutability: "view"
237
+ },
227
238
  {
228
239
  type: "function",
229
240
  inputs: [],
@@ -239,6 +250,37 @@ var coinABI = [
239
250
  ],
240
251
  stateMutability: "view"
241
252
  },
253
+ {
254
+ type: "function",
255
+ inputs: [],
256
+ name: "getPoolConfiguration",
257
+ outputs: [
258
+ {
259
+ name: "",
260
+ internalType: "struct PoolConfiguration",
261
+ type: "tuple",
262
+ components: [
263
+ { name: "version", internalType: "uint8", type: "uint8" },
264
+ { name: "numPositions", internalType: "uint16", type: "uint16" },
265
+ { name: "fee", internalType: "uint24", type: "uint24" },
266
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
267
+ {
268
+ name: "numDiscoveryPositions",
269
+ internalType: "uint16[]",
270
+ type: "uint16[]"
271
+ },
272
+ { name: "tickLower", internalType: "int24[]", type: "int24[]" },
273
+ { name: "tickUpper", internalType: "int24[]", type: "int24[]" },
274
+ {
275
+ name: "maxDiscoverySupplyShare",
276
+ internalType: "uint256[]",
277
+ type: "uint256[]"
278
+ }
279
+ ]
280
+ }
281
+ ],
282
+ stateMutability: "view"
283
+ },
242
284
  {
243
285
  type: "function",
244
286
  inputs: [
@@ -247,8 +289,42 @@ var coinABI = [
247
289
  { name: "tokenURI_", internalType: "string", type: "string" },
248
290
  { name: "name_", internalType: "string", type: "string" },
249
291
  { name: "symbol_", internalType: "string", type: "string" },
250
- { name: "poolConfig_", internalType: "bytes", type: "bytes" },
251
- { name: "platformReferrer_", internalType: "address", type: "address" }
292
+ { name: "platformReferrer_", internalType: "address", type: "address" },
293
+ { name: "currency_", internalType: "address", type: "address" },
294
+ { name: "poolAddress_", internalType: "address", type: "address" },
295
+ {
296
+ name: "poolConfiguration_",
297
+ internalType: "struct PoolConfiguration",
298
+ type: "tuple",
299
+ components: [
300
+ { name: "version", internalType: "uint8", type: "uint8" },
301
+ { name: "numPositions", internalType: "uint16", type: "uint16" },
302
+ { name: "fee", internalType: "uint24", type: "uint24" },
303
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
304
+ {
305
+ name: "numDiscoveryPositions",
306
+ internalType: "uint16[]",
307
+ type: "uint16[]"
308
+ },
309
+ { name: "tickLower", internalType: "int24[]", type: "int24[]" },
310
+ { name: "tickUpper", internalType: "int24[]", type: "int24[]" },
311
+ {
312
+ name: "maxDiscoverySupplyShare",
313
+ internalType: "uint256[]",
314
+ type: "uint256[]"
315
+ }
316
+ ]
317
+ },
318
+ {
319
+ name: "positions_",
320
+ internalType: "struct LpPosition[]",
321
+ type: "tuple[]",
322
+ components: [
323
+ { name: "tickLower", internalType: "int24", type: "int24" },
324
+ { name: "tickUpper", internalType: "int24", type: "int24" },
325
+ { name: "liquidity", internalType: "uint128", type: "uint128" }
326
+ ]
327
+ }
252
328
  ],
253
329
  name: "initialize",
254
330
  outputs: [],
@@ -338,35 +414,20 @@ var coinABI = [
338
414
  name: "poolConfiguration",
339
415
  outputs: [
340
416
  { name: "version", internalType: "uint8", type: "uint8" },
341
- { name: "tickLower", internalType: "int24", type: "int24" },
342
- { name: "tickUpper", internalType: "int24", type: "int24" },
343
417
  { name: "numPositions", internalType: "uint16", type: "uint16" },
344
- {
345
- name: "maxDiscoverySupplyShare",
346
- internalType: "uint256",
347
- type: "uint256"
348
- }
418
+ { name: "fee", internalType: "uint24", type: "uint24" },
419
+ { name: "tickSpacing", internalType: "int24", type: "int24" }
349
420
  ],
350
421
  stateMutability: "view"
351
422
  },
352
423
  {
353
424
  type: "function",
354
- inputs: [],
355
- name: "poolState",
425
+ inputs: [{ name: "", internalType: "uint256", type: "uint256" }],
426
+ name: "positions",
356
427
  outputs: [
357
- { name: "asset", internalType: "address", type: "address" },
358
- { name: "numeraire", internalType: "address", type: "address" },
359
428
  { name: "tickLower", internalType: "int24", type: "int24" },
360
429
  { name: "tickUpper", internalType: "int24", type: "int24" },
361
- { name: "numPositions", internalType: "uint16", type: "uint16" },
362
- { name: "isInitialized", internalType: "bool", type: "bool" },
363
- { name: "isExited", internalType: "bool", type: "bool" },
364
- { name: "maxShareToBeSold", internalType: "uint256", type: "uint256" },
365
- {
366
- name: "totalTokensOnBondingCurve",
367
- internalType: "uint256",
368
- type: "uint256"
369
- }
430
+ { name: "liquidity", internalType: "uint128", type: "uint128" }
370
431
  ],
371
432
  stateMutability: "view"
372
433
  },
@@ -1011,7 +1072,6 @@ var coinABI = [
1011
1072
  { type: "error", inputs: [], name: "InvalidInitialization" },
1012
1073
  { type: "error", inputs: [], name: "InvalidMarketType" },
1013
1074
  { type: "error", inputs: [], name: "InvalidPoolVersion" },
1014
- { type: "error", inputs: [], name: "InvalidPoolVersion" },
1015
1075
  {
1016
1076
  type: "error",
1017
1077
  inputs: [
@@ -1056,220 +1116,1798 @@ var coinABI = [
1056
1116
  { type: "error", inputs: [], name: "SlippageBoundsExceeded" },
1057
1117
  { type: "error", inputs: [], name: "UseRevokeOwnershipToRemoveSelf" }
1058
1118
  ];
1059
- var iUniswapV3PoolABI = [
1119
+ var coinV4ABI = [
1060
1120
  {
1061
- type: "function",
1062
- inputs: [
1063
- { name: "tickLower", internalType: "int24", type: "int24" },
1064
- { name: "tickUpper", internalType: "int24", type: "int24" },
1065
- { name: "amount", internalType: "uint128", type: "uint128" }
1066
- ],
1067
- name: "burn",
1068
- outputs: [
1069
- { name: "amount0", internalType: "uint256", type: "uint256" },
1070
- { name: "amount1", internalType: "uint256", type: "uint256" }
1071
- ],
1072
- stateMutability: "nonpayable"
1073
- },
1074
- {
1075
- type: "function",
1121
+ type: "constructor",
1076
1122
  inputs: [
1077
- { name: "recipient", internalType: "address", type: "address" },
1078
- { name: "tickLower", internalType: "int24", type: "int24" },
1079
- { name: "tickUpper", internalType: "int24", type: "int24" },
1080
- { name: "amount0Requested", internalType: "uint128", type: "uint128" },
1081
- { name: "amount1Requested", internalType: "uint128", type: "uint128" }
1082
- ],
1083
- name: "collect",
1084
- outputs: [
1085
- { name: "amount0", internalType: "uint128", type: "uint128" },
1086
- { name: "amount1", internalType: "uint128", type: "uint128" }
1123
+ {
1124
+ name: "protocolRewardRecipient_",
1125
+ internalType: "address",
1126
+ type: "address"
1127
+ },
1128
+ { name: "protocolRewards_", internalType: "address", type: "address" },
1129
+ {
1130
+ name: "poolManager_",
1131
+ internalType: "contract IPoolManager",
1132
+ type: "address"
1133
+ },
1134
+ { name: "airlock_", internalType: "address", type: "address" },
1135
+ { name: "hooks_", internalType: "contract IHooks", type: "address" }
1087
1136
  ],
1088
1137
  stateMutability: "nonpayable"
1089
1138
  },
1090
1139
  {
1091
1140
  type: "function",
1092
1141
  inputs: [],
1093
- name: "feeGrowthGlobal0X128",
1094
- outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
1142
+ name: "DOMAIN_SEPARATOR",
1143
+ outputs: [{ name: "", internalType: "bytes32", type: "bytes32" }],
1095
1144
  stateMutability: "view"
1096
1145
  },
1097
1146
  {
1098
1147
  type: "function",
1099
- inputs: [],
1100
- name: "feeGrowthGlobal1X128",
1101
- outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
1102
- stateMutability: "view"
1148
+ inputs: [{ name: "account", internalType: "address", type: "address" }],
1149
+ name: "addOwner",
1150
+ outputs: [],
1151
+ stateMutability: "nonpayable"
1103
1152
  },
1104
1153
  {
1105
1154
  type: "function",
1106
1155
  inputs: [
1107
- { name: "sqrtPriceX96", internalType: "uint160", type: "uint160" }
1156
+ { name: "accounts", internalType: "address[]", type: "address[]" }
1108
1157
  ],
1109
- name: "initialize",
1158
+ name: "addOwners",
1110
1159
  outputs: [],
1111
1160
  stateMutability: "nonpayable"
1112
1161
  },
1113
1162
  {
1114
1163
  type: "function",
1115
- inputs: [
1116
- { name: "recipient", internalType: "address", type: "address" },
1117
- { name: "tickLower", internalType: "int24", type: "int24" },
1118
- { name: "tickUpper", internalType: "int24", type: "int24" },
1119
- { name: "amount", internalType: "uint128", type: "uint128" },
1120
- { name: "data", internalType: "bytes", type: "bytes" }
1121
- ],
1122
- name: "mint",
1123
- outputs: [
1124
- { name: "amount0", internalType: "uint256", type: "uint256" },
1125
- { name: "amount1", internalType: "uint256", type: "uint256" }
1126
- ],
1127
- stateMutability: "nonpayable"
1164
+ inputs: [],
1165
+ name: "airlock",
1166
+ outputs: [{ name: "", internalType: "address", type: "address" }],
1167
+ stateMutability: "view"
1128
1168
  },
1129
1169
  {
1130
1170
  type: "function",
1131
- inputs: [],
1132
- name: "slot0",
1133
- outputs: [
1134
- {
1135
- name: "slot0",
1136
- internalType: "struct IUniswapV3Pool.Slot0",
1137
- type: "tuple",
1138
- components: [
1139
- { name: "sqrtPriceX96", internalType: "uint160", type: "uint160" },
1140
- { name: "tick", internalType: "int24", type: "int24" },
1141
- { name: "observationIndex", internalType: "uint16", type: "uint16" },
1142
- {
1143
- name: "observationCardinality",
1144
- internalType: "uint16",
1145
- type: "uint16"
1146
- },
1147
- {
1148
- name: "observationCardinalityNext",
1149
- internalType: "uint16",
1150
- type: "uint16"
1151
- },
1152
- { name: "feeProtocol", internalType: "uint8", type: "uint8" },
1153
- { name: "unlocked", internalType: "bool", type: "bool" }
1154
- ]
1155
- }
1171
+ inputs: [
1172
+ { name: "owner", internalType: "address", type: "address" },
1173
+ { name: "spender", internalType: "address", type: "address" }
1156
1174
  ],
1175
+ name: "allowance",
1176
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
1157
1177
  stateMutability: "view"
1158
1178
  },
1159
1179
  {
1160
1180
  type: "function",
1161
1181
  inputs: [
1162
- { name: "recipient", internalType: "address", type: "address" },
1163
- { name: "zeroForOne", internalType: "bool", type: "bool" },
1164
- { name: "amountSpecified", internalType: "int256", type: "int256" },
1165
- { name: "sqrtPriceLimitX96", internalType: "uint160", type: "uint160" },
1166
- { name: "data", internalType: "bytes", type: "bytes" }
1167
- ],
1168
- name: "swap",
1169
- outputs: [
1170
- { name: "amount0", internalType: "int256", type: "int256" },
1171
- { name: "amount1", internalType: "int256", type: "int256" }
1182
+ { name: "spender", internalType: "address", type: "address" },
1183
+ { name: "value", internalType: "uint256", type: "uint256" }
1172
1184
  ],
1185
+ name: "approve",
1186
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
1173
1187
  stateMutability: "nonpayable"
1174
1188
  },
1175
1189
  {
1176
1190
  type: "function",
1177
- inputs: [],
1178
- name: "token0",
1179
- outputs: [{ name: "", internalType: "address", type: "address" }],
1180
- stateMutability: "nonpayable"
1191
+ inputs: [{ name: "account", internalType: "address", type: "address" }],
1192
+ name: "balanceOf",
1193
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
1194
+ stateMutability: "view"
1181
1195
  },
1182
1196
  {
1183
1197
  type: "function",
1184
- inputs: [],
1185
- name: "token1",
1186
- outputs: [{ name: "", internalType: "address", type: "address" }],
1187
- stateMutability: "nonpayable"
1188
- }
1189
- ];
1190
- var zoraFactoryImplABI = [
1191
- {
1192
- type: "constructor",
1193
- inputs: [{ name: "_coinImpl", internalType: "address", type: "address" }],
1198
+ inputs: [{ name: "amount", internalType: "uint256", type: "uint256" }],
1199
+ name: "burn",
1200
+ outputs: [],
1194
1201
  stateMutability: "nonpayable"
1195
1202
  },
1196
1203
  {
1197
1204
  type: "function",
1198
1205
  inputs: [],
1199
- name: "UPGRADE_INTERFACE_VERSION",
1206
+ name: "contractURI",
1200
1207
  outputs: [{ name: "", internalType: "string", type: "string" }],
1201
1208
  stateMutability: "view"
1202
1209
  },
1203
1210
  {
1204
1211
  type: "function",
1205
1212
  inputs: [],
1206
- name: "coinImpl",
1213
+ name: "contractVersion",
1214
+ outputs: [{ name: "", internalType: "string", type: "string" }],
1215
+ stateMutability: "pure"
1216
+ },
1217
+ {
1218
+ type: "function",
1219
+ inputs: [],
1220
+ name: "currency",
1207
1221
  outputs: [{ name: "", internalType: "address", type: "address" }],
1208
1222
  stateMutability: "view"
1209
1223
  },
1210
1224
  {
1211
1225
  type: "function",
1212
1226
  inputs: [],
1213
- name: "contractName",
1214
- outputs: [{ name: "", internalType: "string", type: "string" }],
1215
- stateMutability: "pure"
1227
+ name: "decimals",
1228
+ outputs: [{ name: "", internalType: "uint8", type: "uint8" }],
1229
+ stateMutability: "view"
1216
1230
  },
1217
1231
  {
1218
1232
  type: "function",
1219
1233
  inputs: [],
1220
- name: "contractVersion",
1221
- outputs: [{ name: "", internalType: "string", type: "string" }],
1222
- stateMutability: "pure"
1234
+ name: "dopplerFeeRecipient",
1235
+ outputs: [{ name: "", internalType: "address", type: "address" }],
1236
+ stateMutability: "view"
1223
1237
  },
1224
1238
  {
1225
1239
  type: "function",
1226
- inputs: [
1227
- { name: "payoutRecipient", internalType: "address", type: "address" },
1228
- { name: "owners", internalType: "address[]", type: "address[]" },
1229
- { name: "uri", internalType: "string", type: "string" },
1230
- { name: "name", internalType: "string", type: "string" },
1231
- { name: "symbol", internalType: "string", type: "string" },
1232
- { name: "platformReferrer", internalType: "address", type: "address" },
1233
- { name: "currency", internalType: "address", type: "address" },
1234
- { name: "tickLower", internalType: "int24", type: "int24" },
1235
- { name: "orderSize", internalType: "uint256", type: "uint256" }
1236
- ],
1237
- name: "deploy",
1240
+ inputs: [],
1241
+ name: "eip712Domain",
1238
1242
  outputs: [
1239
- { name: "", internalType: "address", type: "address" },
1240
- { name: "", internalType: "uint256", type: "uint256" }
1243
+ { name: "fields", internalType: "bytes1", type: "bytes1" },
1244
+ { name: "name", internalType: "string", type: "string" },
1245
+ { name: "version", internalType: "string", type: "string" },
1246
+ { name: "chainId", internalType: "uint256", type: "uint256" },
1247
+ { name: "verifyingContract", internalType: "address", type: "address" },
1248
+ { name: "salt", internalType: "bytes32", type: "bytes32" },
1249
+ { name: "extensions", internalType: "uint256[]", type: "uint256[]" }
1241
1250
  ],
1242
- stateMutability: "payable"
1251
+ stateMutability: "view"
1243
1252
  },
1244
1253
  {
1245
1254
  type: "function",
1246
1255
  inputs: [
1247
- { name: "payoutRecipient", internalType: "address", type: "address" },
1248
- { name: "owners", internalType: "address[]", type: "address[]" },
1249
- { name: "uri", internalType: "string", type: "string" },
1250
- { name: "name", internalType: "string", type: "string" },
1251
- { name: "symbol", internalType: "string", type: "string" },
1252
- { name: "poolConfig", internalType: "bytes", type: "bytes" },
1253
- { name: "platformReferrer", internalType: "address", type: "address" },
1254
- { name: "orderSize", internalType: "uint256", type: "uint256" }
1256
+ {
1257
+ name: "coinVersionLookup",
1258
+ internalType: "contract IDeployedCoinVersionLookup",
1259
+ type: "address"
1260
+ }
1255
1261
  ],
1256
- name: "deploy",
1262
+ name: "getPayoutSwapPath",
1257
1263
  outputs: [
1258
- { name: "", internalType: "address", type: "address" },
1259
- { name: "", internalType: "uint256", type: "uint256" }
1264
+ {
1265
+ name: "payoutSwapPath",
1266
+ internalType: "struct IHasSwapPath.PayoutSwapPath",
1267
+ type: "tuple",
1268
+ components: [
1269
+ {
1270
+ name: "path",
1271
+ internalType: "struct PathKey[]",
1272
+ type: "tuple[]",
1273
+ components: [
1274
+ {
1275
+ name: "intermediateCurrency",
1276
+ internalType: "Currency",
1277
+ type: "address"
1278
+ },
1279
+ { name: "fee", internalType: "uint24", type: "uint24" },
1280
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
1281
+ {
1282
+ name: "hooks",
1283
+ internalType: "contract IHooks",
1284
+ type: "address"
1285
+ },
1286
+ { name: "hookData", internalType: "bytes", type: "bytes" }
1287
+ ]
1288
+ },
1289
+ { name: "currencyIn", internalType: "Currency", type: "address" }
1290
+ ]
1291
+ }
1260
1292
  ],
1261
- stateMutability: "payable"
1293
+ stateMutability: "view"
1262
1294
  },
1263
1295
  {
1264
1296
  type: "function",
1265
- inputs: [
1266
- { name: "payoutRecipient", internalType: "address", type: "address" },
1267
- { name: "owners", internalType: "address[]", type: "address[]" },
1268
- { name: "uri", internalType: "string", type: "string" },
1269
- { name: "name", internalType: "string", type: "string" },
1270
- { name: "symbol", internalType: "string", type: "string" },
1271
- { name: "poolConfig", internalType: "bytes", type: "bytes" },
1272
- { name: "platformReferrer", internalType: "address", type: "address" },
1297
+ inputs: [],
1298
+ name: "getPoolConfiguration",
1299
+ outputs: [
1300
+ {
1301
+ name: "",
1302
+ internalType: "struct PoolConfiguration",
1303
+ type: "tuple",
1304
+ components: [
1305
+ { name: "version", internalType: "uint8", type: "uint8" },
1306
+ { name: "numPositions", internalType: "uint16", type: "uint16" },
1307
+ { name: "fee", internalType: "uint24", type: "uint24" },
1308
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
1309
+ {
1310
+ name: "numDiscoveryPositions",
1311
+ internalType: "uint16[]",
1312
+ type: "uint16[]"
1313
+ },
1314
+ { name: "tickLower", internalType: "int24[]", type: "int24[]" },
1315
+ { name: "tickUpper", internalType: "int24[]", type: "int24[]" },
1316
+ {
1317
+ name: "maxDiscoverySupplyShare",
1318
+ internalType: "uint256[]",
1319
+ type: "uint256[]"
1320
+ }
1321
+ ]
1322
+ }
1323
+ ],
1324
+ stateMutability: "view"
1325
+ },
1326
+ {
1327
+ type: "function",
1328
+ inputs: [],
1329
+ name: "getPoolKey",
1330
+ outputs: [
1331
+ {
1332
+ name: "",
1333
+ internalType: "struct PoolKey",
1334
+ type: "tuple",
1335
+ components: [
1336
+ { name: "currency0", internalType: "Currency", type: "address" },
1337
+ { name: "currency1", internalType: "Currency", type: "address" },
1338
+ { name: "fee", internalType: "uint24", type: "uint24" },
1339
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
1340
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
1341
+ ]
1342
+ }
1343
+ ],
1344
+ stateMutability: "view"
1345
+ },
1346
+ {
1347
+ type: "function",
1348
+ inputs: [],
1349
+ name: "hooks",
1350
+ outputs: [{ name: "", internalType: "contract IHooks", type: "address" }],
1351
+ stateMutability: "view"
1352
+ },
1353
+ {
1354
+ type: "function",
1355
+ inputs: [
1356
+ { name: "payoutRecipient_", internalType: "address", type: "address" },
1357
+ { name: "owners_", internalType: "address[]", type: "address[]" },
1358
+ { name: "tokenURI_", internalType: "string", type: "string" },
1359
+ { name: "name_", internalType: "string", type: "string" },
1360
+ { name: "symbol_", internalType: "string", type: "string" },
1361
+ { name: "platformReferrer_", internalType: "address", type: "address" },
1362
+ { name: "currency_", internalType: "address", type: "address" },
1363
+ {
1364
+ name: "poolKey_",
1365
+ internalType: "struct PoolKey",
1366
+ type: "tuple",
1367
+ components: [
1368
+ { name: "currency0", internalType: "Currency", type: "address" },
1369
+ { name: "currency1", internalType: "Currency", type: "address" },
1370
+ { name: "fee", internalType: "uint24", type: "uint24" },
1371
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
1372
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
1373
+ ]
1374
+ },
1375
+ { name: "sqrtPriceX96", internalType: "uint160", type: "uint160" },
1376
+ {
1377
+ name: "poolConfiguration_",
1378
+ internalType: "struct PoolConfiguration",
1379
+ type: "tuple",
1380
+ components: [
1381
+ { name: "version", internalType: "uint8", type: "uint8" },
1382
+ { name: "numPositions", internalType: "uint16", type: "uint16" },
1383
+ { name: "fee", internalType: "uint24", type: "uint24" },
1384
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
1385
+ {
1386
+ name: "numDiscoveryPositions",
1387
+ internalType: "uint16[]",
1388
+ type: "uint16[]"
1389
+ },
1390
+ { name: "tickLower", internalType: "int24[]", type: "int24[]" },
1391
+ { name: "tickUpper", internalType: "int24[]", type: "int24[]" },
1392
+ {
1393
+ name: "maxDiscoverySupplyShare",
1394
+ internalType: "uint256[]",
1395
+ type: "uint256[]"
1396
+ }
1397
+ ]
1398
+ }
1399
+ ],
1400
+ name: "initialize",
1401
+ outputs: [],
1402
+ stateMutability: "nonpayable"
1403
+ },
1404
+ {
1405
+ type: "function",
1406
+ inputs: [{ name: "account", internalType: "address", type: "address" }],
1407
+ name: "isOwner",
1408
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
1409
+ stateMutability: "view"
1410
+ },
1411
+ {
1412
+ type: "function",
1413
+ inputs: [],
1414
+ name: "name",
1415
+ outputs: [{ name: "", internalType: "string", type: "string" }],
1416
+ stateMutability: "view"
1417
+ },
1418
+ {
1419
+ type: "function",
1420
+ inputs: [{ name: "owner", internalType: "address", type: "address" }],
1421
+ name: "nonces",
1422
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
1423
+ stateMutability: "view"
1424
+ },
1425
+ {
1426
+ type: "function",
1427
+ inputs: [],
1428
+ name: "owners",
1429
+ outputs: [{ name: "", internalType: "address[]", type: "address[]" }],
1430
+ stateMutability: "view"
1431
+ },
1432
+ {
1433
+ type: "function",
1434
+ inputs: [],
1435
+ name: "payoutRecipient",
1436
+ outputs: [{ name: "", internalType: "address", type: "address" }],
1437
+ stateMutability: "view"
1438
+ },
1439
+ {
1440
+ type: "function",
1441
+ inputs: [
1442
+ { name: "owner", internalType: "address", type: "address" },
1443
+ { name: "spender", internalType: "address", type: "address" },
1444
+ { name: "value", internalType: "uint256", type: "uint256" },
1445
+ { name: "deadline", internalType: "uint256", type: "uint256" },
1446
+ { name: "v", internalType: "uint8", type: "uint8" },
1447
+ { name: "r", internalType: "bytes32", type: "bytes32" },
1448
+ { name: "s", internalType: "bytes32", type: "bytes32" }
1449
+ ],
1450
+ name: "permit",
1451
+ outputs: [],
1452
+ stateMutability: "nonpayable"
1453
+ },
1454
+ {
1455
+ type: "function",
1456
+ inputs: [],
1457
+ name: "platformReferrer",
1458
+ outputs: [{ name: "", internalType: "address", type: "address" }],
1459
+ stateMutability: "view"
1460
+ },
1461
+ {
1462
+ type: "function",
1463
+ inputs: [],
1464
+ name: "poolManager",
1465
+ outputs: [
1466
+ { name: "", internalType: "contract IPoolManager", type: "address" }
1467
+ ],
1468
+ stateMutability: "view"
1469
+ },
1470
+ {
1471
+ type: "function",
1472
+ inputs: [],
1473
+ name: "protocolRewardRecipient",
1474
+ outputs: [{ name: "", internalType: "address", type: "address" }],
1475
+ stateMutability: "view"
1476
+ },
1477
+ {
1478
+ type: "function",
1479
+ inputs: [],
1480
+ name: "protocolRewards",
1481
+ outputs: [{ name: "", internalType: "address", type: "address" }],
1482
+ stateMutability: "view"
1483
+ },
1484
+ {
1485
+ type: "function",
1486
+ inputs: [{ name: "account", internalType: "address", type: "address" }],
1487
+ name: "removeOwner",
1488
+ outputs: [],
1489
+ stateMutability: "nonpayable"
1490
+ },
1491
+ {
1492
+ type: "function",
1493
+ inputs: [
1494
+ { name: "accounts", internalType: "address[]", type: "address[]" }
1495
+ ],
1496
+ name: "removeOwners",
1497
+ outputs: [],
1498
+ stateMutability: "nonpayable"
1499
+ },
1500
+ {
1501
+ type: "function",
1502
+ inputs: [],
1503
+ name: "revokeOwnership",
1504
+ outputs: [],
1505
+ stateMutability: "nonpayable"
1506
+ },
1507
+ {
1508
+ type: "function",
1509
+ inputs: [{ name: "newURI", internalType: "string", type: "string" }],
1510
+ name: "setContractURI",
1511
+ outputs: [],
1512
+ stateMutability: "nonpayable"
1513
+ },
1514
+ {
1515
+ type: "function",
1516
+ inputs: [
1517
+ { name: "newPayoutRecipient", internalType: "address", type: "address" }
1518
+ ],
1519
+ name: "setPayoutRecipient",
1520
+ outputs: [],
1521
+ stateMutability: "nonpayable"
1522
+ },
1523
+ {
1524
+ type: "function",
1525
+ inputs: [{ name: "interfaceId", internalType: "bytes4", type: "bytes4" }],
1526
+ name: "supportsInterface",
1527
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
1528
+ stateMutability: "pure"
1529
+ },
1530
+ {
1531
+ type: "function",
1532
+ inputs: [],
1533
+ name: "symbol",
1534
+ outputs: [{ name: "", internalType: "string", type: "string" }],
1535
+ stateMutability: "view"
1536
+ },
1537
+ {
1538
+ type: "function",
1539
+ inputs: [],
1540
+ name: "tokenURI",
1541
+ outputs: [{ name: "", internalType: "string", type: "string" }],
1542
+ stateMutability: "view"
1543
+ },
1544
+ {
1545
+ type: "function",
1546
+ inputs: [],
1547
+ name: "totalSupply",
1548
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
1549
+ stateMutability: "view"
1550
+ },
1551
+ {
1552
+ type: "function",
1553
+ inputs: [
1554
+ { name: "to", internalType: "address", type: "address" },
1555
+ { name: "value", internalType: "uint256", type: "uint256" }
1556
+ ],
1557
+ name: "transfer",
1558
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
1559
+ stateMutability: "nonpayable"
1560
+ },
1561
+ {
1562
+ type: "function",
1563
+ inputs: [
1564
+ { name: "from", internalType: "address", type: "address" },
1565
+ { name: "to", internalType: "address", type: "address" },
1566
+ { name: "value", internalType: "uint256", type: "uint256" }
1567
+ ],
1568
+ name: "transferFrom",
1569
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
1570
+ stateMutability: "nonpayable"
1571
+ },
1572
+ {
1573
+ type: "event",
1574
+ anonymous: false,
1575
+ inputs: [
1576
+ {
1577
+ name: "owner",
1578
+ internalType: "address",
1579
+ type: "address",
1580
+ indexed: true
1581
+ },
1582
+ {
1583
+ name: "spender",
1584
+ internalType: "address",
1585
+ type: "address",
1586
+ indexed: true
1587
+ },
1588
+ {
1589
+ name: "value",
1590
+ internalType: "uint256",
1591
+ type: "uint256",
1592
+ indexed: false
1593
+ }
1594
+ ],
1595
+ name: "Approval"
1596
+ },
1597
+ {
1598
+ type: "event",
1599
+ anonymous: false,
1600
+ inputs: [
1601
+ {
1602
+ name: "buyer",
1603
+ internalType: "address",
1604
+ type: "address",
1605
+ indexed: true
1606
+ },
1607
+ {
1608
+ name: "recipient",
1609
+ internalType: "address",
1610
+ type: "address",
1611
+ indexed: true
1612
+ },
1613
+ {
1614
+ name: "tradeReferrer",
1615
+ internalType: "address",
1616
+ type: "address",
1617
+ indexed: true
1618
+ },
1619
+ {
1620
+ name: "coinsPurchased",
1621
+ internalType: "uint256",
1622
+ type: "uint256",
1623
+ indexed: false
1624
+ },
1625
+ {
1626
+ name: "currency",
1627
+ internalType: "address",
1628
+ type: "address",
1629
+ indexed: false
1630
+ },
1631
+ {
1632
+ name: "amountFee",
1633
+ internalType: "uint256",
1634
+ type: "uint256",
1635
+ indexed: false
1636
+ },
1637
+ {
1638
+ name: "amountSold",
1639
+ internalType: "uint256",
1640
+ type: "uint256",
1641
+ indexed: false
1642
+ }
1643
+ ],
1644
+ name: "CoinBuy"
1645
+ },
1646
+ {
1647
+ type: "event",
1648
+ anonymous: false,
1649
+ inputs: [
1650
+ {
1651
+ name: "payoutRecipient",
1652
+ internalType: "address",
1653
+ type: "address",
1654
+ indexed: true
1655
+ },
1656
+ {
1657
+ name: "platformReferrer",
1658
+ internalType: "address",
1659
+ type: "address",
1660
+ indexed: true
1661
+ },
1662
+ {
1663
+ name: "protocolRewardRecipient",
1664
+ internalType: "address",
1665
+ type: "address",
1666
+ indexed: false
1667
+ },
1668
+ {
1669
+ name: "currency",
1670
+ internalType: "address",
1671
+ type: "address",
1672
+ indexed: false
1673
+ },
1674
+ {
1675
+ name: "marketRewards",
1676
+ internalType: "struct ICoin.MarketRewards",
1677
+ type: "tuple",
1678
+ components: [
1679
+ {
1680
+ name: "totalAmountCurrency",
1681
+ internalType: "uint256",
1682
+ type: "uint256"
1683
+ },
1684
+ { name: "totalAmountCoin", internalType: "uint256", type: "uint256" },
1685
+ {
1686
+ name: "creatorPayoutAmountCurrency",
1687
+ internalType: "uint256",
1688
+ type: "uint256"
1689
+ },
1690
+ {
1691
+ name: "creatorPayoutAmountCoin",
1692
+ internalType: "uint256",
1693
+ type: "uint256"
1694
+ },
1695
+ {
1696
+ name: "platformReferrerAmountCurrency",
1697
+ internalType: "uint256",
1698
+ type: "uint256"
1699
+ },
1700
+ {
1701
+ name: "platformReferrerAmountCoin",
1702
+ internalType: "uint256",
1703
+ type: "uint256"
1704
+ },
1705
+ {
1706
+ name: "protocolAmountCurrency",
1707
+ internalType: "uint256",
1708
+ type: "uint256"
1709
+ },
1710
+ {
1711
+ name: "protocolAmountCoin",
1712
+ internalType: "uint256",
1713
+ type: "uint256"
1714
+ }
1715
+ ],
1716
+ indexed: false
1717
+ }
1718
+ ],
1719
+ name: "CoinMarketRewards"
1720
+ },
1721
+ {
1722
+ type: "event",
1723
+ anonymous: false,
1724
+ inputs: [
1725
+ {
1726
+ name: "caller",
1727
+ internalType: "address",
1728
+ type: "address",
1729
+ indexed: true
1730
+ },
1731
+ {
1732
+ name: "prevRecipient",
1733
+ internalType: "address",
1734
+ type: "address",
1735
+ indexed: true
1736
+ },
1737
+ {
1738
+ name: "newRecipient",
1739
+ internalType: "address",
1740
+ type: "address",
1741
+ indexed: true
1742
+ }
1743
+ ],
1744
+ name: "CoinPayoutRecipientUpdated"
1745
+ },
1746
+ {
1747
+ type: "event",
1748
+ anonymous: false,
1749
+ inputs: [
1750
+ {
1751
+ name: "seller",
1752
+ internalType: "address",
1753
+ type: "address",
1754
+ indexed: true
1755
+ },
1756
+ {
1757
+ name: "recipient",
1758
+ internalType: "address",
1759
+ type: "address",
1760
+ indexed: true
1761
+ },
1762
+ {
1763
+ name: "tradeReferrer",
1764
+ internalType: "address",
1765
+ type: "address",
1766
+ indexed: true
1767
+ },
1768
+ {
1769
+ name: "coinsSold",
1770
+ internalType: "uint256",
1771
+ type: "uint256",
1772
+ indexed: false
1773
+ },
1774
+ {
1775
+ name: "currency",
1776
+ internalType: "address",
1777
+ type: "address",
1778
+ indexed: false
1779
+ },
1780
+ {
1781
+ name: "amountFee",
1782
+ internalType: "uint256",
1783
+ type: "uint256",
1784
+ indexed: false
1785
+ },
1786
+ {
1787
+ name: "amountPurchased",
1788
+ internalType: "uint256",
1789
+ type: "uint256",
1790
+ indexed: false
1791
+ }
1792
+ ],
1793
+ name: "CoinSell"
1794
+ },
1795
+ {
1796
+ type: "event",
1797
+ anonymous: false,
1798
+ inputs: [
1799
+ {
1800
+ name: "payoutRecipient",
1801
+ internalType: "address",
1802
+ type: "address",
1803
+ indexed: true
1804
+ },
1805
+ {
1806
+ name: "platformReferrer",
1807
+ internalType: "address",
1808
+ type: "address",
1809
+ indexed: true
1810
+ },
1811
+ {
1812
+ name: "tradeReferrer",
1813
+ internalType: "address",
1814
+ type: "address",
1815
+ indexed: true
1816
+ },
1817
+ {
1818
+ name: "protocolRewardRecipient",
1819
+ internalType: "address",
1820
+ type: "address",
1821
+ indexed: false
1822
+ },
1823
+ {
1824
+ name: "creatorReward",
1825
+ internalType: "uint256",
1826
+ type: "uint256",
1827
+ indexed: false
1828
+ },
1829
+ {
1830
+ name: "platformReferrerReward",
1831
+ internalType: "uint256",
1832
+ type: "uint256",
1833
+ indexed: false
1834
+ },
1835
+ {
1836
+ name: "traderReferrerReward",
1837
+ internalType: "uint256",
1838
+ type: "uint256",
1839
+ indexed: false
1840
+ },
1841
+ {
1842
+ name: "protocolReward",
1843
+ internalType: "uint256",
1844
+ type: "uint256",
1845
+ indexed: false
1846
+ },
1847
+ {
1848
+ name: "currency",
1849
+ internalType: "address",
1850
+ type: "address",
1851
+ indexed: false
1852
+ }
1853
+ ],
1854
+ name: "CoinTradeRewards"
1855
+ },
1856
+ {
1857
+ type: "event",
1858
+ anonymous: false,
1859
+ inputs: [
1860
+ {
1861
+ name: "sender",
1862
+ internalType: "address",
1863
+ type: "address",
1864
+ indexed: true
1865
+ },
1866
+ {
1867
+ name: "recipient",
1868
+ internalType: "address",
1869
+ type: "address",
1870
+ indexed: true
1871
+ },
1872
+ {
1873
+ name: "amount",
1874
+ internalType: "uint256",
1875
+ type: "uint256",
1876
+ indexed: false
1877
+ },
1878
+ {
1879
+ name: "senderBalance",
1880
+ internalType: "uint256",
1881
+ type: "uint256",
1882
+ indexed: false
1883
+ },
1884
+ {
1885
+ name: "recipientBalance",
1886
+ internalType: "uint256",
1887
+ type: "uint256",
1888
+ indexed: false
1889
+ }
1890
+ ],
1891
+ name: "CoinTransfer"
1892
+ },
1893
+ {
1894
+ type: "event",
1895
+ anonymous: false,
1896
+ inputs: [
1897
+ {
1898
+ name: "caller",
1899
+ internalType: "address",
1900
+ type: "address",
1901
+ indexed: true
1902
+ },
1903
+ {
1904
+ name: "newURI",
1905
+ internalType: "string",
1906
+ type: "string",
1907
+ indexed: false
1908
+ },
1909
+ { name: "name", internalType: "string", type: "string", indexed: false }
1910
+ ],
1911
+ name: "ContractMetadataUpdated"
1912
+ },
1913
+ { type: "event", anonymous: false, inputs: [], name: "ContractURIUpdated" },
1914
+ { type: "event", anonymous: false, inputs: [], name: "EIP712DomainChanged" },
1915
+ {
1916
+ type: "event",
1917
+ anonymous: false,
1918
+ inputs: [
1919
+ {
1920
+ name: "version",
1921
+ internalType: "uint64",
1922
+ type: "uint64",
1923
+ indexed: false
1924
+ }
1925
+ ],
1926
+ name: "Initialized"
1927
+ },
1928
+ {
1929
+ type: "event",
1930
+ anonymous: false,
1931
+ inputs: [
1932
+ {
1933
+ name: "caller",
1934
+ internalType: "address",
1935
+ type: "address",
1936
+ indexed: true
1937
+ },
1938
+ {
1939
+ name: "prevOwner",
1940
+ internalType: "address",
1941
+ type: "address",
1942
+ indexed: true
1943
+ },
1944
+ {
1945
+ name: "newOwner",
1946
+ internalType: "address",
1947
+ type: "address",
1948
+ indexed: true
1949
+ }
1950
+ ],
1951
+ name: "OwnerUpdated"
1952
+ },
1953
+ {
1954
+ type: "event",
1955
+ anonymous: false,
1956
+ inputs: [
1957
+ { name: "from", internalType: "address", type: "address", indexed: true },
1958
+ { name: "to", internalType: "address", type: "address", indexed: true },
1959
+ {
1960
+ name: "value",
1961
+ internalType: "uint256",
1962
+ type: "uint256",
1963
+ indexed: false
1964
+ }
1965
+ ],
1966
+ name: "Transfer"
1967
+ },
1968
+ { type: "error", inputs: [], name: "AddressZero" },
1969
+ { type: "error", inputs: [], name: "AlreadyOwner" },
1970
+ { type: "error", inputs: [], name: "CannotMintZeroLiquidity" },
1971
+ {
1972
+ type: "error",
1973
+ inputs: [],
1974
+ name: "DopplerPoolMustHaveMoreThan2DiscoveryPositions"
1975
+ },
1976
+ { type: "error", inputs: [], name: "ECDSAInvalidSignature" },
1977
+ {
1978
+ type: "error",
1979
+ inputs: [{ name: "length", internalType: "uint256", type: "uint256" }],
1980
+ name: "ECDSAInvalidSignatureLength"
1981
+ },
1982
+ {
1983
+ type: "error",
1984
+ inputs: [{ name: "s", internalType: "bytes32", type: "bytes32" }],
1985
+ name: "ECDSAInvalidSignatureS"
1986
+ },
1987
+ {
1988
+ type: "error",
1989
+ inputs: [
1990
+ { name: "spender", internalType: "address", type: "address" },
1991
+ { name: "allowance", internalType: "uint256", type: "uint256" },
1992
+ { name: "needed", internalType: "uint256", type: "uint256" }
1993
+ ],
1994
+ name: "ERC20InsufficientAllowance"
1995
+ },
1996
+ {
1997
+ type: "error",
1998
+ inputs: [
1999
+ { name: "sender", internalType: "address", type: "address" },
2000
+ { name: "balance", internalType: "uint256", type: "uint256" },
2001
+ { name: "needed", internalType: "uint256", type: "uint256" }
2002
+ ],
2003
+ name: "ERC20InsufficientBalance"
2004
+ },
2005
+ {
2006
+ type: "error",
2007
+ inputs: [{ name: "approver", internalType: "address", type: "address" }],
2008
+ name: "ERC20InvalidApprover"
2009
+ },
2010
+ {
2011
+ type: "error",
2012
+ inputs: [{ name: "receiver", internalType: "address", type: "address" }],
2013
+ name: "ERC20InvalidReceiver"
2014
+ },
2015
+ {
2016
+ type: "error",
2017
+ inputs: [{ name: "sender", internalType: "address", type: "address" }],
2018
+ name: "ERC20InvalidSender"
2019
+ },
2020
+ {
2021
+ type: "error",
2022
+ inputs: [{ name: "spender", internalType: "address", type: "address" }],
2023
+ name: "ERC20InvalidSpender"
2024
+ },
2025
+ { type: "error", inputs: [], name: "ERC20TransferAmountMismatch" },
2026
+ {
2027
+ type: "error",
2028
+ inputs: [{ name: "deadline", internalType: "uint256", type: "uint256" }],
2029
+ name: "ERC2612ExpiredSignature"
2030
+ },
2031
+ {
2032
+ type: "error",
2033
+ inputs: [
2034
+ { name: "signer", internalType: "address", type: "address" },
2035
+ { name: "owner", internalType: "address", type: "address" }
2036
+ ],
2037
+ name: "ERC2612InvalidSigner"
2038
+ },
2039
+ { type: "error", inputs: [], name: "EthAmountMismatch" },
2040
+ { type: "error", inputs: [], name: "EthAmountTooSmall" },
2041
+ { type: "error", inputs: [], name: "EthTransferFailed" },
2042
+ { type: "error", inputs: [], name: "EthTransferInvalid" },
2043
+ { type: "error", inputs: [], name: "InitialOrderSizeTooLarge" },
2044
+ { type: "error", inputs: [], name: "InsufficientFunds" },
2045
+ { type: "error", inputs: [], name: "InsufficientLiquidity" },
2046
+ {
2047
+ type: "error",
2048
+ inputs: [
2049
+ { name: "account", internalType: "address", type: "address" },
2050
+ { name: "currentNonce", internalType: "uint256", type: "uint256" }
2051
+ ],
2052
+ name: "InvalidAccountNonce"
2053
+ },
2054
+ { type: "error", inputs: [], name: "InvalidCurrencyLowerTick" },
2055
+ { type: "error", inputs: [], name: "InvalidInitialization" },
2056
+ { type: "error", inputs: [], name: "InvalidMarketType" },
2057
+ { type: "error", inputs: [], name: "InvalidPoolVersion" },
2058
+ {
2059
+ type: "error",
2060
+ inputs: [
2061
+ { name: "tickLower", internalType: "int24", type: "int24" },
2062
+ { name: "tickUpper", internalType: "int24", type: "int24" }
2063
+ ],
2064
+ name: "InvalidTickRangeMisordered"
2065
+ },
2066
+ { type: "error", inputs: [], name: "InvalidWethLowerTick" },
2067
+ { type: "error", inputs: [], name: "LegacyPoolMustHaveOneDiscoveryPosition" },
2068
+ { type: "error", inputs: [], name: "MarketAlreadyGraduated" },
2069
+ { type: "error", inputs: [], name: "MarketNotGraduated" },
2070
+ {
2071
+ type: "error",
2072
+ inputs: [
2073
+ { name: "value", internalType: "uint256", type: "uint256" },
2074
+ { name: "limit", internalType: "uint256", type: "uint256" }
2075
+ ],
2076
+ name: "MaxShareToBeSoldExceeded"
2077
+ },
2078
+ { type: "error", inputs: [], name: "NotInitializing" },
2079
+ { type: "error", inputs: [], name: "NotOwner" },
2080
+ { type: "error", inputs: [], name: "NumDiscoveryPositionsOutOfRange" },
2081
+ { type: "error", inputs: [], name: "OneOwnerRequired" },
2082
+ { type: "error", inputs: [], name: "OnlyOwner" },
2083
+ {
2084
+ type: "error",
2085
+ inputs: [
2086
+ { name: "sender", internalType: "address", type: "address" },
2087
+ { name: "pool", internalType: "address", type: "address" }
2088
+ ],
2089
+ name: "OnlyPool"
2090
+ },
2091
+ { type: "error", inputs: [], name: "OnlyWeth" },
2092
+ { type: "error", inputs: [], name: "OwnerCannotBeAddressZero" },
2093
+ { type: "error", inputs: [], name: "ReentrancyGuardReentrantCall" },
2094
+ { type: "error", inputs: [], name: "SlippageBoundsExceeded" },
2095
+ { type: "error", inputs: [], name: "UseRevokeOwnershipToRemoveSelf" }
2096
+ ];
2097
+ var iPermit2ABI = [
2098
+ {
2099
+ type: "function",
2100
+ inputs: [],
2101
+ name: "DOMAIN_SEPARATOR",
2102
+ outputs: [{ name: "", internalType: "bytes32", type: "bytes32" }],
2103
+ stateMutability: "view"
2104
+ },
2105
+ {
2106
+ type: "function",
2107
+ inputs: [
2108
+ { name: "user", internalType: "address", type: "address" },
2109
+ { name: "token", internalType: "address", type: "address" },
2110
+ { name: "spender", internalType: "address", type: "address" }
2111
+ ],
2112
+ name: "allowance",
2113
+ outputs: [
2114
+ { name: "amount", internalType: "uint160", type: "uint160" },
2115
+ { name: "expiration", internalType: "uint48", type: "uint48" },
2116
+ { name: "nonce", internalType: "uint48", type: "uint48" }
2117
+ ],
2118
+ stateMutability: "view"
2119
+ },
2120
+ {
2121
+ type: "function",
2122
+ inputs: [
2123
+ { name: "token", internalType: "address", type: "address" },
2124
+ { name: "spender", internalType: "address", type: "address" },
2125
+ { name: "amount", internalType: "uint160", type: "uint160" },
2126
+ { name: "expiration", internalType: "uint48", type: "uint48" }
2127
+ ],
2128
+ name: "approve",
2129
+ outputs: [],
2130
+ stateMutability: "nonpayable"
2131
+ },
2132
+ {
2133
+ type: "function",
2134
+ inputs: [
2135
+ { name: "token", internalType: "address", type: "address" },
2136
+ { name: "spender", internalType: "address", type: "address" },
2137
+ { name: "newNonce", internalType: "uint48", type: "uint48" }
2138
+ ],
2139
+ name: "invalidateNonces",
2140
+ outputs: [],
2141
+ stateMutability: "nonpayable"
2142
+ },
2143
+ {
2144
+ type: "function",
2145
+ inputs: [
2146
+ { name: "wordPos", internalType: "uint256", type: "uint256" },
2147
+ { name: "mask", internalType: "uint256", type: "uint256" }
2148
+ ],
2149
+ name: "invalidateUnorderedNonces",
2150
+ outputs: [],
2151
+ stateMutability: "nonpayable"
2152
+ },
2153
+ {
2154
+ type: "function",
2155
+ inputs: [
2156
+ {
2157
+ name: "approvals",
2158
+ internalType: "struct IAllowanceTransfer.TokenSpenderPair[]",
2159
+ type: "tuple[]",
2160
+ components: [
2161
+ { name: "token", internalType: "address", type: "address" },
2162
+ { name: "spender", internalType: "address", type: "address" }
2163
+ ]
2164
+ }
2165
+ ],
2166
+ name: "lockdown",
2167
+ outputs: [],
2168
+ stateMutability: "nonpayable"
2169
+ },
2170
+ {
2171
+ type: "function",
2172
+ inputs: [
2173
+ { name: "", internalType: "address", type: "address" },
2174
+ { name: "", internalType: "uint256", type: "uint256" }
2175
+ ],
2176
+ name: "nonceBitmap",
2177
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
2178
+ stateMutability: "view"
2179
+ },
2180
+ {
2181
+ type: "function",
2182
+ inputs: [
2183
+ { name: "owner", internalType: "address", type: "address" },
2184
+ {
2185
+ name: "permitBatch",
2186
+ internalType: "struct IAllowanceTransfer.PermitBatch",
2187
+ type: "tuple",
2188
+ components: [
2189
+ {
2190
+ name: "details",
2191
+ internalType: "struct IAllowanceTransfer.PermitDetails[]",
2192
+ type: "tuple[]",
2193
+ components: [
2194
+ { name: "token", internalType: "address", type: "address" },
2195
+ { name: "amount", internalType: "uint160", type: "uint160" },
2196
+ { name: "expiration", internalType: "uint48", type: "uint48" },
2197
+ { name: "nonce", internalType: "uint48", type: "uint48" }
2198
+ ]
2199
+ },
2200
+ { name: "spender", internalType: "address", type: "address" },
2201
+ { name: "sigDeadline", internalType: "uint256", type: "uint256" }
2202
+ ]
2203
+ },
2204
+ { name: "signature", internalType: "bytes", type: "bytes" }
2205
+ ],
2206
+ name: "permit",
2207
+ outputs: [],
2208
+ stateMutability: "nonpayable"
2209
+ },
2210
+ {
2211
+ type: "function",
2212
+ inputs: [
2213
+ { name: "owner", internalType: "address", type: "address" },
2214
+ {
2215
+ name: "permitSingle",
2216
+ internalType: "struct IAllowanceTransfer.PermitSingle",
2217
+ type: "tuple",
2218
+ components: [
2219
+ {
2220
+ name: "details",
2221
+ internalType: "struct IAllowanceTransfer.PermitDetails",
2222
+ type: "tuple",
2223
+ components: [
2224
+ { name: "token", internalType: "address", type: "address" },
2225
+ { name: "amount", internalType: "uint160", type: "uint160" },
2226
+ { name: "expiration", internalType: "uint48", type: "uint48" },
2227
+ { name: "nonce", internalType: "uint48", type: "uint48" }
2228
+ ]
2229
+ },
2230
+ { name: "spender", internalType: "address", type: "address" },
2231
+ { name: "sigDeadline", internalType: "uint256", type: "uint256" }
2232
+ ]
2233
+ },
2234
+ { name: "signature", internalType: "bytes", type: "bytes" }
2235
+ ],
2236
+ name: "permit",
2237
+ outputs: [],
2238
+ stateMutability: "nonpayable"
2239
+ },
2240
+ {
2241
+ type: "function",
2242
+ inputs: [
2243
+ {
2244
+ name: "permit",
2245
+ internalType: "struct ISignatureTransfer.PermitTransferFrom",
2246
+ type: "tuple",
2247
+ components: [
2248
+ {
2249
+ name: "permitted",
2250
+ internalType: "struct ISignatureTransfer.TokenPermissions",
2251
+ type: "tuple",
2252
+ components: [
2253
+ { name: "token", internalType: "address", type: "address" },
2254
+ { name: "amount", internalType: "uint256", type: "uint256" }
2255
+ ]
2256
+ },
2257
+ { name: "nonce", internalType: "uint256", type: "uint256" },
2258
+ { name: "deadline", internalType: "uint256", type: "uint256" }
2259
+ ]
2260
+ },
2261
+ {
2262
+ name: "transferDetails",
2263
+ internalType: "struct ISignatureTransfer.SignatureTransferDetails",
2264
+ type: "tuple",
2265
+ components: [
2266
+ { name: "to", internalType: "address", type: "address" },
2267
+ { name: "requestedAmount", internalType: "uint256", type: "uint256" }
2268
+ ]
2269
+ },
2270
+ { name: "owner", internalType: "address", type: "address" },
2271
+ { name: "signature", internalType: "bytes", type: "bytes" }
2272
+ ],
2273
+ name: "permitTransferFrom",
2274
+ outputs: [],
2275
+ stateMutability: "nonpayable"
2276
+ },
2277
+ {
2278
+ type: "function",
2279
+ inputs: [
2280
+ {
2281
+ name: "permit",
2282
+ internalType: "struct ISignatureTransfer.PermitBatchTransferFrom",
2283
+ type: "tuple",
2284
+ components: [
2285
+ {
2286
+ name: "permitted",
2287
+ internalType: "struct ISignatureTransfer.TokenPermissions[]",
2288
+ type: "tuple[]",
2289
+ components: [
2290
+ { name: "token", internalType: "address", type: "address" },
2291
+ { name: "amount", internalType: "uint256", type: "uint256" }
2292
+ ]
2293
+ },
2294
+ { name: "nonce", internalType: "uint256", type: "uint256" },
2295
+ { name: "deadline", internalType: "uint256", type: "uint256" }
2296
+ ]
2297
+ },
2298
+ {
2299
+ name: "transferDetails",
2300
+ internalType: "struct ISignatureTransfer.SignatureTransferDetails[]",
2301
+ type: "tuple[]",
2302
+ components: [
2303
+ { name: "to", internalType: "address", type: "address" },
2304
+ { name: "requestedAmount", internalType: "uint256", type: "uint256" }
2305
+ ]
2306
+ },
2307
+ { name: "owner", internalType: "address", type: "address" },
2308
+ { name: "signature", internalType: "bytes", type: "bytes" }
2309
+ ],
2310
+ name: "permitTransferFrom",
2311
+ outputs: [],
2312
+ stateMutability: "nonpayable"
2313
+ },
2314
+ {
2315
+ type: "function",
2316
+ inputs: [
2317
+ {
2318
+ name: "permit",
2319
+ internalType: "struct ISignatureTransfer.PermitTransferFrom",
2320
+ type: "tuple",
2321
+ components: [
2322
+ {
2323
+ name: "permitted",
2324
+ internalType: "struct ISignatureTransfer.TokenPermissions",
2325
+ type: "tuple",
2326
+ components: [
2327
+ { name: "token", internalType: "address", type: "address" },
2328
+ { name: "amount", internalType: "uint256", type: "uint256" }
2329
+ ]
2330
+ },
2331
+ { name: "nonce", internalType: "uint256", type: "uint256" },
2332
+ { name: "deadline", internalType: "uint256", type: "uint256" }
2333
+ ]
2334
+ },
2335
+ {
2336
+ name: "transferDetails",
2337
+ internalType: "struct ISignatureTransfer.SignatureTransferDetails",
2338
+ type: "tuple",
2339
+ components: [
2340
+ { name: "to", internalType: "address", type: "address" },
2341
+ { name: "requestedAmount", internalType: "uint256", type: "uint256" }
2342
+ ]
2343
+ },
2344
+ { name: "owner", internalType: "address", type: "address" },
2345
+ { name: "witness", internalType: "bytes32", type: "bytes32" },
2346
+ { name: "witnessTypeString", internalType: "string", type: "string" },
2347
+ { name: "signature", internalType: "bytes", type: "bytes" }
2348
+ ],
2349
+ name: "permitWitnessTransferFrom",
2350
+ outputs: [],
2351
+ stateMutability: "nonpayable"
2352
+ },
2353
+ {
2354
+ type: "function",
2355
+ inputs: [
2356
+ {
2357
+ name: "permit",
2358
+ internalType: "struct ISignatureTransfer.PermitBatchTransferFrom",
2359
+ type: "tuple",
2360
+ components: [
2361
+ {
2362
+ name: "permitted",
2363
+ internalType: "struct ISignatureTransfer.TokenPermissions[]",
2364
+ type: "tuple[]",
2365
+ components: [
2366
+ { name: "token", internalType: "address", type: "address" },
2367
+ { name: "amount", internalType: "uint256", type: "uint256" }
2368
+ ]
2369
+ },
2370
+ { name: "nonce", internalType: "uint256", type: "uint256" },
2371
+ { name: "deadline", internalType: "uint256", type: "uint256" }
2372
+ ]
2373
+ },
2374
+ {
2375
+ name: "transferDetails",
2376
+ internalType: "struct ISignatureTransfer.SignatureTransferDetails[]",
2377
+ type: "tuple[]",
2378
+ components: [
2379
+ { name: "to", internalType: "address", type: "address" },
2380
+ { name: "requestedAmount", internalType: "uint256", type: "uint256" }
2381
+ ]
2382
+ },
2383
+ { name: "owner", internalType: "address", type: "address" },
2384
+ { name: "witness", internalType: "bytes32", type: "bytes32" },
2385
+ { name: "witnessTypeString", internalType: "string", type: "string" },
2386
+ { name: "signature", internalType: "bytes", type: "bytes" }
2387
+ ],
2388
+ name: "permitWitnessTransferFrom",
2389
+ outputs: [],
2390
+ stateMutability: "nonpayable"
2391
+ },
2392
+ {
2393
+ type: "function",
2394
+ inputs: [
2395
+ {
2396
+ name: "transferDetails",
2397
+ internalType: "struct IAllowanceTransfer.AllowanceTransferDetails[]",
2398
+ type: "tuple[]",
2399
+ components: [
2400
+ { name: "from", internalType: "address", type: "address" },
2401
+ { name: "to", internalType: "address", type: "address" },
2402
+ { name: "amount", internalType: "uint160", type: "uint160" },
2403
+ { name: "token", internalType: "address", type: "address" }
2404
+ ]
2405
+ }
2406
+ ],
2407
+ name: "transferFrom",
2408
+ outputs: [],
2409
+ stateMutability: "nonpayable"
2410
+ },
2411
+ {
2412
+ type: "function",
2413
+ inputs: [
2414
+ { name: "from", internalType: "address", type: "address" },
2415
+ { name: "to", internalType: "address", type: "address" },
2416
+ { name: "amount", internalType: "uint160", type: "uint160" },
2417
+ { name: "token", internalType: "address", type: "address" }
2418
+ ],
2419
+ name: "transferFrom",
2420
+ outputs: [],
2421
+ stateMutability: "nonpayable"
2422
+ },
2423
+ {
2424
+ type: "event",
2425
+ anonymous: false,
2426
+ inputs: [
2427
+ {
2428
+ name: "owner",
2429
+ internalType: "address",
2430
+ type: "address",
2431
+ indexed: true
2432
+ },
2433
+ {
2434
+ name: "token",
2435
+ internalType: "address",
2436
+ type: "address",
2437
+ indexed: true
2438
+ },
2439
+ {
2440
+ name: "spender",
2441
+ internalType: "address",
2442
+ type: "address",
2443
+ indexed: true
2444
+ },
2445
+ {
2446
+ name: "amount",
2447
+ internalType: "uint160",
2448
+ type: "uint160",
2449
+ indexed: false
2450
+ },
2451
+ {
2452
+ name: "expiration",
2453
+ internalType: "uint48",
2454
+ type: "uint48",
2455
+ indexed: false
2456
+ }
2457
+ ],
2458
+ name: "Approval"
2459
+ },
2460
+ {
2461
+ type: "event",
2462
+ anonymous: false,
2463
+ inputs: [
2464
+ {
2465
+ name: "owner",
2466
+ internalType: "address",
2467
+ type: "address",
2468
+ indexed: true
2469
+ },
2470
+ {
2471
+ name: "token",
2472
+ internalType: "address",
2473
+ type: "address",
2474
+ indexed: false
2475
+ },
2476
+ {
2477
+ name: "spender",
2478
+ internalType: "address",
2479
+ type: "address",
2480
+ indexed: false
2481
+ }
2482
+ ],
2483
+ name: "Lockdown"
2484
+ },
2485
+ {
2486
+ type: "event",
2487
+ anonymous: false,
2488
+ inputs: [
2489
+ {
2490
+ name: "owner",
2491
+ internalType: "address",
2492
+ type: "address",
2493
+ indexed: true
2494
+ },
2495
+ {
2496
+ name: "token",
2497
+ internalType: "address",
2498
+ type: "address",
2499
+ indexed: true
2500
+ },
2501
+ {
2502
+ name: "spender",
2503
+ internalType: "address",
2504
+ type: "address",
2505
+ indexed: true
2506
+ },
2507
+ {
2508
+ name: "newNonce",
2509
+ internalType: "uint48",
2510
+ type: "uint48",
2511
+ indexed: false
2512
+ },
2513
+ {
2514
+ name: "oldNonce",
2515
+ internalType: "uint48",
2516
+ type: "uint48",
2517
+ indexed: false
2518
+ }
2519
+ ],
2520
+ name: "NonceInvalidation"
2521
+ },
2522
+ {
2523
+ type: "event",
2524
+ anonymous: false,
2525
+ inputs: [
2526
+ {
2527
+ name: "owner",
2528
+ internalType: "address",
2529
+ type: "address",
2530
+ indexed: true
2531
+ },
2532
+ {
2533
+ name: "token",
2534
+ internalType: "address",
2535
+ type: "address",
2536
+ indexed: true
2537
+ },
2538
+ {
2539
+ name: "spender",
2540
+ internalType: "address",
2541
+ type: "address",
2542
+ indexed: true
2543
+ },
2544
+ {
2545
+ name: "amount",
2546
+ internalType: "uint160",
2547
+ type: "uint160",
2548
+ indexed: false
2549
+ },
2550
+ {
2551
+ name: "expiration",
2552
+ internalType: "uint48",
2553
+ type: "uint48",
2554
+ indexed: false
2555
+ },
2556
+ { name: "nonce", internalType: "uint48", type: "uint48", indexed: false }
2557
+ ],
2558
+ name: "Permit"
2559
+ },
2560
+ {
2561
+ type: "event",
2562
+ anonymous: false,
2563
+ inputs: [
2564
+ {
2565
+ name: "owner",
2566
+ internalType: "address",
2567
+ type: "address",
2568
+ indexed: true
2569
+ },
2570
+ {
2571
+ name: "word",
2572
+ internalType: "uint256",
2573
+ type: "uint256",
2574
+ indexed: false
2575
+ },
2576
+ {
2577
+ name: "mask",
2578
+ internalType: "uint256",
2579
+ type: "uint256",
2580
+ indexed: false
2581
+ }
2582
+ ],
2583
+ name: "UnorderedNonceInvalidation"
2584
+ },
2585
+ {
2586
+ type: "error",
2587
+ inputs: [{ name: "deadline", internalType: "uint256", type: "uint256" }],
2588
+ name: "AllowanceExpired"
2589
+ },
2590
+ { type: "error", inputs: [], name: "ExcessiveInvalidation" },
2591
+ {
2592
+ type: "error",
2593
+ inputs: [{ name: "amount", internalType: "uint256", type: "uint256" }],
2594
+ name: "InsufficientAllowance"
2595
+ },
2596
+ {
2597
+ type: "error",
2598
+ inputs: [{ name: "maxAmount", internalType: "uint256", type: "uint256" }],
2599
+ name: "InvalidAmount"
2600
+ },
2601
+ { type: "error", inputs: [], name: "LengthMismatch" }
2602
+ ];
2603
+ var iPoolConfigEncodingABI = [
2604
+ {
2605
+ type: "function",
2606
+ inputs: [
2607
+ { name: "version", internalType: "uint8", type: "uint8" },
2608
+ { name: "currency", internalType: "address", type: "address" },
2609
+ { name: "tickLower", internalType: "int24[]", type: "int24[]" },
2610
+ { name: "tickUpper", internalType: "int24[]", type: "int24[]" },
2611
+ {
2612
+ name: "numDiscoveryPositions",
2613
+ internalType: "uint16[]",
2614
+ type: "uint16[]"
2615
+ },
2616
+ {
2617
+ name: "maxDiscoverySupplyShare",
2618
+ internalType: "uint256[]",
2619
+ type: "uint256[]"
2620
+ }
2621
+ ],
2622
+ name: "encodeMultiCurvePoolConfig",
2623
+ outputs: [{ name: "", internalType: "bytes", type: "bytes" }],
2624
+ stateMutability: "pure"
2625
+ }
2626
+ ];
2627
+ var iUniswapV3PoolABI = [
2628
+ {
2629
+ type: "function",
2630
+ inputs: [
2631
+ { name: "tickLower", internalType: "int24", type: "int24" },
2632
+ { name: "tickUpper", internalType: "int24", type: "int24" },
2633
+ { name: "amount", internalType: "uint128", type: "uint128" }
2634
+ ],
2635
+ name: "burn",
2636
+ outputs: [
2637
+ { name: "amount0", internalType: "uint256", type: "uint256" },
2638
+ { name: "amount1", internalType: "uint256", type: "uint256" }
2639
+ ],
2640
+ stateMutability: "nonpayable"
2641
+ },
2642
+ {
2643
+ type: "function",
2644
+ inputs: [
2645
+ { name: "recipient", internalType: "address", type: "address" },
2646
+ { name: "tickLower", internalType: "int24", type: "int24" },
2647
+ { name: "tickUpper", internalType: "int24", type: "int24" },
2648
+ { name: "amount0Requested", internalType: "uint128", type: "uint128" },
2649
+ { name: "amount1Requested", internalType: "uint128", type: "uint128" }
2650
+ ],
2651
+ name: "collect",
2652
+ outputs: [
2653
+ { name: "amount0", internalType: "uint128", type: "uint128" },
2654
+ { name: "amount1", internalType: "uint128", type: "uint128" }
2655
+ ],
2656
+ stateMutability: "nonpayable"
2657
+ },
2658
+ {
2659
+ type: "function",
2660
+ inputs: [],
2661
+ name: "feeGrowthGlobal0X128",
2662
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
2663
+ stateMutability: "view"
2664
+ },
2665
+ {
2666
+ type: "function",
2667
+ inputs: [],
2668
+ name: "feeGrowthGlobal1X128",
2669
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
2670
+ stateMutability: "view"
2671
+ },
2672
+ {
2673
+ type: "function",
2674
+ inputs: [
2675
+ { name: "sqrtPriceX96", internalType: "uint160", type: "uint160" }
2676
+ ],
2677
+ name: "initialize",
2678
+ outputs: [],
2679
+ stateMutability: "nonpayable"
2680
+ },
2681
+ {
2682
+ type: "function",
2683
+ inputs: [
2684
+ { name: "recipient", internalType: "address", type: "address" },
2685
+ { name: "tickLower", internalType: "int24", type: "int24" },
2686
+ { name: "tickUpper", internalType: "int24", type: "int24" },
2687
+ { name: "amount", internalType: "uint128", type: "uint128" },
2688
+ { name: "data", internalType: "bytes", type: "bytes" }
2689
+ ],
2690
+ name: "mint",
2691
+ outputs: [
2692
+ { name: "amount0", internalType: "uint256", type: "uint256" },
2693
+ { name: "amount1", internalType: "uint256", type: "uint256" }
2694
+ ],
2695
+ stateMutability: "nonpayable"
2696
+ },
2697
+ {
2698
+ type: "function",
2699
+ inputs: [],
2700
+ name: "slot0",
2701
+ outputs: [
2702
+ {
2703
+ name: "slot0",
2704
+ internalType: "struct IUniswapV3Pool.Slot0",
2705
+ type: "tuple",
2706
+ components: [
2707
+ { name: "sqrtPriceX96", internalType: "uint160", type: "uint160" },
2708
+ { name: "tick", internalType: "int24", type: "int24" },
2709
+ { name: "observationIndex", internalType: "uint16", type: "uint16" },
2710
+ {
2711
+ name: "observationCardinality",
2712
+ internalType: "uint16",
2713
+ type: "uint16"
2714
+ },
2715
+ {
2716
+ name: "observationCardinalityNext",
2717
+ internalType: "uint16",
2718
+ type: "uint16"
2719
+ },
2720
+ { name: "feeProtocol", internalType: "uint8", type: "uint8" },
2721
+ { name: "unlocked", internalType: "bool", type: "bool" }
2722
+ ]
2723
+ }
2724
+ ],
2725
+ stateMutability: "view"
2726
+ },
2727
+ {
2728
+ type: "function",
2729
+ inputs: [
2730
+ { name: "recipient", internalType: "address", type: "address" },
2731
+ { name: "zeroForOne", internalType: "bool", type: "bool" },
2732
+ { name: "amountSpecified", internalType: "int256", type: "int256" },
2733
+ { name: "sqrtPriceLimitX96", internalType: "uint160", type: "uint160" },
2734
+ { name: "data", internalType: "bytes", type: "bytes" }
2735
+ ],
2736
+ name: "swap",
2737
+ outputs: [
2738
+ { name: "amount0", internalType: "int256", type: "int256" },
2739
+ { name: "amount1", internalType: "int256", type: "int256" }
2740
+ ],
2741
+ stateMutability: "nonpayable"
2742
+ },
2743
+ {
2744
+ type: "function",
2745
+ inputs: [],
2746
+ name: "token0",
2747
+ outputs: [{ name: "", internalType: "address", type: "address" }],
2748
+ stateMutability: "nonpayable"
2749
+ },
2750
+ {
2751
+ type: "function",
2752
+ inputs: [],
2753
+ name: "token1",
2754
+ outputs: [{ name: "", internalType: "address", type: "address" }],
2755
+ stateMutability: "nonpayable"
2756
+ }
2757
+ ];
2758
+ var iUniversalRouterABI = [
2759
+ {
2760
+ type: "function",
2761
+ inputs: [
2762
+ { name: "commands", internalType: "bytes", type: "bytes" },
2763
+ { name: "inputs", internalType: "bytes[]", type: "bytes[]" },
2764
+ { name: "deadline", internalType: "uint256", type: "uint256" }
2765
+ ],
2766
+ name: "execute",
2767
+ outputs: [],
2768
+ stateMutability: "payable"
2769
+ },
2770
+ { type: "error", inputs: [], name: "ETHNotAccepted" },
2771
+ {
2772
+ type: "error",
2773
+ inputs: [
2774
+ { name: "commandIndex", internalType: "uint256", type: "uint256" },
2775
+ { name: "message", internalType: "bytes", type: "bytes" }
2776
+ ],
2777
+ name: "ExecutionFailed"
2778
+ },
2779
+ { type: "error", inputs: [], name: "InvalidEthSender" },
2780
+ { type: "error", inputs: [], name: "LengthMismatch" },
2781
+ { type: "error", inputs: [], name: "TransactionDeadlinePassed" }
2782
+ ];
2783
+ var zoraFactoryImplABI = [
2784
+ {
2785
+ type: "constructor",
2786
+ inputs: [
2787
+ { name: "_coinImpl", internalType: "address", type: "address" },
2788
+ { name: "_coinV4Impl", internalType: "address", type: "address" }
2789
+ ],
2790
+ stateMutability: "nonpayable"
2791
+ },
2792
+ {
2793
+ type: "function",
2794
+ inputs: [],
2795
+ name: "UPGRADE_INTERFACE_VERSION",
2796
+ outputs: [{ name: "", internalType: "string", type: "string" }],
2797
+ stateMutability: "view"
2798
+ },
2799
+ {
2800
+ type: "function",
2801
+ inputs: [
2802
+ { name: "msgSender", internalType: "address", type: "address" },
2803
+ { name: "name", internalType: "string", type: "string" },
2804
+ { name: "symbol", internalType: "string", type: "string" },
2805
+ { name: "poolConfig", internalType: "bytes", type: "bytes" },
2806
+ { name: "platformReferrer", internalType: "address", type: "address" },
2807
+ { name: "coinSalt", internalType: "bytes32", type: "bytes32" }
2808
+ ],
2809
+ name: "coinAddress",
2810
+ outputs: [{ name: "", internalType: "address", type: "address" }],
2811
+ stateMutability: "view"
2812
+ },
2813
+ {
2814
+ type: "function",
2815
+ inputs: [],
2816
+ name: "coinImpl",
2817
+ outputs: [{ name: "", internalType: "address", type: "address" }],
2818
+ stateMutability: "view"
2819
+ },
2820
+ {
2821
+ type: "function",
2822
+ inputs: [],
2823
+ name: "coinV4Impl",
2824
+ outputs: [{ name: "", internalType: "address", type: "address" }],
2825
+ stateMutability: "view"
2826
+ },
2827
+ {
2828
+ type: "function",
2829
+ inputs: [],
2830
+ name: "contractName",
2831
+ outputs: [{ name: "", internalType: "string", type: "string" }],
2832
+ stateMutability: "pure"
2833
+ },
2834
+ {
2835
+ type: "function",
2836
+ inputs: [],
2837
+ name: "contractVersion",
2838
+ outputs: [{ name: "", internalType: "string", type: "string" }],
2839
+ stateMutability: "pure"
2840
+ },
2841
+ {
2842
+ type: "function",
2843
+ inputs: [
2844
+ { name: "payoutRecipient", internalType: "address", type: "address" },
2845
+ { name: "owners", internalType: "address[]", type: "address[]" },
2846
+ { name: "uri", internalType: "string", type: "string" },
2847
+ { name: "name", internalType: "string", type: "string" },
2848
+ { name: "symbol", internalType: "string", type: "string" },
2849
+ { name: "platformReferrer", internalType: "address", type: "address" },
2850
+ { name: "currency", internalType: "address", type: "address" },
2851
+ { name: "", internalType: "int24", type: "int24" },
2852
+ { name: "orderSize", internalType: "uint256", type: "uint256" }
2853
+ ],
2854
+ name: "deploy",
2855
+ outputs: [
2856
+ { name: "", internalType: "address", type: "address" },
2857
+ { name: "", internalType: "uint256", type: "uint256" }
2858
+ ],
2859
+ stateMutability: "payable"
2860
+ },
2861
+ {
2862
+ type: "function",
2863
+ inputs: [
2864
+ { name: "payoutRecipient", internalType: "address", type: "address" },
2865
+ { name: "owners", internalType: "address[]", type: "address[]" },
2866
+ { name: "uri", internalType: "string", type: "string" },
2867
+ { name: "name", internalType: "string", type: "string" },
2868
+ { name: "symbol", internalType: "string", type: "string" },
2869
+ { name: "poolConfig", internalType: "bytes", type: "bytes" },
2870
+ { name: "platformReferrer", internalType: "address", type: "address" },
2871
+ { name: "postDeployHook", internalType: "address", type: "address" },
2872
+ { name: "postDeployHookData", internalType: "bytes", type: "bytes" },
2873
+ { name: "coinSalt", internalType: "bytes32", type: "bytes32" }
2874
+ ],
2875
+ name: "deploy",
2876
+ outputs: [
2877
+ { name: "coin", internalType: "address", type: "address" },
2878
+ { name: "postDeployHookDataOut", internalType: "bytes", type: "bytes" }
2879
+ ],
2880
+ stateMutability: "payable"
2881
+ },
2882
+ {
2883
+ type: "function",
2884
+ inputs: [
2885
+ { name: "payoutRecipient", internalType: "address", type: "address" },
2886
+ { name: "owners", internalType: "address[]", type: "address[]" },
2887
+ { name: "uri", internalType: "string", type: "string" },
2888
+ { name: "name", internalType: "string", type: "string" },
2889
+ { name: "symbol", internalType: "string", type: "string" },
2890
+ { name: "poolConfig", internalType: "bytes", type: "bytes" },
2891
+ { name: "platformReferrer", internalType: "address", type: "address" },
2892
+ { name: "orderSize", internalType: "uint256", type: "uint256" }
2893
+ ],
2894
+ name: "deploy",
2895
+ outputs: [
2896
+ { name: "", internalType: "address", type: "address" },
2897
+ { name: "", internalType: "uint256", type: "uint256" }
2898
+ ],
2899
+ stateMutability: "payable"
2900
+ },
2901
+ {
2902
+ type: "function",
2903
+ inputs: [
2904
+ { name: "payoutRecipient", internalType: "address", type: "address" },
2905
+ { name: "owners", internalType: "address[]", type: "address[]" },
2906
+ { name: "uri", internalType: "string", type: "string" },
2907
+ { name: "name", internalType: "string", type: "string" },
2908
+ { name: "symbol", internalType: "string", type: "string" },
2909
+ { name: "poolConfig", internalType: "bytes", type: "bytes" },
2910
+ { name: "platformReferrer", internalType: "address", type: "address" },
1273
2911
  { name: "hook", internalType: "address", type: "address" },
1274
2912
  { name: "hookData", internalType: "bytes", type: "bytes" }
1275
2913
  ],
@@ -1280,6 +2918,13 @@ var zoraFactoryImplABI = [
1280
2918
  ],
1281
2919
  stateMutability: "payable"
1282
2920
  },
2921
+ {
2922
+ type: "function",
2923
+ inputs: [{ name: "coin", internalType: "address", type: "address" }],
2924
+ name: "getVersionForDeployedCoin",
2925
+ outputs: [{ name: "", internalType: "uint8", type: "uint8" }],
2926
+ stateMutability: "view"
2927
+ },
1283
2928
  {
1284
2929
  type: "function",
1285
2930
  inputs: [],
@@ -1391,6 +3036,76 @@ var zoraFactoryImplABI = [
1391
3036
  ],
1392
3037
  name: "CoinCreated"
1393
3038
  },
3039
+ {
3040
+ type: "event",
3041
+ anonymous: false,
3042
+ inputs: [
3043
+ {
3044
+ name: "caller",
3045
+ internalType: "address",
3046
+ type: "address",
3047
+ indexed: true
3048
+ },
3049
+ {
3050
+ name: "payoutRecipient",
3051
+ internalType: "address",
3052
+ type: "address",
3053
+ indexed: true
3054
+ },
3055
+ {
3056
+ name: "platformReferrer",
3057
+ internalType: "address",
3058
+ type: "address",
3059
+ indexed: true
3060
+ },
3061
+ {
3062
+ name: "currency",
3063
+ internalType: "address",
3064
+ type: "address",
3065
+ indexed: false
3066
+ },
3067
+ { name: "uri", internalType: "string", type: "string", indexed: false },
3068
+ { name: "name", internalType: "string", type: "string", indexed: false },
3069
+ {
3070
+ name: "symbol",
3071
+ internalType: "string",
3072
+ type: "string",
3073
+ indexed: false
3074
+ },
3075
+ {
3076
+ name: "coin",
3077
+ internalType: "address",
3078
+ type: "address",
3079
+ indexed: false
3080
+ },
3081
+ {
3082
+ name: "poolKey",
3083
+ internalType: "struct PoolKey",
3084
+ type: "tuple",
3085
+ components: [
3086
+ { name: "currency0", internalType: "Currency", type: "address" },
3087
+ { name: "currency1", internalType: "Currency", type: "address" },
3088
+ { name: "fee", internalType: "uint24", type: "uint24" },
3089
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
3090
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
3091
+ ],
3092
+ indexed: false
3093
+ },
3094
+ {
3095
+ name: "poolKeyHash",
3096
+ internalType: "bytes32",
3097
+ type: "bytes32",
3098
+ indexed: false
3099
+ },
3100
+ {
3101
+ name: "version",
3102
+ internalType: "string",
3103
+ type: "string",
3104
+ indexed: false
3105
+ }
3106
+ ],
3107
+ name: "CoinCreatedV4"
3108
+ },
1394
3109
  {
1395
3110
  type: "event",
1396
3111
  anonymous: false,
@@ -1446,6 +3161,10 @@ var zoraFactoryImplABI = [
1446
3161
  inputs: [{ name: "account", internalType: "address", type: "address" }],
1447
3162
  name: "AddressInsufficientBalance"
1448
3163
  },
3164
+ { type: "error", inputs: [], name: "ArrayLengthMismatch" },
3165
+ { type: "error", inputs: [], name: "CannotMintZeroLiquidity" },
3166
+ { type: "error", inputs: [], name: "ConfigTickLowerMustBeLessThanTickUpper" },
3167
+ { type: "error", inputs: [], name: "Deprecated" },
1449
3168
  { type: "error", inputs: [], name: "ERC1167FailedCreateClone" },
1450
3169
  {
1451
3170
  type: "error",
@@ -1460,7 +3179,33 @@ var zoraFactoryImplABI = [
1460
3179
  { type: "error", inputs: [], name: "FailedInnerCall" },
1461
3180
  { type: "error", inputs: [], name: "InvalidHook" },
1462
3181
  { type: "error", inputs: [], name: "InvalidInitialization" },
3182
+ { type: "error", inputs: [], name: "InvalidPoolVersion" },
3183
+ {
3184
+ type: "error",
3185
+ inputs: [
3186
+ { name: "tickLower", internalType: "int24", type: "int24" },
3187
+ { name: "tickUpper", internalType: "int24", type: "int24" }
3188
+ ],
3189
+ name: "InvalidTickRangeMisordered"
3190
+ },
3191
+ {
3192
+ type: "error",
3193
+ inputs: [
3194
+ { name: "tickLower", internalType: "int24", type: "int24" },
3195
+ { name: "tickUpper", internalType: "int24", type: "int24" }
3196
+ ],
3197
+ name: "InvalidTickRangeMisordered"
3198
+ },
3199
+ {
3200
+ type: "error",
3201
+ inputs: [
3202
+ { name: "value", internalType: "uint256", type: "uint256" },
3203
+ { name: "limit", internalType: "uint256", type: "uint256" }
3204
+ ],
3205
+ name: "MaxShareToBeSoldExceeded"
3206
+ },
1463
3207
  { type: "error", inputs: [], name: "NotInitializing" },
3208
+ { type: "error", inputs: [], name: "NumDiscoveryPositionsOutOfRange" },
1464
3209
  {
1465
3210
  type: "error",
1466
3211
  inputs: [{ name: "owner", internalType: "address", type: "address" }],
@@ -1490,13 +3235,19 @@ var zoraFactoryImplABI = [
1490
3235
  { name: "newName", internalType: "string", type: "string" }
1491
3236
  ],
1492
3237
  name: "UpgradeToMismatchedContractName"
1493
- }
3238
+ },
3239
+ { type: "error", inputs: [], name: "ZeroDiscoveryPositions" },
3240
+ { type: "error", inputs: [], name: "ZeroDiscoverySupplyShare" }
1494
3241
  ];
1495
3242
  // Annotate the CommonJS export names for ESM import in node:
1496
3243
  0 && (module.exports = {
1497
3244
  buySupplyWithSwapRouterHookABI,
1498
3245
  coinABI,
3246
+ coinV4ABI,
3247
+ iPermit2ABI,
3248
+ iPoolConfigEncodingABI,
1499
3249
  iUniswapV3PoolABI,
3250
+ iUniversalRouterABI,
1500
3251
  zoraFactoryImplABI
1501
3252
  });
1502
3253
  //# sourceMappingURL=index.cjs.map