@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
package/dist/index.js CHANGED
@@ -179,6 +179,16 @@ var baseCoinABI = [
179
179
  outputs: [{ name: "", internalType: "string", type: "string" }],
180
180
  stateMutability: "pure"
181
181
  },
182
+ {
183
+ type: "function",
184
+ inputs: [],
185
+ name: "creationInfo",
186
+ outputs: [
187
+ { name: "creationTimestamp", internalType: "uint256", type: "uint256" },
188
+ { name: "isDeploying", internalType: "bool", type: "bool" }
189
+ ],
190
+ stateMutability: "view"
191
+ },
182
192
  {
183
193
  type: "function",
184
194
  inputs: [],
@@ -1344,18 +1354,7 @@ var buySupplyWithV4SwapHookABI = [
1344
1354
  ],
1345
1355
  name: "BuyInitialSupply"
1346
1356
  },
1347
- {
1348
- type: "error",
1349
- inputs: [{ name: "target", internalType: "address", type: "address" }],
1350
- name: "AddressEmptyCode"
1351
- },
1352
- {
1353
- type: "error",
1354
- inputs: [{ name: "account", internalType: "address", type: "address" }],
1355
- name: "AddressInsufficientBalance"
1356
- },
1357
1357
  { type: "error", inputs: [], name: "AddressZero" },
1358
- { type: "error", inputs: [], name: "FailedInnerCall" },
1359
1358
  { type: "error", inputs: [], name: "HookNotImplemented" },
1360
1359
  {
1361
1360
  type: "error",
@@ -1373,7 +1372,6 @@ var buySupplyWithV4SwapHookABI = [
1373
1372
  inputs: [{ name: "token", internalType: "address", type: "address" }],
1374
1373
  name: "SafeERC20FailedOperation"
1375
1374
  },
1376
- { type: "error", inputs: [], name: "V3RouteCannotStartWithInputCurrency" },
1377
1375
  { type: "error", inputs: [], name: "V3RouteDoesNotConnectToV4RouteStart" }
1378
1376
  ];
1379
1377
  var contentCoinABI = [
@@ -1482,6 +1480,16 @@ var contentCoinABI = [
1482
1480
  outputs: [{ name: "", internalType: "string", type: "string" }],
1483
1481
  stateMutability: "pure"
1484
1482
  },
1483
+ {
1484
+ type: "function",
1485
+ inputs: [],
1486
+ name: "creationInfo",
1487
+ outputs: [
1488
+ { name: "creationTimestamp", internalType: "uint256", type: "uint256" },
1489
+ { name: "isDeploying", internalType: "bool", type: "bool" }
1490
+ ],
1491
+ stateMutability: "view"
1492
+ },
1485
1493
  {
1486
1494
  type: "function",
1487
1495
  inputs: [],
@@ -2585,6 +2593,16 @@ var creatorCoinABI = [
2585
2593
  outputs: [{ name: "", internalType: "string", type: "string" }],
2586
2594
  stateMutability: "pure"
2587
2595
  },
2596
+ {
2597
+ type: "function",
2598
+ inputs: [],
2599
+ name: "creationInfo",
2600
+ outputs: [
2601
+ { name: "creationTimestamp", internalType: "uint256", type: "uint256" },
2602
+ { name: "isDeploying", internalType: "bool", type: "bool" }
2603
+ ],
2604
+ stateMutability: "view"
2605
+ },
2588
2606
  {
2589
2607
  type: "function",
2590
2608
  inputs: [],
@@ -4302,31 +4320,6 @@ var iUniswapV3PoolABI = [
4302
4320
  stateMutability: "nonpayable"
4303
4321
  }
4304
4322
  ];
4305
- var iUniversalRouterABI = [
4306
- {
4307
- type: "function",
4308
- inputs: [
4309
- { name: "commands", internalType: "bytes", type: "bytes" },
4310
- { name: "inputs", internalType: "bytes[]", type: "bytes[]" },
4311
- { name: "deadline", internalType: "uint256", type: "uint256" }
4312
- ],
4313
- name: "execute",
4314
- outputs: [],
4315
- stateMutability: "payable"
4316
- },
4317
- { type: "error", inputs: [], name: "ETHNotAccepted" },
4318
- {
4319
- type: "error",
4320
- inputs: [
4321
- { name: "commandIndex", internalType: "uint256", type: "uint256" },
4322
- { name: "message", internalType: "bytes", type: "bytes" }
4323
- ],
4324
- name: "ExecutionFailed"
4325
- },
4326
- { type: "error", inputs: [], name: "InvalidEthSender" },
4327
- { type: "error", inputs: [], name: "LengthMismatch" },
4328
- { type: "error", inputs: [], name: "TransactionDeadlinePassed" }
4329
- ];
4330
4323
  var zoraFactoryImplABI = [
4331
4324
  {
4332
4325
  type: "constructor",
@@ -4876,7 +4869,6 @@ var zoraFactoryImplABI = [
4876
4869
  { type: "error", inputs: [], name: "ArrayLengthMismatch" },
4877
4870
  { type: "error", inputs: [], name: "ConfigTickLowerMustBeLessThanTickUpper" },
4878
4871
  { type: "error", inputs: [], name: "Deprecated" },
4879
- { type: "error", inputs: [], name: "ERC1167FailedCreateClone" },
4880
4872
  {
4881
4873
  type: "error",
4882
4874
  inputs: [
@@ -4886,7 +4878,16 @@ var zoraFactoryImplABI = [
4886
4878
  },
4887
4879
  { type: "error", inputs: [], name: "ERC1967NonPayable" },
4888
4880
  { type: "error", inputs: [], name: "EthTransferInvalid" },
4889
- { type: "error", inputs: [], name: "FailedInnerCall" },
4881
+ { type: "error", inputs: [], name: "FailedCall" },
4882
+ { type: "error", inputs: [], name: "FailedDeployment" },
4883
+ {
4884
+ type: "error",
4885
+ inputs: [
4886
+ { name: "balance", internalType: "uint256", type: "uint256" },
4887
+ { name: "needed", internalType: "uint256", type: "uint256" }
4888
+ ],
4889
+ name: "InsufficientBalance"
4890
+ },
4890
4891
  { type: "error", inputs: [], name: "InvalidConfig" },
4891
4892
  { type: "error", inputs: [], name: "InvalidHook" },
4892
4893
  { type: "error", inputs: [], name: "InvalidInitialization" },
@@ -4937,6 +4938,942 @@ var zoraFactoryImplABI = [
4937
4938
  { type: "error", inputs: [], name: "ZeroDiscoveryPositions" },
4938
4939
  { type: "error", inputs: [], name: "ZeroDiscoverySupplyShare" }
4939
4940
  ];
4941
+ var zoraV4CoinHookABI = [
4942
+ {
4943
+ type: "constructor",
4944
+ inputs: [
4945
+ {
4946
+ name: "poolManager_",
4947
+ internalType: "contract IPoolManager",
4948
+ type: "address"
4949
+ },
4950
+ {
4951
+ name: "coinVersionLookup_",
4952
+ internalType: "contract IDeployedCoinVersionLookup",
4953
+ type: "address"
4954
+ },
4955
+ {
4956
+ name: "trustedMsgSenderLookup_",
4957
+ internalType: "contract ITrustedMsgSenderProviderLookup",
4958
+ type: "address"
4959
+ },
4960
+ {
4961
+ name: "upgradeGate_",
4962
+ internalType: "contract IHooksUpgradeGate",
4963
+ type: "address"
4964
+ },
4965
+ {
4966
+ name: "zoraLimitOrderBook_",
4967
+ internalType: "contract IZoraLimitOrderBookCoinsInterface",
4968
+ type: "address"
4969
+ },
4970
+ {
4971
+ name: "zoraHookRegistry_",
4972
+ internalType: "contract IZoraHookRegistry",
4973
+ type: "address"
4974
+ }
4975
+ ],
4976
+ stateMutability: "nonpayable"
4977
+ },
4978
+ { type: "receive", stateMutability: "payable" },
4979
+ {
4980
+ type: "function",
4981
+ inputs: [
4982
+ { name: "sender", internalType: "address", type: "address" },
4983
+ {
4984
+ name: "key",
4985
+ internalType: "struct PoolKey",
4986
+ type: "tuple",
4987
+ components: [
4988
+ { name: "currency0", internalType: "Currency", type: "address" },
4989
+ { name: "currency1", internalType: "Currency", type: "address" },
4990
+ { name: "fee", internalType: "uint24", type: "uint24" },
4991
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
4992
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
4993
+ ]
4994
+ },
4995
+ {
4996
+ name: "params",
4997
+ internalType: "struct ModifyLiquidityParams",
4998
+ type: "tuple",
4999
+ components: [
5000
+ { name: "tickLower", internalType: "int24", type: "int24" },
5001
+ { name: "tickUpper", internalType: "int24", type: "int24" },
5002
+ { name: "liquidityDelta", internalType: "int256", type: "int256" },
5003
+ { name: "salt", internalType: "bytes32", type: "bytes32" }
5004
+ ]
5005
+ },
5006
+ { name: "delta", internalType: "BalanceDelta", type: "int256" },
5007
+ { name: "feesAccrued", internalType: "BalanceDelta", type: "int256" },
5008
+ { name: "hookData", internalType: "bytes", type: "bytes" }
5009
+ ],
5010
+ name: "afterAddLiquidity",
5011
+ outputs: [
5012
+ { name: "", internalType: "bytes4", type: "bytes4" },
5013
+ { name: "", internalType: "BalanceDelta", type: "int256" }
5014
+ ],
5015
+ stateMutability: "nonpayable"
5016
+ },
5017
+ {
5018
+ type: "function",
5019
+ inputs: [
5020
+ { name: "sender", internalType: "address", type: "address" },
5021
+ {
5022
+ name: "key",
5023
+ internalType: "struct PoolKey",
5024
+ type: "tuple",
5025
+ components: [
5026
+ { name: "currency0", internalType: "Currency", type: "address" },
5027
+ { name: "currency1", internalType: "Currency", type: "address" },
5028
+ { name: "fee", internalType: "uint24", type: "uint24" },
5029
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5030
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5031
+ ]
5032
+ },
5033
+ { name: "amount0", internalType: "uint256", type: "uint256" },
5034
+ { name: "amount1", internalType: "uint256", type: "uint256" },
5035
+ { name: "hookData", internalType: "bytes", type: "bytes" }
5036
+ ],
5037
+ name: "afterDonate",
5038
+ outputs: [{ name: "", internalType: "bytes4", type: "bytes4" }],
5039
+ stateMutability: "nonpayable"
5040
+ },
5041
+ {
5042
+ type: "function",
5043
+ inputs: [
5044
+ { name: "sender", internalType: "address", type: "address" },
5045
+ {
5046
+ name: "key",
5047
+ internalType: "struct PoolKey",
5048
+ type: "tuple",
5049
+ components: [
5050
+ { name: "currency0", internalType: "Currency", type: "address" },
5051
+ { name: "currency1", internalType: "Currency", type: "address" },
5052
+ { name: "fee", internalType: "uint24", type: "uint24" },
5053
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5054
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5055
+ ]
5056
+ },
5057
+ { name: "sqrtPriceX96", internalType: "uint160", type: "uint160" },
5058
+ { name: "tick", internalType: "int24", type: "int24" }
5059
+ ],
5060
+ name: "afterInitialize",
5061
+ outputs: [{ name: "", internalType: "bytes4", type: "bytes4" }],
5062
+ stateMutability: "nonpayable"
5063
+ },
5064
+ {
5065
+ type: "function",
5066
+ inputs: [
5067
+ { name: "sender", internalType: "address", type: "address" },
5068
+ {
5069
+ name: "key",
5070
+ internalType: "struct PoolKey",
5071
+ type: "tuple",
5072
+ components: [
5073
+ { name: "currency0", internalType: "Currency", type: "address" },
5074
+ { name: "currency1", internalType: "Currency", type: "address" },
5075
+ { name: "fee", internalType: "uint24", type: "uint24" },
5076
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5077
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5078
+ ]
5079
+ },
5080
+ {
5081
+ name: "params",
5082
+ internalType: "struct ModifyLiquidityParams",
5083
+ type: "tuple",
5084
+ components: [
5085
+ { name: "tickLower", internalType: "int24", type: "int24" },
5086
+ { name: "tickUpper", internalType: "int24", type: "int24" },
5087
+ { name: "liquidityDelta", internalType: "int256", type: "int256" },
5088
+ { name: "salt", internalType: "bytes32", type: "bytes32" }
5089
+ ]
5090
+ },
5091
+ { name: "delta", internalType: "BalanceDelta", type: "int256" },
5092
+ { name: "feesAccrued", internalType: "BalanceDelta", type: "int256" },
5093
+ { name: "hookData", internalType: "bytes", type: "bytes" }
5094
+ ],
5095
+ name: "afterRemoveLiquidity",
5096
+ outputs: [
5097
+ { name: "", internalType: "bytes4", type: "bytes4" },
5098
+ { name: "", internalType: "BalanceDelta", type: "int256" }
5099
+ ],
5100
+ stateMutability: "nonpayable"
5101
+ },
5102
+ {
5103
+ type: "function",
5104
+ inputs: [
5105
+ { name: "sender", internalType: "address", type: "address" },
5106
+ {
5107
+ name: "key",
5108
+ internalType: "struct PoolKey",
5109
+ type: "tuple",
5110
+ components: [
5111
+ { name: "currency0", internalType: "Currency", type: "address" },
5112
+ { name: "currency1", internalType: "Currency", type: "address" },
5113
+ { name: "fee", internalType: "uint24", type: "uint24" },
5114
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5115
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5116
+ ]
5117
+ },
5118
+ {
5119
+ name: "params",
5120
+ internalType: "struct SwapParams",
5121
+ type: "tuple",
5122
+ components: [
5123
+ { name: "zeroForOne", internalType: "bool", type: "bool" },
5124
+ { name: "amountSpecified", internalType: "int256", type: "int256" },
5125
+ {
5126
+ name: "sqrtPriceLimitX96",
5127
+ internalType: "uint160",
5128
+ type: "uint160"
5129
+ }
5130
+ ]
5131
+ },
5132
+ { name: "delta", internalType: "BalanceDelta", type: "int256" },
5133
+ { name: "hookData", internalType: "bytes", type: "bytes" }
5134
+ ],
5135
+ name: "afterSwap",
5136
+ outputs: [
5137
+ { name: "", internalType: "bytes4", type: "bytes4" },
5138
+ { name: "", internalType: "int128", type: "int128" }
5139
+ ],
5140
+ stateMutability: "nonpayable"
5141
+ },
5142
+ {
5143
+ type: "function",
5144
+ inputs: [
5145
+ { name: "sender", internalType: "address", type: "address" },
5146
+ {
5147
+ name: "key",
5148
+ internalType: "struct PoolKey",
5149
+ type: "tuple",
5150
+ components: [
5151
+ { name: "currency0", internalType: "Currency", type: "address" },
5152
+ { name: "currency1", internalType: "Currency", type: "address" },
5153
+ { name: "fee", internalType: "uint24", type: "uint24" },
5154
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5155
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5156
+ ]
5157
+ },
5158
+ {
5159
+ name: "params",
5160
+ internalType: "struct ModifyLiquidityParams",
5161
+ type: "tuple",
5162
+ components: [
5163
+ { name: "tickLower", internalType: "int24", type: "int24" },
5164
+ { name: "tickUpper", internalType: "int24", type: "int24" },
5165
+ { name: "liquidityDelta", internalType: "int256", type: "int256" },
5166
+ { name: "salt", internalType: "bytes32", type: "bytes32" }
5167
+ ]
5168
+ },
5169
+ { name: "hookData", internalType: "bytes", type: "bytes" }
5170
+ ],
5171
+ name: "beforeAddLiquidity",
5172
+ outputs: [{ name: "", internalType: "bytes4", type: "bytes4" }],
5173
+ stateMutability: "nonpayable"
5174
+ },
5175
+ {
5176
+ type: "function",
5177
+ inputs: [
5178
+ { name: "sender", internalType: "address", type: "address" },
5179
+ {
5180
+ name: "key",
5181
+ internalType: "struct PoolKey",
5182
+ type: "tuple",
5183
+ components: [
5184
+ { name: "currency0", internalType: "Currency", type: "address" },
5185
+ { name: "currency1", internalType: "Currency", type: "address" },
5186
+ { name: "fee", internalType: "uint24", type: "uint24" },
5187
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5188
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5189
+ ]
5190
+ },
5191
+ { name: "amount0", internalType: "uint256", type: "uint256" },
5192
+ { name: "amount1", internalType: "uint256", type: "uint256" },
5193
+ { name: "hookData", internalType: "bytes", type: "bytes" }
5194
+ ],
5195
+ name: "beforeDonate",
5196
+ outputs: [{ name: "", internalType: "bytes4", type: "bytes4" }],
5197
+ stateMutability: "nonpayable"
5198
+ },
5199
+ {
5200
+ type: "function",
5201
+ inputs: [
5202
+ { name: "sender", internalType: "address", type: "address" },
5203
+ {
5204
+ name: "key",
5205
+ internalType: "struct PoolKey",
5206
+ type: "tuple",
5207
+ components: [
5208
+ { name: "currency0", internalType: "Currency", type: "address" },
5209
+ { name: "currency1", internalType: "Currency", type: "address" },
5210
+ { name: "fee", internalType: "uint24", type: "uint24" },
5211
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5212
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5213
+ ]
5214
+ },
5215
+ { name: "sqrtPriceX96", internalType: "uint160", type: "uint160" }
5216
+ ],
5217
+ name: "beforeInitialize",
5218
+ outputs: [{ name: "", internalType: "bytes4", type: "bytes4" }],
5219
+ stateMutability: "nonpayable"
5220
+ },
5221
+ {
5222
+ type: "function",
5223
+ inputs: [
5224
+ { name: "sender", internalType: "address", type: "address" },
5225
+ {
5226
+ name: "key",
5227
+ internalType: "struct PoolKey",
5228
+ type: "tuple",
5229
+ components: [
5230
+ { name: "currency0", internalType: "Currency", type: "address" },
5231
+ { name: "currency1", internalType: "Currency", type: "address" },
5232
+ { name: "fee", internalType: "uint24", type: "uint24" },
5233
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5234
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5235
+ ]
5236
+ },
5237
+ {
5238
+ name: "params",
5239
+ internalType: "struct ModifyLiquidityParams",
5240
+ type: "tuple",
5241
+ components: [
5242
+ { name: "tickLower", internalType: "int24", type: "int24" },
5243
+ { name: "tickUpper", internalType: "int24", type: "int24" },
5244
+ { name: "liquidityDelta", internalType: "int256", type: "int256" },
5245
+ { name: "salt", internalType: "bytes32", type: "bytes32" }
5246
+ ]
5247
+ },
5248
+ { name: "hookData", internalType: "bytes", type: "bytes" }
5249
+ ],
5250
+ name: "beforeRemoveLiquidity",
5251
+ outputs: [{ name: "", internalType: "bytes4", type: "bytes4" }],
5252
+ stateMutability: "nonpayable"
5253
+ },
5254
+ {
5255
+ type: "function",
5256
+ inputs: [
5257
+ { name: "sender", internalType: "address", type: "address" },
5258
+ {
5259
+ name: "key",
5260
+ internalType: "struct PoolKey",
5261
+ type: "tuple",
5262
+ components: [
5263
+ { name: "currency0", internalType: "Currency", type: "address" },
5264
+ { name: "currency1", internalType: "Currency", type: "address" },
5265
+ { name: "fee", internalType: "uint24", type: "uint24" },
5266
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5267
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5268
+ ]
5269
+ },
5270
+ {
5271
+ name: "params",
5272
+ internalType: "struct SwapParams",
5273
+ type: "tuple",
5274
+ components: [
5275
+ { name: "zeroForOne", internalType: "bool", type: "bool" },
5276
+ { name: "amountSpecified", internalType: "int256", type: "int256" },
5277
+ {
5278
+ name: "sqrtPriceLimitX96",
5279
+ internalType: "uint160",
5280
+ type: "uint160"
5281
+ }
5282
+ ]
5283
+ },
5284
+ { name: "hookData", internalType: "bytes", type: "bytes" }
5285
+ ],
5286
+ name: "beforeSwap",
5287
+ outputs: [
5288
+ { name: "", internalType: "bytes4", type: "bytes4" },
5289
+ { name: "", internalType: "BeforeSwapDelta", type: "int256" },
5290
+ { name: "", internalType: "uint24", type: "uint24" }
5291
+ ],
5292
+ stateMutability: "nonpayable"
5293
+ },
5294
+ {
5295
+ type: "function",
5296
+ inputs: [],
5297
+ name: "contractVersion",
5298
+ outputs: [{ name: "", internalType: "string", type: "string" }],
5299
+ stateMutability: "pure"
5300
+ },
5301
+ {
5302
+ type: "function",
5303
+ inputs: [],
5304
+ name: "getHookPermissions",
5305
+ outputs: [
5306
+ {
5307
+ name: "",
5308
+ internalType: "struct Hooks.Permissions",
5309
+ type: "tuple",
5310
+ components: [
5311
+ { name: "beforeInitialize", internalType: "bool", type: "bool" },
5312
+ { name: "afterInitialize", internalType: "bool", type: "bool" },
5313
+ { name: "beforeAddLiquidity", internalType: "bool", type: "bool" },
5314
+ { name: "afterAddLiquidity", internalType: "bool", type: "bool" },
5315
+ { name: "beforeRemoveLiquidity", internalType: "bool", type: "bool" },
5316
+ { name: "afterRemoveLiquidity", internalType: "bool", type: "bool" },
5317
+ { name: "beforeSwap", internalType: "bool", type: "bool" },
5318
+ { name: "afterSwap", internalType: "bool", type: "bool" },
5319
+ { name: "beforeDonate", internalType: "bool", type: "bool" },
5320
+ { name: "afterDonate", internalType: "bool", type: "bool" },
5321
+ { name: "beforeSwapReturnDelta", internalType: "bool", type: "bool" },
5322
+ { name: "afterSwapReturnDelta", internalType: "bool", type: "bool" },
5323
+ {
5324
+ name: "afterAddLiquidityReturnDelta",
5325
+ internalType: "bool",
5326
+ type: "bool"
5327
+ },
5328
+ {
5329
+ name: "afterRemoveLiquidityReturnDelta",
5330
+ internalType: "bool",
5331
+ type: "bool"
5332
+ }
5333
+ ]
5334
+ }
5335
+ ],
5336
+ stateMutability: "pure"
5337
+ },
5338
+ {
5339
+ type: "function",
5340
+ inputs: [
5341
+ {
5342
+ name: "key",
5343
+ internalType: "struct PoolKey",
5344
+ type: "tuple",
5345
+ components: [
5346
+ { name: "currency0", internalType: "Currency", type: "address" },
5347
+ { name: "currency1", internalType: "Currency", type: "address" },
5348
+ { name: "fee", internalType: "uint24", type: "uint24" },
5349
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5350
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5351
+ ]
5352
+ }
5353
+ ],
5354
+ name: "getPoolCoin",
5355
+ outputs: [
5356
+ {
5357
+ name: "",
5358
+ internalType: "struct IZoraV4CoinHook.PoolCoin",
5359
+ type: "tuple",
5360
+ components: [
5361
+ { name: "coin", internalType: "address", type: "address" },
5362
+ {
5363
+ name: "positions",
5364
+ internalType: "struct LpPosition[]",
5365
+ type: "tuple[]",
5366
+ components: [
5367
+ { name: "tickLower", internalType: "int24", type: "int24" },
5368
+ { name: "tickUpper", internalType: "int24", type: "int24" },
5369
+ { name: "liquidity", internalType: "uint128", type: "uint128" }
5370
+ ]
5371
+ }
5372
+ ]
5373
+ }
5374
+ ],
5375
+ stateMutability: "view"
5376
+ },
5377
+ {
5378
+ type: "function",
5379
+ inputs: [{ name: "poolKeyHash", internalType: "bytes32", type: "bytes32" }],
5380
+ name: "getPoolCoinByHash",
5381
+ outputs: [
5382
+ {
5383
+ name: "",
5384
+ internalType: "struct IZoraV4CoinHook.PoolCoin",
5385
+ type: "tuple",
5386
+ components: [
5387
+ { name: "coin", internalType: "address", type: "address" },
5388
+ {
5389
+ name: "positions",
5390
+ internalType: "struct LpPosition[]",
5391
+ type: "tuple[]",
5392
+ components: [
5393
+ { name: "tickLower", internalType: "int24", type: "int24" },
5394
+ { name: "tickUpper", internalType: "int24", type: "int24" },
5395
+ { name: "liquidity", internalType: "uint128", type: "uint128" }
5396
+ ]
5397
+ }
5398
+ ]
5399
+ }
5400
+ ],
5401
+ stateMutability: "view"
5402
+ },
5403
+ {
5404
+ type: "function",
5405
+ inputs: [],
5406
+ name: "getTrustedMsgSenderLookup",
5407
+ outputs: [
5408
+ {
5409
+ name: "",
5410
+ internalType: "contract ITrustedMsgSenderProviderLookup",
5411
+ type: "address"
5412
+ }
5413
+ ],
5414
+ stateMutability: "view"
5415
+ },
5416
+ {
5417
+ type: "function",
5418
+ inputs: [
5419
+ {
5420
+ name: "poolKey",
5421
+ internalType: "struct PoolKey",
5422
+ type: "tuple",
5423
+ components: [
5424
+ { name: "currency0", internalType: "Currency", type: "address" },
5425
+ { name: "currency1", internalType: "Currency", type: "address" },
5426
+ { name: "fee", internalType: "uint24", type: "uint24" },
5427
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5428
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5429
+ ]
5430
+ },
5431
+ { name: "coin", internalType: "address", type: "address" },
5432
+ { name: "sqrtPriceX96", internalType: "uint160", type: "uint160" },
5433
+ {
5434
+ name: "migratedLiquidity",
5435
+ internalType: "struct BurnedPosition[]",
5436
+ type: "tuple[]",
5437
+ components: [
5438
+ { name: "tickLower", internalType: "int24", type: "int24" },
5439
+ { name: "tickUpper", internalType: "int24", type: "int24" },
5440
+ { name: "amount0Received", internalType: "uint128", type: "uint128" },
5441
+ { name: "amount1Received", internalType: "uint128", type: "uint128" }
5442
+ ]
5443
+ },
5444
+ { name: "additionalData", internalType: "bytes", type: "bytes" }
5445
+ ],
5446
+ name: "initializeFromMigration",
5447
+ outputs: [],
5448
+ stateMutability: "nonpayable"
5449
+ },
5450
+ {
5451
+ type: "function",
5452
+ inputs: [
5453
+ {
5454
+ name: "poolKey",
5455
+ internalType: "struct PoolKey",
5456
+ type: "tuple",
5457
+ components: [
5458
+ { name: "currency0", internalType: "Currency", type: "address" },
5459
+ { name: "currency1", internalType: "Currency", type: "address" },
5460
+ { name: "fee", internalType: "uint24", type: "uint24" },
5461
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5462
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5463
+ ]
5464
+ },
5465
+ { name: "coin", internalType: "address", type: "address" },
5466
+ { name: "sqrtPriceX96", internalType: "uint160", type: "uint160" },
5467
+ {
5468
+ name: "migratedLiquidity",
5469
+ internalType: "struct BurnedPosition[]",
5470
+ type: "tuple[]",
5471
+ components: [
5472
+ { name: "tickLower", internalType: "int24", type: "int24" },
5473
+ { name: "tickUpper", internalType: "int24", type: "int24" },
5474
+ { name: "amount0Received", internalType: "uint128", type: "uint128" },
5475
+ { name: "amount1Received", internalType: "uint128", type: "uint128" }
5476
+ ]
5477
+ },
5478
+ { name: "additionalData", internalType: "bytes", type: "bytes" }
5479
+ ],
5480
+ name: "initializeFromMigrationWithUpdateableFee",
5481
+ outputs: [
5482
+ { name: "fee", internalType: "uint24", type: "uint24" },
5483
+ { name: "tickSpacing", internalType: "int24", type: "int24" }
5484
+ ],
5485
+ stateMutability: "nonpayable"
5486
+ },
5487
+ {
5488
+ type: "function",
5489
+ inputs: [{ name: "sender", internalType: "address", type: "address" }],
5490
+ name: "isTrustedMessageSender",
5491
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
5492
+ stateMutability: "view"
5493
+ },
5494
+ {
5495
+ type: "function",
5496
+ inputs: [
5497
+ { name: "newHook", internalType: "address", type: "address" },
5498
+ {
5499
+ name: "poolKey",
5500
+ internalType: "struct PoolKey",
5501
+ type: "tuple",
5502
+ components: [
5503
+ { name: "currency0", internalType: "Currency", type: "address" },
5504
+ { name: "currency1", internalType: "Currency", type: "address" },
5505
+ { name: "fee", internalType: "uint24", type: "uint24" },
5506
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5507
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5508
+ ]
5509
+ },
5510
+ { name: "additionalData", internalType: "bytes", type: "bytes" }
5511
+ ],
5512
+ name: "migrateLiquidity",
5513
+ outputs: [
5514
+ {
5515
+ name: "newPoolKey",
5516
+ internalType: "struct PoolKey",
5517
+ type: "tuple",
5518
+ components: [
5519
+ { name: "currency0", internalType: "Currency", type: "address" },
5520
+ { name: "currency1", internalType: "Currency", type: "address" },
5521
+ { name: "fee", internalType: "uint24", type: "uint24" },
5522
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5523
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5524
+ ]
5525
+ }
5526
+ ],
5527
+ stateMutability: "nonpayable"
5528
+ },
5529
+ {
5530
+ type: "function",
5531
+ inputs: [],
5532
+ name: "poolManager",
5533
+ outputs: [
5534
+ { name: "", internalType: "contract IPoolManager", type: "address" }
5535
+ ],
5536
+ stateMutability: "view"
5537
+ },
5538
+ {
5539
+ type: "function",
5540
+ inputs: [{ name: "interfaceId", internalType: "bytes4", type: "bytes4" }],
5541
+ name: "supportsInterface",
5542
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
5543
+ stateMutability: "view"
5544
+ },
5545
+ {
5546
+ type: "function",
5547
+ inputs: [{ name: "data", internalType: "bytes", type: "bytes" }],
5548
+ name: "unlockCallback",
5549
+ outputs: [{ name: "", internalType: "bytes", type: "bytes" }],
5550
+ stateMutability: "nonpayable"
5551
+ },
5552
+ {
5553
+ type: "event",
5554
+ anonymous: false,
5555
+ inputs: [
5556
+ {
5557
+ name: "coin",
5558
+ internalType: "address",
5559
+ type: "address",
5560
+ indexed: false
5561
+ },
5562
+ {
5563
+ name: "currency",
5564
+ internalType: "address",
5565
+ type: "address",
5566
+ indexed: false
5567
+ },
5568
+ {
5569
+ name: "payoutRecipient",
5570
+ internalType: "address",
5571
+ type: "address",
5572
+ indexed: false
5573
+ },
5574
+ {
5575
+ name: "platformReferrer",
5576
+ internalType: "address",
5577
+ type: "address",
5578
+ indexed: false
5579
+ },
5580
+ {
5581
+ name: "tradeReferrer",
5582
+ internalType: "address",
5583
+ type: "address",
5584
+ indexed: false
5585
+ },
5586
+ {
5587
+ name: "protocolRewardRecipient",
5588
+ internalType: "address",
5589
+ type: "address",
5590
+ indexed: false
5591
+ },
5592
+ {
5593
+ name: "dopplerRecipient",
5594
+ internalType: "address",
5595
+ type: "address",
5596
+ indexed: false
5597
+ },
5598
+ {
5599
+ name: "marketRewards",
5600
+ internalType: "struct IZoraV4CoinHook.MarketRewardsV4",
5601
+ type: "tuple",
5602
+ components: [
5603
+ {
5604
+ name: "creatorPayoutAmountCurrency",
5605
+ internalType: "uint256",
5606
+ type: "uint256"
5607
+ },
5608
+ {
5609
+ name: "creatorPayoutAmountCoin",
5610
+ internalType: "uint256",
5611
+ type: "uint256"
5612
+ },
5613
+ {
5614
+ name: "platformReferrerAmountCurrency",
5615
+ internalType: "uint256",
5616
+ type: "uint256"
5617
+ },
5618
+ {
5619
+ name: "platformReferrerAmountCoin",
5620
+ internalType: "uint256",
5621
+ type: "uint256"
5622
+ },
5623
+ {
5624
+ name: "tradeReferrerAmountCurrency",
5625
+ internalType: "uint256",
5626
+ type: "uint256"
5627
+ },
5628
+ {
5629
+ name: "tradeReferrerAmountCoin",
5630
+ internalType: "uint256",
5631
+ type: "uint256"
5632
+ },
5633
+ {
5634
+ name: "protocolAmountCurrency",
5635
+ internalType: "uint256",
5636
+ type: "uint256"
5637
+ },
5638
+ {
5639
+ name: "protocolAmountCoin",
5640
+ internalType: "uint256",
5641
+ type: "uint256"
5642
+ },
5643
+ {
5644
+ name: "dopplerAmountCurrency",
5645
+ internalType: "uint256",
5646
+ type: "uint256"
5647
+ },
5648
+ {
5649
+ name: "dopplerAmountCoin",
5650
+ internalType: "uint256",
5651
+ type: "uint256"
5652
+ }
5653
+ ],
5654
+ indexed: false
5655
+ }
5656
+ ],
5657
+ name: "CoinMarketRewardsV4"
5658
+ },
5659
+ {
5660
+ type: "event",
5661
+ anonymous: false,
5662
+ inputs: [
5663
+ { name: "coin", internalType: "address", type: "address", indexed: true },
5664
+ {
5665
+ name: "currency",
5666
+ internalType: "address",
5667
+ type: "address",
5668
+ indexed: false
5669
+ },
5670
+ {
5671
+ name: "creator",
5672
+ internalType: "address",
5673
+ type: "address",
5674
+ indexed: false
5675
+ },
5676
+ {
5677
+ name: "protocol",
5678
+ internalType: "address",
5679
+ type: "address",
5680
+ indexed: false
5681
+ },
5682
+ {
5683
+ name: "creatorAmount",
5684
+ internalType: "uint256",
5685
+ type: "uint256",
5686
+ indexed: false
5687
+ },
5688
+ {
5689
+ name: "protocolAmount",
5690
+ internalType: "uint256",
5691
+ type: "uint256",
5692
+ indexed: false
5693
+ }
5694
+ ],
5695
+ name: "CreatorCoinRewards"
5696
+ },
5697
+ {
5698
+ type: "event",
5699
+ anonymous: false,
5700
+ inputs: [
5701
+ { name: "coin", internalType: "address", type: "address", indexed: true },
5702
+ {
5703
+ name: "currency",
5704
+ internalType: "address",
5705
+ type: "address",
5706
+ indexed: true
5707
+ },
5708
+ {
5709
+ name: "amountCurrency",
5710
+ internalType: "uint256",
5711
+ type: "uint256",
5712
+ indexed: false
5713
+ },
5714
+ { name: "tick", internalType: "int24", type: "int24", indexed: false },
5715
+ {
5716
+ name: "liquidity",
5717
+ internalType: "uint128",
5718
+ type: "uint128",
5719
+ indexed: false
5720
+ }
5721
+ ],
5722
+ name: "LpReward"
5723
+ },
5724
+ {
5725
+ type: "event",
5726
+ anonymous: false,
5727
+ inputs: [
5728
+ {
5729
+ name: "sender",
5730
+ internalType: "address",
5731
+ type: "address",
5732
+ indexed: true
5733
+ },
5734
+ {
5735
+ name: "swapSender",
5736
+ internalType: "address",
5737
+ type: "address",
5738
+ indexed: true
5739
+ },
5740
+ {
5741
+ name: "isTrustedSwapSenderAddress",
5742
+ internalType: "bool",
5743
+ type: "bool",
5744
+ indexed: false
5745
+ },
5746
+ {
5747
+ name: "key",
5748
+ internalType: "struct PoolKey",
5749
+ type: "tuple",
5750
+ components: [
5751
+ { name: "currency0", internalType: "Currency", type: "address" },
5752
+ { name: "currency1", internalType: "Currency", type: "address" },
5753
+ { name: "fee", internalType: "uint24", type: "uint24" },
5754
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5755
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5756
+ ],
5757
+ indexed: false
5758
+ },
5759
+ {
5760
+ name: "poolKeyHash",
5761
+ internalType: "bytes32",
5762
+ type: "bytes32",
5763
+ indexed: true
5764
+ },
5765
+ {
5766
+ name: "params",
5767
+ internalType: "struct SwapParams",
5768
+ type: "tuple",
5769
+ components: [
5770
+ { name: "zeroForOne", internalType: "bool", type: "bool" },
5771
+ { name: "amountSpecified", internalType: "int256", type: "int256" },
5772
+ {
5773
+ name: "sqrtPriceLimitX96",
5774
+ internalType: "uint160",
5775
+ type: "uint160"
5776
+ }
5777
+ ],
5778
+ indexed: false
5779
+ },
5780
+ {
5781
+ name: "amount0",
5782
+ internalType: "int128",
5783
+ type: "int128",
5784
+ indexed: false
5785
+ },
5786
+ {
5787
+ name: "amount1",
5788
+ internalType: "int128",
5789
+ type: "int128",
5790
+ indexed: false
5791
+ },
5792
+ { name: "isCoinBuy", internalType: "bool", type: "bool", indexed: false },
5793
+ {
5794
+ name: "hookData",
5795
+ internalType: "bytes",
5796
+ type: "bytes",
5797
+ indexed: false
5798
+ },
5799
+ {
5800
+ name: "sqrtPriceX96",
5801
+ internalType: "uint160",
5802
+ type: "uint160",
5803
+ indexed: false
5804
+ }
5805
+ ],
5806
+ name: "Swapped"
5807
+ },
5808
+ { type: "error", inputs: [], name: "CoinVersionLookupCannotBeZeroAddress" },
5809
+ { type: "error", inputs: [], name: "EthTransferFailed" },
5810
+ { type: "error", inputs: [], name: "HookNotImplemented" },
5811
+ {
5812
+ type: "error",
5813
+ inputs: [{ name: "callbackId", internalType: "uint8", type: "uint8" }],
5814
+ name: "InvalidCallbackId"
5815
+ },
5816
+ {
5817
+ type: "error",
5818
+ inputs: [{ name: "newHook", internalType: "address", type: "address" }],
5819
+ name: "InvalidNewHook"
5820
+ },
5821
+ {
5822
+ type: "error",
5823
+ inputs: [
5824
+ {
5825
+ name: "key",
5826
+ internalType: "struct PoolKey",
5827
+ type: "tuple",
5828
+ components: [
5829
+ { name: "currency0", internalType: "Currency", type: "address" },
5830
+ { name: "currency1", internalType: "Currency", type: "address" },
5831
+ { name: "fee", internalType: "uint24", type: "uint24" },
5832
+ { name: "tickSpacing", internalType: "int24", type: "int24" },
5833
+ { name: "hooks", internalType: "contract IHooks", type: "address" }
5834
+ ]
5835
+ }
5836
+ ],
5837
+ name: "NoCoinForHook"
5838
+ },
5839
+ {
5840
+ type: "error",
5841
+ inputs: [{ name: "coin", internalType: "address", type: "address" }],
5842
+ name: "NotACoin"
5843
+ },
5844
+ { type: "error", inputs: [], name: "NotPoolManager" },
5845
+ {
5846
+ type: "error",
5847
+ inputs: [
5848
+ { name: "caller", internalType: "address", type: "address" },
5849
+ { name: "expectedCoin", internalType: "address", type: "address" }
5850
+ ],
5851
+ name: "OnlyCoin"
5852
+ },
5853
+ { type: "error", inputs: [], name: "PathMustHaveAtLeastOneStep" },
5854
+ { type: "error", inputs: [], name: "SafeCastOverflow" },
5855
+ {
5856
+ type: "error",
5857
+ inputs: [{ name: "token", internalType: "address", type: "address" }],
5858
+ name: "SafeERC20FailedOperation"
5859
+ },
5860
+ {
5861
+ type: "error",
5862
+ inputs: [],
5863
+ name: "TrustedMsgSenderLookupCannotBeZeroAddress"
5864
+ },
5865
+ { type: "error", inputs: [], name: "UpgradeGateCannotBeZeroAddress" },
5866
+ {
5867
+ type: "error",
5868
+ inputs: [
5869
+ { name: "oldHook", internalType: "address", type: "address" },
5870
+ { name: "newHook", internalType: "address", type: "address" }
5871
+ ],
5872
+ name: "UpgradePathNotRegistered"
5873
+ },
5874
+ { type: "error", inputs: [], name: "ZoraHookRegistryCannotBeZeroAddress" },
5875
+ { type: "error", inputs: [], name: "ZoraLimitOrderBookCannotBeZeroAddress" }
5876
+ ];
4940
5877
  export {
4941
5878
  autoSwapperABI,
4942
5879
  baseCoinABI,
@@ -4946,7 +5883,7 @@ export {
4946
5883
  iPermit2ABI,
4947
5884
  iPoolConfigEncodingABI,
4948
5885
  iUniswapV3PoolABI,
4949
- iUniversalRouterABI,
4950
- zoraFactoryImplABI
5886
+ zoraFactoryImplABI,
5887
+ zoraV4CoinHookABI
4951
5888
  };
4952
5889
  //# sourceMappingURL=index.js.map