test-ic-wallet-middleware-icrc
Version:
Ic middleware wallet ICRC protocol
66 lines (65 loc) • 3.54 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.IcrcInitializer = void 0;
const common_1 = require("@ic-wallet-middleware/common");
const replications_1 = require("../replications");
const storage_1 = require("../storage");
const sync_1 = require("../sync");
const typedi_1 = __importDefault(require("typedi"));
class IcrcInitializer {
static build(identifierService, rxStorage, dataStorage, logger, assetManagerConfiguration, transactionManagerConfiguration, refreshServiceConfiguration, icrcReplicationConfiguration, createIcrcCanisterFunc) {
const icrcDbContext = new storage_1.IcrcDbContext(identifierService, rxStorage);
const assetDataStorage = new storage_1.AssetDataStorage(logger, identifierService, icrcDbContext);
const contactDataStorage = new storage_1.ContactDataStorage(logger, identifierService, icrcDbContext);
const allowanceDataStorage = new storage_1.AllowanceDataStorage(logger, identifierService, icrcDbContext);
const serviceDataStorage = new storage_1.ServiceDataStorage(logger, identifierService, icrcDbContext);
if (!typedi_1.default.has(common_1.IdentifierService)) {
typedi_1.default.set(common_1.IdentifierService, identifierService);
}
if (!typedi_1.default.has("ILogger")) {
typedi_1.default.set("ILogger", logger);
}
if (!typedi_1.default.has("IStorage")) {
typedi_1.default.set("IStorage", dataStorage);
}
if (!typedi_1.default.has("RefreshServiceConfiguration")) {
typedi_1.default.set("RefreshServiceConfiguration", refreshServiceConfiguration);
}
typedi_1.default.set(storage_1.IcrcDbContext, icrcDbContext);
typedi_1.default.set("AssetManagerConfiguration", assetManagerConfiguration);
typedi_1.default.set("TransactionConfiguration", transactionManagerConfiguration);
typedi_1.default.set("IcrcReplicationConfiguration", icrcReplicationConfiguration);
typedi_1.default.set("IContactDataStorage", contactDataStorage);
typedi_1.default.set("IAssetDataStorage", assetDataStorage);
typedi_1.default.set("IServiceDataStorage", serviceDataStorage);
typedi_1.default.set("IAllowanceDataStorage", allowanceDataStorage);
typedi_1.default.set("createIcrcCanisterFunc", createIcrcCanisterFunc);
}
static async init() {
const icrcDbContext = typedi_1.default.get(storage_1.IcrcDbContext);
await icrcDbContext.init();
const icrcReplicationManager = typedi_1.default.get(replications_1.IcrcReplicationManager);
icrcReplicationManager.init();
const icrcRefreshService = typedi_1.default.get(sync_1.IcrcRefreshService);
icrcRefreshService.init();
}
static logout() {
typedi_1.default.reset();
if (typedi_1.default.has(common_1.IdentifierService)) {
typedi_1.default.remove(common_1.IdentifierService);
}
if (typedi_1.default.has("ILogger")) {
typedi_1.default.remove("ILogger");
}
if (typedi_1.default.has("IStorage")) {
typedi_1.default.remove("IStorage");
}
if (typedi_1.default.has("RefreshServiceConfiguration")) {
typedi_1.default.remove("RefreshServiceConfiguration");
}
}
}
exports.IcrcInitializer = IcrcInitializer;