Commit 9c91fd25 authored by tom's avatar tom

OP Withdrawals on transaction page

Fixes #1355
parent 12967209
...@@ -14,6 +14,12 @@ export type TransactionRevertReason = { ...@@ -14,6 +14,12 @@ export type TransactionRevertReason = {
type WrappedTransactionFields = 'decoded_input' | 'fee' | 'gas_limit' | 'gas_price' | 'hash' | 'max_fee_per_gas' | type WrappedTransactionFields = 'decoded_input' | 'fee' | 'gas_limit' | 'gas_price' | 'hash' | 'max_fee_per_gas' |
'max_priority_fee_per_gas' | 'method' | 'nonce' | 'raw_input' | 'to' | 'type' | 'value'; 'max_priority_fee_per_gas' | 'method' | 'nonce' | 'raw_input' | 'to' | 'type' | 'value';
export interface OpWithdrawal {
l1_transaction_hash: string;
nonce: number;
status: L2WithdrawalStatus;
}
export type Transaction = { export type Transaction = {
to: AddressParam | null; to: AddressParam | null;
created_contract: AddressParam | null; created_contract: AddressParam | null;
...@@ -54,8 +60,7 @@ export type Transaction = { ...@@ -54,8 +60,7 @@ export type Transaction = {
l1_gas_used?: string; l1_gas_used?: string;
has_error_in_internal_txs: boolean | null; has_error_in_internal_txs: boolean | null;
// optimism fields // optimism fields
op_withdrawal_status?: L2WithdrawalStatus; op_withdrawals?: Array<OpWithdrawal>;
op_l1_transaction_hash?: string;
// SUAVE fields // SUAVE fields
execution_node?: AddressParam | null; execution_node?: AddressParam | null;
allowed_peekers?: Array<string>; allowed_peekers?: Array<string>;
......
...@@ -157,10 +157,22 @@ const TxDetails = () => { ...@@ -157,10 +157,22 @@ const TxDetails = () => {
</Tag> </Tag>
) } ) }
</DetailsInfoItem> </DetailsInfoItem>
<TxDetailsWithdrawalStatus { config.features.optimisticRollup.isEnabled && data.op_withdrawals && data.op_withdrawals.length > 0 && (
status={ data.op_withdrawal_status } <DetailsInfoItem
l1TxHash={ data.op_l1_transaction_hash } title="Withdrawal status"
/> hint="Detailed status progress of the transaction"
>
<Flex flexDir="column" rowGap={ 3 }>
{ data.op_withdrawals.map((withdrawal) => (
<TxDetailsWithdrawalStatus
key={ withdrawal.nonce }
status={ withdrawal.status }
l1TxHash={ withdrawal.l1_transaction_hash }
/>
)) }
</Flex>
</DetailsInfoItem>
) }
{ data.zkevm_status && ( { data.zkevm_status && (
<DetailsInfoItem <DetailsInfoItem
title="Confirmation status" title="Confirmation status"
......
...@@ -4,8 +4,6 @@ import React from 'react'; ...@@ -4,8 +4,6 @@ import React from 'react';
import type { L2WithdrawalStatus } from 'types/api/l2Withdrawals'; import type { L2WithdrawalStatus } from 'types/api/l2Withdrawals';
import { WITHDRAWAL_STATUSES } from 'types/api/l2Withdrawals'; import { WITHDRAWAL_STATUSES } from 'types/api/l2Withdrawals';
import config from 'configs/app';
import DetailsInfoItem from 'ui/shared/DetailsInfoItem';
import TxEntityL1 from 'ui/shared/entities/tx/TxEntityL1'; import TxEntityL1 from 'ui/shared/entities/tx/TxEntityL1';
import VerificationSteps from 'ui/shared/verificationSteps/VerificationSteps'; import VerificationSteps from 'ui/shared/verificationSteps/VerificationSteps';
...@@ -15,10 +13,6 @@ interface Props { ...@@ -15,10 +13,6 @@ interface Props {
} }
const TxDetailsWithdrawalStatus = ({ status, l1TxHash }: Props) => { const TxDetailsWithdrawalStatus = ({ status, l1TxHash }: Props) => {
if (!config.features.optimisticRollup.isEnabled) {
return null;
}
if (!status || !WITHDRAWAL_STATUSES.includes(status)) { if (!status || !WITHDRAWAL_STATUSES.includes(status)) {
return null; return null;
} }
...@@ -60,18 +54,13 @@ const TxDetailsWithdrawalStatus = ({ status, l1TxHash }: Props) => { ...@@ -60,18 +54,13 @@ const TxDetailsWithdrawalStatus = ({ status, l1TxHash }: Props) => {
) : null; ) : null;
return ( return (
<DetailsInfoItem <VerificationSteps
title="Withdrawal status" steps={ steps as unknown as Array<L2WithdrawalStatus> }
hint="Detailed status progress of the transaction" currentStep={ status }
> rightSlot={ rightSlot }
<VerificationSteps my={ hasClaimButton ? '-6px' : 0 }
steps={ steps as unknown as Array<L2WithdrawalStatus> } lineHeight={ hasClaimButton ? 8 : undefined }
currentStep={ status } />
rightSlot={ rightSlot }
my={ hasClaimButton ? '-6px' : 0 }
lineHeight={ hasClaimButton ? 8 : undefined }
/>
</DetailsInfoItem>
); );
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment