UNPKG

@bajetech/digitalbits-wallet-sdk

Version:

A library to make it easier to write wallets that interact with the DigitalBits blockchain

59 lines 2.52 kB
import { __assign } from "tslib"; import { getKeyMetadata } from "../helpers/getKeyMetadata"; var MemoryKeyStore = /** @class */ (function () { function MemoryKeyStore() { this.name = "MemoryKeyStore"; this.keyStore = {}; } MemoryKeyStore.prototype.configure = function () { return Promise.resolve(); }; MemoryKeyStore.prototype.storeKeys = function (keys) { var _this = this; // We can't store keys if they're already there var invalidKeys = keys.filter(function (encryptedKey) { return !!_this.keyStore[encryptedKey.id]; }); if (invalidKeys.length) { return Promise.reject("Some keys were already stored in the keystore: ".concat(invalidKeys .map(function (k) { return k.id; }) .join(", "))); } var keysMetadata = keys.map(function (encryptedKey) { _this.keyStore[encryptedKey.id] = __assign({}, encryptedKey); return getKeyMetadata(_this.keyStore[encryptedKey.id]); }); return Promise.resolve(keysMetadata); }; MemoryKeyStore.prototype.updateKeys = function (keys) { var _this = this; // we can't update keys if they're already stored var invalidKeys = keys.filter(function (encryptedKey) { return !_this.keyStore[encryptedKey.id]; }); if (invalidKeys.length) { return Promise.reject("Some keys couldn't be found in the keystore: ".concat(invalidKeys .map(function (k) { return k.id; }) .join(", "))); } var keysMetadata = keys.map(function (encryptedKey) { var id = encryptedKey.id; _this.keyStore[id] = __assign({}, encryptedKey); return getKeyMetadata(_this.keyStore[id]); }); return Promise.resolve(keysMetadata); }; MemoryKeyStore.prototype.loadKey = function (id) { return Promise.resolve(this.keyStore[id]); }; MemoryKeyStore.prototype.removeKey = function (id) { if (!this.keyStore[id]) { return Promise.reject(id); } var metadata = getKeyMetadata(this.keyStore[id]); delete this.keyStore[id]; return Promise.resolve(metadata); }; MemoryKeyStore.prototype.loadAllKeys = function () { return Promise.resolve(Object.values(this.keyStore).map(function (item) { return item; })); }; return MemoryKeyStore; }()); export { MemoryKeyStore }; //# sourceMappingURL=MemoryKeyStore.js.map