@zoralabs/coins 2.5.0 → 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.
- package/.turbo/turbo-build$colon$js.log +143 -131
- package/CHANGELOG.md +20 -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 +130 -0
- package/abis/ITrendCoinErrors.json +23 -0
- package/abis/IUniversalRouter.json +61 -0
- package/abis/IZoraFactory.json +227 -0
- package/abis/TrendCoin.json +2043 -0
- package/abis/ZoraFactoryImpl.json +232 -0
- package/dist/index.cjs +953 -138
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +951 -138
- package/dist/index.js.map +1 -1
- package/dist/wagmiGenerated.d.ts +1380 -149
- package/dist/wagmiGenerated.d.ts.map +1 -1
- package/package/wagmiGenerated.ts +960 -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 +14 -6
- 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 +18 -0
- package/src/interfaces/IZoraFactory.sol +60 -1
- package/src/libs/CoinConstants.sol +9 -1
- package/src/libs/CoinRewardsV4.sol +67 -19
- package/src/libs/TickerUtils.sol +84 -0
- package/src/libs/UniV4SwapToCurrency.sol +2 -1
- package/src/version/ContractVersionBase.sol +1 -1
- 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 +1077 -0
- package/test/Upgrades.t.sol +16 -3
- package/test/utils/FeeEstimatorHook.sol +33 -8
- package/test/utils/V4TestSetup.sol +36 -4
- package/wagmi.config.ts +2 -0
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
|
|
2
|
-
> @zoralabs/coins@2.
|
|
2
|
+
> @zoralabs/coins@2.6.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.
|
|
6
|
+
> @zoralabs/coins@2.6.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.
|
|
10
|
+
> @zoralabs/coins@2.6.0 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
|
|
15
|
-
Compiler run successful
|
|
13
|
+
Compiling 190 files with Solc 0.8.28
|
|
14
|
+
Solc 0.8.28 finished in 61.05s
|
|
15
|
+
Compiler run successful with warnings:
|
|
16
|
+
Warning (2018): Function state mutability can be restricted to pure
|
|
17
|
+
--> src/TrendCoin.sol:90:5:
|
|
18
|
+
|
|
|
19
|
+
90 | function initialize(
|
|
20
|
+
| ^ (Relevant source part starts here and spans across multiple lines).
|
|
21
|
+
|
|
16
22
|
[33m-[39m Validating plugins
|
|
17
23
|
[32m✔[39m Validating plugins
|
|
18
24
|
[33m-[39m Resolving contracts
|
|
@@ -23,142 +29,148 @@ Compiler run successful!
|
|
|
23
29
|
[32m✔[39m Writing to [90mpackage/wagmiGenerated.ts[39m
|
|
24
30
|
🔄 Processing 1 file(s) to replace 'Abi' with 'ABI'...
|
|
25
31
|
📝 Processing ./package/wagmiGenerated.ts...
|
|
26
|
-
✅ Updated ./package/wagmiGenerated.ts (
|
|
32
|
+
✅ Updated ./package/wagmiGenerated.ts (12 replacements)
|
|
27
33
|
✨ All files processed successfully!
|
|
28
34
|
|
|
29
|
-
> @zoralabs/coins@2.
|
|
35
|
+
> @zoralabs/coins@2.6.0 copy-abis /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
|
|
30
36
|
> pnpm exec bundle-abis
|
|
31
37
|
|
|
32
38
|
|
|
33
|
-
> @zoralabs/coins@2.
|
|
39
|
+
> @zoralabs/coins@2.6.0 prettier:write /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
|
|
34
40
|
> prettier --write 'src/**/*.sol' 'test/**/*.sol'
|
|
35
41
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
src/hooks/ZoraV4CoinHook.sol
|
|
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
|
-
src/libs/
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
src/libs/
|
|
89
|
-
|
|
90
|
-
src/
|
|
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
|
-
test/
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
test/
|
|
134
|
-
|
|
135
|
-
test/
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
test/utils/
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
test/
|
|
42
|
+
[90msrc/BaseCoin.sol[39m 1133ms (unchanged)
|
|
43
|
+
[90msrc/ContentCoin.sol[39m 175ms (unchanged)
|
|
44
|
+
[90msrc/CreatorCoin.sol[39m 156ms (unchanged)
|
|
45
|
+
[90msrc/deployment/ForkedCoinsAddresses.sol[39m 34ms (unchanged)
|
|
46
|
+
[90msrc/hook-registry/ZoraHookRegistry.sol[39m 178ms (unchanged)
|
|
47
|
+
[90msrc/hooks/deployment/BaseCoinDeployHook.sol[39m 69ms (unchanged)
|
|
48
|
+
[90msrc/hooks/deployment/BuySupplyWithSwapRouterHook.sol[39m 265ms (unchanged)
|
|
49
|
+
[90msrc/hooks/deployment/BuySupplyWithV4SwapHook.sol[39m 154ms (unchanged)
|
|
50
|
+
[90msrc/hooks/HookUpgradeGate.sol[39m 40ms (unchanged)
|
|
51
|
+
src/hooks/ZoraV4CoinHook.sol 323ms
|
|
52
|
+
[90msrc/interfaces/IAirlock.sol[39m 4ms (unchanged)
|
|
53
|
+
[90msrc/interfaces/ICoin.sol[39m 22ms (unchanged)
|
|
54
|
+
[90msrc/interfaces/ICoinComments.sol[39m 3ms (unchanged)
|
|
55
|
+
[90msrc/interfaces/ICoinDeployHook.sol[39m 2ms (unchanged)
|
|
56
|
+
[90msrc/interfaces/ICoinV3.sol[39m 8ms (unchanged)
|
|
57
|
+
[90msrc/interfaces/ICreatorCoin.sol[39m 5ms (unchanged)
|
|
58
|
+
[90msrc/interfaces/ICreatorCoinHook.sol[39m 4ms (unchanged)
|
|
59
|
+
[90msrc/interfaces/IDeployedCoinVersionLookup.sol[39m 2ms (unchanged)
|
|
60
|
+
[90msrc/interfaces/IDopplerErrors.sol[39m 2ms (unchanged)
|
|
61
|
+
[90msrc/interfaces/IERC7572.sol[39m 1ms (unchanged)
|
|
62
|
+
[90msrc/interfaces/IHasCreationInfo.sol[39m 1ms (unchanged)
|
|
63
|
+
[90msrc/interfaces/IHasRewardsRecipients.sol[39m 2ms (unchanged)
|
|
64
|
+
[90msrc/interfaces/IHooksUpgradeGate.sol[39m 4ms (unchanged)
|
|
65
|
+
[90msrc/interfaces/IMsgSender.sol[39m 1ms (unchanged)
|
|
66
|
+
[90msrc/interfaces/INonfungiblePositionManager.sol[39m 8ms (unchanged)
|
|
67
|
+
[90msrc/interfaces/IPoolConfigEncoding.sol[39m 2ms (unchanged)
|
|
68
|
+
[90msrc/interfaces/IPoolManager.sol[39m 1ms (unchanged)
|
|
69
|
+
[90msrc/interfaces/IProtocolRewards.sol[39m 5ms (unchanged)
|
|
70
|
+
[90msrc/interfaces/ISupportsLimitOrderFill.sol[39m 1ms (unchanged)
|
|
71
|
+
[90msrc/interfaces/ISwapPathRouter.sol[39m 2ms (unchanged)
|
|
72
|
+
[90msrc/interfaces/ISwapRouter.sol[39m 1ms (unchanged)
|
|
73
|
+
[90msrc/interfaces/ITrendCoin.sol[39m 2ms (unchanged)
|
|
74
|
+
[90msrc/interfaces/ITrendCoinErrors.sol[39m 1ms (unchanged)
|
|
75
|
+
[90msrc/interfaces/ITrustedMsgSenderProviderLookup.sol[39m 2ms (unchanged)
|
|
76
|
+
[90msrc/interfaces/IUniswapV3Factory.sol[39m 5ms (unchanged)
|
|
77
|
+
[90msrc/interfaces/IUniswapV3Pool.sol[39m 12ms (unchanged)
|
|
78
|
+
[90msrc/interfaces/IUniswapV3SwapCallback.sol[39m 2ms (unchanged)
|
|
79
|
+
[90msrc/interfaces/IUpgradeableV4Hook.sol[39m 4ms (unchanged)
|
|
80
|
+
[90msrc/interfaces/IWETH.sol[39m 6ms (unchanged)
|
|
81
|
+
[90msrc/interfaces/IZoraFactory.sol[39m 27ms (unchanged)
|
|
82
|
+
[90msrc/interfaces/IZoraHookRegistry.sol[39m 4ms (unchanged)
|
|
83
|
+
[90msrc/interfaces/IZoraLimitOrderBookCoinsInterface.sol[39m 2ms (unchanged)
|
|
84
|
+
[90msrc/interfaces/IZoraV4CoinHook.sol[39m 16ms (unchanged)
|
|
85
|
+
[90msrc/libs/CoinCommon.sol[39m 17ms (unchanged)
|
|
86
|
+
[90msrc/libs/CoinConfigurationVersions.sol[39m 84ms (unchanged)
|
|
87
|
+
[90msrc/libs/CoinConstants.sol[39m 37ms (unchanged)
|
|
88
|
+
[90msrc/libs/CoinDopplerMultiCurve.sol[39m 184ms (unchanged)
|
|
89
|
+
src/libs/CoinRewardsV4.sol 211ms
|
|
90
|
+
[90msrc/libs/CoinSetup.sol[39m 44ms (unchanged)
|
|
91
|
+
[90msrc/libs/DopplerMath.sol[39m 167ms (unchanged)
|
|
92
|
+
[90msrc/libs/HooksDeployment.sol[39m 128ms (unchanged)
|
|
93
|
+
[90msrc/libs/PoolStateReader.sol[39m 6ms (unchanged)
|
|
94
|
+
src/libs/TickerUtils.sol 44ms
|
|
95
|
+
[90msrc/libs/UniV4SwapHelper.sol[39m 138ms (unchanged)
|
|
96
|
+
src/libs/UniV4SwapToCurrency.sol 90ms
|
|
97
|
+
[90msrc/libs/V3ToV4SwapLib.sol[39m 123ms (unchanged)
|
|
98
|
+
[90msrc/libs/V4Liquidity.sol[39m 337ms (unchanged)
|
|
99
|
+
[90msrc/proxy/ZoraFactory.sol[39m 10ms (unchanged)
|
|
100
|
+
[90msrc/TrendCoin.sol[39m 39ms (unchanged)
|
|
101
|
+
[90msrc/types/LpPosition.sol[39m 1ms (unchanged)
|
|
102
|
+
[90msrc/types/PoolConfiguration.sol[39m 1ms (unchanged)
|
|
103
|
+
[90msrc/types/PoolState.sol[39m 2ms (unchanged)
|
|
104
|
+
[90msrc/utils/AutoSwapper.sol[39m 37ms (unchanged)
|
|
105
|
+
[90msrc/utils/DeployedCoinVersionLookup.sol[39m 8ms (unchanged)
|
|
106
|
+
[90msrc/utils/MultiOwnable.sol[39m 66ms (unchanged)
|
|
107
|
+
[90msrc/utils/ProxyShim.sol[39m 5ms (unchanged)
|
|
108
|
+
[90msrc/utils/TrustedMsgSenderProviderLookup.sol[39m 38ms (unchanged)
|
|
109
|
+
[90msrc/utils/uniswap/BitMath.sol[39m 10ms (unchanged)
|
|
110
|
+
[90msrc/utils/uniswap/CustomRevert.sol[39m 57ms (unchanged)
|
|
111
|
+
[90msrc/utils/uniswap/FixedPoint96.sol[39m 2ms (unchanged)
|
|
112
|
+
[90msrc/utils/uniswap/FullMath.sol[39m 34ms (unchanged)
|
|
113
|
+
[90msrc/utils/uniswap/LiquidityAmounts.sol[39m 78ms (unchanged)
|
|
114
|
+
[90msrc/utils/uniswap/SafeCast.sol[39m 20ms (unchanged)
|
|
115
|
+
[90msrc/utils/uniswap/SqrtPriceMath.sol[39m 109ms (unchanged)
|
|
116
|
+
[90msrc/utils/uniswap/TickMath.sol[39m 114ms (unchanged)
|
|
117
|
+
[90msrc/utils/uniswap/UnsafeMath.sol[39m 3ms (unchanged)
|
|
118
|
+
[90msrc/version/ContractVersionBase.sol[39m 2ms (unchanged)
|
|
119
|
+
[90msrc/ZoraFactoryImpl.sol[39m 294ms (unchanged)
|
|
120
|
+
[90mtest/AutoSwapper.t.sol[39m 68ms (unchanged)
|
|
121
|
+
[90mtest/BuySupplyWithV4SwapHook.t.sol[39m 263ms (unchanged)
|
|
122
|
+
[90mtest/Coin.t.sol[39m 252ms (unchanged)
|
|
123
|
+
[90mtest/CoinRewardsV4.t.sol[39m 15ms (unchanged)
|
|
124
|
+
[90mtest/CoinUniV4.t.sol[39m 688ms (unchanged)
|
|
125
|
+
[90mtest/ContentCoinRewards.t.sol[39m 231ms (unchanged)
|
|
126
|
+
[90mtest/CreatorCoin.t.sol[39m 255ms (unchanged)
|
|
127
|
+
[90mtest/CreatorCoinRewards.t.sol[39m 193ms (unchanged)
|
|
128
|
+
[90mtest/DeploymentHooks.t.sol[39m 145ms (unchanged)
|
|
129
|
+
test/Factory.t.sol 160ms
|
|
130
|
+
[90mtest/HooksDeployment.t.sol[39m 102ms (unchanged)
|
|
131
|
+
[90mtest/LaunchFee.t.sol[39m 189ms (unchanged)
|
|
132
|
+
[90mtest/LiquidityMigration.t.sol[39m 375ms (unchanged)
|
|
133
|
+
[90mtest/mocks/MockAirlock.sol[39m 6ms (unchanged)
|
|
134
|
+
[90mtest/mocks/MockERC20.sol[39m 8ms (unchanged)
|
|
135
|
+
[90mtest/mocks/MockSwapRouter.sol[39m 10ms (unchanged)
|
|
136
|
+
[90mtest/mocks/MockZoraLimitOrderBook.sol[39m 2ms (unchanged)
|
|
137
|
+
[90mtest/mocks/SimpleERC20.sol[39m 4ms (unchanged)
|
|
138
|
+
[90mtest/MultiOwnable.t.sol[39m 156ms (unchanged)
|
|
139
|
+
test/TrendCoin.t.sol 740ms
|
|
140
|
+
[90mtest/TrustedMsgSenderProviderLookup.t.sol[39m 95ms (unchanged)
|
|
141
|
+
test/Upgrades.t.sol 148ms
|
|
142
|
+
[90mtest/utils/BaseTest.sol[39m 34ms (unchanged)
|
|
143
|
+
[90mtest/utils/ContractAddresses.sol[39m 6ms (unchanged)
|
|
144
|
+
[90mtest/utils/DeployedCoinVersionLookup.t.sol[39m 70ms (unchanged)
|
|
145
|
+
test/utils/FeeEstimatorHook.sol 68ms
|
|
146
|
+
[90mtest/utils/hookmate/artifacts/DeployHelper.sol[39m 9ms (unchanged)
|
|
147
|
+
[90mtest/utils/hookmate/artifacts/Permit2.sol[39m 6ms (unchanged)
|
|
148
|
+
[90mtest/utils/hookmate/artifacts/UniversalRouter.sol[39m 8ms (unchanged)
|
|
149
|
+
[90mtest/utils/hookmate/artifacts/V4PoolManager.sol[39m 8ms (unchanged)
|
|
150
|
+
[90mtest/utils/hookmate/artifacts/V4PositionManager.sol[39m 12ms (unchanged)
|
|
151
|
+
[90mtest/utils/hookmate/artifacts/V4Quoter.sol[39m 7ms (unchanged)
|
|
152
|
+
[90mtest/utils/hookmate/artifacts/V4Router.sol[39m 8ms (unchanged)
|
|
153
|
+
[90mtest/utils/hookmate/constants/AddressConstants.sol[39m 66ms (unchanged)
|
|
154
|
+
[90mtest/utils/hookmate/interfaces/router/IUniswapV4Router04.sol[39m 10ms (unchanged)
|
|
155
|
+
[90mtest/utils/hookmate/interfaces/router/PathKey.sol[39m 28ms (unchanged)
|
|
156
|
+
[90mtest/utils/hookmate/test/utils/SwapFeeEventAsserter.sol[39m 17ms (unchanged)
|
|
157
|
+
[90mtest/utils/ProtocolRewards.sol[39m 532ms (unchanged)
|
|
158
|
+
[90mtest/utils/RewardTestHelpers.sol[39m 89ms (unchanged)
|
|
159
|
+
[90mtest/utils/TrustedSenderTestHelper.sol[39m 6ms (unchanged)
|
|
160
|
+
[90mtest/utils/V4TestSetup.sol[39m 452ms (unchanged)
|
|
161
|
+
[90mtest/V4Liquidity.t.sol[39m 149ms (unchanged)
|
|
162
|
+
[90mtest/ZoraHookRegistry.t.sol[39m 246ms (unchanged)
|
|
151
163
|
[34mCLI[39m Building entry: package/index.ts
|
|
152
164
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
153
|
-
[34mCLI[39m tsup v8.
|
|
165
|
+
[34mCLI[39m tsup v8.5.1
|
|
154
166
|
[34mCLI[39m Using tsup config: /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins/tsup.config.ts
|
|
155
167
|
[34mCLI[39m Target: es2021
|
|
156
168
|
[34mCLI[39m Cleaning output folder
|
|
157
169
|
[34mCJS[39m Build start
|
|
158
170
|
[34mESM[39m Build start
|
|
159
|
-
[32mESM[39m [1mdist/index.js [22m[
|
|
160
|
-
[32mESM[39m [1mdist/index.js.map [22m[
|
|
161
|
-
[32mESM[39m ⚡️ Build success in
|
|
162
|
-
[32mCJS[39m [1mdist/index.cjs [22m[
|
|
163
|
-
[32mCJS[39m [1mdist/index.cjs.map [22m[
|
|
164
|
-
[32mCJS[39m ⚡️ Build success in
|
|
171
|
+
[32mESM[39m [1mdist/index.js [22m[32m186.86 KB[39m
|
|
172
|
+
[32mESM[39m [1mdist/index.js.map [22m[32m331.50 KB[39m
|
|
173
|
+
[32mESM[39m ⚡️ Build success in 96ms
|
|
174
|
+
[32mCJS[39m [1mdist/index.cjs [22m[32m188.36 KB[39m
|
|
175
|
+
[32mCJS[39m [1mdist/index.cjs.map [22m[32m331.66 KB[39m
|
|
176
|
+
[32mCJS[39m ⚡️ Build success in 96ms
|
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,30 @@
|
|
|
1
1
|
# @zoralabs/coins
|
|
2
2
|
|
|
3
|
+
## 2.6.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 50134ebc: Add TrendCoin support
|
|
8
|
+
- New `TrendCoin` contract: 100% supply in liquidity pool, 0% swap fees
|
|
9
|
+
- `deployTrendCoin` factory method with ticker uniqueness enforcement and post-deploy hook support
|
|
10
|
+
- Owner-configurable pool parameters via `setTrendCoinPoolConfig()`
|
|
11
|
+
- Metadata manager role for updatable contract URIs
|
|
12
|
+
- Ticker validation and URI encoding for trend coin symbols
|
|
13
|
+
|
|
14
|
+
## 2.5.1
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- 78dffbdc: Including uniswap v4 errors in lob and swap router abis, and including some uniswap v4 contracts and abis.
|
|
19
|
+
- 1ccca8ef: Fix swap fee distribution when price limits cause partial execution
|
|
20
|
+
|
|
21
|
+
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.
|
|
22
|
+
|
|
3
23
|
## 2.5.0
|
|
4
24
|
|
|
5
25
|
### Minor Changes
|
|
6
26
|
|
|
7
27
|
- 816ceb35: Add launch fee: time-based dynamic fee that decays from 99% to 1% over 10 seconds after coin creation
|
|
8
|
-
|
|
9
28
|
- New coins record creation timestamp and expose it via `IHasCreationInfo` interface
|
|
10
29
|
- Hook calculates dynamic fee based on elapsed time since creation
|
|
11
30
|
- Initial supply purchase bypasses the fee via transient storage flag
|
|
@@ -40,7 +59,6 @@
|
|
|
40
59
|
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
60
|
|
|
42
61
|
The fix:
|
|
43
|
-
|
|
44
62
|
- Use only `callerDelta` values directly without adding `feesAccrued`
|
|
45
63
|
- Add defensive balance checking in `mintPositions()` to cap liquidity at available token amounts
|
|
46
64
|
- Prevents migration failures from any remaining rounding discrepancies between burn and mint operations
|
|
@@ -60,7 +78,6 @@
|
|
|
60
78
|
### Minor Changes
|
|
61
79
|
|
|
62
80
|
- 7df94915: Enable buying initial supply when deploying creator coin and refactor factory internals
|
|
63
|
-
|
|
64
81
|
- Add new `deployCreatorCoin` overload with `postDeployHook` parameter that supports ETH transfers
|
|
65
82
|
- Refactored internal factory implementation to share more code between deployment methods
|
|
66
83
|
- Enables buying initial supply during creator coin deployment via post-deploy hooks
|
|
@@ -70,7 +87,6 @@
|
|
|
70
87
|
- 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
88
|
- 5093c5ef: Add bounds checking to prevent risky forced downcasting of currency deltas
|
|
72
89
|
- 9c6d241a: Fix ETH transfer failures in reward distribution when platform referrers cannot accept ETH
|
|
73
|
-
|
|
74
90
|
- Prevent swaps from reverting when platform referrers cannot accept ETH - in this case, the rewards are redirected to the protocol recipient as backup.
|
|
75
91
|
- Ensures coin functionality remains intact even with ETH-incompatible platform referrers
|
|
76
92
|
|
|
@@ -79,12 +95,10 @@
|
|
|
79
95
|
Consolidates multiple hook contracts into a single unified hook for simplified architecture and better maintainability.
|
|
80
96
|
|
|
81
97
|
- d3808d55: Adjust creator coin vesting duration to account for leap years
|
|
82
|
-
|
|
83
98
|
- Changed CREATOR*VESTING_DURATION from 5 * 365 days to 5 \_ 365.25 days
|
|
84
99
|
- Addresses Cantina audit finding about 1.25 day shortfall in 5-year vesting period
|
|
85
100
|
|
|
86
101
|
- b571fe54: Consolidate and clarify coin constants
|
|
87
|
-
|
|
88
102
|
- Renamed `CREATOR_LAUNCH_REWARD` to `CONTENT_COIN_INITIAL_CREATOR_SUPPLY` for clarity
|
|
89
103
|
- Renamed `CREATOR_VESTING_SUPPLY` to `CREATOR_COIN_CREATOR_VESTING_SUPPLY` for consistency
|
|
90
104
|
- Removed redundant `POOL_LAUNCH_SUPPLY` constant (use `CONTENT_COIN_MARKET_SUPPLY` instead)
|
|
@@ -111,7 +125,6 @@
|
|
|
111
125
|
- 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
126
|
|
|
113
127
|
## New Features:
|
|
114
|
-
|
|
115
128
|
- Platform referral and trade referral functionality for creator coins (previously only supported on content coins)
|
|
116
129
|
- Unified fee structure: Both content and creator coins use identical 1% fee distribution
|
|
117
130
|
|
|
@@ -140,11 +153,9 @@
|
|
|
140
153
|
| LP Rewards | 33.33% | 20% |
|
|
141
154
|
|
|
142
155
|
**Implementation Changes:**
|
|
143
|
-
|
|
144
156
|
- Consolidated reward logic into `CoinRewardsV4.distributeMarketRewards()`
|
|
145
157
|
|
|
146
158
|
**Backwards Compatibility:**
|
|
147
|
-
|
|
148
159
|
- Existing `CreatorCoinRewards` event is still emitted for backwards compatibility when rewards are distributed for a CreatorCoin
|
|
149
160
|
- Additionally, when market rewards are distributed for a CreatorCoin, the same `CoinMarketRewardsV4` event that is already emitted for ContentCoins is now also emitted
|
|
150
161
|
|
|
@@ -167,7 +178,6 @@
|
|
|
167
178
|
- dac72691: Remove Uniswap V3 support and refactor coin architecture
|
|
168
179
|
|
|
169
180
|
**Removal of V3 Support:**
|
|
170
|
-
|
|
171
181
|
- Removed support for creating coins based on Uniswap V3 - only V4 coins are supported
|
|
172
182
|
- Default coin deployment now creates Uniswap V4 coins when no config is provided (previously created V3)
|
|
173
183
|
- Removed V3-specific test files and utilities
|
|
@@ -176,7 +186,6 @@
|
|
|
176
186
|
- Added revert logic for V3 deployment attempts in factory deploy functions
|
|
177
187
|
|
|
178
188
|
**Architecture Refactoring:**
|
|
179
|
-
|
|
180
189
|
- Merged BaseCoinV4 functionality into BaseCoin.sol to consolidate Uniswap V4 integration
|
|
181
190
|
- Combined ICoinV4 interface with ICoin interface to simplify the interface hierarchy
|
|
182
191
|
- Updated ContentCoin and CreatorCoin to inherit directly from BaseCoin
|
|
@@ -197,7 +206,6 @@
|
|
|
197
206
|
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
207
|
|
|
199
208
|
Key changes:
|
|
200
|
-
|
|
201
209
|
- ZoraFactoryImpl now inherits from Ownable2StepUpgradeable
|
|
202
210
|
- Adds pendingOwner() function
|
|
203
211
|
- Requires acceptOwnership() call to complete ownership transfers
|
|
@@ -250,7 +258,6 @@
|
|
|
250
258
|
- 73e95f69: Upgraded coins to use Uniswap V4:
|
|
251
259
|
|
|
252
260
|
**New CoinV4 Implementation:**
|
|
253
|
-
|
|
254
261
|
- Migrated from Uniswap V3 to Uniswap V4, with logic moved into a hook.
|
|
255
262
|
- Automatic LP fee collection and multi-hop reward distribution on every swap
|
|
256
263
|
- New `ZoraV4CoinHook` handles afterSwap operations
|
|
@@ -258,25 +265,21 @@
|
|
|
258
265
|
- Multi-hop fee swapping through intermediate currencies (e.g., ContentCoin → BackingCoin → Zora)
|
|
259
266
|
|
|
260
267
|
**Factory Updates:**
|
|
261
|
-
|
|
262
268
|
- Updated `deploy()` function signature with new `poolConfig`, `message`, and `salt` parameters
|
|
263
269
|
- Automatic V3/V4 version selection based on pool configuration
|
|
264
270
|
- Deterministic coin deployment with salt support
|
|
265
271
|
- New `CoinCreatedV4` event for V4 coin deployments
|
|
266
272
|
|
|
267
273
|
**Reward System Changes:**
|
|
268
|
-
|
|
269
274
|
- Increased trade referral rewards from 10% to 15% (1500 basis points)
|
|
270
275
|
- Automatic reward distribution in single backing currency
|
|
271
276
|
|
|
272
277
|
**New Interfaces and Events:**
|
|
273
|
-
|
|
274
278
|
- Added `IHasPoolKey` and `IHasSwapPath` interfaces for V4 functionality
|
|
275
279
|
- New `Swapped` event with detailed swap and price information
|
|
276
280
|
- New `CoinMarketRewardsV4` event for reward distribution tracking
|
|
277
281
|
|
|
278
282
|
**Breaking Changes:**
|
|
279
|
-
|
|
280
283
|
- New deterministic factory deploy function with salt
|
|
281
284
|
|
|
282
285
|
### Patch Changes
|
package/abis/BaseCoin.json
CHANGED
package/abis/ContentCoin.json
CHANGED
package/abis/ICoin.json
CHANGED
package/abis/ICoinV3.json
CHANGED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"type": "function",
|
|
4
|
+
"name": "initializeTrendCoin",
|
|
5
|
+
"inputs": [
|
|
6
|
+
{
|
|
7
|
+
"name": "owners_",
|
|
8
|
+
"type": "address[]",
|
|
9
|
+
"internalType": "address[]"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "symbol_",
|
|
13
|
+
"type": "string",
|
|
14
|
+
"internalType": "string"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "poolKey_",
|
|
18
|
+
"type": "tuple",
|
|
19
|
+
"internalType": "struct PoolKey",
|
|
20
|
+
"components": [
|
|
21
|
+
{
|
|
22
|
+
"name": "currency0",
|
|
23
|
+
"type": "address",
|
|
24
|
+
"internalType": "Currency"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "currency1",
|
|
28
|
+
"type": "address",
|
|
29
|
+
"internalType": "Currency"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "fee",
|
|
33
|
+
"type": "uint24",
|
|
34
|
+
"internalType": "uint24"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"name": "tickSpacing",
|
|
38
|
+
"type": "int24",
|
|
39
|
+
"internalType": "int24"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "hooks",
|
|
43
|
+
"type": "address",
|
|
44
|
+
"internalType": "contract IHooks"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": "sqrtPriceX96",
|
|
50
|
+
"type": "uint160",
|
|
51
|
+
"internalType": "uint160"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "poolConfiguration_",
|
|
55
|
+
"type": "tuple",
|
|
56
|
+
"internalType": "struct PoolConfiguration",
|
|
57
|
+
"components": [
|
|
58
|
+
{
|
|
59
|
+
"name": "version",
|
|
60
|
+
"type": "uint8",
|
|
61
|
+
"internalType": "uint8"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"name": "numPositions",
|
|
65
|
+
"type": "uint16",
|
|
66
|
+
"internalType": "uint16"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "fee",
|
|
70
|
+
"type": "uint24",
|
|
71
|
+
"internalType": "uint24"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "tickSpacing",
|
|
75
|
+
"type": "int24",
|
|
76
|
+
"internalType": "int24"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "numDiscoveryPositions",
|
|
80
|
+
"type": "uint16[]",
|
|
81
|
+
"internalType": "uint16[]"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"name": "tickLower",
|
|
85
|
+
"type": "int24[]",
|
|
86
|
+
"internalType": "int24[]"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"name": "tickUpper",
|
|
90
|
+
"type": "int24[]",
|
|
91
|
+
"internalType": "int24[]"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"name": "maxDiscoverySupplyShare",
|
|
95
|
+
"type": "uint256[]",
|
|
96
|
+
"internalType": "uint256[]"
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
"outputs": [],
|
|
102
|
+
"stateMutability": "nonpayable"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"type": "error",
|
|
106
|
+
"name": "InvalidTickerCharacters",
|
|
107
|
+
"inputs": []
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"type": "error",
|
|
111
|
+
"name": "OnlyMetadataManager",
|
|
112
|
+
"inputs": []
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"type": "error",
|
|
116
|
+
"name": "TickerAlreadyUsed",
|
|
117
|
+
"inputs": [
|
|
118
|
+
{
|
|
119
|
+
"name": "symbol",
|
|
120
|
+
"type": "string",
|
|
121
|
+
"internalType": "string"
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"type": "error",
|
|
127
|
+
"name": "UseSpecificTrendCoinInitialize",
|
|
128
|
+
"inputs": []
|
|
129
|
+
}
|
|
130
|
+
]
|