All notable changes to DEX.DO are recorded here. Entries are date-based, newest first.
sdk/: newdodex-sdkcrate — the write-side DEX facade overackinacki-kit(private notes, order book, PMP, oracle/market) plus the halo2 voucher proof pipeline. Kept as its own workspace andexcluded from the root build, since the halo2 pipeline pulls private SSH-only git sources that CI hosts have no key for; build it directly fromsdk/.
POST /api/v1/buyFullSet: trader-facing endpoint backing the chainPrivateNote.splitFullSet. Permitted onAWAITING_FREEZE(first successful call activates the OrderBook) andTRADING. NewBuyFullSetUseCase,chain.split_full_set_timeout_msconfig, anddocs/tech-specs/write-api.mdsection.crates/chainpromotesDex::split_full_setout oftest-helpersinto the prod path.
openapi/openapi.yamlandopenapi/index.html: published OpenAPI spec rendered on GitHub Pages. Addedservices/api/src/bin/gen-openapi.rsgenerator binary,openapi/generate.sh, and.github/workflows/{openapi,pages}.ymlto regenerate and deploy on push.crates/chain/: new chain-client crate carved out ofinfrastructure/chain_sender.rs(client, DTO, error, test helpers).makerComissionandtakerComissionfields on theGET /api/v1/marketsresponse. SignedDECIMALstrings (e.g."0.00045"); a negativemakerComissionis a maker rebate credited rather than debited.
- Regenerated OpenAPI after BE-DEX method sync; moved
openapi/index.html→docs/index.htmlfor Pages serving.
GET /api/v1/accountbalances API (#27): collateral + outcome-token balances, plus-2013error for accounts with no deployed PrivateNote contract. Addspn_state_reader,tvm_hashhelpers, and thePrivateNote.solsource.DELETE /api/v1/batchOrderscancel-batch endpoint (#26): atomic batch cancellation byorderIds, capped at 5 per request. Addstests/cancel_batch_orders_http.rsandtests/resolve_for_cancel.rscoverage.
docs/api-spec.md: documentedGET /api/v1/accountoutcome balances andDELETE /api/v1/batchOrdersresponse shape; aligned cancel errors with new-2013.AGENT_REQUIREMENTS.md: strengthened the pre-commit spec-sweep rule (re-read every doc underdocs/and touched READMEs — no narrowing of "relevant").
POST /api/v1/batchOrders(#25): atomic batch order creation, per-outcomemaxBatchSize, intra-batch dedup ofnewOrderClientId. New tests:create_batch_orders_http.rs,e2e_batch_orders.rs.GET /api/v1/ordersall-orders endpoint (#23): paginates orders across all markets for the authenticated account, sorted by stable chain-order key (descending). Addedtests/orders.rs(replaces the older open-orders coverage) anddocs/migrations/orders-cancel-remainder-cutover.md.
- Renamed
openOrdersfilter behavior and trimmed staleMARKETTIF claims indocs/api-spec.md. docs/tech-specs/{read-api,data-schema,indexer}.md: updated to match the all-orders projection and new cursor semantics.
DELETE /api/v1/ordercancel-order endpoint (#24): single-order cancel withPENDING_CANCELintermediate status; ephemeral-market testkit underservices/api/tests/common/(deploy_market.rs,e2e_setup.rs,test_pns.rs) and newe2e_cancel_order.rs.
docs/api-spec.mdanddocs/tech-specs/write-api.md: documented cancel acceptance/finality semantics.
contracts/: regeneratedOracleEventList.sol,OrderBook.sol,PMP.sol,PrivateNote.sol,RootPN.sol,modifiers/{errors,modifiers}.solfrom the latest DEX source (#22).
POST /api/v1/ordercreate-order endpoint (#21) withPENDING_NEWacceptance semantics, fail-closedAppStatehoop, and quantity-validation tightening. Addedtests/resolve_for_new_order.rs.
docs/api-spec.mdanddocs/tech-specs/write-api.md: documented order placement,MARKETbuy semantics onquoteAsset, andrequest_timeout > chain timeoutinvariant.- Renamed write-side spec file; restored
api-spec.mdafter rebase churn.
- Open-orders pipeline behind
GET /api/v1/openOrders(#20): projectors, postgres repo extensions, andtests/open_orders.rs(later subsumed by the all-orders endpoint). migrations/0001_initial.sqlreplacing0001_init_read_model.sql— initial read-model schema reset.
docs/tech-specs/{data-schema,indexer,read-api}.md: documented open-orders projection and schema.
POST /api/v1/ordermocked implementation with auth/permission wiring (#15) anddocs/tech-specs/auth.mdend-to-end smoke coverage.GET /api/v1/depthorder-book endpoint (#11) — initial DEX read API skeleton, ABI bundle undercontracts/abi/dex/, rootCargo.tomlworkspace,config/{api,indexer}.local.yaml, andLICENSE.md.docs/README.md— documentation map with file ownership.CHANGELOG.md(this file).
- Restructured
docs/tech-specs/(#18):market-data-api.md→read-api.md(scope: all read endpoints).market-data-indexer.md→indexer.md.trading-api/write-api.md→write-api.md(top-level).
- Updated cross-references in
services/api/README.md,services/indexer/README.md,AGENT_REQUIREMENTS.md, and inline test comments. - Rewrote root
README.mdfor DEX.DO (previous content was carried over from a different project). - Centralized permission check and split authN/authZ in
docs/tech-specs/auth.mdto match code (#16, #17).
docs/tech-specs/trading-api/directory (emptyread-api.mdremoved;write-api.mdpromoted to top-level).internal-docs/directory (was gitignored; local-only).AGENTS.mdlegacy stub.
docs/api-spec.md: extended response payloads with UI-facing fields; addeddocs/tech-spec.md; removeddocs/technical-spec-market-data.md(#10).
docs/api-spec.mdrewritten and aligned withdocs/dex-events-routing.md(#8); added rendered HTML diagramsdex-contracts-external-flows.htmlanddex-contracts-system.html.
contracts/: synced to the latest DEX contracts (#7) —Nullifier.sol,Oracle.sol,OracleEventList.sol,OrderBook.sol,PMP.sol,PrivateNote.sol,RootOracle.sol,RootPN.sol,libraries/DexLib.sol,modifiers/{errors,modifiers,replayprotection}.sol.
docs/GRAPHQL.md— GraphQL gateway notes (#4).docs/dex-events-routing.md— event-routing reference.
- Updated
docs/dex-contracts-object-diagram.drawio.
- Initial Solidity contracts under
contracts/(#2):Nullifier,Oracle,OracleEventList,OrderBook,PMP,PrivateNote,RootOracle,RootPN, pluslibraries/DexLib.soland sharedmodifiers/.
- Reworked
docs/api-spec.mdto match contract shapes.
docs/api-spec.md— first draft of the REST API specification.
- Initial commit.