UNPKG

@payburner/keyburner-sidewinder-core

Version:
77 lines 5.09 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.UpdateTokenAccountTransactionProcessor = void 0; const npm_1 = require("@payburner/keyburner-sidewinder-model/dist/npm"); const TransactionProcessorBase_1 = require("./TransactionProcessorBase"); const CommonErrorCodes_1 = require("../model/CommonErrorCodes"); class UpdateTokenAccountTransactionProcessor extends TransactionProcessorBase_1.TransactionProcessorBase { constructor(globalAccountService, tokenService) { super(globalAccountService, tokenService); } doProcess(decodedTransaction) { const self = this; return new Promise((resolve, reject) => { console.log('Processing create token: ' + decodedTransaction.id); const updateTokenTransaction = decodedTransaction.payload; self.getTokenService().getToken(updateTokenTransaction.environment, updateTokenTransaction.token_symbol).then((token) => __awaiter(this, void 0, void 0, function* () { if (token.token_issuer_address !== decodedTransaction.address) { resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_ACCOUNT_ONLY_ISSUER_CAN_FREEZE); return; } if (token.token_issuer_address === updateTokenTransaction.account_owner_address) { resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_ACCOUNT_CAN_NOT_FREEZE_ISSUER); return; } try { const tokenAccount = yield this.getTokenService().getTokenAccount(updateTokenTransaction.environment, updateTokenTransaction.token_symbol, updateTokenTransaction.account_owner_address); if (tokenAccount === null) { resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_ACCOUNT_NOT_FOUND); return; } if (typeof updateTokenTransaction.frozen !== 'undefined' && tokenAccount.frozen !== updateTokenTransaction.frozen) { if (updateTokenTransaction.frozen) { console.log('Freezing token account: ' + npm_1.AccountUtils.calculateTokenAccountId(updateTokenTransaction.environment, updateTokenTransaction.token_symbol, updateTokenTransaction.account_owner_address)); self.getTokenService().freezeTokenAccount(token.environment, updateTokenTransaction.token_symbol, updateTokenTransaction.account_owner_address) .then(function (tokenDescriptor) { resolve({ status: 200, data: tokenDescriptor }); }).catch(function (error) { resolve(CommonErrorCodes_1.CommonErrorCodes.SYSTEM_PROBLEM_UPDATING_TOKEN_ACCOUNT); }); } else { console.log('Un-Freezing token account: ' + npm_1.AccountUtils.calculateTokenAccountId(updateTokenTransaction.environment, updateTokenTransaction.token_symbol, updateTokenTransaction.account_owner_address)); self.getTokenService().unFreezeTokenAccount(token.environment, updateTokenTransaction.token_symbol, updateTokenTransaction.account_owner_address) .then(function (tokenDescriptor) { resolve({ status: 200, data: tokenDescriptor }); }).catch(function (error) { resolve(CommonErrorCodes_1.CommonErrorCodes.SYSTEM_PROBLEM_UPDATING_TOKEN_ACCOUNT); }); } } else { resolve({ status: 500, error_code: 3000, error: 'WTF' }); } } catch (error) { resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_ACCOUNT_NOT_FOUND); } })).catch((error) => { resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_NOT_FOUND); }); }); } getTransactionType() { return npm_1.TransactionTypes.UpdateTokenAccount; } } exports.UpdateTokenAccountTransactionProcessor = UpdateTokenAccountTransactionProcessor; //# sourceMappingURL=UpdateTokenAccountTransactionProcessor.js.map