@ -3,6 +3,7 @@ import Link from 'next/link';
import { PropsWithChildren , ReactNode , useState } from 'react' ;
import { PropsWithChildren , ReactNode , useState } from 'react' ;
import { MultiProvider } from '@hyperlane-xyz/sdk' ;
import { MultiProvider } from '@hyperlane-xyz/sdk' ;
import { isAddress , isZeroish } from '@hyperlane-xyz/utils' ;
import { Spinner } from '../../../components/animations/Spinner' ;
import { Spinner } from '../../../components/animations/Spinner' ;
import { ChainLogo } from '../../../components/icons/ChainLogo' ;
import { ChainLogo } from '../../../components/icons/ChainLogo' ;
@ -48,6 +49,7 @@ export function DestinationTransactionCard({
domainId ,
domainId ,
status ,
status ,
transaction ,
transaction ,
duration ,
debugResult ,
debugResult ,
isStatusFetching ,
isStatusFetching ,
isPiMsg ,
isPiMsg ,
@ -57,6 +59,7 @@ export function DestinationTransactionCard({
domainId : DomainId ;
domainId : DomainId ;
status : MessageStatus ;
status : MessageStatus ;
transaction? : MessageTx ;
transaction? : MessageTx ;
duration? : string ;
debugResult? : MessageDebugResult ;
debugResult? : MessageDebugResult ;
isStatusFetching : boolean ;
isStatusFetching : boolean ;
isPiMsg? : boolean ;
isPiMsg? : boolean ;
@ -74,6 +77,7 @@ export function DestinationTransactionCard({
transaction = { transaction }
transaction = { transaction }
chainId = { chainId }
chainId = { chainId }
domainId = { domainId }
domainId = { domainId }
duration = { duration }
blur = { blur }
blur = { blur }
/ >
/ >
) ;
) ;
@ -190,16 +194,18 @@ function TransactionDetails({
chainId ,
chainId ,
domainId ,
domainId ,
transaction ,
transaction ,
duration ,
blur ,
blur ,
} : {
} : {
chainId : ChainId ;
chainId : ChainId ;
domainId : DomainId ;
domainId : DomainId ;
transaction : MessageTx ;
transaction : MessageTx ;
duration? : string ;
blur : boolean ;
blur : boolean ;
} ) {
} ) {
const multiProvider = useMultiProvider ( ) ;
const multiProvider = useMultiProvider ( ) ;
const { hash , from , timestamp , blockNumber } = transaction ;
const { hash , from , timestamp , blockNumber , mailbox } = transaction ;
const txExplorerLink =
const txExplorerLink =
hash && ! new BigNumber ( hash ) . isZero ( )
hash && ! new BigNumber ( hash ) . isZero ( )
@ -230,6 +236,16 @@ function TransactionDetails({
showCopy = { true }
showCopy = { true }
blurValue = { blur }
blurValue = { blur }
/ >
/ >
{ mailbox && isAddress ( mailbox ) && ! isZeroish ( mailbox ) && (
< KeyValueRow
label = "Mailbox:"
labelWidth = "w-16"
display = { mailbox }
displayWidth = "w-60 sm:w-64"
showCopy = { true }
blurValue = { blur }
/ >
) }
{ ! ! timestamp && (
{ ! ! timestamp && (
< KeyValueRow
< KeyValueRow
label = "Time:"
label = "Time:"
@ -247,6 +263,15 @@ function TransactionDetails({
displayWidth = "w-60 sm:w-64"
displayWidth = "w-60 sm:w-64"
blurValue = { blur }
blurValue = { blur }
/ >
/ >
{ duration && (
< KeyValueRow
label = "Duration:"
labelWidth = "w-16"
display = { duration }
displayWidth = "w-60 sm:w-64"
blurValue = { blur }
/ >
) }
{ txExplorerLink && (
{ txExplorerLink && (
< a
< a
className = { ` block ${ styles . textLink } ` }
className = { ` block ${ styles . textLink } ` }