@@ -64,23 +64,12 @@ export const cancelTransactionAndUpdate = async ({
64
64
} else {
65
65
switch ( txData . status ) {
66
66
case TransactionStatus . Errored : {
67
- if ( ! txData . chainId || ! txData . fromAddress ) {
68
- throw new Error ( "Invalid transaction state to cancel." ) ;
69
- }
70
- if ( txData . nonce ) {
71
- const { transactionHash, error } = await sendNullTransaction ( {
67
+ if ( txData . chainId && txData . fromAddress && txData . nonce ) {
68
+ return await sendNullTransaction ( {
72
69
chainId : parseInt ( txData . chainId ) ,
73
70
walletAddress : txData . fromAddress ,
74
71
nonce : txData . nonce ,
75
72
} ) ;
76
- if ( error ) {
77
- return { message : error } ;
78
- }
79
-
80
- return {
81
- message : "Transaction cancelled successfully." ,
82
- transactionHash,
83
- } ;
84
73
}
85
74
86
75
throw createCustomError (
@@ -113,30 +102,24 @@ export const cancelTransactionAndUpdate = async ({
113
102
"TransactionAlreadyMined" ,
114
103
) ;
115
104
case TransactionStatus . Sent : {
116
- if ( ! txData . chainId || ! txData . fromAddress || ! txData . nonce ) {
117
- throw new Error ( "Invalid transaction state to cancel." ) ;
118
- }
105
+ if ( txData . chainId && txData . fromAddress && txData . nonce ) {
106
+ const { transactionHash, message } = await sendNullTransaction ( {
107
+ chainId : parseInt ( txData . chainId ) ,
108
+ walletAddress : txData . fromAddress ,
109
+ nonce : txData . nonce ,
110
+ } ) ;
111
+ if ( transactionHash ) {
112
+ await updateTx ( {
113
+ queueId,
114
+ pgtx,
115
+ data : {
116
+ status : TransactionStatus . Cancelled ,
117
+ } ,
118
+ } ) ;
119
+ }
119
120
120
- const { transactionHash, error } = await sendNullTransaction ( {
121
- chainId : parseInt ( txData . chainId ) ,
122
- walletAddress : txData . fromAddress ,
123
- nonce : txData . nonce ,
124
- } ) ;
125
- if ( error ) {
126
- return { message : error } ;
121
+ return { message, transactionHash } ;
127
122
}
128
-
129
- await updateTx ( {
130
- queueId,
131
- pgtx,
132
- data : {
133
- status : TransactionStatus . Cancelled ,
134
- } ,
135
- } ) ;
136
- return {
137
- message : "Transaction cancelled successfully." ,
138
- transactionHash,
139
- } ;
140
123
}
141
124
}
142
125
}
@@ -150,8 +133,8 @@ const sendNullTransaction = async (args: {
150
133
nonce : number ;
151
134
transactionHash ?: string ;
152
135
} ) : Promise < {
136
+ message : string ;
153
137
transactionHash ?: string ;
154
- error ?: string ;
155
138
} > => {
156
139
const { chainId, walletAddress, nonce, transactionHash } = args ;
157
140
@@ -162,7 +145,7 @@ const sendNullTransaction = async (args: {
162
145
if ( transactionHash ) {
163
146
const txReceipt = await provider . getTransactionReceipt ( transactionHash ) ;
164
147
if ( txReceipt ) {
165
- return { error : "Transaction already mined." } ;
148
+ return { message : "Transaction already mined." } ;
166
149
}
167
150
}
168
151
@@ -176,8 +159,11 @@ const sendNullTransaction = async (args: {
176
159
nonce,
177
160
...multiplyGasOverrides ( gasOverrides , 2 ) ,
178
161
} ) ;
179
- return { transactionHash : hash } ;
162
+ return {
163
+ message : "Transaction cancelled successfully." ,
164
+ transactionHash : hash ,
165
+ } ;
180
166
} catch ( e : any ) {
181
- return { error : e . toString ( ) } ;
167
+ return { message : e . toString ( ) } ;
182
168
}
183
169
} ;
0 commit comments