@zoralabs/limit-orders 0.2.2 → 0.2.4
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 +70 -0
- package/.turbo/turbo-build$colon$js.log +40 -40
- package/CHANGELOG.md +23 -0
- package/cache/solidity-files-cache.json +1 -1
- package/out/CoinConfigurationVersions.sol/CoinConfigurationVersions.json +1 -1
- package/out/CoinConstants.sol/CoinConstants.json +1 -1
- package/out/DopplerMath.sol/DopplerMath.json +1 -1
- package/out/ISetLimitOrderConfig.sol/ISetLimitOrderConfig.json +1 -1
- package/out/LimitOrderBitmap.sol/LimitOrderBitmap.json +1 -1
- package/out/LimitOrderCommon.sol/LimitOrderCommon.json +1 -1
- package/out/LimitOrderCreate.sol/LimitOrderCreate.json +1 -1
- package/out/LimitOrderFill.sol/LimitOrderFill.json +1 -1
- package/out/LimitOrderLiquidity.sol/LimitOrderLiquidity.json +1 -1
- package/out/LimitOrderWithdraw.sol/LimitOrderWithdraw.json +1 -1
- package/out/PermittedCallers.sol/PermittedCallers.json +1 -1
- package/out/SwapLimitOrders.sol/SwapLimitOrders.json +1 -1
- package/out/SwapWithLimitOrders.sol/SwapWithLimitOrders.json +1 -1
- package/out/UniV4SwapToCurrency.sol/UniV4SwapToCurrency.json +1 -1
- package/out/V3ToV4SwapLib.sol/V3ToV4SwapLib.json +1 -1
- package/out/ZoraLimitOrderBook.sol/ZoraLimitOrderBook.json +1 -1
- package/out/build-info/{37e0124d88d60569.json → 68b2e124c4a02a45.json} +1 -1
- package/package.json +4 -2
- package/src/access/PermittedCallers.sol +5 -1
- package/src/libs/LimitOrderBitmap.sol +0 -1
- package/src/libs/LimitOrderCommon.sol +14 -0
- package/src/libs/LimitOrderCreate.sol +6 -0
- package/src/libs/LimitOrderFill.sol +3 -20
- package/src/libs/LimitOrderLiquidity.sol +61 -38
- package/src/libs/LimitOrderWithdraw.sol +2 -6
- package/src/libs/SwapLimitOrders.sol +13 -7
- package/src/router/SwapWithLimitOrders.sol +1 -0
- package/test/LimitOrderLiquidityPayouts.t.sol +14 -14
- package/test/SwapWithLimitOrdersRouter.t.sol +4 -0
- package/test/unit/LimitOrderCreateUnit.t.sol +17 -17
- package/test/unit/SwapLimitOrdersUnit.t.sol +47 -86
- package/test/unit/SwapLimitOrdersValidation.t.sol +3 -11
- package/test/utils/BaseTest.sol +1 -1
package/.abi-stability
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
=======================
|
|
2
|
+
👁👁 ABI STABILITY snapshot 👁👁
|
|
3
|
+
=======================
|
|
4
|
+
|
|
5
|
+
===============================
|
|
6
|
+
DEPRECATED FUNCTIONS
|
|
7
|
+
===============================
|
|
8
|
+
|
|
9
|
+
(none)
|
|
10
|
+
|
|
11
|
+
===============================
|
|
12
|
+
➡ IZoraLimitOrderBook
|
|
13
|
+
===============================
|
|
14
|
+
|
|
15
|
+
--- EVENTS ---
|
|
16
|
+
|
|
17
|
+
╭-------------------------------------------------------------------------------------------------+--------------------------------------------------------------------╮
|
|
18
|
+
| Event | Topic |
|
|
19
|
+
+======================================================================================================================================================================+
|
|
20
|
+
| LimitOrderCreated(address,address,bytes32,bool,int24,int24,uint128,bytes32) | 0x36c14a3cb6751895ef6ab64f123dcca47c492ec447d69f86bb560eb5ad0e47a3 |
|
|
21
|
+
|-------------------------------------------------------------------------------------------------+--------------------------------------------------------------------|
|
|
22
|
+
| LimitOrderFilled(address,address,address,uint128,uint128,address,uint128,bytes32,int24,bytes32) | 0x59d8d839dc2a16f78d0e321652546b26bd10065beade9541895b54e0ec058a37 |
|
|
23
|
+
|-------------------------------------------------------------------------------------------------+--------------------------------------------------------------------|
|
|
24
|
+
| LimitOrderUpdated(address,address,bytes32,bool,int24,uint128,bytes32,bool) | 0x73544fee6e45e543d5464c5d945a19046ad773dabfc95c7d1c119b135d947dde |
|
|
25
|
+
|-------------------------------------------------------------------------------------------------+--------------------------------------------------------------------|
|
|
26
|
+
| MakerBalanceUpdated(address,address,uint256) | 0xa942ad2d47c64ce0859147575881ee76ce335036216e9378b100614f683006cb |
|
|
27
|
+
╰-------------------------------------------------------------------------------------------------+--------------------------------------------------------------------╯
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
--- FUNCTIONS ---
|
|
31
|
+
|
|
32
|
+
╭-------------------------------------------------------------------------------+------------╮
|
|
33
|
+
| Method | Identifier |
|
|
34
|
+
+============================================================================================+
|
|
35
|
+
| balanceOf(address,address) | f7888aec |
|
|
36
|
+
|-------------------------------------------------------------------------------+------------|
|
|
37
|
+
| create((address,address,uint24,int24,address),bool,uint256[],int24[],address) | eb07ed24 |
|
|
38
|
+
|-------------------------------------------------------------------------------+------------|
|
|
39
|
+
| fill(((address,address,uint24,int24,address),bool,bytes32[])[],address) | 7a9cf273 |
|
|
40
|
+
|-------------------------------------------------------------------------------+------------|
|
|
41
|
+
| fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address) | 5f8fbad6 |
|
|
42
|
+
|-------------------------------------------------------------------------------+------------|
|
|
43
|
+
| getMaxFillCount() | d8c31772 |
|
|
44
|
+
|-------------------------------------------------------------------------------+------------|
|
|
45
|
+
| setMaxFillCount(uint256) | c96d060b |
|
|
46
|
+
|-------------------------------------------------------------------------------+------------|
|
|
47
|
+
| withdraw(bytes32[],address,uint256,address) | c2ec68ea |
|
|
48
|
+
╰-------------------------------------------------------------------------------+------------╯
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
===============================
|
|
52
|
+
➡ ISetLimitOrderConfig
|
|
53
|
+
===============================
|
|
54
|
+
|
|
55
|
+
--- EVENTS ---
|
|
56
|
+
|
|
57
|
+
╭-------+-------╮
|
|
58
|
+
| Event | Topic |
|
|
59
|
+
+===============+
|
|
60
|
+
╰-------+-------╯
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
--- FUNCTIONS ---
|
|
64
|
+
|
|
65
|
+
╭--------------------------------------------+------------╮
|
|
66
|
+
| Method | Identifier |
|
|
67
|
+
+=========================================================+
|
|
68
|
+
| setLimitOrderConfig((uint256[],uint256[])) | 18ed2974 |
|
|
69
|
+
╰--------------------------------------------+------------╯
|
|
70
|
+
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
|
|
2
|
-
> @zoralabs/limit-orders@0.2.
|
|
2
|
+
> @zoralabs/limit-orders@0.2.4 build:js /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
|
|
3
3
|
> pnpm run wagmi:generate && pnpm run copy-abis && pnpm run prettier:write && tsup
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @zoralabs/limit-orders@0.2.
|
|
6
|
+
> @zoralabs/limit-orders@0.2.4 wagmi:generate /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
|
|
7
7
|
> pnpm run build:contracts:minimal && wagmi generate && pnpm exec rename-generated-abi-casing ./package/wagmiGenerated.ts
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
> @zoralabs/limit-orders@0.2.
|
|
10
|
+
> @zoralabs/limit-orders@0.2.4 build:contracts:minimal /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
|
|
11
11
|
> forge build src/ --no-metadata
|
|
12
12
|
|
|
13
13
|
Compiling 93 files with Solc 0.8.28
|
|
14
|
-
Solc 0.8.28 finished in 7.
|
|
14
|
+
Solc 0.8.28 finished in 7.24s
|
|
15
15
|
Compiler run successful!
|
|
16
16
|
[33m-[39m Validating plugins
|
|
17
17
|
[32m✔[39m Validating plugins
|
|
@@ -26,50 +26,50 @@ Compiler run successful!
|
|
|
26
26
|
✅ Updated ./package/wagmiGenerated.ts (3 replacements)
|
|
27
27
|
✨ All files processed successfully!
|
|
28
28
|
|
|
29
|
-
> @zoralabs/limit-orders@0.2.
|
|
29
|
+
> @zoralabs/limit-orders@0.2.4 copy-abis /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
|
|
30
30
|
> pnpm exec bundle-abis
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
> @zoralabs/limit-orders@0.2.
|
|
33
|
+
> @zoralabs/limit-orders@0.2.4 prettier:write /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
|
|
34
34
|
> prettier --write 'src/**/*.sol' 'test/**/*.sol'
|
|
35
35
|
|
|
36
|
-
src/access/PermittedCallers.sol
|
|
37
|
-
src/IZoraLimitOrderBook.sol
|
|
38
|
-
src/libs/LimitOrderBitmap.sol
|
|
39
|
-
src/libs/LimitOrderCommon.sol
|
|
40
|
-
src/libs/LimitOrderCreate.sol
|
|
41
|
-
src/libs/LimitOrderFill.sol
|
|
42
|
-
src/libs/LimitOrderLiquidity.sol
|
|
43
|
-
src/libs/LimitOrderQueues.sol
|
|
44
|
-
src/libs/LimitOrderStorage.sol
|
|
36
|
+
src/access/PermittedCallers.sol 462ms (unchanged)
|
|
37
|
+
src/IZoraLimitOrderBook.sol 66ms (unchanged)
|
|
38
|
+
src/libs/LimitOrderBitmap.sol 64ms (unchanged)
|
|
39
|
+
src/libs/LimitOrderCommon.sol 249ms (unchanged)
|
|
40
|
+
src/libs/LimitOrderCreate.sol 402ms (unchanged)
|
|
41
|
+
src/libs/LimitOrderFill.sol 234ms (unchanged)
|
|
42
|
+
src/libs/LimitOrderLiquidity.sol 256ms (unchanged)
|
|
43
|
+
src/libs/LimitOrderQueues.sol 49ms (unchanged)
|
|
44
|
+
src/libs/LimitOrderStorage.sol 38ms (unchanged)
|
|
45
45
|
src/libs/LimitOrderTypes.sol 3ms (unchanged)
|
|
46
|
-
src/libs/LimitOrderViews.sol
|
|
46
|
+
src/libs/LimitOrderViews.sol 105ms (unchanged)
|
|
47
47
|
src/libs/LimitOrderWithdraw.sol 109ms (unchanged)
|
|
48
|
-
src/libs/Permit2Payments.sol
|
|
49
|
-
src/libs/SwapLimitOrders.sol
|
|
48
|
+
src/libs/Permit2Payments.sol 18ms (unchanged)
|
|
49
|
+
src/libs/SwapLimitOrders.sol 163ms (unchanged)
|
|
50
50
|
src/router/ISetLimitOrderConfig.sol 1ms (unchanged)
|
|
51
|
-
src/router/SwapWithLimitOrders.sol
|
|
52
|
-
src/ZoraLimitOrderBook.sol
|
|
53
|
-
test/gas/LimitOrderFillGas.t.sol
|
|
54
|
-
test/gas/LimitOrderSwapGas.t.sol
|
|
55
|
-
test/LimitOrderAccessControl.t.sol
|
|
56
|
-
test/LimitOrderBitmap.t.sol
|
|
57
|
-
test/LimitOrderCreate.t.sol
|
|
58
|
-
test/LimitOrderFill.t.sol
|
|
59
|
-
test/LimitOrderLibraries.t.sol
|
|
60
|
-
test/LimitOrderLiquidityPayouts.t.sol
|
|
61
|
-
test/LimitOrderV4Pools.t.sol
|
|
62
|
-
test/LimitOrderWithdraw.t.sol
|
|
63
|
-
test/SwapWithLimitOrders.t.sol
|
|
64
|
-
test/SwapWithLimitOrdersRouter.t.sol
|
|
65
|
-
test/unit/LimitOrderBitmapUnit.t.sol
|
|
51
|
+
src/router/SwapWithLimitOrders.sol 253ms (unchanged)
|
|
52
|
+
src/ZoraLimitOrderBook.sol 137ms (unchanged)
|
|
53
|
+
test/gas/LimitOrderFillGas.t.sol 859ms (unchanged)
|
|
54
|
+
test/gas/LimitOrderSwapGas.t.sol 306ms (unchanged)
|
|
55
|
+
test/LimitOrderAccessControl.t.sol 388ms (unchanged)
|
|
56
|
+
test/LimitOrderBitmap.t.sol 222ms (unchanged)
|
|
57
|
+
test/LimitOrderCreate.t.sol 389ms (unchanged)
|
|
58
|
+
test/LimitOrderFill.t.sol 1062ms (unchanged)
|
|
59
|
+
test/LimitOrderLibraries.t.sol 395ms (unchanged)
|
|
60
|
+
test/LimitOrderLiquidityPayouts.t.sol 442ms (unchanged)
|
|
61
|
+
test/LimitOrderV4Pools.t.sol 160ms (unchanged)
|
|
62
|
+
test/LimitOrderWithdraw.t.sol 691ms (unchanged)
|
|
63
|
+
test/SwapWithLimitOrders.t.sol 89ms (unchanged)
|
|
64
|
+
test/SwapWithLimitOrdersRouter.t.sol 631ms (unchanged)
|
|
65
|
+
test/unit/LimitOrderBitmapUnit.t.sol 91ms (unchanged)
|
|
66
66
|
test/unit/LimitOrderCreateUnit.t.sol 193ms (unchanged)
|
|
67
|
-
test/unit/SwapLimitOrdersUnit.t.sol
|
|
68
|
-
test/unit/SwapLimitOrdersValidation.t.sol
|
|
69
|
-
test/unit/SwapWithLimitOrdersUnit.t.sol
|
|
70
|
-
test/utils/BaseTest.sol
|
|
71
|
-
test/utils/MockWETH.sol
|
|
72
|
-
test/utils/TestableZoraLimitOrderBook.sol
|
|
67
|
+
test/unit/SwapLimitOrdersUnit.t.sol 667ms (unchanged)
|
|
68
|
+
test/unit/SwapLimitOrdersValidation.t.sol 251ms (unchanged)
|
|
69
|
+
test/unit/SwapWithLimitOrdersUnit.t.sol 66ms (unchanged)
|
|
70
|
+
test/utils/BaseTest.sol 640ms (unchanged)
|
|
71
|
+
test/utils/MockWETH.sol 28ms (unchanged)
|
|
72
|
+
test/utils/TestableZoraLimitOrderBook.sol 40ms (unchanged)
|
|
73
73
|
[34mCLI[39m Building entry: package/index.ts
|
|
74
74
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
75
75
|
[34mCLI[39m tsup v8.4.0
|
|
@@ -80,7 +80,7 @@ test/utils/TestableZoraLimitOrderBook.sol 41ms (unchanged)
|
|
|
80
80
|
[34mESM[39m Build start
|
|
81
81
|
[32mCJS[39m [1mdist/index.cjs [22m[32m25.65 KB[39m
|
|
82
82
|
[32mCJS[39m [1mdist/index.cjs.map [22m[32m44.14 KB[39m
|
|
83
|
-
[32mCJS[39m ⚡️ Build success in
|
|
83
|
+
[32mCJS[39m ⚡️ Build success in 36ms
|
|
84
84
|
[32mESM[39m [1mdist/index.js [22m[32m24.48 KB[39m
|
|
85
85
|
[32mESM[39m [1mdist/index.js.map [22m[32m44.03 KB[39m
|
|
86
86
|
[32mESM[39m ⚡️ Build success in 35ms
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @zoralabs/limit-orders
|
|
2
2
|
|
|
3
|
+
## 0.2.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 3a8a5a05: Fixed infinite loop bug in batch fill when order hasn't crossed tick range
|
|
8
|
+
- 53957bf7: Skip order creation when swaps hit hard price boundaries using sqrt price sentinel checks.
|
|
9
|
+
|
|
10
|
+
## 0.2.3
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- 98e02520: Fix dual positive deltas consolidation in burnAndRefund
|
|
15
|
+
|
|
16
|
+
- Consolidate payouts to single currency when burning limit orders with dual positive deltas
|
|
17
|
+
- Extract path-building logic into reusable `_buildSingleHopPath` helper function
|
|
18
|
+
- Ensure users receive proceeds in their original deposit currency by swapping counter-assets
|
|
19
|
+
- Align burnAndRefund behavior with burnAndPayout for consistent payout consolidation
|
|
20
|
+
|
|
21
|
+
- 91a82b2f: Fix withdraw crossed order check to use consistent logic with fills. The `hasCrossed` check for currency1 orders now uses strict `<` comparison instead of `<=`, preventing false positives at the tick boundary. Consolidated `hasCrossed` and `currentPoolTick` helpers into `LimitOrderCommon` for shared use across fill and withdraw paths.
|
|
22
|
+
- e9ffd038: Fix premature limit order fills due to Uniswap v4 tick boundary handling
|
|
23
|
+
|
|
24
|
+
Previously, limit orders for non-currency0 tokens could be filled prematurely when the current tick was exactly equal to the order's lower tick boundary. This fix ensures orders are only filled when the pool tick has fully crossed the order's range, preventing users from receiving fewer output tokens than intended.
|
|
25
|
+
|
|
3
26
|
## 0.2.2
|
|
4
27
|
|
|
5
28
|
### Patch Changes
|