@payburner/keyburner-sidewinder-core
Version:
Core library for Keyburner Sidewinder
85 lines • 5.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UpdateTokenTransactionProcessor = void 0;
const npm_1 = require("@payburner/keyburner-sidewinder-model/dist/npm");
const TransactionProcessorBase_1 = require("./TransactionProcessorBase");
const CommonErrorCodes_1 = require("../model/CommonErrorCodes");
class UpdateTokenTransactionProcessor 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) => {
if (typeof updateTokenTransaction.transaction_fee !== 'undefined' && (updateTokenTransaction.transaction_fee) < 0) {
resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_SETUP_INVALID_TRANSACTION_FEE);
return;
}
if (typeof updateTokenTransaction.minimum_transfer_amount !== 'undefined' && typeof updateTokenTransaction.maximum_transfer_amount !== 'undefined') {
if ((updateTokenTransaction.minimum_transfer_amount) > (updateTokenTransaction.maximum_transfer_amount)) {
resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_SETUP_MINIMUM_TRANSFER_AMOUNTER_GREATER_THAN_MAXIMUM_TRANSFER_AMOUNT);
return;
}
if ((updateTokenTransaction.minimum_transfer_amount) < 0) {
resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_SETUP_MINIMUM_TRANSFER_AMOUNT_LESS_THAN_OR_EQUAL_ZERO);
return;
}
if ((updateTokenTransaction.maximum_transfer_amount) < 0) {
resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_SETUP_MAXIMUM_TRANSFER_AMOUNT_LESS_THAN_OR_EQUAL_ZERO);
return;
}
}
else if (typeof updateTokenTransaction.minimum_transfer_amount !== 'undefined' && typeof token.maximum_transfer_amount !== 'undefined') {
if ((updateTokenTransaction.minimum_transfer_amount) > (token.maximum_transfer_amount)) {
resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_SETUP_MINIMUM_TRANSFER_AMOUNTER_GREATER_THAN_MAXIMUM_TRANSFER_AMOUNT);
return;
}
if ((updateTokenTransaction.minimum_transfer_amount) < 0) {
resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_SETUP_MINIMUM_TRANSFER_AMOUNT_LESS_THAN_OR_EQUAL_ZERO);
return;
}
}
else if (typeof updateTokenTransaction.maximum_transfer_amount !== 'undefined' && typeof token.minimum_transfer_amount !== 'undefined') {
if ((updateTokenTransaction.maximum_transfer_amount) < (token.minimum_transfer_amount)) {
resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_SETUP_MINIMUM_TRANSFER_AMOUNTER_GREATER_THAN_MAXIMUM_TRANSFER_AMOUNT);
return;
}
if ((updateTokenTransaction.maximum_transfer_amount) < 0) {
resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_SETUP_MAXIMUM_TRANSFER_AMOUNT_LESS_THAN_OR_EQUAL_ZERO);
return;
}
}
if (typeof updateTokenTransaction.maximum_balance !== 'undefined' && typeof token.maximum_balance !== 'undefined') {
if ((updateTokenTransaction.maximum_balance) <= (token.maximum_balance)) {
resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_SETUP_MAXIMUM_BALANCE_CAN_ONLY_INCREASE);
return;
}
}
if (token.token_issuer_address !== decodedTransaction.address) {
resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_UPDATE_NOT_AUTHORIZED);
return;
}
token.frozen = updateTokenTransaction.frozen;
token.transaction_fee = updateTokenTransaction.transaction_fee;
token.maximum_balance = updateTokenTransaction.maximum_balance;
token.minimum_transfer_amount = updateTokenTransaction.minimum_transfer_amount;
token.maximum_transfer_amount = updateTokenTransaction.maximum_transfer_amount;
self.getTokenService().updateToken(token).then((updated) => {
resolve({ status: 200, data: updated });
}).catch((error) => {
resolve(CommonErrorCodes_1.CommonErrorCodes.SYSTEM_PROBLEM_UPDATING_TOKEN);
});
}).catch((error) => {
resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_NOT_FOUND);
});
});
}
getTransactionType() {
return npm_1.TransactionTypes.UpdateToken;
}
}
exports.UpdateTokenTransactionProcessor = UpdateTokenTransactionProcessor;
//# sourceMappingURL=UpdateTokenTransactionProcessor.js.map