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);