@ledgerhq/coin-hedera
Version:
Ledger Hedera Coin integration
75 lines • 2.25 kB
JavaScript
import { HEDERA_TRANSACTION_MODES, MAP_STAKING_MODE_TO_METHOD } from "./constants";
import { isTokenAssociateTransaction, isStakingTransaction } from "./logic/utils";
async function getDeviceTransactionConfig({ transaction, status: { estimatedFees }, }) {
const fields = [];
if (isStakingTransaction(transaction)) {
fields.push({
type: "text",
label: "Method",
value: MAP_STAKING_MODE_TO_METHOD[transaction.mode],
});
if (!estimatedFees.isZero()) {
fields.push({
type: "fees",
label: "Fees",
});
}
if (typeof transaction.properties?.stakingNodeId === "number") {
fields.push({
type: "text",
label: "Staked Node ID",
value: transaction.properties.stakingNodeId.toString(),
});
}
if (transaction.memo) {
fields.push({
type: "text",
label: "Memo",
value: transaction.memo,
});
}
return fields;
}
const method = (() => {
if (isTokenAssociateTransaction(transaction))
return "Associate Token";
else if (transaction.useAllAmount)
return "Transfer All";
else
return "Transfer";
})();
fields.push({
type: "text",
label: "Method",
value: method,
});
if (!isTokenAssociateTransaction(transaction)) {
fields.push({
type: "amount",
label: "Amount",
});
}
if (!estimatedFees.isZero()) {
fields.push({
type: "fees",
label: "Fees",
});
}
if (transaction.mode === HEDERA_TRANSACTION_MODES.Send && transaction.gasLimit) {
fields.push({
type: "text",
label: "Gas Limit",
value: transaction.gasLimit.toString(),
});
}
if (transaction.memo) {
fields.push({
type: "text",
label: "Memo",
value: transaction.memo,
});
}
return fields;
}
export default getDeviceTransactionConfig;
//# sourceMappingURL=deviceTransactionConfig.js.map