swtc-lib
Version:
websocket access for jingtum blockchain
43 lines • 1.55 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Account = void 0;
const events_1 = require("events");
const utils_1 = require("@swtc/utils");
class Account extends events_1.EventEmitter {
constructor(remote) {
super();
this.setMaxListeners(0);
this._remote = remote;
this._accounts = {};
this._token = remote._token || "swt";
this.on("newListener", function (account, listener) {
if (account === "removeListener")
return;
if (!utils_1.utils.isValidAddress(account)) {
this.account = new Error("invalid account");
return this;
}
this._accounts[account] = listener;
});
this.on("removeListener", function (account) {
if (!utils_1.utils.isValidAddress(account)) {
this.account = new Error("invalid account");
return this;
}
delete this._accounts[account];
});
this._remote.on("transactions", this.__infoAffectedAccounts.bind(this));
}
__infoAffectedAccounts(data) {
const accounts = utils_1.utils.affectedAccounts(data);
for (const account of accounts) {
const callback = this._accounts[accounts[account]];
const _tx = utils_1.utils.processTx(data, accounts[account]);
if (callback) {
callback(_tx);
}
}
}
}
exports.Account = Account;
//# sourceMappingURL=account.js.map