verusd-web
Version:
A Verus Blockchain library that enables a bi-directional communication with the Verus and other Verus PBaas chains.
61 lines • 4.44 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ZmqClient = void 0;
const verus_zmq_client_1 = require("verus-zmq-client");
class ZmqClient {
constructor(host, port, wsServer, eventHandler) {
this.host = host;
this.port = port;
this.wsServer = wsServer;
this.eventHandler = (eventHandler == null) ?
this.getDefaultEventHandler() :
eventHandler;
}
connect() {
try {
this.client = new verus_zmq_client_1.VerusZmqClient(new verus_zmq_client_1.VerusZmqOptions(new verus_zmq_client_1.VerusZmqConnection(this.host, this.port), [
verus_zmq_client_1.SubscriptionTopics.hashBlock,
verus_zmq_client_1.SubscriptionTopics.hashTx,
verus_zmq_client_1.SubscriptionTopics.rawBlock,
verus_zmq_client_1.SubscriptionTopics.rawTx,
], this.eventHandler));
this.client
.connect()
.listen();
console.log("ZMQ Client connected to " + this.host + ':' + this.port);
}
catch (e) {
throw new Error("An error occurred while initializing the ZMQ Client.");
}
}
disconnect() {
if (this.client != undefined) {
this.client.disconnect();
}
}
getDefaultEventHandler() {
const wss = this.wsServer;
return {
onHashBlockReceived: function (value) {
return __awaiter(this, void 0, void 0, function* () {
console.log("📢 onHashBlockReceived >>" + value);
if (value != undefined) {
wss.send(value);
}
return {};
});
}
};
}
}
exports.ZmqClient = ZmqClient;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWm1xQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9abXFDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsdURBTzBCO0FBRzFCLE1BQWEsU0FBUztJQU9sQixZQUNJLElBQVksRUFDWixJQUFZLEVBQ1osUUFBa0IsRUFDbEIsWUFBd0M7UUFFeEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7WUFDL0IsWUFBWSxDQUFBO0lBQ3BCLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDO1lBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGlDQUFjLENBQzVCLElBQUksa0NBQWUsQ0FDZixJQUFJLHFDQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUM1QztnQkFDSSxxQ0FBa0IsQ0FBQyxTQUFTO2dCQUM1QixxQ0FBa0IsQ0FBQyxNQUFNO2dCQUN6QixxQ0FBa0IsQ0FBQyxRQUFRO2dCQUMzQixxQ0FBa0IsQ0FBQyxLQUFLO2FBQzNCLEVBQ0QsSUFBSSxDQUFDLFlBQVksQ0FDcEIsQ0FDSixDQUFDO1lBRUYsSUFBSSxDQUFDLE1BQU87aUJBQ1AsT0FBTyxFQUFFO2lCQUNULE1BQU0sRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7UUFDNUUsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBRyxJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVPLHNCQUFzQjtRQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzFCLE9BQU87WUFDSCxtQkFBbUIsRUFBRSxVQUFnQixLQUFnQjs7b0JBQ2pELE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEdBQUcsS0FBSyxDQUFDLENBQUM7b0JBQ2pELElBQUcsS0FBSyxJQUFJLFNBQVMsRUFBRSxDQUFDO3dCQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQUMsQ0FBQztvQkFDM0MsT0FBTyxFQUFFLENBQUM7Z0JBQ2QsQ0FBQzthQUFBO1NBQ0osQ0FBQztJQUNOLENBQUM7Q0FDSjtBQTNERCw4QkEyREMifQ==