UNPKG

@ledgerhq/coin-multiversx

Version:
49 lines 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.doBuildTransactionToSign = exports.buildTransactionToSign = void 0; const api_1 = require("./api"); const constants_1 = require("./constants"); const logic_1 = require("./logic"); /** * * @param {MultiversXAccount} account * @param {SubAccount | null | undefined} tokenAccount * @param {Transaction} transaction */ const buildTransactionToSign = async (account, transaction) => { const sender = account.freshAddress; const nonce = await (0, api_1.getAccountNonce)(sender); const networkConfig = await (0, api_1.getNetworkConfig)(); const chainID = networkConfig.ChainID.valueOf(); const isTokenAccount = account.subAccounts?.some(ta => ta.id === transaction.subAccountId); const value = !isTokenAccount && (0, logic_1.isAmountSpentFromBalance)(transaction.mode) ? transaction.amount.toFixed() : "0"; return (0, exports.doBuildTransactionToSign)({ transaction, sender: sender, nonce, value, minGasLimit: networkConfig.MinGasLimit, chainID, }); }; exports.buildTransactionToSign = buildTransactionToSign; const doBuildTransactionToSign = async (options) => { const gasLimit = options.transaction.gasLimit || options.minGasLimit.valueOf(); const transaction = { nonce: options.nonce.valueOf(), value: options.value, receiver: options.transaction.recipient, sender: options.sender, gasPrice: constants_1.GAS_PRICE, gasLimit: gasLimit, ...(options.transaction.data ? { data: options.transaction.data } : {}), chainID: options.chainID, version: constants_1.TRANSACTION_VERSION_DEFAULT, options: constants_1.TRANSACTION_OPTIONS_TX_HASH_SIGN, }; return JSON.stringify(transaction); }; exports.doBuildTransactionToSign = doBuildTransactionToSign; //# sourceMappingURL=buildTransaction.js.map