diff --git a/packages/espressocash_app/CHANGELOG.md b/packages/espressocash_app/CHANGELOG.md index fa10dd5d2..40e00e7b5 100644 --- a/packages/espressocash_app/CHANGELOG.md +++ b/packages/espressocash_app/CHANGELOG.md @@ -1,3 +1,8 @@ +## 1.140.0 + + - **FIX**: passing correct partner (#1672). + - **FEAT**: add brij logging (#1673). + ## 1.139.1 - **FIX**: pass partner to brij (#1671). diff --git a/packages/espressocash_app/lib/features/ramp/partners/brij/services/brij_off_ramp_order_service.dart b/packages/espressocash_app/lib/features/ramp/partners/brij/services/brij_off_ramp_order_service.dart index f7b01b6eb..c05f2a4f3 100644 --- a/packages/espressocash_app/lib/features/ramp/partners/brij/services/brij_off_ramp_order_service.dart +++ b/packages/espressocash_app/lib/features/ramp/partners/brij/services/brij_off_ramp_order_service.dart @@ -12,6 +12,7 @@ import 'package:uuid/uuid.dart'; import '../../../../../config.dart'; import '../../../../../data/db/db.dart'; +import '../../../../../utils/errors.dart'; import '../../../../accounts/auth_scope.dart'; import '../../../../accounts/models/ec_wallet.dart'; import '../../../../analytics/analytics_manager.dart'; @@ -25,6 +26,7 @@ import '../../../../tokens/token.dart'; import '../../../../transactions/models/tx_results.dart'; import '../../../../transactions/services/resign_tx.dart'; import '../../../../transactions/services/tx_sender.dart'; +import '../../../services/extensions.dart'; import '../models/brij_order_status.dart'; @Singleton(scope: authScope) @@ -60,17 +62,24 @@ class BrijOffRampOrderService implements Disposable { OffRampOrderStatus.refunded, OffRampOrderStatus.rejected, ]) & - tbl.partner.equalsValue(RampPartner.brij), + tbl.partner.isInValues([RampPartner.brij, RampPartner.scalexBrij]), ); final orders = await query.get(); for (final order in orders) { - if (order.partner != RampPartner.brij) { - continue; + switch (order.partner) { + case RampPartner.kado: + case RampPartner.coinflow: + case RampPartner.scalex: + case RampPartner.guardarian: + case RampPartner.rampNetwork: + case RampPartner.moneygram: + continue; + case RampPartner.brij: + case RampPartner.scalexBrij: + _subscribe(order.id); } - - _subscribe(order.id); } } @@ -80,6 +89,10 @@ class BrijOffRampOrderService implements Disposable { .watchSingleOrNull() .whereNotNull() .asyncExpand((order) { + logMessage( + message: 'BrijOffRampOrderStatusChange', + data: order.toSentry(), + ); switch (order.status) { case OffRampOrderStatus.waitingPartnerReview: _waitingPartnerReviewWatcher(order); @@ -156,10 +169,11 @@ class BrijOffRampOrderService implements Disposable { AsyncResult create({ required CryptoAmount submittedAmount, required FiatAmount receiveAmount, - required String partnerAuthPk, + required RampPartner partner, }) => tryEitherAsync((_) async { { + final partnerAuthPk = partner.partnerPK ?? ''; await _kycRepository.grantPartnerAccess(partnerAuthPk); final user = await _kycRepository.fetchUser(); @@ -194,7 +208,7 @@ class BrijOffRampOrderService implements Disposable { created: DateTime.now(), humanStatus: '', machineStatus: '', - partner: RampPartner.brij, + partner: partner, status: OffRampOrderStatus.waitingPartnerReview, transaction: '', depositAddress: '', @@ -210,7 +224,7 @@ class BrijOffRampOrderService implements Disposable { ); _analytics.rampInitiated( - partnerName: RampPartner.brij.name, + partnerName: partner.name, rampType: RampType.offRamp.name, amount: submittedAmount.value.toString(), countryCode: countryCode, diff --git a/packages/espressocash_app/lib/features/ramp/partners/brij/services/brij_on_ramp_order_service.dart b/packages/espressocash_app/lib/features/ramp/partners/brij/services/brij_on_ramp_order_service.dart index 60162bc8d..395e888a5 100644 --- a/packages/espressocash_app/lib/features/ramp/partners/brij/services/brij_on_ramp_order_service.dart +++ b/packages/espressocash_app/lib/features/ramp/partners/brij/services/brij_on_ramp_order_service.dart @@ -8,6 +8,7 @@ import 'package:rxdart/rxdart.dart'; import 'package:uuid/uuid.dart'; import '../../../../../data/db/db.dart'; +import '../../../../../utils/errors.dart'; import '../../../../accounts/auth_scope.dart'; import '../../../../analytics/analytics_manager.dart'; import '../../../../currency/models/amount.dart'; @@ -17,6 +18,7 @@ import '../../../../kyc_sharing/utils/kyc_utils.dart'; import '../../../../ramp_partner/models/ramp_partner.dart'; import '../../../../ramp_partner/models/ramp_type.dart'; import '../../../../tokens/token.dart'; +import '../../../services/extensions.dart'; import '../models/brij_order_status.dart'; @Singleton(scope: authScope) @@ -45,17 +47,24 @@ class BrijOnRampOrderService implements Disposable { OnRampOrderStatus.completed, OnRampOrderStatus.failure, ]) & - tbl.partner.equalsValue(RampPartner.brij), + tbl.partner.isInValues([RampPartner.brij, RampPartner.scalexBrij]), ); final orders = await query.get(); for (final order in orders) { - if (order.partner != RampPartner.brij) { - continue; + switch (order.partner) { + case RampPartner.kado: + case RampPartner.coinflow: + case RampPartner.scalex: + case RampPartner.guardarian: + case RampPartner.rampNetwork: + case RampPartner.moneygram: + continue; + case RampPartner.brij: + case RampPartner.scalexBrij: + _subscribe(order.id); } - - _subscribe(order.id); } } @@ -65,6 +74,10 @@ class BrijOnRampOrderService implements Disposable { .watchSingleOrNull() .whereNotNull() .asyncExpand((order) { + logMessage( + message: 'BrijOnRampOrderStatusChange', + data: order.toSentry(), + ); switch (order.status) { case OnRampOrderStatus.waitingPartnerReview: _waitingPartnerReviewWatcher(order); @@ -99,10 +112,11 @@ class BrijOnRampOrderService implements Disposable { AsyncResult create({ required FiatAmount submittedAmount, required CryptoAmount receiveAmount, - required String partnerAuthPk, + required RampPartner partner, }) => tryEitherAsync((_) async { { + final partnerAuthPk = partner.partnerPK ?? ''; await _kycRepository.grantPartnerAccess(partnerAuthPk); final orderId = await _kycRepository.createOnRampOrder( @@ -123,7 +137,7 @@ class BrijOnRampOrderService implements Disposable { isCompleted: false, created: DateTime.now(), txHash: '', - partner: RampPartner.brij, + partner: partner, receiveAmount: receiveAmount.value, status: OnRampOrderStatus.waitingPartnerReview, bankAccount: null, @@ -140,7 +154,7 @@ class BrijOnRampOrderService implements Disposable { final countryCode = _kycSharingService.value?.countryCode; _analytics.rampInitiated( - partnerName: RampPartner.brij.name, + partnerName: partner.name, rampType: RampType.onRamp.name, amount: submittedAmount.value.toString(), countryCode: countryCode ?? '', diff --git a/packages/espressocash_app/lib/features/ramp/partners/brij/widgets/launch.dart b/packages/espressocash_app/lib/features/ramp/partners/brij/widgets/launch.dart index 41ae1076a..bc555326d 100644 --- a/packages/espressocash_app/lib/features/ramp/partners/brij/widgets/launch.dart +++ b/packages/espressocash_app/lib/features/ramp/partners/brij/widgets/launch.dart @@ -120,7 +120,7 @@ extension BuildContextExt on BuildContext { .create( receiveAmount: equivalentAmount, submittedAmount: submittedAmount as FiatAmount, - partnerAuthPk: partner.partnerPK ?? '', + partner: partner, ) .then( (order) => order.fold( @@ -226,7 +226,7 @@ extension BuildContextExt on BuildContext { .create( receiveAmount: equivalentAmount, submittedAmount: submittedAmount, - partnerAuthPk: partner.partnerPK ?? '', + partner: partner, ) .then( (order) => order.fold( diff --git a/packages/espressocash_app/lib/features/ramp/partners/moneygram/service/moneygram_off_ramp_service.dart b/packages/espressocash_app/lib/features/ramp/partners/moneygram/service/moneygram_off_ramp_service.dart index c15257418..f38c7a190 100644 --- a/packages/espressocash_app/lib/features/ramp/partners/moneygram/service/moneygram_off_ramp_service.dart +++ b/packages/espressocash_app/lib/features/ramp/partners/moneygram/service/moneygram_off_ramp_service.dart @@ -30,6 +30,7 @@ import '../../../../transactions/services/resign_tx.dart'; import '../../../../transactions/services/tx_confirm.dart'; import '../../../../transactions/services/tx_sender.dart'; import '../../../data/my_database_ext.dart'; +import '../../../services/extensions.dart'; import '../../../services/off_ramp_order_service.dart'; import '../data/allbridge_client.dart'; import '../data/allbridge_dto.dart' hide TransactionStatus; @@ -105,7 +106,7 @@ class MoneygramOffRampOrderService implements Disposable { .asyncExpand((order) { logMessage( message: 'MGOffRampOrderStatusChange', - data: order.toSentry, + data: order.toSentry(), ); switch (order.status) { @@ -845,18 +846,3 @@ class MoneygramOffRampOrderService implements Disposable { } const _minimumInitBalance = 1.5; // 1.5 XLM - -extension on OffRampOrderRow { - Map get toSentry { - final json = toJson(); - - const filter = ['transaction', 'slot']; - - json.removeWhere( - (key, value) => - value == null || value == '' || filter.contains(key) || value == 0.0, - ); - - return json; - } -} diff --git a/packages/espressocash_app/lib/features/ramp/partners/moneygram/service/moneygram_on_ramp_service.dart b/packages/espressocash_app/lib/features/ramp/partners/moneygram/service/moneygram_on_ramp_service.dart index e4ab0977e..a3fb73a14 100644 --- a/packages/espressocash_app/lib/features/ramp/partners/moneygram/service/moneygram_on_ramp_service.dart +++ b/packages/espressocash_app/lib/features/ramp/partners/moneygram/service/moneygram_on_ramp_service.dart @@ -25,6 +25,7 @@ import '../../../../stellar/service/stellar_client.dart'; import '../../../../tokens/token.dart'; import '../../../../transactions/models/tx_results.dart'; import '../../../../transactions/services/tx_confirm.dart'; +import '../../../services/extensions.dart'; import '../data/allbridge_client.dart'; import '../data/allbridge_dto.dart' hide TransactionStatus; import '../data/dto.dart'; @@ -92,7 +93,7 @@ class MoneygramOnRampOrderService implements Disposable { .asyncExpand((order) { logMessage( message: 'MGOnRampOrderStatusChange', - data: order.toSentry, + data: order.toSentry(), ); switch (order.status) { @@ -487,10 +488,3 @@ class MoneygramOnRampOrderService implements Disposable { } const _minimumInitBalance = 1.5; // 1.5 XLM - -extension on OnRampOrderRow { - Map get toSentry => toJson() - ..removeWhere( - (key, value) => value == null || value == '' || value == 0.0, - ); -} diff --git a/packages/espressocash_app/lib/features/ramp/services/extensions.dart b/packages/espressocash_app/lib/features/ramp/services/extensions.dart new file mode 100644 index 000000000..7a48b247c --- /dev/null +++ b/packages/espressocash_app/lib/features/ramp/services/extensions.dart @@ -0,0 +1,23 @@ +import '../../../data/db/db.dart'; + +extension OffRampOrderRowExt on OffRampOrderRow { + Map toSentry() { + final json = toJson(); + + const filter = ['transaction', 'slot']; + + json.removeWhere( + (key, value) => + value == null || value == '' || filter.contains(key) || value == 0.0, + ); + + return json; + } +} + +extension OnRampOrderRowExt on OnRampOrderRow { + Map toSentry() => toJson() + ..removeWhere( + (key, value) => value == null || value == '' || value == 0.0, + ); +} diff --git a/packages/espressocash_app/lib/features/ramp/services/on_ramp_order_service.dart b/packages/espressocash_app/lib/features/ramp/services/on_ramp_order_service.dart index 311f049f4..4b40df5f7 100644 --- a/packages/espressocash_app/lib/features/ramp/services/on_ramp_order_service.dart +++ b/packages/espressocash_app/lib/features/ramp/services/on_ramp_order_service.dart @@ -223,7 +223,10 @@ class OnRampOrderService implements Disposable { ) as FiatAmount, ); - final submittedAmount = row.partner == RampPartner.brij + final isFiat = row.partner == RampPartner.brij || + row.partner == RampPartner.scalexBrij; + + final submittedAmount = isFiat ? FiatAmount( value: row.amount, fiatCurrency: currencyFromString(row.fiatSymbol ?? 'USD'), diff --git a/packages/espressocash_app/pubspec.yaml b/packages/espressocash_app/pubspec.yaml index 21ac28f35..79d7ea368 100644 --- a/packages/espressocash_app/pubspec.yaml +++ b/packages/espressocash_app/pubspec.yaml @@ -1,7 +1,7 @@ name: espressocash_app description: Espresso Cash mobile wallet for Solana publish_to: "none" -version: 1.139.1 +version: 1.140.0 environment: sdk: ">=3.4.0 <4.0.0"