test-ic-wallet-middleware-icrc
Version:
Ic middleware wallet ICRC protocol
78 lines (77 loc) • 4.18 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.LoadServiceAssetsHandler = void 0;
const common_1 = require("@ic-wallet-middleware/common");
const allCreditsCacheHandler_1 = require("../../internalHandlers/icrcCacheDataHandlers/services/allCreditsCacheHandler/allCreditsCacheHandler");
const serviceAssetDepositHandler_1 = require("../../internalHandlers/icrcCacheDataHandlers/services/serviceAssetDepositHandler/serviceAssetDepositHandler");
const serviceAssetDetailsHandler_1 = require("../../internalHandlers/icrcCacheDataHandlers/services/serviceAssetDetailsHandler/serviceAssetDetailsHandler");
const typedi_1 = require("typedi");
let LoadServiceAssetsHandler = class LoadServiceAssetsHandler extends common_1.BaseHandler {
allCreditsHandler;
serviceAssetDetailsHandler;
serviceAssetDepositHandler;
constructor(logger, allCreditsHandler, serviceAssetDetailsHandler, serviceAssetDepositHandler) {
super(logger);
this.allCreditsHandler = allCreditsHandler;
this.serviceAssetDetailsHandler = serviceAssetDetailsHandler;
this.serviceAssetDepositHandler = serviceAssetDepositHandler;
}
async validate(form) { }
async process(form) {
const serviceInfo = {
servicePrincipal: form.servicePrincipal,
loadType: form.loadType
};
let serviceAssets = [];
const allCreditsResult = await this.allCreditsHandler.process(serviceInfo);
serviceAssets = await Promise.all(form.ledgerAddresses.map(async (ledgerAddress) => {
const detailsInfo = {
servicePrincipal: form.servicePrincipal,
ledgerAddress: ledgerAddress,
loadType: form.loadType
};
const assetDetailsResult = await this.serviceAssetDetailsHandler.process(detailsInfo);
const credit = allCreditsResult.credits.find((crd) => crd.ledgerAddress === ledgerAddress);
const assetDepositResult = await this.serviceAssetDepositHandler.process(detailsInfo);
const serviceAsset = {
tokenSymbol: "",
tokenName: "",
logo: "",
decimal: undefined,
shortDecimal: undefined,
balance: assetDepositResult.serviceAssetDeposit,
ledgerAddress: ledgerAddress,
credit: credit?.credit,
depositFee: assetDetailsResult.assetDetail.depositFee,
withdrawFee: assetDetailsResult.assetDetail.withdrawalFee,
isSync: true
};
return serviceAsset;
}));
const result = {
servicePrincipal: form.servicePrincipal,
assets: serviceAssets
};
return result;
}
};
exports.LoadServiceAssetsHandler = LoadServiceAssetsHandler;
exports.LoadServiceAssetsHandler = LoadServiceAssetsHandler = __decorate([
(0, typedi_1.Service)(),
__param(0, (0, typedi_1.Inject)("ILogger")),
__metadata("design:paramtypes", [Object, allCreditsCacheHandler_1.AllCreditsCacheHandler,
serviceAssetDetailsHandler_1.ServiceAssetDetailsHandler,
serviceAssetDepositHandler_1.ServiceAssetDepositHandler])
], LoadServiceAssetsHandler);