Home Reference Source Test

src/main/generic/network/connection/CloseType.js

class CloseType {
    /**
     * @param {number} closeType
     * @return {boolean}
     */
    static isBanningType(closeType){
        return closeType >= 100 && closeType < 200;
    }

    /**
     * @param {number} closeType
     * @return {boolean}
     */
    static isFailingType(closeType){
        return closeType >= 200;
    }
}

// Regular Close Types

CloseType.GET_BLOCKS_TIMEOUT = 1;
CloseType.GET_HEADER_TIMEOUT = 2;
CloseType.GET_CHAIN_PROOF_TIMEOUT = 3;
CloseType.GET_ACCOUNTS_PROOF_TIMEOUT = 4;
CloseType.GET_ACCOUNTS_TREE_CHUNK_TIMEOUT = 5;
CloseType.GET_TRANSACTIONS_PROOF_TIMEOUT = 6;
CloseType.GET_TRANSACTION_RECEIPTS_TIMEOUT = 7;

CloseType.SENDING_PING_MESSAGE_FAILED = 10;
CloseType.SENDING_OF_VERSION_MESSAGE_FAILED = 11;

CloseType.SIMULTANEOUS_CONNECTION = 20;
CloseType.DUPLICATE_CONNECTION = 21;
CloseType.INVALID_CONNECTION_STATE = 22;

CloseType.PEER_BANNED = 30;
CloseType.IP_BANNED = 31;

CloseType.MAX_PEER_COUNT_REACHED = 40;
CloseType.PEER_CONNECTION_RECYCLED = 41;
CloseType.PEER_CONNECTION_RECYCLED_INBOUND_EXCHANGE = 42;
CloseType.INBOUND_CONNECTIONS_BLOCKED = 43;

CloseType.MANUAL_NETWORK_DISCONNECT = 50;
CloseType.MANUAL_WEBSOCKET_DISCONNECT = 51;
CloseType.MANUAL_PEER_DISCONNECT = 52;


// Ban Close Types

CloseType.INCOMPATIBLE_VERSION = 100;
CloseType.DIFFERENT_GENESIS_BLOCK = 101;
CloseType.INVALID_PEER_ADDRESS_IN_VERSION_MESSAGE = 102;
CloseType.UNEXPECTED_PEER_ADDRESS_IN_VERSION_MESSAGE = 103;
CloseType.INVALID_PUBLIC_KEY_IN_VERACK_MESSAGE = 104;
CloseType.INVALID_SIGNATURE_IN_VERACK_MESSAGE = 105;

CloseType.ADDR_MESSAGE_TOO_LARGE = 110;
CloseType.ADDR_NOT_GLOBALLY_REACHABLE = 111;
CloseType.INVALID_ADDR = 112;
CloseType.INVALID_SIGNAL_TTL = 113;

CloseType.INVALID_BLOCK = 120;
CloseType.INVALID_HEADER = 121;
CloseType.INVALID_ACCOUNTS_TREE_CHUNCK = 122;
CloseType.INVALID_ACCOUNTS_PROOF = 123;
CloseType.INVALID_CHAIN_PROOF = 124;
CloseType.INVALID_TRANSACTION_PROOF = 125;
CloseType.INVALID_BLOCK_PROOF = 126;

CloseType.RATE_LIMIT_EXCEEDED = 130;

CloseType.BLOCKCHAIN_SYNC_FAILED = 140;

CloseType.MANUAL_PEER_BAN = 150;


// Fail Close Types

CloseType.CONNECTION_FAILED = 200;
CloseType.CLOSED_BY_REMOTE = 201;
CloseType.NETWORK_ERROR = 202;
CloseType.CHANNEL_CLOSING = 203;

CloseType.VERSION_TIMEOUT = 210;
CloseType.VERACK_TIMEOUT = 211;
CloseType.PING_TIMEOUT = 212;

CloseType.CONNECTION_LIMIT_PER_IP = 220;
CloseType.CONNECTION_LIMIT_DUMB = 221;

CloseType.FAILED_TO_PARSE_MESSAGE_TYPE = 230;
CloseType.UNEXPECTED_ACCOUNTS_TREE_CHUNK = 231;
CloseType.UNEXPECTED_HEADER = 232;
CloseType.TRANSACTION_NOT_MATCHING_SUBSCRIPTION = 233;

CloseType.ABORTED_SYNC = 240;

CloseType.MANUAL_PEER_FAIL = 250;

Class.register(CloseType);