diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 0f54a46..0a7003b 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -520,6 +520,5 @@ "p2pkErrorInvalidNsec": "Ungültiger nsec", "p2pkErrorKeyAlreadyExists": "Dieser Schlüssel existiert bereits", "p2pkErrorKeyNotFound": "Schlüssel nicht gefunden", - "p2pkErrorCannotDeletePrimary": "Primärschlüssel kann nicht gelöscht werden", - "p2pkSendComingSoon": "Demnächst verfügbar" + "p2pkErrorCannotDeletePrimary": "Primärschlüssel kann nicht gelöscht werden" } diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index f8b14f7..c860d20 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -401,6 +401,5 @@ "p2pkErrorInvalidNsec": "Invalid nsec", "p2pkErrorKeyAlreadyExists": "This key already exists", "p2pkErrorKeyNotFound": "Key not found", - "p2pkErrorCannotDeletePrimary": "Cannot delete primary key", - "p2pkSendComingSoon": "Coming soon" + "p2pkErrorCannotDeletePrimary": "Cannot delete primary key" } diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 4972f8a..a28e53a 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -521,6 +521,5 @@ "p2pkErrorInvalidNsec": "nsec inválido", "p2pkErrorKeyAlreadyExists": "Esta clave ya existe", "p2pkErrorKeyNotFound": "Clave no encontrada", - "p2pkErrorCannotDeletePrimary": "No se puede eliminar la clave principal", - "p2pkSendComingSoon": "Disponible próximamente" + "p2pkErrorCannotDeletePrimary": "No se puede eliminar la clave principal" } diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index bcd3f03..e718a5b 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -520,6 +520,5 @@ "p2pkErrorInvalidNsec": "nsec invalide", "p2pkErrorKeyAlreadyExists": "Cette clé existe déjà", "p2pkErrorKeyNotFound": "Clé non trouvée", - "p2pkErrorCannotDeletePrimary": "Impossible de supprimer la clé principale", - "p2pkSendComingSoon": "Bientôt disponible" + "p2pkErrorCannotDeletePrimary": "Impossible de supprimer la clé principale" } diff --git a/lib/l10n/app_it.arb b/lib/l10n/app_it.arb index d12926a..9dda630 100644 --- a/lib/l10n/app_it.arb +++ b/lib/l10n/app_it.arb @@ -520,6 +520,5 @@ "p2pkErrorInvalidNsec": "nsec non valido", "p2pkErrorKeyAlreadyExists": "Questa chiave esiste già", "p2pkErrorKeyNotFound": "Chiave non trovata", - "p2pkErrorCannotDeletePrimary": "Impossibile eliminare la chiave principale", - "p2pkSendComingSoon": "Disponibile prossimamente" + "p2pkErrorCannotDeletePrimary": "Impossibile eliminare la chiave principale" } diff --git a/lib/l10n/app_ja.arb b/lib/l10n/app_ja.arb index 9aea3b9..95c447a 100644 --- a/lib/l10n/app_ja.arb +++ b/lib/l10n/app_ja.arb @@ -520,6 +520,5 @@ "p2pkErrorInvalidNsec": "無効なnsec", "p2pkErrorKeyAlreadyExists": "この鍵は既に存在します", "p2pkErrorKeyNotFound": "鍵が見つかりません", - "p2pkErrorCannotDeletePrimary": "プライマリ鍵は削除できません", - "p2pkSendComingSoon": "近日公開" + "p2pkErrorCannotDeletePrimary": "プライマリ鍵は削除できません" } diff --git a/lib/l10n/app_ko.arb b/lib/l10n/app_ko.arb index 8d4788a..d36a117 100644 --- a/lib/l10n/app_ko.arb +++ b/lib/l10n/app_ko.arb @@ -520,6 +520,5 @@ "p2pkErrorInvalidNsec": "유효하지 않은 nsec", "p2pkErrorKeyAlreadyExists": "이 키는 이미 존재합니다", "p2pkErrorKeyNotFound": "키를 찾을 수 없습니다", - "p2pkErrorCannotDeletePrimary": "기본 키는 삭제할 수 없습니다", - "p2pkSendComingSoon": "곧 출시 예정" + "p2pkErrorCannotDeletePrimary": "기본 키는 삭제할 수 없습니다" } diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 8f05b5b..52cc8f5 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -1721,6 +1721,12 @@ abstract class L10n { /// **'Todo'** String get selectAll; + /// No description provided for @deselectAll. + /// + /// In es, this message translates to: + /// **'Ninguno'** + String get deselectAll; + /// No description provided for @selectNotesToSend. /// /// In es, this message translates to: @@ -2140,12 +2146,6 @@ abstract class L10n { /// In es, this message translates to: /// **'No se puede eliminar la clave principal'** String get p2pkErrorCannotDeletePrimary; - - /// No description provided for @p2pkSendComingSoon. - /// - /// In es, this message translates to: - /// **'Disponible próximamente'** - String get p2pkSendComingSoon; } class _L10nDelegate extends LocalizationsDelegate { diff --git a/lib/l10n/app_localizations_de.dart b/lib/l10n/app_localizations_de.dart index 6bd8d2d..fb313df 100644 --- a/lib/l10n/app_localizations_de.dart +++ b/lib/l10n/app_localizations_de.dart @@ -854,6 +854,9 @@ class L10nDe extends L10n { @override String get selectAll => 'Alle'; + @override + String get deselectAll => 'Keine'; + @override String get selectNotesToSend => 'Wähle die zu sendenden Notizen:'; @@ -1091,7 +1094,4 @@ class L10nDe extends L10n { @override String get p2pkErrorCannotDeletePrimary => 'Primärschlüssel kann nicht gelöscht werden'; - - @override - String get p2pkSendComingSoon => 'Demnächst verfügbar'; } diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index faf9839..0e0435a 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -854,6 +854,9 @@ class L10nEn extends L10n { @override String get selectAll => 'All'; + @override + String get deselectAll => 'None'; + @override String get selectNotesToSend => 'Select the notes you want to send:'; @@ -1091,7 +1094,4 @@ class L10nEn extends L10n { @override String get p2pkErrorCannotDeletePrimary => 'Cannot delete primary key'; - - @override - String get p2pkSendComingSoon => 'Coming soon'; } diff --git a/lib/l10n/app_localizations_es.dart b/lib/l10n/app_localizations_es.dart index f6f9eb9..c561445 100644 --- a/lib/l10n/app_localizations_es.dart +++ b/lib/l10n/app_localizations_es.dart @@ -854,6 +854,9 @@ class L10nEs extends L10n { @override String get selectAll => 'Todo'; + @override + String get deselectAll => 'Ninguno'; + @override String get selectNotesToSend => 'Selecciona las notas que deseas enviar:'; @@ -1091,7 +1094,4 @@ class L10nEs extends L10n { @override String get p2pkErrorCannotDeletePrimary => 'No se puede eliminar la clave principal'; - - @override - String get p2pkSendComingSoon => 'Disponible próximamente'; } diff --git a/lib/l10n/app_localizations_fr.dart b/lib/l10n/app_localizations_fr.dart index 12b054d..0ed312e 100644 --- a/lib/l10n/app_localizations_fr.dart +++ b/lib/l10n/app_localizations_fr.dart @@ -854,6 +854,9 @@ class L10nFr extends L10n { @override String get selectAll => 'Tout'; + @override + String get deselectAll => 'Aucun'; + @override String get selectNotesToSend => 'Sélectionnez les notes à envoyer :'; @@ -1091,7 +1094,4 @@ class L10nFr extends L10n { @override String get p2pkErrorCannotDeletePrimary => 'Impossible de supprimer la clé principale'; - - @override - String get p2pkSendComingSoon => 'Bientôt disponible'; } diff --git a/lib/l10n/app_localizations_it.dart b/lib/l10n/app_localizations_it.dart index 383bbc8..d3c4e6b 100644 --- a/lib/l10n/app_localizations_it.dart +++ b/lib/l10n/app_localizations_it.dart @@ -854,6 +854,9 @@ class L10nIt extends L10n { @override String get selectAll => 'Tutto'; + @override + String get deselectAll => 'Nessuno'; + @override String get selectNotesToSend => 'Seleziona le note da inviare:'; @@ -1091,7 +1094,4 @@ class L10nIt extends L10n { @override String get p2pkErrorCannotDeletePrimary => 'Impossibile eliminare la chiave principale'; - - @override - String get p2pkSendComingSoon => 'Disponibile prossimamente'; } diff --git a/lib/l10n/app_localizations_ja.dart b/lib/l10n/app_localizations_ja.dart index c4432d6..1dab63d 100644 --- a/lib/l10n/app_localizations_ja.dart +++ b/lib/l10n/app_localizations_ja.dart @@ -854,6 +854,9 @@ class L10nJa extends L10n { @override String get selectAll => 'すべて'; + @override + String get deselectAll => 'なし'; + @override String get selectNotesToSend => '送信するノートを選択:'; @@ -1091,7 +1094,4 @@ class L10nJa extends L10n { @override String get p2pkErrorCannotDeletePrimary => 'プライマリ鍵は削除できません'; - - @override - String get p2pkSendComingSoon => '近日公開'; } diff --git a/lib/l10n/app_localizations_ko.dart b/lib/l10n/app_localizations_ko.dart index 70914eb..d13bec4 100644 --- a/lib/l10n/app_localizations_ko.dart +++ b/lib/l10n/app_localizations_ko.dart @@ -854,6 +854,9 @@ class L10nKo extends L10n { @override String get selectAll => '전체'; + @override + String get deselectAll => '없음'; + @override String get selectNotesToSend => '보낼 노트를 선택하세요:'; @@ -1091,7 +1094,4 @@ class L10nKo extends L10n { @override String get p2pkErrorCannotDeletePrimary => '기본 키는 삭제할 수 없습니다'; - - @override - String get p2pkSendComingSoon => '곧 출시 예정'; } diff --git a/lib/l10n/app_localizations_pt.dart b/lib/l10n/app_localizations_pt.dart index f758393..56f2971 100644 --- a/lib/l10n/app_localizations_pt.dart +++ b/lib/l10n/app_localizations_pt.dart @@ -854,6 +854,9 @@ class L10nPt extends L10n { @override String get selectAll => 'Tudo'; + @override + String get deselectAll => 'Nenhum'; + @override String get selectNotesToSend => 'Selecione as notas que deseja enviar:'; @@ -1091,7 +1094,4 @@ class L10nPt extends L10n { @override String get p2pkErrorCannotDeletePrimary => 'Não é possível excluir a chave principal'; - - @override - String get p2pkSendComingSoon => 'Em breve disponível'; } diff --git a/lib/l10n/app_localizations_ru.dart b/lib/l10n/app_localizations_ru.dart index e2540d2..a8f9735 100644 --- a/lib/l10n/app_localizations_ru.dart +++ b/lib/l10n/app_localizations_ru.dart @@ -854,6 +854,9 @@ class L10nRu extends L10n { @override String get selectAll => 'Все'; + @override + String get deselectAll => 'Ничего'; + @override String get selectNotesToSend => 'Выберите заметки для отправки:'; @@ -1091,7 +1094,4 @@ class L10nRu extends L10n { @override String get p2pkErrorCannotDeletePrimary => 'Невозможно удалить основной ключ'; - - @override - String get p2pkSendComingSoon => 'Скоро будет доступно'; } diff --git a/lib/l10n/app_localizations_sw.dart b/lib/l10n/app_localizations_sw.dart index 3c45c27..ada93e7 100644 --- a/lib/l10n/app_localizations_sw.dart +++ b/lib/l10n/app_localizations_sw.dart @@ -854,6 +854,9 @@ class L10nSw extends L10n { @override String get selectAll => 'Zote'; + @override + String get deselectAll => 'Hakuna'; + @override String get selectNotesToSend => 'Chagua noti unazotaka kutuma:'; @@ -1091,7 +1094,4 @@ class L10nSw extends L10n { @override String get p2pkErrorCannotDeletePrimary => 'Haiwezekani kufuta ufunguo mkuu'; - - @override - String get p2pkSendComingSoon => 'Inakuja hivi karibuni'; } diff --git a/lib/l10n/app_localizations_zh.dart b/lib/l10n/app_localizations_zh.dart index 0a52474..8a3406e 100644 --- a/lib/l10n/app_localizations_zh.dart +++ b/lib/l10n/app_localizations_zh.dart @@ -854,6 +854,9 @@ class L10nZh extends L10n { @override String get selectAll => '全部'; + @override + String get deselectAll => '无'; + @override String get selectNotesToSend => '选择要发送的票据:'; @@ -1091,7 +1094,4 @@ class L10nZh extends L10n { @override String get p2pkErrorCannotDeletePrimary => '无法删除主密钥'; - - @override - String get p2pkSendComingSoon => '即将推出'; } diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb index ecfb182..db189d7 100644 --- a/lib/l10n/app_pt.arb +++ b/lib/l10n/app_pt.arb @@ -520,6 +520,5 @@ "p2pkErrorInvalidNsec": "nsec inválido", "p2pkErrorKeyAlreadyExists": "Esta chave já existe", "p2pkErrorKeyNotFound": "Chave não encontrada", - "p2pkErrorCannotDeletePrimary": "Não é possível excluir a chave principal", - "p2pkSendComingSoon": "Em breve disponível" + "p2pkErrorCannotDeletePrimary": "Não é possível excluir a chave principal" } diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index 3d6f2fc..57fa79e 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -520,6 +520,5 @@ "p2pkErrorInvalidNsec": "Недействительный nsec", "p2pkErrorKeyAlreadyExists": "Этот ключ уже существует", "p2pkErrorKeyNotFound": "Ключ не найден", - "p2pkErrorCannotDeletePrimary": "Невозможно удалить основной ключ", - "p2pkSendComingSoon": "Скоро будет доступно" + "p2pkErrorCannotDeletePrimary": "Невозможно удалить основной ключ" } diff --git a/lib/l10n/app_sw.arb b/lib/l10n/app_sw.arb index bf752b9..11dfff1 100644 --- a/lib/l10n/app_sw.arb +++ b/lib/l10n/app_sw.arb @@ -520,6 +520,5 @@ "p2pkErrorInvalidNsec": "nsec batili", "p2pkErrorKeyAlreadyExists": "Ufunguo huu tayari upo", "p2pkErrorKeyNotFound": "Ufunguo haujapatikana", - "p2pkErrorCannotDeletePrimary": "Haiwezekani kufuta ufunguo mkuu", - "p2pkSendComingSoon": "Inakuja hivi karibuni" + "p2pkErrorCannotDeletePrimary": "Haiwezekani kufuta ufunguo mkuu" } diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index c5697dd..c2e7514 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -520,6 +520,5 @@ "p2pkErrorInvalidNsec": "无效的nsec", "p2pkErrorKeyAlreadyExists": "此密钥已存在", "p2pkErrorKeyNotFound": "未找到密钥", - "p2pkErrorCannotDeletePrimary": "无法删除主密钥", - "p2pkSendComingSoon": "即将推出" + "p2pkErrorCannotDeletePrimary": "无法删除主密钥" } diff --git a/lib/providers/wallet_provider.dart b/lib/providers/wallet_provider.dart index 6f206ef..884369b 100644 --- a/lib/providers/wallet_provider.dart +++ b/lib/providers/wallet_provider.dart @@ -967,11 +967,12 @@ class WalletProvider extends ChangeNotifier { } /// Prepara un envío P2PK (bloqueado a una clave pública). + /// includeFee: true asegura que se reserven proofs para cubrir el swap fee (CDK 0.15+). Future prepareSendP2pk(BigInt amount, String pubkey) async { final wallet = await getActiveWallet(); return await wallet.prepareSend( amount: amount, - opts: SendOptions(pubkey: pubkey), + opts: SendOptions(pubkey: pubkey, includeFee: true), ); } @@ -1042,79 +1043,15 @@ class WalletProvider extends ChangeNotifier { return token; } - /// Verifica si el mint activo soporta P2PK sin el bug de fees. - /// Bug CDK: prepare_send con P2PK (force_swap=true) no reserva proofs - /// para el swap fee. Solo mints con ppk=0 funcionan correctamente. - /// Ver P2PK_SEND_BUG.md para análisis completo. - Future _checkP2pkMintCompatibility() async { - final mintUrl = _activeMintUrl!; - final unit = _activeUnit; - final ppk = await KeysetDebug.getInputFeePpk(mintUrl, unit); - - debugPrint('[P2PK] mintUrl=$mintUrl, unit=$unit, ppk=$ppk'); - - if (ppk > 0) { - throw Exception( - 'P2PK no disponible en este mint. ' - 'El mint $mintUrl cobra input fees (ppk=$ppk) y CDK tiene un bug ' - 'que impide P2PK sends en mints con fees. ' - 'Usa un mint con ppk=0 (ej: mint.cubabitcoin.org).', - ); - } - } - /// Envía tokens P2PK (bloqueados a una clave pública). - /// Solo funciona en mints con ppk=0 debido a bug en CDK core. - /// Ver P2PK_SEND_BUG.md para detalles. + /// CDK 0.15+ con includeFee: true maneja correctamente mints con ppk>0. Future sendTokensP2pk(BigInt amount, String pubkey, String? memo) async { - final wallet = await getActiveWallet(); - - // Verificar compatibilidad del mint con P2PK - await _checkP2pkMintCompatibility(); - - // DEBUG: estado antes del P2PK send - final balanceBefore = await wallet.balance(); - debugPrint('[P2PK DEBUG] ===== BEFORE P2PK SEND ====='); - debugPrint('[P2PK DEBUG] Balance: $balanceBefore'); - debugPrint('[P2PK DEBUG] Amount to send: $amount'); - debugPrint('[P2PK DEBUG] Pubkey: ${pubkey.length > 16 ? pubkey.substring(0, 16) : pubkey}...'); - - // DEBUG: counters antes de prepareSend - await KeysetDebug.logCounters('BEFORE P2PK prepareSend'); - - // Paso 1: prepareSend P2PK - debugPrint('[P2PK DEBUG] Calling prepareSendP2pk...'); + debugPrint('[P2PK] Sending $amount to ${pubkey.substring(0, 16)}...'); final prepared = await prepareSendP2pk(amount, pubkey); - debugPrint('[P2PK DEBUG] prepareSendP2pk OK - fee=${prepared.fee}'); - - final balanceAfterPrepare = await wallet.balance(); - debugPrint('[P2PK DEBUG] Balance after prepare: $balanceAfterPrepare'); - - // DEBUG: counters después de prepareSend - await KeysetDebug.logCounters('AFTER P2PK prepareSend'); - - // Paso 2: confirmSend - debugPrint('[P2PK DEBUG] Calling confirmSend...'); - try { - final token = await confirmSend(prepared, memo); - final balanceAfterSend = await wallet.balance(); - debugPrint('[P2PK DEBUG] confirmSend OK!'); - debugPrint('[P2PK DEBUG] Balance after send: $balanceAfterSend'); - - // DEBUG: counters después de send exitoso - await KeysetDebug.logCounters('AFTER P2PK send OK'); - - return token; - } catch (e) { - final balanceAfterError = await wallet.balance(); - debugPrint('[P2PK DEBUG] confirmSend FAILED: $e'); - debugPrint('[P2PK DEBUG] Balance after error: $balanceAfterError'); - - // DEBUG: counters después de send fallido - await KeysetDebug.logCounters('AFTER P2PK send FAILED'); - - rethrow; - } + debugPrint('[P2PK] prepareSend OK - fee=${prepared.fee}'); + final token = await confirmSend(prepared, memo); + debugPrint('[P2PK] Send completed'); + return token; } /// Verifica si hay transacciones salientes pendientes en el wallet activo. diff --git a/lib/screens/5_send/send_screen.dart b/lib/screens/5_send/send_screen.dart index 1a463ee..eb1f511 100644 --- a/lib/screens/5_send/send_screen.dart +++ b/lib/screens/5_send/send_screen.dart @@ -276,57 +276,98 @@ class _SendScreenState extends State { Widget _buildP2PKSection() { final l10n = L10n.of(context)!; - // P2PK Send deshabilitado temporalmente por bug en CDK (cdk-flutter usa CDK 0.13.4). - // Se habilitará cuando cdk-flutter actualice a CDK 0.14.x con el fix de include_fee. - const bool p2pkSendEnabled = false; - - return Opacity( - opacity: p2pkSendEnabled ? 1.0 : 0.5, - child: GlassCard( - padding: const EdgeInsets.symmetric( - horizontal: AppDimensions.paddingMedium, - vertical: AppDimensions.paddingSmall, + return Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + GlassCard( + padding: const EdgeInsets.symmetric( + horizontal: AppDimensions.paddingMedium, + vertical: AppDimensions.paddingSmall, + ), + child: Row( + children: [ + Icon( + LucideIcons.lock, + color: _useP2PK ? AppColors.primaryAction : AppColors.textSecondary, + size: 20, + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + l10n.p2pkLockToKey, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w500, + color: Colors.white, + ), + ), + Text( + l10n.p2pkLockDescription, + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + color: AppColors.textSecondary.withValues(alpha: 0.7), + ), + ), + ], + ), + ), + Switch( + value: _useP2PK, + onChanged: (value) => setState(() => _useP2PK = value), + activeColor: AppColors.primaryAction, + ), + ], + ), ), - child: Row( - children: [ - Icon( - LucideIcons.lock, - color: AppColors.textSecondary, - size: 20, - ), - const SizedBox(width: 12), - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - l10n.p2pkLockToKey, - style: TextStyle( + + // Campo de pubkey cuando P2PK está activo + if (_useP2PK) ...[ + const SizedBox(height: AppDimensions.paddingSmall), + GlassCard( + padding: const EdgeInsets.all(AppDimensions.paddingSmall), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextField( + controller: _pubkeyController, + onChanged: _validatePubkey, + maxLines: 1, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Colors.white, + ), + decoration: InputDecoration( + hintText: l10n.p2pkReceiverPubkey, + hintStyle: TextStyle( fontFamily: 'Inter', fontSize: 14, - fontWeight: FontWeight.w500, - color: p2pkSendEnabled ? Colors.white : AppColors.textSecondary, + color: Colors.white.withValues(alpha: 0.3), ), - ), - Text( - l10n.p2pkSendComingSoon, - style: TextStyle( + border: InputBorder.none, + suffixIcon: IconButton( + icon: const Icon(LucideIcons.clipboard, size: 20), + color: AppColors.textSecondary, + onPressed: _pastePubkey, + ), + errorText: _pubkeyError, + errorStyle: TextStyle( fontFamily: 'Inter', fontSize: 12, - color: AppColors.textSecondary.withValues(alpha: 0.7), + color: AppColors.error, ), ), - ], - ), + ), + ], ), - Switch( - value: false, - onChanged: null, - activeColor: AppColors.primaryAction, - ), - ], - ), - ), + ), + ], + ], ); } diff --git a/pubspec.lock b/pubspec.lock index 6b46726..96785de 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -86,7 +86,7 @@ packages: description: path: "." ref: HEAD - resolved-ref: "3e0c77c22c807459d5d355e270ef4b5ad6a490c1" + resolved-ref: "7fb8580530d963c9ff09f23e55a1e56bccd8676b" url: "https://github.com/cashubtc/cdk_flutter.git" source: git version: "0.1.0"