UNPKG

@ledgerhq/coin-stacks

Version:
37 lines 1.54 kB
import { encodeOperationId } from "@ledgerhq/ledger-wallet-framework/operation"; import BigNumber from "bignumber.js"; import { getAddress } from "./utils/misc"; import { getSubAccount } from "./utils/token"; export const buildOptimisticOperation = (account, transaction, operationType = "OUT") => { const hash = ""; const { id: accountId } = account; const { address } = getAddress(account); // Check if this is a token transfer via subAccountId const subAccount = getSubAccount(account, transaction); const isTokenTransfer = !!subAccount; // For token transfers, use the subAccount's id const operationAccountId = isTokenTransfer ? subAccount.id : accountId; // Set the correct value based on transaction type // For token transfers, only the fee impacts the main account's balance const value = isTokenTransfer ? transaction.amount : transaction.amount.plus(transaction.fee || new BigNumber(0)); return { id: encodeOperationId(operationAccountId, hash, operationType), hash, type: operationType, senders: [address], recipients: [transaction.recipient], accountId: operationAccountId, value, fee: transaction.fee || new BigNumber(0), blockHash: null, blockHeight: null, date: new Date(), transactionSequenceNumber: transaction.nonce ?? new BigNumber(0), extra: { memo: transaction.memo, }, }; }; //# sourceMappingURL=buildOptimisticOperation.js.map