Skip to content

Conversation

@davidleomay
Copy link
Member

Release Checklist

Pre-Release

  • Check migrations
    • No database related infos (sqldb-xxx)
    • Impact on GS (new/removed columns)
  • Check for linter errors (in PR)
  • Test basic user operations (on DFX services)
    • Login/logout
    • Buy/sell payment request
    • KYC page

Post-Release

  • Test basic user operations
  • Monitor application insights log

davidleomay and others added 6 commits January 15, 2026 17:05
Implement full trading support for Scrypt exchange with the same
rules as Binance/Kraken - using LIMIT orders with dynamic price tracking.

ScryptWebSocketConnection:
- Add MessageTypes: NEW_ORDER_SINGLE, EXECUTION_REPORT
- Add MessageTypes: MARKET_DATA_SNAPSHOT, SECURITY
- Add MessageTypes: ORDER_CANCEL_REQUEST, ORDER_CANCEL_REPLACE_REQUEST

ScryptService:
- Add trading enums: ScryptOrderStatus, ScryptOrderSide, ScryptOrderType
- Add fetchOrderBook() - get orderbook with bids/offers
- Add getCurrentPrice() - get best bid/ask price
- Add getSecurityInfo() / getMinTradeAmount() - dynamic min amounts
- Add placeOrder() with price parameter, default to LIMIT
- Add sell() - places LIMIT order at current market price
- Add cancelOrder() - cancel existing order
- Add editOrder() - update order price (OrderCancelReplaceRequest)
- Add getOrderStatus() with price field

ScryptAdapter:
- Add SELL command with tradeAsset parameter
- Add checkSellCompletion() with Binance-like price tracking:
  - NEW/PARTIALLY_FILLED: compare price, editOrder() if changed
  - CANCELLED: auto-restart with remaining if >= minAmount
  - FILLED: aggregate output from all correlation IDs
- Add aggregateSellOutput() for multi-order fills
- Add verbose log when order price is unchanged (like Binance)
- Parallelize aggregateSellOutput() with Promise.allSettled()
- Add failure logging and error handling for partial fetch failures
- Throw OrderFailedException if no orders can be fetched
- Add ScryptTradingActions migration for rules 312 (CHF) and 313 (EUR)
- Set maximal=1000 to trigger automatic USDT conversion
@github-actions
Copy link

github-actions bot commented Jan 15, 2026

⚠️ Non-Conventional Commits (1)

The following commits don't follow conventional commit format:

  • ee91e25 Merge remote-tracking branch 'origin/feature/scrypt-limit-orders-price-tracking' into feat/yapeal-script-tx

Expected: type(scope): description
Types: feat, fix, refactor, test, ci, docs, chore, perf, style, build, revert

- Implement isBalanceTooLowError with common balance error messages
- Add tolerance for float comparison in price tracking to avoid
  unnecessary order updates due to rounding errors
@TaprootFreak
Copy link
Collaborator

Code Review: Inkonsistente Enum-Verwendung

In scrypt.service.ts wird an zwei Stellen ein String-Literal statt des definierten Enums verwendet:

Zeile 227 und 246:

t.TransactionType === 'Withdrawal'  // String-Literal

Sollte sein:

t.TransactionType === ScryptTransactionType.WITHDRAWAL  // Enum

Dies ist inkonsistent mit dem Rest des Codes, wo Enums korrekt verwendet werden (z.B. ScryptTransactionStatus.REJECTED in Zeile 232).

Herkunft: Ursprünglich aus PR #2569 (Scrypt Integration) von @TaprootFreak

Risiko: Gering - funktioniert aktuell, aber fragil bei API-Änderungen.

Empfehlung: Fix vor Merge oder als Follow-up.

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.

3 participants