Skip to content

Commit b9ac587

Browse files
committed
Added most recently mined block to display
1 parent 4975a4a commit b9ac587

File tree

3 files changed

+56
-30
lines changed

3 files changed

+56
-30
lines changed

frontend/src/components/AccountReceiveTable.vue

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -60,22 +60,6 @@
6060
>.
6161
</div>
6262

63-
<div v-if="scanStatus === 'complete'" class="text-caption q-mb-sm">
64-
<!-- Show the most recent timestamp and block that were scanned -->
65-
{{ $t('AccountReceiveTable.most-recent-announcement') }}:
66-
{{ formatDate(mostRecentAnnouncementTimestamp * 1000) }}
67-
{{ formatTime(mostRecentAnnouncementTimestamp * 1000) }}
68-
({{ mostRecentAnnouncementBlock }})
69-
<div v-if="advancedMode" class="text-caption q-mb-sm">
70-
<!-- This scanDescriptionString describes scan settings that were used -->
71-
{{ scanDescriptionString }}.
72-
<span @click="context.emit('reset')" class="cursor-pointer hyperlink">{{
73-
$t('AccountReceiveTable.scan-settings')
74-
}}</span
75-
>.
76-
</div>
77-
</div>
78-
7963
<q-table
8064
:grid="$q.screen.xs"
8165
card-container-class="col q-col-gutter-md"
@@ -358,6 +342,28 @@
358342
</q-tr>
359343
</template>
360344
</q-table>
345+
346+
<div v-if="scanStatus === 'complete'" class="text-caption q-mb-sm">
347+
<!-- Show the most recent timestamp and block that were scanned -->
348+
{{ mostRecentAnnouncementBlockNumber }} /
349+
{{ formatDate(mostRecentAnnouncementTimestamp * 1000) }}
350+
{{ formatTime(mostRecentAnnouncementTimestamp * 1000) }}
351+
{{ $t('AccountReceiveTable.most-recent-announcement') }}:
352+
<br />
353+
{{ mostRecentBlockNumber }} /
354+
{{ formatDate(mostRecentBlockTimestamp * 1000) }}
355+
{{ formatTime(mostRecentBlockTimestamp * 1000) }}
356+
{{ $t('AccountReceiveTable.most-recent-mined') }}:
357+
<div v-if="advancedMode" class="text-caption q-mb-sm">
358+
<!-- This scanDescriptionString describes scan settings that were used -->
359+
{{ scanDescriptionString }}.
360+
<span @click="context.emit('reset')" class="cursor-pointer hyperlink">{{
361+
$t('AccountReceiveTable.scan-settings')
362+
}}</span
363+
>.
364+
</div>
365+
</div>
366+
361367
<div
362368
v-if="scanStatus === 'complete' && (keysMatch || (advancedMode && isCustomPrivateKey))"
363369
class="text-caption text-right q-mt-md"
@@ -792,14 +798,22 @@ export default defineComponent({
792798
type: String,
793799
required: true,
794800
},
795-
mostRecentAnnouncementBlock: {
801+
mostRecentAnnouncementBlockNumber: {
796802
type: Number,
797803
required: true,
798804
},
799805
mostRecentAnnouncementTimestamp: {
800806
type: Number,
801807
required: true,
802808
},
809+
mostRecentBlockNumber: {
810+
type: Number,
811+
required: true,
812+
},
813+
mostRecentBlockTimestamp: {
814+
type: Number,
815+
required: true,
816+
},
803817
},
804818
805819
setup(props, context) {

frontend/src/i18n/locales/en-US.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,8 @@
279279
"loss-warning": "It looks like you're trying to withdraw your funds to a token contract. It is very likely this is not what you intend, and proceeding will likely result in a loss of funds. Do not proceed unless you know exactly what you are doing.",
280280
"i-know-what": "I know what I am doing",
281281
"danger": "Danger",
282-
"most-recent-announcement": "Most recent announcement date and block"
282+
"most-recent-announcement": "Most recent announcement block and timestamp",
283+
"most-recent-mined": "Most recent mined block and timestamp"
283284
},
284285
"AccountReceiveTableWarning": {
285286
"withdrawal-warning": "You are withdrawing to {0}, which has the following warnings:",

frontend/src/pages/AccountReceive.vue

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,10 @@
7676
:announcements="userAnnouncements"
7777
:scanStatus="scanStatus"
7878
:scanPercentage="scanPercentage"
79-
:mostRecentAnnouncementBlock="mostRecentAnnouncementBlock"
79+
:mostRecentAnnouncementBlockNumber="mostRecentAnnouncementBlockNumber"
8080
:mostRecentAnnouncementTimestamp="mostRecentAnnouncementTimestamp"
81+
:mostRecentBlockNumber="mostRecentBlockNumber"
82+
:mostRecentBlockTimestamp="mostRecentBlockTimestamp"
8183
@reset="setFormStatus('waiting')"
8284
/>
8385
</div>
@@ -118,8 +120,9 @@
118120
<script lang="ts">
119121
import { computed, defineComponent, onMounted, ref, watch } from 'vue';
120122
import { QForm } from 'quasar';
123+
import { Block } from '@ethersproject/abstract-provider';
121124
import { UserAnnouncement, KeyPair, utils, AnnouncementDetail } from '@umbracash/umbra-js';
122-
import { BigNumber, computeAddress, isHexString } from 'src/utils/ethers';
125+
import { BigNumber, Web3Provider, computeAddress, isHexString } from 'src/utils/ethers';
123126
import useSettingsStore from 'src/store/settings';
124127
import useWalletStore from 'src/store/wallet';
125128
import useWallet from 'src/store/wallet';
@@ -144,12 +147,15 @@ function useScan() {
144147
const paused = ref(false);
145148
146149
const mostRecentAnnouncementTimestamp = ref<number>(0);
147-
const mostRecentAnnouncementBlock = ref<number>(0);
150+
const mostRecentAnnouncementBlockNumber = ref<number>(0);
151+
152+
const mostRecentBlockTimestamp = ref<number>(0);
153+
const mostRecentBlockNumber = ref<number>(0);
148154
149155
// Start and end blocks for advanced mode settings
150156
const { advancedMode, startBlock, endBlock, setScanBlocks, setScanPrivateKey, scanPrivateKey, resetScanSettings } =
151157
useSettingsStore();
152-
const { signer, userAddress: userWalletAddress, isAccountSetup } = useWalletStore();
158+
const { signer, userAddress: userWalletAddress, isAccountSetup, provider } = useWalletStore();
153159
const startBlockLocal = ref<number>();
154160
const endBlockLocal = ref<number>();
155161
const scanPrivateKeyLocal = ref<string>();
@@ -224,6 +230,10 @@ function useScan() {
224230
}
225231
}
226232
233+
async function getLastBlock(provider: Web3Provider): Promise<Block> {
234+
return provider.getBlock('latest');
235+
}
236+
227237
async function scan() {
228238
// Reset paused state
229239
paused.value = false;
@@ -304,6 +314,10 @@ function useScan() {
304314
userAnnouncements.value = [];
305315
scanStatus.value = 'complete';
306316
} else {
317+
// Fetch the most recent block
318+
const latestBlock: Block = await getLastBlock(provider.value!);
319+
mostRecentBlockNumber.value = latestBlock.number;
320+
mostRecentBlockTimestamp.value = latestBlock.timestamp;
307321
// Default scan behavior
308322
for await (const announcementsBatch of umbra.value.fetchSomeAnnouncements(
309323
signer.value,
@@ -315,21 +329,16 @@ function useScan() {
315329
}
316330
317331
announcementsCount += announcementsBatch.length; // Increment count
318-
console.log(`announcementsBatch length ${announcementsBatch.length}`);
319332
announcementsBatch.forEach((announcement) => {
320333
const thisTimestamp = parseInt(announcement.timestamp);
321334
if (thisTimestamp > mostRecentAnnouncementTimestamp.value) {
322335
mostRecentAnnouncementTimestamp.value = thisTimestamp;
323-
console.log(`New latest announcement time-stamp: ${thisTimestamp}`);
324336
}
325337
const thisBlock = parseInt(announcement.block);
326-
if (thisBlock > mostRecentAnnouncementBlock.value) {
327-
mostRecentAnnouncementBlock.value = thisBlock;
328-
console.log(`New latest announcement block: ${thisBlock}`);
338+
if (thisBlock > mostRecentAnnouncementBlockNumber.value) {
339+
mostRecentAnnouncementBlockNumber.value = thisBlock;
329340
}
330341
});
331-
console.log(`latest announcement Timestamp ${mostRecentAnnouncementTimestamp.value}`);
332-
console.log(`latest announcement Block: ${mostRecentAnnouncementBlock.value}`);
333342
334343
announcementsQueue = [...announcementsQueue, ...announcementsBatch];
335344
if (announcementsCount == 10000) {
@@ -377,8 +386,10 @@ function useScan() {
377386
isValidEndBlock,
378387
isValidPrivateKey,
379388
isValidStartBlock,
380-
mostRecentAnnouncementBlock,
389+
mostRecentAnnouncementBlockNumber,
381390
mostRecentAnnouncementTimestamp,
391+
mostRecentBlockNumber,
392+
mostRecentBlockTimestamp,
382393
needsSignature,
383394
scanPrivateKeyLocal,
384395
scanStatus,

0 commit comments

Comments
 (0)