tolerate nullable payment methods

OmarHatem committed Nov 2, 2025 at 05:54 UTC dd772d84f976d20fd504d492c51a131bb83983d4
3 files changed +14 -15
cw_bitcoin/pubspec.lock
+2 -2
@@ -1159,8 +1159,8 @@ packages:
1159 dependency: "direct main"
1160 description:
1161 path: "."
1162 - ref: "59b3ceec158d3393b20d0c596cab2abcc62ac8e4"
1163 - resolved-ref: "59b3ceec158d3393b20d0c596cab2abcc62ac8e4"
1162 + ref: d1242cea90f84b00200e7bcab914a5af750e23fb
1163 + resolved-ref: d1242cea90f84b00200e7bcab914a5af750e23fb
1164 url: "https://github.com/cake-tech/trezor_connect"
1165 source: git
1166 version: "0.0.1"
lib/cake_pay/src/models/cake_pay_order.dart
+10 -10
@@ -124,11 +124,11 @@ class OrderCard {
124 }
125
126 class PaymentData {
127 - final CryptoPaymentData btc;
128 - final CryptoPaymentData btc_ln;
129 - final CryptoPaymentData xmr;
130 - final CryptoPaymentData ltc;
131 - final CryptoPaymentData ltc_mweb;
127 + final CryptoPaymentData? btc;
128 + final CryptoPaymentData? btc_ln;
129 + final CryptoPaymentData? xmr;
130 + final CryptoPaymentData? ltc;
131 + final CryptoPaymentData? ltc_mweb;
132 final DateTime invoiceTime;
133 final DateTime expirationTime;
134 final int? commission;
@@ -146,11 +146,11 @@ class PaymentData {
146
147 factory PaymentData.fromMap(Map<String, dynamic> map) {
148 return PaymentData(
149 - btc: CryptoPaymentData.fromMap(map['BTC'] as Map<String, dynamic>),
150 - btc_ln: CryptoPaymentData.fromMap(map['BTC_LN'] as Map<String, dynamic>),
151 - xmr: CryptoPaymentData.fromMap(map['XMR'] as Map<String, dynamic>),
152 - ltc: CryptoPaymentData.fromMap(map['LTC'] as Map<String, dynamic>),
153 - ltc_mweb: CryptoPaymentData.fromMap(map['LTC_MWEB'] as Map<String, dynamic>),
149 + btc: map['BTC'] != null ? CryptoPaymentData.fromMap(map['BTC'] as Map<String, dynamic>) : null,
150 + btc_ln: map['BTC_LN'] != null ? CryptoPaymentData.fromMap(map['BTC_LN'] as Map<String, dynamic>) : null,
151 + xmr: map['XMR'] != null ? CryptoPaymentData.fromMap(map['XMR'] as Map<String, dynamic>) : null,
152 + ltc: map['LTC'] != null ? CryptoPaymentData.fromMap(map['LTC'] as Map<String, dynamic>) : null,
153 + ltc_mweb: map['LTC_MWEB'] != null ? CryptoPaymentData.fromMap(map['LTC_MWEB'] as Map<String, dynamic>) : null,
154 invoiceTime: DateTime.fromMillisecondsSinceEpoch(map['invoice_time'] as int),
155 expirationTime: DateTime.fromMillisecondsSinceEpoch(map['expiration_time'] as int),
156 commission: map['commission'] as int?,
lib/view_model/cake_pay/cake_pay_buy_card_view_model.dart
+2 -3
@@ -1,6 +1,5 @@
1 import 'dart:async';
2
3 -import 'package:cake_wallet/buy/buy_provider_description.dart';
3 import 'package:cake_wallet/order/order_provider_description.dart';
4 import 'package:cake_wallet/order/order.dart';
5 import 'package:cake_wallet/order/order_source_description.dart';
@@ -170,10 +169,10 @@ abstract class CakePayBuyCardViewModelBase with Store {
169 from: CakePayOrder.getCurrencyCodeFromPaymentMethod(selectedPaymentMethod!),
170 to: order!.fiatCurrencyCode,
171 createdAt: DateTime.now(),
173 - amount: paymentData.amount ?? '',
172 + amount: paymentData.amount,
173 receiveAmount: order!.totalReceiveAmount,
174 quantity: order!.quantity.toString(),
176 - receiveAddress: paymentData.address ?? '',
175 + receiveAddress: paymentData.address,
176 source: OrderSourceDescription.order,
177 giftCardProvider: OrderProviderDescription.cakePay,
178 walletId: sendViewModel.wallet.id);