Delete wallet only if has no consumers
This commit is contained in:
parent
20c5ebafcc
commit
89c52ab8d7
|
@ -240,12 +240,13 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
return _certData;
|
return _certData;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Future<bool> isAccountExit(String address) async {
|
Future<bool> hasAccountConsumers(String address) async {
|
||||||
// final _accountInfo = await sdk.webView!
|
final _accountInfo = await sdk.webView!
|
||||||
// .evalJavascript('api.query.system.account("$address")');
|
.evalJavascript('api.query.system.account("$address")');
|
||||||
// final _randomId = _accountInfo['data']['randomId'];
|
final _consumers = _accountInfo['consumers'];
|
||||||
// return _randomId == null ? false : true;
|
// log.d('Consumers: $_consumers');
|
||||||
// }
|
return _consumers == 0 ? false : true;
|
||||||
|
}
|
||||||
|
|
||||||
Future<double> getBalance(String address, {bool isUd = false}) async {
|
Future<double> getBalance(String address, {bool isUd = false}) async {
|
||||||
double balance = 0.0;
|
double balance = 0.0;
|
||||||
|
@ -568,7 +569,7 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<String> getMemberAddress() async {
|
Future<String> getMemberAddress() async {
|
||||||
// TODO: Continue digging memberAddress detection
|
// TODOO: Continue digging memberAddress detection
|
||||||
String memberAddress = '';
|
String memberAddress = '';
|
||||||
walletBox.toMap().forEach((key, value) async {
|
walletBox.toMap().forEach((key, value) async {
|
||||||
final bool _isMember = await isMember(value.address!);
|
final bool _isMember = await isMember(value.address!);
|
||||||
|
|
|
@ -39,7 +39,7 @@ class ManageMembership extends StatelessWidget {
|
||||||
return InkWell(
|
return InkWell(
|
||||||
key: const Key('revokeIdty'),
|
key: const Key('revokeIdty'),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
// TODO: Generate revoke document, and understand extrinsic identity.revokeIdentity options
|
// TODOO: Generate revoke document, and understand extrinsic identity.revokeIdentity options
|
||||||
// final _answer = await confirmPopup(context,
|
// final _answer = await confirmPopup(context,
|
||||||
// 'Êtes-vous certains de vouloir révoquer définitivement cette identité ?') ??
|
// 'Êtes-vous certains de vouloir révoquer définitivement cette identité ?') ??
|
||||||
// false;
|
// false;
|
||||||
|
|
|
@ -171,7 +171,7 @@ class WalletOptions extends StatelessWidget {
|
||||||
if (!walletProvider.isDefaultWallet &&
|
if (!walletProvider.isDefaultWallet &&
|
||||||
!_isMember.data!)
|
!_isMember.data!)
|
||||||
deleteWallet(context, walletProvider,
|
deleteWallet(context, walletProvider,
|
||||||
_myWalletProvider, _currentChest)
|
_currentChest)
|
||||||
else
|
else
|
||||||
const SizedBox(),
|
const SizedBox(),
|
||||||
if (_isMember.data!)
|
if (_isMember.data!)
|
||||||
|
@ -482,14 +482,27 @@ class WalletOptions extends StatelessWidget {
|
||||||
_myWalletProvider.rebuildWidget();
|
_myWalletProvider.rebuildWidget();
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget deleteWallet(
|
Widget deleteWallet(BuildContext context,
|
||||||
BuildContext context,
|
WalletOptionsProvider walletProvider, int _currentChest) {
|
||||||
WalletOptionsProvider walletProvider,
|
SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
|
||||||
MyWalletsProvider _myWalletProvider,
|
MyWalletsProvider _myWalletProvider =
|
||||||
int _currentChest) {
|
Provider.of<MyWalletsProvider>(context, listen: false);
|
||||||
|
|
||||||
|
final _defaultWallet = _myWalletProvider.getDefaultWallet();
|
||||||
|
final bool isDefaultWallet =
|
||||||
|
walletProvider.address.text == _defaultWallet.address;
|
||||||
|
// return Consumer<MyWalletsProvider>(
|
||||||
|
// builder: (context, _myWalletProvider, _) {
|
||||||
|
return FutureBuilder(
|
||||||
|
future: _sub.hasAccountConsumers(wallet.address!),
|
||||||
|
builder: (BuildContext context, AsyncSnapshot<bool> _hasConsumers) {
|
||||||
|
if (_hasConsumers.connectionState != ConnectionState.done ||
|
||||||
|
_hasConsumers.hasError) {
|
||||||
|
return const Text('');
|
||||||
|
}
|
||||||
return InkWell(
|
return InkWell(
|
||||||
key: const Key('deleteWallet'),
|
key: const Key('deleteWallet'),
|
||||||
onTap: !walletProvider.isDefaultWallet
|
onTap: !isDefaultWallet && !_hasConsumers.data!
|
||||||
? () async {
|
? () async {
|
||||||
await walletProvider.deleteWallet(context, wallet);
|
await walletProvider.deleteWallet(context, wallet);
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
|
@ -499,7 +512,8 @@ class WalletOptions extends StatelessWidget {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
: null,
|
: null,
|
||||||
child: Row(children: <Widget>[
|
child: !isDefaultWallet && !_hasConsumers.data!
|
||||||
|
? Row(children: <Widget>[
|
||||||
const SizedBox(width: 30),
|
const SizedBox(width: 30),
|
||||||
Image.asset(
|
Image.asset(
|
||||||
'assets/walletOptions/trash.png',
|
'assets/walletOptions/trash.png',
|
||||||
|
@ -507,8 +521,11 @@ class WalletOptions extends StatelessWidget {
|
||||||
),
|
),
|
||||||
const SizedBox(width: 19),
|
const SizedBox(width: 19),
|
||||||
const Text('Supprimer ce portefeuille',
|
const Text('Supprimer ce portefeuille',
|
||||||
style: TextStyle(fontSize: 20, color: Color(0xffD80000))),
|
style:
|
||||||
]),
|
TextStyle(fontSize: 20, color: Color(0xffD80000))),
|
||||||
|
])
|
||||||
|
: const SizedBox(width: 30),
|
||||||
);
|
);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue