1
1
import { getRawTransaction } from "@/actions/bitcoinClient" ;
2
+ import { bridgeConfigAtom } from "@/util/atoms" ;
3
+ import { useAtomValue } from "jotai" ;
2
4
import { useEffect , useState } from "react" ;
3
5
4
6
export enum ReclaimStatus {
@@ -8,6 +10,7 @@ export enum ReclaimStatus {
8
10
}
9
11
10
12
export const useReclaimStatus = ( txId : string ) => {
13
+ const { POLLING_INTERVAL } = useAtomValue ( bridgeConfigAtom ) ;
11
14
// we'll need to fetch this from the bitcoin rpc to get the current status of the tx
12
15
const [ reclaimStatus , setReclaimStatus ] = useState < ReclaimStatus > (
13
16
ReclaimStatus . Pending ,
@@ -17,8 +20,7 @@ export const useReclaimStatus = (txId: string) => {
17
20
if ( txId && reclaimStatus !== ReclaimStatus . Completed ) {
18
21
// fetch the status of the reclaim tx from the bitcoin rpc
19
22
// and update the reclaimStatus
20
-
21
- const interval = setInterval ( async ( ) => {
23
+ const check = async ( ) => {
22
24
const reclaimTx = ( await getRawTransaction ( txId ) ) ! ;
23
25
let status = ReclaimStatus . Pending ;
24
26
@@ -28,10 +30,12 @@ export const useReclaimStatus = (txId: string) => {
28
30
}
29
31
30
32
setReclaimStatus ( status ) ;
31
- } , 1000 ) ;
33
+ } ;
34
+ check ( ) ;
35
+ const interval = setInterval ( check , POLLING_INTERVAL ) ;
32
36
return ( ) => clearInterval ( interval ) ;
33
37
}
34
- } , [ reclaimStatus , txId ] ) ;
38
+ } , [ POLLING_INTERVAL , reclaimStatus , txId ] ) ;
35
39
36
40
return reclaimStatus ;
37
41
} ;
0 commit comments