BIG WIP
This commit is contained in:
parent
79e12eb44b
commit
8b40b706b7
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
101
lib/main.dart
101
lib/main.dart
|
@ -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(),
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
|
|
@ -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('');
|
||||
});
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
);
|
||||
}),
|
||||
);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue