Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
473 commits
Select commit Hold shift + click to select a range
aeefd33
Merge branch 'dev' into feat/treasury-contract
Mimah97 Jun 23, 2026
82f855c
Merge pull request #278 from yosemite01/feat/treasury-contract
Mimah97 Jun 23, 2026
d5c22de
Merge branch 'dev' into feat/issue-254-treasury-contract
Mimah97 Jun 23, 2026
4cf8ab1
Merge pull request #279 from yosemite01/feat/issue-254-treasury-contract
Mimah97 Jun 23, 2026
fc2349a
Merge pull request #287 from lonerthefirst3-sudo/spike/139-oracle-ada…
Mimah97 Jun 23, 2026
e203d00
Merge pull request #289 from zeekman/feat/issue-264-oracle-canonical-…
Mimah97 Jun 23, 2026
60e1abe
Merge pull request #290 from Killerjunior/codex/269-enrich-market-events
Mimah97 Jun 23, 2026
2b067e1
Merge branch 'dev' into feat/storage-version-marker
Mimah97 Jun 23, 2026
ff96649
Merge pull request #291 from studiomonkeyx/feat/storage-version-marker
Mimah97 Jun 23, 2026
13dad08
Merge branch 'dev' into feat/persist-market-price-bps
Mimah97 Jun 23, 2026
02ab2f1
Merge pull request #292 from studiomonkeyx/feat/persist-market-price-bps
Mimah97 Jun 23, 2026
06758e9
Merge pull request #293 from Emeka000/clippy
Mimah97 Jun 23, 2026
62ded0a
Merge branch 'dev' into feature/withdraw-fee-deduction
Mimah97 Jun 23, 2026
3a3b277
Merge pull request #294 from DevAyomi/feature/withdraw-fee-deduction
Mimah97 Jun 23, 2026
d365ebd
Merge branch 'dev' into feat/query-endpoints
Mimah97 Jun 23, 2026
f202979
Merge pull request #295 from Jonniie/feat/query-endpoints
Mimah97 Jun 23, 2026
90768a8
feat(market): implement cancel_market admin flow for canceled markets
abdegenius Jun 25, 2026
d9a5929
test(e2e): wire full deposit→trade→resolve→settle→payout workspace test
abdegenius Jun 25, 2026
b9fe719
feat(fees): real withdrawal fee bps wired to treasury collect_fee
abdegenius Jun 25, 2026
09f6945
ci(deploy): real testnet deploy + smoke invoke scripts, aligned build
abdegenius Jun 25, 2026
417ee92
Wire market update_position to outcome-token mint/burn and add outcom…
Ndifreke000 Jun 26, 2026
8a29d5d
feat(#321): Add resolver address tracking to MarketResolved event
christabel888 Jun 26, 2026
6460886
fix: return InvalidSignature for unimplemented oracle adapters and ve…
yosemite01 Jun 26, 2026
4dc7917
Merge pull request #415 from abdegenius/feature/263-cancel-market-adm…
Mimah97 Jun 26, 2026
1e96a1f
Merge pull request #416 from abdegenius/feature/270-e2e-workspace-test
Mimah97 Jun 26, 2026
ec74e6b
Merge branch 'dev' into feature/271-real-fee-bps-treasury
Mimah97 Jun 26, 2026
17645ad
Merge pull request #417 from abdegenius/feature/271-real-fee-bps-trea…
Mimah97 Jun 26, 2026
2746313
Merge pull request #418 from abdegenius/feature/252-real-testnet-depl…
Mimah97 Jun 26, 2026
bd2712c
Merge branch 'dev' into feature/outcome-token-update-position
Mimah97 Jun 26, 2026
bec8c78
Merge pull request #419 from Ndifreke000/feature/outcome-token-update…
Mimah97 Jun 26, 2026
d851071
Merge branch 'dev' into fix/oracle-signature-verification-322-323-324…
Mimah97 Jun 26, 2026
bfcab2c
Merge pull request #420 from yosemite01/fix/oracle-signature-verifica…
Mimah97 Jun 26, 2026
46ab9c3
Wire market adapter selection through resolve_market and add resolver…
christabel888 Jun 26, 2026
1e4874d
feat: implement issues #315 #316 #318 #327
yosemite01 Jun 26, 2026
550acfb
Merge branch 'dev' into feat/issues-315-316-318-327
ndii-dev Jun 26, 2026
536a4f6
feat: enhance market contract and web Soroban integration
Teeeyanaa Jun 26, 2026
ca05526
docs: reconcile README contract status and align market integration t…
Teeeyanaa Jun 26, 2026
343c0a7
feat: implement issues #404-#407
Malik6828 Jun 27, 2026
5c4abe0
fix: reconcile Treasury contract into a single canonical implementation
Emmanuelluxury Jun 27, 2026
29981aa
feat(market): add resolution_price field and Reflector oracle adapter
Emmanuelluxury Jun 27, 2026
eafe460
ci: run workspace integration tests on every push/PR
Emmanuelluxury Jun 27, 2026
2b5bd6e
fix(market): complete resolution_price coverage in storage, lib, and …
Emmanuelluxury Jun 27, 2026
2a5720a
feat: implement #372 #373 #374 #375 contract improvements
webthreejunkie-sudo Jun 27, 2026
449d000
Fix market storage.rs compile errors and add missing StorageKey helpers
maztah1 Jun 27, 2026
394797b
Add TypeScript contract bindings generation
maztah1 Jun 27, 2026
7925ba1
Unify build toolchain on stellar contract build
maztah1 Jun 27, 2026
b7e41f4
feat: implement withdrawal fee configuration and treasury routing
maztah1 Jun 27, 2026
21c5a51
Merge pull request #421 from christabel888/feat/issue-325-wire-adapte…
Mimah97 Jun 27, 2026
0973e5e
Merge branch 'dev' into feat/issues-315-316-318-327
Mimah97 Jun 27, 2026
b418980
Merge pull request #422 from ndii-dev/feat/issues-315-316-318-327
Mimah97 Jun 27, 2026
11a079a
Merge branch 'dev' into feat/soroban-market-integration
Mimah97 Jun 27, 2026
5e51c5e
Merge pull request #423 from Teeeyanaa/feat/soroban-market-integration
Mimah97 Jun 27, 2026
5523f15
Merge pull request #424 from Teeeyanaa/docs/reconcile-contract-status
Mimah97 Jun 27, 2026
859846f
Merge branch 'dev' into feat/issues-404-407
Mimah97 Jun 27, 2026
554323c
Merge pull request #425 from Malik6828/feat/issues-404-407
Mimah97 Jun 27, 2026
88ac778
Merge branch 'dev' into fix/treasury-api-reconciliation
Mimah97 Jun 27, 2026
b5fd95c
Merge pull request #426 from darcszn/fix/treasury-api-reconciliation
Mimah97 Jun 27, 2026
11c40eb
Merge branch 'dev' into feat/market-reflector-oracle-resolution
Mimah97 Jun 27, 2026
29f7791
Merge pull request #427 from darcszn/feat/market-reflector-oracle-res…
Mimah97 Jun 27, 2026
c523fb3
Merge branch 'dev' into ci/workspace-integration-tests
Mimah97 Jun 27, 2026
5ddcf53
Merge pull request #428 from darcszn/ci/workspace-integration-tests
Mimah97 Jun 27, 2026
68dce89
Merge branch 'dev' into feature/reflector-oracle-adapter
Mimah97 Jun 27, 2026
e25b192
Merge pull request #429 from darcszn/feature/reflector-oracle-adapter
Mimah97 Jun 27, 2026
77f2ab3
Merge branch 'dev' into feature/372-373-374-375-contract-improvements
Mimah97 Jun 27, 2026
443a5d8
Merge pull request #430 from webthreejunkie-sudo/feature/372-373-374-…
Mimah97 Jun 27, 2026
624ec54
Merge branch 'dev' into fix/storage-key-drift
Mimah97 Jun 27, 2026
e23d3bd
Merge pull request #431 from maztah1/fix/storage-key-drift
Mimah97 Jun 27, 2026
b85d983
Merge branch 'dev' into feat/typescript-contract-bindings
Mimah97 Jun 27, 2026
d91ee10
Merge pull request #432 from maztah1/feat/typescript-contract-bindings
Mimah97 Jun 27, 2026
9118676
Merge branch 'dev' into fix/unify-build-toolchain
Mimah97 Jun 27, 2026
2fc2caa
Merge pull request #433 from maztah1/fix/unify-build-toolchain
Mimah97 Jun 27, 2026
1fdc598
Merge branch 'dev' into feat/implement-withdrawal-fee-treasury
Mimah97 Jun 27, 2026
9f00253
Merge pull request #434 from maztah1/feat/implement-withdrawal-fee-tr…
Mimah97 Jun 27, 2026
c3fe2e3
Handle no-winner refund path: refund deposited collateral when market…
bheesty Jun 27, 2026
11ee906
feat(market): enforce immutability of outcome_count (#411)
whiteghost0001 Jun 27, 2026
3e30e02
resolution: add signature_expiry to candidates and enforce expiry on …
bheesty Jun 27, 2026
e2c558d
fix(storage): remove duplicate treasury helpers and add StorageVersio…
Meshmulla Jun 28, 2026
7c92368
feat: emit AdminTransferred event, add fmt pre-commit hook, fix netwo…
abrak01 Jun 28, 2026
1d2d3a1
feat: implement #376 #377 #378 #379 — locked collateral, fee withdraw…
Gadflyxx Jun 28, 2026
0c6b5dd
feat(#308,#309): treasury version guard and clean withdrawal fee dedu…
Meshmulla Jun 28, 2026
76b779f
Merge pull request #435 from bheesty/handle/no-winner
Mimah97 Jun 28, 2026
b5159e1
Merge pull request #436 from whiteghost0001/feature/411-immutable-out…
Mimah97 Jun 28, 2026
17c9005
Merge pull request #437 from bheesty/expiry-deadline
Mimah97 Jun 28, 2026
e40afcd
Merge branch 'dev' into feature/306-307-fix-storage-duplicate-treasur…
Mimah97 Jun 28, 2026
7635f00
Merge pull request #439 from Meshmulla/feature/306-307-fix-storage-du…
Mimah97 Jun 28, 2026
ed6ff1c
Merge branch 'dev' into feat/issues-376-377-378-379
Mimah97 Jun 28, 2026
e091ed2
Merge pull request #440 from Gadflyxx/feat/issues-376-377-378-379
Mimah97 Jun 28, 2026
ad3e459
Merge branch 'dev' into feature/308-309-treasury-version-guard-withdr…
Mimah97 Jun 28, 2026
1e4f409
Merge pull request #441 from Meshmulla/feature/308-309-treasury-versi…
Mimah97 Jun 28, 2026
6e9b6cd
Merge pull request #442 from abrak01/feat/392-395-admin-transferred-f…
Mimah97 Jun 28, 2026
20a6787
feat(#364): add #![deny(clippy::all)] to all contract crate roots
onahiOMOTI Jun 28, 2026
b8d535f
feat(#365): deploy-testnet.sh use canonical build output path
onahiOMOTI Jun 28, 2026
4dd4e41
docs(#366): merge duplicate contract status tables into one
onahiOMOTI Jun 28, 2026
b1a50fe
docs(#367): add cross-contract call graph documentation
onahiOMOTI Jun 28, 2026
e7c7dc1
docs(#367): add cross-contract call graph documentation
onahiOMOTI Jun 28, 2026
f6b536f
Implement #340 #341 #342 #343: admin init guard, pause flag, i128 ove…
vrickish Jun 28, 2026
a9af5ad
fix(web): replace fake XDR with real stellar-sdk encoding (#355)
Chrisland58 Jun 29, 2026
473ff13
test(market): add proptest invariant locked<=deposited (#354)
Chrisland58 Jun 29, 2026
531b5d0
test(contracts): client tests for all public entrypoints (#353)
Chrisland58 Jun 29, 2026
585dc22
test(contracts): snapshot test event JSON payloads (#352)
Chrisland58 Jun 29, 2026
15c5de4
#351 Add proptest fuzz tests for share collateral invariants
chinecherem58 Jun 29, 2026
a264cd1
#350 Use initialize in integration test harness
chinecherem58 Jun 29, 2026
a96aa6b
#349 #348 CI build and test all contracts
chinecherem58 Jun 29, 2026
e959cb4
feat(web): replace Soroban RPC stub with HTTP fetch to indexer API
BABAT-CODE Jun 29, 2026
e65ae2b
feat(web): remove MOCK_MARKETS from production pages
BABAT-CODE Jun 29, 2026
eff1aae
feat(web): accept marketId prop in DepositForm
BABAT-CODE Jun 29, 2026
06efa5e
feat: enhance update_position as primary trading entry point (#371)
maztah1 Jun 29, 2026
a73de53
feat: add admin parameter validation for initialize (#370)
maztah1 Jun 29, 2026
f58d55e
feat(contracts): add fee rate storage/entry points and treasury token…
priscaenoch Jun 29, 2026
951cc22
Merge branch 'dev' into feature/310-313-fees-treasury-alignment
priscaenoch Jun 29, 2026
1fbb846
Implement somzilla issues:
sommy92 Jun 29, 2026
0a4569d
docs: add comprehensive storage migration guide (#369)
maztah1 Jun 29, 2026
c99e49e
Implement somzilla issues: #386 E2E deposit trade resolve settle payo…
Chisom92 Jun 29, 2026
54e996b
docs: add ADR for oracle adapter selection (#368)
maztah1 Jun 29, 2026
d046f01
fix(market): resolve compilation errors for #336-#339
marvelousufelix Jun 29, 2026
7983a75
feat(market): implement #332–#335 burn, collateral invariant, and pos…
chucksentertainment-hash Jun 29, 2026
2ba2286
feat: implement issues #344, #345, #346, #347
jpetee21-design Jun 29, 2026
c5deff0
feat: #403 treasury pause, #402 fee cap, #401 list_markets, #400 benc…
dominionvinson-maker Jun 29, 2026
edb38d7
tooling: improve generate-bindings.ts validation and error handling
CodeMasked Jun 29, 2026
1bdf8a4
web: show tx hash and explorer link after submit
CodeMasked Jun 29, 2026
9e5e81c
web: add Freighter connect error handling
CodeMasked Jun 29, 2026
52be475
feat(resolution): #380 store default challenge window duration
soter-fashion Jun 29, 2026
073219f
feat(resolution): #381 slash incorrect proposer collateral
soter-fashion Jun 29, 2026
d2ba5f2
feat(outcome-token): #382 scaffold SAC metadata
soter-fashion Jun 29, 2026
8b4a8a9
feat(treasury): #383 authorized market registry
soter-fashion Jun 29, 2026
af3c032
ci: fix and verify TypeScript bindings generation in frontend job
CodeMasked Jun 29, 2026
799cc1d
Merge branch 'dev' into feat/383-authorized-market-registry
soter-fashion Jun 29, 2026
945f5ca
Merge branch 'dev' into feat/381-slash-proposer-collateral
soter-fashion Jun 29, 2026
26946e1
feat: add min deposit constant, withdraw cooldown, and admin renounce…
Jun 29, 2026
3a8670c
docs: add Freighter integration guide for contributors; fix addressTo…
Komelove Jun 30, 2026
eddcb92
feat: implement close market to deposits feature
minorkime-design Jun 30, 2026
1c62f49
feat: add market metadata URI field specification
minorkime-design Jun 30, 2026
1b63e89
feat: implement market metadata URI field
minorkime-design Jun 30, 2026
b8d426c
feat: wire collect_fee callback on withdraw specification
minorkime-design Jun 30, 2026
ab4eab3
feat: add get_position read-only view function
minorkime-design Jun 30, 2026
5fd7aca
Merge pull request #443 from onahiOMOTI/issues/364-365-366-367
Mimah97 Jun 30, 2026
c8b2084
Merge branch 'dev' into vrickish_#340_#341_#342_#343
Mimah97 Jun 30, 2026
55f7bcb
Merge pull request #444 from vrickish/vrickish_#340_#341_#342_#343
Mimah97 Jun 30, 2026
5ecad67
Merge pull request #445 from Chrisland58/feat/354-property-locked-inv…
Mimah97 Jun 30, 2026
8cb486e
Merge pull request #446 from Chrisland58/feat/353-client-entrypoint-t…
Mimah97 Jun 30, 2026
994e403
Merge pull request #447 from Chrisland58/feat/355-stellar-sdk-xdr
Mimah97 Jun 30, 2026
6e88c38
Merge pull request #448 from Chrisland58/feat/352-event-snapshot-tests
Mimah97 Jun 30, 2026
d52ce20
Merge pull request #449 from chinecherem58/issue-351-proptest-fuzz-in…
Mimah97 Jun 30, 2026
982bf72
Merge pull request #450 from chinecherem58/issue-350-use-initialize-h…
Mimah97 Jun 30, 2026
eed2faa
Merge pull request #451 from chinecherem58/issue-349-350-348-ci-build…
Mimah97 Jun 30, 2026
cf87cc6
Merge branch 'dev' into feat/web-indexer-api-fetch
Mimah97 Jun 30, 2026
844e87c
Merge pull request #452 from BABAT-CODE/feat/web-indexer-api-fetch
Mimah97 Jun 30, 2026
a0da686
Merge pull request #453 from BABAT-CODE/feat/web-remove-mock-markets
Mimah97 Jun 30, 2026
bdf7f84
Merge branch 'dev' into feat/web-deposit-form-market-id-prop
Mimah97 Jun 30, 2026
6154556
Merge pull request #454 from BABAT-CODE/feat/web-deposit-form-market-…
Mimah97 Jun 30, 2026
50a6d0d
Merge branch 'dev' into feature/update-position-public-entry-371
Mimah97 Jun 30, 2026
989c083
Merge pull request #456 from driftsorbit/feature/update-position-publ…
Mimah97 Jun 30, 2026
dad70bc
Merge pull request #457 from priscaenoch/feature/310-313-fees-treasur…
Mimah97 Jun 30, 2026
a4198d0
Merge branch 'dev' into somzilla-issues
Mimah97 Jun 30, 2026
4b0f8d9
Merge pull request #458 from sommy92/somzilla-issues
Mimah97 Jun 30, 2026
d10d098
Merge branch 'dev' into feature/initialize-admin-validation-370
Mimah97 Jun 30, 2026
5dda81e
Merge pull request #459 from driftsorbit/feature/initialize-admin-val…
Mimah97 Jun 30, 2026
a28cfa0
Merge branch 'dev' into feature/storage-migration-guide-369
Mimah97 Jun 30, 2026
a38c2e7
Merge pull request #460 from driftsorbit/feature/storage-migration-gu…
Mimah97 Jun 30, 2026
ffcdf68
Merge branch 'dev' into somzilla_issues
Mimah97 Jun 30, 2026
65c2f4d
Merge pull request #461 from Chisom92/somzilla_issues
Mimah97 Jun 30, 2026
f545aaa
Merge pull request #462 from driftsorbit/feature/oracle-adapter-adr-368
Mimah97 Jun 30, 2026
7eee9f5
Merge branch 'dev' into feat/issues-336-339-trade-events-settlement-a…
Mimah97 Jun 30, 2026
d0554c5
Merge pull request #463 from marvelousufelix/feat/issues-336-339-trad…
Mimah97 Jun 30, 2026
0bacbec
Merge pull request #464 from chucksentertainment-hash/feat/issues-332…
Mimah97 Jun 30, 2026
c676b03
Merge branch 'dev' into Jepee_#344_#345_#346_#347
Mimah97 Jun 30, 2026
45c5eef
Merge pull request #465 from jpetee21-design/Jepee_#344_#345_#346_#347
Mimah97 Jun 30, 2026
e22aa35
Merge branch 'dev' into feature/issues-400-401-402-403
Mimah97 Jun 30, 2026
f2ebc8b
Merge pull request #466 from dominionvinson-maker/feature/issues-400-…
Mimah97 Jun 30, 2026
f316b37
Merge pull request #467 from CodeMasked/feat/ts-bindings-tooling
Mimah97 Jun 30, 2026
445fb81
Merge branch 'dev' into feat/tx-hash-explorer-link
Mimah97 Jun 30, 2026
131cf74
Merge pull request #468 from CodeMasked/feat/tx-hash-explorer-link
Mimah97 Jun 30, 2026
f09b2f9
Merge pull request #469 from CodeMasked/feat/freighter-error-handling
Mimah97 Jun 30, 2026
53dedf6
Merge branch 'dev' into feat/383-authorized-market-registry
Mimah97 Jun 30, 2026
7e3493e
Merge pull request #470 from soter-fashion/feat/383-authorized-market…
Mimah97 Jun 30, 2026
602ec09
Merge pull request #471 from CodeMasked/feat/bindings-ci-verify
Mimah97 Jun 30, 2026
23c05f9
Merge pull request #472 from soter-fashion/feat/382-outcome-token-sac…
Mimah97 Jun 30, 2026
1d82e2b
Merge pull request #473 from soter-fashion/feat/380-challenge-window-…
Mimah97 Jun 30, 2026
5cf06a4
Merge branch 'dev' into feat/381-slash-proposer-collateral
Mimah97 Jun 30, 2026
400abd2
Merge pull request #474 from soter-fashion/feat/381-slash-proposer-co…
Mimah97 Jun 30, 2026
6cd8679
Merge branch 'dev' into feature/issues-412-413-414
Mimah97 Jun 30, 2026
3632a5d
Merge pull request #475 from gidson5/feature/issues-412-413-414
Mimah97 Jun 30, 2026
266af28
Merge branch 'dev' into vatix
Mimah97 Jun 30, 2026
faa6b4d
Merge pull request #476 from Komelove/vatix
Mimah97 Jun 30, 2026
39dc465
Merge branch 'dev' into feat/close-market-to-deposits
Mimah97 Jun 30, 2026
fb5e734
Merge pull request #477 from minorkime-design/feat/close-market-to-de…
Mimah97 Jun 30, 2026
71f8e95
Merge branch 'dev' into feat/market-metadata-uri
Mimah97 Jun 30, 2026
1535752
Merge pull request #478 from minorkime-design/feat/market-metadata-uri
Mimah97 Jun 30, 2026
2dc6fa5
Merge pull request #479 from minorkime-design/feat/wire-collect-fee-c…
Mimah97 Jun 30, 2026
1a7c53e
Merge branch 'dev' into feat/add-get-position-view
Mimah97 Jun 30, 2026
d7c7316
Merge pull request #480 from minorkime-design/feat/add-get-position-view
Mimah97 Jun 30, 2026
2864968
feat: appeal round cap, proposer bonds, outcome-token merge-on-resolv…
Ndifreke000 Jul 25, 2026
8cbcff5
feat(market): compact Position struct layout (#482)
Ndifreke000 Jul 25, 2026
5be3319
feat(market): admin fee waiver list (#483) + oracle pubkey rotation (…
Ndifreke000 Jul 25, 2026
8afdbf2
feat(treasury): multi-token fee collection support (#484)
Ndifreke000 Jul 25, 2026
3e43d2a
Sanitize title length, batch settlement event, event versioning, depo…
Ndifreke000 Jul 25, 2026
7d8297c
Merge pull request #608 from christabel888/fix/issues-498-499-500-501
Mimah97 Jul 25, 2026
ae1558b
Merge branch 'dev' into fix/vatix-batch-1
Mimah97 Jul 25, 2026
325d2ad
Merge pull request #609 from Ndifreke000/fix/vatix-batch-1
Mimah97 Jul 25, 2026
d32f705
Merge branch 'dev' into fix/issues-490-491-492-493
Mimah97 Jul 25, 2026
bd12418
Merge pull request #607 from ndii-dev/fix/issues-490-491-492-493
Mimah97 Jul 25, 2026
230f68d
market: Ed25519 adapter fallback + signature hardening (#487, #488, #…
Ndifreke000 Jul 25, 2026
acf31ac
treasury: stakeholder fee distribution + fix broken market registry (…
Ndifreke000 Jul 25, 2026
da18bef
Merge branch 'dev' into fix/vatix-batch-2
yosemite01 Jul 25, 2026
9f5906b
feat: net position view, paginated settlement, fee-rate timelock, rej…
Genghis-codes Jul 25, 2026
1fc5b27
sign
Emeka000 Jul 25, 2026
b43d41b
Fix tsc errors: optional PositionPanel marketId, dotAll regex, broken…
Emeka000 Jul 25, 2026
0be5f9b
feat: Platform hardening: vatix-contract reliability pass 011
Pvsaint Jul 25, 2026
25487cd
Merge pull request #610 from yosemite01/fix/vatix-batch-2
Mimah97 Jul 25, 2026
351cb85
Merge pull request #611 from Genghis-codes/fix/issues-494-495-496-497
Mimah97 Jul 25, 2026
3e7ec58
Merge pull request #612 from Emeka000/stimulate
Mimah97 Jul 25, 2026
7e83140
Merge branch 'dev' into issues-15-17-20-24
Mimah97 Jul 25, 2026
092229f
Merge pull request #613 from Pvsaint/issues-15-17-20-24
Mimah97 Jul 25, 2026
06e2635
reliability: platform hardening passes 003, 005, 008, 012
Creed1759 Jul 25, 2026
a201ec1
fix: platform hardening reliability passes 001, 006, 009, 010
flavor365 Jul 26, 2026
b2b5dac
Merge pull request #614 from Creed1759/reliability/platform-hardening…
Mimah97 Jul 26, 2026
1890a37
Merge branch 'dev' into reliability/hardening-passes-001-006-009-010
Mimah97 Jul 26, 2026
755280b
Merge pull request #615 from flavor365/reliability/hardening-passes-0…
Mimah97 Jul 26, 2026
1ff7fbb
events
chidinma000 Jul 26, 2026
612868f
fix: issues 502, 503, 504, 513 - audit event, workspace CI, math corp…
vitalis200 Jul 26, 2026
ebe6fc6
fix(market): add pause/unpause entrypoints so the emergency halt actu…
Jul 27, 2026
3fc8c36
test(market): harden settlement guard with negative tests for non-Res…
Jul 27, 2026
84ef56d
fix(market): add missing set_resolution_contract admin entrypoint; do…
Jul 27, 2026
3e39eb5
fix(market): harden fee_rate_bps cap enforcement at set and execute time
Jul 27, 2026
ef68151
fix(market): make treasury-unset fee handling explicit and tested
OxDev-max Jul 27, 2026
4b800df
test(market): add table-driven invariant coverage for locked <= depos…
OxDev-max Jul 27, 2026
3e60b2d
test(market): confirm and cover canceled-market trade rejection
OxDev-max Jul 27, 2026
b294bbb
fix(market): return MarketNotFound for unknown market_id in position …
OxDev-max Jul 27, 2026
27c612b
feat(market): gate resolve_market on ResolutionContract when configured
levi0005 Jul 27, 2026
840ed63
test(treasury): add registry round-trip and unregistered-caller cover…
levi0005 Jul 27, 2026
e87fff9
test(outcome-token): add unmocked auth coverage for mint/burn market …
levi0005 Jul 27, 2026
f1b5d8d
test(market): fuzz withdraw fee rounding at edge amounts near zero an…
levi0005 Jul 27, 2026
e38f794
oracle: add domain separator and bound signature preimage length
dami-005 Jul 27, 2026
5d9b7ac
settlement: add explicit negative test for double-settle protection
dami-005 Jul 27, 2026
274dd2d
events: assert FeeCollected topics/data on the market withdraw path
dami-005 Jul 27, 2026
8106e8f
storage: add CI guard tying STORAGE_VERSION to the migration guide
dami-005 Jul 27, 2026
7c93df9
feat(web): map market ContractError codes to human-readable toasts
james2177 Jul 27, 2026
11ff8ca
ci: add dedicated build job for all contract crates
james2177 Jul 27, 2026
dbb275b
docs: add reviewer checklist for StorageKey table drift
james2177 Jul 27, 2026
0e5b1ff
feat(market): add cancel path for two-step admin transfer
james2177 Jul 27, 2026
5be7587
Merge pull request #616 from chidinma000/notes
Mimah97 Jul 27, 2026
70cbb07
Merge pull request #617 from vitalis200/fix
Mimah97 Jul 27, 2026
76749b0
Merge pull request #618 from Mac-5/fix/market-hardening-pause-settlem…
Mimah97 Jul 27, 2026
16d9c71
Merge branch 'dev' into fix/treasury-invariant-canceled-market-views
Mimah97 Jul 27, 2026
3bbc796
Merge pull request #619 from OxDev-max/fix/treasury-invariant-cancele…
Mimah97 Jul 27, 2026
f5ebb7d
Merge branch 'dev' into fix/resolution-treasury-outcometoken-fee-fuzz…
Mimah97 Jul 27, 2026
e873f39
Merge pull request #620 from levi0005/fix/resolution-treasury-outcome…
Mimah97 Jul 27, 2026
4913755
Merge pull request #621 from dami-005/fix/oracle-settlement-events-st…
Mimah97 Jul 27, 2026
1d42661
Merge pull request #622 from james2177/fix/error-mapper-ci-storage-do…
Mimah97 Jul 27, 2026
4b6b329
Fix fee waivers and tooling verification
Busiii-adetiba Jul 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env sh
# Run cargo fmt --check across the workspace before each commit.
# To skip (not recommended): git commit --no-verify
set -e

if ! cargo fmt --check 2>&1; then
echo ""
echo "pre-commit: cargo fmt check failed."
echo "Run 'cargo fmt' to fix formatting, then re-stage and commit."
exit 1
fi
258 changes: 247 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,265 @@ jobs:
ci:
name: Build and Test
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
targets: wasm32-unknown-unknown

- name: Cache dependencies
uses: Swatinem/rust-cache@v2
with:
workspaces: contracts/market

workspaces: . -> target

# Format check enforces the committed rustfmt configuration in
# contracts/market/rustfmt.toml. The file defines edition-aware settings
# used both locally and in CI, so contributors can reproduce the same
# formatting with `cd contracts/market && cargo fmt --check`.
# Cross-crate workspace compile check (#503): runs `cargo check` across
# every crate in the workspace (market, treasury, resolution,
# outcome-token) in one pass so a break in one crate can't slip through
# while another crate's individually-scoped steps stay green.
- name: Workspace compile check
run: cargo check --workspace --all-targets

- name: Format check
run: cd contracts/market && cargo fmt --check


# Clippy enforces lint hygiene across all contracts. Project-specific deny
# attributes are declared at the crate root (`lib.rs`) in each contract:
#
# #![deny(clippy::all)] – all default Clippy lints are hard errors
#
# The `-D warnings` flag here ensures any lint not covered by the crate
# attributes also fails the build. Use `#[allow(clippy::lint_name)]` at
# the call-site for any lint that is intentionally acceptable.
- name: Clippy
run: cd contracts/market && cargo clippy -- -D warnings

- name: Tests

# Runs all unit and integration tests for the market contract via `cargo test`.
# Tests are defined alongside the contract source under `contracts/market/src/`
# using Soroban SDK test utilities. A new test should be added for every
# public contract function to maintain coverage.
- name: Tests (market)
run: cd contracts/market && cargo test

- name: Build
run: cd contracts/market && cargo build --target wasm32-unknown-unknown

# Runs the workspace-level integration tests located in tests/.
# These tests exercise cross-contract behaviour (Market <-> Treasury) and the
# full prediction-market lifecycle (create -> deposit -> trade -> resolve -> settle)
# using live Soroban testutils environments — no storage mocking.
# They are compiled as integration test binaries (not inline unit tests), so
# `--tests` targets only files under tests/ and avoids re-running the unit
# tests already covered by the step above.
- name: Workspace integration tests
run: cargo test --workspace --tests

# Restore saved proptest regression cases from previous CI runs so that
# any previously-found failing inputs are always re-checked.
- name: Restore proptest regression corpus
uses: actions/cache@v4
with:
path: contracts/market/src/.proptest-regressions
key: proptest-regressions-${{ runner.os }}-${{ hashFiles('contracts/market/src/positions.rs') }}
restore-keys: proptest-regressions-${{ runner.os }}-

# Run the proptest fuzz suite with 2 000 cases per property in CI.
# Increase PROPTEST_CASES for deeper coverage in scheduled / nightly runs.
# Failing inputs are persisted to .proptest-regressions/ and cached above.
- name: Proptest fuzz (share and collateral math)
run: cd contracts/market && PROPTEST_CASES=2000 cargo test prop_ -- --nocapture

# Upload any new regression seeds discovered in this run so they are
# available to future runs even when the cache key changes.
- name: Upload proptest regressions
if: always()
uses: actions/upload-artifact@v4
with:
name: proptest-regressions
path: contracts/market/src/.proptest-regressions
if-no-files-found: ignore

# Build and test the Treasury contract.
- name: Tests (treasury)
run: |
cd contracts/treasury && cargo test
cargo test -p vatix-treasury-contract

# Build and test the Outcome Token contract.
- name: Tests (outcome-token)
run: |
cd contracts/outcome-token && cargo test
cargo test -p vatix-outcome-token-contract

# Build and test the Resolution contract.
- name: Tests (resolution)
run: |
cd contracts/resolution && cargo test
cargo test -p vatix-resolution-contract

# Compiles all contracts to WASM (wasm32-unknown-unknown) — the binary format
# required by the Stellar Soroban runtime.
- name: Build market contract
run: cd contracts/market && stellar contract build

# Build Treasury contract WASM.
- name: Build treasury contract
run: cd contracts/treasury && stellar contract build

# Build Outcome Token contract WASM.
- name: Build outcome-token contract
run: cd contracts/outcome-token && stellar contract build

# Build Resolution contract WASM.
- name: Build resolution contract
run: cd contracts/resolution && stellar contract build

# Verify all WASM artifacts were created at the expected paths
- name: Verify WASM artifacts
run: |
ls -lh target/wasm32v1-none/release/*.wasm
echo "WASM artifact size:"
du -h target/wasm32v1-none/release/*.wasm

# deploy.sh is a guard script that echoes deployment intent without
# performing a real on-chain deployment. Running it in CI verifies the
# script is executable and reachable, and serves as a placeholder for
# the full Soroban CLI deployment step once testnet credentials are
# available as repository secrets. When the real implementation lands,
# this step will build the WASM artefact, invoke `soroban contract deploy`,
# and capture the returned contract ID for downstream use.
#
# Purpose: This CI step ensures deploy.sh remains executable and reachable
# in the repository, preventing drift as new contributors join. Future
# maintainers can reference this step to understand the deployment flow
# and add the real implementation when credentials become available.
#
# To run locally: bash scripts/deploy.sh
# Real deployment requires SOROBAN_NETWORK and SOROBAN_ACCOUNT env vars.
- name: Deploy (dry-run guard)
run: bash scripts/deploy.sh

# deploy-testnet.sh builds the contract via `stellar contract build` and
# deploys it to the Stellar testnet. The WASM artefact is always located
# at the canonical output path: target/wasm32v1-none/release/*.wasm
#
# In CI (no TESTNET_SECRET_KEY): runs in guard mode — builds the contract,
# verifies the canonical artefact path, then exits 0 without deploying.
# When TESTNET_SECRET_KEY is set: performs a full build + deploy and
# exports the contract ID via $GITHUB_OUTPUT for downstream steps.
- name: Deploy testnet (guard)
run: bash scripts/deploy-testnet.sh

# Echo guard: this step runs invoke-example.sh, which currently only echoes
# the invocation intent without calling a live contract.
# What the real implementation should do:
# - Replace the echo with `stellar contract invoke` (or `soroban contract invoke`)
# pointed at a contract deployed in the Deploy testnet step above.
# - Pass CONTRACT_ID (captured from the deploy step) via an environment variable.
# - Assert the response matches the expected value to act as a smoke test.
# See scripts/README.md for the full tooling reference.
# The scripts README documents the intent of these "echo guard" scripts
# and provides guidance for maintainers on how to replace guards with
# real CI actions (credentials, expected outputs, and invocation examples).
- name: Invoke example (echo guard)
run: bash scripts/invoke-example.sh

build-contracts:
name: Build all contract crates
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown

- name: Cache dependencies
uses: Swatinem/rust-cache@v2
with:
workspaces: . -> target

# Focused compile check for every contract crate, run on every PR.
# Unlike the `ci` job's `stellar contract build` steps (which build
# release WASM artifacts as part of a longer pipeline), these steps
# are a fast, dedicated `cargo build -p <crate>` per crate so a
# compile error in any one contract fails CI red on its own, without
# depending on the rest of the test/lint pipeline succeeding first.
- name: Build market contract crate
run: cargo build -p vatix-market-contract

- name: Build treasury contract crate
run: cargo build -p vatix-treasury-contract

- name: Build resolution contract crate
run: cargo build -p vatix-resolution-contract

- name: Build outcome-token contract crate
run: cargo build -p vatix-outcome-token-contract

frontend:
name: Frontend (Next.js)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4

- uses: actions/setup-node@v4
with:
node-version: "22"
cache: "pnpm"

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown,wasm32v1-none

- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
workspaces: . -> target

- name: Install Stellar CLI
run: |
curl -L https://github.com/stellar/stellar-cli/releases/download/v21.4.0/stellar-cli-21.4.0-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv stellar /usr/local/bin/
stellar --version

- name: Install dependencies
run: pnpm install

- name: Generate TypeScript bindings
run: pnpm build:bindings

- name: Verify bindings output
run: |
test -f apps/web/lib/contracts/index.ts || (echo "ERROR: contracts/index.ts missing" && exit 1)
echo "Bindings output:"
ls -lh apps/web/lib/contracts/

# Fails the build if the bindings just generated above differ from what
# is committed in git. This catches drift where a contributor changed a
# contract's public interface (or the generator itself) without
# regenerating and committing the bindings under apps/web/lib/contracts/.
- name: Fail on stale committed bindings
run: |
if ! git diff --exit-code -- apps/web/lib/contracts; then
echo ""
echo "ERROR: Generated TypeScript bindings differ from what is committed."
echo "Run 'pnpm build:bindings' locally and commit the resulting changes"
echo "under apps/web/lib/contracts/."
exit 1
fi

- name: Lint web app
run: pnpm --filter web lint

- name: Build web app
run: pnpm --filter web build
68 changes: 43 additions & 25 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,25 +1,43 @@
# Local settings
.soroban
.stellar

# Rust
target/
Cargo.lock
**/*.rs.bk

# IDE
.vscode/
.idea/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Build artifacts
*.so
*.dylib
*.dll

contracts/*/test_snapshots
# Local settings
.soroban
.stellar

# Rust
target/
Cargo.lock
**/*.rs.bk

# IDE
.vscode/
.idea/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Build artifacts
*.so
*.dylib
*.dll

contracts/*/test_snapshots
/test_snapshots/

# Node / Next.js
node_modules/
.pnpm-store/
apps/web/.next/
apps/web/out/
dist/
apps/web/tsconfig.tsbuildinfo

# Generated issue exports (regenerate with pnpm issues:generate)
scripts/issues/generated/

# Personal notes
vrickish.md

# Somzilla issues tracking
somzilla.md
Loading