@zoralabs/coins 2.1.2 → 2.3.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 (107) hide show
  1. package/.turbo/turbo-build$colon$js.log +152 -0
  2. package/CHANGELOG.md +93 -0
  3. package/README.md +4 -0
  4. package/abis/BaseCoin.json +26 -5
  5. package/abis/BaseTest.json +2 -7
  6. package/abis/ContentCoin.json +26 -5
  7. package/abis/CreatorCoin.json +30 -9
  8. package/abis/FeeEstimatorHook.json +94 -6
  9. package/abis/ICoin.json +26 -0
  10. package/abis/ICoinV3.json +26 -0
  11. package/abis/ICreatorCoin.json +39 -0
  12. package/abis/IERC721.json +36 -36
  13. package/abis/IHasCoinType.json +15 -0
  14. package/abis/IHasTotalSupplyForPositions.json +15 -0
  15. package/abis/{LiquidityMigrationReceiver.json → IUpgradeableDestinationV4HookWithUpdateableFee.json} +10 -18
  16. package/abis/IZoraFactory.json +121 -0
  17. package/abis/IZoraHookRegistry.json +188 -0
  18. package/abis/VmContractHelper226.json +233 -0
  19. package/abis/ZoraFactoryImpl.json +101 -6
  20. package/abis/ZoraHookRegistry.json +375 -0
  21. package/abis/{CreatorCoinHook.json → ZoraV4CoinHook.json} +95 -2
  22. package/addresses/8453.json +6 -5
  23. package/audits/report-cantinacode-zora-0827.pdf +3498 -4
  24. package/dist/index.cjs +93 -13
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.js +93 -13
  27. package/dist/index.js.map +1 -1
  28. package/dist/wagmiGenerated.d.ts +144 -22
  29. package/dist/wagmiGenerated.d.ts.map +1 -1
  30. package/foundry.toml +4 -1
  31. package/package/wagmiGenerated.ts +93 -13
  32. package/package.json +6 -4
  33. package/script/PrintRegisterUpgradePath.s.sol +0 -7
  34. package/script/TestBackingCoinSwap.s.sol +0 -3
  35. package/script/TestV4Swap.s.sol +0 -3
  36. package/script/UpgradeFactoryImpl.s.sol +1 -1
  37. package/src/BaseCoin.sol +19 -24
  38. package/src/ContentCoin.sol +11 -2
  39. package/src/CreatorCoin.sol +34 -15
  40. package/src/ZoraFactoryImpl.sol +163 -92
  41. package/src/deployment/CoinsDeployerBase.sol +24 -58
  42. package/src/hook-registry/ZoraHookRegistry.sol +97 -0
  43. package/src/hooks/{BaseZoraV4CoinHook.sol → ZoraV4CoinHook.sol} +77 -15
  44. package/src/interfaces/ICoin.sol +19 -1
  45. package/src/interfaces/ICreatorCoin.sol +4 -0
  46. package/src/interfaces/IUpgradeableV4Hook.sol +18 -0
  47. package/src/interfaces/IZoraFactory.sol +51 -10
  48. package/src/interfaces/IZoraHookRegistry.sol +47 -0
  49. package/src/libs/CoinConstants.sol +43 -32
  50. package/src/libs/CoinDopplerMultiCurve.sol +11 -11
  51. package/src/libs/CoinRewardsV4.sol +68 -37
  52. package/src/libs/CoinSetup.sol +2 -9
  53. package/src/libs/DopplerMath.sol +2 -2
  54. package/src/libs/HooksDeployment.sol +13 -65
  55. package/src/libs/V4Liquidity.sol +109 -15
  56. package/src/version/ContractVersionBase.sol +1 -1
  57. package/test/Coin.t.sol +5 -5
  58. package/test/CoinRewardsV4.t.sol +33 -0
  59. package/test/CoinUniV4.t.sol +32 -30
  60. package/test/ContentCoinRewards.t.sol +363 -0
  61. package/test/CreatorCoin.t.sol +53 -29
  62. package/test/CreatorCoinRewards.t.sol +375 -0
  63. package/test/DeploymentHooks.t.sol +64 -12
  64. package/test/Factory.t.sol +24 -7
  65. package/test/HooksDeployment.t.sol +4 -4
  66. package/test/LiquidityMigration.t.sol +149 -16
  67. package/test/Upgrades.t.sol +44 -48
  68. package/test/V4Liquidity.t.sol +178 -0
  69. package/test/ZoraHookRegistry.t.sol +266 -0
  70. package/test/utils/BaseTest.sol +25 -43
  71. package/test/utils/FeeEstimatorHook.sol +4 -6
  72. package/test/utils/RewardTestHelpers.sol +106 -0
  73. package/.turbo/turbo-build.log +0 -199
  74. package/abis/AutoSwapperTest.json +0 -618
  75. package/abis/BadImpl.json +0 -15
  76. package/abis/BaseZoraV4CoinHook.json +0 -1664
  77. package/abis/CoinConstants.json +0 -158
  78. package/abis/CoinRewardsV4.json +0 -67
  79. package/abis/CoinTest.json +0 -819
  80. package/abis/CoinUniV4Test.json +0 -1128
  81. package/abis/ContentCoinHook.json +0 -1733
  82. package/abis/CreatorCoinTest.json +0 -887
  83. package/abis/Deploy.json +0 -9
  84. package/abis/DeployHooks.json +0 -9
  85. package/abis/DeployScript.json +0 -35
  86. package/abis/DeployedCoinVersionLookupTest.json +0 -740
  87. package/abis/DifferentNamespaceVersionLookup.json +0 -39
  88. package/abis/FactoryTest.json +0 -748
  89. package/abis/FakeHookNoInterface.json +0 -21
  90. package/abis/GenerateDeterministicParams.json +0 -9
  91. package/abis/HooksDeploymentTest.json +0 -645
  92. package/abis/HooksTest.json +0 -709
  93. package/abis/InvalidLiquidityMigrationReceiver.json +0 -21
  94. package/abis/LiquidityMigrationTest.json +0 -889
  95. package/abis/MockBadFactory.json +0 -15
  96. package/abis/MultiOwnableTest.json +0 -766
  97. package/abis/PrintUpgradeCommand.json +0 -9
  98. package/abis/TestDeployedCoinVersionLookupImplementation.json +0 -39
  99. package/abis/TestV4Swap.json +0 -9
  100. package/abis/UpgradeFactoryImpl.json +0 -9
  101. package/abis/UpgradeHooks.json +0 -35
  102. package/abis/UpgradesTest.json +0 -723
  103. package/src/hooks/ContentCoinHook.sol +0 -27
  104. package/src/hooks/CreatorCoinHook.sol +0 -27
  105. package/src/libs/CreatorCoinConstants.sol +0 -16
  106. package/src/libs/CreatorCoinRewards.sol +0 -34
  107. package/src/libs/MarketConstants.sol +0 -15
package/dist/index.js CHANGED
@@ -156,6 +156,15 @@ var baseCoinABI = [
156
156
  outputs: [],
157
157
  stateMutability: "nonpayable"
158
158
  },
159
+ {
160
+ type: "function",
161
+ inputs: [],
162
+ name: "coinType",
163
+ outputs: [
164
+ { name: "", internalType: "enum IHasCoinType.CoinType", type: "uint8" }
165
+ ],
166
+ stateMutability: "view"
167
+ },
159
168
  {
160
169
  type: "function",
161
170
  inputs: [],
@@ -537,6 +546,13 @@ var baseCoinABI = [
537
546
  outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
538
547
  stateMutability: "view"
539
548
  },
549
+ {
550
+ type: "function",
551
+ inputs: [],
552
+ name: "totalSupplyForPositions",
553
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
554
+ stateMutability: "view"
555
+ },
540
556
  {
541
557
  type: "function",
542
558
  inputs: [
@@ -1150,7 +1166,6 @@ var baseCoinABI = [
1150
1166
  },
1151
1167
  { type: "error", inputs: [], name: "OnlyWeth" },
1152
1168
  { type: "error", inputs: [], name: "OwnerCannotBeAddressZero" },
1153
- { type: "error", inputs: [], name: "ReentrancyGuardReentrantCall" },
1154
1169
  { type: "error", inputs: [], name: "SlippageBoundsExceeded" },
1155
1170
  { type: "error", inputs: [], name: "UseRevokeOwnershipToRemoveSelf" }
1156
1171
  ];
@@ -1323,6 +1338,15 @@ var contentCoinABI = [
1323
1338
  outputs: [],
1324
1339
  stateMutability: "nonpayable"
1325
1340
  },
1341
+ {
1342
+ type: "function",
1343
+ inputs: [],
1344
+ name: "coinType",
1345
+ outputs: [
1346
+ { name: "", internalType: "enum IHasCoinType.CoinType", type: "uint8" }
1347
+ ],
1348
+ stateMutability: "pure"
1349
+ },
1326
1350
  {
1327
1351
  type: "function",
1328
1352
  inputs: [],
@@ -1704,6 +1728,13 @@ var contentCoinABI = [
1704
1728
  outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
1705
1729
  stateMutability: "view"
1706
1730
  },
1731
+ {
1732
+ type: "function",
1733
+ inputs: [],
1734
+ name: "totalSupplyForPositions",
1735
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
1736
+ stateMutability: "pure"
1737
+ },
1707
1738
  {
1708
1739
  type: "function",
1709
1740
  inputs: [
@@ -2317,7 +2348,6 @@ var contentCoinABI = [
2317
2348
  },
2318
2349
  { type: "error", inputs: [], name: "OnlyWeth" },
2319
2350
  { type: "error", inputs: [], name: "OwnerCannotBeAddressZero" },
2320
- { type: "error", inputs: [], name: "ReentrancyGuardReentrantCall" },
2321
2351
  { type: "error", inputs: [], name: "SlippageBoundsExceeded" },
2322
2352
  { type: "error", inputs: [], name: "UseRevokeOwnershipToRemoveSelf" }
2323
2353
  ];
@@ -2326,17 +2356,17 @@ var creatorCoinABI = [
2326
2356
  type: "constructor",
2327
2357
  inputs: [
2328
2358
  {
2329
- name: "_protocolRewardRecipient",
2359
+ name: "protocolRewardRecipient_",
2330
2360
  internalType: "address",
2331
2361
  type: "address"
2332
2362
  },
2333
- { name: "_protocolRewards", internalType: "address", type: "address" },
2363
+ { name: "protocolRewards_", internalType: "address", type: "address" },
2334
2364
  {
2335
- name: "_poolManager",
2365
+ name: "poolManager_",
2336
2366
  internalType: "contract IPoolManager",
2337
2367
  type: "address"
2338
2368
  },
2339
- { name: "_airlock", internalType: "address", type: "address" }
2369
+ { name: "airlock_", internalType: "address", type: "address" }
2340
2370
  ],
2341
2371
  stateMutability: "nonpayable"
2342
2372
  },
@@ -2411,6 +2441,15 @@ var creatorCoinABI = [
2411
2441
  outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
2412
2442
  stateMutability: "nonpayable"
2413
2443
  },
2444
+ {
2445
+ type: "function",
2446
+ inputs: [],
2447
+ name: "coinType",
2448
+ outputs: [
2449
+ { name: "", internalType: "enum IHasCoinType.CoinType", type: "uint8" }
2450
+ ],
2451
+ stateMutability: "pure"
2452
+ },
2414
2453
  {
2415
2454
  type: "function",
2416
2455
  inputs: [],
@@ -2806,6 +2845,13 @@ var creatorCoinABI = [
2806
2845
  outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
2807
2846
  stateMutability: "view"
2808
2847
  },
2848
+ {
2849
+ type: "function",
2850
+ inputs: [],
2851
+ name: "totalSupplyForPositions",
2852
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
2853
+ stateMutability: "pure"
2854
+ },
2809
2855
  {
2810
2856
  type: "function",
2811
2857
  inputs: [
@@ -3471,7 +3517,6 @@ var creatorCoinABI = [
3471
3517
  },
3472
3518
  { type: "error", inputs: [], name: "OnlyWeth" },
3473
3519
  { type: "error", inputs: [], name: "OwnerCannotBeAddressZero" },
3474
- { type: "error", inputs: [], name: "ReentrancyGuardReentrantCall" },
3475
3520
  { type: "error", inputs: [], name: "SlippageBoundsExceeded" },
3476
3521
  { type: "error", inputs: [], name: "UseRevokeOwnershipToRemoveSelf" }
3477
3522
  ];
@@ -4165,10 +4210,10 @@ var zoraFactoryImplABI = [
4165
4210
  {
4166
4211
  type: "constructor",
4167
4212
  inputs: [
4168
- { name: "_coinV4Impl", internalType: "address", type: "address" },
4169
- { name: "_creatorCoinImpl", internalType: "address", type: "address" },
4170
- { name: "_contentCoinHook", internalType: "address", type: "address" },
4171
- { name: "_creatorCoinHook", internalType: "address", type: "address" }
4213
+ { name: "coinV4Impl_", internalType: "address", type: "address" },
4214
+ { name: "creatorCoinImpl_", internalType: "address", type: "address" },
4215
+ { name: "hook_", internalType: "address", type: "address" },
4216
+ { name: "zoraHookRegistry_", internalType: "address", type: "address" }
4172
4217
  ],
4173
4218
  stateMutability: "nonpayable"
4174
4219
  },
@@ -4253,7 +4298,7 @@ var zoraFactoryImplABI = [
4253
4298
  { name: "platformReferrer", internalType: "address", type: "address" },
4254
4299
  { name: "currency", internalType: "address", type: "address" },
4255
4300
  { name: "", internalType: "int24", type: "int24" },
4256
- { name: "orderSize", internalType: "uint256", type: "uint256" }
4301
+ { name: "", internalType: "uint256", type: "uint256" }
4257
4302
  ],
4258
4303
  name: "deploy",
4259
4304
  outputs: [
@@ -4328,7 +4373,28 @@ var zoraFactoryImplABI = [
4328
4373
  { name: "symbol", internalType: "string", type: "string" },
4329
4374
  { name: "poolConfig", internalType: "bytes", type: "bytes" },
4330
4375
  { name: "platformReferrer", internalType: "address", type: "address" },
4331
- { name: "hook", internalType: "address", type: "address" },
4376
+ { name: "postDeployHook", internalType: "address", type: "address" },
4377
+ { name: "postDeployHookData", internalType: "bytes", type: "bytes" },
4378
+ { name: "coinSalt", internalType: "bytes32", type: "bytes32" }
4379
+ ],
4380
+ name: "deployCreatorCoin",
4381
+ outputs: [
4382
+ { name: "coin", internalType: "address", type: "address" },
4383
+ { name: "postDeployHookDataOut", internalType: "bytes", type: "bytes" }
4384
+ ],
4385
+ stateMutability: "payable"
4386
+ },
4387
+ {
4388
+ type: "function",
4389
+ inputs: [
4390
+ { name: "payoutRecipient", internalType: "address", type: "address" },
4391
+ { name: "owners", internalType: "address[]", type: "address[]" },
4392
+ { name: "uri", internalType: "string", type: "string" },
4393
+ { name: "name", internalType: "string", type: "string" },
4394
+ { name: "symbol", internalType: "string", type: "string" },
4395
+ { name: "poolConfig", internalType: "bytes", type: "bytes" },
4396
+ { name: "platformReferrer", internalType: "address", type: "address" },
4397
+ { name: "deployHook", internalType: "address", type: "address" },
4332
4398
  { name: "hookData", internalType: "bytes", type: "bytes" }
4333
4399
  ],
4334
4400
  name: "deployWithHook",
@@ -4345,6 +4411,13 @@ var zoraFactoryImplABI = [
4345
4411
  outputs: [{ name: "", internalType: "uint8", type: "uint8" }],
4346
4412
  stateMutability: "view"
4347
4413
  },
4414
+ {
4415
+ type: "function",
4416
+ inputs: [],
4417
+ name: "hook",
4418
+ outputs: [{ name: "", internalType: "address", type: "address" }],
4419
+ stateMutability: "view"
4420
+ },
4348
4421
  {
4349
4422
  type: "function",
4350
4423
  inputs: [],
@@ -4406,6 +4479,13 @@ var zoraFactoryImplABI = [
4406
4479
  outputs: [],
4407
4480
  stateMutability: "payable"
4408
4481
  },
4482
+ {
4483
+ type: "function",
4484
+ inputs: [],
4485
+ name: "zoraHookRegistry",
4486
+ outputs: [{ name: "", internalType: "address", type: "address" }],
4487
+ stateMutability: "view"
4488
+ },
4409
4489
  {
4410
4490
  type: "event",
4411
4491
  anonymous: false,