diff --git a/apps/maestro/src/features/RegisterRemoteTokens/RegisterRemoteTokens.tsx b/apps/maestro/src/features/RegisterRemoteTokens/RegisterRemoteTokens.tsx index 0683e2722..a3e574eb5 100644 --- a/apps/maestro/src/features/RegisterRemoteTokens/RegisterRemoteTokens.tsx +++ b/apps/maestro/src/features/RegisterRemoteTokens/RegisterRemoteTokens.tsx @@ -27,14 +27,6 @@ export const RegisterRemoteTokens: FC = (props) => { const { address: deployerAddress } = useAccount(); const [txState, setTxState] = useTransactionState(); - useEffect( - () => { - props.onTxStateChange?.(txState); - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [txState.status] - ); - const { mutateAsync: recordRemoteTokenDeployment } = trpc.interchainToken.recordRemoteTokensDeployment.useMutation(); @@ -72,7 +64,7 @@ export const RegisterRemoteTokens: FC = (props) => { }, }); - const { writeAsync: registerCanonicalTokensAsync } = + const { writeAsync: registerCanonicalTokensAsync, reset: resetCanonical } = useRegisterRemoteCanonicalTokens({ chainIds: props.chainIds, deployerAddress: deployerAddress as `0x${string}`, @@ -80,13 +72,28 @@ export const RegisterRemoteTokens: FC = (props) => { originChainId: props.originChainId ?? -1, }); - const { writeAsync: registerInterchainTokensAsync } = + const { writeAsync: registerInterchainTokensAsync, reset: resetInterchain } = useRegisterRemoteInterchainTokens({ chainIds: props.chainIds, tokenAddress: props.tokenAddress, originChainId: props.originChainId ?? -1, }); + useEffect( + () => { + props.onTxStateChange?.(txState); + + if (txState.status === "confirmed") { + // reset muations & tx state + resetCanonical(); + resetInterchain(); + setTxState({ status: "idle" }); + } + }, + // eslint-disable-next-line react-hooks/exhaustive-deps + [txState.status] + ); + const registerTokensAsync = useMemo(() => { switch (props.deploymentKind) { case "canonical": diff --git a/apps/maestro/src/ui/pages/InterchainTokenDetailsPage/ConnectedInterchainTokensPage.tsx b/apps/maestro/src/ui/pages/InterchainTokenDetailsPage/ConnectedInterchainTokensPage.tsx index 0ba3ca8c6..847019e1b 100644 --- a/apps/maestro/src/ui/pages/InterchainTokenDetailsPage/ConnectedInterchainTokensPage.tsx +++ b/apps/maestro/src/ui/pages/InterchainTokenDetailsPage/ConnectedInterchainTokensPage.tsx @@ -355,10 +355,7 @@ const ConnectedInterchainTokensPage: FC = ( break; case "confirmed": setSessionState((draft) => { - draft.selectedChainIds = without( - [txState.chainId], - draft.selectedChainIds - ) as number[]; + draft.selectedChainIds = []; }); break; default: