This commit is contained in:
poka 2022-12-09 19:55:40 +01:00
parent 79e12eb44b
commit 8b40b706b7
63 changed files with 248 additions and 232 deletions

View File

@ -22,9 +22,9 @@ void main() async {
// Create test5 identity
await bkPay(
fromAddress: test1.address, destAddress: test5.address, amount: 30);
sub.reload();
subR.reload();
await bkCertify(fromAddress: test1.address, destAddress: test5.address);
sub.reload();
subR.reload();
await sleep();
// Certify test5 to become member

View File

@ -92,8 +92,9 @@ Future restoreChest() async {
}
Future onboardingNewChest() async {
final generateWalletProvider =
Provider.of<GenerateWalletsProvider>(homeContext, listen: false);
late GenerateWalletsProvider generateWalletsProviderR;
// StateProvider((ref) => generateWalletsProviderR = ref.read(generateWalletsProvider));
// Open screen create new wallet
await tapKey(keyOnboardingNewChest);
@ -122,7 +123,7 @@ Future onboardingNewChest() async {
// Enter asked word
final askedWordNumber = int.parse(getWidgetText(keyAskedWord));
List mnemonic = generateWalletProvider.generatedMnemonic!.split(' ');
List mnemonic = generateWalletsProviderR.generatedMnemonic!.split(' ');
final askedWord = mnemonic[askedWordNumber - 1];
await enterText(keyInputWord, askedWord);

View File

@ -16,7 +16,10 @@ final bool isHumanReading =
dotenv.env['isHumanReading'] == 'true' ? true : false;
Timeout testTimeout([int seconds = 120]) =>
Timeout(Duration(seconds: isHumanReading ? 600 : seconds));
final sub = Provider.of<SubstrateSdk>(homeContext, listen: false);
// final subR = Provider.of<SubstrateSdk>(homeContext, listen: false);
late SubstrateSdk subR;
StateProvider(
(ref) => subR = ref.read(sub));
late WidgetTester tester;
// TEST WALLETS CONSTS
@ -177,9 +180,9 @@ Future spawnBlock({int number = 1, int duration = 200, int? until}) async {
await sleep(duration);
}
if (until != null) {
number = until - sub.blocNumber;
number = until - subR.blocNumber;
}
await sub.spawnBlock(number);
await subR.spawnBlock(number);
await sleep(200);
}
@ -188,7 +191,7 @@ Future bkPay(
{required String fromAddress,
required String destAddress,
required double amount}) async {
sub.pay(
subR.pay(
fromAddress: fromAddress,
destAddress: destAddress,
amount: amount,
@ -203,7 +206,7 @@ Future bkCertify(
{required String fromAddress,
required String destAddress,
bool spawnBloc = true}) async {
sub.certify(fromAddress, destAddress, 'AAAAA');
subR.certify(fromAddress, destAddress, 'AAAAA');
if (spawnBloc) {
await sleep(500);
await spawnBlock();
@ -214,7 +217,7 @@ Future bkCertify(
// Confirm my identity in background
Future bkConfirmIdentity(
{required String fromAddress, required String name}) async {
sub.confirmIdentity(fromAddress, name, 'AAAAA');
subR.confirmIdentity(fromAddress, name, 'AAAAA');
await sleep(500);
await spawnBlock();
await sleep(500);
@ -227,7 +230,7 @@ Future bkSetNode([String? endpoint]) async {
endpoint = 'ws://$ipAddress:9944';
}
configBox.put('customEndpoint', endpoint);
sub.connectNode(homeContext);
subR.connectNode(homeContext);
}
// Restore chest in background
@ -256,7 +259,7 @@ Future<WalletData> _addImportAccount(
required int number,
required String name,
required int derivation}) async {
final address = await sub.importAccount(
final address = await subR.importAccount(
mnemonic: mnemonic, derivePath: '//$derivation', password: 'AAAAA');
final myWallet = WalletData(
chest: chest,
@ -282,7 +285,7 @@ Future bkDeleteAllWallets() async {
await chestBox.clear();
await configBox.delete('defaultWallet');
await configBox.delete('isUdUnit');
await sub.deleteAllAccounts();
await subR.deleteAllAccounts();
myWalletProvider.pinCode = '';
myWalletProvider.reload();
}

View File

@ -22,17 +22,7 @@ import 'package:gecko/globals.dart';
import 'package:gecko/models/chest_data.dart';
import 'package:gecko/models/g1_wallets_list.dart';
import 'package:gecko/models/wallet_data.dart';
import 'package:gecko/providers/cesium_plus.dart';
import 'package:gecko/providers/chest_provider.dart';
import 'package:gecko/providers/duniter_indexer.dart';
import 'package:gecko/providers/generate_wallets.dart';
import 'package:gecko/providers/settings_provider.dart';
import 'package:gecko/providers/substrate_sdk.dart';
import 'package:gecko/providers/wallets_profiles.dart';
import 'package:gecko/providers/home.dart';
import 'package:gecko/providers/my_wallets.dart';
import 'package:gecko/providers/search.dart';
import 'package:gecko/providers/wallet_options.dart';
import 'package:gecko/screens/home.dart';
import 'package:flutter/material.dart';
import 'package:gecko/screens/myWallets/wallets_home.dart';
@ -119,66 +109,51 @@ Future<void> main() async {
}
}
class Gecko extends StatelessWidget {
class Gecko extends ConsumerWidget {
const Gecko({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
Widget build(BuildContext context, WidgetRef ref) {
// To configure multi_endpoints GraphQLProvider: https://stackoverflow.com/q/70656513/8301867
return MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => HomeProvider()),
ChangeNotifierProvider(create: (_) => WalletsProfilesProvider('')),
ChangeNotifierProvider(create: (_) => MyWalletsProvider()),
ChangeNotifierProvider(create: (_) => ChestProvider()),
ChangeNotifierProvider(create: (_) => GenerateWalletsProvider()),
ChangeNotifierProvider(create: (_) => WalletOptionsProvider()),
ChangeNotifierProvider(create: (_) => SearchProvider()),
ChangeNotifierProvider(create: (_) => CesiumPlusProvider()),
ChangeNotifierProvider(create: (_) => SubstrateSdk()),
ChangeNotifierProvider(create: (_) => DuniterIndexer()),
ChangeNotifierProvider(create: (_) => SettingsProvider())
],
child: MaterialApp(
localizationsDelegates: context.localizationDelegates,
supportedLocales: context.supportedLocales,
locale: context.locale,
builder: (context, widget) => ResponsiveWrapper.builder(
BouncingScrollWrapper.builder(context, widget!),
maxWidth: 1200,
minWidth: 480,
defaultScale: true,
breakpoints: [
const ResponsiveBreakpoint.resize(480, name: MOBILE),
const ResponsiveBreakpoint.autoScale(800, name: TABLET),
const ResponsiveBreakpoint.resize(1000, name: DESKTOP),
],
background: Container(color: backgroundColor)),
title: 'Ğecko',
theme: ThemeData(
appBarTheme: const AppBarTheme(
color: Color(0xffFFD58D),
foregroundColor: Color(0xFF000000),
),
primaryColor: const Color(0xffFFD58D),
textTheme: const TextTheme(
bodyText1: TextStyle(fontSize: 16),
bodyText2: TextStyle(fontSize: 18),
).apply(
bodyColor: const Color(0xFF000000),
),
colorScheme:
ColorScheme.fromSwatch().copyWith(secondary: Colors.grey[850]),
return MaterialApp(
localizationsDelegates: context.localizationDelegates,
supportedLocales: context.supportedLocales,
locale: context.locale,
builder: (context, widget) => ResponsiveWrapper.builder(
BouncingScrollWrapper.builder(context, widget!),
maxWidth: 1200,
minWidth: 480,
defaultScale: true,
breakpoints: [
const ResponsiveBreakpoint.resize(480, name: MOBILE),
const ResponsiveBreakpoint.autoScale(800, name: TABLET),
const ResponsiveBreakpoint.resize(1000, name: DESKTOP),
],
background: Container(color: backgroundColor)),
title: 'Ğecko',
theme: ThemeData(
appBarTheme: const AppBarTheme(
color: Color(0xffFFD58D),
foregroundColor: Color(0xFF000000),
),
home: const HomeScreen(),
initialRoute: "/",
routes: {
'/mywallets': (context) => const WalletsHome(),
'/search': (context) => const SearchScreen(),
'/searchResult': (context) => const SearchResultScreen(),
},
primaryColor: const Color(0xffFFD58D),
textTheme: const TextTheme(
bodyText1: TextStyle(fontSize: 16),
bodyText2: TextStyle(fontSize: 18),
).apply(
bodyColor: const Color(0xFF000000),
),
colorScheme:
ColorScheme.fromSwatch().copyWith(secondary: Colors.grey[850]),
),
home: const HomeScreen(),
initialRoute: "/",
routes: {
'/mywallets': (context) => const WalletsHome(),
'/search': (context) => const SearchScreen(),
'/searchResult': (context) => const SearchResultScreen(),
},
);
}
}

View File

@ -2,11 +2,12 @@ import 'dart:convert';
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gecko/globals.dart';
import 'package:path_provider/path_provider.dart';
// import 'package:http/http.dart' as http;
class CesiumPlusProvider with ChangeNotifier {
class CesiumPlusProvider extends ChangeNotifier {
TextEditingController cesiumName = TextEditingController();
CancelToken avatarCancelToken = CancelToken();
@ -157,3 +158,8 @@ class CesiumPlusProvider with ChangeNotifier {
Image defaultAvatar(double size) =>
Image.asset(('assets/icon_user.png'), height: size);
final cesiumPlusProvider = ChangeNotifierProvider<CesiumPlusProvider>((ref) {
return CesiumPlusProvider();
});

View File

@ -9,16 +9,16 @@ import 'package:gecko/providers/my_wallets.dart';
import 'package:gecko/providers/substrate_sdk.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class ChestProvider with ChangeNotifier {
class ChestProvider extends ChangeNotifier {
void reload() {
notifyListeners();
}
Future deleteChest(context, ChestData chest) async {
final bool? answer = await (_confirmDeletingChest(context, chest.name));
final sub = Provider.of<SubstrateSdk>(context, listen: false);
final subR = Provider.of<SubstrateSdk>(context, listen: false);
if (answer ?? false) {
await sub.deleteAccounts(getChestWallets(chest));
await subR.deleteAccounts(getChestWallets(chest));
await chestBox.delete(chest.key);
final myWalletProvider =
Provider.of<MyWalletsProvider>(context, listen: false);
@ -77,3 +77,7 @@ class ChestProvider with ChangeNotifier {
);
}
}
final chestProvider = ChangeNotifierProvider<ChestProvider>((ref) {
return ChestProvider();
});

View File

@ -4,12 +4,13 @@ import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/models/queries_indexer.dart';
import 'package:gecko/providers/substrate_sdk.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
class DuniterIndexer with ChangeNotifier {
class DuniterIndexer extends ChangeNotifier {
Map<String, String?> walletNameIndexer = {};
String? fetchMoreCursor;
Map? pageInfo;
@ -330,3 +331,7 @@ int weekNumber(DateTime date) {
int dayOfYear = int.parse(DateFormat("D").format(date));
return ((dayOfYear - date.weekday + 10) / 7).floor();
}
final duniterIndexer = ChangeNotifierProvider<DuniterIndexer>((ref) {
return DuniterIndexer();
});

View File

@ -14,7 +14,7 @@ import 'package:polkawallet_sdk/api/apiKeyring.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import "package:unorm_dart/unorm_dart.dart" as unorm;
class GenerateWalletsProvider with ChangeNotifier {
class GenerateWalletsProvider extends ChangeNotifier {
GenerateWalletsProvider();
// NewWallet generatedWallet;
durt.NewWallet? actualWallet;
@ -468,3 +468,7 @@ class GenerateWalletsProvider with ChangeNotifier {
}
}
}
final generateWalletsProvider = ChangeNotifierProvider<GenerateWalletsProvider>((ref) {
return GenerateWalletsProvider();
});

View File

@ -20,7 +20,7 @@ import 'package:package_info_plus/package_info_plus.dart';
import 'package:path_provider/path_provider.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class HomeProvider with ChangeNotifier {
class HomeProvider extends ChangeNotifier {
bool? isSearching;
Icon searchIcon = const Icon(Icons.search);
final TextEditingController searchQuery = TextEditingController();

View File

@ -234,8 +234,8 @@ class MyWalletsProvider extends ChangeNotifier {
}
}
// Finally, we are using StateNotifierProvider to allow the UI to interact with
// our TodosNotifier class.
// Finally, we are using StateNotifierProvider to allow the UI to interact with
// our MyWalletsProvider class.
final myWalletsProvider = ChangeNotifierProvider<MyWalletsProvider>((ref) {
return MyWalletsProvider();
});
});

View File

@ -1,8 +1,9 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gecko/models/g1_wallets_list.dart';
import 'package:gecko/providers/wallets_profiles.dart';
class SearchProvider with ChangeNotifier {
class SearchProvider extends ChangeNotifier {
TextEditingController searchController = TextEditingController();
List searchResult = [];
final cacheDuring = 20 * 60 * 1000; //First number is minutes
@ -80,10 +81,6 @@ class SearchProvider with ChangeNotifier {
}
}
// List<G1WalletsList>? _parseG1Wallets(var responseBody) {
// final parsed = responseBody.cast<Map<String, dynamic>>();
// return parsed
// .map<G1WalletsList>((json) => G1WalletsList.fromJson(json))
// .toList();
// }
final searchProvider = ChangeNotifierProvider<SearchProvider>((ref) {
return SearchProvider();
});

View File

@ -1,7 +1,12 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class SettingsProvider with ChangeNotifier {
class SettingsProvider extends ChangeNotifier {
void reload() {
notifyListeners();
}
}
final settingsProvider = ChangeNotifierProvider<SettingsProvider>((ref) {
return SettingsProvider();
});

View File

@ -24,7 +24,7 @@ import 'package:truncate/truncate.dart';
import 'package:pointycastle/pointycastle.dart' as pc;
import "package:hex/hex.dart";
class SubstrateSdk with ChangeNotifier {
class SubstrateSdk extends ChangeNotifier {
final WalletSDK sdk = WalletSDK();
final Keyring keyring = Keyring();
String generatedMnemonic = '';
@ -1139,3 +1139,7 @@ Uint8List _int32bytes(int value) =>
double round(double number, [int decimal = 2]) {
return double.parse((number.toStringAsFixed(decimal)));
}
final sub = ChangeNotifierProvider<SubstrateSdk>((ref) {
return SubstrateSdk();
});

View File

@ -18,7 +18,7 @@ import 'package:image_picker/image_picker.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:image_cropper/image_cropper.dart';
class WalletOptionsProvider with ChangeNotifier {
class WalletOptionsProvider extends ChangeNotifier {
TextEditingController address = TextEditingController();
final TextEditingController _newWalletName = TextEditingController();
bool isWalletUnlock = false;
@ -385,3 +385,8 @@ class WalletOptionsProvider with ChangeNotifier {
return addressGet;
}
}
final walletOptionsProvider =
ChangeNotifierProvider<WalletOptionsProvider>((ref) {
return WalletOptionsProvider();
});

View File

@ -1,6 +1,7 @@
import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/models/g1_wallets_list.dart';
import 'package:gecko/screens/wallet_view.dart';
@ -9,7 +10,7 @@ import 'package:permission_handler/permission_handler.dart';
// import 'package:qrscan/qrscan.dart' as scanner;
import 'package:barcode_scan2/barcode_scan2.dart';
class WalletsProfilesProvider with ChangeNotifier {
class WalletsProfilesProvider extends ChangeNotifier {
WalletsProfilesProvider(this.address);
String address = '';
@ -161,3 +162,8 @@ snackCopySeed(context) {
duration: const Duration(seconds: 4));
ScaffoldMessenger.of(context).showSnackBar(snackBar);
}
final walletsProfilesProvider =
ChangeNotifierProvider<WalletsProfilesProvider>((ref) {
return WalletsProfilesProvider('');
});

View File

@ -13,31 +13,26 @@ import 'package:gecko/widgets/transaction_tile.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class ActivityScreen extends StatefulWidget with ChangeNotifier {
class ActivityScreen extends ConsumerWidget {
ActivityScreen({required this.address, required this.avatar, this.username})
: super(key: keyActivityScreen);
final String address;
final String? username;
final Image avatar;
@override
State<ActivityScreen> createState() => _ActivityScreenState();
}
class _ActivityScreenState extends State<ActivityScreen> {
// @override
// void initState() {
// super.initState();
// }
final ScrollController scrollController = ScrollController();
final double avatarsSize = 80;
FetchMore? fetchMore;
FetchMoreOptions? opts;
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
@override
Widget build(BuildContext context) {
Widget build(BuildContext context, WidgetRef ref) {
return Scaffold(
key: _scaffoldKey,
appBar: AppBar(
@ -50,13 +45,14 @@ class _ActivityScreenState extends State<ActivityScreen> {
),
bottomNavigationBar: const GeckoBottomAppBar(),
body: Column(children: <Widget>[
HeaderProfile(address: widget.address, username: widget.username),
historyQuery(context),
HeaderProfile(address: address, username: username),
historyQuery(ref),
]));
}
Widget historyQuery(context) {
final duniterIndexer = Provider.of<DuniterIndexer>(context, listen: false);
Widget historyQuery(WidgetRef ref) {
final duniterIndexerW = ref.read(duniterIndexer);
int nPage = 1;
int nRepositories = 20;
@ -93,7 +89,7 @@ class _ActivityScreenState extends State<ActivityScreen> {
options: QueryOptions(
document: gql(getHistoryByAddressQ),
variables: <String, dynamic>{
'address': widget.address,
'address': address,
'number': 20,
'cursor': null
},
@ -129,7 +125,7 @@ class _ActivityScreenState extends State<ActivityScreen> {
}
if (result.isNotLoading) {
if (duniterIndexer.fetchMoreCursor == null) nPage = 1;
if (duniterIndexerW.fetchMoreCursor == null) nPage = 1;
// log.d('nPage: $nPage');
@ -143,8 +139,8 @@ class _ActivityScreenState extends State<ActivityScreen> {
nRepositories = 120;
}
nPage++;
opts = duniterIndexer.mergeQueryResult(
result, opts, widget.address, nRepositories);
opts = duniterIndexerW.mergeQueryResult(
result, opts, address, nRepositories);
}
// Build history list
@ -154,7 +150,7 @@ class _ActivityScreenState extends State<ActivityScreen> {
child: ListView(
key: keyListTransactions,
controller: scrollController,
children: <Widget>[historyView(context, result)],
children: <Widget>[historyView(ref, result)],
),
),
),
@ -162,7 +158,7 @@ class _ActivityScreenState extends State<ActivityScreen> {
if (t is ScrollEndNotification &&
scrollController.position.pixels >=
scrollController.position.maxScrollExtent * 0.7 &&
duniterIndexer.pageInfo!['hasNextPage'] &&
duniterIndexerW.pageInfo!['hasNextPage'] &&
result.isNotLoading) {
fetchMore!(opts!);
}
@ -175,15 +171,15 @@ class _ActivityScreenState extends State<ActivityScreen> {
);
}
Widget historyView(context, result) {
final duniterIndexer = Provider.of<DuniterIndexer>(context, listen: false);
Widget historyView(WidgetRef ref, result) {
final duniterIndexerW = ref.read(duniterIndexer);
int keyID = 0;
const double avatarSize = 200;
String? lastDateDelimiter;
bool? isDouble;
bool isMigrationPassed = false;
return duniterIndexer.transBC == null
return duniterIndexerW.transBC == null
? Column(children: <Widget>[
const SizedBox(height: 50),
Text(
@ -193,7 +189,7 @@ class _ActivityScreenState extends State<ActivityScreen> {
])
: Column(children: <Widget>[
Column(
children: duniterIndexer.transBC!.map((repository) {
children: duniterIndexerW.transBC!.map((repository) {
final answer =
computeHistoryView(repository, lastDateDelimiter, isDouble);
isDouble = lastDateDelimiter == answer['dateDelimiter'] ||
@ -229,24 +225,24 @@ class _ActivityScreenState extends State<ActivityScreen> {
),
),
TransactionTile(
widget: widget,
username: username ?? '',
keyID: keyID,
avatarSize: avatarSize,
repository: repository,
dateForm: answer['dateForm'],
finalAmount: answer['finalAmount'],
duniterIndexer: duniterIndexer,
context: context),
duniterIndexer: duniterIndexerW),
]);
}).toList()),
if (result.isLoading && duniterIndexer.pageInfo!['hasPreviousPage'])
if (result.isLoading &&
duniterIndexerW.pageInfo!['hasPreviousPage'])
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: const <Widget>[
CircularProgressIndicator(),
],
),
if (!duniterIndexer.pageInfo!['hasNextPage'])
if (!duniterIndexerW.pageInfo!['hasNextPage'])
Column(
children: const <Widget>[
SizedBox(height: 15),

View File

@ -1,5 +1,6 @@
import 'package:accordion/controllers.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gecko/globals.dart';
import 'package:flutter/material.dart';
import 'package:gecko/widgets/certs_received.dart';
@ -7,7 +8,7 @@ import 'package:gecko/widgets/certs_counter.dart';
import 'package:gecko/widgets/certs_sent.dart';
import 'package:accordion/accordion.dart';
class CertificationsScreen extends StatelessWidget {
class CertificationsScreen extends ConsumerWidget {
const CertificationsScreen(
{Key? key, required this.address, required this.username})
: super(key: key);
@ -15,7 +16,7 @@ class CertificationsScreen extends StatelessWidget {
final String username;
@override
Widget build(BuildContext context) {
Widget build(BuildContext context, WidgetRef ref) {
return Scaffold(
backgroundColor: backgroundColor,
appBar: AppBar(

View File

@ -13,7 +13,7 @@ import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class ChangePinScreen extends StatelessWidget with ChangeNotifier {
class ChangePinScreen extends ConsumerWidget extends ChangeNotifier {
ChangePinScreen(
{Key? keyMyWallets,
required this.walletName,

View File

@ -18,7 +18,7 @@ import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
import 'package:gecko/widgets/bottom_app_bar.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class ChestOptions extends StatelessWidget {
class ChestOptions extends ConsumerWidget {
const ChestOptions({Key? keyMyWallets, required this.walletProvider})
: super(key: keyMyWallets);
final MyWalletsProvider walletProvider;

View File

@ -16,7 +16,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
// import 'package:gecko/models/home.dart';
// import 'package:flutter_riverpod/flutter_riverpod.dart';
class ChooseWalletScreen extends StatelessWidget {
class ChooseWalletScreen extends ConsumerWidget {
ChooseWalletScreen({Key? key, required this.pin}) : super(key: key);
final String pin;
WalletData? selectedWallet;

View File

@ -18,7 +18,7 @@ import 'package:gecko/widgets/certifications.dart';
import 'package:gecko/widgets/idty_status.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class ImportG1v1 extends StatelessWidget {
class ImportG1v1 extends ConsumerWidget {
const ImportG1v1({Key? key}) : super(key: key);
@override

View File

@ -21,7 +21,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
// import 'package:gecko/screens/transaction_in_progress.dart';
// import 'package:flutter_riverpod/flutter_riverpod.dart';
class ManageMembership extends StatelessWidget {
class ManageMembership extends ConsumerWidget {
const ManageMembership({Key? key, required this.address}) : super(key: key);
final String address;

View File

@ -15,7 +15,7 @@ import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
import 'package:gecko/screens/transaction_in_progress.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class MigrateIdentityScreen extends StatelessWidget {
class MigrateIdentityScreen extends ConsumerWidget {
const MigrateIdentityScreen({Key? key}) : super(key: key);
@override

View File

@ -13,7 +13,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
// import 'package:gecko/models/home.dart';
// import 'package:flutter_riverpod/flutter_riverpod.dart';
class RestoreChest extends StatelessWidget {
class RestoreChest extends ConsumerWidget {
const RestoreChest({Key? key, this.skipIntro = false}) : super(key: key);
final bool skipIntro;

View File

@ -14,7 +14,7 @@ import 'package:printing/printing.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:pdf/widgets.dart' as pw;
class ShowSeed extends StatelessWidget {
class ShowSeed extends ConsumerWidget {
const ShowSeed(
{Key? keyMyWallets,
required this.walletName,
@ -204,7 +204,7 @@ class ShowSeed extends StatelessWidget {
}
}
class PrintWallet extends StatelessWidget {
class PrintWallet extends ConsumerWidget {
const PrintWallet(this.sentence, {Key? key}) : super(key: key);
final String? sentence;

View File

@ -16,7 +16,7 @@ import 'package:pin_code_fields/pin_code_fields.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gecko/globals.dart';
class UnlockingWallet extends StatelessWidget {
class UnlockingWallet extends ConsumerWidget {
UnlockingWallet({required this.wallet}) : super(key: keyUnlockWallet);
WalletData wallet;
late int currentChestNumber;

View File

@ -26,7 +26,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:qr_flutter/qr_flutter.dart';
class WalletOptions extends StatelessWidget {
class WalletOptions extends ConsumerWidget {
const WalletOptions({Key? keyMyWallets, required this.wallet})
: super(key: keyMyWallets);
final WalletData wallet;

View File

@ -30,13 +30,13 @@ class WalletsHome extends ConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
// final myWalletProvider = Provider.of<MyWalletsProvider>(context);
final listWallets = ref.watch(myWalletsProvider).listWallets;
// final myWalletsProviderR = Provider.of<MyWalletsProvider>(context);
final myWalletsProviderR = ref.read(myWalletsProvider);
final currentChestNumber = myWalletProvider.getCurrentChest();
final currentChestNumber = myWalletsProviderR.getCurrentChest();
final ChestData currentChest = chestBox.get(currentChestNumber)!;
myWalletProvider.listWallets =
myWalletProvider.readAllWallets(currentChestNumber);
myWalletsProviderR.listWallets =
myWalletsProviderR.readAllWallets(currentChestNumber);
return WillPopScope(
onWillPop: () {
@ -72,7 +72,7 @@ class WalletsHome extends ConsumerWidget {
),
backgroundColor: const Color(0xffFFD58D),
),
bottomNavigationBar: myWalletProvider.lastFlyBy == ''
bottomNavigationBar: myWalletsProviderR.lastFlyBy == ''
? const GeckoBottomAppBar(
actualRoute: 'safeHome',
)
@ -88,16 +88,16 @@ class WalletsHome extends ConsumerWidget {
}
Widget dragInfo(BuildContext context) {
final myWalletProvider =
final myWalletsProviderR =
Provider.of<MyWalletsProvider>(context, listen: false);
final walletDataFrom =
myWalletProvider.getWalletDataByAddress(myWalletProvider.dragAddress);
final walletDataFrom = myWalletsProviderR
.getWalletDataByAddress(myWalletsProviderR.dragAddress);
final walletDataTo =
myWalletProvider.getWalletDataByAddress(myWalletProvider.lastFlyBy);
myWalletsProviderR.getWalletDataByAddress(myWalletsProviderR.lastFlyBy);
final bool isSameAddress =
myWalletProvider.dragAddress == myWalletProvider.lastFlyBy;
myWalletsProviderR.dragAddress == myWalletsProviderR.lastFlyBy;
final screenWidth = MediaQuery.of(homeContext).size.width;
return Container(
@ -118,7 +118,7 @@ class WalletsHome extends ConsumerWidget {
);
}
Widget chestOptions(BuildContext context, final myWalletProvider) {
Widget chestOptions(BuildContext context, final myWalletsProviderR) {
return Column(children: [
const SizedBox(height: 50),
SizedBox(
@ -136,7 +136,7 @@ class WalletsHome extends ConsumerWidget {
onPressed: () => Navigator.push(
context,
MaterialPageRoute(builder: (context) {
return ChestOptions(walletProvider: myWalletProvider);
return ChestOptions(walletProvider: myWalletsProviderR);
}),
),
label: Text(
@ -208,10 +208,10 @@ class WalletsHome extends ConsumerWidget {
}
Widget myWalletsTiles(BuildContext context, int currentChestNumber) {
final myWalletProvider = Provider.of<MyWalletsProvider>(context);
final myWalletsProviderR = Provider.of<MyWalletsProvider>(context);
final walletOptions =
Provider.of<WalletOptionsProvider>(context, listen: false);
final bool isWalletsExists = myWalletProvider.checkIfWalletExist();
final bool isWalletsExists = myWalletsProviderR.checkIfWalletExist();
final sub = Provider.of<SubstrateSdk>(context, listen: false);
final duniterIndexer = Provider.of<DuniterIndexer>(context, listen: false);
@ -219,7 +219,7 @@ class WalletsHome extends ConsumerWidget {
return const Text('');
}
if (myWalletProvider.listWallets.isEmpty) {
if (myWalletsProviderR.listWallets.isEmpty) {
return Expanded(
child: Column(children: const <Widget>[
Center(
@ -231,12 +231,12 @@ class WalletsHome extends ConsumerWidget {
}
// Get wallet list and sort by derivation number
List<WalletData> listWallets = myWalletProvider.listWallets;
List<WalletData> listWallets = myWalletsProviderR.listWallets;
listWallets.sort((p1, p2) {
return Comparable.compare(p1.number!, p2.number!);
});
WalletData? defaultWallet = myWalletProvider.getDefaultWallet();
WalletData? defaultWallet = myWalletsProviderR.getDefaultWallet();
final screenWidth = MediaQuery.of(context).size.width;
int nTule = 2;
@ -269,11 +269,11 @@ class WalletsHome extends ConsumerWidget {
// feedbackOffset: const Offset(-500, -500),
// dragAnchorStrategy: childDragAnchorStrategy,
onDragStarted: () =>
myWalletProvider.dragAddress = repository.address,
myWalletsProviderR.dragAddress = repository.address,
onDragEnd: (_) {
myWalletProvider.lastFlyBy = '';
myWalletProvider.dragAddress = '';
myWalletProvider.reload();
myWalletsProviderR.lastFlyBy = '';
myWalletsProviderR.dragAddress = '';
myWalletsProviderR.reload();
},
feedback: ElevatedButton(
onPressed: () {},
@ -291,16 +291,16 @@ class WalletsHome extends ConsumerWidget {
onAccept: (senderAddress) async {
log.d(
'INTERPAY: sender: $senderAddress --- receiver: ${repository.address}');
final walletData = myWalletProvider
final walletData = myWalletsProviderR
.getWalletDataByAddress(senderAddress);
await sub.setCurrentWallet(walletData!);
sub.reload();
paymentPopup(context, repository.address);
},
onMove: (details) {
if (repository.address != myWalletProvider.lastFlyBy) {
myWalletProvider.lastFlyBy = repository.address;
myWalletProvider.reload();
if (repository.address != myWalletsProviderR.lastFlyBy) {
myWalletsProviderR.lastFlyBy = repository.address;
myWalletsProviderR.reload();
}
},
onWillAccept: (senderAddress) =>
@ -430,7 +430,7 @@ class WalletsHome extends ConsumerWidget {
: const Text('');
}),
]),
SliverToBoxAdapter(child: chestOptions(context, myWalletProvider)),
SliverToBoxAdapter(child: chestOptions(context, myWalletsProviderR)),
]);
}
@ -458,10 +458,10 @@ class WalletsHome extends ConsumerWidget {
}
Widget addNewDerivation(context) {
final myWalletProvider = Provider.of<MyWalletsProvider>(context);
final myWalletsProviderR = Provider.of<MyWalletsProvider>(context);
String newDerivationName =
'${'wallet'.tr()} ${myWalletProvider.listWallets.last.number! + 2}';
'${'wallet'.tr()} ${myWalletsProviderR.listWallets.last.number! + 2}';
return Padding(
padding: const EdgeInsets.all(16),
child: ClipRRect(
@ -471,11 +471,11 @@ class WalletsHome extends ConsumerWidget {
child: InkWell(
key: keyAddDerivation,
onTap: () async {
if (!myWalletProvider.isNewDerivationLoading) {
if (!myWalletsProviderR.isNewDerivationLoading) {
WalletData? defaultWallet =
myWalletProvider.getDefaultWallet();
myWalletsProviderR.getDefaultWallet();
String? pin;
if (myWalletProvider.pinCode == '') {
if (myWalletsProviderR.pinCode == '') {
pin = await Navigator.push(
context,
MaterialPageRoute(
@ -485,8 +485,8 @@ class WalletsHome extends ConsumerWidget {
),
);
}
if (pin != null || myWalletProvider.pinCode != '') {
await myWalletProvider.generateNewDerivation(
if (pin != null || myWalletsProviderR.pinCode != '') {
await myWalletsProviderR.generateNewDerivation(
context, newDerivationName);
}
}
@ -496,7 +496,7 @@ class WalletsHome extends ConsumerWidget {
height: double.infinity,
decoration: const BoxDecoration(color: floattingYellow),
child: Center(
child: myWalletProvider.isNewDerivationLoading
child: myWalletsProviderR.isNewDerivationLoading
? const SizedBox(
height: 60,
width: 60,
@ -532,7 +532,7 @@ class CustomClipperOval extends CustomClipper<Rect> {
}
}
class ClipOvalShadow extends StatelessWidget {
class ClipOvalShadow extends ConsumerWidget {
final Shadow shadow;
final CustomClipper<Rect> clipper;
final Widget child;

View File

@ -9,7 +9,7 @@ import 'package:gecko/widgets/bottom_app_bar.dart';
import 'package:gecko/widgets/contacts_list.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class ContactsScreen extends StatelessWidget {
class ContactsScreen extends ConsumerWidget {
const ContactsScreen({Key? key}) : super(key: key);
@override

View File

@ -6,7 +6,7 @@ import 'package:gecko/globals.dart';
import 'package:gecko/screens/common_elements.dart';
import 'package:gecko/screens/onBoarding/2.dart';
class OnboardingStepOne extends StatelessWidget {
class OnboardingStepOne extends ConsumerWidget {
const OnboardingStepOne({Key? key}) : super(key: key);
@override

View File

@ -18,7 +18,7 @@ import 'package:gecko/screens/onBoarding/11_congratulations.dart';
import 'package:pin_code_fields/pin_code_fields.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class OnboardingStepTen extends StatelessWidget {
class OnboardingStepTen extends ConsumerWidget {
OnboardingStepTen({Key? validationKey, this.scanDerivation = false})
: super(key: validationKey);

View File

@ -7,7 +7,7 @@ import 'package:gecko/globals.dart';
import 'package:gecko/models/widgets_keys.dart';
import 'package:gecko/screens/common_elements.dart';
class OnboardingStepEleven extends StatelessWidget {
class OnboardingStepEleven extends ConsumerWidget {
const OnboardingStepEleven({Key? key}) : super(key: key);
@override

View File

@ -7,7 +7,7 @@ import 'package:gecko/globals.dart';
import 'package:gecko/screens/common_elements.dart';
import 'package:gecko/screens/onBoarding/3.dart';
class OnboardingStepTwo extends StatelessWidget {
class OnboardingStepTwo extends ConsumerWidget {
const OnboardingStepTwo({Key? key}) : super(key: key);
@override

View File

@ -7,7 +7,7 @@ import 'package:gecko/globals.dart';
import 'package:gecko/screens/common_elements.dart';
import 'package:gecko/screens/onBoarding/4.dart';
class OnboardingStepThree extends StatelessWidget {
class OnboardingStepThree extends ConsumerWidget {
const OnboardingStepThree({Key? key}) : super(key: key);
@override

View File

@ -7,7 +7,7 @@ import 'package:gecko/globals.dart';
import 'package:gecko/screens/common_elements.dart';
import 'package:gecko/screens/onBoarding/5.dart';
class OnboardingStepFor extends StatelessWidget {
class OnboardingStepFor extends ConsumerWidget {
const OnboardingStepFor({Key? key}) : super(key: key);
@override

View File

@ -220,7 +220,7 @@ Widget arrayCell(dataWord) {
);
}
class PrintWallet extends StatelessWidget {
class PrintWallet extends ConsumerWidget {
const PrintWallet(this.sentence, {Key? key}) : super(key: key);
final String? sentence;

View File

@ -12,7 +12,7 @@ import 'package:gecko/screens/onBoarding/7.dart';
import 'package:gecko/screens/onBoarding/9.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class OnboardingStepSix extends StatelessWidget {
class OnboardingStepSix extends ConsumerWidget {
OnboardingStepSix(
{Key? key, required this.skipIntro, required this.generatedMnemonic})
: super(key: key);

View File

@ -6,7 +6,7 @@ import 'package:gecko/globals.dart';
import 'package:gecko/screens/common_elements.dart';
import 'package:gecko/screens/onBoarding/8.dart';
class OnboardingStepSeven extends StatelessWidget {
class OnboardingStepSeven extends ConsumerWidget {
const OnboardingStepSeven({Key? key, this.scanDerivation = false})
: super(key: key);
final bool scanDerivation;

View File

@ -6,7 +6,7 @@ import 'package:gecko/globals.dart';
import 'package:gecko/screens/common_elements.dart';
import 'package:gecko/screens/onBoarding/9.dart';
class OnboardingStepEight extends StatelessWidget {
class OnboardingStepEight extends ConsumerWidget {
const OnboardingStepEight({Key? key, this.scanDerivation = false})
: super(key: key);
final bool scanDerivation;

View File

@ -9,7 +9,7 @@ import 'package:gecko/screens/common_elements.dart';
import 'package:gecko/screens/onBoarding/10.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class OnboardingStepNine extends StatelessWidget {
class OnboardingStepNine extends ConsumerWidget {
const OnboardingStepNine({Key? key, this.scanDerivation = false})
: super(key: key);
final bool scanDerivation;

View File

@ -1,5 +1,6 @@
// ignore_for_file: must_be_immutable
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gecko/globals.dart';
import 'package:flutter/material.dart';
import 'package:gecko/providers/substrate_sdk.dart';
@ -7,7 +8,7 @@ import 'package:qr_flutter/qr_flutter.dart';
// import 'package:gecko/models/home.dart';
// import 'package:flutter_riverpod/flutter_riverpod.dart';
class QrCodeFullscreen extends StatelessWidget {
class QrCodeFullscreen extends ConsumerWidget {
TextEditingController tplController = TextEditingController();
QrCodeFullscreen(this.address, {this.color, Key? key}) : super(key: key);

View File

@ -10,7 +10,7 @@ import 'package:gecko/widgets/bottom_app_bar.dart';
import 'package:gecko/widgets/search_result_list.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class SearchResultScreen extends StatelessWidget {
class SearchResultScreen extends ConsumerWidget {
const SearchResultScreen({Key? key}) : super(key: key);
@override

View File

@ -11,13 +11,13 @@ import 'package:gecko/globals.dart';
import 'package:polkawallet_sdk/api/types/networkParams.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class SettingsScreen extends StatelessWidget {
class SettingsScreen extends ConsumerWidget {
final MyWalletsProvider _myWallets = MyWalletsProvider();
SettingsScreen({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
Widget build(BuildContext context, WidgetRef ref) {
const double buttonHigh = 50;
const double buttonWidth = 240;
const double fontSize = 16;
@ -77,9 +77,10 @@ class SettingsScreen extends StatelessWidget {
);
}
Widget chooseCurrencyUnit(BuildContext context) {
HomeProvider homeProvider =
Provider.of<HomeProvider>(context, listen: false);
Widget chooseCurrencyUnit(BuildContext context, WidgetRef ref) {
// HomeProvider homeProvider =
// Provider.of<HomeProvider>(context, listen: false);
final homeProviderR = ref.read(myWalletsProvider);
return InkWell(
key: keyUdUnit,
onTap: () async {

View File

@ -1,11 +1,12 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gecko/globals.dart';
import 'package:flutter/material.dart';
class TemplateScreen extends StatelessWidget {
class TemplateScreen extends ConsumerWidget {
const TemplateScreen({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
Widget build(BuildContext context, WidgetRef ref) {
// final _homeProvider = Provider.of<HomeProvider>(context);
return Scaffold(

View File

@ -10,7 +10,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
// import 'package:gecko/models/home.dart';
// import 'package:flutter_riverpod/flutter_riverpod.dart';
class TransactionInProgress extends StatelessWidget {
class TransactionInProgress extends ConsumerWidget {
const TransactionInProgress(
{Key? key, this.transType = 'pay', this.fromAddress, this.toAddress})
: super(key: key);

View File

@ -27,7 +27,7 @@ import 'package:gecko/widgets/page_route_no_transition.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:qr_flutter/qr_flutter.dart';
class WalletViewScreen extends StatelessWidget {
class WalletViewScreen extends ConsumerWidget {
const WalletViewScreen(
{required this.address, required this.username, this.avatar, Key? key})
: super(key: key);

View File

@ -5,7 +5,7 @@ import 'package:gecko/providers/wallet_options.dart';
import 'package:gecko/widgets/ud_unit_display.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class Balance extends StatelessWidget {
class Balance extends ConsumerWidget {
const Balance(
{Key? key,
required this.address,
@ -20,8 +20,9 @@ class Balance extends StatelessWidget {
@override
Widget build(BuildContext context) {
final walletOptions =
final walletOptionsR =
Provider.of<WalletOptionsProvider>(context, listen: false);
final homeProviderR = ref.read(myWalletsProvider);
return Column(children: <Widget>[
Consumer<SubstrateSdk>(builder: (context, sdk, _) {
return FutureBuilder(
@ -30,10 +31,10 @@ class Balance extends StatelessWidget {
AsyncSnapshot<Map<String, double>> globalBalance) {
if (globalBalance.connectionState != ConnectionState.done ||
globalBalance.hasError) {
if (walletOptions.balanceCache[address] != null &&
walletOptions.balanceCache[address] != -1) {
if (walletOptionsR.balanceCache[address] != null &&
walletOptionsR.balanceCache[address] != -1) {
return Row(children: [
Text(walletOptions.balanceCache[address]!.toString(),
Text(walletOptionsR.balanceCache[address]!.toString(),
style: TextStyle(
fontSize: isTall ? size : size * 0.9,
color: color)),
@ -51,12 +52,12 @@ class Balance extends StatelessWidget {
);
}
}
walletOptions.balanceCache[address] =
walletOptionsR.balanceCache[address] =
globalBalance.data!['transferableBalance']!;
if (walletOptions.balanceCache[address] != -1) {
if (walletOptionsR.balanceCache[address] != -1) {
return Row(children: [
Text(
walletOptions.balanceCache[address]!.toString(),
walletOptionsR.balanceCache[address]!.toString(),
style: TextStyle(
fontSize: isTall ? size : size * 0.9,
color: color,

View File

@ -12,7 +12,7 @@ import 'package:gecko/screens/myWallets/wallets_home.dart';
import 'package:gecko/screens/search.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class GeckoBottomAppBar extends StatelessWidget {
class GeckoBottomAppBar extends ConsumerWidget {
const GeckoBottomAppBar({Key? key, this.actualRoute = ''}) : super(key: key);
final String actualRoute;

View File

@ -5,7 +5,7 @@ import 'package:gecko/providers/cesium_plus.dart';
import 'package:gecko/providers/substrate_sdk.dart';
import 'package:gecko/screens/wallet_view.dart';
class CertTile extends StatelessWidget {
class CertTile extends ConsumerWidget {
const CertTile({
Key? key,
required this.listCerts,

View File

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:gecko/providers/substrate_sdk.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class Certifications extends StatelessWidget {
class Certifications extends ConsumerWidget {
const Certifications(
{Key? key,
required this.address,

View File

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:gecko/providers/substrate_sdk.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class CertsCounter extends StatelessWidget {
class CertsCounter extends ConsumerWidget {
const CertsCounter({Key? key, required this.address, this.isSent = false})
: super(key: key);
final String address;

View File

@ -1,12 +1,13 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/models/queries_indexer.dart';
import 'package:gecko/models/widgets_keys.dart';
import 'package:gecko/widgets/cert_tile.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
class CertsReceived extends StatelessWidget {
class CertsReceived extends ConsumerWidget {
const CertsReceived({Key? key, required this.address}) : super(key: key);
final String address;

View File

@ -1,12 +1,13 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/models/queries_indexer.dart';
import 'package:gecko/models/widgets_keys.dart';
import 'package:gecko/widgets/cert_tile.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
class CertsSent extends StatelessWidget {
class CertsSent extends ConsumerWidget {
const CertsSent({Key? key, required this.address}) : super(key: key);
final String address;

View File

@ -12,7 +12,7 @@ import 'package:gecko/screens/wallet_view.dart';
import 'package:gecko/widgets/balance.dart';
import 'package:gecko/widgets/name_by_address.dart';
class ContactsList extends StatelessWidget {
class ContactsList extends ConsumerWidget {
const ContactsList({
Key? key,
required this.myContacts,

View File

@ -15,7 +15,7 @@ import 'package:gecko/widgets/idty_status.dart';
import 'package:gecko/widgets/page_route_no_transition.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class HeaderProfile extends StatelessWidget {
class HeaderProfile extends ConsumerWidget {
const HeaderProfile({
Key? key,
required this.address,

View File

@ -7,7 +7,7 @@ import 'package:gecko/widgets/animated_text.dart';
import 'package:gecko/widgets/name_by_address.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class IdentityStatus extends StatelessWidget {
class IdentityStatus extends ConsumerWidget {
const IdentityStatus(
{Key? key,
required this.address,

View File

@ -9,7 +9,7 @@ import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:truncate/truncate.dart';
class NameByAddress extends StatelessWidget {
class NameByAddress extends ConsumerWidget {
const NameByAddress(
{Key? key,
required this.wallet,

View File

@ -13,7 +13,7 @@ import 'package:gecko/widgets/balance.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class SearchIdentityQuery extends StatelessWidget {
class SearchIdentityQuery extends ConsumerWidget {
const SearchIdentityQuery({Key? key, required this.name}) : super(key: key);
final String name;

View File

@ -13,7 +13,7 @@ import 'package:gecko/widgets/balance.dart';
import 'package:gecko/widgets/name_by_address.dart';
import 'package:gecko/widgets/search_identity_query.dart';
class SearchResult extends StatelessWidget {
class SearchResult extends ConsumerWidget {
const SearchResult({
Key? key,
required this.searchProvider,

View File

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:gecko/providers/substrate_sdk.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class TemplateWidget extends StatelessWidget {
class TemplateWidget extends ConsumerWidget {
const TemplateWidget(
{Key? key, required this.address, this.color = Colors.black})
: super(key: key);

View File

@ -1,36 +1,34 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:gecko/models/widgets_keys.dart';
import 'package:gecko/providers/cesium_plus.dart';
import 'package:gecko/providers/duniter_indexer.dart';
import 'package:gecko/providers/substrate_sdk.dart';
import 'package:gecko/screens/activity.dart';
import 'package:gecko/screens/wallet_view.dart';
import 'package:gecko/widgets/page_route_no_transition.dart';
class TransactionTile extends StatelessWidget {
class TransactionTile extends ConsumerWidget {
const TransactionTile({
Key? key,
required this.widget,
required this.username,
required this.keyID,
required this.avatarSize,
required this.repository,
required this.dateForm,
required this.finalAmount,
required this.duniterIndexer,
required this.context,
}) : super(key: key);
final ActivityScreen widget;
final String username;
final int keyID;
final double avatarSize;
final List repository;
final String dateForm;
final String finalAmount;
final DuniterIndexer duniterIndexer;
final BuildContext context;
@override
Widget build(BuildContext context) {
Widget build(BuildContext context, WidgetRef ref) {
final newKey = keyID + 1;
return Padding(
padding: const EdgeInsets.only(right: 0),
@ -85,7 +83,7 @@ class TransactionTile extends StatelessWidget {
PageNoTransit(builder: (context) {
return WalletViewScreen(
address: repository[1],
username: widget.username ?? '',
username: username,
);
}),
);

View File

@ -2,7 +2,7 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
class UdUnitDisplay extends StatelessWidget {
class UdUnitDisplay extends ConsumerWidget {
const UdUnitDisplay({
Key? key,
required this.size,

View File

@ -3,7 +3,7 @@ import 'package:gecko/globals.dart';
import 'package:gecko/models/wallet_data.dart';
import 'package:truncate/truncate.dart';
class WalletName extends StatelessWidget {
class WalletName extends ConsumerWidget {
const WalletName(
{Key? key,
required this.wallet,