@@ -11,13 +11,13 @@ import { encodeFunctionData, maxUint256 } from 'viem';
1111
1212import { dashboardAbi } from 'abi/dashboard-abi' ;
1313import { useDappStatus } from 'modules/web3/hooks/use-dapp-status' ;
14- import { useVaultInfo } from 'features/overview/contexts ' ;
14+ import { useVaultInfo } from 'modules/vaults ' ;
1515import {
1616 SubmitPayload ,
1717 SubmitStepEnum ,
1818} from 'shared/components/submit-modal/types' ;
1919import invariant from 'tiny-invariant' ;
20- import { useVaultPermissions } from 'modules/vaults/hooks/use-vault-permissions' ;
20+ import { useVaultPermission } from 'modules/vaults/hooks/use-vault-permissions' ;
2121import { useLidoSDK } from 'modules/web3' ;
2222
2323type BurnArgs = {
@@ -55,24 +55,25 @@ export const useBurn = (onMutate = () => {}) => {
5555 to : activeVault . owner ,
5656 } ) ;
5757 const needsAllowance = allowance < amount ;
58-
59- setModalState ( { step : SubmitStepEnum . confirming } ) ;
60-
6158 if ( needsAllowance ) {
62- const receipt = await tokenContract . approve ( {
59+ setModalState ( { step : SubmitStepEnum . confirming } ) ;
60+
61+ const result = await tokenContract . approve ( {
6362 amount : maxUint256 ,
6463 to : activeVault . owner ,
64+ callback : async ( props ) => {
65+ if ( props . stage === 'receipt' ) {
66+ setModalState ( { step : SubmitStepEnum . submitting } ) ;
67+ }
68+ } ,
6569 } ) ;
6670
67- setModalState ( { step : SubmitStepEnum . submitting , tx : receipt . hash } ) ;
68-
69- await publicClient . waitForTransactionReceipt ( {
70- hash : receipt . hash ,
71- } ) ;
71+ if ( result . receipt ?. status === 'reverted' ) {
72+ throw new Error ( 'Transaction was reverted' ) ;
73+ }
7274 }
7375
7476 setModalState ( { step : SubmitStepEnum . confirming } ) ;
75-
7677 const tx = await writeContractAsync ( {
7778 abi : dashboardAbi ,
7879 address : activeVault . owner ,
@@ -109,7 +110,7 @@ export const useEstimateGasBurn = ({
109110 amount,
110111 allowance,
111112} : EstimateGasBurnProps ) => {
112- const { hasPermission } = useVaultPermissions ( 'repayer' ) ;
113+ const { hasPermission } = useVaultPermission ( 'repayer' ) ;
113114 const { address } = useAccount ( ) ;
114115 const payload = [ amount ?? 1n ] as const ;
115116 const functionName = token === 'stETH' ? 'burnStETH' : 'burnWstETH' ;
0 commit comments