UNPKG

@ledgerhq/coin-icon

Version:
46 lines 1.8 kB
"use strict"; 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 icon_sdk_js_1 = __importDefault(require("icon-sdk-js")); const logic_1 = require("./logic"); const constants_1 = require("./constants"); const { IconBuilder, IconConverter } = icon_sdk_js_1.default; const buildTransferTransaction = (account, transaction, stepLimit) => { const address = account.freshAddress; const icxTransactionBuilder = new IconBuilder.IcxTransactionBuilder(); const icxTransferData = icxTransactionBuilder .from(address) .to(transaction.recipient) .value(IconConverter.toHexNumber(transaction.amount)) .nid(IconConverter.toHexNumber((0, logic_1.getNid)(account.currency))) .nonce(IconConverter.toHexNumber((0, logic_1.getNonce)(account))) .timestamp(IconConverter.toHexNumber(new Date().getTime() * 1000)) .version(IconConverter.toHexNumber(constants_1.RPC_VERSION)); if (stepLimit) { icxTransferData.stepLimit(IconConverter.toHexNumber(stepLimit)); } return icxTransferData.build(); }; /** * * @param {Account} account * @param {Transaction} transaction */ const buildTransaction = async (account, transaction, stepLimit) => { let unsigned; switch (transaction.mode) { case "send": unsigned = buildTransferTransaction(account, transaction, stepLimit); break; default: throw new Error(`Unsupported transaction mode: ${transaction.mode}`); } return { unsigned, }; }; exports.buildTransaction = buildTransaction; //# sourceMappingURL=buildTransaction.js.map