fix: wallet errors incorrectly showing as user rejections (#1737)

This commit is contained in:
Dexter Edwards 2022-10-13 14:34:16 +01:00 committed by GitHub
parent cb92a30015
commit dee0b016eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 34 deletions

View File

@ -254,7 +254,7 @@ export class JsonRpcConnector implements VegaConnector {
} else {
// In the case of sending a tx, return null instead of throwing
// this indicates to the app that the user rejected the tx rather
// than it being a true erroor
// than it being a true error
if ('error' in result && result.error.code === 3001) {
return null;
}

View File

@ -162,42 +162,37 @@ export class RestConnector implements VegaConnector {
}
async sendTx(pubKey: string, transaction: Transaction) {
try {
const body = {
pubKey,
propagate: true,
...transaction,
};
const res = await this.request(Endpoints.Command, {
method: 'post',
body: JSON.stringify(body),
headers: {
authorization: `Bearer ${this.token}`,
},
});
const body = {
pubKey,
propagate: true,
...transaction,
};
const res = await this.request(Endpoints.Command, {
method: 'post',
body: JSON.stringify(body),
headers: {
authorization: `Bearer ${this.token}`,
},
});
// User rejected
if (res.status === 401) {
return null;
}
if (res.error) {
throw new WalletError(res.error, 1, res.details);
}
const data = TransactionResponseSchema.parse(res.data);
// Make return value match that of v2 service
return {
transactionHash: data.txHash,
signature: data.tx.signature.value,
receivedAt: data.receivedAt,
sentAt: data.sentAt,
};
} catch (err) {
Sentry.captureException(err);
// User rejected
if (res.status === 401) {
return null;
}
if (res.error) {
throw new WalletError(res.error, 1, res.details);
}
const data = TransactionResponseSchema.parse(res.data);
// Make return value match that of v2 service
return {
transactionHash: data.txHash,
signature: data.tx.signature.value,
receivedAt: data.receivedAt,
sentAt: data.sentAt,
};
}
/** Parse more complex error object into a single string */