UNPKG

@tmawallet/sdk

Version:
63 lines 2.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClientBundleController = void 0; const randomBytes_1 = require("../utils/randomBytes"); const hexToUint8Array_1 = require("../utils/hexToUint8Array"); const uint8ArrayToHex_1 = require("../utils/uint8ArrayToHex"); class ClientBundleController { storage; constructor(storage) { this.storage = storage; // } async getClientBundle() { const values = await this.storage.getItems([ 'tmaw_registered_at', 'tmaw_client_public_key', 'tmaw_client_secret_key', ]); if (!values || typeof values !== 'object') { return null; } const { tmaw_registered_at, tmaw_client_public_key, tmaw_client_secret_key } = values; if (typeof tmaw_registered_at !== 'string' || typeof tmaw_client_public_key !== 'string' || typeof tmaw_client_secret_key !== 'string') { return null; } if (tmaw_client_public_key.length !== 64 || tmaw_client_secret_key.length !== 64) { return null; } const timestamp = Number(tmaw_registered_at); if (isNaN(timestamp) || timestamp <= 0) { return null; } return { timestamp, clientPublicKey: (0, hexToUint8Array_1.hexToUint8Array)(tmaw_client_public_key), clientSecretKey: (0, hexToUint8Array_1.hexToUint8Array)(tmaw_client_secret_key), }; } async createNewBundle() { const clientPublicKey = (0, randomBytes_1.randomBytes)(32); const clientSecretKey = (0, randomBytes_1.randomBytes)(32); const clientPublicKeyHex = (0, uint8ArrayToHex_1.uint8ArrayToHex)(clientPublicKey); const clientSecretKeyHex = (0, uint8ArrayToHex_1.uint8ArrayToHex)(clientSecretKey); const timestamp = Date.now(); await this.storage.setItems({ tmaw_registered_at: timestamp.toString(), tmaw_client_public_key: clientPublicKeyHex, tmaw_client_secret_key: clientSecretKeyHex, }); return { timestamp, clientPublicKey, clientSecretKey, }; } async clearClientBundle() { await this.storage.removeItems(['tmaw_registered_at', 'tmaw_client_public_key', 'tmaw_client_secret_key']); } } exports.ClientBundleController = ClientBundleController; //# sourceMappingURL=ClientBundleController.js.map