@zoralabs/limit-orders 0.2.4 → 0.2.5
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 +45 -46
- package/AUDIT_NOTES.md +0 -1
- package/CHANGELOG.md +6 -0
- package/README.md +6 -9
- package/SPEC.md +5 -5
- package/cache/solidity-files-cache.json +1 -1
- package/out/SwapWithLimitOrders.sol/SwapWithLimitOrders.json +1 -1
- package/out/build-info/{68b2e124c4a02a45.json → c9f7ee5726bfbd48.json} +1 -1
- package/package.json +1 -1
- package/src/router/SwapWithLimitOrders.sol +1 -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
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
|
|
2
|
-
> @zoralabs/limit-orders@0.2.
|
|
2
|
+
> @zoralabs/limit-orders@0.2.5 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.5 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.5 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 7.
|
|
13
|
+
Compiling 92 files with Solc 0.8.28
|
|
14
|
+
Solc 0.8.28 finished in 7.62s
|
|
15
15
|
Compiler run successful!
|
|
16
16
|
[33m-[39m Validating plugins
|
|
17
17
|
[32m✔[39m Validating plugins
|
|
@@ -26,50 +26,49 @@ 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.5 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.5 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
|
|
45
|
-
src/libs/LimitOrderTypes.sol
|
|
46
|
-
src/libs/LimitOrderViews.sol
|
|
47
|
-
src/libs/LimitOrderWithdraw.sol
|
|
48
|
-
src/libs/Permit2Payments.sol
|
|
49
|
-
src/libs/SwapLimitOrders.sol
|
|
50
|
-
src/router/
|
|
51
|
-
src/
|
|
52
|
-
|
|
53
|
-
test/gas/
|
|
54
|
-
test/
|
|
55
|
-
test/
|
|
56
|
-
test/
|
|
57
|
-
test/
|
|
58
|
-
test/
|
|
59
|
-
test/
|
|
60
|
-
test/
|
|
61
|
-
test/
|
|
62
|
-
test/
|
|
63
|
-
test/
|
|
64
|
-
test/
|
|
65
|
-
test/unit/
|
|
66
|
-
test/unit/
|
|
67
|
-
test/unit/
|
|
68
|
-
test/unit/
|
|
69
|
-
test/
|
|
70
|
-
test/utils/
|
|
71
|
-
test/utils/
|
|
72
|
-
test/utils/TestableZoraLimitOrderBook.sol 40ms (unchanged)
|
|
36
|
+
src/access/PermittedCallers.sol 502ms (unchanged)
|
|
37
|
+
src/IZoraLimitOrderBook.sol 61ms (unchanged)
|
|
38
|
+
src/libs/LimitOrderBitmap.sol 59ms (unchanged)
|
|
39
|
+
src/libs/LimitOrderCommon.sol 217ms (unchanged)
|
|
40
|
+
src/libs/LimitOrderCreate.sol 387ms (unchanged)
|
|
41
|
+
src/libs/LimitOrderFill.sol 238ms (unchanged)
|
|
42
|
+
src/libs/LimitOrderLiquidity.sol 231ms (unchanged)
|
|
43
|
+
src/libs/LimitOrderQueues.sol 62ms (unchanged)
|
|
44
|
+
src/libs/LimitOrderStorage.sol 14ms (unchanged)
|
|
45
|
+
src/libs/LimitOrderTypes.sol 2ms (unchanged)
|
|
46
|
+
src/libs/LimitOrderViews.sol 106ms (unchanged)
|
|
47
|
+
src/libs/LimitOrderWithdraw.sol 106ms (unchanged)
|
|
48
|
+
src/libs/Permit2Payments.sol 17ms (unchanged)
|
|
49
|
+
src/libs/SwapLimitOrders.sol 149ms (unchanged)
|
|
50
|
+
src/router/SwapWithLimitOrders.sol 256ms (unchanged)
|
|
51
|
+
src/ZoraLimitOrderBook.sol 141ms (unchanged)
|
|
52
|
+
test/gas/LimitOrderFillGas.t.sol 812ms (unchanged)
|
|
53
|
+
test/gas/LimitOrderSwapGas.t.sol 305ms (unchanged)
|
|
54
|
+
test/LimitOrderAccessControl.t.sol 392ms (unchanged)
|
|
55
|
+
test/LimitOrderBitmap.t.sol 208ms (unchanged)
|
|
56
|
+
test/LimitOrderCreate.t.sol 462ms (unchanged)
|
|
57
|
+
test/LimitOrderFill.t.sol 1033ms (unchanged)
|
|
58
|
+
test/LimitOrderLibraries.t.sol 402ms (unchanged)
|
|
59
|
+
test/LimitOrderLiquidityPayouts.t.sol 418ms (unchanged)
|
|
60
|
+
test/LimitOrderV4Pools.t.sol 148ms (unchanged)
|
|
61
|
+
test/LimitOrderWithdraw.t.sol 641ms (unchanged)
|
|
62
|
+
test/SwapWithLimitOrders.t.sol 98ms (unchanged)
|
|
63
|
+
test/SwapWithLimitOrdersRouter.t.sol 628ms (unchanged)
|
|
64
|
+
test/unit/LimitOrderBitmapUnit.t.sol 83ms (unchanged)
|
|
65
|
+
test/unit/LimitOrderCreateUnit.t.sol 165ms (unchanged)
|
|
66
|
+
test/unit/SwapLimitOrdersUnit.t.sol 616ms (unchanged)
|
|
67
|
+
test/unit/SwapLimitOrdersValidation.t.sol 250ms (unchanged)
|
|
68
|
+
test/unit/SwapWithLimitOrdersUnit.t.sol 69ms (unchanged)
|
|
69
|
+
test/utils/BaseTest.sol 638ms (unchanged)
|
|
70
|
+
test/utils/MockWETH.sol 22ms (unchanged)
|
|
71
|
+
test/utils/TestableZoraLimitOrderBook.sol 19ms (unchanged)
|
|
73
72
|
[34mCLI[39m Building entry: package/index.ts
|
|
74
73
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
75
74
|
[34mCLI[39m tsup v8.4.0
|
|
@@ -80,7 +79,7 @@ test/utils/TestableZoraLimitOrderBook.sol 40ms (unchanged)
|
|
|
80
79
|
[34mESM[39m Build start
|
|
81
80
|
[32mCJS[39m [1mdist/index.cjs [22m[32m25.65 KB[39m
|
|
82
81
|
[32mCJS[39m [1mdist/index.cjs.map [22m[32m44.14 KB[39m
|
|
83
|
-
[32mCJS[39m ⚡️ Build success in
|
|
82
|
+
[32mCJS[39m ⚡️ Build success in 45ms
|
|
84
83
|
[32mESM[39m [1mdist/index.js [22m[32m24.48 KB[39m
|
|
85
84
|
[32mESM[39m [1mdist/index.js.map [22m[32m44.03 KB[39m
|
|
86
|
-
[32mESM[39m ⚡️ Build success in
|
|
85
|
+
[32mESM[39m ⚡️ Build success in 47ms
|
package/AUDIT_NOTES.md
CHANGED
package/CHANGELOG.md
CHANGED
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
|
|