madeline-ton
Version:
Pure JS client-side implementation of the Telegram TON blockchain protocol
60 lines (45 loc) • 1.98 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _authInfo = _interopRequireDefault(require("./session/authInfo"));
var _context = _interopRequireDefault(require("./network/context"));
var _connection = _interopRequireDefault(require("./connection"));
var _crypto = _interopRequireDefault(require("./crypto"));
var DataCenter =
/*#__PURE__*/
function () {
function DataCenter() {
(0, _classCallCheck2["default"])(this, DataCenter);
(0, _defineProperty2["default"])(this, "authInfo", {});
(0, _defineProperty2["default"])(this, "sockets", {});
(0, _defineProperty2["default"])(this, "map", ['pluto', 'venus', 'aurora', 'vesta', 'flora']);
}
(0, _createClass2["default"])(DataCenter, [{
key: "connect",
value: function connect(dcID, API) {
if (!this.map[dcID - 1]) {
throw new Error('Wrong DC ID provided: ' + dcID);
}
if (this.sockets[dcID] && this.sockets[dcID].connected) {
console.log("Already connected to DC ".concat(dcID));
return;
}
if (!this.authInfo[dcID]) {
this.authInfo[dcID] = new _authInfo["default"]();
}
var ctx = new _context["default"]();
ctx.secure(true).setDcId(dcID).setUri("".concat(this.map[dcID - 1], ".web.telegram.org"), 443).setCrypto(new _crypto["default"](API.getTL()));
this.sockets[dcID] = new _connection["default"](this.authInfo[dcID], API);
return this.sockets[dcID].connect(ctx);
}
}]);
return DataCenter;
}();
var _default = DataCenter;
exports["default"] = _default;