@zoralabs/coins 2.5.0 → 2.6.1
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.
- package/.turbo/turbo-build$colon$js.log +136 -130
- package/CHANGELOG.md +28 -17
- package/abis/BaseCoin.json +5 -0
- package/abis/ContentCoin.json +5 -0
- package/abis/ICoin.json +5 -0
- package/abis/ICoinV3.json +5 -0
- package/abis/ITrendCoin.json +140 -0
- package/abis/ITrendCoinErrors.json +33 -0
- package/abis/IUniversalRouter.json +61 -0
- package/abis/IZoraFactory.json +237 -0
- package/abis/TrendCoin.json +2053 -0
- package/abis/ZoraFactoryImpl.json +242 -0
- package/dist/index.cjs +955 -138
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +953 -138
- package/dist/index.js.map +1 -1
- package/dist/wagmiGenerated.d.ts +1388 -149
- package/dist/wagmiGenerated.d.ts.map +1 -1
- package/foundry.toml +1 -0
- package/package/wagmiGenerated.ts +962 -139
- package/package.json +2 -2
- package/src/BaseCoin.sol +12 -12
- package/src/ContentCoin.sol +20 -1
- package/src/CreatorCoin.sol +3 -0
- package/src/TrendCoin.sol +117 -0
- package/src/ZoraFactoryImpl.sol +142 -1
- package/src/hooks/ZoraV4CoinHook.sol +17 -7
- package/src/interfaces/ICoin.sol +5 -1
- package/src/interfaces/ICreatorCoin.sol +0 -3
- package/src/interfaces/IPoolManager.sol +13 -0
- package/src/interfaces/ITrendCoin.sol +26 -0
- package/src/interfaces/ITrendCoinErrors.sol +24 -0
- package/src/interfaces/IZoraFactory.sol +60 -1
- package/src/libs/CoinConstants.sol +13 -1
- package/src/libs/CoinRewardsV4.sol +82 -21
- package/src/libs/TickerUtils.sol +66 -0
- package/src/libs/UniV4SwapToCurrency.sol +2 -1
- package/src/version/ContractVersionBase.sol +1 -1
- package/test/CoinRewardsV4.t.sol +48 -0
- package/test/CreatorCoin.t.sol +2 -1
- package/test/Factory.t.sol +31 -5
- package/test/LaunchFee.t.sol +0 -2
- package/test/LiquidityMigration.t.sol +0 -2
- package/test/TrendCoin.t.sol +1128 -0
- package/test/Upgrades.t.sol +16 -3
- package/test/utils/FeeEstimatorHook.sol +36 -10
- package/test/utils/V4TestSetup.sol +36 -4
- package/wagmi.config.ts +2 -0
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
|
|
2
|
-
> @zoralabs/coins@2.
|
|
2
|
+
> @zoralabs/coins@2.6.1 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.
|
|
6
|
+
> @zoralabs/coins@2.6.1 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.
|
|
10
|
+
> @zoralabs/coins@2.6.1 build:contracts:minimal /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
|
|
11
11
|
> forge build src/ --no-metadata
|
|
12
12
|
|
|
13
|
-
Compiling
|
|
14
|
-
Solc 0.8.28 finished in
|
|
13
|
+
Compiling 190 files with Solc 0.8.28
|
|
14
|
+
Solc 0.8.28 finished in 55.00s
|
|
15
15
|
Compiler run successful!
|
|
16
16
|
[33m-[39m Validating plugins
|
|
17
17
|
[32m✔[39m Validating plugins
|
|
@@ -23,142 +23,148 @@ Compiler run successful!
|
|
|
23
23
|
[32m✔[39m Writing to [90mpackage/wagmiGenerated.ts[39m
|
|
24
24
|
🔄 Processing 1 file(s) to replace 'Abi' with 'ABI'...
|
|
25
25
|
📝 Processing ./package/wagmiGenerated.ts...
|
|
26
|
-
✅ Updated ./package/wagmiGenerated.ts (
|
|
26
|
+
✅ Updated ./package/wagmiGenerated.ts (12 replacements)
|
|
27
27
|
✨ All files processed successfully!
|
|
28
28
|
|
|
29
|
-
> @zoralabs/coins@2.
|
|
29
|
+
> @zoralabs/coins@2.6.1 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.
|
|
33
|
+
> @zoralabs/coins@2.6.1 prettier:write /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
|
|
34
34
|
> prettier --write 'src/**/*.sol' 'test/**/*.sol'
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
test/
|
|
36
|
+
[90msrc/BaseCoin.sol[39m 1071ms (unchanged)
|
|
37
|
+
[90msrc/ContentCoin.sol[39m 198ms (unchanged)
|
|
38
|
+
[90msrc/CreatorCoin.sol[39m 203ms (unchanged)
|
|
39
|
+
[90msrc/deployment/ForkedCoinsAddresses.sol[39m 62ms (unchanged)
|
|
40
|
+
[90msrc/hook-registry/ZoraHookRegistry.sol[39m 314ms (unchanged)
|
|
41
|
+
[90msrc/hooks/deployment/BaseCoinDeployHook.sol[39m 73ms (unchanged)
|
|
42
|
+
[90msrc/hooks/deployment/BuySupplyWithSwapRouterHook.sol[39m 539ms (unchanged)
|
|
43
|
+
[90msrc/hooks/deployment/BuySupplyWithV4SwapHook.sol[39m 262ms (unchanged)
|
|
44
|
+
[90msrc/hooks/HookUpgradeGate.sol[39m 73ms (unchanged)
|
|
45
|
+
[90msrc/hooks/ZoraV4CoinHook.sol[39m 713ms (unchanged)
|
|
46
|
+
[90msrc/interfaces/IAirlock.sol[39m 8ms (unchanged)
|
|
47
|
+
[90msrc/interfaces/ICoin.sol[39m 43ms (unchanged)
|
|
48
|
+
[90msrc/interfaces/ICoinComments.sol[39m 4ms (unchanged)
|
|
49
|
+
[90msrc/interfaces/ICoinDeployHook.sol[39m 3ms (unchanged)
|
|
50
|
+
[90msrc/interfaces/ICoinV3.sol[39m 9ms (unchanged)
|
|
51
|
+
[90msrc/interfaces/ICreatorCoin.sol[39m 4ms (unchanged)
|
|
52
|
+
[90msrc/interfaces/ICreatorCoinHook.sol[39m 2ms (unchanged)
|
|
53
|
+
[90msrc/interfaces/IDeployedCoinVersionLookup.sol[39m 1ms (unchanged)
|
|
54
|
+
[90msrc/interfaces/IDopplerErrors.sol[39m 1ms (unchanged)
|
|
55
|
+
[90msrc/interfaces/IERC7572.sol[39m 1ms (unchanged)
|
|
56
|
+
[90msrc/interfaces/IHasCreationInfo.sol[39m 1ms (unchanged)
|
|
57
|
+
[90msrc/interfaces/IHasRewardsRecipients.sol[39m 2ms (unchanged)
|
|
58
|
+
[90msrc/interfaces/IHooksUpgradeGate.sol[39m 3ms (unchanged)
|
|
59
|
+
[90msrc/interfaces/IMsgSender.sol[39m 1ms (unchanged)
|
|
60
|
+
[90msrc/interfaces/INonfungiblePositionManager.sol[39m 15ms (unchanged)
|
|
61
|
+
[90msrc/interfaces/IPoolConfigEncoding.sol[39m 1ms (unchanged)
|
|
62
|
+
[90msrc/interfaces/IPoolManager.sol[39m 1ms (unchanged)
|
|
63
|
+
[90msrc/interfaces/IProtocolRewards.sol[39m 4ms (unchanged)
|
|
64
|
+
[90msrc/interfaces/ISupportsLimitOrderFill.sol[39m 1ms (unchanged)
|
|
65
|
+
[90msrc/interfaces/ISwapPathRouter.sol[39m 1ms (unchanged)
|
|
66
|
+
[90msrc/interfaces/ISwapRouter.sol[39m 1ms (unchanged)
|
|
67
|
+
[90msrc/interfaces/ITrendCoin.sol[39m 2ms (unchanged)
|
|
68
|
+
[90msrc/interfaces/ITrendCoinErrors.sol[39m 1ms (unchanged)
|
|
69
|
+
[90msrc/interfaces/ITrustedMsgSenderProviderLookup.sol[39m 2ms (unchanged)
|
|
70
|
+
[90msrc/interfaces/IUniswapV3Factory.sol[39m 4ms (unchanged)
|
|
71
|
+
[90msrc/interfaces/IUniswapV3Pool.sol[39m 5ms (unchanged)
|
|
72
|
+
[90msrc/interfaces/IUniswapV3SwapCallback.sol[39m 2ms (unchanged)
|
|
73
|
+
[90msrc/interfaces/IUpgradeableV4Hook.sol[39m 3ms (unchanged)
|
|
74
|
+
[90msrc/interfaces/IWETH.sol[39m 2ms (unchanged)
|
|
75
|
+
[90msrc/interfaces/IZoraFactory.sol[39m 19ms (unchanged)
|
|
76
|
+
[90msrc/interfaces/IZoraHookRegistry.sol[39m 4ms (unchanged)
|
|
77
|
+
[90msrc/interfaces/IZoraLimitOrderBookCoinsInterface.sol[39m 2ms (unchanged)
|
|
78
|
+
[90msrc/interfaces/IZoraV4CoinHook.sol[39m 9ms (unchanged)
|
|
79
|
+
[90msrc/libs/CoinCommon.sol[39m 7ms (unchanged)
|
|
80
|
+
[90msrc/libs/CoinConfigurationVersions.sol[39m 66ms (unchanged)
|
|
81
|
+
[90msrc/libs/CoinConstants.sol[39m 27ms (unchanged)
|
|
82
|
+
[90msrc/libs/CoinDopplerMultiCurve.sol[39m 160ms (unchanged)
|
|
83
|
+
[90msrc/libs/CoinRewardsV4.sol[39m 203ms (unchanged)
|
|
84
|
+
[90msrc/libs/CoinSetup.sol[39m 54ms (unchanged)
|
|
85
|
+
[90msrc/libs/DopplerMath.sol[39m 175ms (unchanged)
|
|
86
|
+
[90msrc/libs/HooksDeployment.sol[39m 120ms (unchanged)
|
|
87
|
+
[90msrc/libs/PoolStateReader.sol[39m 8ms (unchanged)
|
|
88
|
+
[90msrc/libs/TickerUtils.sol[39m 30ms (unchanged)
|
|
89
|
+
[90msrc/libs/UniV4SwapHelper.sol[39m 116ms (unchanged)
|
|
90
|
+
[90msrc/libs/UniV4SwapToCurrency.sol[39m 108ms (unchanged)
|
|
91
|
+
[90msrc/libs/V3ToV4SwapLib.sol[39m 113ms (unchanged)
|
|
92
|
+
[90msrc/libs/V4Liquidity.sol[39m 300ms (unchanged)
|
|
93
|
+
[90msrc/proxy/ZoraFactory.sol[39m 7ms (unchanged)
|
|
94
|
+
[90msrc/TrendCoin.sol[39m 32ms (unchanged)
|
|
95
|
+
[90msrc/types/LpPosition.sol[39m 2ms (unchanged)
|
|
96
|
+
[90msrc/types/PoolConfiguration.sol[39m 1ms (unchanged)
|
|
97
|
+
[90msrc/types/PoolState.sol[39m 2ms (unchanged)
|
|
98
|
+
[90msrc/utils/AutoSwapper.sol[39m 31ms (unchanged)
|
|
99
|
+
[90msrc/utils/DeployedCoinVersionLookup.sol[39m 7ms (unchanged)
|
|
100
|
+
[90msrc/utils/MultiOwnable.sol[39m 57ms (unchanged)
|
|
101
|
+
[90msrc/utils/ProxyShim.sol[39m 4ms (unchanged)
|
|
102
|
+
[90msrc/utils/TrustedMsgSenderProviderLookup.sol[39m 33ms (unchanged)
|
|
103
|
+
[90msrc/utils/uniswap/BitMath.sol[39m 8ms (unchanged)
|
|
104
|
+
[90msrc/utils/uniswap/CustomRevert.sol[39m 48ms (unchanged)
|
|
105
|
+
[90msrc/utils/uniswap/FixedPoint96.sol[39m 1ms (unchanged)
|
|
106
|
+
[90msrc/utils/uniswap/FullMath.sol[39m 30ms (unchanged)
|
|
107
|
+
[90msrc/utils/uniswap/LiquidityAmounts.sol[39m 69ms (unchanged)
|
|
108
|
+
[90msrc/utils/uniswap/SafeCast.sol[39m 17ms (unchanged)
|
|
109
|
+
[90msrc/utils/uniswap/SqrtPriceMath.sol[39m 95ms (unchanged)
|
|
110
|
+
[90msrc/utils/uniswap/TickMath.sol[39m 107ms (unchanged)
|
|
111
|
+
[90msrc/utils/uniswap/UnsafeMath.sol[39m 3ms (unchanged)
|
|
112
|
+
[90msrc/version/ContractVersionBase.sol[39m 2ms (unchanged)
|
|
113
|
+
[90msrc/ZoraFactoryImpl.sol[39m 250ms (unchanged)
|
|
114
|
+
[90mtest/AutoSwapper.t.sol[39m 56ms (unchanged)
|
|
115
|
+
[90mtest/BuySupplyWithV4SwapHook.t.sol[39m 217ms (unchanged)
|
|
116
|
+
[90mtest/Coin.t.sol[39m 207ms (unchanged)
|
|
117
|
+
[90mtest/CoinRewardsV4.t.sol[39m 45ms (unchanged)
|
|
118
|
+
[90mtest/CoinUniV4.t.sol[39m 591ms (unchanged)
|
|
119
|
+
[90mtest/ContentCoinRewards.t.sol[39m 195ms (unchanged)
|
|
120
|
+
[90mtest/CreatorCoin.t.sol[39m 222ms (unchanged)
|
|
121
|
+
[90mtest/CreatorCoinRewards.t.sol[39m 158ms (unchanged)
|
|
122
|
+
[90mtest/DeploymentHooks.t.sol[39m 130ms (unchanged)
|
|
123
|
+
[90mtest/Factory.t.sol[39m 146ms (unchanged)
|
|
124
|
+
[90mtest/HooksDeployment.t.sol[39m 81ms (unchanged)
|
|
125
|
+
[90mtest/LaunchFee.t.sol[39m 158ms (unchanged)
|
|
126
|
+
[90mtest/LiquidityMigration.t.sol[39m 294ms (unchanged)
|
|
127
|
+
[90mtest/mocks/MockAirlock.sol[39m 5ms (unchanged)
|
|
128
|
+
[90mtest/mocks/MockERC20.sol[39m 3ms (unchanged)
|
|
129
|
+
[90mtest/mocks/MockSwapRouter.sol[39m 5ms (unchanged)
|
|
130
|
+
[90mtest/mocks/MockZoraLimitOrderBook.sol[39m 2ms (unchanged)
|
|
131
|
+
[90mtest/mocks/SimpleERC20.sol[39m 2ms (unchanged)
|
|
132
|
+
[90mtest/MultiOwnable.t.sol[39m 134ms (unchanged)
|
|
133
|
+
[90mtest/TrendCoin.t.sol[39m 643ms (unchanged)
|
|
134
|
+
[90mtest/TrustedMsgSenderProviderLookup.t.sol[39m 78ms (unchanged)
|
|
135
|
+
[90mtest/Upgrades.t.sol[39m 128ms (unchanged)
|
|
136
|
+
[90mtest/utils/BaseTest.sol[39m 31ms (unchanged)
|
|
137
|
+
[90mtest/utils/ContractAddresses.sol[39m 3ms (unchanged)
|
|
138
|
+
[90mtest/utils/DeployedCoinVersionLookup.t.sol[39m 55ms (unchanged)
|
|
139
|
+
[90mtest/utils/FeeEstimatorHook.sol[39m 55ms (unchanged)
|
|
140
|
+
[90mtest/utils/hookmate/artifacts/DeployHelper.sol[39m 8ms (unchanged)
|
|
141
|
+
[90mtest/utils/hookmate/artifacts/Permit2.sol[39m 5ms (unchanged)
|
|
142
|
+
[90mtest/utils/hookmate/artifacts/UniversalRouter.sol[39m 7ms (unchanged)
|
|
143
|
+
[90mtest/utils/hookmate/artifacts/V4PoolManager.sol[39m 7ms (unchanged)
|
|
144
|
+
[90mtest/utils/hookmate/artifacts/V4PositionManager.sol[39m 9ms (unchanged)
|
|
145
|
+
[90mtest/utils/hookmate/artifacts/V4Quoter.sol[39m 7ms (unchanged)
|
|
146
|
+
[90mtest/utils/hookmate/artifacts/V4Router.sol[39m 7ms (unchanged)
|
|
147
|
+
[90mtest/utils/hookmate/constants/AddressConstants.sol[39m 53ms (unchanged)
|
|
148
|
+
[90mtest/utils/hookmate/interfaces/router/IUniswapV4Router04.sol[39m 20ms (unchanged)
|
|
149
|
+
[90mtest/utils/hookmate/interfaces/router/PathKey.sol[39m 18ms (unchanged)
|
|
150
|
+
[90mtest/utils/hookmate/test/utils/SwapFeeEventAsserter.sol[39m 17ms (unchanged)
|
|
151
|
+
[90mtest/utils/ProtocolRewards.sol[39m 453ms (unchanged)
|
|
152
|
+
[90mtest/utils/RewardTestHelpers.sol[39m 86ms (unchanged)
|
|
153
|
+
[90mtest/utils/TrustedSenderTestHelper.sol[39m 4ms (unchanged)
|
|
154
|
+
[90mtest/utils/V4TestSetup.sol[39m 394ms (unchanged)
|
|
155
|
+
[90mtest/V4Liquidity.t.sol[39m 132ms (unchanged)
|
|
156
|
+
[90mtest/ZoraHookRegistry.t.sol[39m 201ms (unchanged)
|
|
151
157
|
[34mCLI[39m Building entry: package/index.ts
|
|
152
158
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
153
|
-
[34mCLI[39m tsup v8.
|
|
159
|
+
[34mCLI[39m tsup v8.5.1
|
|
154
160
|
[34mCLI[39m Using tsup config: /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins/tsup.config.ts
|
|
155
161
|
[34mCLI[39m Target: es2021
|
|
156
162
|
[34mCLI[39m Cleaning output folder
|
|
157
163
|
[34mCJS[39m Build start
|
|
158
164
|
[34mESM[39m Build start
|
|
159
|
-
[
|
|
160
|
-
[
|
|
161
|
-
[
|
|
162
|
-
[
|
|
163
|
-
[
|
|
164
|
-
[
|
|
165
|
+
[32mCJS[39m [1mdist/index.cjs [22m[32m188.47 KB[39m
|
|
166
|
+
[32mCJS[39m [1mdist/index.cjs.map [22m[32m331.87 KB[39m
|
|
167
|
+
[32mCJS[39m ⚡️ Build success in 94ms
|
|
168
|
+
[32mESM[39m [1mdist/index.js [22m[32m186.97 KB[39m
|
|
169
|
+
[32mESM[39m [1mdist/index.js.map [22m[32m331.71 KB[39m
|
|
170
|
+
[32mESM[39m ⚡️ Build success in 94ms
|
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,38 @@
|
|
|
1
1
|
# @zoralabs/coins
|
|
2
2
|
|
|
3
|
+
## 2.6.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- fbb389583: Bump viem to 2.53.1
|
|
8
|
+
|
|
9
|
+
Raise the pinned viem version from 2.22.12 to 2.53.1 across the monorepo to pick up newer chain definitions and support the latest x402 v2 client packages.
|
|
10
|
+
|
|
11
|
+
## 2.6.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- 50134ebc: Add TrendCoin support
|
|
16
|
+
- New `TrendCoin` contract: 100% supply in liquidity pool, 0% swap fees
|
|
17
|
+
- `deployTrendCoin` factory method with ticker uniqueness enforcement and post-deploy hook support
|
|
18
|
+
- Owner-configurable pool parameters via `setTrendCoinPoolConfig()`
|
|
19
|
+
- Metadata manager role for updatable contract URIs
|
|
20
|
+
- Ticker validation and URI encoding for trend coin symbols
|
|
21
|
+
|
|
22
|
+
## 2.5.1
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- 78dffbdc: Including uniswap v4 errors in lob and swap router abis, and including some uniswap v4 contracts and abis.
|
|
27
|
+
- 1ccca8ef: Fix swap fee distribution when price limits cause partial execution
|
|
28
|
+
|
|
29
|
+
When swapping large fee amounts, swaps can hit sqrtPriceLimit and only partially execute, leaving unsettled currency deltas. The hook now checks all currencies in the payout swap path (both the input currency and all intermediates) and takes/distributes any positive deltas as rewards. This ensures all collected fees are properly distributed even when swaps don't fully execute due to price constraints.
|
|
30
|
+
|
|
3
31
|
## 2.5.0
|
|
4
32
|
|
|
5
33
|
### Minor Changes
|
|
6
34
|
|
|
7
35
|
- 816ceb35: Add launch fee: time-based dynamic fee that decays from 99% to 1% over 10 seconds after coin creation
|
|
8
|
-
|
|
9
36
|
- New coins record creation timestamp and expose it via `IHasCreationInfo` interface
|
|
10
37
|
- Hook calculates dynamic fee based on elapsed time since creation
|
|
11
38
|
- Initial supply purchase bypasses the fee via transient storage flag
|
|
@@ -40,7 +67,6 @@
|
|
|
40
67
|
Previously, the `burnPositions()` function was incorrectly adding `feesAccrued` to `callerDelta` when recording burned position amounts. Since `callerDelta` already includes accrued fees, this caused fees to be double-counted. This resulted in inflated token amounts being recorded in `BurnedPosition` structs, which could lead to `ERC20InsufficientBalance` errors when attempting to mint positions on a new hook during migration.
|
|
41
68
|
|
|
42
69
|
The fix:
|
|
43
|
-
|
|
44
70
|
- Use only `callerDelta` values directly without adding `feesAccrued`
|
|
45
71
|
- Add defensive balance checking in `mintPositions()` to cap liquidity at available token amounts
|
|
46
72
|
- Prevents migration failures from any remaining rounding discrepancies between burn and mint operations
|
|
@@ -60,7 +86,6 @@
|
|
|
60
86
|
### Minor Changes
|
|
61
87
|
|
|
62
88
|
- 7df94915: Enable buying initial supply when deploying creator coin and refactor factory internals
|
|
63
|
-
|
|
64
89
|
- Add new `deployCreatorCoin` overload with `postDeployHook` parameter that supports ETH transfers
|
|
65
90
|
- Refactored internal factory implementation to share more code between deployment methods
|
|
66
91
|
- Enables buying initial supply during creator coin deployment via post-deploy hooks
|
|
@@ -70,7 +95,6 @@
|
|
|
70
95
|
- 6a7e2b7b: Fix LP position duplication when deploying coins. If two positions are created with the same tick ranges, they are merged and stored as one position. This reduces gas costs during swapping as there are less LP positions to iterate through when collecting fees.
|
|
71
96
|
- 5093c5ef: Add bounds checking to prevent risky forced downcasting of currency deltas
|
|
72
97
|
- 9c6d241a: Fix ETH transfer failures in reward distribution when platform referrers cannot accept ETH
|
|
73
|
-
|
|
74
98
|
- Prevent swaps from reverting when platform referrers cannot accept ETH - in this case, the rewards are redirected to the protocol recipient as backup.
|
|
75
99
|
- Ensures coin functionality remains intact even with ETH-incompatible platform referrers
|
|
76
100
|
|
|
@@ -79,12 +103,10 @@
|
|
|
79
103
|
Consolidates multiple hook contracts into a single unified hook for simplified architecture and better maintainability.
|
|
80
104
|
|
|
81
105
|
- d3808d55: Adjust creator coin vesting duration to account for leap years
|
|
82
|
-
|
|
83
106
|
- Changed CREATOR*VESTING_DURATION from 5 * 365 days to 5 \_ 365.25 days
|
|
84
107
|
- Addresses Cantina audit finding about 1.25 day shortfall in 5-year vesting period
|
|
85
108
|
|
|
86
109
|
- b571fe54: Consolidate and clarify coin constants
|
|
87
|
-
|
|
88
110
|
- Renamed `CREATOR_LAUNCH_REWARD` to `CONTENT_COIN_INITIAL_CREATOR_SUPPLY` for clarity
|
|
89
111
|
- Renamed `CREATOR_VESTING_SUPPLY` to `CREATOR_COIN_CREATOR_VESTING_SUPPLY` for consistency
|
|
90
112
|
- Removed redundant `POOL_LAUNCH_SUPPLY` constant (use `CONTENT_COIN_MARKET_SUPPLY` instead)
|
|
@@ -111,7 +133,6 @@
|
|
|
111
133
|
- adf98059: Adds platform referral and trade referral functionality to creator coins, and unifies the fee structure between content and creator coins with a simplified 1% total fee.
|
|
112
134
|
|
|
113
135
|
## New Features:
|
|
114
|
-
|
|
115
136
|
- Platform referral and trade referral functionality for creator coins (previously only supported on content coins)
|
|
116
137
|
- Unified fee structure: Both content and creator coins use identical 1% fee distribution
|
|
117
138
|
|
|
@@ -140,11 +161,9 @@
|
|
|
140
161
|
| LP Rewards | 33.33% | 20% |
|
|
141
162
|
|
|
142
163
|
**Implementation Changes:**
|
|
143
|
-
|
|
144
164
|
- Consolidated reward logic into `CoinRewardsV4.distributeMarketRewards()`
|
|
145
165
|
|
|
146
166
|
**Backwards Compatibility:**
|
|
147
|
-
|
|
148
167
|
- Existing `CreatorCoinRewards` event is still emitted for backwards compatibility when rewards are distributed for a CreatorCoin
|
|
149
168
|
- Additionally, when market rewards are distributed for a CreatorCoin, the same `CoinMarketRewardsV4` event that is already emitted for ContentCoins is now also emitted
|
|
150
169
|
|
|
@@ -167,7 +186,6 @@
|
|
|
167
186
|
- dac72691: Remove Uniswap V3 support and refactor coin architecture
|
|
168
187
|
|
|
169
188
|
**Removal of V3 Support:**
|
|
170
|
-
|
|
171
189
|
- Removed support for creating coins based on Uniswap V3 - only V4 coins are supported
|
|
172
190
|
- Default coin deployment now creates Uniswap V4 coins when no config is provided (previously created V3)
|
|
173
191
|
- Removed V3-specific test files and utilities
|
|
@@ -176,7 +194,6 @@
|
|
|
176
194
|
- Added revert logic for V3 deployment attempts in factory deploy functions
|
|
177
195
|
|
|
178
196
|
**Architecture Refactoring:**
|
|
179
|
-
|
|
180
197
|
- Merged BaseCoinV4 functionality into BaseCoin.sol to consolidate Uniswap V4 integration
|
|
181
198
|
- Combined ICoinV4 interface with ICoin interface to simplify the interface hierarchy
|
|
182
199
|
- Updated ContentCoin and CreatorCoin to inherit directly from BaseCoin
|
|
@@ -197,7 +214,6 @@
|
|
|
197
214
|
This change updates the factory contract to use Ownable2StepUpgradeable instead of OwnableUpgradeable. The change maintains storage slot compatibility while adding the two-step ownership transfer pattern for enhanced security.
|
|
198
215
|
|
|
199
216
|
Key changes:
|
|
200
|
-
|
|
201
217
|
- ZoraFactoryImpl now inherits from Ownable2StepUpgradeable
|
|
202
218
|
- Adds pendingOwner() function
|
|
203
219
|
- Requires acceptOwnership() call to complete ownership transfers
|
|
@@ -250,7 +266,6 @@
|
|
|
250
266
|
- 73e95f69: Upgraded coins to use Uniswap V4:
|
|
251
267
|
|
|
252
268
|
**New CoinV4 Implementation:**
|
|
253
|
-
|
|
254
269
|
- Migrated from Uniswap V3 to Uniswap V4, with logic moved into a hook.
|
|
255
270
|
- Automatic LP fee collection and multi-hop reward distribution on every swap
|
|
256
271
|
- New `ZoraV4CoinHook` handles afterSwap operations
|
|
@@ -258,25 +273,21 @@
|
|
|
258
273
|
- Multi-hop fee swapping through intermediate currencies (e.g., ContentCoin → BackingCoin → Zora)
|
|
259
274
|
|
|
260
275
|
**Factory Updates:**
|
|
261
|
-
|
|
262
276
|
- Updated `deploy()` function signature with new `poolConfig`, `message`, and `salt` parameters
|
|
263
277
|
- Automatic V3/V4 version selection based on pool configuration
|
|
264
278
|
- Deterministic coin deployment with salt support
|
|
265
279
|
- New `CoinCreatedV4` event for V4 coin deployments
|
|
266
280
|
|
|
267
281
|
**Reward System Changes:**
|
|
268
|
-
|
|
269
282
|
- Increased trade referral rewards from 10% to 15% (1500 basis points)
|
|
270
283
|
- Automatic reward distribution in single backing currency
|
|
271
284
|
|
|
272
285
|
**New Interfaces and Events:**
|
|
273
|
-
|
|
274
286
|
- Added `IHasPoolKey` and `IHasSwapPath` interfaces for V4 functionality
|
|
275
287
|
- New `Swapped` event with detailed swap and price information
|
|
276
288
|
- New `CoinMarketRewardsV4` event for reward distribution tracking
|
|
277
289
|
|
|
278
290
|
**Breaking Changes:**
|
|
279
|
-
|
|
280
291
|
- New deterministic factory deploy function with salt
|
|
281
292
|
|
|
282
293
|
### Patch Changes
|
package/abis/BaseCoin.json
CHANGED
package/abis/ContentCoin.json
CHANGED
package/abis/ICoin.json
CHANGED
package/abis/ICoinV3.json
CHANGED