@zoralabs/coins 2.3.1 → 2.4.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 +115 -116
- package/CHANGELOG.md +24 -0
- package/abis/BaseTest.json +3 -3
- package/abis/FeeEstimatorHook.json +23 -0
- package/abis/ITrustedMsgSenderProviderLookup.json +21 -0
- package/abis/IZoraV4CoinHook.json +5 -0
- package/abis/TrustedMsgSenderProviderLookup.json +215 -0
- package/abis/VmContractHelper242.json +233 -0
- package/abis/ZoraV4CoinHook.json +21 -3
- package/foundry.toml +5 -1
- package/package.json +3 -3
- package/script/DeployTrustedMsgSenderLookup.s.sol +20 -0
- package/src/deployment/CoinsDeployerBase.sol +22 -1
- package/src/hooks/ZoraV4CoinHook.sol +19 -55
- package/src/interfaces/ITrustedMsgSenderProviderLookup.sol +18 -0
- package/src/interfaces/IZoraV4CoinHook.sol +3 -0
- package/src/libs/HooksDeployment.sol +9 -8
- package/src/libs/V4Liquidity.sol +50 -6
- package/src/utils/TrustedMsgSenderProviderLookup.sol +73 -0
- package/src/version/ContractVersionBase.sol +1 -1
- package/test/CreatorCoinRewards.t.sol +4 -0
- package/test/HooksDeployment.t.sol +58 -6
- package/test/LiquidityMigration.t.sol +6 -2
- package/test/TrustedMsgSenderProviderLookup.t.sol +112 -0
- package/test/Upgrades.t.sol +15 -10
- package/test/utils/BaseTest.sol +35 -9
- package/test/utils/FeeEstimatorHook.sol +3 -1
- package/test/utils/TrustedSenderTestHelper.sol +18 -0
- /package/abis/{VmContractHelper239.json → VmContractHelper235.json} +0 -0
|
@@ -1,24 +1,18 @@
|
|
|
1
1
|
|
|
2
|
-
> @zoralabs/coins@2.
|
|
2
|
+
> @zoralabs/coins@2.4.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.4.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.4.0 build:contracts:minimal /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
|
|
11
11
|
> forge build --skip test --skip script --no-metadata
|
|
12
12
|
|
|
13
|
-
Compiling
|
|
14
|
-
Solc 0.8.28 finished in
|
|
15
|
-
Compiler run successful
|
|
16
|
-
Warning (5667): Unused function parameter. Remove or comment out the variable name to silence this warning.
|
|
17
|
-
--> test/utils/BaseTest.sol:440:36:
|
|
18
|
-
|
|
|
19
|
-
440 | function _deployHooksNonForked(address airlockAddress) internal {
|
|
20
|
-
| ^^^^^^^^^^^^^^^^^^^^^^
|
|
21
|
-
|
|
13
|
+
Compiling 227 files with Solc 0.8.28
|
|
14
|
+
Solc 0.8.28 finished in 106.91s
|
|
15
|
+
Compiler run successful!
|
|
22
16
|
[33m-[39m Validating plugins
|
|
23
17
|
[32m✔[39m Validating plugins
|
|
24
18
|
[33m-[39m Resolving contracts
|
|
@@ -32,129 +26,134 @@ Warning (5667): Unused function parameter. Remove or comment out the variable na
|
|
|
32
26
|
✅ Updated ./package/wagmiGenerated.ts (10 replacements)
|
|
33
27
|
✨ All files processed successfully!
|
|
34
28
|
|
|
35
|
-
> @zoralabs/coins@2.
|
|
29
|
+
> @zoralabs/coins@2.4.0 copy-abis /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
|
|
36
30
|
> pnpm exec bundle-abis
|
|
37
31
|
|
|
38
32
|
|
|
39
|
-
> @zoralabs/coins@2.
|
|
33
|
+
> @zoralabs/coins@2.4.0 prettier:write /home/runner/work/zora-protocol-private/zora-protocol-private/packages/coins
|
|
40
34
|
> prettier --write 'src/**/*.sol' 'test/**/*.sol' 'script/**/*.sol'
|
|
41
35
|
|
|
42
|
-
src/BaseCoin.sol
|
|
43
|
-
src/ContentCoin.sol
|
|
44
|
-
src/CreatorCoin.sol
|
|
45
|
-
src/deployment/CoinsDeployerBase.sol
|
|
46
|
-
src/hook-registry/ZoraHookRegistry.sol
|
|
47
|
-
src/hooks/deployment/BaseCoinDeployHook.sol
|
|
48
|
-
src/hooks/deployment/BuySupplyWithSwapRouterHook.sol
|
|
49
|
-
src/hooks/deployment/BuySupplyWithV4SwapHook.sol
|
|
50
|
-
src/hooks/HookUpgradeGate.sol
|
|
51
|
-
src/hooks/ZoraV4CoinHook.sol
|
|
52
|
-
src/interfaces/IAirlock.sol
|
|
53
|
-
src/interfaces/ICoin.sol
|
|
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)
|
|
54
48
|
src/interfaces/ICoinComments.sol 4ms (unchanged)
|
|
55
49
|
src/interfaces/ICoinDeployHook.sol 2ms (unchanged)
|
|
56
50
|
src/interfaces/ICoinV3.sol 5ms (unchanged)
|
|
57
51
|
src/interfaces/ICreatorCoin.sol 2ms (unchanged)
|
|
58
|
-
src/interfaces/ICreatorCoinHook.sol
|
|
52
|
+
src/interfaces/ICreatorCoinHook.sol 2ms (unchanged)
|
|
59
53
|
src/interfaces/IDeployedCoinVersionLookup.sol 1ms (unchanged)
|
|
60
54
|
src/interfaces/IDopplerErrors.sol 1ms (unchanged)
|
|
61
55
|
src/interfaces/IERC7572.sol 1ms (unchanged)
|
|
62
|
-
src/interfaces/IHasRewardsRecipients.sol
|
|
63
|
-
src/interfaces/IHooksUpgradeGate.sol
|
|
64
|
-
src/interfaces/IMsgSender.sol
|
|
65
|
-
src/interfaces/INonfungiblePositionManager.sol
|
|
66
|
-
src/interfaces/IPoolConfigEncoding.sol
|
|
67
|
-
src/interfaces/IProtocolRewards.sol
|
|
68
|
-
src/interfaces/ISwapPathRouter.sol
|
|
56
|
+
src/interfaces/IHasRewardsRecipients.sol 2ms (unchanged)
|
|
57
|
+
src/interfaces/IHooksUpgradeGate.sol 2ms (unchanged)
|
|
58
|
+
src/interfaces/IMsgSender.sol 2ms (unchanged)
|
|
59
|
+
src/interfaces/INonfungiblePositionManager.sol 7ms (unchanged)
|
|
60
|
+
src/interfaces/IPoolConfigEncoding.sol 1ms (unchanged)
|
|
61
|
+
src/interfaces/IProtocolRewards.sol 7ms (unchanged)
|
|
62
|
+
src/interfaces/ISwapPathRouter.sol 3ms (unchanged)
|
|
69
63
|
src/interfaces/ISwapRouter.sol 1ms (unchanged)
|
|
70
|
-
src/interfaces/
|
|
71
|
-
src/interfaces/
|
|
72
|
-
src/interfaces/
|
|
64
|
+
src/interfaces/ITrustedMsgSenderProviderLookup.sol 1ms (unchanged)
|
|
65
|
+
src/interfaces/IUniswapV3Factory.sol 5ms (unchanged)
|
|
66
|
+
src/interfaces/IUniswapV3Pool.sol 9ms (unchanged)
|
|
67
|
+
src/interfaces/IUniswapV3SwapCallback.sol 3ms (unchanged)
|
|
73
68
|
src/interfaces/IUpgradeableV4Hook.sol 6ms (unchanged)
|
|
74
|
-
src/interfaces/IWETH.sol
|
|
75
|
-
src/interfaces/IZoraFactory.sol
|
|
76
|
-
src/interfaces/IZoraHookRegistry.sol
|
|
77
|
-
src/interfaces/IZoraV4CoinHook.sol
|
|
69
|
+
src/interfaces/IWETH.sol 5ms (unchanged)
|
|
70
|
+
src/interfaces/IZoraFactory.sol 18ms (unchanged)
|
|
71
|
+
src/interfaces/IZoraHookRegistry.sol 4ms (unchanged)
|
|
72
|
+
src/interfaces/IZoraV4CoinHook.sol 9ms (unchanged)
|
|
78
73
|
src/libs/CoinCommon.sol 5ms (unchanged)
|
|
79
|
-
src/libs/CoinConfigurationVersions.sol
|
|
80
|
-
src/libs/CoinConstants.sol
|
|
81
|
-
src/libs/CoinDopplerMultiCurve.sol
|
|
82
|
-
src/libs/CoinRewardsV4.sol
|
|
83
|
-
src/libs/CoinSetup.sol
|
|
84
|
-
src/libs/DopplerMath.sol
|
|
85
|
-
src/libs/HooksDeployment.sol
|
|
86
|
-
src/libs/PoolStateReader.sol
|
|
87
|
-
src/libs/UniV4SwapHelper.sol
|
|
88
|
-
src/libs/UniV4SwapToCurrency.sol
|
|
89
|
-
src/libs/V4Liquidity.sol
|
|
90
|
-
src/proxy/ZoraFactory.sol
|
|
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)
|
|
91
86
|
src/types/LpPosition.sol 1ms (unchanged)
|
|
92
|
-
src/types/PoolConfiguration.sol
|
|
93
|
-
src/types/PoolState.sol
|
|
94
|
-
src/utils/AutoSwapper.sol
|
|
87
|
+
src/types/PoolConfiguration.sol 3ms (unchanged)
|
|
88
|
+
src/types/PoolState.sol 2ms (unchanged)
|
|
89
|
+
src/utils/AutoSwapper.sol 29ms (unchanged)
|
|
95
90
|
src/utils/DeployedCoinVersionLookup.sol 7ms (unchanged)
|
|
96
91
|
src/utils/MultiOwnable.sol 72ms (unchanged)
|
|
92
|
+
src/utils/TrustedMsgSenderProviderLookup.sol 37ms (unchanged)
|
|
97
93
|
src/utils/uniswap/BitMath.sol 9ms (unchanged)
|
|
98
|
-
src/utils/uniswap/CustomRevert.sol
|
|
99
|
-
src/utils/uniswap/FixedPoint96.sol
|
|
100
|
-
src/utils/uniswap/FullMath.sol
|
|
101
|
-
src/utils/uniswap/LiquidityAmounts.sol
|
|
102
|
-
src/utils/uniswap/SafeCast.sol
|
|
103
|
-
src/utils/uniswap/SqrtPriceMath.sol
|
|
104
|
-
src/utils/uniswap/TickMath.sol
|
|
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)
|
|
105
101
|
src/utils/uniswap/UnsafeMath.sol 3ms (unchanged)
|
|
106
102
|
src/version/ContractVersionBase.sol 1ms (unchanged)
|
|
107
|
-
src/ZoraFactoryImpl.sol
|
|
108
|
-
test/AutoSwapper.t.sol
|
|
109
|
-
test/BuySupplyWithV4SwapHook.t.sol
|
|
110
|
-
test/Coin.t.sol
|
|
111
|
-
test/CoinRewardsV4.t.sol
|
|
112
|
-
test/CoinUniV4.t.sol
|
|
113
|
-
test/ContentCoinRewards.t.sol
|
|
114
|
-
test/CreatorCoin.t.sol
|
|
115
|
-
test/CreatorCoinRewards.t.sol
|
|
116
|
-
test/DeploymentHooks.t.sol
|
|
117
|
-
test/Factory.t.sol
|
|
118
|
-
test/HooksDeployment.t.sol
|
|
119
|
-
test/LiquidityMigration.t.sol
|
|
120
|
-
test/mocks/MockAirlock.sol
|
|
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)
|
|
107
|
+
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)
|
|
112
|
+
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)
|
|
121
117
|
test/mocks/MockERC20.sol 3ms (unchanged)
|
|
122
118
|
test/mocks/SimpleERC20.sol 2ms (unchanged)
|
|
123
|
-
test/MultiOwnable.t.sol
|
|
124
|
-
test/
|
|
125
|
-
test/
|
|
126
|
-
test/utils/
|
|
127
|
-
test/utils/
|
|
128
|
-
test/utils/
|
|
129
|
-
test/utils/
|
|
130
|
-
test/utils/hookmate/artifacts/
|
|
131
|
-
test/utils/hookmate/artifacts/
|
|
132
|
-
test/utils/hookmate/artifacts/
|
|
133
|
-
test/utils/hookmate/artifacts/
|
|
134
|
-
test/utils/hookmate/artifacts/
|
|
135
|
-
test/utils/hookmate/artifacts/
|
|
136
|
-
test/utils/hookmate/
|
|
137
|
-
test/utils/hookmate/
|
|
138
|
-
test/utils/hookmate/interfaces/router/
|
|
139
|
-
test/utils/hookmate/
|
|
140
|
-
test/utils/
|
|
141
|
-
test/utils/
|
|
142
|
-
test/utils/
|
|
143
|
-
test/
|
|
144
|
-
test/
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
script/
|
|
148
|
-
script/
|
|
149
|
-
script/
|
|
150
|
-
script/
|
|
151
|
-
script/
|
|
152
|
-
script/
|
|
153
|
-
script/
|
|
154
|
-
script/
|
|
155
|
-
script/
|
|
156
|
-
script/
|
|
157
|
-
script/
|
|
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)
|
|
123
|
+
test/utils/ContractAddresses.sol 5ms (unchanged)
|
|
124
|
+
test/utils/DeployedCoinVersionLookup.t.sol 75ms (unchanged)
|
|
125
|
+
test/utils/FeeEstimatorHook.sol 44ms (unchanged)
|
|
126
|
+
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)
|
|
131
|
+
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)
|
|
134
|
+
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)
|
|
158
157
|
[34mCLI[39m Building entry: package/index.ts
|
|
159
158
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
160
159
|
[34mCLI[39m tsup v8.4.0
|
|
@@ -163,9 +162,9 @@ script/UpgradeHooks.s.sol 8ms (unchanged)
|
|
|
163
162
|
[34mCLI[39m Cleaning output folder
|
|
164
163
|
[34mCJS[39m Build start
|
|
165
164
|
[34mESM[39m Build start
|
|
166
|
-
[32mCJS[39m [1mdist/index.cjs [22m[32m135.99 KB[39m
|
|
167
|
-
[32mCJS[39m [1mdist/index.cjs.map [22m[32m240.37 KB[39m
|
|
168
|
-
[32mCJS[39m ⚡️ Build success in 93ms
|
|
169
165
|
[32mESM[39m [1mdist/index.js [22m[32m134.57 KB[39m
|
|
170
166
|
[32mESM[39m [1mdist/index.js.map [22m[32m240.22 KB[39m
|
|
171
|
-
[32mESM[39m ⚡️ Build success in
|
|
167
|
+
[32mESM[39m ⚡️ Build success in 115ms
|
|
168
|
+
[32mCJS[39m [1mdist/index.cjs [22m[32m135.99 KB[39m
|
|
169
|
+
[32mCJS[39m [1mdist/index.cjs.map [22m[32m240.37 KB[39m
|
|
170
|
+
[32mCJS[39m ⚡️ Build success in 118ms
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @zoralabs/coins
|
|
2
2
|
|
|
3
|
+
## 2.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 09fb2528: Make trusted senders in coin hooks modifiable
|
|
8
|
+
|
|
9
|
+
Trusted message senders can now be added or removed after hook deployment instead of being hardcoded at deployment time.
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- b41a2773: Fix double-counting of fees in burnPositions during liquidity migration
|
|
14
|
+
|
|
15
|
+
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.
|
|
16
|
+
|
|
17
|
+
The fix:
|
|
18
|
+
|
|
19
|
+
- Use only `callerDelta` values directly without adding `feesAccrued`
|
|
20
|
+
- Add defensive balance checking in `mintPositions()` to cap liquidity at available token amounts
|
|
21
|
+
- Prevents migration failures from any remaining rounding discrepancies between burn and mint operations
|
|
22
|
+
|
|
23
|
+
- 8dc766eb: Fix incorrect senderIsTrusted logic for address(0) in ZoraV4CoinHook
|
|
24
|
+
|
|
25
|
+
Removes the special case handling for address(0) in the \_getOriginalMsgSender function that was incorrectly setting senderIsTrusted to true. This behavior was unintentionally changed in commit 09fb2528 which added special handling for address(0). This fix restores the original behavior where address(0) returns false for senderIsTrusted,
|
|
26
|
+
|
|
3
27
|
## 2.3.1
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
package/abis/BaseTest.json
CHANGED
|
@@ -94,9 +94,9 @@
|
|
|
94
94
|
"name": "getSalt",
|
|
95
95
|
"inputs": [
|
|
96
96
|
{
|
|
97
|
-
"name": "
|
|
98
|
-
"type": "address
|
|
99
|
-
"internalType": "
|
|
97
|
+
"name": "trustedMsgSenderLookup",
|
|
98
|
+
"type": "address",
|
|
99
|
+
"internalType": "contract ITrustedMsgSenderProviderLookup"
|
|
100
100
|
}
|
|
101
101
|
],
|
|
102
102
|
"outputs": [
|
|
@@ -12,6 +12,11 @@
|
|
|
12
12
|
"type": "address",
|
|
13
13
|
"internalType": "contract IDeployedCoinVersionLookup"
|
|
14
14
|
},
|
|
15
|
+
{
|
|
16
|
+
"name": "trustedMsgSenderLookup",
|
|
17
|
+
"type": "address",
|
|
18
|
+
"internalType": "contract ITrustedMsgSenderProviderLookup"
|
|
19
|
+
},
|
|
15
20
|
{
|
|
16
21
|
"name": "upgradeGate",
|
|
17
22
|
"type": "address",
|
|
@@ -1169,6 +1174,19 @@
|
|
|
1169
1174
|
],
|
|
1170
1175
|
"stateMutability": "view"
|
|
1171
1176
|
},
|
|
1177
|
+
{
|
|
1178
|
+
"type": "function",
|
|
1179
|
+
"name": "getTrustedMsgSenderLookup",
|
|
1180
|
+
"inputs": [],
|
|
1181
|
+
"outputs": [
|
|
1182
|
+
{
|
|
1183
|
+
"name": "",
|
|
1184
|
+
"type": "address",
|
|
1185
|
+
"internalType": "contract ITrustedMsgSenderProviderLookup"
|
|
1186
|
+
}
|
|
1187
|
+
],
|
|
1188
|
+
"stateMutability": "view"
|
|
1189
|
+
},
|
|
1172
1190
|
{
|
|
1173
1191
|
"type": "function",
|
|
1174
1192
|
"name": "initializeFromMigration",
|
|
@@ -1891,6 +1909,11 @@
|
|
|
1891
1909
|
"name": "SafeCastOverflow",
|
|
1892
1910
|
"inputs": []
|
|
1893
1911
|
},
|
|
1912
|
+
{
|
|
1913
|
+
"type": "error",
|
|
1914
|
+
"name": "TrustedMsgSenderLookupCannotBeZeroAddress",
|
|
1915
|
+
"inputs": []
|
|
1916
|
+
},
|
|
1894
1917
|
{
|
|
1895
1918
|
"type": "error",
|
|
1896
1919
|
"name": "UpgradeGateCannotBeZeroAddress",
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"type": "function",
|
|
4
|
+
"name": "isTrustedMsgSenderProvider",
|
|
5
|
+
"inputs": [
|
|
6
|
+
{
|
|
7
|
+
"name": "sender",
|
|
8
|
+
"type": "address",
|
|
9
|
+
"internalType": "address"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"outputs": [
|
|
13
|
+
{
|
|
14
|
+
"name": "",
|
|
15
|
+
"type": "bool",
|
|
16
|
+
"internalType": "bool"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"stateMutability": "view"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
@@ -571,6 +571,11 @@
|
|
|
571
571
|
"name": "PathMustHaveAtLeastOneStep",
|
|
572
572
|
"inputs": []
|
|
573
573
|
},
|
|
574
|
+
{
|
|
575
|
+
"type": "error",
|
|
576
|
+
"name": "TrustedMsgSenderLookupCannotBeZeroAddress",
|
|
577
|
+
"inputs": []
|
|
578
|
+
},
|
|
574
579
|
{
|
|
575
580
|
"type": "error",
|
|
576
581
|
"name": "UpgradeGateCannotBeZeroAddress",
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"type": "constructor",
|
|
4
|
+
"inputs": [
|
|
5
|
+
{
|
|
6
|
+
"name": "trustedMessageSenders",
|
|
7
|
+
"type": "address[]",
|
|
8
|
+
"internalType": "address[]"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"name": "initialOwner",
|
|
12
|
+
"type": "address",
|
|
13
|
+
"internalType": "address"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"stateMutability": "nonpayable"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"type": "function",
|
|
20
|
+
"name": "acceptOwnership",
|
|
21
|
+
"inputs": [],
|
|
22
|
+
"outputs": [],
|
|
23
|
+
"stateMutability": "nonpayable"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "function",
|
|
27
|
+
"name": "addTrustedMsgSenderProviders",
|
|
28
|
+
"inputs": [
|
|
29
|
+
{
|
|
30
|
+
"name": "senders",
|
|
31
|
+
"type": "address[]",
|
|
32
|
+
"internalType": "address[]"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"outputs": [],
|
|
36
|
+
"stateMutability": "nonpayable"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"type": "function",
|
|
40
|
+
"name": "contractVersion",
|
|
41
|
+
"inputs": [],
|
|
42
|
+
"outputs": [
|
|
43
|
+
{
|
|
44
|
+
"name": "",
|
|
45
|
+
"type": "string",
|
|
46
|
+
"internalType": "string"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"stateMutability": "pure"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"type": "function",
|
|
53
|
+
"name": "isTrustedMsgSenderProvider",
|
|
54
|
+
"inputs": [
|
|
55
|
+
{
|
|
56
|
+
"name": "sender",
|
|
57
|
+
"type": "address",
|
|
58
|
+
"internalType": "address"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"outputs": [
|
|
62
|
+
{
|
|
63
|
+
"name": "",
|
|
64
|
+
"type": "bool",
|
|
65
|
+
"internalType": "bool"
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
"stateMutability": "view"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"type": "function",
|
|
72
|
+
"name": "owner",
|
|
73
|
+
"inputs": [],
|
|
74
|
+
"outputs": [
|
|
75
|
+
{
|
|
76
|
+
"name": "",
|
|
77
|
+
"type": "address",
|
|
78
|
+
"internalType": "address"
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"stateMutability": "view"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"type": "function",
|
|
85
|
+
"name": "pendingOwner",
|
|
86
|
+
"inputs": [],
|
|
87
|
+
"outputs": [
|
|
88
|
+
{
|
|
89
|
+
"name": "",
|
|
90
|
+
"type": "address",
|
|
91
|
+
"internalType": "address"
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"stateMutability": "view"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"type": "function",
|
|
98
|
+
"name": "removeTrustedMsgSenderProviders",
|
|
99
|
+
"inputs": [
|
|
100
|
+
{
|
|
101
|
+
"name": "senders",
|
|
102
|
+
"type": "address[]",
|
|
103
|
+
"internalType": "address[]"
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
"outputs": [],
|
|
107
|
+
"stateMutability": "nonpayable"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"type": "function",
|
|
111
|
+
"name": "renounceOwnership",
|
|
112
|
+
"inputs": [],
|
|
113
|
+
"outputs": [],
|
|
114
|
+
"stateMutability": "nonpayable"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"type": "function",
|
|
118
|
+
"name": "transferOwnership",
|
|
119
|
+
"inputs": [
|
|
120
|
+
{
|
|
121
|
+
"name": "newOwner",
|
|
122
|
+
"type": "address",
|
|
123
|
+
"internalType": "address"
|
|
124
|
+
}
|
|
125
|
+
],
|
|
126
|
+
"outputs": [],
|
|
127
|
+
"stateMutability": "nonpayable"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"type": "event",
|
|
131
|
+
"name": "OwnershipTransferStarted",
|
|
132
|
+
"inputs": [
|
|
133
|
+
{
|
|
134
|
+
"name": "previousOwner",
|
|
135
|
+
"type": "address",
|
|
136
|
+
"indexed": true,
|
|
137
|
+
"internalType": "address"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"name": "newOwner",
|
|
141
|
+
"type": "address",
|
|
142
|
+
"indexed": true,
|
|
143
|
+
"internalType": "address"
|
|
144
|
+
}
|
|
145
|
+
],
|
|
146
|
+
"anonymous": false
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"type": "event",
|
|
150
|
+
"name": "OwnershipTransferred",
|
|
151
|
+
"inputs": [
|
|
152
|
+
{
|
|
153
|
+
"name": "previousOwner",
|
|
154
|
+
"type": "address",
|
|
155
|
+
"indexed": true,
|
|
156
|
+
"internalType": "address"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"name": "newOwner",
|
|
160
|
+
"type": "address",
|
|
161
|
+
"indexed": true,
|
|
162
|
+
"internalType": "address"
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"anonymous": false
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"type": "event",
|
|
169
|
+
"name": "TrustedSenderAdded",
|
|
170
|
+
"inputs": [
|
|
171
|
+
{
|
|
172
|
+
"name": "sender",
|
|
173
|
+
"type": "address",
|
|
174
|
+
"indexed": true,
|
|
175
|
+
"internalType": "address"
|
|
176
|
+
}
|
|
177
|
+
],
|
|
178
|
+
"anonymous": false
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"type": "event",
|
|
182
|
+
"name": "TrustedSenderRemoved",
|
|
183
|
+
"inputs": [
|
|
184
|
+
{
|
|
185
|
+
"name": "sender",
|
|
186
|
+
"type": "address",
|
|
187
|
+
"indexed": true,
|
|
188
|
+
"internalType": "address"
|
|
189
|
+
}
|
|
190
|
+
],
|
|
191
|
+
"anonymous": false
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"type": "error",
|
|
195
|
+
"name": "OwnableInvalidOwner",
|
|
196
|
+
"inputs": [
|
|
197
|
+
{
|
|
198
|
+
"name": "owner",
|
|
199
|
+
"type": "address",
|
|
200
|
+
"internalType": "address"
|
|
201
|
+
}
|
|
202
|
+
]
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"type": "error",
|
|
206
|
+
"name": "OwnableUnauthorizedAccount",
|
|
207
|
+
"inputs": [
|
|
208
|
+
{
|
|
209
|
+
"name": "account",
|
|
210
|
+
"type": "address",
|
|
211
|
+
"internalType": "address"
|
|
212
|
+
}
|
|
213
|
+
]
|
|
214
|
+
}
|
|
215
|
+
]
|