UNPKG

@payburner/keyburner-sidewinder-core

Version:
92 lines 5.93 kB
"use strict"; 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, items) { 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; } items.push({ Update: { TableName: 'sidewinder_token', Key: { token_uri: npm_1.AccountUtils.calculateTokenId(updateTokenTransaction.environment, updateTokenTransaction.token_symbol), }, UpdateExpression: 'SET frozen = :frozen, transaction_fee = :transaction_fee, maximum_balance = :maximum_balance, minimum_transfer_amount=:minimum_transfer_amount, maximum_transfer_amount=:maximum_transfer_amount', 'ExpressionAttributeValues': { ':frozen': updateTokenTransaction.frozen, ':transaction_fee': updateTokenTransaction.transaction_fee, ':maximum_balance': updateTokenTransaction, ':minimum_transfer_amount': updateTokenTransaction.minimum_transfer_amount, ':maximum_transfer_amount': updateTokenTransaction.maximum_transfer_amount } } }); resolve({ status: 200 }); }).catch((error) => { resolve(CommonErrorCodes_1.CommonErrorCodes.TOKEN_NOT_FOUND); }); }); } getTransactionType() { return npm_1.TransactionTypes.UpdateToken; } } exports.UpdateTokenTransactionProcessor = UpdateTokenTransactionProcessor; //# sourceMappingURL=UpdateTokenTransactionProcessor.js.map