Skip to content
Snippets Groups Projects
Select Git revision
  • f70b9b30b4dd893cf04eba7e0a449f86f8cb3f40
  • master default protected
  • tmp
  • refactoWidgetInsteadMethods
  • implementLightnode
  • subscribesSplit
  • hugo_RML16
  • refactorOnboardingSlideshow
  • duniterV1Latest
  • scanNetwork
  • dubp_rs
  • v0.0.12+34
  • v0.0.12+33
  • v0.0.11+32
  • v0.0.11+31
  • v0.0.11+30
  • v0.0.11+28
  • v0.0.10+27
  • v0.0.10+26
  • v0.0.10+25
  • v0.0.9+24
  • v0.0.9+23
  • v0.0.9+20
  • v0.0.9+19
  • v0.0.9+18
  • v0.0.9+17
  • v0.0.9+16
  • v0.0.9+15
  • v0.0.9+14
  • v0.0.9+13
  • v0.0.9+12
31 results

home.dart

Blame
  • Forked from clients / Ğecko
    761 commits behind, 4 commits ahead of the upstream repository.
    home.dart 9.86 KiB
    import 'dart:collection';
    import 'dart:convert';
    import 'dart:io';
    import 'dart:math';
    import 'package:audioplayers/audio_cache.dart';
    import 'package:audioplayers/audioplayers.dart';
    import 'package:flutter/foundation.dart';
    import 'package:flutter/material.dart';
    import 'package:flutter/services.dart';
    import 'dart:async';
    import 'package:gecko/globals.dart';
    import 'package:gecko/screens/history.dart';
    import 'package:gecko/screens/myWallets/walletsHome.dart';
    import 'package:graphql_flutter/graphql_flutter.dart';
    import 'package:package_info/package_info.dart';
    import 'package:path_provider/path_provider.dart';
    
    class HomeProvider with ChangeNotifier {
      int _currentIndex = 0;
      bool isSearching;
      Icon searchIcon = Icon(Icons.search);
      final TextEditingController searchQuery = new TextEditingController();
      Widget appBarTitle = Text('Ğecko', style: TextStyle(color: Colors.grey[850]));
      Widget appBarExplorer =
          Text('Explorateur', style: TextStyle(color: Colors.grey[850]));
    
      List currentTab = [HistoryScreen(), WalletsHome()];
      AudioCache player = AudioCache(prefix: 'sounds/');
    
      get currentIndex => _currentIndex;
    
      set currentIndex(int index) {
        _currentIndex = index;
        notifyListeners();
      }
    
      Future<String> getAppVersion() async {
        String version;
        String buildNumber;
        if (Platform.isLinux) {
          version = "undefined";
          buildNumber = "undefined";
        } else {
          PackageInfo packageInfo = await PackageInfo.fromPlatform();
          version = packageInfo.version;
          buildNumber = packageInfo.buildNumber;
        }
    
        notifyListeners();
        return version + '+' + buildNumber;
      }
    
      Future<List<String>> scanNetwork() async {
        // TODO: return all known endpoints from current window
        // - Request all bootstrap endpoints to get theres current bloc number and hash (blockstamps), and theres known endpoinds
        // - Store them in an ordered Map (SplayTreeMap<Blockstamp, HashSet<String>>) (the HashSet is a endpoint)
        // - Request 5 randoms endpoints known by the last slave, only theses we don't even know
        // - Do it 3 times
        // - We iterate the Map to determinat the consensus with for loop, intinital consensus variable to null
        // - if consensus == null -> if blockstamp > (1/3 known endpoints) -> consensus = blockstamp
        // - elif blockstamp.number == consensus.number && blockstamp.endpointNumbers > consensus.endpointNumbers -> consensus = blockstamp
        // - else break;
        // - return map.get(key: consensus).toList
    
        var blockstampMap = SplayTreeMap<Blockstamp, List<String>>();
    
        List _endpointsToScan = [];
        _endpointsToScan = await rootBundle
            .loadString('config/gva_endpoints.json')
            .then((jsonStr) => jsonDecode(jsonStr));