Skip to content
Snippets Groups Projects
Commit 98c33439 authored by poka's avatar poka
Browse files

fix: make transactions working again

parent 87666627
No related branches found
No related tags found
No related merge requests found
Pipeline #38437 waiting for manual action
......@@ -214,6 +214,7 @@ class _OnboardingStepTenState extends State<OnboardingStepTen> {
chest: configBox.get('currentChest'),
address: address,
number: 0,
derivation: -1,
name: 'currentWallet'.tr(),
imageDefaultPath: '0.png',
isOwned: true);
......
......@@ -41,22 +41,16 @@ class _TransactionInProgressState extends State<TransactionInProgress> {
@override
void initState() {
final walletProfiles =
Provider.of<WalletsProfilesProvider>(homeContext, listen: false);
final myWalletProvider =
Provider.of<MyWalletsProvider>(homeContext, listen: false);
final walletProfiles = Provider.of<WalletsProfilesProvider>(homeContext, listen: false);
final myWalletProvider = Provider.of<MyWalletsProvider>(homeContext, listen: false);
String defaultWalletAddress = myWalletProvider.getDefaultWallet().address;
String defaultWalletName = myWalletProvider.getDefaultWallet().name!;
String? walletDataName =
myWalletProvider.getWalletDataByAddress(widget.toAddress ?? '')?.name;
String? walletDataName = myWalletProvider.getWalletDataByAddress(widget.toAddress ?? '')?.name;
fromAddressFormat = widget.fromAddress ??
g1WalletsBox.get(defaultWalletAddress)?.username ??
defaultWalletName;
fromAddressFormat = widget.fromAddress ?? g1WalletsBox.get(defaultWalletAddress)?.username ?? defaultWalletName;
toAddressFormat = widget.toAddress ?? walletProfiles.address;
toUsernameFormat =
widget.toUsername ?? walletDataName ?? getShortPubkey(toAddressFormat);
toUsernameFormat = widget.toUsername ?? walletDataName ?? getShortPubkey(toAddressFormat);
amount = walletProfiles.payAmount.text;
isUdUnit = configBox.get('isUdUnit') ?? false;
......@@ -94,13 +88,11 @@ class _TransactionInProgressState extends State<TransactionInProgress> {
}
if (txContent!.status == TransactionStatus.success) {
resultText = 'extrinsicValidated'
.tr(args: [actionMap[widget.transType] ?? 'strangeTransaction'.tr()]);
resultText = 'extrinsicValidated'.tr(args: [actionMap[widget.transType] ?? 'strangeTransaction'.tr()]);
} else if (txContent!.status == TransactionStatus.failed) {
resultText = errorTransactionMap[txContent!.error] ?? txContent!.error!;
} else {
resultText = statusStatusMap[txContent!.status] ??
'Unknown status: ${txContent!.status}';
resultText = statusStatusMap[txContent!.status] ?? 'Unknown status: ${txContent!.status}';
}
Widget buildTransactionStatus() {
......@@ -125,16 +117,12 @@ class _TransactionInProgressState extends State<TransactionInProgress> {
toolbarHeight: scaleSize(57),
elevation: 0,
automaticallyImplyLeading: false,
title: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'extrinsicInProgress'.tr(args: [
actionMap[widget.transType] ?? 'strangeTransaction'.tr()
]),
style: scaledTextStyle(fontSize: 19),
)
])),
title: Row(mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[
Text(
'extrinsicInProgress'.tr(args: [actionMap[widget.transType] ?? 'strangeTransaction'.tr()]),
style: scaledTextStyle(fontSize: 19),
)
])),
body: SafeArea(
child: Align(
alignment: FractionalOffset.bottomCenter,
......@@ -154,12 +142,9 @@ class _TransactionInProgressState extends State<TransactionInProgress> {
ScaledSizedBox(height: 10),
if (widget.transType == 'pay')
Text(
isUdUnit
? 'ud'.tr(args: ['$amount '])
: '$amount $currencyName',
isUdUnit ? 'ud'.tr(args: ['$amount ']) : '$amount $currencyName',
textAlign: TextAlign.center,
style: scaledTextStyle(
fontSize: 16, fontWeight: FontWeight.w500),
style: scaledTextStyle(fontSize: 16, fontWeight: FontWeight.w500),
),
if (widget.transType == 'pay') ScaledSizedBox(height: 10),
Text(
......@@ -170,8 +155,7 @@ class _TransactionInProgressState extends State<TransactionInProgress> {
Text(
fromAddressFormat,
textAlign: TextAlign.center,
style: scaledTextStyle(
fontSize: 16, fontWeight: FontWeight.w500),
style: scaledTextStyle(fontSize: 16, fontWeight: FontWeight.w500),
),
Visibility(
visible: fromAddressFormat != toAddressFormat,
......@@ -186,8 +170,7 @@ class _TransactionInProgressState extends State<TransactionInProgress> {
Text(
toUsernameFormat,
textAlign: TextAlign.center,
style: scaledTextStyle(
fontSize: 16, fontWeight: FontWeight.w500),
style: scaledTextStyle(fontSize: 16, fontWeight: FontWeight.w500),
),
],
),
......@@ -216,8 +199,7 @@ class _TransactionInProgressState extends State<TransactionInProgress> {
},
child: Text(
'close'.tr(),
style: scaledTextStyle(
fontSize: 18, fontWeight: FontWeight.w600),
style: scaledTextStyle(fontSize: 18, fontWeight: FontWeight.w600),
),
),
),
......
......@@ -20,7 +20,7 @@ class HistoryQuery extends StatelessWidget {
final duniterIndexer = Provider.of<DuniterIndexer>(context, listen: false);
final sub = Provider.of<SubstrateSdk>(context, listen: false);
final ScrollController scrollController = ScrollController();
final scrollController = ScrollController();
FetchMoreOptions? opts;
int nRepositories = 20;
......@@ -46,11 +46,7 @@ class HistoryQuery extends StatelessWidget {
Query(
options: QueryOptions(
document: gql(getHistoryByAddressRelayQ),
variables: <String, dynamic>{
'address': address,
'first': nRepositories,
'after': null
},
variables: <String, dynamic>{'address': address, 'first': nRepositories, 'after': null},
),
builder: (QueryResult result, {fetchMore, refetch}) {
duniterIndexer.refetch = refetch;
......@@ -61,8 +57,7 @@ class HistoryQuery extends StatelessWidget {
),
);
}
final List transactions =
result.data?["transferConnection"]["edges"];
final List transactions = result.data?["transferConnection"]["edges"];
// Get transaction in progress if exist
String? transactionId;
......@@ -78,9 +73,7 @@ class HistoryQuery extends StatelessWidget {
return Column(children: <Widget>[
Column(
children: [
if (transactionId != null)
TransactionInProgressTule(
address: address, transactionId: transactionId),
if (transactionId != null) TransactionInProgressTule(address: address, transactionId: transactionId),
ScaledSizedBox(height: 50),
Text(
"noNetworkNoHistory".tr(),
......@@ -94,9 +87,7 @@ class HistoryQuery extends StatelessWidget {
return Column(children: <Widget>[
Column(
children: [
if (transactionId != null)
TransactionInProgressTule(
address: address, transactionId: transactionId),
if (transactionId != null) TransactionInProgressTule(address: address, transactionId: transactionId),
ScaledSizedBox(height: 50),
Text(
"noDataToDisplay".tr(),
......@@ -108,8 +99,7 @@ class HistoryQuery extends StatelessWidget {
}
if (result.isNotLoading) {
opts = duniterIndexer.mergeQueryResult(
result, opts, address, nRepositories);
opts = duniterIndexer.mergeQueryResult(result, opts, address, nRepositories);
}
// Build history list
......@@ -123,10 +113,7 @@ class HistoryQuery extends StatelessWidget {
key: keyListTransactions,
controller: scrollController,
children: <Widget>[
if (transactionId != null)
TransactionInProgressTule(
address: address,
transactionId: transactionId),
if (transactionId != null) TransactionInProgressTule(address: address, transactionId: transactionId),
HistoryView(
result: result,
address: address,
......@@ -142,8 +129,7 @@ class HistoryQuery extends StatelessWidget {
}
if (t is ScrollEndNotification &&
scrollController.position.pixels >=
scrollController.position.maxScrollExtent * 0.7 &&
scrollController.position.pixels >= scrollController.position.maxScrollExtent * 0.7 &&
duniterIndexer.pageInfo!['hasNextPage'] &&
result.isNotLoading) {
fetchMore!(opts!);
......
This diff is collapsed.
......@@ -15,15 +15,13 @@ import 'package:provider/provider.dart';
import 'package:fade_and_translate/fade_and_translate.dart';
class TransactionInProgressTule extends StatefulWidget {
const TransactionInProgressTule(
{super.key, required this.address, this.transactionId});
const TransactionInProgressTule({super.key, required this.address, this.transactionId});
final String address;
final String? transactionId;
@override
State<TransactionInProgressTule> createState() =>
_TransactionInProgressTuleState();
State<TransactionInProgressTule> createState() => _TransactionInProgressTuleState();
}
class _TransactionInProgressTuleState extends State<TransactionInProgressTule> {
......@@ -38,7 +36,7 @@ class _TransactionInProgressTuleState extends State<TransactionInProgressTule> {
final stream = duniterIndexer.subscribeHistoryIssued(widget.address);
txContent = sub.transactionStatus[widget.transactionId]!;
//TODO: change way to get finliized transaction status
//TODO: change way to get finalized transaction status
subscription = stream.listen((result) {
if (result.data?['accountConnection']['edges'] == null) return;
......@@ -46,8 +44,7 @@ class _TransactionInProgressTuleState extends State<TransactionInProgressTule> {
log.e(result.exception);
isVisible = true;
} else {
final Map transDataNode =
result.data?['accountConnection']['edges'].first;
final Map transDataNode = result.data?['accountConnection']['edges'].first;
if (transDataNode['node']['transfersIssued'].isEmpty) return;
final Map transData = transDataNode['node']['transfersIssued'][0];
final String receiver = transData['toId'];
......@@ -55,9 +52,7 @@ class _TransactionInProgressTuleState extends State<TransactionInProgressTule> {
final createdAt = DateTime.parse(transData['timestamp']);
final difference = createdAt.difference(DateTime.now());
if (receiver == txContent.to &&
amount == txContent.amount &&
difference.inSeconds.abs() < 30) {
if (receiver == txContent.to && amount == txContent.amount && difference.inSeconds.abs() < 30) {
isVisible = false;
txContent.status = TransactionStatus.finalized;
sub.reload();
......@@ -75,8 +70,7 @@ class _TransactionInProgressTuleState extends State<TransactionInProgressTule> {
Widget build(BuildContext context) {
final duniterIndexer = Provider.of<DuniterIndexer>(context, listen: false);
return Consumer<SubstrateSdk>(builder: (context, sub, _) {
final statusIcon =
TransactionStatusIcon(txContent.status, size: 21, stroke: 2);
final statusIcon = TransactionStatusIcon(txContent.status, size: 21, stroke: 2);
String humanStatus = '';
final finalAmount = txContent.amount * -1;
......@@ -85,8 +79,7 @@ class _TransactionInProgressTuleState extends State<TransactionInProgressTule> {
} else if (txContent.status == TransactionStatus.failed) {
humanStatus = errorTransactionMap[txContent.error] ?? txContent.error!;
} else {
humanStatus = statusStatusMap[txContent.status] ??
'Unknown status: ${txContent.status}';
humanStatus = statusStatusMap[txContent.status] ?? 'Unknown status: ${txContent.status}';
}
return FadeAndTranslate(
......@@ -111,21 +104,15 @@ class _TransactionInProgressTuleState extends State<TransactionInProgressTule> {
const SizedBox(height: 10),
Text(
'Transaction en cours',
style: scaledTextStyle(
fontSize: 19,
color: Colors.blueAccent,
fontWeight: FontWeight.w400),
style: scaledTextStyle(fontSize: 19, color: Colors.blueAccent, fontWeight: FontWeight.w400),
),
ListTile(
key: const Key('transactionInProgress'),
contentPadding:
const EdgeInsets.symmetric(horizontal: 5, vertical: 15),
contentPadding: const EdgeInsets.symmetric(horizontal: 5, vertical: 15),
leading: DatapodAvatar(address: txContent.to, size: 50),
title: Padding(
padding: const EdgeInsets.only(bottom: 5),
child: Text(getShortPubkey(txContent.to),
style: scaledTextStyle(
fontSize: 16, fontFamily: 'Monospace')),
child: Text(getShortPubkey(txContent.to), style: scaledTextStyle(fontSize: 16, fontFamily: 'Monospace')),
),
subtitle: Row(
children: [
......@@ -135,23 +122,13 @@ class _TransactionInProgressTuleState extends State<TransactionInProgressTule> {
width: 170,
child: Text(
humanStatus,
style: scaledTextStyle(
fontStyle: FontStyle.italic,
color: Theme.of(context)
.textTheme
.titleLarge!
.color,
fontSize: 13),
style: scaledTextStyle(fontStyle: FontStyle.italic, color: Theme.of(context).textTheme.titleLarge!.color, fontSize: 13),
),
),
],
),
trailing: Text("$finalAmount $currencyName",
style: scaledTextStyle(
fontSize: 15,
fontWeight: FontWeight.w500,
color: Colors.blue[700]),
textAlign: TextAlign.justify),
style: scaledTextStyle(fontSize: 15, fontWeight: FontWeight.w500, color: Colors.blue[700]), textAlign: TextAlign.justify),
dense: !isTall,
isThreeLine: false),
],
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment