@zoralabs/coins 2.4.1 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.abi-stability +923 -0
- package/.turbo/turbo-build$colon$js.log +143 -129
- package/CHANGELOG.md +38 -16
- package/abis/BaseCoin.json +23 -0
- package/abis/ContentCoin.json +23 -0
- package/abis/CreatorCoin.json +18 -0
- package/abis/ICoin.json +5 -0
- package/abis/ICoinV3.json +5 -0
- package/abis/IHasCreationInfo.json +20 -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 +962 -117
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +960 -117
- package/dist/index.js.map +1 -1
- package/dist/wagmiGenerated.d.ts +1404 -131
- package/dist/wagmiGenerated.d.ts.map +1 -1
- package/package/wagmiGenerated.ts +970 -119
- package/package.json +4 -2
- package/src/BaseCoin.sol +44 -14
- 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 +73 -8
- package/src/interfaces/ICoin.sol +5 -1
- package/src/interfaces/ICreatorCoin.sol +0 -3
- package/src/interfaces/IHasCreationInfo.sol +12 -0
- 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 +25 -1
- package/src/libs/CoinRewardsV4.sol +67 -19
- package/src/libs/CoinSetup.sol +7 -1
- package/src/libs/TickerUtils.sol +84 -0
- package/src/libs/UniV4SwapToCurrency.sol +2 -1
- package/src/libs/V3ToV4SwapLib.sol +7 -3
- package/src/version/ContractVersionBase.sol +1 -1
- package/test/CoinUniV4.t.sol +4 -0
- package/test/ContentCoinRewards.t.sol +1 -0
- package/test/CreatorCoin.t.sol +2 -1
- package/test/CreatorCoinRewards.t.sol +1 -0
- package/test/Factory.t.sol +31 -5
- package/test/LaunchFee.t.sol +284 -0
- 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,140 +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/
|
|
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
|
-
|
|
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)
|
|
149
163
|
[34mCLI[39m Building entry: package/index.ts
|
|
150
164
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
151
|
-
[34mCLI[39m tsup v8.
|
|
165
|
+
[34mCLI[39m tsup v8.5.1
|
|
152
166
|
[34mCLI[39m Using tsup config: /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins/tsup.config.ts
|
|
153
167
|
[34mCLI[39m Target: es2021
|
|
154
168
|
[34mCLI[39m Cleaning output folder
|
|
155
169
|
[34mCJS[39m Build start
|
|
156
170
|
[34mESM[39m Build start
|
|
157
|
-
[
|
|
158
|
-
[
|
|
159
|
-
[
|
|
160
|
-
[
|
|
161
|
-
[
|
|
162
|
-
[
|
|
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,5 +1,43 @@
|
|
|
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
|
+
|
|
23
|
+
## 2.5.0
|
|
24
|
+
|
|
25
|
+
### Minor Changes
|
|
26
|
+
|
|
27
|
+
- 816ceb35: Add launch fee: time-based dynamic fee that decays from 99% to 1% over 10 seconds after coin creation
|
|
28
|
+
- New coins record creation timestamp and expose it via `IHasCreationInfo` interface
|
|
29
|
+
- Hook calculates dynamic fee based on elapsed time since creation
|
|
30
|
+
- Initial supply purchase bypasses the fee via transient storage flag
|
|
31
|
+
- Legacy coins without the interface receive normal 1% LP fee
|
|
32
|
+
|
|
33
|
+
## 2.4.2
|
|
34
|
+
|
|
35
|
+
### Patch Changes
|
|
36
|
+
|
|
37
|
+
- 479df7f0: Fix ETH settlement by adding missing sync before settle in V3ToV4SwapLib
|
|
38
|
+
|
|
39
|
+
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.
|
|
40
|
+
|
|
3
41
|
## 2.4.1
|
|
4
42
|
|
|
5
43
|
### Patch Changes
|
|
@@ -21,7 +59,6 @@
|
|
|
21
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.
|
|
22
60
|
|
|
23
61
|
The fix:
|
|
24
|
-
|
|
25
62
|
- Use only `callerDelta` values directly without adding `feesAccrued`
|
|
26
63
|
- Add defensive balance checking in `mintPositions()` to cap liquidity at available token amounts
|
|
27
64
|
- Prevents migration failures from any remaining rounding discrepancies between burn and mint operations
|
|
@@ -41,7 +78,6 @@
|
|
|
41
78
|
### Minor Changes
|
|
42
79
|
|
|
43
80
|
- 7df94915: Enable buying initial supply when deploying creator coin and refactor factory internals
|
|
44
|
-
|
|
45
81
|
- Add new `deployCreatorCoin` overload with `postDeployHook` parameter that supports ETH transfers
|
|
46
82
|
- Refactored internal factory implementation to share more code between deployment methods
|
|
47
83
|
- Enables buying initial supply during creator coin deployment via post-deploy hooks
|
|
@@ -51,7 +87,6 @@
|
|
|
51
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.
|
|
52
88
|
- 5093c5ef: Add bounds checking to prevent risky forced downcasting of currency deltas
|
|
53
89
|
- 9c6d241a: Fix ETH transfer failures in reward distribution when platform referrers cannot accept ETH
|
|
54
|
-
|
|
55
90
|
- Prevent swaps from reverting when platform referrers cannot accept ETH - in this case, the rewards are redirected to the protocol recipient as backup.
|
|
56
91
|
- Ensures coin functionality remains intact even with ETH-incompatible platform referrers
|
|
57
92
|
|
|
@@ -60,12 +95,10 @@
|
|
|
60
95
|
Consolidates multiple hook contracts into a single unified hook for simplified architecture and better maintainability.
|
|
61
96
|
|
|
62
97
|
- d3808d55: Adjust creator coin vesting duration to account for leap years
|
|
63
|
-
|
|
64
98
|
- Changed CREATOR*VESTING_DURATION from 5 * 365 days to 5 \_ 365.25 days
|
|
65
99
|
- Addresses Cantina audit finding about 1.25 day shortfall in 5-year vesting period
|
|
66
100
|
|
|
67
101
|
- b571fe54: Consolidate and clarify coin constants
|
|
68
|
-
|
|
69
102
|
- Renamed `CREATOR_LAUNCH_REWARD` to `CONTENT_COIN_INITIAL_CREATOR_SUPPLY` for clarity
|
|
70
103
|
- Renamed `CREATOR_VESTING_SUPPLY` to `CREATOR_COIN_CREATOR_VESTING_SUPPLY` for consistency
|
|
71
104
|
- Removed redundant `POOL_LAUNCH_SUPPLY` constant (use `CONTENT_COIN_MARKET_SUPPLY` instead)
|
|
@@ -92,7 +125,6 @@
|
|
|
92
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.
|
|
93
126
|
|
|
94
127
|
## New Features:
|
|
95
|
-
|
|
96
128
|
- Platform referral and trade referral functionality for creator coins (previously only supported on content coins)
|
|
97
129
|
- Unified fee structure: Both content and creator coins use identical 1% fee distribution
|
|
98
130
|
|
|
@@ -121,11 +153,9 @@
|
|
|
121
153
|
| LP Rewards | 33.33% | 20% |
|
|
122
154
|
|
|
123
155
|
**Implementation Changes:**
|
|
124
|
-
|
|
125
156
|
- Consolidated reward logic into `CoinRewardsV4.distributeMarketRewards()`
|
|
126
157
|
|
|
127
158
|
**Backwards Compatibility:**
|
|
128
|
-
|
|
129
159
|
- Existing `CreatorCoinRewards` event is still emitted for backwards compatibility when rewards are distributed for a CreatorCoin
|
|
130
160
|
- Additionally, when market rewards are distributed for a CreatorCoin, the same `CoinMarketRewardsV4` event that is already emitted for ContentCoins is now also emitted
|
|
131
161
|
|
|
@@ -148,7 +178,6 @@
|
|
|
148
178
|
- dac72691: Remove Uniswap V3 support and refactor coin architecture
|
|
149
179
|
|
|
150
180
|
**Removal of V3 Support:**
|
|
151
|
-
|
|
152
181
|
- Removed support for creating coins based on Uniswap V3 - only V4 coins are supported
|
|
153
182
|
- Default coin deployment now creates Uniswap V4 coins when no config is provided (previously created V3)
|
|
154
183
|
- Removed V3-specific test files and utilities
|
|
@@ -157,7 +186,6 @@
|
|
|
157
186
|
- Added revert logic for V3 deployment attempts in factory deploy functions
|
|
158
187
|
|
|
159
188
|
**Architecture Refactoring:**
|
|
160
|
-
|
|
161
189
|
- Merged BaseCoinV4 functionality into BaseCoin.sol to consolidate Uniswap V4 integration
|
|
162
190
|
- Combined ICoinV4 interface with ICoin interface to simplify the interface hierarchy
|
|
163
191
|
- Updated ContentCoin and CreatorCoin to inherit directly from BaseCoin
|
|
@@ -178,7 +206,6 @@
|
|
|
178
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.
|
|
179
207
|
|
|
180
208
|
Key changes:
|
|
181
|
-
|
|
182
209
|
- ZoraFactoryImpl now inherits from Ownable2StepUpgradeable
|
|
183
210
|
- Adds pendingOwner() function
|
|
184
211
|
- Requires acceptOwnership() call to complete ownership transfers
|
|
@@ -231,7 +258,6 @@
|
|
|
231
258
|
- 73e95f69: Upgraded coins to use Uniswap V4:
|
|
232
259
|
|
|
233
260
|
**New CoinV4 Implementation:**
|
|
234
|
-
|
|
235
261
|
- Migrated from Uniswap V3 to Uniswap V4, with logic moved into a hook.
|
|
236
262
|
- Automatic LP fee collection and multi-hop reward distribution on every swap
|
|
237
263
|
- New `ZoraV4CoinHook` handles afterSwap operations
|
|
@@ -239,25 +265,21 @@
|
|
|
239
265
|
- Multi-hop fee swapping through intermediate currencies (e.g., ContentCoin → BackingCoin → Zora)
|
|
240
266
|
|
|
241
267
|
**Factory Updates:**
|
|
242
|
-
|
|
243
268
|
- Updated `deploy()` function signature with new `poolConfig`, `message`, and `salt` parameters
|
|
244
269
|
- Automatic V3/V4 version selection based on pool configuration
|
|
245
270
|
- Deterministic coin deployment with salt support
|
|
246
271
|
- New `CoinCreatedV4` event for V4 coin deployments
|
|
247
272
|
|
|
248
273
|
**Reward System Changes:**
|
|
249
|
-
|
|
250
274
|
- Increased trade referral rewards from 10% to 15% (1500 basis points)
|
|
251
275
|
- Automatic reward distribution in single backing currency
|
|
252
276
|
|
|
253
277
|
**New Interfaces and Events:**
|
|
254
|
-
|
|
255
278
|
- Added `IHasPoolKey` and `IHasSwapPath` interfaces for V4 functionality
|
|
256
279
|
- New `Swapped` event with detailed swap and price information
|
|
257
280
|
- New `CoinMarketRewardsV4` event for reward distribution tracking
|
|
258
281
|
|
|
259
282
|
**Breaking Changes:**
|
|
260
|
-
|
|
261
283
|
- New deterministic factory deploy function with salt
|
|
262
284
|
|
|
263
285
|
### Patch Changes
|
package/abis/BaseCoin.json
CHANGED
|
@@ -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",
|
|
@@ -1720,6 +1738,11 @@
|
|
|
1720
1738
|
}
|
|
1721
1739
|
]
|
|
1722
1740
|
},
|
|
1741
|
+
{
|
|
1742
|
+
"type": "error",
|
|
1743
|
+
"name": "InvalidCurrency",
|
|
1744
|
+
"inputs": []
|
|
1745
|
+
},
|
|
1723
1746
|
{
|
|
1724
1747
|
"type": "error",
|
|
1725
1748
|
"name": "InvalidCurrencyLowerTick",
|
package/abis/ContentCoin.json
CHANGED
|
@@ -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",
|
|
@@ -1746,6 +1764,11 @@
|
|
|
1746
1764
|
}
|
|
1747
1765
|
]
|
|
1748
1766
|
},
|
|
1767
|
+
{
|
|
1768
|
+
"type": "error",
|
|
1769
|
+
"name": "InvalidCurrency",
|
|
1770
|
+
"inputs": []
|
|
1771
|
+
},
|
|
1749
1772
|
{
|
|
1750
1773
|
"type": "error",
|
|
1751
1774
|
"name": "InvalidCurrencyLowerTick",
|
package/abis/CreatorCoin.json
CHANGED
|
@@ -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",
|
package/abis/ICoin.json
CHANGED
package/abis/ICoinV3.json
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"type": "function",
|
|
4
|
+
"name": "creationInfo",
|
|
5
|
+
"inputs": [],
|
|
6
|
+
"outputs": [
|
|
7
|
+
{
|
|
8
|
+
"name": "creationTimestamp",
|
|
9
|
+
"type": "uint256",
|
|
10
|
+
"internalType": "uint256"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "isDeploying",
|
|
14
|
+
"type": "bool",
|
|
15
|
+
"internalType": "bool"
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"stateMutability": "view"
|
|
19
|
+
}
|
|
20
|
+
]
|