feat: add Zano support to Open CryptoPay (#2475)
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
Konstantin Ullrich committed
Aug 22, 2025 at 13:50 UTC
7d67d2ffc7f8b5537b780612a365d7b73fb9e2a1
2 files changed
+8
-11
cw_zano/lib/model/pending_zano_transaction.dart
+1
-1
@@ -44,7 +44,7 @@ class PendingZanoTransaction with PendingTransaction {
44
45
@override
46
Future<void> commit() async {
47
- await zanoWallet.transfer(destinations, fee, comment);
47
+ transferResult = await zanoWallet.transfer(destinations, fee, comment);
48
zanoWallet.fetchTransactions();
49
}
50
lib/core/open_crypto_pay/open_cryptopay_service.dart
+7
-10
@@ -13,7 +13,8 @@ class OpenCryptoPayService {
13
value.toLowerCase().startsWith("lnurl");
14
15
static bool requiresClientCommit(CryptoCurrency currency) =>
16
- [CryptoCurrency.xmr, CryptoCurrency.sol].contains(currency) || currency.tag == "SOL";
16
+ [CryptoCurrency.xmr, CryptoCurrency.zano, CryptoCurrency.sol].contains(currency) ||
17
+ currency.tag == "SOL";
18
19
Future<String> commitOpenCryptoPayRequest(
20
String txHex, {
@@ -28,12 +29,11 @@ class OpenCryptoPayService {
29
queryParams['quote'] = request.quote;
30
queryParams['asset'] = asset.title;
31
queryParams['method'] = _getMethod(asset);
31
- queryParams['hex'] = txHex;
32
queryParams['tx'] = txId;
33
+ if (txHex.isNotEmpty) queryParams['hex'] = txHex;
34
35
final response =
36
await ProxyWrapper().get(clearnetUri: Uri.https(uri.authority, uri.path, queryParams));
36
-
37
38
if (response.statusCode == 200) {
39
final body = jsonDecode(response.body) as Map;
@@ -76,7 +76,6 @@ class OpenCryptoPayService {
76
Future<(_OpenCryptoPayQuote, Map<String, List<OpenCryptoPayQuoteAsset>>)>
77
_getOpenCryptoPayParams(Uri uri) async {
78
final response = await ProxyWrapper().get(clearnetUri: uri);
79
-
79
80
if (response.statusCode == 200) {
81
final responseBody = jsonDecode(response.body) as Map;
@@ -122,8 +121,8 @@ class OpenCryptoPayService {
121
queryParams['asset'] = asset.title;
122
queryParams['method'] = _getMethod(asset);
123
125
- final response = await ProxyWrapper().get(clearnetUri: Uri.https(uri.authority, uri.path, queryParams));
126
-
124
+ final response =
125
+ await ProxyWrapper().get(clearnetUri: Uri.https(uri.authority, uri.path, queryParams));
126
127
if (response.statusCode == 200) {
128
final responseBody = jsonDecode(response.body) as Map;
@@ -181,11 +180,9 @@ class _OpenCryptoPayQuote {
180
final String id;
181
final DateTime expiration;
182
184
- _OpenCryptoPayQuote(
185
- this.callbackUrl, this.displayName, this.id, this.expiration);
183
+ _OpenCryptoPayQuote(this.callbackUrl, this.displayName, this.id, this.expiration);
184
187
- _OpenCryptoPayQuote.fromJson(
188
- this.callbackUrl, this.displayName, Map<String, dynamic> json)
185
+ _OpenCryptoPayQuote.fromJson(this.callbackUrl, this.displayName, Map<String, dynamic> json)
186
: id = json['id'] as String,
187
expiration = DateTime.parse(json['expiration'] as String);
188
}