on master help sign in
fix: make waitForTransactionConfirm correctly throw on unconfirmed
commit52de81675e8164a9dad8835ef88eb1391b863825 authorMatt Condon (shrugs) <mattgcondon@gmail.com> dateTue 6 Aug 2019, 12:11 (7 years ago) parent39bc817
2 files changed+10−6
src/lib/txn.js+9−3 src/views/Invite/InviteEmail.js+1−3
src/lib/txn.js+9−3
@@ -129,13 +129,19 @@ const sendSignedTransaction = (web3, stx, doubtNonceError) => {
129129 });
130130};
131131
132−// returns a Promise<bool>, where the bool indicates tx success/failure
132+// returns a Promise<void>, throwing on tx failure
133133const waitForTransactionConfirm = (web3, txHash) => {
134134 return retry(async (bail, n) => {
135135 const receipt = await web3.eth.getTransactionReceipt(txHash);
136136 const confirmed = receipt !== null;
137− if (confirmed) return receipt.status === true;
138− else throw new Error('retrying');
137+ if (!confirmed) {
138+ throw new Error('Transaction not confirmed.');
139+ }
140+
141+ const success = receipt.status === true;
142+ if (!success) {
143+ return bail(new Error('Transaction failed.'));
144+ }
139145 }, RETRY_OPTIONS);
140146};
141147
src/views/Invite/InviteEmail.js+1−3
@@ -315,9 +315,7 @@ export default function InviteEmail() {
315315 tankWasUsed
316316 );
317317
318− // TODO: waitForTransactionConfirm never rejects
319− const didConfirm = await waitForTransactionConfirm(_web3, txHash);
320− if (!didConfirm) throw new Error();
318+ await waitForTransactionConfirm(_web3, txHash);
321319 } catch (error) {
322320 console.error(error);
323321 unsentInvites.push(invite);