Skip to content

Commit

Permalink
chore: update tbdex-dart dep (#222)
Browse files Browse the repository at this point in the history
  • Loading branch information
ethan-tbd authored Jul 12, 2024
1 parent 256cfe7 commit dd5bf3c
Show file tree
Hide file tree
Showing 11 changed files with 39 additions and 27 deletions.
2 changes: 1 addition & 1 deletion lib/features/payment/payment_amount_state.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class PaymentAmountState {
String? get payoutCurrency => selectedOffering?.data.payout.currencyCode;

String? get exchangeRate => selectedOffering?.data.payoutUnitsPerPayinUnit;
String? get exchangeId => selectedOffering?.metadata.id;
String? get offeringId => selectedOffering?.metadata.id;

PaymentAmountState copyWith({
String? payinAmount,
Expand Down
11 changes: 6 additions & 5 deletions lib/features/payment/payment_details_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -258,12 +258,10 @@ class PaymentDetailsPage extends HookConsumerWidget {
final updatedPaymentState =
paymentState.copyWith(paymentDetailsState: state);

print('payout details: ${state.formData}');

await ref.read(tbdexServiceProvider).sendRfq(
final sentRfq = await ref.read(tbdexServiceProvider).sendRfq(
ref.read(didProvider),
updatedPaymentState.paymentAmountState?.pfiDid ?? '',
updatedPaymentState.paymentAmountState?.exchangeId ?? '',
updatedPaymentState.paymentAmountState?.offeringId ?? '',
updatedPaymentState.paymentAmountState?.payinAmount ?? '',
updatedPaymentState.selectedPayinKind ?? '',
updatedPaymentState.selectedPayoutKind ?? '',
Expand All @@ -275,7 +273,10 @@ class PaymentDetailsPage extends HookConsumerWidget {
await Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => PaymentReviewPage(
paymentState: paymentState.copyWith(paymentDetailsState: state),
paymentState: updatedPaymentState.copyWith(
paymentDetailsState: updatedPaymentState.paymentDetailsState
?.copyWith(exchangeId: sentRfq.metadata.exchangeId),
),
),
),
);
Expand Down
4 changes: 4 additions & 0 deletions lib/features/payment/payment_details_state.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'package:didpay/features/payment/payment_method.dart';
class PaymentDetailsState {
final String? paymentCurrency;
final String? paymentName;
final String? exchangeId;
final String? selectedPaymentType;
final PaymentMethod? selectedPaymentMethod;
final List<PaymentMethod>? paymentMethods;
Expand All @@ -14,6 +15,7 @@ class PaymentDetailsState {
PaymentDetailsState({
this.paymentCurrency,
this.paymentName,
this.exchangeId,
this.selectedPaymentType,
this.selectedPaymentMethod,
this.paymentMethods,
Expand All @@ -38,6 +40,7 @@ class PaymentDetailsState {
PaymentDetailsState copyWith({
String? paymentCurrency,
String? paymentName,
String? exchangeId,
String? selectedPaymentType,
PaymentMethod? selectedPaymentMethod,
List<PaymentMethod>? paymentMethods,
Expand All @@ -48,6 +51,7 @@ class PaymentDetailsState {
return PaymentDetailsState(
paymentCurrency: paymentCurrency ?? this.paymentCurrency,
paymentName: paymentName ?? this.paymentName,
exchangeId: exchangeId ?? this.exchangeId,
selectedPaymentType: selectedPaymentType ?? this.selectedPaymentType,
selectedPaymentMethod:
selectedPaymentMethod ?? this.selectedPaymentMethod,
Expand Down
9 changes: 2 additions & 7 deletions lib/features/payment/payment_fee_details.dart
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,8 @@ class PaymentFeeDetails extends HookWidget {
);
}

static String calculateExchangeRate(QuoteData? quote) =>
(double.parse(quote?.payout.amount ?? '0') /
double.parse(quote?.payin.amount ?? '0'))
.toStringAsFixed(quote?.payout.currencyCode == 'BTC' ? 8 : 2);

static String calculateTotalAmount(QuoteData? quote) =>
Decimal.parse(quote?.payin.amount ?? '0')
Decimal.parse(quote?.payin.total ?? '0')
.formatCurrency(quote?.payin.currencyCode ?? '');

Widget _buildRow(
Expand Down Expand Up @@ -118,7 +113,7 @@ extension _PaymentDetailsOperations on Object? {
: null;

String? get exchangeRate => this is QuoteData
? PaymentFeeDetails.calculateExchangeRate(this as QuoteData?)
? (this as QuoteData?)?.payoutUnitsPerPayinUnit
: this is OfferingData
? (this as OfferingData?)?.payoutUnitsPerPayinUnit
: null;
Expand Down
1 change: 0 additions & 1 deletion lib/features/payment/payment_link_webview_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ class PaymentLinkWebviewPage extends HookConsumerWidget {
if (context.mounted) Navigator.of(context).pop();
}
},
onExitFullscreen: (controller) => print('onExitFullscreen'),
onReceivedServerTrustAuthRequest: (controller, challenge) async {
return ServerTrustAuthResponse(
action: ServerTrustAuthResponseAction.PROCEED,
Expand Down
12 changes: 6 additions & 6 deletions lib/features/payment/payment_review_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ class PaymentReviewPage extends HookConsumerWidget {
await ref.read(tbdexServiceProvider).submitClose(
ref.read(didProvider),
paymentState.paymentAmountState?.pfiDid ?? '',
paymentState.paymentAmountState?.exchangeId ?? '',
paymentState.paymentDetailsState?.exchangeId ?? '',
);

if (dialogContext.mounted) {
Expand Down Expand Up @@ -203,7 +203,7 @@ class PaymentReviewPage extends HookConsumerWidget {
children: [
Flexible(
child: AutoSizeText(
Decimal.parse(quote.payin.amount)
Decimal.parse(quote.payin.total)
.formatCurrency(quote.payin.currencyCode),
style: Theme.of(context).textTheme.headlineMedium,
maxLines: 1,
Expand Down Expand Up @@ -231,7 +231,7 @@ class PaymentReviewPage extends HookConsumerWidget {
children: [
Flexible(
child: AutoSizeText(
Decimal.parse(quote.payout.amount)
Decimal.parse(quote.payout.total)
.formatCurrency(quote.payout.currencyCode),
style: Theme.of(context).textTheme.headlineMedium,
maxLines: 1,
Expand Down Expand Up @@ -282,7 +282,7 @@ class PaymentReviewPage extends HookConsumerWidget {
style: Theme.of(context).textTheme.bodyLarge,
),
const SizedBox(height: Grid.xxs),
...?paymentState.paymentDetailsState?.formData?.entries.map(
...?paymentState.paymentDetails?.entries.map(
(entry) => Padding(
padding: const EdgeInsets.only(
bottom: Grid.xxs,
Expand All @@ -308,7 +308,7 @@ class PaymentReviewPage extends HookConsumerWidget {
try {
final quote = await quoteNotifier.startPolling(
paymentState.paymentAmountState?.pfiDid ?? '',
paymentState.paymentAmountState?.exchangeId ?? '',
paymentState.paymentDetailsState?.exchangeId ?? '',
);

if (context.mounted && quote != null) {
Expand All @@ -332,7 +332,7 @@ class PaymentReviewPage extends HookConsumerWidget {
final order = await ref.read(tbdexServiceProvider).submitOrder(
ref.read(didProvider),
paymentState.paymentAmountState?.pfiDid ?? '',
paymentState.paymentAmountState?.exchangeId ?? '',
paymentState.paymentDetailsState?.exchangeId ?? '',
);

if (context.mounted) {
Expand Down
10 changes: 10 additions & 0 deletions lib/features/payment/payment_state.dart
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,16 @@ class PaymentState {
}
}

Map<String, String>? get paymentDetails {
switch (transactionType) {
case TransactionType.deposit:
case TransactionType.withdraw:
return payinDetails;
case TransactionType.send:
return payoutDetails;
}
}

String? get selectedPayinKind {
switch (transactionType) {
case TransactionType.deposit:
Expand Down
4 changes: 2 additions & 2 deletions lib/features/transaction/transaction.dart
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ class Transaction {
payinAmount = (msg as Rfq).data.payin.amount;
break;
case MessageKind.quote:
payinAmount = (msg as Quote).data.payin.amount;
payoutAmount = msg.data.payout.amount;
payinAmount = (msg as Quote).data.payin.total;
payoutAmount = msg.data.payout.total;
payinCurrency = msg.data.payin.currencyCode;
payoutCurrency = msg.data.payout.currencyCode;
break;
Expand Down
2 changes: 1 addition & 1 deletion pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -792,7 +792,7 @@ packages:
description:
path: "."
ref: main
resolved-ref: a8c47960a9ea77424cc28f2762488c9d4a4125d5
resolved-ref: ae4c59d75da3eae9f320885d89d16536a89caf75
url: "https://github.com/TBD54566975/tbdex-dart.git"
source: git
version: "1.0.0"
Expand Down
4 changes: 2 additions & 2 deletions test/features/payment/payment_review_page_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ void main() async {

await tester.pumpAndSettle();

expect(find.widgetWithText(AutoSizeText, '100'), findsOneWidget);
expect(find.widgetWithText(AutoSizeText, '100.01'), findsOneWidget);
expect(find.text('AUD'), findsOneWidget);
expect(find.widgetWithText(AutoSizeText, '0.12'), findsOneWidget);
expect(find.text('BTC'), findsOneWidget);
Expand Down Expand Up @@ -115,7 +115,7 @@ void main() async {
);
await tester.pumpAndSettle();

await tester.tap(find.text('Pay 100 AUD'));
await tester.tap(find.text('Pay 100.01 AUD'));
await tester.pumpAndSettle();

expect(find.text('Order confirmed!'), findsOneWidget);
Expand Down
7 changes: 5 additions & 2 deletions test/helpers/test_data.dart
Original file line number Diff line number Diff line change
Expand Up @@ -100,14 +100,17 @@ class TestData {
TypeId.generate(MessageKind.rfq.name),
QuoteData(
expiresAt: '2022-01-01T00:00:00Z',
payoutUnitsPerPayinUnit: '1',
payin: QuoteDetails(
currencyCode: 'AUD',
amount: '100',
subtotal: '100',
total: '100.01',
fee: '0.01',
),
payout: QuoteDetails(
currencyCode: 'BTC',
amount: '0.12',
subtotal: '0.10',
total: '0.12',
fee: '0.02',
),
),
Expand Down

0 comments on commit dd5bf3c

Please sign in to comment.