Skip to content

Release: develop -> main#3676

Merged
TaprootFreak merged 6 commits intomainfrom
develop
May 7, 2026
Merged

Release: develop -> main#3676
TaprootFreak merged 6 commits intomainfrom
develop

Conversation

@github-actions
Copy link
Copy Markdown

@github-actions github-actions Bot commented May 5, 2026

Automatic Release PR

This PR was automatically created after changes were pushed to develop.

Commits: 1 new commit(s)

Checklist

  • Review all changes
  • Verify CI passes
  • Approve and merge when ready for production

joshuakrueger-dfx and others added 2 commits May 5, 2026 15:44
* feat(payment-link): add urble wallet app (BTC/Cardano)

* feat(payment-link): restrict urble assets to BTC, ADA, dEURO, USDT, USDC
A single failing token (e.g. broken decimals() call) in getTokenBalances
could abort the entire loop, preventing balance updates for all tokens
on that chain. Wrap each token iteration in try/catch so other tokens
continue processing when one fails.
TaprootFreak and others added 4 commits May 6, 2026 15:55
* fix: treat Scrypt WS Connection closed as transient

The Scrypt WebSocket adapter rejects all pending requests with
'Connection closed' when the WS disconnects. Previously this surfaced as
a permanent OrderFailedException in the liquidity management pipeline,
causing the rule to be paused even though the underlying order on Scrypt
was still alive (no fill, no money moved).

Two changes:

- ScryptWebSocketConnection: extend the 'fetchAll' retry pattern to also
  cover 'fetch'. Refactor the retry logic into a shared helper so any
  future fetch-style call gets the same treatment.

- ScryptAdapter.checkTradeCompletion: when the underlying error is a
  transient WS error (Connection closed / unknown reqid), return false
  instead of throwing OrderFailedException, so the order stays
  IN_PROGRESS and is retried on the next cron tick.

Reproduced via pipeline 60738 (rule 313, Scrypt/EUR redundancy): order
122805 went through 5 ClOrdIds in 3 minutes before WS dropped during a
check, was wrongly marked Failed; balance audit confirmed the EUR were
never spent.

* refactor: share transient-ws-error detection between WS layer and adapter

Centralize the transient WS error markers ('Connection closed' /
'unknown reqid') and a shared isTransientWsError helper in
scrypt-websocket-connection. Both retryOnTransientWsError and the
ScryptAdapter check now use the same function, eliminating the
duplicated string list and aligning the case-insensitive matching with
isBalanceTooLowError elsewhere in the adapter.
…ent (#3652)

The controller advertised KYC Level 20 while the service enforces Level 30,
causing confusion for users on Level 20-29 who got 403/400 despite the docs.
Updates the operation description and 400-response description to reflect
the actual Level 30 requirement.

Closes #3649
* feat: improved mail branding

* feat: simplified wallet lookup

* fix: after merge cleanup
@davidleomay
Copy link
Copy Markdown
Member

Fixes #3595

@TaprootFreak TaprootFreak merged commit 5aebbfc into main May 7, 2026
12 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.

3 participants