@ledgerhq/coin-stellar
Version:
Ledger Stellar Coin integration
39 lines • 1.43 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildTransaction = void 0;
const errors_1 = require("@ledgerhq/errors");
const invariant_1 = __importDefault(require("invariant"));
const logic_1 = require("../logic");
const logic_2 = require("./logic");
/**
* @param {Account} account
* @param {Transaction} transaction
*/
async function buildTransaction(account, transaction) {
const { recipient, networkInfo, fees, memoType, memoValue, mode, assetCode, assetIssuer } = transaction;
(0, invariant_1.default)(networkInfo && networkInfo.family === "stellar", "stellar family");
if (!fees) {
throw new errors_1.FeeNotLoaded();
}
const amount = (0, logic_2.getAmountValue)(account, transaction, fees);
if (!amount) {
throw new errors_1.AmountRequired();
}
const { transaction: built } = await (0, logic_1.craftTransaction)({ address: account.freshAddress }, {
type: mode,
recipient,
amount: BigInt(amount.toString()),
fee: BigInt(fees.toString()),
assetCode,
assetIssuer,
memoType,
memoValue,
});
return built;
}
exports.buildTransaction = buildTransaction;
exports.default = buildTransaction;
//# sourceMappingURL=buildTransaction.js.map