Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | import { useApi } from './use-api'; import { watchContractExecution } from '@api/watch-contract-execution'; import { RootState } from '@store/index'; import { selectAddress } from '@store/keys'; import { selectActiveStackingTxId, selectPoxInfo, fetchStackerInfo, removeStackingTx, fetchAccountBalanceLocked, } from '@store/stacking'; import { safeAwait } from '@utils/safe-await'; import { useEffect } from 'react'; import { useDispatch, useSelector } from 'react-redux'; export function useWatchStackingTx() { const api = useApi(); const dispatch = useDispatch(); const { address, activeStackingTx } = useSelector((state: RootState) => ({ address: selectAddress(state), activeStackingTx: selectActiveStackingTxId(state), poxInfo: selectPoxInfo(state), })); useEffect(() => { async function run() { Iif (!activeStackingTx || !address) return; await safeAwait(watchContractExecution({ nodeUrl: api.baseUrl, txId: activeStackingTx })); dispatch(fetchStackerInfo(address)); dispatch(fetchAccountBalanceLocked(address)); setTimeout(() => dispatch(removeStackingTx()), 2000); } void run(); }, [activeStackingTx, address, api.baseUrl, dispatch]); } |