@zoralabs/limit-orders 0.2.4 → 0.2.6
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 +0 -21
- package/.turbo/turbo-build$colon$js.log +51 -51
- package/AUDIT_NOTES.md +0 -1
- package/CHANGELOG.md +19 -0
- package/README.md +6 -9
- package/SPEC.md +5 -5
- package/abis/ContractVersionBase.json +15 -0
- package/abis/IVersionedContract.json +15 -0
- package/abis/SwapWithLimitOrders.json +13 -0
- package/abis/ZoraLimitOrderBook.json +13 -0
- package/cache/solidity-files-cache.json +1 -1
- package/dist/index.cjs +14 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/wagmiGenerated.d.ts +20 -0
- package/dist/wagmiGenerated.d.ts.map +1 -1
- package/out/BytesLib.sol/BytesLib.json +1 -1
- package/out/ContractVersionBase.sol/ContractVersionBase.json +1 -0
- package/out/ISwapRouter.sol/ISwapRouter.json +1 -1
- package/out/IUniswapV3SwapCallback.sol/IUniswapV3SwapCallback.json +1 -1
- package/out/IVersionedContract.sol/IVersionedContract.json +1 -0
- package/out/IZoraLimitOrderBook.sol/IZoraLimitOrderBook.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/LimitOrderQueues.sol/LimitOrderQueues.json +1 -1
- package/out/LimitOrderStorage.sol/LimitOrderStorage.json +1 -1
- package/out/LimitOrderTypes.sol/LimitOrderTypes.json +1 -1
- package/out/LimitOrderViews.sol/LimitOrderViews.json +1 -1
- package/out/LimitOrderWithdraw.sol/LimitOrderWithdraw.json +1 -1
- package/out/Path.sol/Path.json +1 -1
- package/out/Permit2Payments.sol/Permit2Payments.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/ZoraLimitOrderBook.sol/ZoraLimitOrderBook.json +1 -1
- package/out/build-info/{68b2e124c4a02a45.json → b6efea4394bdeb7d.json} +1 -1
- package/package/wagmiGenerated.ts +14 -0
- package/package.json +2 -2
- package/src/ZoraLimitOrderBook.sol +4 -1
- package/src/router/SwapWithLimitOrders.sol +2 -2
- package/src/version/ContractVersionBase.sol +14 -0
- package/test/LimitOrderAccessControl.t.sol +8 -2
- package/AUDIT_RFP.md +0 -408
- package/abis/ISetLimitOrderConfig.json +0 -27
- package/out/ISetLimitOrderConfig.sol/ISetLimitOrderConfig.json +0 -1
- package/src/router/ISetLimitOrderConfig.sol +0 -12
package/.abi-stability
CHANGED
|
@@ -47,24 +47,3 @@ DEPRECATED FUNCTIONS
|
|
|
47
47
|
| withdraw(bytes32[],address,uint256,address) | c2ec68ea |
|
|
48
48
|
╰-------------------------------------------------------------------------------+------------╯
|
|
49
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.6 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.6 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.6 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
|
-
Compiling
|
|
14
|
-
Solc 0.8.28 finished in
|
|
13
|
+
Compiling 94 files with Solc 0.8.28
|
|
14
|
+
Solc 0.8.28 finished in 8.46s
|
|
15
15
|
Compiler run successful!
|
|
16
16
|
[33m-[39m Validating plugins
|
|
17
17
|
[32m✔[39m Validating plugins
|
|
@@ -26,61 +26,61 @@ 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.6 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.6 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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
36
|
+
[90msrc/access/PermittedCallers.sol[39m 469ms (unchanged)
|
|
37
|
+
[90msrc/IZoraLimitOrderBook.sol[39m 61ms (unchanged)
|
|
38
|
+
[90msrc/libs/LimitOrderBitmap.sol[39m 64ms (unchanged)
|
|
39
|
+
[90msrc/libs/LimitOrderCommon.sol[39m 259ms (unchanged)
|
|
40
|
+
[90msrc/libs/LimitOrderCreate.sol[39m 379ms (unchanged)
|
|
41
|
+
[90msrc/libs/LimitOrderFill.sol[39m 234ms (unchanged)
|
|
42
|
+
[90msrc/libs/LimitOrderLiquidity.sol[39m 234ms (unchanged)
|
|
43
|
+
[90msrc/libs/LimitOrderQueues.sol[39m 70ms (unchanged)
|
|
44
|
+
[90msrc/libs/LimitOrderStorage.sol[39m 15ms (unchanged)
|
|
45
|
+
[90msrc/libs/LimitOrderTypes.sol[39m 2ms (unchanged)
|
|
46
|
+
[90msrc/libs/LimitOrderViews.sol[39m 119ms (unchanged)
|
|
47
|
+
[90msrc/libs/LimitOrderWithdraw.sol[39m 116ms (unchanged)
|
|
48
|
+
[90msrc/libs/Permit2Payments.sol[39m 17ms (unchanged)
|
|
49
|
+
[90msrc/libs/SwapLimitOrders.sol[39m 171ms (unchanged)
|
|
50
|
+
[90msrc/router/SwapWithLimitOrders.sol[39m 267ms (unchanged)
|
|
51
|
+
[90msrc/version/ContractVersionBase.sol[39m 4ms (unchanged)
|
|
52
|
+
[90msrc/ZoraLimitOrderBook.sol[39m 134ms (unchanged)
|
|
53
|
+
[90mtest/gas/LimitOrderFillGas.t.sol[39m 855ms (unchanged)
|
|
54
|
+
[90mtest/gas/LimitOrderSwapGas.t.sol[39m 320ms (unchanged)
|
|
55
|
+
[90mtest/LimitOrderAccessControl.t.sol[39m 421ms (unchanged)
|
|
56
|
+
[90mtest/LimitOrderBitmap.t.sol[39m 226ms (unchanged)
|
|
57
|
+
[90mtest/LimitOrderCreate.t.sol[39m 398ms (unchanged)
|
|
58
|
+
[90mtest/LimitOrderFill.t.sol[39m 1114ms (unchanged)
|
|
59
|
+
[90mtest/LimitOrderLibraries.t.sol[39m 404ms (unchanged)
|
|
60
|
+
[90mtest/LimitOrderLiquidityPayouts.t.sol[39m 459ms (unchanged)
|
|
61
|
+
[90mtest/LimitOrderV4Pools.t.sol[39m 156ms (unchanged)
|
|
62
|
+
[90mtest/LimitOrderWithdraw.t.sol[39m 679ms (unchanged)
|
|
63
|
+
[90mtest/SwapWithLimitOrders.t.sol[39m 92ms (unchanged)
|
|
64
|
+
[90mtest/SwapWithLimitOrdersRouter.t.sol[39m 677ms (unchanged)
|
|
65
|
+
[90mtest/unit/LimitOrderBitmapUnit.t.sol[39m 96ms (unchanged)
|
|
66
|
+
[90mtest/unit/LimitOrderCreateUnit.t.sol[39m 176ms (unchanged)
|
|
67
|
+
[90mtest/unit/SwapLimitOrdersUnit.t.sol[39m 676ms (unchanged)
|
|
68
|
+
[90mtest/unit/SwapLimitOrdersValidation.t.sol[39m 278ms (unchanged)
|
|
69
|
+
[90mtest/unit/SwapWithLimitOrdersUnit.t.sol[39m 83ms (unchanged)
|
|
70
|
+
[90mtest/utils/BaseTest.sol[39m 663ms (unchanged)
|
|
71
|
+
[90mtest/utils/MockWETH.sol[39m 34ms (unchanged)
|
|
72
|
+
[90mtest/utils/TestableZoraLimitOrderBook.sol[39m 20ms (unchanged)
|
|
73
73
|
[34mCLI[39m Building entry: package/index.ts
|
|
74
74
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
75
|
-
[34mCLI[39m tsup v8.
|
|
75
|
+
[34mCLI[39m tsup v8.5.1
|
|
76
76
|
[34mCLI[39m Using tsup config: /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders/tsup.config.ts
|
|
77
77
|
[34mCLI[39m Target: es2021
|
|
78
78
|
[34mCLI[39m Cleaning output folder
|
|
79
79
|
[34mCJS[39m Build start
|
|
80
80
|
[34mESM[39m Build start
|
|
81
|
-
[
|
|
82
|
-
[
|
|
83
|
-
[
|
|
84
|
-
[
|
|
85
|
-
[
|
|
86
|
-
[
|
|
81
|
+
[32mESM[39m [1mdist/index.js [22m[32m24.82 KB[39m
|
|
82
|
+
[32mESM[39m [1mdist/index.js.map [22m[32m44.67 KB[39m
|
|
83
|
+
[32mESM[39m ⚡️ Build success in 42ms
|
|
84
|
+
[32mCJS[39m [1mdist/index.cjs [22m[32m25.99 KB[39m
|
|
85
|
+
[32mCJS[39m [1mdist/index.cjs.map [22m[32m44.79 KB[39m
|
|
86
|
+
[32mCJS[39m ⚡️ Build success in 42ms
|
package/AUDIT_NOTES.md
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @zoralabs/limit-orders
|
|
2
2
|
|
|
3
|
+
## 0.2.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- df0b0a1d: Add ContractVersionBase inheritance to ZoraLimitOrderBook and SwapWithLimitOrders
|
|
8
|
+
|
|
9
|
+
- Both contracts now inherit from ContractVersionBase for consistent version tracking
|
|
10
|
+
- Implements IVersionedContract interface with contractVersion() returning "0.2.5"
|
|
11
|
+
|
|
12
|
+
- b374124a: Initialize max fill count to 50 in ZoraLimitOrderBook constructor
|
|
13
|
+
|
|
14
|
+
Sets a default maximum fill count of 50 orders per transaction in the constructor, providing consistent behavior from deployment without requiring separate configuration.
|
|
15
|
+
|
|
16
|
+
## 0.2.5
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- 9a46fe15: Remove unused ISetLimitOrderConfig interface from SwapWithLimitOrders router
|
|
21
|
+
|
|
3
22
|
## 0.2.4
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -5,9 +5,6 @@
|
|
|
5
5
|
- **Architecture + diagrams (this doc)**: [`README.md`](./README.md)
|
|
6
6
|
- **Normative behavior + invariants**: [`SPEC.md`](./SPEC.md)
|
|
7
7
|
- **Threat model + audit checklist**: [`AUDIT_NOTES.md`](./AUDIT_NOTES.md)
|
|
8
|
-
- **Audit scope / process**: [`AUDIT_RFP.md`](./AUDIT_RFP.md)
|
|
9
|
-
|
|
10
|
-
If you’re auditing: read **README → SPEC → AUDIT_NOTES → code**.
|
|
11
8
|
|
|
12
9
|
### Table of Contents
|
|
13
10
|
|
|
@@ -155,8 +152,7 @@ Components
|
|
|
155
152
|
|
|
156
153
|
4. Access Control
|
|
157
154
|
|
|
158
|
-
- [`
|
|
159
|
-
- [`SimpleAccessManager.sol`](./src/access/SimpleAccessManager.sol) - Role-based access manager implementation
|
|
155
|
+
- [`PermittedCallers.sol`](./src/access/PermittedCallers.sol) - Ownable2Step-based access control with permitted callers mapping
|
|
160
156
|
|
|
161
157
|
#### Tick Queue System
|
|
162
158
|
|
|
@@ -456,13 +452,14 @@ This enables.
|
|
|
456
452
|
- Potential future upgradeability
|
|
457
453
|
- Gas-efficient storage access
|
|
458
454
|
|
|
459
|
-
Access Control via
|
|
455
|
+
Access Control via PermittedCallers
|
|
460
456
|
|
|
461
|
-
Uses OpenZeppelin's
|
|
457
|
+
Uses OpenZeppelin's `Ownable2Step` pattern with a simple permitted callers mapping.
|
|
462
458
|
|
|
463
|
-
-
|
|
459
|
+
- By default, `PUBLIC_ACCESS` (address(0)) is permitted, meaning anyone can call
|
|
460
|
+
- Owner can restrict access by setting `PUBLIC_ACCESS` to false and whitelisting specific addresses
|
|
464
461
|
- Can restrict `create()` to specific routers/hooks if needed
|
|
465
|
-
-
|
|
462
|
+
- Two-step ownership transfer for safe admin transitions
|
|
466
463
|
|
|
467
464
|
### 4. Fill Execution Paths
|
|
468
465
|
|
package/SPEC.md
CHANGED
|
@@ -4,9 +4,8 @@ This document is the **behavioral specification** for the Limit Orders system in
|
|
|
4
4
|
|
|
5
5
|
Related docs:
|
|
6
6
|
|
|
7
|
-
- [`README.md`](./README.md) — architecture & diagrams (canonical
|
|
7
|
+
- [`README.md`](./README.md) — architecture & diagrams (canonical "where to start")
|
|
8
8
|
- [`AUDIT_NOTES.md`](./AUDIT_NOTES.md) — threat model & audit checklist
|
|
9
|
-
- [`AUDIT_RFP.md`](./AUDIT_RFP.md) — audit scope & deliverables
|
|
10
9
|
|
|
11
10
|
---
|
|
12
11
|
|
|
@@ -65,7 +64,7 @@ This section defines **intended behavior** for the public entrypoints. For exact
|
|
|
65
64
|
|
|
66
65
|
**Authorization**
|
|
67
66
|
|
|
68
|
-
- `create()` is access-controlled via `
|
|
67
|
+
- `create()` is access-controlled via `PermittedCallers` which uses an `onlyPermitted` modifier.
|
|
69
68
|
|
|
70
69
|
**Effects**
|
|
71
70
|
|
|
@@ -163,9 +162,10 @@ This section defines **intended behavior** for the public entrypoints. For exact
|
|
|
163
162
|
- Updates the stored default max fills per call.
|
|
164
163
|
- Must not allow admin to withdraw user funds or block withdrawals.
|
|
165
164
|
|
|
166
|
-
**
|
|
165
|
+
**Permitted callers management**
|
|
167
166
|
|
|
168
|
-
-
|
|
167
|
+
- Owner can update permitted callers via `setPermittedCallers()`.
|
|
168
|
+
- Ownership can be transferred via two-step process (`Ownable2Step`).
|
|
169
169
|
|
|
170
170
|
---
|
|
171
171
|
|
|
@@ -41,6 +41,19 @@
|
|
|
41
41
|
"outputs": [],
|
|
42
42
|
"stateMutability": "nonpayable"
|
|
43
43
|
},
|
|
44
|
+
{
|
|
45
|
+
"type": "function",
|
|
46
|
+
"name": "contractVersion",
|
|
47
|
+
"inputs": [],
|
|
48
|
+
"outputs": [
|
|
49
|
+
{
|
|
50
|
+
"name": "",
|
|
51
|
+
"type": "string",
|
|
52
|
+
"internalType": "string"
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"stateMutability": "pure"
|
|
56
|
+
},
|
|
44
57
|
{
|
|
45
58
|
"type": "function",
|
|
46
59
|
"name": "getLimitOrderConfig",
|
|
@@ -65,6 +65,19 @@
|
|
|
65
65
|
],
|
|
66
66
|
"stateMutability": "view"
|
|
67
67
|
},
|
|
68
|
+
{
|
|
69
|
+
"type": "function",
|
|
70
|
+
"name": "contractVersion",
|
|
71
|
+
"inputs": [],
|
|
72
|
+
"outputs": [
|
|
73
|
+
{
|
|
74
|
+
"name": "",
|
|
75
|
+
"type": "string",
|
|
76
|
+
"internalType": "string"
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"stateMutability": "pure"
|
|
80
|
+
},
|
|
68
81
|
{
|
|
69
82
|
"type": "function",
|
|
70
83
|
"name": "create",
|