diff --git a/cw_solana/lib/pending_solana_transaction.dart b/cw_solana/lib/pending_solana_transaction.dart index 8ba1c4b9e..ddfcf6540 100644 --- a/cw_solana/lib/pending_solana_transaction.dart +++ b/cw_solana/lib/pending_solana_transaction.dart @@ -6,6 +6,7 @@ class PendingSolanaTransaction with PendingTransaction { final String destinationAddress; final Function sendTransaction; final double fee; + String? _sig; PendingSolanaTransaction({ required this.fee, @@ -28,7 +29,7 @@ class PendingSolanaTransaction with PendingTransaction { @override Future commit() async { - return await sendTransaction(); + _sig = await sendTransaction(); } @override @@ -41,7 +42,7 @@ class PendingSolanaTransaction with PendingTransaction { String get hex => serializedTransaction; @override - String get id => ''; + String get id => _sig ?? ''; @override Future> commitUR() { diff --git a/lib/core/open_crypto_pay/open_cryptopay_service.dart b/lib/core/open_crypto_pay/open_cryptopay_service.dart index 4b317d9c3..52b4d6477 100644 --- a/lib/core/open_crypto_pay/open_cryptopay_service.dart +++ b/lib/core/open_crypto_pay/open_cryptopay_service.dart @@ -12,6 +12,9 @@ class OpenCryptoPayService { value.toLowerCase().contains("lightning=lnurl") || value.toLowerCase().startsWith("lnurl"); + static bool requiresClientCommit(CryptoCurrency currency) => + [CryptoCurrency.xmr, CryptoCurrency.sol].contains(currency) || currency.tag == "SOL"; + Future commitOpenCryptoPayRequest( String txHex, { required String txId, @@ -39,7 +42,7 @@ class OpenCryptoPayService { throw OpenCryptoPayException(body.toString()); } throw OpenCryptoPayException( - "Unexpected status code ${response.statusCode} ${response}"); + "Unexpected status code ${response.statusCode} ${response.body}"); } Future cancelOpenCryptoPayRequest(OpenCryptoPayRequest request) async { @@ -162,6 +165,10 @@ class OpenCryptoPayService { return "Ethereum"; case "POL": return "Polygon"; + case "TRX": + return "Tron"; + case "SOL": + return "Solana"; default: return asset.fullName!; } diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 22df67bf9..fdb863866 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -560,7 +560,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor if (ocpRequest != null) { state = TransactionCommitting(); - if (selectedCryptoCurrency == CryptoCurrency.xmr) { + if (OpenCryptoPayService.requiresClientCommit(selectedCryptoCurrency)) { await pendingTransaction!.commit(); }