Skip to content

Commit

Permalink
feat: Add provider to get UCO min value in dollars + fix bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
redDwarf03 committed Nov 19, 2024
1 parent 341c02b commit dd31911
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 7 deletions.
23 changes: 23 additions & 0 deletions lib/application/low_uco_in_dollars_warning_value.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import 'package:archethic_dapp_framework_flutter/archethic_dapp_framework_flutter.dart'
as aedappfm;
import 'package:decimal/decimal.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';

part 'low_uco_in_dollars_warning_value.g.dart';

@riverpod
double lowUCOInDollarsWarningValue(LowUCOInDollarsWarningValueRef ref) {
const kLowUCOInDollarsWarningValue = 0.20;

final archethicOracleUCO =
ref.watch(aedappfm.ArchethicOracleUCOProviders.archethicOracleUCO);

if (archethicOracleUCO.usd == 0) {
// 20 UCO by default if no Oracle
return 20;
}

return (Decimal.parse(kLowUCOInDollarsWarningValue.toString()) /
Decimal.parse(archethicOracleUCO.usd.toString()))
.toDouble();
}
27 changes: 27 additions & 0 deletions lib/application/low_uco_in_dollars_warning_value.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import 'dart:async';

import 'package:aedex/application/low_uco_in_dollars_warning_value.dart';
import 'package:aedex/ui/views/liquidity_add/bloc/provider.dart';
import 'package:aedex/ui/views/liquidity_add/layouts/components/liquidity_add_confirm_infos.dart';
import 'package:aedex/ui/views/liquidity_add/layouts/components/liquidity_add_in_progress_popup.dart';
Expand Down Expand Up @@ -32,6 +33,8 @@ class LiquidityAddConfirmSheetState
if (liquidityAdd.token1 == null) {
return const SizedBox.shrink();
}
final lowUCOInDollarsWarningValue =
ref.watch(lowUCOInDollarsWarningValueProvider);

return Expanded(
child: Column(
Expand Down Expand Up @@ -87,7 +90,7 @@ class LiquidityAddConfirmSheetState
liquidityAdd.token1Amount.toString(),
))
.toDouble() <
kLowUCOWarningValue) {
lowUCOInDollarsWarningValue) {
final result = await LowUCOWarningPopup.getDialog(context);
if (result != null && result == false) {
return;
Expand All @@ -102,7 +105,7 @@ class LiquidityAddConfirmSheetState
liquidityAdd.token2Amount.toString(),
))
.toDouble() <
kLowUCOWarningValue) {
lowUCOInDollarsWarningValue) {
if (context.mounted) {
final result = await LowUCOWarningPopup.getDialog(context);
if (result != null && result == false) {
Expand Down
6 changes: 5 additions & 1 deletion lib/ui/views/swap/layouts/components/swap_confirm_sheet.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

import 'dart:async';

import 'package:aedex/application/low_uco_in_dollars_warning_value.dart';
import 'package:aedex/ui/views/swap/bloc/provider.dart';
import 'package:aedex/ui/views/swap/layouts/components/swap_confirm_infos.dart';
import 'package:aedex/ui/views/swap/layouts/components/swap_in_progress_popup.dart';
Expand Down Expand Up @@ -32,6 +33,9 @@ class SwapConfirmSheetState extends ConsumerState<SwapConfirmSheet> {
return const SizedBox.shrink();
}

final lowUCOInDollarsWarningValue =
ref.watch(lowUCOInDollarsWarningValueProvider);

return Expanded(
child: Column(
mainAxisSize: MainAxisSize.min,
Expand Down Expand Up @@ -84,7 +88,7 @@ class SwapConfirmSheetState extends ConsumerState<SwapConfirmSheet> {
) -
Decimal.parse(swap.tokenToSwapAmount.toString()))
.toDouble() <
kLowUCOWarningValue) {
lowUCOInDollarsWarningValue) {
final result = await LowUCOWarningPopup.getDialog(context);
if (result != null && result == false) {
return;
Expand Down
8 changes: 4 additions & 4 deletions lib/ui/views/util/components/low_uco_warning_popup.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/localizations.dart';
import 'package:go_router/go_router.dart';

const kLowUCOWarningValue = 5;

class LowUCOWarningPopup {
static Future<bool?> getDialog(
BuildContext context,
) async {
return showDialog<bool?>(
context: context,
barrierDismissible: false,
useRootNavigator: false,
builder: (context) {
return ScaffoldMessenger(
child: Builder(
Expand Down Expand Up @@ -81,15 +81,15 @@ class LowUCOWarningPopup {
Expanded(
child: aedappfm.AppButton(
labelBtn: AppLocalizations.of(context)!.no,
onPressed: () async {
onPressed: () {
context.pop(false);
},
),
),
Expanded(
child: aedappfm.AppButton(
labelBtn: AppLocalizations.of(context)!.yes,
onPressed: () async {
onPressed: () {
context.pop(true);
},
),
Expand Down

0 comments on commit dd31911

Please sign in to comment.