Skip to content

Commit

Permalink
Merge pull request #8 from dingzuhua2017/master
Browse files Browse the repository at this point in the history
null-safely
  • Loading branch information
dingzuhua2017 authored Oct 11, 2021
2 parents 324d5dc + 2c2532a commit 01778d2
Show file tree
Hide file tree
Showing 16 changed files with 78 additions and 75 deletions.
2 changes: 1 addition & 1 deletion lib/pages/governance.dart
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class Gov extends StatelessWidget {
),
),
Expanded(
child: plugin.sdk.api!.connectedNode == null
child: plugin.sdk.api.connectedNode == null
? Container(
padding: EdgeInsets.only(
top: MediaQuery.of(context).size.width / 2),
Expand Down
3 changes: 1 addition & 2 deletions lib/pages/governance/council/council.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:polkawallet_plugin_kusama/common/components/infoItem.dart';
import 'package:polkawallet_plugin_kusama/pages/governance/council/candidateDetailPage.dart';
import 'package:polkawallet_plugin_kusama/pages/governance/council/councilVotePage.dart';
import 'package:polkawallet_plugin_kusama/polkawallet_plugin_kusama.dart';
Expand Down Expand Up @@ -34,7 +33,7 @@ class _CouncilState extends State<Council> {
bool _votesExpanded = false;

Future<void> _fetchCouncilInfo() async {
if (widget.plugin.sdk.api!.connectedNode == null) {
if (widget.plugin.sdk.api.connectedNode == null) {
return;
}
await widget.plugin.service!.gov.queryCouncilVotes();
Expand Down
2 changes: 1 addition & 1 deletion lib/pages/governance/council/councilPage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class _GovernanceState extends State<CouncilPage> {
super.initState();

WidgetsBinding.instance!.addPostFrameCallback((_) {
if (widget.plugin.sdk.api!.connectedNode == null) {
if (widget.plugin.sdk.api.connectedNode == null) {
return;
}
widget.plugin.service!.gov.queryCouncilInfo();
Expand Down
4 changes: 2 additions & 2 deletions lib/pages/governance/council/motionDetailPage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class _MotionDetailPageState extends State<MotionDetailPage> {
Future<List?> _getExternalLinks(int? id) async {
if (_links != null) return _links;

final List? res = await widget.plugin.sdk.api!.gov!.getExternalLinks(
final List? res = await widget.plugin.sdk.api.gov.getExternalLinks(
GenExternalLinksParams.fromJson(
{'data': id.toString(), 'type': 'council'}),
);
Expand All @@ -60,7 +60,7 @@ class _MotionDetailPageState extends State<MotionDetailPage> {
if (_treasuryProposal != null) return _treasuryProposal;

final Map? data =
await widget.plugin.sdk.api!.gov!.queryTreasuryProposal(id!);
await widget.plugin.sdk.api.gov.queryTreasuryProposal(id!);
if (data != null) {
setState(() {
_treasuryProposal = data;
Expand Down
8 changes: 4 additions & 4 deletions lib/pages/governance/democracy/democracy.dart
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class _DemocracyState extends State<Democracy> {
List _unlocks = [];

Future<void> _queryDemocracyUnlocks() async {
final List? unlocks = await widget.plugin.sdk.api!.gov!
final List? unlocks = await widget.plugin.sdk.api.gov
.getDemocracyUnlocks(widget.keyring.current.address!);
if (mounted && unlocks != null) {
setState(() {
Expand All @@ -47,7 +47,7 @@ class _DemocracyState extends State<Democracy> {
Future<List?> _getExternalLinks(BigInt? id) async {
if (_links[id] != null) return _links[id];

final List? res = await widget.plugin.sdk.api!.gov!.getExternalLinks(
final List? res = await widget.plugin.sdk.api.gov.getExternalLinks(
GenExternalLinksParams.fromJson(
{'data': id.toString(), 'type': 'referendum'}),
);
Expand All @@ -60,7 +60,7 @@ class _DemocracyState extends State<Democracy> {
}

Future<void> _fetchReferendums() async {
if (widget.plugin.sdk.api!.connectedNode == null) {
if (widget.plugin.sdk.api.connectedNode == null) {
return;
}
widget.plugin.service!.gov.getReferendumVoteConvictions();
Expand Down Expand Up @@ -111,7 +111,7 @@ class _DemocracyState extends State<Democracy> {
@override
void initState() {
super.initState();
if (widget.plugin.sdk.api!.connectedNode != null) {
if (widget.plugin.sdk.api.connectedNode != null) {
widget.plugin.service!.gov.subscribeBestNumber();
}

Expand Down
2 changes: 1 addition & 1 deletion lib/pages/governance/democracy/proposalDetailPage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class _ProposalDetailPageState extends State<ProposalDetailPage> {
Future<List?> _getExternalLinks(BigInt id) async {
if (_links != null) return _links;

final List? res = await widget.plugin.sdk.api!.gov!.getExternalLinks(
final List? res = await widget.plugin.sdk.api.gov.getExternalLinks(
GenExternalLinksParams.fromJson(
{'data': id.toString(), 'type': 'proposal'}),
);
Expand Down
2 changes: 1 addition & 1 deletion lib/pages/governance/democracy/proposals.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class _ProposalsState extends State<Proposals> {
new GlobalKey<RefreshIndicatorState>();

Future<void> _fetchData() async {
if (widget.plugin.sdk.api!.connectedNode == null) {
if (widget.plugin.sdk.api.connectedNode == null) {
return;
}
await widget.plugin.service!.gov.queryProposals();
Expand Down
2 changes: 1 addition & 1 deletion lib/pages/governance/treasury/spendProposalPage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class _SpendProposalPageState extends State<SpendProposalPage> {
Future<List?> _getExternalLinks(int id) async {
if (_links != null) return _links;

final List? res = await widget.plugin.sdk.api!.gov!.getExternalLinks(
final List? res = await widget.plugin.sdk.api.gov.getExternalLinks(
GenExternalLinksParams.fromJson(
{'data': id.toString(), 'type': 'treasury'}),
);
Expand Down
8 changes: 5 additions & 3 deletions lib/pages/staking/actions/redeemPage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class _RedeemPageState extends State<RedeemPage> {
final String stashId = widget.plugin.store!.staking.ownStashInfo!.stashId ??
widget.plugin.store!.staking.ownStashInfo!.account!.accountId!;
final int? spans =
await widget.plugin.sdk.api!.staking!.getSlashingSpans(stashId);
await widget.plugin.sdk.api.staking.getSlashingSpans(stashId);
setState(() {
_slashingSpans = spans;
});
Expand All @@ -36,12 +36,14 @@ class _RedeemPageState extends State<RedeemPage> {
@override
Widget build(BuildContext context) {
final dic = I18n.of(context)!.getDic(i18n_full_dic_kusama, 'common');
final dicStaking = I18n.of(context)!.getDic(i18n_full_dic_kusama, 'staking')!;
final dicStaking =
I18n.of(context)!.getDic(i18n_full_dic_kusama, 'staking')!;
final symbol = widget.plugin.networkState.tokenSymbol![0];
final decimals = widget.plugin.networkState.tokenDecimals![0];

final redeemable = Fmt.balance(
widget.plugin.store!.staking.ownStashInfo!.account!.redeemable.toString(),
widget.plugin.store!.staking.ownStashInfo!.account!.redeemable
.toString(),
decimals,
length: decimals);
return Scaffold(
Expand Down
2 changes: 1 addition & 1 deletion lib/pages/staking/actions/setPayeePage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ class _PayeeSelectorState extends State<PayeeSelector> {
? Padding(
padding: EdgeInsets.only(left: 16, right: 16),
child: AddressInputField(
widget.plugin.sdk.api!,
widget.plugin.sdk.api,
widget.keyring.allWithContacts,
initialValue: _rewardAccount ?? defaultAcc,
onChanged: (acc) {
Expand Down
8 changes: 5 additions & 3 deletions lib/pages/staking/actions/stakingDetailPage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,14 @@ class StakingDetailPage extends StatelessWidget {

@override
Widget build(BuildContext context) {
final dicStaking = I18n.of(context)!.getDic(i18n_full_dic_kusama, 'staking')!;
final dicStaking =
I18n.of(context)!.getDic(i18n_full_dic_kusama, 'staking')!;
final decimals = plugin.networkState.tokenDecimals![0];
final symbol = plugin.networkState.tokenSymbol![0];
final TxData detail = ModalRoute.of(context)!.settings.arguments as TxData;
List<TxDetailInfoItem> info = <TxDetailInfoItem>[
TxDetailInfoItem(label: dicStaking['action'], content: Text(detail.call!)),
TxDetailInfoItem(
label: dicStaking['action'], content: Text(detail.call!)),
];
List? params = detail.params!.isEmpty ? [] : jsonDecode(detail.params!);
if (params != null) {
Expand All @@ -38,7 +40,7 @@ class StakingDetailPage extends StatelessWidget {
break;
case "AccountId":
value = value.contains('0x') ? value : '0x$value';
final ss58 = plugin.sdk.api!.connectedNode?.ss58;
final ss58 = plugin.sdk.api.connectedNode?.ss58;
final pubKeyAddressMap = plugin.store!.accounts.pubKeyAddressMap;
final address = ss58 != null &&
pubKeyAddressMap != null &&
Expand Down
32 changes: 16 additions & 16 deletions lib/service/gov.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,51 +11,51 @@ class ApiGov {

final PluginKusama plugin;
final Keyring keyring;
final PolkawalletApi? api;
final PolkawalletApi api;
final PluginStore? store;

Future<void> updateIconsAndIndices(List addresses) async {
final ls = addresses.toList();
ls.removeWhere((e) => store!.accounts.addressIconsMap.keys.contains(e));

final List<List?> res = await Future.wait([
api!.account.getAddressIcons(ls),
api!.account.queryIndexInfo(ls),
api.account.getAddressIcons(ls),
api.account.queryIndexInfo(ls),
]);
store!.accounts.setAddressIconsMap(res[0]!);
store!.accounts.setAddressIndex(res[1]!);
}

Future<void> subscribeBestNumber() async {
api!.setting!.subscribeBestNumber((bestNum) {
api.setting.subscribeBestNumber((bestNum) {
store!.gov.setBestNumber(BigInt.parse(bestNum.toString()));
});
}

Future<void> unsubscribeBestNumber() async {
api!.setting!.unsubscribeBestNumber();
api.setting.unsubscribeBestNumber();
}

Future<void> updateBestNumber() async {
final bestNumber = await api!.service!.webView!
final bestNumber = await api.service.webView!
.evalJavascript('api.derive.chain.bestNumber()');
store!.gov.setBestNumber(BigInt.parse(bestNumber.toString()));
}

Future<List?> getReferendumVoteConvictions() async {
final List? res = await api!.gov!.getReferendumVoteConvictions();
final List? res = await api.gov.getReferendumVoteConvictions();
store!.gov.setReferendumVoteConvictions(res);
return res;
}

Future<List> queryReferendums() async {
final data = await api!.gov!.queryReferendums(keyring.current.address!);
final data = await api.gov.queryReferendums(keyring.current.address!);
store!.gov.setReferendums(data);
return data;
}

Future<List> queryProposals() async {
final data = await api!.gov!.queryProposals();
final data = await api.gov.queryProposals();
store!.gov.setProposals(data);

final List<String?> addresses = [];
Expand All @@ -69,20 +69,20 @@ class ApiGov {
}

Future<Map> queryCouncilVotes() async {
final dynamic votes = await api!.gov!.queryCouncilVotes();
final dynamic votes = await api.gov.queryCouncilVotes();
store!.gov.setCouncilVotes(votes);
return votes;
}

Future<Map> queryUserCouncilVote() async {
final dynamic votes =
await api!.gov!.queryUserCouncilVote(keyring.current.address!);
await api.gov.queryUserCouncilVote(keyring.current.address!);
store!.gov.setUserCouncilVotes(votes);
return votes;
}

Future<Map?> queryCouncilInfo() async {
Map? info = await api!.gov!.queryCouncilInfo();
Map? info = await api.gov.queryCouncilInfo();
if (info != null) {
store!.gov.setCouncilInfo(info);

Expand All @@ -97,7 +97,7 @@ class ApiGov {
}

Future<List?> queryCouncilMembers() async {
final dynamic members = await api!.service!.webView!
final dynamic members = await api.service.webView!
.evalJavascript('api.query.council.members()');
if (members != null) {
store!.gov.setCouncilInfo(Map<String, dynamic>.from({
Expand All @@ -111,13 +111,13 @@ class ApiGov {
}

Future<List<CouncilMotionData>> queryCouncilMotions() async {
final data = await api!.gov!.queryCouncilMotions();
final data = await api.gov.queryCouncilMotions();
store!.gov.setCouncilMotions(data);
return data;
}

Future<TreasuryOverviewData> queryTreasuryOverview() async {
final data = await api!.gov!.queryTreasuryOverview();
final data = await api.gov.queryTreasuryOverview();
store!.gov.setTreasuryOverview(data);

final List<String?> addresses = [];
Expand All @@ -134,7 +134,7 @@ class ApiGov {
}

Future<List> queryTreasuryTips() async {
final data = await api!.gov!.queryTreasuryTips();
final data = await api.gov.queryTreasuryTips();
store!.gov.setTreasuryTips(data);

List<String?> addresses = [];
Expand Down
7 changes: 4 additions & 3 deletions lib/service/index.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class PluginApi {
context: context,
builder: (_) {
return PasswordInputDialog(
plugin.sdk.api!,
plugin.sdk.api,
title: Text(
I18n.of(context)!.getDic(i18n_full_dic_ui, 'common')!['unlock']!),
account: acc,
Expand All @@ -34,8 +34,9 @@ class PluginApi {
}

Future<String> getRuntimeModuleName(List<String> modules) async {
final res = await Future.wait(modules.map((e) =>
plugin.sdk.webView!.evalJavascript('(api.tx.$e != undefined ? {} : null)', wrapPromise: false)));
final res = await Future.wait(modules.map((e) => plugin.sdk.webView!
.evalJavascript('(api.tx.$e != undefined ? {} : null)',
wrapPromise: false)));
print(res);
return modules[res.indexWhere((e) => e != null)];
}
Expand Down
Loading

0 comments on commit 01778d2

Please sign in to comment.