@zoralabs/coins 2.4.0 → 2.5.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 (129) hide show
  1. package/.abi-stability +923 -0
  2. package/.turbo/turbo-build$colon$js.log +110 -116
  3. package/CHANGELOG.md +25 -0
  4. package/abis/Address.json +0 -16
  5. package/abis/BaseCoin.json +18 -0
  6. package/abis/BuySupplyWithSwapRouterHook.json +0 -27
  7. package/abis/BuySupplyWithV4SwapHook.json +0 -32
  8. package/abis/Clones.json +1 -1
  9. package/abis/CoinDopplerMultiCurve.json +109 -0
  10. package/abis/ContentCoin.json +18 -0
  11. package/abis/Create2.json +0 -21
  12. package/abis/CreatorCoin.json +18 -0
  13. package/abis/ERC1967Proxy.json +1 -1
  14. package/abis/ERC1967Utils.json +0 -45
  15. package/abis/{UpgradeCoinImpl.json → Errors.json} +14 -10
  16. package/abis/{MockERC20.json → IERC1363.json} +134 -104
  17. package/abis/IERC1967.json +47 -0
  18. package/abis/IERC20.json +0 -36
  19. package/abis/IHasCreationInfo.json +20 -0
  20. package/abis/IProtocolRewards.json +0 -258
  21. package/abis/{Script.json → ISupportsLimitOrderFill.json} +2 -2
  22. package/abis/IZoraLimitOrderBookCoinsInterface.json +67 -0
  23. package/abis/IZoraV4CoinHook.json +10 -0
  24. package/abis/ProxyShim.json +15 -16
  25. package/abis/SafeCast.json +51 -0
  26. package/abis/{AddressConstants.json → SafeCast160.json} +1 -1
  27. package/abis/Strings.json +10 -0
  28. package/abis/UUPSUpgradeable.json +1 -1
  29. package/abis/V3ToV4SwapLib.json +28 -0
  30. package/abis/ZoraFactory.json +1 -1
  31. package/abis/ZoraFactoryImpl.json +22 -6
  32. package/abis/ZoraV4CoinHook.json +20 -48
  33. package/dist/index.cjs +980 -43
  34. package/dist/index.cjs.map +1 -1
  35. package/dist/index.js +978 -41
  36. package/dist/index.js.map +1 -1
  37. package/dist/wagmiGenerated.d.ts +1501 -76
  38. package/dist/wagmiGenerated.d.ts.map +1 -1
  39. package/package/wagmiGenerated.ts +981 -44
  40. package/package.json +11 -9
  41. package/remappings.txt +2 -1
  42. package/src/BaseCoin.sol +32 -2
  43. package/src/ZoraFactoryImpl.sol +8 -0
  44. package/src/deployment/ForkedCoinsAddresses.sol +54 -0
  45. package/src/hooks/ZoraV4CoinHook.sol +131 -20
  46. package/src/hooks/deployment/BuySupplyWithV4SwapHook.sol +20 -142
  47. package/src/interfaces/IHasCreationInfo.sol +12 -0
  48. package/src/interfaces/ISupportsLimitOrderFill.sol +11 -0
  49. package/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol +21 -0
  50. package/src/interfaces/IZoraV4CoinHook.sol +6 -0
  51. package/src/libs/CoinConstants.sol +22 -0
  52. package/src/libs/CoinDopplerMultiCurve.sol +1 -1
  53. package/src/libs/CoinRewardsV4.sol +0 -1
  54. package/src/libs/CoinSetup.sol +7 -1
  55. package/src/libs/HooksDeployment.sol +20 -8
  56. package/src/libs/UniV4SwapHelper.sol +35 -0
  57. package/src/libs/V3ToV4SwapLib.sol +265 -0
  58. package/src/version/ContractVersionBase.sol +1 -1
  59. package/test/BuySupplyWithV4SwapHook.t.sol +4 -3
  60. package/test/Coin.t.sol +7 -1
  61. package/test/CoinUniV4.t.sol +6 -1
  62. package/test/ContentCoinRewards.t.sol +6 -1
  63. package/test/CreatorCoin.t.sol +3 -1
  64. package/test/CreatorCoinRewards.t.sol +4 -1
  65. package/test/Factory.t.sol +20 -7
  66. package/test/HooksDeployment.t.sol +16 -3
  67. package/test/LaunchFee.t.sol +286 -0
  68. package/test/LiquidityMigration.t.sol +52 -44
  69. package/test/MultiOwnable.t.sol +2 -1
  70. package/test/Upgrades.t.sol +110 -81
  71. package/test/V4Liquidity.t.sol +1 -1
  72. package/test/mocks/MockSwapRouter.sol +33 -0
  73. package/test/mocks/MockZoraLimitOrderBook.sol +14 -0
  74. package/test/utils/BaseTest.sol +14 -448
  75. package/test/utils/FeeEstimatorHook.sol +6 -2
  76. package/test/utils/V4TestSetup.sol +595 -0
  77. package/wagmi.config.ts +1 -1
  78. package/abis/BaseTest.json +0 -718
  79. package/abis/DeterministicDeployerAndCaller.json +0 -315
  80. package/abis/DeterministicUUPSProxyDeployer.json +0 -167
  81. package/abis/EIP712.json +0 -67
  82. package/abis/ERC20.json +0 -310
  83. package/abis/FeeEstimatorHook.json +0 -1938
  84. package/abis/IERC721.json +0 -287
  85. package/abis/IERC721Enumerable.json +0 -343
  86. package/abis/IERC721Metadata.json +0 -332
  87. package/abis/IERC721TokenReceiver.json +0 -36
  88. package/abis/IImmutableCreate2Factory.json +0 -93
  89. package/abis/IMulticall3.json +0 -440
  90. package/abis/ISafe.json +0 -15
  91. package/abis/ISymbol.json +0 -15
  92. package/abis/IUniswapV4Router04.json +0 -484
  93. package/abis/IUniversalRouter.json +0 -61
  94. package/abis/IV4Quoter.json +0 -310
  95. package/abis/ImmutableCreate2FactoryUtils.json +0 -15
  96. package/abis/LibString.json +0 -7
  97. package/abis/Math.json +0 -7
  98. package/abis/MockAirlock.json +0 -39
  99. package/abis/MockERC721.json +0 -350
  100. package/abis/ProtocolRewards.json +0 -494
  101. package/abis/ShortStrings.json +0 -18
  102. package/abis/SimpleERC20.json +0 -326
  103. package/abis/StdAssertions.json +0 -379
  104. package/abis/StdInvariant.json +0 -180
  105. package/abis/Test.json +0 -570
  106. package/abis/VmContractHelper235.json +0 -233
  107. package/abis/VmContractHelper242.json +0 -233
  108. package/abis/stdError.json +0 -119
  109. package/abis/stdStorageSafe.json +0 -52
  110. package/addresses/8453.json +0 -13
  111. package/addresses/84532.json +0 -10
  112. package/deterministicConfig/deployerAndCaller.json +0 -5
  113. package/deterministicConfig/zoraFactory.json +0 -8
  114. package/script/Deploy.s.sol +0 -23
  115. package/script/DeployAutoSwapper.s.sol +0 -30
  116. package/script/DeployDevFactory.s.sol +0 -21
  117. package/script/DeployPostDeploymentHooks.s.sol +0 -20
  118. package/script/DeployTrustedMsgSenderLookup.s.sol +0 -20
  119. package/script/DeployUpgradeGate.s.sol +0 -21
  120. package/script/GenerateDeterministicParams.s.sol +0 -43
  121. package/script/PrintRegisterUpgradePath.s.sol +0 -28
  122. package/script/PrintUpgradeCommand.s.sol +0 -13
  123. package/script/TestBackingCoinSwap.s.sol +0 -144
  124. package/script/TestV4Swap.s.sol +0 -133
  125. package/script/UpgradeCoinImpl.sol +0 -23
  126. package/script/UpgradeFactoryImpl.s.sol +0 -28
  127. package/script/UpgradeHooks.s.sol +0 -23
  128. package/src/deployment/CoinsDeployerBase.sol +0 -297
  129. /package/{test → src}/utils/ProxyShim.sol +0 -0
@@ -187,6 +187,16 @@ export const baseCoinABI = [
187
187
  outputs: [{ name: '', internalType: 'string', type: 'string' }],
188
188
  stateMutability: 'pure',
189
189
  },
190
+ {
191
+ type: 'function',
192
+ inputs: [],
193
+ name: 'creationInfo',
194
+ outputs: [
195
+ { name: 'creationTimestamp', internalType: 'uint256', type: 'uint256' },
196
+ { name: 'isDeploying', internalType: 'bool', type: 'bool' },
197
+ ],
198
+ stateMutability: 'view',
199
+ },
190
200
  {
191
201
  type: 'function',
192
202
  inputs: [],
@@ -1357,18 +1367,7 @@ export const buySupplyWithV4SwapHookABI = [
1357
1367
  ],
1358
1368
  name: 'BuyInitialSupply',
1359
1369
  },
1360
- {
1361
- type: 'error',
1362
- inputs: [{ name: 'target', internalType: 'address', type: 'address' }],
1363
- name: 'AddressEmptyCode',
1364
- },
1365
- {
1366
- type: 'error',
1367
- inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
1368
- name: 'AddressInsufficientBalance',
1369
- },
1370
1370
  { type: 'error', inputs: [], name: 'AddressZero' },
1371
- { type: 'error', inputs: [], name: 'FailedInnerCall' },
1372
1371
  { type: 'error', inputs: [], name: 'HookNotImplemented' },
1373
1372
  {
1374
1373
  type: 'error',
@@ -1386,7 +1385,6 @@ export const buySupplyWithV4SwapHookABI = [
1386
1385
  inputs: [{ name: 'token', internalType: 'address', type: 'address' }],
1387
1386
  name: 'SafeERC20FailedOperation',
1388
1387
  },
1389
- { type: 'error', inputs: [], name: 'V3RouteCannotStartWithInputCurrency' },
1390
1388
  { type: 'error', inputs: [], name: 'V3RouteDoesNotConnectToV4RouteStart' },
1391
1389
  ] as const
1392
1390
 
@@ -1500,6 +1498,16 @@ export const contentCoinABI = [
1500
1498
  outputs: [{ name: '', internalType: 'string', type: 'string' }],
1501
1499
  stateMutability: 'pure',
1502
1500
  },
1501
+ {
1502
+ type: 'function',
1503
+ inputs: [],
1504
+ name: 'creationInfo',
1505
+ outputs: [
1506
+ { name: 'creationTimestamp', internalType: 'uint256', type: 'uint256' },
1507
+ { name: 'isDeploying', internalType: 'bool', type: 'bool' },
1508
+ ],
1509
+ stateMutability: 'view',
1510
+ },
1503
1511
  {
1504
1512
  type: 'function',
1505
1513
  inputs: [],
@@ -2608,6 +2616,16 @@ export const creatorCoinABI = [
2608
2616
  outputs: [{ name: '', internalType: 'string', type: 'string' }],
2609
2617
  stateMutability: 'pure',
2610
2618
  },
2619
+ {
2620
+ type: 'function',
2621
+ inputs: [],
2622
+ name: 'creationInfo',
2623
+ outputs: [
2624
+ { name: 'creationTimestamp', internalType: 'uint256', type: 'uint256' },
2625
+ { name: 'isDeploying', internalType: 'bool', type: 'bool' },
2626
+ ],
2627
+ stateMutability: 'view',
2628
+ },
2611
2629
  {
2612
2630
  type: 'function',
2613
2631
  inputs: [],
@@ -4341,36 +4359,6 @@ export const iUniswapV3PoolABI = [
4341
4359
  },
4342
4360
  ] as const
4343
4361
 
4344
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4345
- // IUniversalRouter
4346
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4347
-
4348
- export const iUniversalRouterABI = [
4349
- {
4350
- type: 'function',
4351
- inputs: [
4352
- { name: 'commands', internalType: 'bytes', type: 'bytes' },
4353
- { name: 'inputs', internalType: 'bytes[]', type: 'bytes[]' },
4354
- { name: 'deadline', internalType: 'uint256', type: 'uint256' },
4355
- ],
4356
- name: 'execute',
4357
- outputs: [],
4358
- stateMutability: 'payable',
4359
- },
4360
- { type: 'error', inputs: [], name: 'ETHNotAccepted' },
4361
- {
4362
- type: 'error',
4363
- inputs: [
4364
- { name: 'commandIndex', internalType: 'uint256', type: 'uint256' },
4365
- { name: 'message', internalType: 'bytes', type: 'bytes' },
4366
- ],
4367
- name: 'ExecutionFailed',
4368
- },
4369
- { type: 'error', inputs: [], name: 'InvalidEthSender' },
4370
- { type: 'error', inputs: [], name: 'LengthMismatch' },
4371
- { type: 'error', inputs: [], name: 'TransactionDeadlinePassed' },
4372
- ] as const
4373
-
4374
4362
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4375
4363
  // ZoraFactoryImpl
4376
4364
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -4924,7 +4912,6 @@ export const zoraFactoryImplABI = [
4924
4912
  { type: 'error', inputs: [], name: 'ArrayLengthMismatch' },
4925
4913
  { type: 'error', inputs: [], name: 'ConfigTickLowerMustBeLessThanTickUpper' },
4926
4914
  { type: 'error', inputs: [], name: 'Deprecated' },
4927
- { type: 'error', inputs: [], name: 'ERC1167FailedCreateClone' },
4928
4915
  {
4929
4916
  type: 'error',
4930
4917
  inputs: [
@@ -4934,7 +4921,16 @@ export const zoraFactoryImplABI = [
4934
4921
  },
4935
4922
  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },
4936
4923
  { type: 'error', inputs: [], name: 'EthTransferInvalid' },
4937
- { type: 'error', inputs: [], name: 'FailedInnerCall' },
4924
+ { type: 'error', inputs: [], name: 'FailedCall' },
4925
+ { type: 'error', inputs: [], name: 'FailedDeployment' },
4926
+ {
4927
+ type: 'error',
4928
+ inputs: [
4929
+ { name: 'balance', internalType: 'uint256', type: 'uint256' },
4930
+ { name: 'needed', internalType: 'uint256', type: 'uint256' },
4931
+ ],
4932
+ name: 'InsufficientBalance',
4933
+ },
4938
4934
  { type: 'error', inputs: [], name: 'InvalidConfig' },
4939
4935
  { type: 'error', inputs: [], name: 'InvalidHook' },
4940
4936
  { type: 'error', inputs: [], name: 'InvalidInitialization' },
@@ -4985,3 +4981,944 @@ export const zoraFactoryImplABI = [
4985
4981
  { type: 'error', inputs: [], name: 'ZeroDiscoveryPositions' },
4986
4982
  { type: 'error', inputs: [], name: 'ZeroDiscoverySupplyShare' },
4987
4983
  ] as const
4984
+
4985
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4986
+ // ZoraV4CoinHook
4987
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4988
+
4989
+ export const zoraV4CoinHookABI = [
4990
+ {
4991
+ type: 'constructor',
4992
+ inputs: [
4993
+ {
4994
+ name: 'poolManager_',
4995
+ internalType: 'contract IPoolManager',
4996
+ type: 'address',
4997
+ },
4998
+ {
4999
+ name: 'coinVersionLookup_',
5000
+ internalType: 'contract IDeployedCoinVersionLookup',
5001
+ type: 'address',
5002
+ },
5003
+ {
5004
+ name: 'trustedMsgSenderLookup_',
5005
+ internalType: 'contract ITrustedMsgSenderProviderLookup',
5006
+ type: 'address',
5007
+ },
5008
+ {
5009
+ name: 'upgradeGate_',
5010
+ internalType: 'contract IHooksUpgradeGate',
5011
+ type: 'address',
5012
+ },
5013
+ {
5014
+ name: 'zoraLimitOrderBook_',
5015
+ internalType: 'contract IZoraLimitOrderBookCoinsInterface',
5016
+ type: 'address',
5017
+ },
5018
+ {
5019
+ name: 'zoraHookRegistry_',
5020
+ internalType: 'contract IZoraHookRegistry',
5021
+ type: 'address',
5022
+ },
5023
+ ],
5024
+ stateMutability: 'nonpayable',
5025
+ },
5026
+ { type: 'receive', stateMutability: 'payable' },
5027
+ {
5028
+ type: 'function',
5029
+ inputs: [
5030
+ { name: 'sender', internalType: 'address', type: 'address' },
5031
+ {
5032
+ name: 'key',
5033
+ internalType: 'struct PoolKey',
5034
+ type: 'tuple',
5035
+ components: [
5036
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5037
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5038
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5039
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5040
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5041
+ ],
5042
+ },
5043
+ {
5044
+ name: 'params',
5045
+ internalType: 'struct ModifyLiquidityParams',
5046
+ type: 'tuple',
5047
+ components: [
5048
+ { name: 'tickLower', internalType: 'int24', type: 'int24' },
5049
+ { name: 'tickUpper', internalType: 'int24', type: 'int24' },
5050
+ { name: 'liquidityDelta', internalType: 'int256', type: 'int256' },
5051
+ { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
5052
+ ],
5053
+ },
5054
+ { name: 'delta', internalType: 'BalanceDelta', type: 'int256' },
5055
+ { name: 'feesAccrued', internalType: 'BalanceDelta', type: 'int256' },
5056
+ { name: 'hookData', internalType: 'bytes', type: 'bytes' },
5057
+ ],
5058
+ name: 'afterAddLiquidity',
5059
+ outputs: [
5060
+ { name: '', internalType: 'bytes4', type: 'bytes4' },
5061
+ { name: '', internalType: 'BalanceDelta', type: 'int256' },
5062
+ ],
5063
+ stateMutability: 'nonpayable',
5064
+ },
5065
+ {
5066
+ type: 'function',
5067
+ inputs: [
5068
+ { name: 'sender', internalType: 'address', type: 'address' },
5069
+ {
5070
+ name: 'key',
5071
+ internalType: 'struct PoolKey',
5072
+ type: 'tuple',
5073
+ components: [
5074
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5075
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5076
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5077
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5078
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5079
+ ],
5080
+ },
5081
+ { name: 'amount0', internalType: 'uint256', type: 'uint256' },
5082
+ { name: 'amount1', internalType: 'uint256', type: 'uint256' },
5083
+ { name: 'hookData', internalType: 'bytes', type: 'bytes' },
5084
+ ],
5085
+ name: 'afterDonate',
5086
+ outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],
5087
+ stateMutability: 'nonpayable',
5088
+ },
5089
+ {
5090
+ type: 'function',
5091
+ inputs: [
5092
+ { name: 'sender', internalType: 'address', type: 'address' },
5093
+ {
5094
+ name: 'key',
5095
+ internalType: 'struct PoolKey',
5096
+ type: 'tuple',
5097
+ components: [
5098
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5099
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5100
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5101
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5102
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5103
+ ],
5104
+ },
5105
+ { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' },
5106
+ { name: 'tick', internalType: 'int24', type: 'int24' },
5107
+ ],
5108
+ name: 'afterInitialize',
5109
+ outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],
5110
+ stateMutability: 'nonpayable',
5111
+ },
5112
+ {
5113
+ type: 'function',
5114
+ inputs: [
5115
+ { name: 'sender', internalType: 'address', type: 'address' },
5116
+ {
5117
+ name: 'key',
5118
+ internalType: 'struct PoolKey',
5119
+ type: 'tuple',
5120
+ components: [
5121
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5122
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5123
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5124
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5125
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5126
+ ],
5127
+ },
5128
+ {
5129
+ name: 'params',
5130
+ internalType: 'struct ModifyLiquidityParams',
5131
+ type: 'tuple',
5132
+ components: [
5133
+ { name: 'tickLower', internalType: 'int24', type: 'int24' },
5134
+ { name: 'tickUpper', internalType: 'int24', type: 'int24' },
5135
+ { name: 'liquidityDelta', internalType: 'int256', type: 'int256' },
5136
+ { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
5137
+ ],
5138
+ },
5139
+ { name: 'delta', internalType: 'BalanceDelta', type: 'int256' },
5140
+ { name: 'feesAccrued', internalType: 'BalanceDelta', type: 'int256' },
5141
+ { name: 'hookData', internalType: 'bytes', type: 'bytes' },
5142
+ ],
5143
+ name: 'afterRemoveLiquidity',
5144
+ outputs: [
5145
+ { name: '', internalType: 'bytes4', type: 'bytes4' },
5146
+ { name: '', internalType: 'BalanceDelta', type: 'int256' },
5147
+ ],
5148
+ stateMutability: 'nonpayable',
5149
+ },
5150
+ {
5151
+ type: 'function',
5152
+ inputs: [
5153
+ { name: 'sender', internalType: 'address', type: 'address' },
5154
+ {
5155
+ name: 'key',
5156
+ internalType: 'struct PoolKey',
5157
+ type: 'tuple',
5158
+ components: [
5159
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5160
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5161
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5162
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5163
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5164
+ ],
5165
+ },
5166
+ {
5167
+ name: 'params',
5168
+ internalType: 'struct SwapParams',
5169
+ type: 'tuple',
5170
+ components: [
5171
+ { name: 'zeroForOne', internalType: 'bool', type: 'bool' },
5172
+ { name: 'amountSpecified', internalType: 'int256', type: 'int256' },
5173
+ {
5174
+ name: 'sqrtPriceLimitX96',
5175
+ internalType: 'uint160',
5176
+ type: 'uint160',
5177
+ },
5178
+ ],
5179
+ },
5180
+ { name: 'delta', internalType: 'BalanceDelta', type: 'int256' },
5181
+ { name: 'hookData', internalType: 'bytes', type: 'bytes' },
5182
+ ],
5183
+ name: 'afterSwap',
5184
+ outputs: [
5185
+ { name: '', internalType: 'bytes4', type: 'bytes4' },
5186
+ { name: '', internalType: 'int128', type: 'int128' },
5187
+ ],
5188
+ stateMutability: 'nonpayable',
5189
+ },
5190
+ {
5191
+ type: 'function',
5192
+ inputs: [
5193
+ { name: 'sender', internalType: 'address', type: 'address' },
5194
+ {
5195
+ name: 'key',
5196
+ internalType: 'struct PoolKey',
5197
+ type: 'tuple',
5198
+ components: [
5199
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5200
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5201
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5202
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5203
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5204
+ ],
5205
+ },
5206
+ {
5207
+ name: 'params',
5208
+ internalType: 'struct ModifyLiquidityParams',
5209
+ type: 'tuple',
5210
+ components: [
5211
+ { name: 'tickLower', internalType: 'int24', type: 'int24' },
5212
+ { name: 'tickUpper', internalType: 'int24', type: 'int24' },
5213
+ { name: 'liquidityDelta', internalType: 'int256', type: 'int256' },
5214
+ { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
5215
+ ],
5216
+ },
5217
+ { name: 'hookData', internalType: 'bytes', type: 'bytes' },
5218
+ ],
5219
+ name: 'beforeAddLiquidity',
5220
+ outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],
5221
+ stateMutability: 'nonpayable',
5222
+ },
5223
+ {
5224
+ type: 'function',
5225
+ inputs: [
5226
+ { name: 'sender', internalType: 'address', type: 'address' },
5227
+ {
5228
+ name: 'key',
5229
+ internalType: 'struct PoolKey',
5230
+ type: 'tuple',
5231
+ components: [
5232
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5233
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5234
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5235
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5236
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5237
+ ],
5238
+ },
5239
+ { name: 'amount0', internalType: 'uint256', type: 'uint256' },
5240
+ { name: 'amount1', internalType: 'uint256', type: 'uint256' },
5241
+ { name: 'hookData', internalType: 'bytes', type: 'bytes' },
5242
+ ],
5243
+ name: 'beforeDonate',
5244
+ outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],
5245
+ stateMutability: 'nonpayable',
5246
+ },
5247
+ {
5248
+ type: 'function',
5249
+ inputs: [
5250
+ { name: 'sender', internalType: 'address', type: 'address' },
5251
+ {
5252
+ name: 'key',
5253
+ internalType: 'struct PoolKey',
5254
+ type: 'tuple',
5255
+ components: [
5256
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5257
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5258
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5259
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5260
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5261
+ ],
5262
+ },
5263
+ { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' },
5264
+ ],
5265
+ name: 'beforeInitialize',
5266
+ outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],
5267
+ stateMutability: 'nonpayable',
5268
+ },
5269
+ {
5270
+ type: 'function',
5271
+ inputs: [
5272
+ { name: 'sender', internalType: 'address', type: 'address' },
5273
+ {
5274
+ name: 'key',
5275
+ internalType: 'struct PoolKey',
5276
+ type: 'tuple',
5277
+ components: [
5278
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5279
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5280
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5281
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5282
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5283
+ ],
5284
+ },
5285
+ {
5286
+ name: 'params',
5287
+ internalType: 'struct ModifyLiquidityParams',
5288
+ type: 'tuple',
5289
+ components: [
5290
+ { name: 'tickLower', internalType: 'int24', type: 'int24' },
5291
+ { name: 'tickUpper', internalType: 'int24', type: 'int24' },
5292
+ { name: 'liquidityDelta', internalType: 'int256', type: 'int256' },
5293
+ { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
5294
+ ],
5295
+ },
5296
+ { name: 'hookData', internalType: 'bytes', type: 'bytes' },
5297
+ ],
5298
+ name: 'beforeRemoveLiquidity',
5299
+ outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],
5300
+ stateMutability: 'nonpayable',
5301
+ },
5302
+ {
5303
+ type: 'function',
5304
+ inputs: [
5305
+ { name: 'sender', internalType: 'address', type: 'address' },
5306
+ {
5307
+ name: 'key',
5308
+ internalType: 'struct PoolKey',
5309
+ type: 'tuple',
5310
+ components: [
5311
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5312
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5313
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5314
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5315
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5316
+ ],
5317
+ },
5318
+ {
5319
+ name: 'params',
5320
+ internalType: 'struct SwapParams',
5321
+ type: 'tuple',
5322
+ components: [
5323
+ { name: 'zeroForOne', internalType: 'bool', type: 'bool' },
5324
+ { name: 'amountSpecified', internalType: 'int256', type: 'int256' },
5325
+ {
5326
+ name: 'sqrtPriceLimitX96',
5327
+ internalType: 'uint160',
5328
+ type: 'uint160',
5329
+ },
5330
+ ],
5331
+ },
5332
+ { name: 'hookData', internalType: 'bytes', type: 'bytes' },
5333
+ ],
5334
+ name: 'beforeSwap',
5335
+ outputs: [
5336
+ { name: '', internalType: 'bytes4', type: 'bytes4' },
5337
+ { name: '', internalType: 'BeforeSwapDelta', type: 'int256' },
5338
+ { name: '', internalType: 'uint24', type: 'uint24' },
5339
+ ],
5340
+ stateMutability: 'nonpayable',
5341
+ },
5342
+ {
5343
+ type: 'function',
5344
+ inputs: [],
5345
+ name: 'contractVersion',
5346
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
5347
+ stateMutability: 'pure',
5348
+ },
5349
+ {
5350
+ type: 'function',
5351
+ inputs: [],
5352
+ name: 'getHookPermissions',
5353
+ outputs: [
5354
+ {
5355
+ name: '',
5356
+ internalType: 'struct Hooks.Permissions',
5357
+ type: 'tuple',
5358
+ components: [
5359
+ { name: 'beforeInitialize', internalType: 'bool', type: 'bool' },
5360
+ { name: 'afterInitialize', internalType: 'bool', type: 'bool' },
5361
+ { name: 'beforeAddLiquidity', internalType: 'bool', type: 'bool' },
5362
+ { name: 'afterAddLiquidity', internalType: 'bool', type: 'bool' },
5363
+ { name: 'beforeRemoveLiquidity', internalType: 'bool', type: 'bool' },
5364
+ { name: 'afterRemoveLiquidity', internalType: 'bool', type: 'bool' },
5365
+ { name: 'beforeSwap', internalType: 'bool', type: 'bool' },
5366
+ { name: 'afterSwap', internalType: 'bool', type: 'bool' },
5367
+ { name: 'beforeDonate', internalType: 'bool', type: 'bool' },
5368
+ { name: 'afterDonate', internalType: 'bool', type: 'bool' },
5369
+ { name: 'beforeSwapReturnDelta', internalType: 'bool', type: 'bool' },
5370
+ { name: 'afterSwapReturnDelta', internalType: 'bool', type: 'bool' },
5371
+ {
5372
+ name: 'afterAddLiquidityReturnDelta',
5373
+ internalType: 'bool',
5374
+ type: 'bool',
5375
+ },
5376
+ {
5377
+ name: 'afterRemoveLiquidityReturnDelta',
5378
+ internalType: 'bool',
5379
+ type: 'bool',
5380
+ },
5381
+ ],
5382
+ },
5383
+ ],
5384
+ stateMutability: 'pure',
5385
+ },
5386
+ {
5387
+ type: 'function',
5388
+ inputs: [
5389
+ {
5390
+ name: 'key',
5391
+ internalType: 'struct PoolKey',
5392
+ type: 'tuple',
5393
+ components: [
5394
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5395
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5396
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5397
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5398
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5399
+ ],
5400
+ },
5401
+ ],
5402
+ name: 'getPoolCoin',
5403
+ outputs: [
5404
+ {
5405
+ name: '',
5406
+ internalType: 'struct IZoraV4CoinHook.PoolCoin',
5407
+ type: 'tuple',
5408
+ components: [
5409
+ { name: 'coin', internalType: 'address', type: 'address' },
5410
+ {
5411
+ name: 'positions',
5412
+ internalType: 'struct LpPosition[]',
5413
+ type: 'tuple[]',
5414
+ components: [
5415
+ { name: 'tickLower', internalType: 'int24', type: 'int24' },
5416
+ { name: 'tickUpper', internalType: 'int24', type: 'int24' },
5417
+ { name: 'liquidity', internalType: 'uint128', type: 'uint128' },
5418
+ ],
5419
+ },
5420
+ ],
5421
+ },
5422
+ ],
5423
+ stateMutability: 'view',
5424
+ },
5425
+ {
5426
+ type: 'function',
5427
+ inputs: [{ name: 'poolKeyHash', internalType: 'bytes32', type: 'bytes32' }],
5428
+ name: 'getPoolCoinByHash',
5429
+ outputs: [
5430
+ {
5431
+ name: '',
5432
+ internalType: 'struct IZoraV4CoinHook.PoolCoin',
5433
+ type: 'tuple',
5434
+ components: [
5435
+ { name: 'coin', internalType: 'address', type: 'address' },
5436
+ {
5437
+ name: 'positions',
5438
+ internalType: 'struct LpPosition[]',
5439
+ type: 'tuple[]',
5440
+ components: [
5441
+ { name: 'tickLower', internalType: 'int24', type: 'int24' },
5442
+ { name: 'tickUpper', internalType: 'int24', type: 'int24' },
5443
+ { name: 'liquidity', internalType: 'uint128', type: 'uint128' },
5444
+ ],
5445
+ },
5446
+ ],
5447
+ },
5448
+ ],
5449
+ stateMutability: 'view',
5450
+ },
5451
+ {
5452
+ type: 'function',
5453
+ inputs: [],
5454
+ name: 'getTrustedMsgSenderLookup',
5455
+ outputs: [
5456
+ {
5457
+ name: '',
5458
+ internalType: 'contract ITrustedMsgSenderProviderLookup',
5459
+ type: 'address',
5460
+ },
5461
+ ],
5462
+ stateMutability: 'view',
5463
+ },
5464
+ {
5465
+ type: 'function',
5466
+ inputs: [
5467
+ {
5468
+ name: 'poolKey',
5469
+ internalType: 'struct PoolKey',
5470
+ type: 'tuple',
5471
+ components: [
5472
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5473
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5474
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5475
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5476
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5477
+ ],
5478
+ },
5479
+ { name: 'coin', internalType: 'address', type: 'address' },
5480
+ { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' },
5481
+ {
5482
+ name: 'migratedLiquidity',
5483
+ internalType: 'struct BurnedPosition[]',
5484
+ type: 'tuple[]',
5485
+ components: [
5486
+ { name: 'tickLower', internalType: 'int24', type: 'int24' },
5487
+ { name: 'tickUpper', internalType: 'int24', type: 'int24' },
5488
+ { name: 'amount0Received', internalType: 'uint128', type: 'uint128' },
5489
+ { name: 'amount1Received', internalType: 'uint128', type: 'uint128' },
5490
+ ],
5491
+ },
5492
+ { name: 'additionalData', internalType: 'bytes', type: 'bytes' },
5493
+ ],
5494
+ name: 'initializeFromMigration',
5495
+ outputs: [],
5496
+ stateMutability: 'nonpayable',
5497
+ },
5498
+ {
5499
+ type: 'function',
5500
+ inputs: [
5501
+ {
5502
+ name: 'poolKey',
5503
+ internalType: 'struct PoolKey',
5504
+ type: 'tuple',
5505
+ components: [
5506
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5507
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5508
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5509
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5510
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5511
+ ],
5512
+ },
5513
+ { name: 'coin', internalType: 'address', type: 'address' },
5514
+ { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' },
5515
+ {
5516
+ name: 'migratedLiquidity',
5517
+ internalType: 'struct BurnedPosition[]',
5518
+ type: 'tuple[]',
5519
+ components: [
5520
+ { name: 'tickLower', internalType: 'int24', type: 'int24' },
5521
+ { name: 'tickUpper', internalType: 'int24', type: 'int24' },
5522
+ { name: 'amount0Received', internalType: 'uint128', type: 'uint128' },
5523
+ { name: 'amount1Received', internalType: 'uint128', type: 'uint128' },
5524
+ ],
5525
+ },
5526
+ { name: 'additionalData', internalType: 'bytes', type: 'bytes' },
5527
+ ],
5528
+ name: 'initializeFromMigrationWithUpdateableFee',
5529
+ outputs: [
5530
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5531
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5532
+ ],
5533
+ stateMutability: 'nonpayable',
5534
+ },
5535
+ {
5536
+ type: 'function',
5537
+ inputs: [{ name: 'sender', internalType: 'address', type: 'address' }],
5538
+ name: 'isTrustedMessageSender',
5539
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
5540
+ stateMutability: 'view',
5541
+ },
5542
+ {
5543
+ type: 'function',
5544
+ inputs: [
5545
+ { name: 'newHook', internalType: 'address', type: 'address' },
5546
+ {
5547
+ name: 'poolKey',
5548
+ internalType: 'struct PoolKey',
5549
+ type: 'tuple',
5550
+ components: [
5551
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5552
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5553
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5554
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5555
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5556
+ ],
5557
+ },
5558
+ { name: 'additionalData', internalType: 'bytes', type: 'bytes' },
5559
+ ],
5560
+ name: 'migrateLiquidity',
5561
+ outputs: [
5562
+ {
5563
+ name: 'newPoolKey',
5564
+ internalType: 'struct PoolKey',
5565
+ type: 'tuple',
5566
+ components: [
5567
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5568
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5569
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5570
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5571
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5572
+ ],
5573
+ },
5574
+ ],
5575
+ stateMutability: 'nonpayable',
5576
+ },
5577
+ {
5578
+ type: 'function',
5579
+ inputs: [],
5580
+ name: 'poolManager',
5581
+ outputs: [
5582
+ { name: '', internalType: 'contract IPoolManager', type: 'address' },
5583
+ ],
5584
+ stateMutability: 'view',
5585
+ },
5586
+ {
5587
+ type: 'function',
5588
+ inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
5589
+ name: 'supportsInterface',
5590
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
5591
+ stateMutability: 'view',
5592
+ },
5593
+ {
5594
+ type: 'function',
5595
+ inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],
5596
+ name: 'unlockCallback',
5597
+ outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],
5598
+ stateMutability: 'nonpayable',
5599
+ },
5600
+ {
5601
+ type: 'event',
5602
+ anonymous: false,
5603
+ inputs: [
5604
+ {
5605
+ name: 'coin',
5606
+ internalType: 'address',
5607
+ type: 'address',
5608
+ indexed: false,
5609
+ },
5610
+ {
5611
+ name: 'currency',
5612
+ internalType: 'address',
5613
+ type: 'address',
5614
+ indexed: false,
5615
+ },
5616
+ {
5617
+ name: 'payoutRecipient',
5618
+ internalType: 'address',
5619
+ type: 'address',
5620
+ indexed: false,
5621
+ },
5622
+ {
5623
+ name: 'platformReferrer',
5624
+ internalType: 'address',
5625
+ type: 'address',
5626
+ indexed: false,
5627
+ },
5628
+ {
5629
+ name: 'tradeReferrer',
5630
+ internalType: 'address',
5631
+ type: 'address',
5632
+ indexed: false,
5633
+ },
5634
+ {
5635
+ name: 'protocolRewardRecipient',
5636
+ internalType: 'address',
5637
+ type: 'address',
5638
+ indexed: false,
5639
+ },
5640
+ {
5641
+ name: 'dopplerRecipient',
5642
+ internalType: 'address',
5643
+ type: 'address',
5644
+ indexed: false,
5645
+ },
5646
+ {
5647
+ name: 'marketRewards',
5648
+ internalType: 'struct IZoraV4CoinHook.MarketRewardsV4',
5649
+ type: 'tuple',
5650
+ components: [
5651
+ {
5652
+ name: 'creatorPayoutAmountCurrency',
5653
+ internalType: 'uint256',
5654
+ type: 'uint256',
5655
+ },
5656
+ {
5657
+ name: 'creatorPayoutAmountCoin',
5658
+ internalType: 'uint256',
5659
+ type: 'uint256',
5660
+ },
5661
+ {
5662
+ name: 'platformReferrerAmountCurrency',
5663
+ internalType: 'uint256',
5664
+ type: 'uint256',
5665
+ },
5666
+ {
5667
+ name: 'platformReferrerAmountCoin',
5668
+ internalType: 'uint256',
5669
+ type: 'uint256',
5670
+ },
5671
+ {
5672
+ name: 'tradeReferrerAmountCurrency',
5673
+ internalType: 'uint256',
5674
+ type: 'uint256',
5675
+ },
5676
+ {
5677
+ name: 'tradeReferrerAmountCoin',
5678
+ internalType: 'uint256',
5679
+ type: 'uint256',
5680
+ },
5681
+ {
5682
+ name: 'protocolAmountCurrency',
5683
+ internalType: 'uint256',
5684
+ type: 'uint256',
5685
+ },
5686
+ {
5687
+ name: 'protocolAmountCoin',
5688
+ internalType: 'uint256',
5689
+ type: 'uint256',
5690
+ },
5691
+ {
5692
+ name: 'dopplerAmountCurrency',
5693
+ internalType: 'uint256',
5694
+ type: 'uint256',
5695
+ },
5696
+ {
5697
+ name: 'dopplerAmountCoin',
5698
+ internalType: 'uint256',
5699
+ type: 'uint256',
5700
+ },
5701
+ ],
5702
+ indexed: false,
5703
+ },
5704
+ ],
5705
+ name: 'CoinMarketRewardsV4',
5706
+ },
5707
+ {
5708
+ type: 'event',
5709
+ anonymous: false,
5710
+ inputs: [
5711
+ { name: 'coin', internalType: 'address', type: 'address', indexed: true },
5712
+ {
5713
+ name: 'currency',
5714
+ internalType: 'address',
5715
+ type: 'address',
5716
+ indexed: false,
5717
+ },
5718
+ {
5719
+ name: 'creator',
5720
+ internalType: 'address',
5721
+ type: 'address',
5722
+ indexed: false,
5723
+ },
5724
+ {
5725
+ name: 'protocol',
5726
+ internalType: 'address',
5727
+ type: 'address',
5728
+ indexed: false,
5729
+ },
5730
+ {
5731
+ name: 'creatorAmount',
5732
+ internalType: 'uint256',
5733
+ type: 'uint256',
5734
+ indexed: false,
5735
+ },
5736
+ {
5737
+ name: 'protocolAmount',
5738
+ internalType: 'uint256',
5739
+ type: 'uint256',
5740
+ indexed: false,
5741
+ },
5742
+ ],
5743
+ name: 'CreatorCoinRewards',
5744
+ },
5745
+ {
5746
+ type: 'event',
5747
+ anonymous: false,
5748
+ inputs: [
5749
+ { name: 'coin', internalType: 'address', type: 'address', indexed: true },
5750
+ {
5751
+ name: 'currency',
5752
+ internalType: 'address',
5753
+ type: 'address',
5754
+ indexed: true,
5755
+ },
5756
+ {
5757
+ name: 'amountCurrency',
5758
+ internalType: 'uint256',
5759
+ type: 'uint256',
5760
+ indexed: false,
5761
+ },
5762
+ { name: 'tick', internalType: 'int24', type: 'int24', indexed: false },
5763
+ {
5764
+ name: 'liquidity',
5765
+ internalType: 'uint128',
5766
+ type: 'uint128',
5767
+ indexed: false,
5768
+ },
5769
+ ],
5770
+ name: 'LpReward',
5771
+ },
5772
+ {
5773
+ type: 'event',
5774
+ anonymous: false,
5775
+ inputs: [
5776
+ {
5777
+ name: 'sender',
5778
+ internalType: 'address',
5779
+ type: 'address',
5780
+ indexed: true,
5781
+ },
5782
+ {
5783
+ name: 'swapSender',
5784
+ internalType: 'address',
5785
+ type: 'address',
5786
+ indexed: true,
5787
+ },
5788
+ {
5789
+ name: 'isTrustedSwapSenderAddress',
5790
+ internalType: 'bool',
5791
+ type: 'bool',
5792
+ indexed: false,
5793
+ },
5794
+ {
5795
+ name: 'key',
5796
+ internalType: 'struct PoolKey',
5797
+ type: 'tuple',
5798
+ components: [
5799
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5800
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5801
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5802
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5803
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5804
+ ],
5805
+ indexed: false,
5806
+ },
5807
+ {
5808
+ name: 'poolKeyHash',
5809
+ internalType: 'bytes32',
5810
+ type: 'bytes32',
5811
+ indexed: true,
5812
+ },
5813
+ {
5814
+ name: 'params',
5815
+ internalType: 'struct SwapParams',
5816
+ type: 'tuple',
5817
+ components: [
5818
+ { name: 'zeroForOne', internalType: 'bool', type: 'bool' },
5819
+ { name: 'amountSpecified', internalType: 'int256', type: 'int256' },
5820
+ {
5821
+ name: 'sqrtPriceLimitX96',
5822
+ internalType: 'uint160',
5823
+ type: 'uint160',
5824
+ },
5825
+ ],
5826
+ indexed: false,
5827
+ },
5828
+ {
5829
+ name: 'amount0',
5830
+ internalType: 'int128',
5831
+ type: 'int128',
5832
+ indexed: false,
5833
+ },
5834
+ {
5835
+ name: 'amount1',
5836
+ internalType: 'int128',
5837
+ type: 'int128',
5838
+ indexed: false,
5839
+ },
5840
+ { name: 'isCoinBuy', internalType: 'bool', type: 'bool', indexed: false },
5841
+ {
5842
+ name: 'hookData',
5843
+ internalType: 'bytes',
5844
+ type: 'bytes',
5845
+ indexed: false,
5846
+ },
5847
+ {
5848
+ name: 'sqrtPriceX96',
5849
+ internalType: 'uint160',
5850
+ type: 'uint160',
5851
+ indexed: false,
5852
+ },
5853
+ ],
5854
+ name: 'Swapped',
5855
+ },
5856
+ { type: 'error', inputs: [], name: 'CoinVersionLookupCannotBeZeroAddress' },
5857
+ { type: 'error', inputs: [], name: 'EthTransferFailed' },
5858
+ { type: 'error', inputs: [], name: 'HookNotImplemented' },
5859
+ {
5860
+ type: 'error',
5861
+ inputs: [{ name: 'callbackId', internalType: 'uint8', type: 'uint8' }],
5862
+ name: 'InvalidCallbackId',
5863
+ },
5864
+ {
5865
+ type: 'error',
5866
+ inputs: [{ name: 'newHook', internalType: 'address', type: 'address' }],
5867
+ name: 'InvalidNewHook',
5868
+ },
5869
+ {
5870
+ type: 'error',
5871
+ inputs: [
5872
+ {
5873
+ name: 'key',
5874
+ internalType: 'struct PoolKey',
5875
+ type: 'tuple',
5876
+ components: [
5877
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5878
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5879
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5880
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5881
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5882
+ ],
5883
+ },
5884
+ ],
5885
+ name: 'NoCoinForHook',
5886
+ },
5887
+ {
5888
+ type: 'error',
5889
+ inputs: [{ name: 'coin', internalType: 'address', type: 'address' }],
5890
+ name: 'NotACoin',
5891
+ },
5892
+ { type: 'error', inputs: [], name: 'NotPoolManager' },
5893
+ {
5894
+ type: 'error',
5895
+ inputs: [
5896
+ { name: 'caller', internalType: 'address', type: 'address' },
5897
+ { name: 'expectedCoin', internalType: 'address', type: 'address' },
5898
+ ],
5899
+ name: 'OnlyCoin',
5900
+ },
5901
+ { type: 'error', inputs: [], name: 'PathMustHaveAtLeastOneStep' },
5902
+ { type: 'error', inputs: [], name: 'SafeCastOverflow' },
5903
+ {
5904
+ type: 'error',
5905
+ inputs: [{ name: 'token', internalType: 'address', type: 'address' }],
5906
+ name: 'SafeERC20FailedOperation',
5907
+ },
5908
+ {
5909
+ type: 'error',
5910
+ inputs: [],
5911
+ name: 'TrustedMsgSenderLookupCannotBeZeroAddress',
5912
+ },
5913
+ { type: 'error', inputs: [], name: 'UpgradeGateCannotBeZeroAddress' },
5914
+ {
5915
+ type: 'error',
5916
+ inputs: [
5917
+ { name: 'oldHook', internalType: 'address', type: 'address' },
5918
+ { name: 'newHook', internalType: 'address', type: 'address' },
5919
+ ],
5920
+ name: 'UpgradePathNotRegistered',
5921
+ },
5922
+ { type: 'error', inputs: [], name: 'ZoraHookRegistryCannotBeZeroAddress' },
5923
+ { type: 'error', inputs: [], name: 'ZoraLimitOrderBookCannotBeZeroAddress' },
5924
+ ] as const