Skip to content

Release: develop -> main#3268

Merged
TaprootFreak merged 12 commits intomainfrom
develop
Feb 26, 2026
Merged

Release: develop -> main#3268
TaprootFreak merged 12 commits intomainfrom
develop

Conversation

@github-actions
Copy link

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

Yannick1712 and others added 10 commits February 26, 2026 10:32
* feat: add NanoBot container app configuration

Add Bicep parameter file and deploy script entry for NanoBot (nbt) on production.

* feat: NanoBot in private frontdoor setup
* fix: block self-service refund for RealUnit wallet users

RealUnit wallet users must process refunds via support instead of
self-service. Added wallet relation loading and RealUnit check to
both GET and PUT refund endpoints.

* fix: update basic-ftp to 5.2.0 to resolve critical path traversal vulnerability

Fixes CVE in basic-ftp <5.2.0 (GHSA-5rq4-664w-9x2c).
* feat: add sanctions guard for KYC Level 30 and 50

Block KYC level upgrades when userData has open, unevaluated sanctioned
name checks (riskStatus=SANCTIONED, riskEvaluation=null).

Level 30: ident data is saved but kycLevel upgrade is withheld until
name check is evaluated. Level 50: DFX_APPROVAL step is sent back to
manual review with OPEN_SANCTIONED_NAME_CHECK error.

* fix: prettier formatting
* Enforce trading limits for RealUnit sell transactions

The RealUnit limit bypass in getLimits() now only applies to buy
transactions (fiat→REALU). Sell transactions (REALU→fiat) fall through
to the normal KYC-based limit logic so users see correct maxVolume in
the quote phase.

* chore: improve condition.

---------

Co-authored-by: TuanLamNguyen <xnguyen.lam@gmail.com>
* fix: persist feeAmountInChf on transaction after fee calculation

Update BuyCryptoPreparationService and BuyFiatPreparationService to
write feeAmountInChf to the transaction after setFeeAndFiatReference
and setPaymentLinkPayment, ensuring the value is set even when fees
are calculated after the AML check.

* fix: remove feeAmountInChf from AML postProcessing

The fee is not yet calculated at the time of AML check, so writing
it here resulted in null values. The fee is now persisted in the
preparation services where it is actually computed.
* fix: resolve circular dependency in NameCheckService

Add forwardRef() for UserDataService injection in NameCheckService
to break the circular dependency chain introduced by #3275:
KycService → NameCheckService → UserDataService → KycService

Without forwardRef, NestJS cannot resolve this indirect circular
dependency on server startup, causing the DEV API to crash.

* fix: prettier formatting
@DFXswiss DFXswiss deleted a comment from github-actions bot Feb 26, 2026
…3280)

getNativeCoinBalanceForAddress was not protected by error handling,
unlike getTokenBalances. When a blockchain node becomes unresponsive
(e.g. Firo RPC timeout), the unhandled error propagates through
Promise.all and crashes the entire saveTradingLog cron job, stopping
all FinancialDataLog and FinancialChangesLog entries.
@TaprootFreak TaprootFreak merged commit 230cd36 into main Feb 26, 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.

5 participants