UNPKG

tidecloak-js

Version:

TideCloak client side JS SDK

47 lines (42 loc) 1.41 kB
import { Point } from "../../Cryptide/Ed25519.js"; import OrkInfo from "./OrkInfo.js"; export default 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 = Point.fromBase64(json.UserPublic); const orkInfo = json.OrkInfos.map(orkInfo => OrkInfo.from(orkInfo)); return new KeyInfo(json.UserId, pub, json.UserM, orkInfo); } static fromNativeTypeObject(json){ return new KeyInfo(json.UserId, Point.fromBase64(json.UserPublic), json.UserM, json.OrkInfos.map(o => OrkInfo.fromNativeTypeObject(o))); } }