@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
JavaScript
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