@ledgerhq/coin-algorand
Version:
Ledger Algorand Coin integration
59 lines • 2.22 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.broadcastTransaction = exports.getTransactionParams = exports.getAccount = void 0;
const live_network_1 = __importDefault(require("@ledgerhq/live-network"));
const live_env_1 = require("@ledgerhq/live-env");
const bignumber_js_1 = require("bignumber.js");
const BASE_URL = (0, live_env_1.getEnv)("API_ALGORAND_BLOCKCHAIN_EXPLORER_API_ENDPOINT");
const NODE_URL = `${BASE_URL}/ps2/v2`;
const fullUrl = (route) => `${NODE_URL}${route}`;
const getAccount = async (address) => {
const { data } = await (0, live_network_1.default)({
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_js_1.BigNumber(a.amount),
};
})
: [];
return {
round: data.round,
address: data.address,
balance: new bignumber_js_1.BigNumber(data.amount),
pendingRewards: new bignumber_js_1.BigNumber(data["pending-rewards"]),
assets,
};
};
exports.getAccount = getAccount;
const getTransactionParams = async () => {
const { data } = await (0, live_network_1.default)({
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"],
};
};
exports.getTransactionParams = getTransactionParams;
const broadcastTransaction = async (payload) => {
const { data } = await (0, live_network_1.default)({
method: "POST",
url: fullUrl(`/transactions`),
data: payload,
headers: { "Content-Type": "application/x-binary" },
});
return data.txId;
};
exports.broadcastTransaction = broadcastTransaction;
//# sourceMappingURL=algodv2.js.map