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