Skip to content

Commit c328c71

Browse files
committed
feat: adapt CL deposits table for Pectra
-Move fetching logic to `dashboard` root page component -Ensure immediate fetch for active tab on first page load See: BEDS-1362
1 parent 3b7f67c commit c328c71

File tree

4 files changed

+5
-271
lines changed

4 files changed

+5
-271
lines changed

frontend/components/dashboard/table/DashboardTableClDeposits.vue

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ const {
2525
isGuestDashboard,
2626
} = useDashboardKey()
2727
28-
const cursor = ref<Cursor>()
29-
const pageSize = ref<number>(5)
3028
const { t: $t } = useTranslation()
3129
3230
const {
@@ -120,8 +118,8 @@ const {
120118
data-key="index"
121119
expandable
122120
table-class="cl-deposits-table"
123-
:cursor
124-
:page-size
121+
:cursor="query?.cursor"
122+
:page-size="query?.limit"
125123
:row-class="getRowClass"
126124
:is-row-expandable
127125
:is-loading
Lines changed: 0 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
import type {
2-
GetValidatorDashboardConsensusLayerConsolidationsResponse,
32
GetValidatorDashboardConsensusLayerDepositsResponse,
4-
GetValidatorDashboardConsensusLayerWithdrawalsResponse,
5-
GetValidatorDashboardExecutionLayerConsolidationsResponse,
63
GetValidatorDashboardExecutionLayerDepositsResponse,
7-
GetValidatorDashboardExecutionLayerWithdrawalsResponse,
84
GetValidatorDashboardTotalConsensusDepositsResponse,
9-
GetValidatorDashboardTotalConsensusWithdrawalsResponse,
105
GetValidatorDashboardTotalExecutionDepositsResponse,
11-
GetValidatorDashboardTotalExecutionWithdrawalsResponse,
126
} from '~/types/api/validator_dashboard'
137
import type { DashboardKey } from '~/types/dashboard'
148
import type { TableQueryParams } from '~/types/datatable'
@@ -66,101 +60,11 @@ export const useDashboardData = () => {
6660

6761
return res
6862
}
69-
async function fetchElConsolidations(
70-
dashboardKey: DashboardKey,
71-
query?: TableQueryParams,
72-
) {
73-
const res
74-
= await fetch<GetValidatorDashboardExecutionLayerConsolidationsResponse>(
75-
'DASHBOARD_EL_CONSOLIDATIONS',
76-
undefined,
77-
{ dashboardKey },
78-
query,
79-
)
80-
81-
return res
82-
}
83-
async function fetchClConsolidations(
84-
dashboardKey: DashboardKey,
85-
query?: TableQueryParams,
86-
) {
87-
const res
88-
= await fetch<GetValidatorDashboardConsensusLayerConsolidationsResponse>(
89-
'DASHBOARD_CL_CONSOLIDATIONS',
90-
undefined,
91-
{ dashboardKey },
92-
query,
93-
)
94-
95-
return res
96-
}
97-
98-
async function fetchElWithdrawals(
99-
dashboardKey: DashboardKey,
100-
query?: TableQueryParams,
101-
) {
102-
const res
103-
= await fetch<GetValidatorDashboardExecutionLayerWithdrawalsResponse>(
104-
'DASHBOARD_EL_WITHDRAWALS',
105-
undefined,
106-
{ dashboardKey },
107-
query,
108-
)
109-
110-
return res
111-
}
112-
113-
async function fetchElWithdrawalsTotalAmount(
114-
dashboardKey: DashboardKey,
115-
) {
116-
const res
117-
= await fetch<GetValidatorDashboardTotalExecutionWithdrawalsResponse>(
118-
'DASHBOARD_EL_WITHDRAWALS_TOTAL',
119-
undefined,
120-
{ dashboardKey },
121-
)
122-
123-
return res
124-
}
125-
126-
async function fetchClWithdrawals(
127-
dashboardKey: DashboardKey,
128-
query?: TableQueryParams,
129-
) {
130-
const res
131-
= await fetch<GetValidatorDashboardConsensusLayerWithdrawalsResponse>(
132-
'DASHBOARD_CL_WITHDRAWALS',
133-
undefined,
134-
{ dashboardKey },
135-
query,
136-
)
137-
138-
return res
139-
}
140-
141-
async function fetchClWithdrawalsTotalAmount(
142-
dashboardKey: DashboardKey,
143-
) {
144-
const res
145-
= await fetch<GetValidatorDashboardTotalConsensusWithdrawalsResponse>(
146-
'DASHBOARD_CL_WITHDRAWALS_TOTAL',
147-
undefined,
148-
{ dashboardKey },
149-
)
150-
151-
return res
152-
}
15363

15464
return {
155-
fetchClConsolidations,
15665
fetchClDeposits,
15766
fetchClDpositsTotalAmount,
158-
fetchClWithdrawals,
159-
fetchClWithdrawalsTotalAmount,
160-
fetchElConsolidations,
16167
fetchELDeposits,
16268
fetchELDpositsTotalAmount,
163-
fetchElWithdrawals,
164-
fetchElWithdrawalsTotalAmount,
16569
}
16670
}

frontend/i18n/locales/en.json

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -225,34 +225,10 @@
225225
"search_placeholder_public": "Index, Public Key",
226226
"title": "Blocks"
227227
},
228-
"cl_consolidations": {
229-
"info_slot_processed_estimated": "This is an estimation since this consolidation is still queued.",
230-
"reject_reason": {
231-
"full_queue": "The consolidation queue is full.",
232-
"insufficient_consolidation_churn": "Not enough churn capacity available to consolidate.",
233-
"source_address_mismatch": "The source address doesn't match",
234-
"source_equals_target": "Source and target must be different.",
235-
"source_exiting": "The source is currently exiting and cannot be used for consolidation.",
236-
"source_inactive": "The source is inactive and cannot be used for consolidation.",
237-
"source_no_execution_withdrawal_credentials": "The source has no execution withdrawal credentials.",
238-
"source_pending_withdrawals": "The source has pending withdrawals that must be completed before consolidating.",
239-
"source_slashed": "The source has been slashed and cannot be used for consolidation.",
240-
"source_too_young": "The source is too new to be eligible for consolidation.",
241-
"source_unknown_pubkey": "The source public key could not be found.",
242-
"target_exiting": "The target is currently exiting and cannot receive consolidation.",
243-
"target_inactive": "The target is inactive and cannot receive consolidation.",
244-
"target_not_compounding": "The target is not compounding.",
245-
"target_unknown_pubkey": "The target public key could not be found."
246-
},
247-
"search_placeholder": "Index, Slot, Address",
248-
"slot_processed": "Slot Processed",
249-
"slot_queued": "Slot Queued",
250-
"title": "Consensus Layer"
251-
},
252228
"cl_deposits": {
253229
"info_slot_processed_estimated": "This is an estimation since this deposit is still queued.",
254-
"search_placeholder_guest_dashboard": "Index, Slot, Address",
255-
"search_placeholder_private_dashboard": "Index, Slot, Address, Group",
230+
"search_placeholder_guest_dashboard": "Index, Slot, Withdrawal Credential",
231+
"search_placeholder_private_dashboard": "Index, Slot, Withdrawal Credential, Group",
256232
"title": "Consensus Layer",
257233
"type": {
258234
"auto": "Auto",
@@ -515,7 +491,6 @@
515491
"status_text": {
516492
"completed": "Completed",
517493
"invalid": "Invalid",
518-
"processed": "Processed",
519494
"queued": "Queued",
520495
"rejected": "Rejected",
521496
"valid": "Valid"
@@ -1217,11 +1192,8 @@
12171192
"last": "Last",
12181193
"of": "of",
12191194
"showing": "Showing {from} to {to} of {total}",
1220-
"source": "Source",
12211195
"status": "Status",
1222-
"target":"Target",
1223-
"validity": "Validity",
1224-
"withdrawal_request_fee": "Withdrawal Request Fee"
1196+
"validity": "Validity"
12251197
},
12261198
"time_duration": {
12271199
"days": "{amount} day | {amount} days",

frontend/pages/dashboard/[[id]]/index.vue

Lines changed: 0 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -259,123 +259,17 @@ const clDeposits = computed(() => {
259259
})
260260
const clDepositsTotalAmount = computed(() => clDepositsData.value?.[1])
261261
262-
// Execution Layer Withdrawals data
263-
const elWithdrawalsQueryParams = ref<TableQueryParams>({
264-
limit: 5,
265-
sort: 'timestamp:desc',
266-
})
267-
const {
268-
data: elWithdrawalsData,
269-
refresh: refreshElWithdrawalsData,
270-
status: elWithdrawalsDataStatus,
271-
} = useAsyncData('el_withdrawals', () => {
272-
return Promise.all([
273-
dashboardData.fetchElWithdrawals(
274-
dashboardKey.value,
275-
elWithdrawalsQueryParams.value,
276-
),
277-
dashboardData.fetchElWithdrawalsTotalAmount(dashboardKey.value),
278-
])
279-
},
280-
{
281-
immediate: false,
282-
watch: [ elWithdrawalsQueryParams ],
283-
})
284-
const elWithdrawals = computed(() => {
285-
return elWithdrawalsData.value?.[0]
286-
})
287-
const elWithdrawalsTotalAmount = computed(() => elWithdrawalsData.value?.[1])
288-
289-
// Consensus Layer Withdrawals data
290-
const clWithdrawalsQueryParams = ref<TableQueryParams>({
291-
limit: 5,
292-
sort: 'timestamp:desc',
293-
})
294-
const {
295-
data: clWithdrawalsData,
296-
refresh: refreshClWithdrawalsData,
297-
status: clWithdrawalsDataStatus,
298-
} = useAsyncData('cl_withdrawals', () => {
299-
return Promise.all([
300-
dashboardData.fetchClWithdrawals(
301-
dashboardKey.value,
302-
clWithdrawalsQueryParams.value,
303-
),
304-
dashboardData.fetchClWithdrawalsTotalAmount(dashboardKey.value),
305-
])
306-
},
307-
{
308-
immediate: false,
309-
watch: [ clWithdrawalsQueryParams ],
310-
})
311-
const clWithdrawals = computed(() => {
312-
return clWithdrawalsData.value?.[0]
313-
})
314-
const clWithdrawalsTotalAmount = computed(() => clWithdrawalsData.value?.[1])
315-
316-
// Execution Layer Consolidations data
317-
const elConsolidationsQueryParams = ref<TableQueryParams>({
318-
limit: 5, sort: 'block_processed:desc',
319-
})
320-
const {
321-
data: elConsolidationsData,
322-
refresh: refreshElConsolidationsData,
323-
status: elConsolidationsDataStatus,
324-
} = useAsyncData('el_consolidations', () => {
325-
return dashboardData.fetchElConsolidations(
326-
dashboardKey.value,
327-
elConsolidationsQueryParams.value,
328-
)
329-
},
330-
{
331-
immediate: false,
332-
watch: [ elConsolidationsQueryParams ],
333-
})
334-
const elConsolidations = computed(() => {
335-
return elConsolidationsData.value || undefined
336-
})
337-
338-
// Consensus Layer Consolidations data
339-
const clConsolidationsQueryParams = ref<TableQueryParams>({
340-
limit: 5, sort: 'timestamp:desc',
341-
})
342-
const {
343-
data: clConsolidationsData,
344-
refresh: refreshClConsolidationsData,
345-
status: clConsolidationsDataStatus,
346-
} = useAsyncData('cl_consolidations', () => {
347-
return dashboardData.fetchClConsolidations(
348-
dashboardKey.value,
349-
clConsolidationsQueryParams.value,
350-
)
351-
},
352-
{
353-
immediate: false,
354-
watch: [ clConsolidationsQueryParams ],
355-
})
356-
const clConsolidations = computed(() => {
357-
return clConsolidationsData.value || undefined
358-
})
359-
360262
// tabs
361263
const route = useRoute()
362264
363265
const activeTab = computed(() => route.hash)
364266
365267
const refreshActiveTab = () => {
366268
switch (activeTab.value) {
367-
case '#consolidations':
368-
refreshElConsolidationsData()
369-
refreshClConsolidationsData()
370-
break
371269
case '#deposits':
372270
refreshElDepositsData()
373271
refreshClDepositsData()
374272
break
375-
case '#withdrawals':
376-
refreshElWithdrawalsData()
377-
refreshClWithdrawalsData()
378-
break
379273
}
380274
}
381275
@@ -453,40 +347,6 @@ watch(
453347
:is-loading="clDepositsDataStatus === 'pending'"
454348
/>
455349
</template>
456-
<template #tab-panel-withdrawals>
457-
<DashboardTableElWithdrawals
458-
v-model:query="elWithdrawalsQueryParams"
459-
:el-withdrawals
460-
:el-withdrawals-total-amount
461-
:is-loading="elWithdrawalsDataStatus === 'pending'"
462-
/>
463-
<BcIcon
464-
name="arrow-down"
465-
class="down_icon"
466-
/>
467-
<DashboardTableClWithdrawals
468-
v-model:query="clWithdrawalsQueryParams"
469-
:cl-withdrawals
470-
:cl-withdrawals-total-amount
471-
:is-loading="clWithdrawalsDataStatus === 'pending'"
472-
/>
473-
</template>
474-
<template #tab-panel-consolidations>
475-
<DashboardTableElConsolidations
476-
v-model:query="elConsolidationsQueryParams"
477-
:el-consolidations
478-
:is-loading="elConsolidationsDataStatus === 'pending'"
479-
/>
480-
<BcIcon
481-
name="arrow-down"
482-
class="down_icon"
483-
/>
484-
<DashboardTableClConsolidations
485-
v-model:query="clConsolidationsQueryParams"
486-
:cl-consolidations
487-
:is-loading="clConsolidationsDataStatus === 'pending'"
488-
/>
489-
</template>
490350
</BcTabList>
491351
</BcPageWrapper>
492352
</div>

0 commit comments

Comments
 (0)