@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
@@ -1,17 +1,17 @@
1
1
 
2
- > @zoralabs/coins@2.4.0 build:js /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
2
+ > @zoralabs/coins@2.5.0 build:js /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
3
3
  > pnpm run wagmi:generate && pnpm run copy-abis && pnpm run prettier:write && tsup
4
4
 
5
5
 
6
- > @zoralabs/coins@2.4.0 wagmi:generate /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
6
+ > @zoralabs/coins@2.5.0 wagmi:generate /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
7
7
  > pnpm run build:contracts:minimal && wagmi generate && pnpm exec rename-generated-abi-casing ./package/wagmiGenerated.ts
8
8
 
9
9
 
10
- > @zoralabs/coins@2.4.0 build:contracts:minimal /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
11
- > forge build --skip test --skip script --no-metadata
10
+ > @zoralabs/coins@2.5.0 build:contracts:minimal /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
11
+ > forge build src/ --no-metadata
12
12
 
13
- Compiling 227 files with Solc 0.8.28
14
- Solc 0.8.28 finished in 106.91s
13
+ Compiling 184 files with Solc 0.8.28
14
+ Solc 0.8.28 finished in 46.32s
15
15
  Compiler run successful!
16
16
  - Validating plugins
17
17
  ✔ Validating plugins
@@ -26,134 +26,128 @@ Compiler run successful!
26
26
  ✅ Updated ./package/wagmiGenerated.ts (10 replacements)
27
27
  ✨ All files processed successfully!
28
28
 
29
- > @zoralabs/coins@2.4.0 copy-abis /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
29
+ > @zoralabs/coins@2.5.0 copy-abis /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
30
30
  > pnpm exec bundle-abis
31
31
 
32
32
 
33
- > @zoralabs/coins@2.4.0 prettier:write /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
34
- > prettier --write 'src/**/*.sol' 'test/**/*.sol' 'script/**/*.sol'
33
+ > @zoralabs/coins@2.5.0 prettier:write /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
34
+ > prettier --write 'src/**/*.sol' 'test/**/*.sol'
35
35
 
36
- src/BaseCoin.sol 749ms (unchanged)
37
- src/ContentCoin.sol 55ms (unchanged)
38
- src/CreatorCoin.sol 98ms (unchanged)
39
- src/deployment/CoinsDeployerBase.sol 363ms (unchanged)
40
- src/hook-registry/ZoraHookRegistry.sol 138ms (unchanged)
41
- src/hooks/deployment/BaseCoinDeployHook.sol 43ms (unchanged)
42
- src/hooks/deployment/BuySupplyWithSwapRouterHook.sol 241ms (unchanged)
43
- src/hooks/deployment/BuySupplyWithV4SwapHook.sol 233ms (unchanged)
44
- src/hooks/HookUpgradeGate.sol 51ms (unchanged)
45
- src/hooks/ZoraV4CoinHook.sol 224ms (unchanged)
46
- src/interfaces/IAirlock.sol 4ms (unchanged)
47
- src/interfaces/ICoin.sol 26ms (unchanged)
48
- src/interfaces/ICoinComments.sol 4ms (unchanged)
49
- src/interfaces/ICoinDeployHook.sol 2ms (unchanged)
36
+ src/BaseCoin.sol 796ms (unchanged)
37
+ src/ContentCoin.sol 73ms (unchanged)
38
+ src/CreatorCoin.sol 86ms (unchanged)
39
+ src/deployment/ForkedCoinsAddresses.sol 29ms (unchanged)
40
+ src/hook-registry/ZoraHookRegistry.sol 153ms (unchanged)
41
+ src/hooks/deployment/BaseCoinDeployHook.sol 57ms (unchanged)
42
+ src/hooks/deployment/BuySupplyWithSwapRouterHook.sol 249ms (unchanged)
43
+ src/hooks/deployment/BuySupplyWithV4SwapHook.sol 138ms (unchanged)
44
+ src/hooks/HookUpgradeGate.sol 35ms (unchanged)
45
+ src/hooks/ZoraV4CoinHook.sol 317ms (unchanged)
46
+ src/interfaces/IAirlock.sol 1ms (unchanged)
47
+ src/interfaces/ICoin.sol 38ms (unchanged)
48
+ src/interfaces/ICoinComments.sol 2ms (unchanged)
49
+ src/interfaces/ICoinDeployHook.sol 1ms (unchanged)
50
50
  src/interfaces/ICoinV3.sol 5ms (unchanged)
51
51
  src/interfaces/ICreatorCoin.sol 2ms (unchanged)
52
52
  src/interfaces/ICreatorCoinHook.sol 2ms (unchanged)
53
53
  src/interfaces/IDeployedCoinVersionLookup.sol 1ms (unchanged)
54
- src/interfaces/IDopplerErrors.sol 1ms (unchanged)
54
+ src/interfaces/IDopplerErrors.sol 2ms (unchanged)
55
55
  src/interfaces/IERC7572.sol 1ms (unchanged)
56
+ src/interfaces/IHasCreationInfo.sol 1ms (unchanged)
56
57
  src/interfaces/IHasRewardsRecipients.sol 2ms (unchanged)
57
58
  src/interfaces/IHooksUpgradeGate.sol 2ms (unchanged)
58
- src/interfaces/IMsgSender.sol 2ms (unchanged)
59
- src/interfaces/INonfungiblePositionManager.sol 7ms (unchanged)
59
+ src/interfaces/IMsgSender.sol 1ms (unchanged)
60
+ src/interfaces/INonfungiblePositionManager.sol 16ms (unchanged)
60
61
  src/interfaces/IPoolConfigEncoding.sol 1ms (unchanged)
61
- src/interfaces/IProtocolRewards.sol 7ms (unchanged)
62
- src/interfaces/ISwapPathRouter.sol 3ms (unchanged)
62
+ src/interfaces/IProtocolRewards.sol 8ms (unchanged)
63
+ src/interfaces/ISupportsLimitOrderFill.sol 1ms (unchanged)
64
+ src/interfaces/ISwapPathRouter.sol 2ms (unchanged)
63
65
  src/interfaces/ISwapRouter.sol 1ms (unchanged)
64
66
  src/interfaces/ITrustedMsgSenderProviderLookup.sol 1ms (unchanged)
65
67
  src/interfaces/IUniswapV3Factory.sol 5ms (unchanged)
66
- src/interfaces/IUniswapV3Pool.sol 9ms (unchanged)
67
- src/interfaces/IUniswapV3SwapCallback.sol 3ms (unchanged)
68
- src/interfaces/IUpgradeableV4Hook.sol 6ms (unchanged)
69
- src/interfaces/IWETH.sol 5ms (unchanged)
70
- src/interfaces/IZoraFactory.sol 18ms (unchanged)
68
+ src/interfaces/IUniswapV3Pool.sol 6ms (unchanged)
69
+ src/interfaces/IUniswapV3SwapCallback.sol 1ms (unchanged)
70
+ src/interfaces/IUpgradeableV4Hook.sol 4ms (unchanged)
71
+ src/interfaces/IWETH.sol 4ms (unchanged)
72
+ src/interfaces/IZoraFactory.sol 16ms (unchanged)
71
73
  src/interfaces/IZoraHookRegistry.sol 4ms (unchanged)
72
- src/interfaces/IZoraV4CoinHook.sol 9ms (unchanged)
73
- src/libs/CoinCommon.sol 5ms (unchanged)
74
- src/libs/CoinConfigurationVersions.sol 57ms (unchanged)
75
- src/libs/CoinConstants.sol 7ms (unchanged)
76
- src/libs/CoinDopplerMultiCurve.sol 174ms (unchanged)
77
- src/libs/CoinRewardsV4.sol 210ms (unchanged)
78
- src/libs/CoinSetup.sol 30ms (unchanged)
79
- src/libs/DopplerMath.sol 165ms (unchanged)
80
- src/libs/HooksDeployment.sol 114ms (unchanged)
81
- src/libs/PoolStateReader.sol 9ms (unchanged)
82
- src/libs/UniV4SwapHelper.sol 43ms (unchanged)
83
- src/libs/UniV4SwapToCurrency.sol 74ms (unchanged)
84
- src/libs/V4Liquidity.sol 322ms (unchanged)
85
- src/proxy/ZoraFactory.sol 17ms (unchanged)
74
+ src/interfaces/IZoraLimitOrderBookCoinsInterface.sol 2ms (unchanged)
75
+ src/interfaces/IZoraV4CoinHook.sol 5ms (unchanged)
76
+ src/libs/CoinCommon.sol 9ms (unchanged)
77
+ src/libs/CoinConfigurationVersions.sol 71ms (unchanged)
78
+ src/libs/CoinConstants.sol 9ms (unchanged)
79
+ src/libs/CoinDopplerMultiCurve.sol 172ms (unchanged)
80
+ src/libs/CoinRewardsV4.sol 198ms (unchanged)
81
+ src/libs/CoinSetup.sol 44ms
82
+ src/libs/DopplerMath.sol 164ms (unchanged)
83
+ src/libs/HooksDeployment.sol 125ms (unchanged)
84
+ src/libs/PoolStateReader.sol 5ms (unchanged)
85
+ src/libs/UniV4SwapHelper.sol 131ms (unchanged)
86
+ src/libs/UniV4SwapToCurrency.sol 80ms (unchanged)
87
+ src/libs/V3ToV4SwapLib.sol 111ms (unchanged)
88
+ src/libs/V4Liquidity.sol 321ms (unchanged)
89
+ src/proxy/ZoraFactory.sol 8ms (unchanged)
86
90
  src/types/LpPosition.sol 1ms (unchanged)
87
- src/types/PoolConfiguration.sol 3ms (unchanged)
88
- src/types/PoolState.sol 2ms (unchanged)
89
- src/utils/AutoSwapper.sol 29ms (unchanged)
91
+ src/types/PoolConfiguration.sol 2ms (unchanged)
92
+ src/types/PoolState.sol 1ms (unchanged)
93
+ src/utils/AutoSwapper.sol 32ms (unchanged)
90
94
  src/utils/DeployedCoinVersionLookup.sol 7ms (unchanged)
91
- src/utils/MultiOwnable.sol 72ms (unchanged)
92
- src/utils/TrustedMsgSenderProviderLookup.sol 37ms (unchanged)
93
- src/utils/uniswap/BitMath.sol 9ms (unchanged)
94
- src/utils/uniswap/CustomRevert.sol 52ms (unchanged)
95
- src/utils/uniswap/FixedPoint96.sol 4ms (unchanged)
96
- src/utils/uniswap/FullMath.sol 45ms (unchanged)
97
- src/utils/uniswap/LiquidityAmounts.sol 72ms (unchanged)
98
- src/utils/uniswap/SafeCast.sol 18ms (unchanged)
99
- src/utils/uniswap/SqrtPriceMath.sol 106ms (unchanged)
100
- src/utils/uniswap/TickMath.sol 102ms (unchanged)
101
- src/utils/uniswap/UnsafeMath.sol 3ms (unchanged)
102
- src/version/ContractVersionBase.sol 1ms (unchanged)
103
- src/ZoraFactoryImpl.sol 194ms (unchanged)
104
- test/AutoSwapper.t.sol 89ms (unchanged)
105
- test/BuySupplyWithV4SwapHook.t.sol 238ms (unchanged)
106
- test/Coin.t.sol 219ms (unchanged)
95
+ src/utils/MultiOwnable.sol 71ms (unchanged)
96
+ src/utils/ProxyShim.sol 4ms (unchanged)
97
+ src/utils/TrustedMsgSenderProviderLookup.sol 38ms (unchanged)
98
+ src/utils/uniswap/BitMath.sol 18ms (unchanged)
99
+ src/utils/uniswap/CustomRevert.sol 57ms (unchanged)
100
+ src/utils/uniswap/FixedPoint96.sol 2ms (unchanged)
101
+ src/utils/uniswap/FullMath.sol 31ms (unchanged)
102
+ src/utils/uniswap/LiquidityAmounts.sol 75ms (unchanged)
103
+ src/utils/uniswap/SafeCast.sol 20ms (unchanged)
104
+ src/utils/uniswap/SqrtPriceMath.sol 107ms (unchanged)
105
+ src/utils/uniswap/TickMath.sol 122ms (unchanged)
106
+ src/utils/uniswap/UnsafeMath.sol 4ms (unchanged)
107
+ src/version/ContractVersionBase.sol 2ms (unchanged)
108
+ src/ZoraFactoryImpl.sol 205ms (unchanged)
109
+ test/AutoSwapper.t.sol 62ms (unchanged)
110
+ test/BuySupplyWithV4SwapHook.t.sol 246ms (unchanged)
111
+ test/Coin.t.sol 227ms (unchanged)
107
112
  test/CoinRewardsV4.t.sol 14ms (unchanged)
108
- test/CoinUniV4.t.sol 605ms (unchanged)
109
- test/ContentCoinRewards.t.sol 202ms (unchanged)
110
- test/CreatorCoin.t.sol 233ms (unchanged)
111
- test/CreatorCoinRewards.t.sol 160ms (unchanged)
113
+ test/CoinUniV4.t.sol 631ms (unchanged)
114
+ test/ContentCoinRewards.t.sol 218ms (unchanged)
115
+ test/CreatorCoin.t.sol 248ms (unchanged)
116
+ test/CreatorCoinRewards.t.sol 172ms (unchanged)
112
117
  test/DeploymentHooks.t.sol 134ms (unchanged)
113
- test/Factory.t.sol 138ms (unchanged)
114
- test/HooksDeployment.t.sol 77ms (unchanged)
115
- test/LiquidityMigration.t.sol 369ms (unchanged)
116
- test/mocks/MockAirlock.sol 6ms (unchanged)
117
- test/mocks/MockERC20.sol 3ms (unchanged)
118
- test/mocks/SimpleERC20.sol 2ms (unchanged)
119
- test/MultiOwnable.t.sol 144ms (unchanged)
120
- test/TrustedMsgSenderProviderLookup.t.sol 85ms (unchanged)
121
- test/Upgrades.t.sol 163ms (unchanged)
122
- test/utils/BaseTest.sol 414ms (unchanged)
118
+ test/Factory.t.sol 154ms (unchanged)
119
+ test/HooksDeployment.t.sol 86ms (unchanged)
120
+ test/LaunchFee.t.sol 161ms (unchanged)
121
+ test/LiquidityMigration.t.sol 361ms (unchanged)
122
+ test/mocks/MockAirlock.sol 9ms (unchanged)
123
+ test/mocks/MockERC20.sol 4ms (unchanged)
124
+ test/mocks/MockSwapRouter.sol 16ms (unchanged)
125
+ test/mocks/MockZoraLimitOrderBook.sol 1ms (unchanged)
126
+ test/mocks/SimpleERC20.sol 4ms (unchanged)
127
+ test/MultiOwnable.t.sol 138ms (unchanged)
128
+ test/TrustedMsgSenderProviderLookup.t.sol 86ms (unchanged)
129
+ test/Upgrades.t.sol 127ms (unchanged)
130
+ test/utils/BaseTest.sol 32ms (unchanged)
123
131
  test/utils/ContractAddresses.sol 5ms (unchanged)
124
- test/utils/DeployedCoinVersionLookup.t.sol 75ms (unchanged)
125
- test/utils/FeeEstimatorHook.sol 44ms (unchanged)
132
+ test/utils/DeployedCoinVersionLookup.t.sol 67ms (unchanged)
133
+ test/utils/FeeEstimatorHook.sol 45ms (unchanged)
126
134
  test/utils/hookmate/artifacts/DeployHelper.sol 9ms (unchanged)
127
- test/utils/hookmate/artifacts/Permit2.sol 6ms (unchanged)
128
- test/utils/hookmate/artifacts/UniversalRouter.sol 10ms (unchanged)
129
- test/utils/hookmate/artifacts/V4PoolManager.sol 8ms (unchanged)
130
- test/utils/hookmate/artifacts/V4PositionManager.sol 12ms (unchanged)
135
+ test/utils/hookmate/artifacts/Permit2.sol 5ms (unchanged)
136
+ test/utils/hookmate/artifacts/UniversalRouter.sol 8ms (unchanged)
137
+ test/utils/hookmate/artifacts/V4PoolManager.sol 7ms (unchanged)
138
+ test/utils/hookmate/artifacts/V4PositionManager.sol 9ms (unchanged)
131
139
  test/utils/hookmate/artifacts/V4Quoter.sol 6ms (unchanged)
132
- test/utils/hookmate/artifacts/V4Router.sol 13ms (unchanged)
133
- test/utils/hookmate/constants/AddressConstants.sol 101ms (unchanged)
140
+ test/utils/hookmate/artifacts/V4Router.sol 8ms (unchanged)
141
+ test/utils/hookmate/constants/AddressConstants.sol 60ms (unchanged)
134
142
  test/utils/hookmate/interfaces/router/IUniswapV4Router04.sol 13ms (unchanged)
135
- test/utils/hookmate/interfaces/router/PathKey.sol 21ms (unchanged)
136
- test/utils/hookmate/test/utils/SwapFeeEventAsserter.sol 24ms (unchanged)
137
- test/utils/ProtocolRewards.sol 545ms (unchanged)
138
- test/utils/ProxyShim.sol 5ms (unchanged)
139
- test/utils/RewardTestHelpers.sol 98ms (unchanged)
140
- test/utils/TrustedSenderTestHelper.sol 5ms (unchanged)
141
- test/V4Liquidity.t.sol 162ms (unchanged)
142
- test/ZoraHookRegistry.t.sol 301ms (unchanged)
143
- script/Deploy.s.sol 7ms (unchanged)
144
- script/DeployAutoSwapper.s.sol 22ms (unchanged)
145
- script/DeployDevFactory.s.sol 5ms (unchanged)
146
- script/DeployPostDeploymentHooks.s.sol 9ms (unchanged)
147
- script/DeployTrustedMsgSenderLookup.s.sol 6ms (unchanged)
148
- script/DeployUpgradeGate.s.sol 5ms (unchanged)
149
- script/GenerateDeterministicParams.s.sol 26ms (unchanged)
150
- script/PrintRegisterUpgradePath.s.sol 13ms (unchanged)
151
- script/PrintUpgradeCommand.s.sol 13ms (unchanged)
152
- script/TestBackingCoinSwap.s.sol 79ms (unchanged)
153
- script/TestV4Swap.s.sol 63ms (unchanged)
154
- script/UpgradeCoinImpl.sol 7ms (unchanged)
155
- script/UpgradeFactoryImpl.s.sol 9ms (unchanged)
156
- script/UpgradeHooks.s.sol 9ms (unchanged)
143
+ test/utils/hookmate/interfaces/router/PathKey.sol 19ms (unchanged)
144
+ test/utils/hookmate/test/utils/SwapFeeEventAsserter.sol 18ms (unchanged)
145
+ test/utils/ProtocolRewards.sol 542ms (unchanged)
146
+ test/utils/RewardTestHelpers.sol 82ms (unchanged)
147
+ test/utils/TrustedSenderTestHelper.sol 4ms (unchanged)
148
+ test/utils/V4TestSetup.sol 418ms (unchanged)
149
+ test/V4Liquidity.t.sol 145ms (unchanged)
150
+ test/ZoraHookRegistry.t.sol 226ms (unchanged)
157
151
  CLI Building entry: package/index.ts
158
152
  CLI Using tsconfig: tsconfig.json
159
153
  CLI tsup v8.4.0
@@ -162,9 +156,9 @@ script/UpgradeHooks.s.sol 9ms (unchanged)
162
156
  CLI Cleaning output folder
163
157
  CJS Build start
164
158
  ESM Build start
165
- ESM dist/index.js 134.57 KB
166
- ESM dist/index.js.map 240.22 KB
167
- ESM ⚡️ Build success in 115ms
168
- CJS dist/index.cjs 135.99 KB
169
- CJS dist/index.cjs.map 240.37 KB
170
- CJS ⚡️ Build success in 118ms
159
+ ESM dist/index.js 163.80 KB
160
+ ESM dist/index.js.map 289.89 KB
161
+ ESM ⚡️ Build success in 91ms
162
+ CJS dist/index.cjs 165.21 KB
163
+ CJS dist/index.cjs.map 290.04 KB
164
+ CJS ⚡️ Build success in 92ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @zoralabs/coins
2
2
 
3
+ ## 2.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 816ceb35: Add launch fee: time-based dynamic fee that decays from 99% to 1% over 10 seconds after coin creation
8
+
9
+ - New coins record creation timestamp and expose it via `IHasCreationInfo` interface
10
+ - Hook calculates dynamic fee based on elapsed time since creation
11
+ - Initial supply purchase bypasses the fee via transient storage flag
12
+ - Legacy coins without the interface receive normal 1% LP fee
13
+
14
+ ## 2.4.2
15
+
16
+ ### Patch Changes
17
+
18
+ - 479df7f0: Fix ETH settlement by adding missing sync before settle in V3ToV4SwapLib
19
+
20
+ Added a `poolManager.sync(inputCurrency)` call before settling when the input currency is ETH. This ensures the pool state is properly synchronized before the settlement occurs, making the behavior consistent with the ERC20 handling path which already includes this sync step.
21
+
22
+ ## 2.4.1
23
+
24
+ ### Patch Changes
25
+
26
+ - cf172fdb: Make call to calculatePositions external to save on contract size
27
+
3
28
  ## 2.4.0
4
29
 
5
30
  ### Minor Changes
package/abis/Address.json CHANGED
@@ -9,21 +9,5 @@
9
9
  "internalType": "address"
10
10
  }
11
11
  ]
12
- },
13
- {
14
- "type": "error",
15
- "name": "AddressInsufficientBalance",
16
- "inputs": [
17
- {
18
- "name": "account",
19
- "type": "address",
20
- "internalType": "address"
21
- }
22
- ]
23
- },
24
- {
25
- "type": "error",
26
- "name": "FailedInnerCall",
27
- "inputs": []
28
12
  }
29
13
  ]
@@ -170,6 +170,24 @@
170
170
  ],
171
171
  "stateMutability": "pure"
172
172
  },
173
+ {
174
+ "type": "function",
175
+ "name": "creationInfo",
176
+ "inputs": [],
177
+ "outputs": [
178
+ {
179
+ "name": "creationTimestamp",
180
+ "type": "uint256",
181
+ "internalType": "uint256"
182
+ },
183
+ {
184
+ "name": "isDeploying",
185
+ "type": "bool",
186
+ "internalType": "bool"
187
+ }
188
+ ],
189
+ "stateMutability": "view"
190
+ },
173
191
  {
174
192
  "type": "function",
175
193
  "name": "currency",
@@ -100,28 +100,6 @@
100
100
  ],
101
101
  "stateMutability": "nonpayable"
102
102
  },
103
- {
104
- "type": "error",
105
- "name": "AddressEmptyCode",
106
- "inputs": [
107
- {
108
- "name": "target",
109
- "type": "address",
110
- "internalType": "address"
111
- }
112
- ]
113
- },
114
- {
115
- "type": "error",
116
- "name": "AddressInsufficientBalance",
117
- "inputs": [
118
- {
119
- "name": "account",
120
- "type": "address",
121
- "internalType": "address"
122
- }
123
- ]
124
- },
125
103
  {
126
104
  "type": "error",
127
105
  "name": "AddressZero",
@@ -154,11 +132,6 @@
154
132
  "name": "Erc20NotReceived",
155
133
  "inputs": []
156
134
  },
157
- {
158
- "type": "error",
159
- "name": "FailedInnerCall",
160
- "inputs": []
161
- },
162
135
  {
163
136
  "type": "error",
164
137
  "name": "HookNotImplemented",
@@ -337,38 +337,11 @@
337
337
  ],
338
338
  "anonymous": false
339
339
  },
340
- {
341
- "type": "error",
342
- "name": "AddressEmptyCode",
343
- "inputs": [
344
- {
345
- "name": "target",
346
- "type": "address",
347
- "internalType": "address"
348
- }
349
- ]
350
- },
351
- {
352
- "type": "error",
353
- "name": "AddressInsufficientBalance",
354
- "inputs": [
355
- {
356
- "name": "account",
357
- "type": "address",
358
- "internalType": "address"
359
- }
360
- ]
361
- },
362
340
  {
363
341
  "type": "error",
364
342
  "name": "AddressZero",
365
343
  "inputs": []
366
344
  },
367
- {
368
- "type": "error",
369
- "name": "FailedInnerCall",
370
- "inputs": []
371
- },
372
345
  {
373
346
  "type": "error",
374
347
  "name": "HookNotImplemented",
@@ -416,11 +389,6 @@
416
389
  }
417
390
  ]
418
391
  },
419
- {
420
- "type": "error",
421
- "name": "V3RouteCannotStartWithInputCurrency",
422
- "inputs": []
423
- },
424
392
  {
425
393
  "type": "error",
426
394
  "name": "V3RouteDoesNotConnectToV4RouteStart",
package/abis/Clones.json CHANGED
@@ -1,7 +1,7 @@
1
1
  [
2
2
  {
3
3
  "type": "error",
4
- "name": "ERC1167FailedCreateClone",
4
+ "name": "CloneArgumentsTooLong",
5
5
  "inputs": []
6
6
  }
7
7
  ]
@@ -1,9 +1,102 @@
1
1
  [
2
+ {
3
+ "type": "function",
4
+ "name": "calculatePositions",
5
+ "inputs": [
6
+ {
7
+ "name": "isCoinToken0",
8
+ "type": "bool",
9
+ "internalType": "bool"
10
+ },
11
+ {
12
+ "name": "poolConfiguration",
13
+ "type": "tuple",
14
+ "internalType": "struct PoolConfiguration",
15
+ "components": [
16
+ {
17
+ "name": "version",
18
+ "type": "uint8",
19
+ "internalType": "uint8"
20
+ },
21
+ {
22
+ "name": "numPositions",
23
+ "type": "uint16",
24
+ "internalType": "uint16"
25
+ },
26
+ {
27
+ "name": "fee",
28
+ "type": "uint24",
29
+ "internalType": "uint24"
30
+ },
31
+ {
32
+ "name": "tickSpacing",
33
+ "type": "int24",
34
+ "internalType": "int24"
35
+ },
36
+ {
37
+ "name": "numDiscoveryPositions",
38
+ "type": "uint16[]",
39
+ "internalType": "uint16[]"
40
+ },
41
+ {
42
+ "name": "tickLower",
43
+ "type": "int24[]",
44
+ "internalType": "int24[]"
45
+ },
46
+ {
47
+ "name": "tickUpper",
48
+ "type": "int24[]",
49
+ "internalType": "int24[]"
50
+ },
51
+ {
52
+ "name": "maxDiscoverySupplyShare",
53
+ "type": "uint256[]",
54
+ "internalType": "uint256[]"
55
+ }
56
+ ]
57
+ },
58
+ {
59
+ "name": "totalSupply",
60
+ "type": "uint256",
61
+ "internalType": "uint256"
62
+ }
63
+ ],
64
+ "outputs": [
65
+ {
66
+ "name": "positions",
67
+ "type": "tuple[]",
68
+ "internalType": "struct LpPosition[]",
69
+ "components": [
70
+ {
71
+ "name": "tickLower",
72
+ "type": "int24",
73
+ "internalType": "int24"
74
+ },
75
+ {
76
+ "name": "tickUpper",
77
+ "type": "int24",
78
+ "internalType": "int24"
79
+ },
80
+ {
81
+ "name": "liquidity",
82
+ "type": "uint128",
83
+ "internalType": "uint128"
84
+ }
85
+ ]
86
+ }
87
+ ],
88
+ "stateMutability": "pure"
89
+ },
2
90
  {
3
91
  "type": "error",
4
92
  "name": "ArrayLengthMismatch",
5
93
  "inputs": []
6
94
  },
95
+ {
96
+ "type": "error",
97
+ "name": "CannotMintZeroLiquidity",
98
+ "inputs": []
99
+ },
7
100
  {
8
101
  "type": "error",
9
102
  "name": "ConfigTickLowerMustBeLessThanTickUpper",
@@ -25,6 +118,22 @@
25
118
  }
26
119
  ]
27
120
  },
121
+ {
122
+ "type": "error",
123
+ "name": "InvalidTickRangeMisordered",
124
+ "inputs": [
125
+ {
126
+ "name": "tickLower",
127
+ "type": "int24",
128
+ "internalType": "int24"
129
+ },
130
+ {
131
+ "name": "tickUpper",
132
+ "type": "int24",
133
+ "internalType": "int24"
134
+ }
135
+ ]
136
+ },
28
137
  {
29
138
  "type": "error",
30
139
  "name": "ZeroDiscoveryPositions",
@@ -196,6 +196,24 @@
196
196
  ],
197
197
  "stateMutability": "pure"
198
198
  },
199
+ {
200
+ "type": "function",
201
+ "name": "creationInfo",
202
+ "inputs": [],
203
+ "outputs": [
204
+ {
205
+ "name": "creationTimestamp",
206
+ "type": "uint256",
207
+ "internalType": "uint256"
208
+ },
209
+ {
210
+ "name": "isDeploying",
211
+ "type": "bool",
212
+ "internalType": "bool"
213
+ }
214
+ ],
215
+ "stateMutability": "view"
216
+ },
199
217
  {
200
218
  "type": "function",
201
219
  "name": "currency",
package/abis/Create2.json CHANGED
@@ -3,26 +3,5 @@
3
3
  "type": "error",
4
4
  "name": "Create2EmptyBytecode",
5
5
  "inputs": []
6
- },
7
- {
8
- "type": "error",
9
- "name": "Create2FailedDeployment",
10
- "inputs": []
11
- },
12
- {
13
- "type": "error",
14
- "name": "Create2InsufficientBalance",
15
- "inputs": [
16
- {
17
- "name": "balance",
18
- "type": "uint256",
19
- "internalType": "uint256"
20
- },
21
- {
22
- "name": "needed",
23
- "type": "uint256",
24
- "internalType": "uint256"
25
- }
26
- ]
27
6
  }
28
7
  ]
@@ -209,6 +209,24 @@
209
209
  ],
210
210
  "stateMutability": "pure"
211
211
  },
212
+ {
213
+ "type": "function",
214
+ "name": "creationInfo",
215
+ "inputs": [],
216
+ "outputs": [
217
+ {
218
+ "name": "creationTimestamp",
219
+ "type": "uint256",
220
+ "internalType": "uint256"
221
+ },
222
+ {
223
+ "name": "isDeploying",
224
+ "type": "bool",
225
+ "internalType": "bool"
226
+ }
227
+ ],
228
+ "stateMutability": "view"
229
+ },
212
230
  {
213
231
  "type": "function",
214
232
  "name": "currency",