@broxus/tvm-connect
Version:
TypeScript SDK for connecting to Nekoton-compatible wallets using a unified interface.
38 lines (37 loc) • 1.35 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.isRecentConnectionMeta = isRecentConnectionMeta;
exports.storeRecentConnectionMeta = storeRecentConnectionMeta;
exports.getRecentConnectionMeta = getRecentConnectionMeta;
const js_utils_1 = require("@broxus/js-utils");
const constants_1 = require("../constants");
const types_1 = require("../types");
function isRecentConnectionMeta(value) {
const meta = { providerId: value.providerId, type: value.type };
return Boolean(meta.type && types_1.ConnectionType[meta.type] && !!meta.providerId);
}
function storeRecentConnectionMeta(meta, storageKey = constants_1.TVM_RECENT_CONNECTION) {
if (!meta) {
js_utils_1.storage.remove(storageKey);
return;
}
(0, js_utils_1.debug)('Store TVM recent connection', meta);
js_utils_1.storage.set(storageKey, JSON.stringify(meta));
}
function getRecentConnectionMeta(storageKey = constants_1.TVM_RECENT_CONNECTION) {
const value = js_utils_1.storage.get(storageKey);
if (!value) {
return undefined;
}
try {
const json = JSON.parse(value);
if (isRecentConnectionMeta(json)) {
return json;
}
}
catch (e) {
(0, js_utils_1.debug)(e);
}
storeRecentConnectionMeta(undefined, storageKey);
return undefined;
}
;