diff --git a/app/lib/service/tx/lib/src/send_tx_dart.dart b/app/lib/service/tx/lib/src/send_tx_dart.dart
index 6725bf57f..550c89b1a 100644
--- a/app/lib/service/tx/lib/src/send_tx_dart.dart
+++ b/app/lib/service/tx/lib/src/send_tx_dart.dart
@@ -127,7 +127,7 @@ class EWAuthorApi
{
String? blockHashHex;
final sub = await submitAndWatchExtrinsic(extrinsic, (xtUpdate) async {
- Log.d('ExtrinsicUpdate: ${xtUpdate.type}');
+ Log.d('ExtrinsicUpdate: type: ${xtUpdate.type}, value: ${xtUpdate.value}');
if (xtUpdate.type == 'ready') {
Log.p('Xt is ready');
diff --git a/app/lib/service/tx/lib/src/submit_tx_wrappers.dart b/app/lib/service/tx/lib/src/submit_tx_wrappers.dart
index 5aeddcb02..8d428b932 100644
--- a/app/lib/service/tx/lib/src/submit_tx_wrappers.dart
+++ b/app/lib/service/tx/lib/src/submit_tx_wrappers.dart
@@ -78,7 +78,8 @@ Future submitClaimRewards(
onFinish: (BuildContext txPageContext, ExtrinsicReport report) {
// Claiming the rewards creates a new reputation if successful.
// Hence, we should update the state afterwards.
- store.dataUpdate.setInvalidated();
+ store.encointer.getEncointerBalance();
+ webApi.encointer.getReputations();
return report;
},
);
diff --git a/app/lib/service/tx/lib/src/tx_builder.dart b/app/lib/service/tx/lib/src/tx_builder.dart
index 31ecb5a96..cf7579461 100644
--- a/app/lib/service/tx/lib/src/tx_builder.dart
+++ b/app/lib/service/tx/lib/src/tx_builder.dart
@@ -31,8 +31,8 @@ class TxBuilder {
// fetch recent relevant data from chain
final runtimeVersion = await _getRuntimeVersion();
- final blockNumber = await _getBlockNumber();
- final blockHash = await _getBlockHash();
+ final finalizedHash = await _getLatestFinalizedHash();
+ final blockNumber = await _getBlockNumber(hash: finalizedHash);
final genesisHash = await _getBlockHash(blockNumber: 0);
final accountInfo = await encointerKusama.query.system.account(pair.publicKey.bytes);
@@ -49,7 +49,7 @@ class TxBuilder {
specVersion: runtimeVersion.specVersion,
transactionVersion: runtimeVersion.transactionVersion,
genesisHash: genesisHash,
- blockHash: blockHash,
+ blockHash: finalizedHash,
blockNumber: blockNumber,
eraPeriod: 64,
nonce: accountInfo.nonce,
@@ -85,8 +85,15 @@ class TxBuilder {
return hash.replaceFirst('0x', '');
}
- Future _getBlockNumber() async {
- final block = await provider.send('chain_getBlock', []);
+ Future _getLatestFinalizedHash() async {
+ final hash = (await provider.send('chain_getFinalizedHead', [])).result as String;
+ return hash.replaceFirst('0x', '');
+ }
+
+ Future _getBlockNumber({String? hash}) async {
+ final params = hash != null ? [hash.replaceFirst('0x', '')] : [];
+
+ final block = await provider.send('chain_getBlock', params);
// ignore: avoid_dynamic_calls
final blockNumber = int.parse(block.result['block']['header']['number'] as String);