@cityofzion/neon-ledger
Version:
Neon Ledger integration for Node.js
57 lines • 3.13 kB
JavaScript
export var StatusWord;
(function (StatusWord) {
StatusWord[StatusWord["OK"] = 36864] = "OK";
StatusWord[StatusWord["DENY"] = 27013] = "DENY";
StatusWord[StatusWord["WRONG_P1P2"] = 27270] = "WRONG_P1P2";
StatusWord[StatusWord["WRONG_DATA_LENGTH"] = 27271] = "WRONG_DATA_LENGTH";
StatusWord[StatusWord["INS_NOT_SUPPORTED"] = 27904] = "INS_NOT_SUPPORTED";
StatusWord[StatusWord["CLA_NOT_SUPPORTED"] = 28160] = "CLA_NOT_SUPPORTED";
StatusWord[StatusWord["APP_CLOSED"] = 28161] = "APP_CLOSED";
StatusWord[StatusWord["WRONG_RESPONSE_LENGTH"] = 45056] = "WRONG_RESPONSE_LENGTH";
StatusWord[StatusWord["WRONG_TX_LENGTH"] = 45057] = "WRONG_TX_LENGTH";
StatusWord[StatusWord["TX_PARSING_FAIL"] = 45058] = "TX_PARSING_FAIL";
StatusWord[StatusWord["TX_USER_CONFIRMATION_FAIL"] = 45059] = "TX_USER_CONFIRMATION_FAIL";
StatusWord[StatusWord["BAD_STATE"] = 45060] = "BAD_STATE";
StatusWord[StatusWord["SIGN_FAIL"] = 45061] = "SIGN_FAIL";
StatusWord[StatusWord["BIP44_BAD_PURPOSE"] = 45312] = "BIP44_BAD_PURPOSE";
StatusWord[StatusWord["BIP44_BAD_COIN_TYPE"] = 45313] = "BIP44_BAD_COIN_TYPE";
StatusWord[StatusWord["BIP44_ACCOUNT_NOT_HARDENED"] = 45314] = "BIP44_ACCOUNT_NOT_HARDENED";
StatusWord[StatusWord["BIP44_BAD_ACCOUNT"] = 45315] = "BIP44_BAD_ACCOUNT";
StatusWord[StatusWord["BIP44_BAD_CHANGE"] = 45316] = "BIP44_BAD_CHANGE";
StatusWord[StatusWord["BIP44_BAD_ADDRESS"] = 45317] = "BIP44_BAD_ADDRESS";
StatusWord[StatusWord["MAGIC_PARSING_FAIL"] = 45318] = "MAGIC_PARSING_FAIL";
StatusWord[StatusWord["DISPLAY_SYSTEM_FEE_FAIL"] = 45319] = "DISPLAY_SYSTEM_FEE_FAIL";
StatusWord[StatusWord["DISPLAY_NETWORK_FEE_FAIL"] = 45320] = "DISPLAY_NETWORK_FEE_FAIL";
StatusWord[StatusWord["DISPLAY_TOTAL_FEE_FAIL"] = 45321] = "DISPLAY_TOTAL_FEE_FAIL";
StatusWord[StatusWord["DISPLAY_TOKEN_TRANSFER_AMOUNT_FAIL"] = 45322] = "DISPLAY_TOKEN_TRANSFER_AMOUNT_FAIL";
StatusWord[StatusWord["CONVERT_TO_ADDRESS_FAIL"] = 45568] = "CONVERT_TO_ADDRESS_FAIL";
})(StatusWord || (StatusWord = {}));
export function looksLikeTransportStatusError(err) {
return err.statusCode != undefined;
}
/**
* Evaluates Transport Error thrown and rewrite the error message to be more user friendly.
* @returns error with modified message if found.
*/
export function evalTransportError(err) {
const transportErr = structuredClone(err);
switch (transportErr.statusCode) {
case StatusWord.APP_CLOSED:
transportErr.message = "Your NEO app is closed! Please login.";
break;
case StatusWord.DENY:
transportErr.message = "Action rejected by user";
break;
case StatusWord.WRONG_P1P2:
transportErr.message = "Incorrect P1 or P2 in APDU";
break;
case StatusWord.TX_USER_CONFIRMATION_FAIL:
transportErr.message = "Transaction signing denied";
break;
default:
transportErr.message = `Unknown status 0x${transportErr.statusCode.toString(16)}`;
}
return err;
}
export default StatusWord;
//# sourceMappingURL=ErrorCode.js.map