@ledgerhq/coin-hedera
Version:
Ledger Hedera Coin integration
49 lines • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAccountBalance = exports.buildUnsignedTransaction = exports.broadcastTransaction = void 0;
const sdk_1 = require("@hashgraph/sdk");
const errors_1 = require("../errors");
function broadcastTransaction(transaction) {
return transaction.execute(getClient());
}
exports.broadcastTransaction = broadcastTransaction;
async function buildUnsignedTransaction({ account, transaction, }) {
const hbarAmount = sdk_1.Hbar.fromTinybars(transaction.amount);
const accountId = account.freshAddress;
return new sdk_1.TransferTransaction()
.setNodeAccountIds([new sdk_1.AccountId(3)])
.setTransactionId(sdk_1.TransactionId.generate(accountId))
.setTransactionMemo(transaction.memo ?? "")
.addHbarTransfer(accountId, hbarAmount.negated())
.addHbarTransfer(transaction.recipient, hbarAmount)
.freeze();
}
exports.buildUnsignedTransaction = buildUnsignedTransaction;
async function getAccountBalance(address) {
const accountId = sdk_1.AccountId.fromString(address);
let accountBalance;
try {
accountBalance = await new sdk_1.AccountBalanceQuery({
accountId,
}).execute(getBalanceClient());
}
catch {
throw new errors_1.HederaAddAccountError();
}
return {
balance: accountBalance.hbars.to(sdk_1.HbarUnit.Tinybar),
};
}
exports.getAccountBalance = getAccountBalance;
let _hederaClient = null;
let _hederaBalanceClient = null;
function getClient() {
_hederaClient ??= sdk_1.Client.forMainnet().setMaxNodesPerTransaction(1);
//_hederaClient.setNetwork({ mainnet: "https://hedera.coin.ledger.com" });
return _hederaClient;
}
function getBalanceClient() {
_hederaBalanceClient ??= sdk_1.Client.forMainnet();
return _hederaBalanceClient;
}
//# sourceMappingURL=network.js.map