@@ -41,6 +41,7 @@ import TbtcFees from "../components/TbtcFees"
4141import { useIsActive } from "../../../../hooks/useIsActive"
4242import { PosthogButtonId } from "../../../../types/posthog"
4343import SubmitTxButton from "../../../../components/SubmitTxButton"
44+ import { Toast } from "../../../../components/Toast"
4445import { Deposit } from "@keep-network/tbtc-v2.ts"
4546import { useModal } from "../../../../hooks/useModal"
4647import { ModalType } from "../../../../enums"
@@ -162,16 +163,18 @@ const MintingProcessForm = withFormik<MintingProcessFormProps, FormValues>({
162163export const ProvideDataComponent : FC < {
163164 onPreviousStepClick : ( previosuStep : MintingStep ) => void
164165} > = ( { onPreviousStepClick } ) => {
165- const { updateState } = useTbtcState ( )
166+ const { updateState, resetDepositData } = useTbtcState ( )
166167 const [ isSubmitButtonLoading , setSubmitButtonLoading ] = useState ( false )
168+ const [ telemetryFailed , setTelemetryFailed ] = useState ( false )
167169 const [ stagedDepositValues , setStagedDepositValues ] =
168170 useState < FormValues | null > ( null )
169171 const formRef = useRef < FormikProps < FormValues > > ( null )
170172 const threshold = useThreshold ( )
171173 const { account, chainId } = useIsActive ( )
172174 const { isNonEVMActive, nonEVMPublicKey, nonEVMChainName } =
173175 useNonEVMConnection ( )
174- const { setDepositDataInLocalStorage } = useTBTCDepositDataFromLocalStorage ( )
176+ const { setDepositDataInLocalStorage, removeDepositDataFromLocalStorage } =
177+ useTBTCDepositDataFromLocalStorage ( )
175178 const depositTelemetry = useDepositTelemetry ( threshold . tbtc . bitcoinNetwork )
176179 const connectedAccount = account || nonEVMPublicKey
177180 const { openModal, closeModal : closeModalFromHook , modalType } = useModal ( )
@@ -217,6 +220,7 @@ export const ProvideDataComponent: FC<{
217220 const chainName =
218221 nonEVMChainName || getEthereumNetworkNameFromChainId ( chainId )
219222
223+ setTelemetryFailed ( false )
220224 setSubmitButtonLoading ( true )
221225
222226 let deposit : Deposit
@@ -263,7 +267,16 @@ export const ProvideDataComponent: FC<{
263267 networkName
264268 )
265269
266- depositTelemetry ( receipt , btcDepositAddress )
270+ try {
271+ await depositTelemetry ( receipt , btcDepositAddress )
272+ } catch ( error ) {
273+ threshold . tbtc . removeDepositData ( )
274+ resetDepositData ( )
275+ removeDepositDataFromLocalStorage ( networkName )
276+ setSubmitButtonLoading ( false )
277+ setTelemetryFailed ( true )
278+ return
279+ }
267280
268281 // if the user has NOT declined the json file, ask the user if they want to accept the new file
269282 if ( shouldDownloadDepositReceipt ) {
@@ -296,6 +309,15 @@ export const ProvideDataComponent: FC<{
296309
297310 return (
298311 < >
312+ { telemetryFailed && (
313+ < Toast
314+ title = "We couldn't submit deposit telemetry. Please try again."
315+ status = "error"
316+ duration = { 8000 }
317+ top = { 3 }
318+ zIndex = { 1 }
319+ />
320+ ) }
299321 < BridgeProcessCardTitle onPreviousStepClick = { onPreviousStepClick } />
300322 < BridgeProcessCardSubTitle
301323 stepText = "Step 1"
0 commit comments