@tidecloak/js
Version:
TideCloak client side JS SDK
49 lines • 1.76 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const Ed25519_js_1 = require("../../Cryptide/Ed25519.js");
const OrkInfo_js_1 = __importDefault(require("./OrkInfo.js"));
class KeyInfo {
/**
*
* @param {string} userId
* @param {Point} userPublic
* @param {string} userM
* @param {OrkInfo[]} orkInfo
*/
constructor(userId, userPublic, userM, orkInfo) {
this.UserId = userId;
this.UserPublic = userPublic;
this.UserM = userM;
this.OrkInfo = orkInfo;
}
toString() {
return JSON.stringify({
UserId: this.UserId,
UserPublic: this.UserPublic.toBase64(),
UserM: this.UserM,
OrkInfos: this.OrkInfo.map(info => info.toString())
});
}
toNativeTypeObject() {
return {
UserId: this.UserId,
UserPublic: this.UserPublic.toBase64(),
UserM: this.UserM,
OrkInfos: this.OrkInfo.map(info => info.toNativeTypeObject())
};
}
static from(data) {
const json = JSON.parse(data);
const pub = Ed25519_js_1.Point.fromBase64(json.UserPublic);
const orkInfo = json.OrkInfos.map(orkInfo => OrkInfo_js_1.default.from(orkInfo));
return new KeyInfo(json.UserId, pub, json.UserM, orkInfo);
}
static fromNativeTypeObject(json) {
return new KeyInfo(json.UserId, Ed25519_js_1.Point.fromBase64(json.UserPublic), json.UserM, json.OrkInfos.map(o => OrkInfo_js_1.default.fromNativeTypeObject(o)));
}
}
exports.default = KeyInfo;
//# sourceMappingURL=KeyInfo.js.map