@ledgerhq/coin-algorand
Version:
Ledger Algorand Coin integration
50 lines • 1.63 kB
JavaScript
import network from "@ledgerhq/live-network";
import { getEnv } from "@ledgerhq/live-env";
import { BigNumber } from "bignumber.js";
const BASE_URL = getEnv("API_ALGORAND_BLOCKCHAIN_EXPLORER_API_ENDPOINT");
const NODE_URL = `${BASE_URL}/ps2/v2`;
const fullUrl = (route) => `${NODE_URL}${route}`;
export const getAccount = async (address) => {
const { data } = await network({
url: fullUrl(`/accounts/${address}`),
});
const assets = data.assets
? // FIXME: what is the type of `a`?
data.assets.map((a) => {
return {
assetId: a["asset-id"].toString(),
balance: new BigNumber(a.amount),
};
})
: [];
return {
round: data.round,
address: data.address,
balance: new BigNumber(data.amount),
pendingRewards: new BigNumber(data["pending-rewards"]),
assets,
};
};
export const getTransactionParams = async () => {
const { data } = await network({
url: fullUrl(`/transactions/params`),
});
return {
fee: data["fee"],
minFee: data["min-fee"],
firstRound: data["first-round"] ?? 0,
lastRound: data["last-round"],
genesisID: data["genesis-id"],
genesisHash: data["genesis-hash"],
};
};
export const broadcastTransaction = async (payload) => {
const { data } = await network({
method: "POST",
url: fullUrl(`/transactions`),
data: payload,
headers: { "Content-Type": "application/x-binary" },
});
return data.txId;
};
//# sourceMappingURL=algodv2.js.map