@zoralabs/coins 2.4.1 → 2.6.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 (55) hide show
  1. package/.abi-stability +923 -0
  2. package/.turbo/turbo-build$colon$js.log +143 -129
  3. package/CHANGELOG.md +38 -16
  4. package/abis/BaseCoin.json +23 -0
  5. package/abis/ContentCoin.json +23 -0
  6. package/abis/CreatorCoin.json +18 -0
  7. package/abis/ICoin.json +5 -0
  8. package/abis/ICoinV3.json +5 -0
  9. package/abis/IHasCreationInfo.json +20 -0
  10. package/abis/ITrendCoin.json +130 -0
  11. package/abis/ITrendCoinErrors.json +23 -0
  12. package/abis/IUniversalRouter.json +61 -0
  13. package/abis/IZoraFactory.json +227 -0
  14. package/abis/TrendCoin.json +2043 -0
  15. package/abis/ZoraFactoryImpl.json +232 -0
  16. package/dist/index.cjs +962 -117
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.js +960 -117
  19. package/dist/index.js.map +1 -1
  20. package/dist/wagmiGenerated.d.ts +1404 -131
  21. package/dist/wagmiGenerated.d.ts.map +1 -1
  22. package/package/wagmiGenerated.ts +970 -119
  23. package/package.json +4 -2
  24. package/src/BaseCoin.sol +44 -14
  25. package/src/ContentCoin.sol +20 -1
  26. package/src/CreatorCoin.sol +3 -0
  27. package/src/TrendCoin.sol +117 -0
  28. package/src/ZoraFactoryImpl.sol +142 -1
  29. package/src/hooks/ZoraV4CoinHook.sol +73 -8
  30. package/src/interfaces/ICoin.sol +5 -1
  31. package/src/interfaces/ICreatorCoin.sol +0 -3
  32. package/src/interfaces/IHasCreationInfo.sol +12 -0
  33. package/src/interfaces/IPoolManager.sol +13 -0
  34. package/src/interfaces/ITrendCoin.sol +26 -0
  35. package/src/interfaces/ITrendCoinErrors.sol +18 -0
  36. package/src/interfaces/IZoraFactory.sol +60 -1
  37. package/src/libs/CoinConstants.sol +25 -1
  38. package/src/libs/CoinRewardsV4.sol +67 -19
  39. package/src/libs/CoinSetup.sol +7 -1
  40. package/src/libs/TickerUtils.sol +84 -0
  41. package/src/libs/UniV4SwapToCurrency.sol +2 -1
  42. package/src/libs/V3ToV4SwapLib.sol +7 -3
  43. package/src/version/ContractVersionBase.sol +1 -1
  44. package/test/CoinUniV4.t.sol +4 -0
  45. package/test/ContentCoinRewards.t.sol +1 -0
  46. package/test/CreatorCoin.t.sol +2 -1
  47. package/test/CreatorCoinRewards.t.sol +1 -0
  48. package/test/Factory.t.sol +31 -5
  49. package/test/LaunchFee.t.sol +284 -0
  50. package/test/LiquidityMigration.t.sol +0 -2
  51. package/test/TrendCoin.t.sol +1077 -0
  52. package/test/Upgrades.t.sol +16 -3
  53. package/test/utils/FeeEstimatorHook.sol +33 -8
  54. package/test/utils/V4TestSetup.sol +36 -4
  55. package/wagmi.config.ts +2 -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: [],
@@ -1134,6 +1144,7 @@ export const baseCoinABI = [
1134
1144
  ],
1135
1145
  name: 'InvalidAccountNonce',
1136
1146
  },
1147
+ { type: 'error', inputs: [], name: 'InvalidCurrency' },
1137
1148
  { type: 'error', inputs: [], name: 'InvalidCurrencyLowerTick' },
1138
1149
  { type: 'error', inputs: [], name: 'InvalidInitialization' },
1139
1150
  { type: 'error', inputs: [], name: 'InvalidMarketType' },
@@ -1488,6 +1499,16 @@ export const contentCoinABI = [
1488
1499
  outputs: [{ name: '', internalType: 'string', type: 'string' }],
1489
1500
  stateMutability: 'pure',
1490
1501
  },
1502
+ {
1503
+ type: 'function',
1504
+ inputs: [],
1505
+ name: 'creationInfo',
1506
+ outputs: [
1507
+ { name: 'creationTimestamp', internalType: 'uint256', type: 'uint256' },
1508
+ { name: 'isDeploying', internalType: 'bool', type: 'bool' },
1509
+ ],
1510
+ stateMutability: 'view',
1511
+ },
1491
1512
  {
1492
1513
  type: 'function',
1493
1514
  inputs: [],
@@ -2435,6 +2456,7 @@ export const contentCoinABI = [
2435
2456
  ],
2436
2457
  name: 'InvalidAccountNonce',
2437
2458
  },
2459
+ { type: 'error', inputs: [], name: 'InvalidCurrency' },
2438
2460
  { type: 'error', inputs: [], name: 'InvalidCurrencyLowerTick' },
2439
2461
  { type: 'error', inputs: [], name: 'InvalidInitialization' },
2440
2462
  { type: 'error', inputs: [], name: 'InvalidMarketType' },
@@ -2596,6 +2618,16 @@ export const creatorCoinABI = [
2596
2618
  outputs: [{ name: '', internalType: 'string', type: 'string' }],
2597
2619
  stateMutability: 'pure',
2598
2620
  },
2621
+ {
2622
+ type: 'function',
2623
+ inputs: [],
2624
+ name: 'creationInfo',
2625
+ outputs: [
2626
+ { name: 'creationTimestamp', internalType: 'uint256', type: 'uint256' },
2627
+ { name: 'isDeploying', internalType: 'bool', type: 'bool' },
2628
+ ],
2629
+ stateMutability: 'view',
2630
+ },
2599
2631
  {
2600
2632
  type: 'function',
2601
2633
  inputs: [],
@@ -4194,60 +4226,60 @@ export const iPoolConfigEncodingABI = [
4194
4226
  ] as const
4195
4227
 
4196
4228
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4197
- // IUniswapV3Pool
4229
+ // IPoolManager
4198
4230
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4199
4231
 
4200
- export const iUniswapV3PoolABI = [
4232
+ export const iPoolManagerABI = [
4201
4233
  {
4202
4234
  type: 'function',
4203
4235
  inputs: [
4204
- { name: 'tickLower', internalType: 'int24', type: 'int24' },
4205
- { name: 'tickUpper', internalType: 'int24', type: 'int24' },
4206
- { name: 'amount', internalType: 'uint128', type: 'uint128' },
4207
- ],
4208
- name: 'burn',
4209
- outputs: [
4210
- { name: 'amount0', internalType: 'uint256', type: 'uint256' },
4211
- { name: 'amount1', internalType: 'uint256', type: 'uint256' },
4236
+ { name: 'owner', internalType: 'address', type: 'address' },
4237
+ { name: 'spender', internalType: 'address', type: 'address' },
4238
+ { name: 'id', internalType: 'uint256', type: 'uint256' },
4212
4239
  ],
4213
- stateMutability: 'nonpayable',
4240
+ name: 'allowance',
4241
+ outputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }],
4242
+ stateMutability: 'view',
4214
4243
  },
4215
4244
  {
4216
4245
  type: 'function',
4217
4246
  inputs: [
4218
- { name: 'recipient', internalType: 'address', type: 'address' },
4219
- { name: 'tickLower', internalType: 'int24', type: 'int24' },
4220
- { name: 'tickUpper', internalType: 'int24', type: 'int24' },
4221
- { name: 'amount0Requested', internalType: 'uint128', type: 'uint128' },
4222
- { name: 'amount1Requested', internalType: 'uint128', type: 'uint128' },
4223
- ],
4224
- name: 'collect',
4225
- outputs: [
4226
- { name: 'amount0', internalType: 'uint128', type: 'uint128' },
4227
- { name: 'amount1', internalType: 'uint128', type: 'uint128' },
4247
+ { name: 'spender', internalType: 'address', type: 'address' },
4248
+ { name: 'id', internalType: 'uint256', type: 'uint256' },
4249
+ { name: 'amount', internalType: 'uint256', type: 'uint256' },
4228
4250
  ],
4251
+ name: 'approve',
4252
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
4229
4253
  stateMutability: 'nonpayable',
4230
4254
  },
4231
4255
  {
4232
4256
  type: 'function',
4233
- inputs: [],
4234
- name: 'feeGrowthGlobal0X128',
4235
- outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
4257
+ inputs: [
4258
+ { name: 'owner', internalType: 'address', type: 'address' },
4259
+ { name: 'id', internalType: 'uint256', type: 'uint256' },
4260
+ ],
4261
+ name: 'balanceOf',
4262
+ outputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }],
4236
4263
  stateMutability: 'view',
4237
4264
  },
4238
4265
  {
4239
4266
  type: 'function',
4240
- inputs: [],
4241
- name: 'feeGrowthGlobal1X128',
4242
- outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
4243
- stateMutability: 'view',
4267
+ inputs: [
4268
+ { name: 'from', internalType: 'address', type: 'address' },
4269
+ { name: 'id', internalType: 'uint256', type: 'uint256' },
4270
+ { name: 'amount', internalType: 'uint256', type: 'uint256' },
4271
+ ],
4272
+ name: 'burn',
4273
+ outputs: [],
4274
+ stateMutability: 'nonpayable',
4244
4275
  },
4245
4276
  {
4246
4277
  type: 'function',
4247
4278
  inputs: [
4248
- { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' },
4279
+ { name: 'currency', internalType: 'Currency', type: 'address' },
4280
+ { name: 'amount', internalType: 'uint256', type: 'uint256' },
4249
4281
  ],
4250
- name: 'initialize',
4282
+ name: 'clear',
4251
4283
  outputs: [],
4252
4284
  stateMutability: 'nonpayable',
4253
4285
  },
@@ -4255,162 +4287,848 @@ export const iUniswapV3PoolABI = [
4255
4287
  type: 'function',
4256
4288
  inputs: [
4257
4289
  { name: 'recipient', internalType: 'address', type: 'address' },
4258
- { name: 'tickLower', internalType: 'int24', type: 'int24' },
4259
- { name: 'tickUpper', internalType: 'int24', type: 'int24' },
4260
- { name: 'amount', internalType: 'uint128', type: 'uint128' },
4261
- { name: 'data', internalType: 'bytes', type: 'bytes' },
4290
+ { name: 'currency', internalType: 'Currency', type: 'address' },
4291
+ { name: 'amount', internalType: 'uint256', type: 'uint256' },
4262
4292
  ],
4263
- name: 'mint',
4293
+ name: 'collectProtocolFees',
4264
4294
  outputs: [
4265
- { name: 'amount0', internalType: 'uint256', type: 'uint256' },
4266
- { name: 'amount1', internalType: 'uint256', type: 'uint256' },
4295
+ { name: 'amountCollected', internalType: 'uint256', type: 'uint256' },
4267
4296
  ],
4268
4297
  stateMutability: 'nonpayable',
4269
4298
  },
4270
4299
  {
4271
4300
  type: 'function',
4272
- inputs: [],
4273
- name: 'slot0',
4274
- outputs: [
4301
+ inputs: [
4275
4302
  {
4276
- name: 'slot0',
4277
- internalType: 'struct IUniswapV3Pool.Slot0',
4303
+ name: 'key',
4304
+ internalType: 'struct PoolKey',
4278
4305
  type: 'tuple',
4279
4306
  components: [
4280
- { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' },
4281
- { name: 'tick', internalType: 'int24', type: 'int24' },
4282
- { name: 'observationIndex', internalType: 'uint16', type: 'uint16' },
4283
- {
4284
- name: 'observationCardinality',
4285
- internalType: 'uint16',
4286
- type: 'uint16',
4287
- },
4288
- {
4289
- name: 'observationCardinalityNext',
4290
- internalType: 'uint16',
4291
- type: 'uint16',
4292
- },
4293
- { name: 'feeProtocol', internalType: 'uint8', type: 'uint8' },
4294
- { name: 'unlocked', internalType: 'bool', type: 'bool' },
4307
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
4308
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
4309
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
4310
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
4311
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
4295
4312
  ],
4296
4313
  },
4314
+ { name: 'amount0', internalType: 'uint256', type: 'uint256' },
4315
+ { name: 'amount1', internalType: 'uint256', type: 'uint256' },
4316
+ { name: 'hookData', internalType: 'bytes', type: 'bytes' },
4297
4317
  ],
4318
+ name: 'donate',
4319
+ outputs: [{ name: '', internalType: 'BalanceDelta', type: 'int256' }],
4320
+ stateMutability: 'nonpayable',
4321
+ },
4322
+ {
4323
+ type: 'function',
4324
+ inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],
4325
+ name: 'extsload',
4326
+ outputs: [{ name: 'value', internalType: 'bytes32', type: 'bytes32' }],
4298
4327
  stateMutability: 'view',
4299
4328
  },
4300
4329
  {
4301
4330
  type: 'function',
4302
4331
  inputs: [
4303
- { name: 'recipient', internalType: 'address', type: 'address' },
4304
- { name: 'zeroForOne', internalType: 'bool', type: 'bool' },
4305
- { name: 'amountSpecified', internalType: 'int256', type: 'int256' },
4306
- { name: 'sqrtPriceLimitX96', internalType: 'uint160', type: 'uint160' },
4307
- { name: 'data', internalType: 'bytes', type: 'bytes' },
4308
- ],
4309
- name: 'swap',
4310
- outputs: [
4311
- { name: 'amount0', internalType: 'int256', type: 'int256' },
4312
- { name: 'amount1', internalType: 'int256', type: 'int256' },
4332
+ { name: 'startSlot', internalType: 'bytes32', type: 'bytes32' },
4333
+ { name: 'nSlots', internalType: 'uint256', type: 'uint256' },
4313
4334
  ],
4314
- stateMutability: 'nonpayable',
4335
+ name: 'extsload',
4336
+ outputs: [{ name: 'values', internalType: 'bytes32[]', type: 'bytes32[]' }],
4337
+ stateMutability: 'view',
4315
4338
  },
4316
4339
  {
4317
4340
  type: 'function',
4318
- inputs: [],
4319
- name: 'token0',
4320
- outputs: [{ name: '', internalType: 'address', type: 'address' }],
4321
- stateMutability: 'nonpayable',
4341
+ inputs: [{ name: 'slots', internalType: 'bytes32[]', type: 'bytes32[]' }],
4342
+ name: 'extsload',
4343
+ outputs: [{ name: 'values', internalType: 'bytes32[]', type: 'bytes32[]' }],
4344
+ stateMutability: 'view',
4322
4345
  },
4323
4346
  {
4324
4347
  type: 'function',
4325
- inputs: [],
4326
- name: 'token1',
4327
- outputs: [{ name: '', internalType: 'address', type: 'address' }],
4328
- stateMutability: 'nonpayable',
4348
+ inputs: [{ name: 'slots', internalType: 'bytes32[]', type: 'bytes32[]' }],
4349
+ name: 'exttload',
4350
+ outputs: [{ name: 'values', internalType: 'bytes32[]', type: 'bytes32[]' }],
4351
+ stateMutability: 'view',
4329
4352
  },
4330
- ] as const
4331
-
4332
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4333
- // ZoraFactoryImpl
4334
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4335
-
4336
- export const zoraFactoryImplABI = [
4337
4353
  {
4338
- type: 'constructor',
4354
+ type: 'function',
4355
+ inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],
4356
+ name: 'exttload',
4357
+ outputs: [{ name: 'value', internalType: 'bytes32', type: 'bytes32' }],
4358
+ stateMutability: 'view',
4359
+ },
4360
+ {
4361
+ type: 'function',
4339
4362
  inputs: [
4340
- { name: 'coinV4Impl_', internalType: 'address', type: 'address' },
4341
- { name: 'creatorCoinImpl_', internalType: 'address', type: 'address' },
4342
- { name: 'hook_', internalType: 'address', type: 'address' },
4343
- { name: 'zoraHookRegistry_', internalType: 'address', type: 'address' },
4363
+ {
4364
+ name: 'key',
4365
+ internalType: 'struct PoolKey',
4366
+ type: 'tuple',
4367
+ components: [
4368
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
4369
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
4370
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
4371
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
4372
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
4373
+ ],
4374
+ },
4375
+ { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' },
4344
4376
  ],
4377
+ name: 'initialize',
4378
+ outputs: [{ name: 'tick', internalType: 'int24', type: 'int24' }],
4345
4379
  stateMutability: 'nonpayable',
4346
4380
  },
4347
4381
  {
4348
4382
  type: 'function',
4349
- inputs: [],
4350
- name: 'UPGRADE_INTERFACE_VERSION',
4351
- outputs: [{ name: '', internalType: 'string', type: 'string' }],
4383
+ inputs: [
4384
+ { name: 'owner', internalType: 'address', type: 'address' },
4385
+ { name: 'spender', internalType: 'address', type: 'address' },
4386
+ ],
4387
+ name: 'isOperator',
4388
+ outputs: [{ name: 'approved', internalType: 'bool', type: 'bool' }],
4352
4389
  stateMutability: 'view',
4353
4390
  },
4354
4391
  {
4355
4392
  type: 'function',
4356
- inputs: [],
4357
- name: 'acceptOwnership',
4393
+ inputs: [
4394
+ { name: 'to', internalType: 'address', type: 'address' },
4395
+ { name: 'id', internalType: 'uint256', type: 'uint256' },
4396
+ { name: 'amount', internalType: 'uint256', type: 'uint256' },
4397
+ ],
4398
+ name: 'mint',
4358
4399
  outputs: [],
4359
4400
  stateMutability: 'nonpayable',
4360
4401
  },
4361
4402
  {
4362
4403
  type: 'function',
4363
4404
  inputs: [
4364
- { name: 'msgSender', internalType: 'address', type: 'address' },
4365
- { name: 'name', internalType: 'string', type: 'string' },
4366
- { name: 'symbol', internalType: 'string', type: 'string' },
4367
- { name: 'poolConfig', internalType: 'bytes', type: 'bytes' },
4368
- { name: 'platformReferrer', internalType: 'address', type: 'address' },
4369
- { name: 'coinSalt', internalType: 'bytes32', type: 'bytes32' },
4405
+ {
4406
+ name: 'key',
4407
+ internalType: 'struct PoolKey',
4408
+ type: 'tuple',
4409
+ components: [
4410
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
4411
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
4412
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
4413
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
4414
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
4415
+ ],
4416
+ },
4417
+ {
4418
+ name: 'params',
4419
+ internalType: 'struct ModifyLiquidityParams',
4420
+ type: 'tuple',
4421
+ components: [
4422
+ { name: 'tickLower', internalType: 'int24', type: 'int24' },
4423
+ { name: 'tickUpper', internalType: 'int24', type: 'int24' },
4424
+ { name: 'liquidityDelta', internalType: 'int256', type: 'int256' },
4425
+ { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
4426
+ ],
4427
+ },
4428
+ { name: 'hookData', internalType: 'bytes', type: 'bytes' },
4370
4429
  ],
4371
- name: 'coinAddress',
4372
- outputs: [{ name: '', internalType: 'address', type: 'address' }],
4373
- stateMutability: 'view',
4430
+ name: 'modifyLiquidity',
4431
+ outputs: [
4432
+ { name: 'callerDelta', internalType: 'BalanceDelta', type: 'int256' },
4433
+ { name: 'feesAccrued', internalType: 'BalanceDelta', type: 'int256' },
4434
+ ],
4435
+ stateMutability: 'nonpayable',
4374
4436
  },
4375
4437
  {
4376
4438
  type: 'function',
4377
4439
  inputs: [],
4378
- name: 'coinV4Impl',
4440
+ name: 'protocolFeeController',
4379
4441
  outputs: [{ name: '', internalType: 'address', type: 'address' }],
4380
4442
  stateMutability: 'view',
4381
4443
  },
4382
4444
  {
4383
4445
  type: 'function',
4384
- inputs: [],
4385
- name: 'contentCoinHook',
4386
- outputs: [{ name: '', internalType: 'address', type: 'address' }],
4446
+ inputs: [{ name: 'currency', internalType: 'Currency', type: 'address' }],
4447
+ name: 'protocolFeesAccrued',
4448
+ outputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }],
4387
4449
  stateMutability: 'view',
4388
4450
  },
4389
4451
  {
4390
4452
  type: 'function',
4391
- inputs: [],
4392
- name: 'contractName',
4393
- outputs: [{ name: '', internalType: 'string', type: 'string' }],
4394
- stateMutability: 'pure',
4453
+ inputs: [
4454
+ { name: 'operator', internalType: 'address', type: 'address' },
4455
+ { name: 'approved', internalType: 'bool', type: 'bool' },
4456
+ ],
4457
+ name: 'setOperator',
4458
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
4459
+ stateMutability: 'nonpayable',
4395
4460
  },
4396
4461
  {
4397
4462
  type: 'function',
4398
- inputs: [],
4399
- name: 'contractVersion',
4400
- outputs: [{ name: '', internalType: 'string', type: 'string' }],
4401
- stateMutability: 'pure',
4463
+ inputs: [
4464
+ {
4465
+ name: 'key',
4466
+ internalType: 'struct PoolKey',
4467
+ type: 'tuple',
4468
+ components: [
4469
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
4470
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
4471
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
4472
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
4473
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
4474
+ ],
4475
+ },
4476
+ { name: 'newProtocolFee', internalType: 'uint24', type: 'uint24' },
4477
+ ],
4478
+ name: 'setProtocolFee',
4479
+ outputs: [],
4480
+ stateMutability: 'nonpayable',
4402
4481
  },
4403
4482
  {
4404
4483
  type: 'function',
4405
- inputs: [],
4406
- name: 'creatorCoinHook',
4407
- outputs: [{ name: '', internalType: 'address', type: 'address' }],
4408
- stateMutability: 'view',
4484
+ inputs: [{ name: 'controller', internalType: 'address', type: 'address' }],
4485
+ name: 'setProtocolFeeController',
4486
+ outputs: [],
4487
+ stateMutability: 'nonpayable',
4409
4488
  },
4410
4489
  {
4411
4490
  type: 'function',
4412
4491
  inputs: [],
4413
- name: 'creatorCoinImpl',
4492
+ name: 'settle',
4493
+ outputs: [{ name: 'paid', internalType: 'uint256', type: 'uint256' }],
4494
+ stateMutability: 'payable',
4495
+ },
4496
+ {
4497
+ type: 'function',
4498
+ inputs: [{ name: 'recipient', internalType: 'address', type: 'address' }],
4499
+ name: 'settleFor',
4500
+ outputs: [{ name: 'paid', internalType: 'uint256', type: 'uint256' }],
4501
+ stateMutability: 'payable',
4502
+ },
4503
+ {
4504
+ type: 'function',
4505
+ inputs: [
4506
+ {
4507
+ name: 'key',
4508
+ internalType: 'struct PoolKey',
4509
+ type: 'tuple',
4510
+ components: [
4511
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
4512
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
4513
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
4514
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
4515
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
4516
+ ],
4517
+ },
4518
+ {
4519
+ name: 'params',
4520
+ internalType: 'struct SwapParams',
4521
+ type: 'tuple',
4522
+ components: [
4523
+ { name: 'zeroForOne', internalType: 'bool', type: 'bool' },
4524
+ { name: 'amountSpecified', internalType: 'int256', type: 'int256' },
4525
+ {
4526
+ name: 'sqrtPriceLimitX96',
4527
+ internalType: 'uint160',
4528
+ type: 'uint160',
4529
+ },
4530
+ ],
4531
+ },
4532
+ { name: 'hookData', internalType: 'bytes', type: 'bytes' },
4533
+ ],
4534
+ name: 'swap',
4535
+ outputs: [
4536
+ { name: 'swapDelta', internalType: 'BalanceDelta', type: 'int256' },
4537
+ ],
4538
+ stateMutability: 'nonpayable',
4539
+ },
4540
+ {
4541
+ type: 'function',
4542
+ inputs: [{ name: 'currency', internalType: 'Currency', type: 'address' }],
4543
+ name: 'sync',
4544
+ outputs: [],
4545
+ stateMutability: 'nonpayable',
4546
+ },
4547
+ {
4548
+ type: 'function',
4549
+ inputs: [
4550
+ { name: 'currency', internalType: 'Currency', type: 'address' },
4551
+ { name: 'to', internalType: 'address', type: 'address' },
4552
+ { name: 'amount', internalType: 'uint256', type: 'uint256' },
4553
+ ],
4554
+ name: 'take',
4555
+ outputs: [],
4556
+ stateMutability: 'nonpayable',
4557
+ },
4558
+ {
4559
+ type: 'function',
4560
+ inputs: [
4561
+ { name: 'receiver', internalType: 'address', type: 'address' },
4562
+ { name: 'id', internalType: 'uint256', type: 'uint256' },
4563
+ { name: 'amount', internalType: 'uint256', type: 'uint256' },
4564
+ ],
4565
+ name: 'transfer',
4566
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
4567
+ stateMutability: 'nonpayable',
4568
+ },
4569
+ {
4570
+ type: 'function',
4571
+ inputs: [
4572
+ { name: 'sender', internalType: 'address', type: 'address' },
4573
+ { name: 'receiver', internalType: 'address', type: 'address' },
4574
+ { name: 'id', internalType: 'uint256', type: 'uint256' },
4575
+ { name: 'amount', internalType: 'uint256', type: 'uint256' },
4576
+ ],
4577
+ name: 'transferFrom',
4578
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
4579
+ stateMutability: 'nonpayable',
4580
+ },
4581
+ {
4582
+ type: 'function',
4583
+ inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],
4584
+ name: 'unlock',
4585
+ outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],
4586
+ stateMutability: 'nonpayable',
4587
+ },
4588
+ {
4589
+ type: 'function',
4590
+ inputs: [
4591
+ {
4592
+ name: 'key',
4593
+ internalType: 'struct PoolKey',
4594
+ type: 'tuple',
4595
+ components: [
4596
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
4597
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
4598
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
4599
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
4600
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
4601
+ ],
4602
+ },
4603
+ { name: 'newDynamicLPFee', internalType: 'uint24', type: 'uint24' },
4604
+ ],
4605
+ name: 'updateDynamicLPFee',
4606
+ outputs: [],
4607
+ stateMutability: 'nonpayable',
4608
+ },
4609
+ {
4610
+ type: 'event',
4611
+ anonymous: false,
4612
+ inputs: [
4613
+ {
4614
+ name: 'owner',
4615
+ internalType: 'address',
4616
+ type: 'address',
4617
+ indexed: true,
4618
+ },
4619
+ {
4620
+ name: 'spender',
4621
+ internalType: 'address',
4622
+ type: 'address',
4623
+ indexed: true,
4624
+ },
4625
+ { name: 'id', internalType: 'uint256', type: 'uint256', indexed: true },
4626
+ {
4627
+ name: 'amount',
4628
+ internalType: 'uint256',
4629
+ type: 'uint256',
4630
+ indexed: false,
4631
+ },
4632
+ ],
4633
+ name: 'Approval',
4634
+ },
4635
+ {
4636
+ type: 'event',
4637
+ anonymous: false,
4638
+ inputs: [
4639
+ { name: 'id', internalType: 'PoolId', type: 'bytes32', indexed: true },
4640
+ {
4641
+ name: 'sender',
4642
+ internalType: 'address',
4643
+ type: 'address',
4644
+ indexed: true,
4645
+ },
4646
+ {
4647
+ name: 'amount0',
4648
+ internalType: 'uint256',
4649
+ type: 'uint256',
4650
+ indexed: false,
4651
+ },
4652
+ {
4653
+ name: 'amount1',
4654
+ internalType: 'uint256',
4655
+ type: 'uint256',
4656
+ indexed: false,
4657
+ },
4658
+ ],
4659
+ name: 'Donate',
4660
+ },
4661
+ {
4662
+ type: 'event',
4663
+ anonymous: false,
4664
+ inputs: [
4665
+ { name: 'id', internalType: 'PoolId', type: 'bytes32', indexed: true },
4666
+ {
4667
+ name: 'currency0',
4668
+ internalType: 'Currency',
4669
+ type: 'address',
4670
+ indexed: true,
4671
+ },
4672
+ {
4673
+ name: 'currency1',
4674
+ internalType: 'Currency',
4675
+ type: 'address',
4676
+ indexed: true,
4677
+ },
4678
+ { name: 'fee', internalType: 'uint24', type: 'uint24', indexed: false },
4679
+ {
4680
+ name: 'tickSpacing',
4681
+ internalType: 'int24',
4682
+ type: 'int24',
4683
+ indexed: false,
4684
+ },
4685
+ {
4686
+ name: 'hooks',
4687
+ internalType: 'contract IHooks',
4688
+ type: 'address',
4689
+ indexed: false,
4690
+ },
4691
+ {
4692
+ name: 'sqrtPriceX96',
4693
+ internalType: 'uint160',
4694
+ type: 'uint160',
4695
+ indexed: false,
4696
+ },
4697
+ { name: 'tick', internalType: 'int24', type: 'int24', indexed: false },
4698
+ ],
4699
+ name: 'Initialize',
4700
+ },
4701
+ {
4702
+ type: 'event',
4703
+ anonymous: false,
4704
+ inputs: [
4705
+ { name: 'id', internalType: 'PoolId', type: 'bytes32', indexed: true },
4706
+ {
4707
+ name: 'sender',
4708
+ internalType: 'address',
4709
+ type: 'address',
4710
+ indexed: true,
4711
+ },
4712
+ {
4713
+ name: 'tickLower',
4714
+ internalType: 'int24',
4715
+ type: 'int24',
4716
+ indexed: false,
4717
+ },
4718
+ {
4719
+ name: 'tickUpper',
4720
+ internalType: 'int24',
4721
+ type: 'int24',
4722
+ indexed: false,
4723
+ },
4724
+ {
4725
+ name: 'liquidityDelta',
4726
+ internalType: 'int256',
4727
+ type: 'int256',
4728
+ indexed: false,
4729
+ },
4730
+ {
4731
+ name: 'salt',
4732
+ internalType: 'bytes32',
4733
+ type: 'bytes32',
4734
+ indexed: false,
4735
+ },
4736
+ ],
4737
+ name: 'ModifyLiquidity',
4738
+ },
4739
+ {
4740
+ type: 'event',
4741
+ anonymous: false,
4742
+ inputs: [
4743
+ {
4744
+ name: 'owner',
4745
+ internalType: 'address',
4746
+ type: 'address',
4747
+ indexed: true,
4748
+ },
4749
+ {
4750
+ name: 'operator',
4751
+ internalType: 'address',
4752
+ type: 'address',
4753
+ indexed: true,
4754
+ },
4755
+ { name: 'approved', internalType: 'bool', type: 'bool', indexed: false },
4756
+ ],
4757
+ name: 'OperatorSet',
4758
+ },
4759
+ {
4760
+ type: 'event',
4761
+ anonymous: false,
4762
+ inputs: [
4763
+ {
4764
+ name: 'protocolFeeController',
4765
+ internalType: 'address',
4766
+ type: 'address',
4767
+ indexed: true,
4768
+ },
4769
+ ],
4770
+ name: 'ProtocolFeeControllerUpdated',
4771
+ },
4772
+ {
4773
+ type: 'event',
4774
+ anonymous: false,
4775
+ inputs: [
4776
+ { name: 'id', internalType: 'PoolId', type: 'bytes32', indexed: true },
4777
+ {
4778
+ name: 'protocolFee',
4779
+ internalType: 'uint24',
4780
+ type: 'uint24',
4781
+ indexed: false,
4782
+ },
4783
+ ],
4784
+ name: 'ProtocolFeeUpdated',
4785
+ },
4786
+ {
4787
+ type: 'event',
4788
+ anonymous: false,
4789
+ inputs: [
4790
+ { name: 'id', internalType: 'PoolId', type: 'bytes32', indexed: true },
4791
+ {
4792
+ name: 'sender',
4793
+ internalType: 'address',
4794
+ type: 'address',
4795
+ indexed: true,
4796
+ },
4797
+ {
4798
+ name: 'amount0',
4799
+ internalType: 'int128',
4800
+ type: 'int128',
4801
+ indexed: false,
4802
+ },
4803
+ {
4804
+ name: 'amount1',
4805
+ internalType: 'int128',
4806
+ type: 'int128',
4807
+ indexed: false,
4808
+ },
4809
+ {
4810
+ name: 'sqrtPriceX96',
4811
+ internalType: 'uint160',
4812
+ type: 'uint160',
4813
+ indexed: false,
4814
+ },
4815
+ {
4816
+ name: 'liquidity',
4817
+ internalType: 'uint128',
4818
+ type: 'uint128',
4819
+ indexed: false,
4820
+ },
4821
+ { name: 'tick', internalType: 'int24', type: 'int24', indexed: false },
4822
+ { name: 'fee', internalType: 'uint24', type: 'uint24', indexed: false },
4823
+ ],
4824
+ name: 'Swap',
4825
+ },
4826
+ {
4827
+ type: 'event',
4828
+ anonymous: false,
4829
+ inputs: [
4830
+ {
4831
+ name: 'caller',
4832
+ internalType: 'address',
4833
+ type: 'address',
4834
+ indexed: false,
4835
+ },
4836
+ { name: 'from', internalType: 'address', type: 'address', indexed: true },
4837
+ { name: 'to', internalType: 'address', type: 'address', indexed: true },
4838
+ { name: 'id', internalType: 'uint256', type: 'uint256', indexed: true },
4839
+ {
4840
+ name: 'amount',
4841
+ internalType: 'uint256',
4842
+ type: 'uint256',
4843
+ indexed: false,
4844
+ },
4845
+ ],
4846
+ name: 'Transfer',
4847
+ },
4848
+ { type: 'error', inputs: [], name: 'AlreadyUnlocked' },
4849
+ {
4850
+ type: 'error',
4851
+ inputs: [
4852
+ { name: 'currency0', internalType: 'address', type: 'address' },
4853
+ { name: 'currency1', internalType: 'address', type: 'address' },
4854
+ ],
4855
+ name: 'CurrenciesOutOfOrderOrEqual',
4856
+ },
4857
+ { type: 'error', inputs: [], name: 'CurrencyNotSettled' },
4858
+ { type: 'error', inputs: [], name: 'InvalidCaller' },
4859
+ { type: 'error', inputs: [], name: 'ManagerLocked' },
4860
+ { type: 'error', inputs: [], name: 'MustClearExactPositiveDelta' },
4861
+ { type: 'error', inputs: [], name: 'NonzeroNativeValue' },
4862
+ { type: 'error', inputs: [], name: 'PoolNotInitialized' },
4863
+ { type: 'error', inputs: [], name: 'ProtocolFeeCurrencySynced' },
4864
+ {
4865
+ type: 'error',
4866
+ inputs: [{ name: 'fee', internalType: 'uint24', type: 'uint24' }],
4867
+ name: 'ProtocolFeeTooLarge',
4868
+ },
4869
+ { type: 'error', inputs: [], name: 'SwapAmountCannotBeZero' },
4870
+ {
4871
+ type: 'error',
4872
+ inputs: [{ name: 'tickSpacing', internalType: 'int24', type: 'int24' }],
4873
+ name: 'TickSpacingTooLarge',
4874
+ },
4875
+ {
4876
+ type: 'error',
4877
+ inputs: [{ name: 'tickSpacing', internalType: 'int24', type: 'int24' }],
4878
+ name: 'TickSpacingTooSmall',
4879
+ },
4880
+ { type: 'error', inputs: [], name: 'UnauthorizedDynamicLPFeeUpdate' },
4881
+ ] as const
4882
+
4883
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4884
+ // IUniswapV3Pool
4885
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4886
+
4887
+ export const iUniswapV3PoolABI = [
4888
+ {
4889
+ type: 'function',
4890
+ inputs: [
4891
+ { name: 'tickLower', internalType: 'int24', type: 'int24' },
4892
+ { name: 'tickUpper', internalType: 'int24', type: 'int24' },
4893
+ { name: 'amount', internalType: 'uint128', type: 'uint128' },
4894
+ ],
4895
+ name: 'burn',
4896
+ outputs: [
4897
+ { name: 'amount0', internalType: 'uint256', type: 'uint256' },
4898
+ { name: 'amount1', internalType: 'uint256', type: 'uint256' },
4899
+ ],
4900
+ stateMutability: 'nonpayable',
4901
+ },
4902
+ {
4903
+ type: 'function',
4904
+ inputs: [
4905
+ { name: 'recipient', internalType: 'address', type: 'address' },
4906
+ { name: 'tickLower', internalType: 'int24', type: 'int24' },
4907
+ { name: 'tickUpper', internalType: 'int24', type: 'int24' },
4908
+ { name: 'amount0Requested', internalType: 'uint128', type: 'uint128' },
4909
+ { name: 'amount1Requested', internalType: 'uint128', type: 'uint128' },
4910
+ ],
4911
+ name: 'collect',
4912
+ outputs: [
4913
+ { name: 'amount0', internalType: 'uint128', type: 'uint128' },
4914
+ { name: 'amount1', internalType: 'uint128', type: 'uint128' },
4915
+ ],
4916
+ stateMutability: 'nonpayable',
4917
+ },
4918
+ {
4919
+ type: 'function',
4920
+ inputs: [],
4921
+ name: 'feeGrowthGlobal0X128',
4922
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
4923
+ stateMutability: 'view',
4924
+ },
4925
+ {
4926
+ type: 'function',
4927
+ inputs: [],
4928
+ name: 'feeGrowthGlobal1X128',
4929
+ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
4930
+ stateMutability: 'view',
4931
+ },
4932
+ {
4933
+ type: 'function',
4934
+ inputs: [
4935
+ { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' },
4936
+ ],
4937
+ name: 'initialize',
4938
+ outputs: [],
4939
+ stateMutability: 'nonpayable',
4940
+ },
4941
+ {
4942
+ type: 'function',
4943
+ inputs: [
4944
+ { name: 'recipient', internalType: 'address', type: 'address' },
4945
+ { name: 'tickLower', internalType: 'int24', type: 'int24' },
4946
+ { name: 'tickUpper', internalType: 'int24', type: 'int24' },
4947
+ { name: 'amount', internalType: 'uint128', type: 'uint128' },
4948
+ { name: 'data', internalType: 'bytes', type: 'bytes' },
4949
+ ],
4950
+ name: 'mint',
4951
+ outputs: [
4952
+ { name: 'amount0', internalType: 'uint256', type: 'uint256' },
4953
+ { name: 'amount1', internalType: 'uint256', type: 'uint256' },
4954
+ ],
4955
+ stateMutability: 'nonpayable',
4956
+ },
4957
+ {
4958
+ type: 'function',
4959
+ inputs: [],
4960
+ name: 'slot0',
4961
+ outputs: [
4962
+ {
4963
+ name: 'slot0',
4964
+ internalType: 'struct IUniswapV3Pool.Slot0',
4965
+ type: 'tuple',
4966
+ components: [
4967
+ { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' },
4968
+ { name: 'tick', internalType: 'int24', type: 'int24' },
4969
+ { name: 'observationIndex', internalType: 'uint16', type: 'uint16' },
4970
+ {
4971
+ name: 'observationCardinality',
4972
+ internalType: 'uint16',
4973
+ type: 'uint16',
4974
+ },
4975
+ {
4976
+ name: 'observationCardinalityNext',
4977
+ internalType: 'uint16',
4978
+ type: 'uint16',
4979
+ },
4980
+ { name: 'feeProtocol', internalType: 'uint8', type: 'uint8' },
4981
+ { name: 'unlocked', internalType: 'bool', type: 'bool' },
4982
+ ],
4983
+ },
4984
+ ],
4985
+ stateMutability: 'view',
4986
+ },
4987
+ {
4988
+ type: 'function',
4989
+ inputs: [
4990
+ { name: 'recipient', internalType: 'address', type: 'address' },
4991
+ { name: 'zeroForOne', internalType: 'bool', type: 'bool' },
4992
+ { name: 'amountSpecified', internalType: 'int256', type: 'int256' },
4993
+ { name: 'sqrtPriceLimitX96', internalType: 'uint160', type: 'uint160' },
4994
+ { name: 'data', internalType: 'bytes', type: 'bytes' },
4995
+ ],
4996
+ name: 'swap',
4997
+ outputs: [
4998
+ { name: 'amount0', internalType: 'int256', type: 'int256' },
4999
+ { name: 'amount1', internalType: 'int256', type: 'int256' },
5000
+ ],
5001
+ stateMutability: 'nonpayable',
5002
+ },
5003
+ {
5004
+ type: 'function',
5005
+ inputs: [],
5006
+ name: 'token0',
5007
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
5008
+ stateMutability: 'nonpayable',
5009
+ },
5010
+ {
5011
+ type: 'function',
5012
+ inputs: [],
5013
+ name: 'token1',
5014
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
5015
+ stateMutability: 'nonpayable',
5016
+ },
5017
+ ] as const
5018
+
5019
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
5020
+ // IUniversalRouter
5021
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
5022
+
5023
+ export const iUniversalRouterABI = [
5024
+ {
5025
+ type: 'function',
5026
+ inputs: [
5027
+ { name: 'commands', internalType: 'bytes', type: 'bytes' },
5028
+ { name: 'inputs', internalType: 'bytes[]', type: 'bytes[]' },
5029
+ { name: 'deadline', internalType: 'uint256', type: 'uint256' },
5030
+ ],
5031
+ name: 'execute',
5032
+ outputs: [],
5033
+ stateMutability: 'payable',
5034
+ },
5035
+ { type: 'error', inputs: [], name: 'ETHNotAccepted' },
5036
+ {
5037
+ type: 'error',
5038
+ inputs: [
5039
+ { name: 'commandIndex', internalType: 'uint256', type: 'uint256' },
5040
+ { name: 'message', internalType: 'bytes', type: 'bytes' },
5041
+ ],
5042
+ name: 'ExecutionFailed',
5043
+ },
5044
+ { type: 'error', inputs: [], name: 'InvalidEthSender' },
5045
+ { type: 'error', inputs: [], name: 'LengthMismatch' },
5046
+ { type: 'error', inputs: [], name: 'TransactionDeadlinePassed' },
5047
+ ] as const
5048
+
5049
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
5050
+ // ZoraFactoryImpl
5051
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
5052
+
5053
+ export const zoraFactoryImplABI = [
5054
+ {
5055
+ type: 'constructor',
5056
+ inputs: [
5057
+ { name: 'coinV4Impl_', internalType: 'address', type: 'address' },
5058
+ { name: 'creatorCoinImpl_', internalType: 'address', type: 'address' },
5059
+ { name: 'trendCoinImpl_', internalType: 'address', type: 'address' },
5060
+ { name: 'hook_', internalType: 'address', type: 'address' },
5061
+ { name: 'zoraHookRegistry_', internalType: 'address', type: 'address' },
5062
+ ],
5063
+ stateMutability: 'nonpayable',
5064
+ },
5065
+ {
5066
+ type: 'function',
5067
+ inputs: [],
5068
+ name: 'UPGRADE_INTERFACE_VERSION',
5069
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
5070
+ stateMutability: 'view',
5071
+ },
5072
+ {
5073
+ type: 'function',
5074
+ inputs: [],
5075
+ name: 'acceptOwnership',
5076
+ outputs: [],
5077
+ stateMutability: 'nonpayable',
5078
+ },
5079
+ {
5080
+ type: 'function',
5081
+ inputs: [
5082
+ { name: 'msgSender', internalType: 'address', type: 'address' },
5083
+ { name: 'name', internalType: 'string', type: 'string' },
5084
+ { name: 'symbol', internalType: 'string', type: 'string' },
5085
+ { name: 'poolConfig', internalType: 'bytes', type: 'bytes' },
5086
+ { name: 'platformReferrer', internalType: 'address', type: 'address' },
5087
+ { name: 'coinSalt', internalType: 'bytes32', type: 'bytes32' },
5088
+ ],
5089
+ name: 'coinAddress',
5090
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
5091
+ stateMutability: 'view',
5092
+ },
5093
+ {
5094
+ type: 'function',
5095
+ inputs: [],
5096
+ name: 'coinV4Impl',
5097
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
5098
+ stateMutability: 'view',
5099
+ },
5100
+ {
5101
+ type: 'function',
5102
+ inputs: [],
5103
+ name: 'contentCoinHook',
5104
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
5105
+ stateMutability: 'view',
5106
+ },
5107
+ {
5108
+ type: 'function',
5109
+ inputs: [],
5110
+ name: 'contractName',
5111
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
5112
+ stateMutability: 'pure',
5113
+ },
5114
+ {
5115
+ type: 'function',
5116
+ inputs: [],
5117
+ name: 'contractVersion',
5118
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
5119
+ stateMutability: 'pure',
5120
+ },
5121
+ {
5122
+ type: 'function',
5123
+ inputs: [],
5124
+ name: 'creatorCoinHook',
5125
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
5126
+ stateMutability: 'view',
5127
+ },
5128
+ {
5129
+ type: 'function',
5130
+ inputs: [],
5131
+ name: 'creatorCoinImpl',
4414
5132
  outputs: [{ name: '', internalType: 'address', type: 'address' }],
4415
5133
  stateMutability: 'view',
4416
5134
  },
@@ -4511,6 +5229,20 @@ export const zoraFactoryImplABI = [
4511
5229
  ],
4512
5230
  stateMutability: 'payable',
4513
5231
  },
5232
+ {
5233
+ type: 'function',
5234
+ inputs: [
5235
+ { name: 'symbol', internalType: 'string', type: 'string' },
5236
+ { name: 'postDeployHook', internalType: 'address', type: 'address' },
5237
+ { name: 'postDeployHookData', internalType: 'bytes', type: 'bytes' },
5238
+ ],
5239
+ name: 'deployTrendCoin',
5240
+ outputs: [
5241
+ { name: 'coin', internalType: 'address', type: 'address' },
5242
+ { name: 'postDeployHookDataOut', internalType: 'bytes', type: 'bytes' },
5243
+ ],
5244
+ stateMutability: 'payable',
5245
+ },
4514
5246
  {
4515
5247
  type: 'function',
4516
5248
  inputs: [
@@ -4589,6 +5321,27 @@ export const zoraFactoryImplABI = [
4589
5321
  outputs: [],
4590
5322
  stateMutability: 'nonpayable',
4591
5323
  },
5324
+ {
5325
+ type: 'function',
5326
+ inputs: [
5327
+ { name: 'currency', internalType: 'address', type: 'address' },
5328
+ { name: 'tickLower', internalType: 'int24[]', type: 'int24[]' },
5329
+ { name: 'tickUpper', internalType: 'int24[]', type: 'int24[]' },
5330
+ {
5331
+ name: 'numDiscoveryPositions',
5332
+ internalType: 'uint16[]',
5333
+ type: 'uint16[]',
5334
+ },
5335
+ {
5336
+ name: 'maxDiscoverySupplyShare',
5337
+ internalType: 'uint256[]',
5338
+ type: 'uint256[]',
5339
+ },
5340
+ ],
5341
+ name: 'setTrendCoinPoolConfig',
5342
+ outputs: [],
5343
+ stateMutability: 'nonpayable',
5344
+ },
4592
5345
  {
4593
5346
  type: 'function',
4594
5347
  inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
@@ -4596,6 +5349,27 @@ export const zoraFactoryImplABI = [
4596
5349
  outputs: [],
4597
5350
  stateMutability: 'nonpayable',
4598
5351
  },
5352
+ {
5353
+ type: 'function',
5354
+ inputs: [{ name: 'symbol', internalType: 'string', type: 'string' }],
5355
+ name: 'trendCoinAddress',
5356
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
5357
+ stateMutability: 'view',
5358
+ },
5359
+ {
5360
+ type: 'function',
5361
+ inputs: [],
5362
+ name: 'trendCoinImpl',
5363
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
5364
+ stateMutability: 'view',
5365
+ },
5366
+ {
5367
+ type: 'function',
5368
+ inputs: [],
5369
+ name: 'trendCoinPoolConfig',
5370
+ outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],
5371
+ stateMutability: 'view',
5372
+ },
4599
5373
  {
4600
5374
  type: 'function',
4601
5375
  inputs: [
@@ -4861,6 +5635,75 @@ export const zoraFactoryImplABI = [
4861
5635
  ],
4862
5636
  name: 'OwnershipTransferred',
4863
5637
  },
5638
+ {
5639
+ type: 'event',
5640
+ anonymous: false,
5641
+ inputs: [
5642
+ {
5643
+ name: 'caller',
5644
+ internalType: 'address',
5645
+ type: 'address',
5646
+ indexed: true,
5647
+ },
5648
+ {
5649
+ name: 'symbol',
5650
+ internalType: 'string',
5651
+ type: 'string',
5652
+ indexed: false,
5653
+ },
5654
+ {
5655
+ name: 'coin',
5656
+ internalType: 'address',
5657
+ type: 'address',
5658
+ indexed: false,
5659
+ },
5660
+ {
5661
+ name: 'poolKey',
5662
+ internalType: 'struct PoolKey',
5663
+ type: 'tuple',
5664
+ components: [
5665
+ { name: 'currency0', internalType: 'Currency', type: 'address' },
5666
+ { name: 'currency1', internalType: 'Currency', type: 'address' },
5667
+ { name: 'fee', internalType: 'uint24', type: 'uint24' },
5668
+ { name: 'tickSpacing', internalType: 'int24', type: 'int24' },
5669
+ { name: 'hooks', internalType: 'contract IHooks', type: 'address' },
5670
+ ],
5671
+ indexed: false,
5672
+ },
5673
+ {
5674
+ name: 'poolKeyHash',
5675
+ internalType: 'bytes32',
5676
+ type: 'bytes32',
5677
+ indexed: false,
5678
+ },
5679
+ {
5680
+ name: 'poolConfig',
5681
+ internalType: 'bytes',
5682
+ type: 'bytes',
5683
+ indexed: false,
5684
+ },
5685
+ {
5686
+ name: 'version',
5687
+ internalType: 'string',
5688
+ type: 'string',
5689
+ indexed: false,
5690
+ },
5691
+ ],
5692
+ name: 'TrendCoinCreated',
5693
+ },
5694
+ {
5695
+ type: 'event',
5696
+ anonymous: false,
5697
+ inputs: [
5698
+ {
5699
+ name: 'poolConfig',
5700
+ internalType: 'bytes',
5701
+ type: 'bytes',
5702
+ indexed: false,
5703
+ },
5704
+ ],
5705
+ name: 'TrendCoinPoolConfigUpdated',
5706
+ },
4864
5707
  {
4865
5708
  type: 'event',
4866
5709
  anonymous: false,
@@ -4913,6 +5756,7 @@ export const zoraFactoryImplABI = [
4913
5756
  ],
4914
5757
  name: 'InvalidTickRangeMisordered',
4915
5758
  },
5759
+ { type: 'error', inputs: [], name: 'InvalidTickerCharacters' },
4916
5760
  {
4917
5761
  type: 'error',
4918
5762
  inputs: [
@@ -4934,6 +5778,12 @@ export const zoraFactoryImplABI = [
4934
5778
  name: 'OwnableUnauthorizedAccount',
4935
5779
  },
4936
5780
  { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' },
5781
+ {
5782
+ type: 'error',
5783
+ inputs: [{ name: 'symbol', internalType: 'string', type: 'string' }],
5784
+ name: 'TickerAlreadyUsed',
5785
+ },
5786
+ { type: 'error', inputs: [], name: 'TrendCoinPoolConfigNotSet' },
4937
5787
  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },
4938
5788
  {
4939
5789
  type: 'error',
@@ -4948,6 +5798,7 @@ export const zoraFactoryImplABI = [
4948
5798
  ],
4949
5799
  name: 'UpgradeToMismatchedContractName',
4950
5800
  },
5801
+ { type: 'error', inputs: [], name: 'UseSpecificTrendCoinInitialize' },
4951
5802
  { type: 'error', inputs: [], name: 'ZeroDiscoveryPositions' },
4952
5803
  { type: 'error', inputs: [], name: 'ZeroDiscoverySupplyShare' },
4953
5804
  ] as const