Skip to content
Snippets Groups Projects
substrate_sandbox.dart 7.83 KiB
import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/models/stateful_wrapper.dart';
import 'package:gecko/providers/substrate_sdk.dart';
import 'package:provider/provider.dart';

class SubstrateSandBox extends StatelessWidget {
  const SubstrateSandBox({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    // SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);

    return StatefulWrapper(
      onInit: () async {
        // if (!_sub.sdkReady && !_sub.sdkLoading) await _sub.initApi();
        // if (_sub.sdkReady && !_sub.nodeConnected) await _sub.connectNode();
      },
      child: Scaffold(
        appBar: AppBar(
          toolbarHeight: 60 * ratio,
          title: const SizedBox(
            height: 22,
            child: Text('Substrate Sandbox'),
          ),
        ),
        body: SafeArea(
          child: Consumer<SubstrateSdk>(builder: (context, _sub, _) {
            return SingleChildScrollView(
              child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: <Widget>[
                    Text('js-api chargé ?: ${_sub.sdkReady}'),
                    InkWell(
                        onTap: () async {
                          await _sub.connectNode(context);
                        },
                        child: Text(
                            'Noeud connecté ?: ${_sub.nodeConnected} (${configBox.get('endpoint')})')),
                    if (_sub.nodeConnected)
                      Text(
                          'Noeud "${_sub.sdk.api.connectedNode!.name}", bloc N°${_sub.blocNumber}'),
                    const SizedBox(height: 20),
                    Row(children: [
                      const Text('Liste des coffres:'),
                      const Spacer(),
                      InkWell(
                        child: Image.asset(
                          'assets/walletOptions/trash.png',
                          height: 35,
                        ),
                        onTap: () async {
                          await _sub.deleteAllAccounts();
                          _sub.reload();
                        },
                      ),
                      const SizedBox(width: 10),
                    ]),
                    FutureBuilder(
                        future: _sub.getKeyStoreAddress(),
                        builder: (BuildContext context,
                            AsyncSnapshot<List<AddressInfo>> _data) {
                          return Column(children: [
                            if (_data.data != null)
                              for (final AddressInfo addressInfo in _data.data!)
                                Row(children: [
                                  InkWell(
                                    onTap: () => _sub.keyring.setCurrent(_sub
                                        .keyring.keyPairs
                                        .firstWhere((element) =>