-
Notifications
You must be signed in to change notification settings - Fork 0
feat(order): persist per-fill records in stable memory (3/5) #179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 136 commits
Commits
Show all changes
137 commits
Select commit
Hold shift + click to select a range
4ce3c35
feat(order): roll up realized quote and fee onto OrderRecord
gregorydemay a86e05d
test(order): label worked-example fixture as ckBTC, note spec uses ck…
gregorydemay 17109c5
perf(state): settle fills in a single pass without an intermediate Vec
gregorydemay e71fe50
chore(canister): refresh canbench baseline for order-level scalars
gregorydemay 0efe8e5
test(canister): derive arb_order_record notional via base_scale
gregorydemay 1128a86
test(canister): make realized_scalars a literal ICP/ckUSDT example
gregorydemay 2198311
docs(candid): simplify filled_quote/filled_fee field docs
gregorydemay 6b4a9dd
refactor(state): wrap Fill in FillSettlement, single write gate, rena…
gregorydemay c730732
test(state): fold realized-scalar coverage into existing fee tests
gregorydemay e97d66c
test(int): exercise non-zero fees in partial-fill cancel test
gregorydemay 61abf99
chore(canister): refresh canbench baseline for renamed scope
gregorydemay d08b235
Merge remote-tracking branch 'origin/main' into gdemay/DEFI-2901-orde…
gregorydemay ccd8246
Merge remote-tracking branch 'origin/main' into gdemay/DEFI-2901-orde…
gregorydemay f90f243
chore(canister): refresh canbench baseline after main merge
gregorydemay df627ae
test(state): rename proptest to reflect fill_settlement + push_balanc…
gregorydemay 4abdc5c
docs(did): express order VWAP as filled_quote / filled_quantity
gregorydemay 15e624e
refactor(state): have FillSettlement own its Fill
gregorydemay 9767bfe
docs(types): align filled_quote VWAP docstring with the .did (drop ba…
gregorydemay e632896
refactor(order): promote FillSettlement to a first-class type
gregorydemay 8860030
Merge remote-tracking branch 'origin/main' into gdemay/DEFI-2901-orde…
gregorydemay b1b9d56
DEFI-2901: refactor accrue_fill
gregorydemay 20e5b7e
DEFI-2901: refactor FillSettlement
gregorydemay 67700b9
DEFI-2901: remove dead code
gregorydemay a23bf6e
DEFI-2901: simplify comments
gregorydemay 738a76e
DEFI-2901: remove unnecessary clone
gregorydemay 01ec74c
refactor(canister): encapsulate balance-op construction in a settle()…
gregorydemay 3b664d3
chore(canister): regenerate canbench results after settle() refactor
gregorydemay c2e8354
perf(canister): gate full settlement under the write gate during replay
gregorydemay c427980
test(canister): drop review-flagged comments in state tests
gregorydemay 3099210
test(canister): drop duplicate ckUSDT metadata fixture
gregorydemay c2fa150
test(canister): drive realized-scalar examples from a TestCase table
gregorydemay f676083
DEFI-2901: complete expectations
gregorydemay d1d23b4
test(canister): move record_of helper into test_fixtures
gregorydemay f0e21a0
test(canister): assert filled records via assert_eq_ignoring_timestamp
gregorydemay 933e131
test(canister): drive worked-example matching with mock_runtime_for_t…
gregorydemay 772edb2
perf(canister): gate cancel settlement under the write gate during re…
gregorydemay 3fc7aed
test(canister): build token-id fixtures via SupportedTokens::token_id
gregorydemay e28d073
test(int): drop redundant comment in cancel partial-fill refund test
gregorydemay aed1cf5
feat(order): persist per-fill records in stable memory (2/4)
gregorydemay c5b4f8f
test(canister): restore the shared test_fixtures::record_of helper
gregorydemay 075b728
test(canister): build token-id fixtures via SupportedTokens::token_id
gregorydemay 953de4c
test(canister): drop redundant fill-persistence bench, reuse gtc full…
gregorydemay 36836bc
fix(canister): keep cancel-path settlement under the write gate
gregorydemay 034d957
chore(canister): merge main, adopt collapsed place_* order builder
gregorydemay b00db78
chore(canister): merge order-level-scalars, adopt collapsed order bui…
gregorydemay 4e078a4
refactor(order): promote FillKey into a first-class FillId identifier
gregorydemay d578ff8
feat(order): index fills by account and write the by_user index on se…
gregorydemay 1bc7db4
docs(specs): adopt FillId identity and fold ByAccount storage into PR-2
gregorydemay 9595d76
refactor(order): adopt the denormalized Fill/Trade identity model
gregorydemay 998e31b
docs(specs): rewrite DEFI-2901 to the denormalized Trade model
gregorydemay ce05e4d
test(canister): refresh canbench baseline for the trade store
gregorydemay 9840e4c
perf(order): resolve the trade account cursor in O(log n)
gregorydemay d2e215e
refactor(order): drop the unused OrderBook::next_fill accessor
gregorydemay 680530b
perf(state): share the cached order-owner resolution for fill records
gregorydemay e2752d5
perf(state): skip owner-cache build when a matching round has no fills
gregorydemay 00c98c9
Merge origin/main into gdemay/DEFI-2901-fill-store
gregorydemay cb7adbf
chore(canister): drop retention/pruning TODO in TradeHistory::insert
gregorydemay fb32e97
DEFI-2901: Seq generic type
gregorydemay 6e0b36d
DEFI-2901: debug Seq
gregorydemay 8cd8124
feat(order): add per-book fill sequence to Fill
gregorydemay b002b02
refactor(order): migrate OrderBookId onto the Seq generic
gregorydemay 884ccd8
DEFI-2901: composite ID
gregorydemay e0c8b5c
refactor(ids): promote ids to a top-level module
gregorydemay 67c27de
test(ids): add proptest strategies and id roundtrip helpers
gregorydemay 886c44d
test(ids): cover nested CompositeId round-trips
gregorydemay ab22f73
chore(canister): regenerate canbench results and fix doc typo
gregorydemay f9ace5a
Merge remote-tracking branch 'origin/gdemay/DEFI-2901-id-types' into …
gregorydemay 7e76888
chore(canister): regenerate canbench results after id-layer merge
gregorydemay 7e109df
refactor(canister): fold TradeByUserKey onto the shared CompositeId l…
gregorydemay 2762846
test(canister): drop the self-asserting no-counterparty fixture test
gregorydemay 7b03ac5
refactor(user): make UserId a Seq alias
gregorydemay 24e72e6
Merge gdemay/DEFI-2901-id-types into gdemay/DEFI-2901-fill-store
gregorydemay d689aaa
test(order): drop generic id tests from the fills suite
gregorydemay 1dca2f8
refactor(fills): fold TradeByUserKey constructors into impl methods
gregorydemay 9a30552
refactor(fills): rename Trade to TradeRecord
gregorydemay 5a5b965
test(fills): add arbitrary TradeRecord strategy and minicbor roundtrip
gregorydemay 46c5083
refactor(fills): drop the unused Storable impl for TradeRecord
gregorydemay 9b1e980
refactor(order): rename the fills module to trades
gregorydemay 94bb858
refactor(canister): rename the trade store binding to trade_history
gregorydemay 46d2bb5
refactor(order): let TradeHistory::append consume a FillSettlement
gregorydemay 1fbb070
fix(canister): reject non-canonical hex in FixedWidthId::from_hex
gregorydemay 7b8d8e5
style(canister): apply cargo fmt after append-refactor
gregorydemay a8a4426
Merge remote-tracking branch 'origin/gdemay/DEFI-2901-id-types' into …
gregorydemay 365ce0e
refactor(canister): share canonical-hex validation across from_hex impls
gregorydemay 48f2275
Merge remote-tracking branch 'origin/gdemay/DEFI-2901-id-types' into …
gregorydemay e031c66
test(order): drive TradeHistory store tests through append(FillSettle…
gregorydemay cafb9ce
refactor(canister): use matches! for canonical-hex byte check
gregorydemay 7bc2be1
Merge remote-tracking branch 'origin/gdemay/DEFI-2901-id-types' into …
gregorydemay ce18afd
Merge remote-tracking branch 'origin/main' into gdemay/DEFI-2901-fill…
gregorydemay e4b4725
chore(canister): refresh canbench results after merging main
gregorydemay f68d8e1
docs(specs): align persist-fills spec with shipped trades module
gregorydemay 1276542
refactor(canister): rename SeqTrade to SeqTradeRecord, type global_se…
gregorydemay dc561fb
refactor(canister): move trade persistence into the settling phase
gregorydemay 1ef2b40
perf(canister): refresh canbench after moving persistence to settling
gregorydemay 0f00cfc
refactor(canister): shrink the matching→settling event boundary to a …
gregorydemay 7c45bf2
perf(canister): refresh canbench after leaning the settling event bou…
gregorydemay 9e3b512
refactor(canister): drop unused FillSettlement derives
gregorydemay b1cd62b
test(canister): cover the Skip gate in record_settling_event
gregorydemay f5e38dc
test(canister): make worst-case Settling fixture genuinely max-width
gregorydemay ca41fbd
docs(specs): rename stored trade value to SeqTradeRecord
gregorydemay 75f98db
perf(canister): compute fill notional once per call site
gregorydemay 1619137
feat(order): add the trade store and its read API (1/5)
gregorydemay fa456ee
Merge remote-tracking branch 'origin/gdemay/DEFI-2901-trade-store' in…
gregorydemay 7cf47ed
test(state): cover owner-scoping of get_user_order_trades
gregorydemay 6a8266c
test(order): collapse trade-append side wrappers into append
gregorydemay e695cc6
docs(order): correct trades_after complexity to O(length * log n)
gregorydemay bcf5222
feat(history): add the generic History store and build TradeHistory o…
gregorydemay 8db56ee
test(history): cover by-user paging; drop TradeHistory's account-wide…
gregorydemay 67d550b
refactor(order): build OrderHistory on the shared History core
gregorydemay 8dbb2c8
test(history): cover insert/get/dup; drop OrderHistory's equivalents
gregorydemay e81830e
test(history): cover read-modify-write; drop OrderHistory's noop-upda…
gregorydemay 8eba2fc
test(order): drop orders_after tests covered by the generic paging suite
gregorydemay 3baed4c
test: drop store tests redundant with the generic and state suites
gregorydemay e732f21
docs(canister): refer to History's primary/by-user maps in trade memo…
gregorydemay e910250
docs(canister): clarify History insertion sequence is per-store, not …
gregorydemay 1634848
refactor(canister): type History insertion seq as HistoryGlobalSeq, r…
gregorydemay f5fa966
refactor(canister): relax History key bound from Copy to Clone
gregorydemay 3a8b988
refactor(canister): rename HistoryGlobalSeq to InsertionSeq
gregorydemay 385d66c
refactor(canister): rename SeqEnvelope to SeqRecord
gregorydemay fb3daa5
test(canister): table-drive range_primary history test
gregorydemay fe20fd4
test(canister): consolidate trades_for_order tests into a table
gregorydemay 7e5bd15
refactor(canister): defer the per-order trade reader out of the trade…
gregorydemay 932856f
Merge remote-tracking branch 'origin/gdemay/DEFI-2901-trade-store' in…
gregorydemay 6716e6d
docs(canister): trim the verbose SettledFill reprice/exchange note
gregorydemay c2073ee
refactor(canister): drop unused Encode/Decode from Fill
gregorydemay a575301
refactor(canister): take SettledFill by value in trade_legs
gregorydemay 3c6c147
refactor(canister): rename SettledFill to FillEvent
gregorydemay 5df1307
feat(canister): expose per-fill data on the candid Settling event
gregorydemay e3f4238
Merge remote-tracking branch 'origin/main' into gdemay/DEFI-2901-fill…
gregorydemay 41c3c77
refactor(canister): rename resolve_op_users to resolve_op_orders
gregorydemay fc67d50
refactor(canister): drop unused TradeCursorNotFound re-export
gregorydemay b19c71a
refactor(canister): compute trade-leg fees without a fabricated Fill
gregorydemay 717381a
refactor(canister): make settling order-seq lookup panic explicit
gregorydemay 41a90ab
test(canister): assert trade legs as whole records, not field-by-field
gregorydemay a2bc218
test(canister): drop requirement-referencing doc comment on skip-gate…
gregorydemay 899f751
test(canister): assert per-fill settlement records as whole records
gregorydemay 324cdb5
docs(canister): describe both side effects of record_settling_event
gregorydemay File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.