Skip to content

Commit 0f2c56c

Browse files
authored
Merge pull request #47 from peaqnetwork/feature/1202812787027835_improve-chain-response-time
Fix/1202812787027835 improve chain response time
2 parents 497a72f + d5b8109 commit 0f2c56c

File tree

18 files changed

+393
-246
lines changed

18 files changed

+393
-246
lines changed

.github/workflows/draft.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,10 @@ jobs:
8585
needs: draft-release
8686
steps:
8787
# Set up Flutter.
88-
- name: Clone Flutter repository with flutter-version 2.5.3
88+
- name: Clone Flutter repository with flutter-version 3.0.5
8989
uses: subosito/flutter-action@v2
9090
with:
91-
flutter-version: '2.5.3'
91+
flutter-version: '3.0.5'
9292

9393
- name: Install Linux dependencies
9494
if: matrix.target == 'Linux'
204 KB
Binary file not shown.
139 KB
Binary file not shown.
61.7 KB
Binary file not shown.

lib/common/providers/charge_provider.dart

Lines changed: 54 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,17 @@ class CEVChargeProvider with ChangeNotifier {
3434
LoadingStatus _chargingStatus = LoadingStatus.idle;
3535
String _statusMessage = '';
3636
String _providerDid = "";
37-
double _counter = 0;
38-
double _progress = 1;
37+
int _repeatedSessionCount = 0;
38+
double _progress = 0;
3939
CEVStation _station = CEVStation();
4040
List<Detail> _transactions = [];
4141
msg.TransactionValue _refundInfo = msg.TransactionValue();
4242
msg.TransactionValue _spentInfo = msg.TransactionValue();
4343
List<Detail> _details = [];
4444
BigInt _atto = BigInt.parse("1000000000000000000");
4545

46+
num token = (10 * pow(10, 19));
47+
4648
String get providerDid => _providerDid;
4749
CEVStation? get station => _station;
4850
List<Detail> get details => _details;
@@ -51,8 +53,8 @@ class CEVChargeProvider with ChangeNotifier {
5153
List<Detail> get transactions => _transactions;
5254
msg.TransactionValue get refundInfo => _refundInfo;
5355
msg.TransactionValue get spentInfo => _spentInfo;
56+
int get repeatedSessionCount => _repeatedSessionCount;
5457
double get progress => _progress;
55-
double get counter => _counter;
5658
String get statusMessage => _statusMessage;
5759

5860
set chargingStatus(LoadingStatus cstatus) {
@@ -89,18 +91,18 @@ class CEVChargeProvider with ChangeNotifier {
8991

9092
// generate provider account details
9193
generateDetails({bool notify = false}) {
92-
List<Detail> _newDetails = [];
94+
List<Detail> newDetails = [];
9395

9496
if (_station != null) {
95-
_newDetails.addAll([
97+
newDetails.addAll([
9698
Detail("Identity", _station.did ?? ""),
9799
Detail("Plug Type", _station.plugType ?? ""),
98100
Detail("Status", _station.status ?? "", color: CEVTheme.successColor),
99101
Detail("Power", _station.power ?? ""),
100102
]);
101103
}
102104

103-
_details = _newDetails;
105+
_details = newDetails;
104106
if (notify) {
105107
notifyListeners();
106108
}
@@ -113,18 +115,18 @@ class CEVChargeProvider with ChangeNotifier {
113115
var tokenSymbol = appProvider.accountProvider.account.tokenSymbol;
114116
_atto = BigInt.from(pow(10, num.parse(tokenDecimals.toString())));
115117

116-
print(
117-
"generateTransactions :: _refundInfo:: ${_refundInfo.toProto3Json()}");
118-
print("generateTransactions :: _spentInfo:: ${_spentInfo.toProto3Json()}");
118+
// print(
119+
// "generateTransactions :: _refundInfo:: ${_refundInfo.toProto3Json()}");
120+
// print("generateTransactions :: _spentInfo:: ${_spentInfo.toProto3Json()}");
119121

120122
if (_refundInfo.tokenNum.isNotEmpty && _spentInfo.tokenNum.isNotEmpty) {
121123
var refundRawToken = _refundInfo.tokenNum;
122124
var spentRawToken = _spentInfo.tokenNum;
123125
var refundToken = (BigInt.parse(refundRawToken) / _atto);
124-
print("refundToken:: $refundToken");
126+
// print("refundToken:: $refundToken");
125127
var refundTokenString = refundToken.toStringAsFixed(4);
126128
var spentToken = (BigInt.parse(spentRawToken) / _atto);
127-
print("spentToken:: $spentToken");
129+
// print("spentToken:: $spentToken");
128130
var spentTokenString = spentToken.toStringAsFixed(4);
129131
var total = (refundToken + spentToken).toStringAsFixed(4);
130132
_newtx.addAll([
@@ -142,6 +144,7 @@ class CEVChargeProvider with ChangeNotifier {
142144

143145
/// fetch provider Did document from chain state storage
144146
fetchProviderDidDocument(String did) async {
147+
_repeatedSessionCount = 0;
145148
reset();
146149
if (_providerDid == _station.did) {
147150
generateDetails(notify: true);
@@ -154,6 +157,8 @@ class CEVChargeProvider with ChangeNotifier {
154157
setStatus(LoadingStatus.error, message: Env.invalidProviderDid);
155158
}
156159

160+
setStatus(LoadingStatus.error, message: Env.fetchingData);
161+
157162
var address = did.split(":")[2];
158163

159164
var doc = await appProvider.peerProvider.fetchDidDocument(address);
@@ -163,9 +168,6 @@ class CEVChargeProvider with ChangeNotifier {
163168
notifyListeners();
164169
}
165170

166-
_status = LoadingStatus.loading;
167-
notifyListeners();
168-
169171
_station.did = _providerDid;
170172
_station.address = address;
171173

@@ -189,9 +191,11 @@ class CEVChargeProvider with ChangeNotifier {
189191
generateAndFundMultisigWallet() async {
190192
setStatus(LoadingStatus.idle);
191193
String consumer = appProvider.accountProvider.account.address!;
192-
String provider = _station.address!;
194+
// String provider = _station.address!;
195+
196+
String provider = _providerDid.split(":")[2];
193197

194-
setStatus(LoadingStatus.loading, message: Env.creatingMultisigWallet);
198+
// setStatus(LoadingStatus.loading, message: Env.creatingMultisigWallet);
195199

196200
bool walletCreated =
197201
await appProvider.peerProvider.creatMultisigAddress(provider, consumer);
@@ -203,10 +207,9 @@ class CEVChargeProvider with ChangeNotifier {
203207
return;
204208
}
205209

206-
var token = (10 * pow(10, 19));
207210
var seed = appProvider.accountProvider.account.seed!;
208211

209-
setStatus(LoadingStatus.loading, message: Env.fundingMultisigWallet);
212+
// setStatus(LoadingStatus.loading, message: Env.fundingMultisigWallet);
210213

211214
var resp = await appProvider.peerProvider
212215
.transferFund(multisigAddress, "$token", seed);
@@ -217,12 +220,10 @@ class CEVChargeProvider with ChangeNotifier {
217220
return;
218221
}
219222

220-
await Future.delayed(const Duration(seconds: 3));
221-
222-
_startCharge(token.toString());
223+
// await Future.delayed(const Duration(seconds: 3));
223224
}
224225

225-
_startCharge(String token) async {
226+
startCharge(String token) async {
226227
setStatus(LoadingStatus.idle);
227228

228229
setStatus(LoadingStatus.loading, message: Env.requestingService);
@@ -269,24 +270,8 @@ class CEVChargeProvider with ChangeNotifier {
269270
var spentTimePoint = _spentInfo.timePoint;
270271
var otherSignatories = [_station.address!];
271272

272-
var _seed = appProvider.accountProvider.account.seed ?? "";
273-
274-
setStatus(LoadingStatus.loading, message: Env.approvingRefundTransaction);
273+
var seed = appProvider.accountProvider.account.seed ?? "";
275274

276-
bool approveRefund = await appProvider.peerProvider
277-
.approveMultisigTransaction(
278-
threshold: 2,
279-
otherSignatories: otherSignatories,
280-
timepointHeight: refundTimePoint.height.toInt(),
281-
timepointIndex: refundTimePoint.index.toInt(),
282-
callHash: _refundInfo.callHash,
283-
seed: _seed);
284-
285-
if (!approveRefund) {
286-
setStatus(LoadingStatus.error,
287-
message: Env.approvingRefundTransactionFailed);
288-
return;
289-
}
290275
setStatus(LoadingStatus.loading, message: Env.approvingSpentTransaction);
291276

292277
bool approveSpent = await appProvider.peerProvider
@@ -296,15 +281,44 @@ class CEVChargeProvider with ChangeNotifier {
296281
timepointHeight: spentTimePoint.height.toInt(),
297282
timepointIndex: spentTimePoint.index.toInt(),
298283
callHash: _spentInfo.callHash,
299-
seed: _seed);
284+
seed: seed);
300285

301286
if (!approveSpent) {
302287
setStatus(LoadingStatus.error,
303288
message: Env.approvingSpentTransactionFailed);
304289
return;
305290
}
306291

292+
// increased the number of times this session has been repeated
293+
_repeatedSessionCount += 1;
294+
notifyListeners();
295+
296+
setStatus(LoadingStatus.loading, message: Env.approvingRefundTransaction);
297+
// bool approveRefund = await appProvider.peerProvider
298+
// .approveMultisigTransaction(
299+
// threshold: 2,
300+
// otherSignatories: otherSignatories,
301+
// timepointHeight: refundTimePoint.height.toInt(),
302+
// timepointIndex: refundTimePoint.index.toInt(),
303+
// callHash: _refundInfo.callHash,
304+
// seed: seed);
305+
306+
// if (!approveRefund) {
307+
// setStatus(LoadingStatus.error,
308+
// message: Env.approvingRefundTransactionFailed);
309+
// return;
310+
// }
311+
312+
appProvider.peerProvider.approveMultisigTransaction(
313+
threshold: 2,
314+
otherSignatories: otherSignatories,
315+
timepointHeight: refundTimePoint.height.toInt(),
316+
timepointIndex: refundTimePoint.index.toInt(),
317+
callHash: _refundInfo.callHash,
318+
seed: seed);
319+
307320
_chargingStatus = LoadingStatus.success;
321+
308322
setStatus(LoadingStatus.idle, message: Env.transactionCompleted);
309323

310324
appProvider.peerProvider.disconnectP2P();

lib/common/providers/peer_provider.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,8 @@ class CEVPeerProvider with ChangeNotifier {
267267
}
268268

269269
if (_isPeerAuthenticated) {
270-
await appProvider.chargeProvider.generateAndFundMultisigWallet();
270+
await appProvider.chargeProvider
271+
.startCharge(appProvider.chargeProvider.token.toString());
271272
// await appProvider.accountProvider
272273
// .simulateServiceRequestedAndDeliveredEvents();
273274
} else {

0 commit comments

Comments
 (0)