verus-zmq-client
Version:
Verus Coin Javascript/Typescript client for ZMQ messaging.
77 lines • 7.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.VerusZmqOptions = exports.VerusZmqConnection = exports.SubscriptionTopics = void 0;
var SubscriptionTopics;
(function (SubscriptionTopics) {
SubscriptionTopics["rawTx"] = "rawtx";
SubscriptionTopics["hashTx"] = "hashtx";
SubscriptionTopics["rawBlock"] = "rawblock";
SubscriptionTopics["hashBlock"] = "hashblock";
SubscriptionTopics["sequence"] = "sequence";
})(SubscriptionTopics || (exports.SubscriptionTopics = SubscriptionTopics = {}));
class VerusZmqConnection {
constructor(address, port, protocol) {
this.address = address;
this.port = port;
this.protocol = protocol !== null && protocol !== void 0 ? protocol : 'tcp';
}
getAddress() {
return `${this.protocol}://${this.address}:${this.port}`.toLowerCase();
}
}
exports.VerusZmqConnection = VerusZmqConnection;
class VerusZmqOptions {
constructor(server, topics, events) {
this.getTopics = (topics) => {
const defaultTopics = Object.values(SubscriptionTopics);
const foundTopic = [];
const filteredTopics = topics.filter(t => {
if (defaultTopics.includes(t) && !foundTopic.includes(t)) {
foundTopic.push(t);
return true;
}
return false;
});
return (filteredTopics[0] === undefined) ?
defaultTopics :
filteredTopics;
};
this.connection = server;
this.topics = this.getTopics(topics);
this.events = events;
}
getEventHandlers() {
const before = (this.events.before !== undefined) ?
(value, topic) => this.events.before(value, topic) :
() => Object;
const after = (this.events.after !== undefined) ?
(value, topic, result) => this.events.after(value, topic, result) :
() => { };
const onRawTxReceived = (this.events.onRawTxReceived !== undefined) ?
(value, topic, result) => this.events.onRawTxReceived(value, topic, result) :
() => Object;
const onHashTxReceived = (this.events.onHashTxReceived !== undefined) ?
(value, topic, result) => this.events.onHashTxReceived(value, topic, result) :
() => Object;
const onRawBlockReceived = (this.events.onRawBlockReceived !== undefined) ?
(value, topic, result) => this.events.onRawBlockReceived(value, topic, result) :
() => Object;
const onHashBlockReceived = (this.events.onHashBlockReceived !== undefined) ?
(value, topic, result) => this.events.onHashBlockReceived(value, topic, result) :
() => Object;
const onSequenceReceived = (this.events.onSequenceReceived !== undefined) ?
(value, topic, result) => this.events.onSequenceReceived(value, topic, result) :
() => Object;
return {
before: before,
after: after,
onRawTxReceived: onRawTxReceived,
onHashTxReceived: onHashTxReceived,
onRawBlockReceived: onRawBlockReceived,
onHashBlockReceived: onHashBlockReceived,
onSequenceReceived: onSequenceReceived,
};
}
}
exports.VerusZmqOptions = VerusZmqOptions;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmVydXNabXFPcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9WZXJ1c1ptcU9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBU0EsSUFBWSxrQkFNWDtBQU5ELFdBQVksa0JBQWtCO0lBQzFCLHFDQUFlLENBQUE7SUFDZix1Q0FBaUIsQ0FBQTtJQUNqQiwyQ0FBcUIsQ0FBQTtJQUNyQiw2Q0FBdUIsQ0FBQTtJQUN2QiwyQ0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBTlcsa0JBQWtCLGtDQUFsQixrQkFBa0IsUUFNN0I7QUFZRCxNQUFhLGtCQUFrQjtJQUkzQixZQUFZLE9BQWUsRUFBRSxJQUFZLEVBQUUsUUFBaUI7UUFDeEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLGFBQVIsUUFBUSxjQUFSLFFBQVEsR0FBSSxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVELFVBQVU7UUFDTixPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsTUFBTSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0NBQ0o7QUFiRCxnREFhQztBQUVELE1BQWEsZUFBZTtJQUt4QixZQUNJLE1BQTBCLEVBQzFCLE1BQTRCLEVBQzVCLE1BQWlDO1FBTTVCLGNBQVMsR0FBRyxDQUFDLE1BQTRCLEVBQXdCLEVBQUU7WUFDeEUsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sVUFBVSxHQUF5QixFQUFFLENBQUM7WUFDNUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDckMsSUFBRyxhQUFhLENBQUMsUUFBUSxDQUFD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