@libra-opensource/client-sdk-typescript
Version:
171 lines (170 loc) • 7.58 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getErrorFromErrorPayload = exports.DiemClientErrorsMap = exports.ParseError = exports.InvalidFormatError = exports.InvalidParamsError = exports.MethodNotFoundError = exports.InvalidRequestError = exports.MempoolUnknownError = exports.MempoolVmError = exports.MempoolInvalidUpdate = exports.MempoolTooManyTransactions = exports.MempoolIsFull = exports.MempoolInvalidSeqNumber = exports.VmUnknownError = exports.VmExecutionError = exports.VmDeserializationError = exports.VmInvariantViolationError = exports.VmVerificationError = exports.VmValidationError = exports.UnknownServerError = exports.DiemClientError = exports.DiemNetworkStaleError = exports.DiemChainIDMismatchError = exports.FaucetNetworkError = exports.FaucetTransportError = exports.TransactionSequenceNumberConflictError = exports.TransactionExpiredError = exports.TransactionExecutionFailure = exports.AccountTransactionNotFound = exports.DiemError = void 0;
class DiemError extends Error {
}
exports.DiemError = DiemError;
class AccountTransactionNotFound extends DiemError {
constructor(address, sequenceNumber) {
super(`couldn't find transaction by sequence number ${sequenceNumber} for account ${address}`);
this.address = address;
this.sequenceNumber = sequenceNumber;
}
}
exports.AccountTransactionNotFound = AccountTransactionNotFound;
class TransactionExecutionFailure extends DiemError {
constructor(vmStatusType) {
super(`transaction execution failed with status: ${vmStatusType}`);
this.vmStatusType = vmStatusType;
}
}
exports.TransactionExecutionFailure = TransactionExecutionFailure;
class TransactionExpiredError extends DiemError {
constructor(txTimestamp, currentTimestamp) {
super(`transaction expired. tx timestamp ${txTimestamp}, current timestamp ${currentTimestamp}`);
}
}
exports.TransactionExpiredError = TransactionExpiredError;
class TransactionSequenceNumberConflictError extends DiemError {
constructor(txn, expectedSequenceNumber) {
super(`transaction sequence number conflict. expected ${expectedSequenceNumber}`);
this.txn = txn;
this.expectedSequenceNumber = expectedSequenceNumber;
}
}
exports.TransactionSequenceNumberConflictError = TransactionSequenceNumberConflictError;
class FaucetTransportError extends DiemError {
constructor(message) {
super(`Faucet transport error caused by: ${message}`);
}
}
exports.FaucetTransportError = FaucetTransportError;
class FaucetNetworkError extends DiemError {
constructor(message) {
super(`Faucet network error caused by: ${message}`);
}
}
exports.FaucetNetworkError = FaucetNetworkError;
class DiemChainIDMismatchError extends DiemError {
constructor(expected, current) {
super(`Chain ID mismatch. expected ${expected}, got ${current}`);
}
}
exports.DiemChainIDMismatchError = DiemChainIDMismatchError;
class DiemNetworkStaleError extends DiemError {
constructor(lastSeen, current) {
super(`Current ledger state stale:\\n current version: ${current.version} last seen version: ${lastSeen.version} current timestamp usecs: ${current.timestampUsecs} last seen timestamp usecs: ${lastSeen.timestampUsecs}`);
}
}
exports.DiemNetworkStaleError = DiemNetworkStaleError;
class DiemClientError extends DiemError {
constructor(error) {
super(`Request to Diem failed with error code: ${error.code}`);
this.error = error;
}
}
exports.DiemClientError = DiemClientError;
/// Custom JSON RPC server error codes
/// Ranges from -32000 to -32099 - see `https://www.jsonrpc.org/specification#error_object` for details
class UnknownServerError extends DiemClientError {
}
exports.UnknownServerError = UnknownServerError;
UnknownServerError.code = -32000;
// VM errors - see `vm_status.rs` for specs
class VmValidationError extends DiemClientError {
}
exports.VmValidationError = VmValidationError;
VmValidationError.code = -32001;
class VmVerificationError extends DiemClientError {
}
exports.VmVerificationError = VmVerificationError;
VmVerificationError.code = -32002;
class VmInvariantViolationError extends DiemClientError {
}
exports.VmInvariantViolationError = VmInvariantViolationError;
VmInvariantViolationError.code = -32003;
class VmDeserializationError extends DiemClientError {
}
exports.VmDeserializationError = VmDeserializationError;
VmDeserializationError.code = -32004;
class VmExecutionError extends DiemClientError {
}
exports.VmExecutionError = VmExecutionError;
VmExecutionError.code = -32005;
class VmUnknownError extends DiemClientError {
}
exports.VmUnknownError = VmUnknownError;
VmUnknownError.code = -32006;
// Mempool errors - see `MempoolStatusCode` for specs
class MempoolInvalidSeqNumber extends DiemClientError {
}
exports.MempoolInvalidSeqNumber = MempoolInvalidSeqNumber;
MempoolInvalidSeqNumber.code = -32007;
class MempoolIsFull extends DiemClientError {
}
exports.MempoolIsFull = MempoolIsFull;
MempoolIsFull.code = -32008;
class MempoolTooManyTransactions extends DiemClientError {
}
exports.MempoolTooManyTransactions = MempoolTooManyTransactions;
MempoolTooManyTransactions.code = -32009;
class MempoolInvalidUpdate extends DiemClientError {
}
exports.MempoolInvalidUpdate = MempoolInvalidUpdate;
MempoolInvalidUpdate.code = -32010;
class MempoolVmError extends DiemClientError {
}
exports.MempoolVmError = MempoolVmError;
MempoolVmError.code = -32011;
class MempoolUnknownError extends DiemClientError {
}
exports.MempoolUnknownError = MempoolUnknownError;
MempoolUnknownError.code = -32012;
/// JSON RPC server error codes for invalid request
class InvalidRequestError extends DiemClientError {
}
exports.InvalidRequestError = InvalidRequestError;
InvalidRequestError.code = -32600;
class MethodNotFoundError extends DiemClientError {
}
exports.MethodNotFoundError = MethodNotFoundError;
MethodNotFoundError.code = -32601;
class InvalidParamsError extends DiemClientError {
}
exports.InvalidParamsError = InvalidParamsError;
InvalidParamsError.code = -32602;
class InvalidFormatError extends DiemClientError {
}
exports.InvalidFormatError = InvalidFormatError;
InvalidFormatError.code = -32604;
class ParseError extends DiemClientError {
}
exports.ParseError = ParseError;
ParseError.code = -32700;
exports.DiemClientErrorsMap = {
[UnknownServerError.code]: UnknownServerError,
[VmValidationError.code]: VmValidationError,
[VmVerificationError.code]: VmVerificationError,
[VmInvariantViolationError.code]: VmInvariantViolationError,
[VmDeserializationError.code]: VmDeserializationError,
[VmExecutionError.code]: VmExecutionError,
[VmUnknownError.code]: VmUnknownError,
[MempoolInvalidSeqNumber.code]: MempoolInvalidSeqNumber,
[MempoolIsFull.code]: MempoolIsFull,
[MempoolTooManyTransactions.code]: MempoolTooManyTransactions,
[MempoolInvalidUpdate.code]: MempoolInvalidUpdate,
[MempoolVmError.code]: MempoolVmError,
[MempoolUnknownError.code]: MempoolUnknownError,
[InvalidRequestError.code]: InvalidRequestError,
[MethodNotFoundError.code]: MethodNotFoundError,
[InvalidParamsError.code]: InvalidParamsError,
[InvalidFormatError.code]: InvalidFormatError,
[ParseError.code]: ParseError,
};
function getErrorFromErrorPayload(error) {
if (error.code in exports.DiemClientErrorsMap) {
return new exports.DiemClientErrorsMap[error.code](error);
}
return new UnknownServerError(error);
}
exports.getErrorFromErrorPayload = getErrorFromErrorPayload;