madeline-ton
Version:
Pure JS client-side implementation of the Telegram TON blockchain protocol
147 lines (118 loc) • 4.28 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 _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _authKey = _interopRequireDefault(require("./authKey"));
var _permAuthKey = _interopRequireDefault(require("./permAuthKey"));
var TempAuthKey =
/*#__PURE__*/
function (_AuthKey) {
(0, _inherits2["default"])(TempAuthKey, _AuthKey);
function TempAuthKey() {
var _getPrototypeOf2;
var _this;
(0, _classCallCheck2["default"])(this, TempAuthKey);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(TempAuthKey)).call.apply(_getPrototypeOf2, [this].concat(args)));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "expires_at", 0);
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "inited", false);
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "pfs", true);
return _this;
}
(0, _createClass2["default"])(TempAuthKey, [{
key: "init",
/**
* initConnection
* @param boolean Whether connection was inited
*/
value: function init() {
var _init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
this.inited = _init;
}
/**
* Check if connection was inited
* @returns boolean
*/
}, {
key: "isInited",
value: function isInited() {
return this.inited;
}
/**
* Bind permanent and temporary auth key
* @param {PermAuthKey} perm Permanent auth key
* @param boolean pfs Whether to bind using PFS
*/
}, {
key: "bindPerm",
value: function bindPerm(perm) {
var pfs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
this.bound = perm;
var instance = !pfs && perm ? perm : this;
var proto = (pfs && perm ? _permAuthKey["default"] : TempAuthKey).prototype;
for (var _i = 0, _arr = ['getAuthKey', 'setAuthKey', 'getServerSalt', 'setServerSalt', 'hasServerSalt', 'getID']; _i < _arr.length; _i++) {
var method = _arr[_i];
this[method] = proto[method].bind(instance);
}
}
/**
* Check if temp auth key is bound
* @returns boolean
*/
}, {
key: "isBound",
value: function isBound() {
return typeof this.bound !== 'undefined';
}
/**
* Check if bound auth key is authorized
* @returns boolean
*/
}, {
key: "isAuthorized",
value: function isAuthorized() {
return this.bound ? this.bound.isAuthorized() : false;
}
/**
* Signal that bound auth key was authorized
* @param {boolean} authorized
*/
}, {
key: "authorized",
value: function authorized(_authorized) {
this.bound.authorized(_authorized);
}
/**
* Set expiry date of temporary auth key
* @param {number} expires
*/
}, {
key: "expires",
value: function expires(_expires) {
this.expires_at = _expires;
}
/**
* Check if auth key has expired
* @returns boolean
*/
}, {
key: "expired",
value: function expired() {
return Date.now() / 1000 > this.expires_at;
}
}]);
return TempAuthKey;
}(_authKey["default"]);
var _default = TempAuthKey;
exports["default"] = _default;