All files BitcoinError.ts

94.59% Statements 35/37
93.33% Branches 28/30
100% Functions 2/2
94.44% Lines 34/36

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 801x     140x   6x   2x   12x       5x   2x   3x   3x   1x   1x         2x   7x   5x   1x   1x   1x     16x   16x   4x     3x   2x   5x     2x   35x   1x   1x     1x   1x     1x       1x 140x 140x 140x      
import { BitcoinErrorCode } from "./BitcoinErrorCode";
 
function getMessage(code: BitcoinErrorCode) {
    switch (code) {
        case BitcoinErrorCode.InvalidPrivateKey:
            return "Invalid private key";
        case BitcoinErrorCode.Base58ChecksumFailed:
            return "Base58Check checksum failed";
        case BitcoinErrorCode.PubKeyInvalid:
            return "Invalid public key";
        case BitcoinErrorCode.PubKeyHashInvalid:
            return "Invalid pubkeyhash";
        case BitcoinErrorCode.SigEncodingInvalid:
            return "Signatures requires BIP66 DER encoding";
        case BitcoinErrorCode.SigHashTypeInvalid:
            return "Invalid Signature SIGHASH type";
        case BitcoinErrorCode.MultiSigSetupInvalid:
            return "MultiSig structure is invalid";
        case BitcoinErrorCode.Hash160Invalid:
            return "Hash160 requires 20-byte Buffer";
        case BitcoinErrorCode.Hash256Invalid:
            return "Hash256 requires 32-byte Buffer";
        case BitcoinErrorCode.NetworkMismatch:
            return "Network mismatch";
        case BitcoinErrorCode.InputIndexOutOfRange:
            return "Input index out of range";
 
        case BitcoinErrorCode.UnkownHdKeyVersion:
            return "Unkown HD key version";
        case BitcoinErrorCode.InvalidHdEncoding:
            return "Invalid HD encoding";
        case BitcoinErrorCode.InvalidHdPath:
            return "Invalid HD key path";
        case BitcoinErrorCode.InvalidHdDerivation:
            return "Invalid HD key derivation";
        case BitcoinErrorCode.InvalidHdPrivateKey:
            return "Invalid HD private key";
        case BitcoinErrorCode.InvalidHdPublicKey:
            return "Invalid HD public key";
 
        case BitcoinErrorCode.InvalidBech32Encoding:
            return "Invalid bech32 encoding";
        case BitcoinErrorCode.InvalidBech32Hrp:
            return "Invalid bech32 human readable part";
        case BitcoinErrorCode.InvalidBech32Checksum:
            return "Invalid bech32 checksum";
 
        case BitcoinErrorCode.UnknownAddressPrefix:
            return "Unknown address prefix";
        case BitcoinErrorCode.InvalidSegwitVersion:
            return "Unknown segwit version";
        case BitcoinErrorCode.InvalidWitnessProgram:
            return "Invalid witness program";
 
        case BitcoinErrorCode.InvalidMnemonicWordList:
            return "Invalid mnemonic word list";
        case BitcoinErrorCode.InvalidMnemonicEntropy:
            return "Invalid mnemonic entropy";
        case BitcoinErrorCode.InvalidMnemonicWord:
            return "Unknown mnemonic word";
        case BitcoinErrorCode.InvalidMnemonicChecksum:
            return "Mnemonic checksum failed";
 
        case BitcoinErrorCode.InvalidWifEncoding:
            return "Invalid WIF encoding";
        case BitcoinErrorCode.UnknownWifPrefix:
            return "Unknown WIF prefix";
 
        case BitcoinErrorCode.ValueUnderflow:
            return "Value underflow";
    }
}
 
export class BitcoinError extends Error {
    constructor(readonly code: BitcoinErrorCode, readonly info?: any) {
        super(getMessage(code));
        this.name = "BitcoinError";
    }
}