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