Skip to content

feat: Betfair and Smarkets trading, Myriad AMM, Gemini combos, Novig parlay RFQ, Azuro combos and claims - #43

Merged
YukiC0804 merged 14 commits into
mainfrom
sp/venue-followups
Oct 25, 2026
Merged

YukiC0804 merged 14 commits into
mainfrom
sp/venue-followups

Conversation

@YukiC0804

Copy link
Copy Markdown
Collaborator

Follow-ups to 0.10.0, released as 0.11.0. Every venue now has order entry.

  • Betfair trading (BetfairTrading, BetfairUserStream): Betting API orders (limit with LAPSE / PERSIST / MARKET_ON_CLOSE, Betfair's fill-or-kill, IOC as place-then-cancel), cancel / replace / update, current and cleared orders, P&L, funds, and the Exchange Stream order stream. Back = buy YES, lay = sell YES, ladder and minimum-stake checks as for Matchbook. Bets need a live app key.
  • Smarkets trading (SmarketsTrading): session login, orders (good-til-halted, keep-in-play, IOC, FOK via minimum accepted quantity), cancel and cancel-all, orders, fills from the statement, positions netted from orders, balance, fee estimate. Polled; Smarkets has no account stream.
  • Myriad AMM trading: taker market orders on pool markets with a worst-price bound written into the contract call (min shares out / max shares in), balance / allowance / holdings checks, simulation before sending, fills from the receipt's MarketActionTx, approve_amm(), redeem_amm().
  • Gemini combos: fetch_combos, fetch_combo, create_combo, and GeminiRfqStream for the maker side of Gemini's combo auction (submit / withdraw / confirm). Gemini has no API for opening RFQs or accepting quotes; those raise NotSupported quoting Gemini.
  • Novig parlay RFQ (NovigPricer, NovigPricerStream, NovigExecutionFeed): the liquidity-provider side over the websocket or webhooks (BLAKE3 X-Novig-Signature), last-look confirms, Novig's confirm-rate rule, executions and collateral. OAuth client credentials (NOVIG_RFQ_*).
  • Azuro combos and claims: fetch_combo_quote / create_combo_order with a minimum total-odds bound and Azuro's betslip rules; fetch_redeemable_bets and claim_winnings / redeem, batched withdrawPayouts with each claim simulated first. Default Polygon RPC moved to publicnode (polygon-rpc.com now refuses keyless calls).

Built from each venue's documentation; signing and encodings are checked against published or independently produced vectors, and claim calldata matches a real Polygon claim. Nothing was sent against a live account.

Tests: 3742 passed, 4 skipped on the Rust core; 3246 passed with SYNPATH_PURE_PYTHON=1. cargo fmt, clippy and the sdist build pass.

🤖 Generated with Claude Code

Yuki Chu and others added 14 commits October 25, 2026 11:04
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	README.md
#	docs/capabilities.md
#	docs/trading.md
#	synpath/__init__.py
#	synpath/client.py
#	synpath/engine/__main__.py
#	synpath/server/serve.py
#	synpath/trading/__init__.py
#	synpath/trading/credentials.py
# Conflicts:
#	docs/capabilities.md
# Conflicts:
#	docs/capabilities.md
#	synpath/__init__.py
#	synpath/ws/__init__.py
# Conflicts:
#	docs/capabilities.md
#	docs/trading.md
README: Novig's parlay RFQ is now supported for liquidity providers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@YukiC0804
YukiC0804 merged commit ab7c64b into main Oct 25, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant