@@ -4,13 +4,19 @@ import { useState, useEffect } from 'react';
44import { DemiurgeClient } from '@demiurge/sdk' ;
55
66interface TransactionStatusProps {
7- txHash : string ;
7+ txHash ?: string ;
8+ transactionHash ?: string ;
89 onConfirmed ?: ( ) => void ;
10+ onFinalized ?: ( ) => void ;
11+ onError ?: ( err : Error ) => void ;
912}
1013
1114type TxStatus = 'pending' | 'included' | 'finalized' | 'failed' ;
1215
13- export function TransactionStatus ( { txHash, onConfirmed } : TransactionStatusProps ) {
16+ export function TransactionStatus ( { txHash, transactionHash, onConfirmed, onFinalized, onError } : TransactionStatusProps ) {
17+ // Support both prop names for compatibility
18+ const hash = txHash || transactionHash || '' ;
19+ const onSuccess = onConfirmed || onFinalized ;
1420 const [ status , setStatus ] = useState < TxStatus > ( 'pending' ) ;
1521 const [ blockNumber , setBlockNumber ] = useState < number | null > ( null ) ;
1622 const [ confirmations , setConfirmations ] = useState ( 0 ) ;
@@ -33,14 +39,17 @@ export function TransactionStatus({ txHash, onConfirmed }: TransactionStatusProp
3339 if ( mounted ) {
3440 setStatus ( 'finalized' ) ;
3541 setConfirmations ( 1 ) ;
36- if ( onConfirmed ) {
37- onConfirmed ( ) ;
42+ if ( onSuccess ) {
43+ onSuccess ( ) ;
3844 }
3945 }
4046 } , 3000 ) ;
4147 }
4248 } catch ( error ) {
4349 console . error ( 'Failed to check transaction status:' , error ) ;
50+ if ( onError && error instanceof Error ) {
51+ onError ( error ) ;
52+ }
4453 }
4554 } ;
4655
@@ -51,7 +60,7 @@ export function TransactionStatus({ txHash, onConfirmed }: TransactionStatusProp
5160 mounted = false ;
5261 clearInterval ( pollInterval ) ;
5362 } ;
54- } , [ txHash ] ) ;
63+ } , [ hash , onSuccess , onError ] ) ;
5564
5665 const getStatusColor = ( ) => {
5766 switch ( status ) {
0 commit comments