docs: add architecture documentation for the dual-path design - #29
Merged
Merged
Conversation
25 tasks
mfw78
force-pushed
the
docs/dual-path-architecture
branch
from
July 30, 2026 03:50
b668bda to
452a443
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
from
July 30, 2026 03:50
004690a to
3e2feb8
Compare
mfw78
force-pushed
the
docs/dual-path-architecture
branch
from
July 30, 2026 04:01
452a443 to
51b23dd
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
from
July 30, 2026 04:01
3e2feb8 to
2be9eb5
Compare
mfw78
force-pushed
the
docs/dual-path-architecture
branch
from
July 30, 2026 06:59
51b23dd to
c766366
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
from
July 30, 2026 07:02
0b2fbf5 to
fd3884c
Compare
mfw78
force-pushed
the
docs/dual-path-architecture
branch
2 times, most recently
from
July 30, 2026 07:07
e66564c to
ed40976
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
2 times, most recently
from
July 30, 2026 07:09
9de4e10 to
8ff13c2
Compare
mfw78
force-pushed
the
docs/dual-path-architecture
branch
from
July 30, 2026 07:09
ed40976 to
0e9e912
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
from
July 30, 2026 07:14
8ff13c2 to
c96591b
Compare
mfw78
force-pushed
the
docs/dual-path-architecture
branch
3 times, most recently
from
July 30, 2026 07:22
eaa61a8 to
e7cfeac
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
from
July 30, 2026 07:22
7f22c28 to
848fbed
Compare
mfw78
force-pushed
the
docs/dual-path-architecture
branch
from
July 30, 2026 07:26
e7cfeac to
ddecfb6
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
from
July 30, 2026 07:26
848fbed to
bb49e8a
Compare
mfw78
force-pushed
the
docs/dual-path-architecture
branch
from
July 30, 2026 07:33
ddecfb6 to
ed73d3d
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
2 times, most recently
from
July 30, 2026 08:23
8da66b0 to
c1131f5
Compare
mfw78
force-pushed
the
docs/dual-path-architecture
branch
2 times, most recently
from
July 30, 2026 08:42
6554f56 to
d0e2a0f
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
from
July 30, 2026 08:42
c1131f5 to
d61d5ad
Compare
mfw78
force-pushed
the
docs/dual-path-architecture
branch
from
July 30, 2026 09:51
d0e2a0f to
b5fb2bd
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
from
July 30, 2026 09:54
8683f5d to
9fa12cf
Compare
mfw78
force-pushed
the
docs/dual-path-architecture
branch
3 times, most recently
from
July 30, 2026 10:40
be043cf to
538c59b
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
from
July 30, 2026 10:40
27b2338 to
285901a
Compare
mfw78
force-pushed
the
docs/dual-path-architecture
branch
from
July 30, 2026 12:54
538c59b to
cc5a62f
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
2 times, most recently
from
July 30, 2026 13:07
81972ab to
eb11525
Compare
mfw78
force-pushed
the
docs/dual-path-architecture
branch
from
July 30, 2026 13:07
cc5a62f to
515b61a
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
from
July 30, 2026 13:19
eb11525 to
c90ee80
Compare
mfw78
force-pushed
the
docs/dual-path-architecture
branch
2 times, most recently
from
July 30, 2026 13:55
a68f7f6 to
e509b1e
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
2 times, most recently
from
July 30, 2026 14:25
8225816 to
83d1edc
Compare
mfw78
force-pushed
the
docs/dual-path-architecture
branch
2 times, most recently
from
July 30, 2026 23:43
676f9e7 to
a452b31
Compare
mfw78
force-pushed
the
feat/order-manifest-types
branch
from
July 30, 2026 23:43
83d1edc to
4ec7892
Compare
Covers the settlement/polling path split, the generator verdict and registry fill overlay, error decoding policy, order manifest enumeration and its pagination contract, the multi-order pattern via offchainInput keying, ERC-1271 integration, and the full breaking- changes migration guide from upstream.
mfw78
force-pushed
the
docs/dual-path-architecture
branch
from
July 30, 2026 23:51
a452b31 to
f10390c
Compare
The `PollResult` NatSpec and `architecture.md` both claimed that a `POST` verdict coexisting with `PARTIALLY_FILLED` is "what allows a partially filled order to keep being posted". That is not how it works: a recorded fill means the discrete order was already accepted by the orderbook and settled, so it stays solvable there until `validTo`, and the remainder keeps filling with no re-post involved. The behaviour is unchanged and remains correct under the rule actually applied in `getTradeableOrderWithSignature`: a signature is withheld only for fill states the chain proves terminal. `FILLED` and `INVALIDATED` qualify, as does any recorded fill on a fill-or-kill order. `PARTIALLY_FILLED` on a `partiallyFillable` order does not, so a valid signature is still returned. The registry is an on-chain view and cannot see whether the order is still listed, so it reports validity rather than asserting orderbook state. Also notes that the fill-or-kill branch is defensive: GPv2 settles such an order in one go, so the observed state should already be `FILLED`. Comment-only.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Architecture documentation for the dual-path design: settlement/polling split, generator verdict and registry fill overlay, typed-error decoding policy and
tryGenerateOrderdiagnostics, order manifest pagination contract, the multi-order pattern viaoffchainInputkeying (closes #17), ERC-1271 integration, the handler purity invariant (advances #8), and the full breaking-changes migration guide from upstream.Issues
Closes #17.
Advances #8 (design principle 6 in
docs/architecture.mdstates the invariant, but the NatSpec note onIConditionalOrder.generateOrderis unchanged and there is no test or lint guard - the issue explicitly prefers those over documentation alone).Part of #1.