UNPKG

@ledgerhq/live-common

Version:
152 lines • 5.29 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getNetworkAlpacaApi = void 0; const live_network_1 = __importDefault(require("@ledgerhq/live-network")); function adaptOp(backendOp) { const { date } = backendOp.tx; const newDate = new Date(date); return { ...backendOp, value: BigInt(backendOp.value), tx: { ...backendOp.tx, fees: BigInt(backendOp.tx.fees), date: newDate }, }; } const ALPACA_URL = "http://0.0.0.0:3000"; const buildBroadcast = networkFamily => async function broadcast(signedOperation) { const { data } = await (0, live_network_1.default)({ method: "POST", url: `${ALPACA_URL}/${networkFamily}/transaction/broadcast`, data: { rawTransaction: signedOperation, }, }); return data.transactionIdentifier; }; const buildCombine = networkFamily => async function combine(tx, signature, pubKey) { const { data } = await (0, live_network_1.default)({ method: "POST", url: `${ALPACA_URL}/${networkFamily}/transaction/combine`, data: { raw_transaction: tx, signature: signature, pubkey: pubKey, }, }); return data.signedTransaction; }; const buildEstimateFees = networkFamily => async function estimateFees(intent) { const { data } = await (0, live_network_1.default)({ method: "POST", url: `${ALPACA_URL}/${networkFamily}/transaction/estimate`, data: { intent: { ...intent, amount: intent.amount.toString(10), }, }, }); return { value: BigInt(data.fee), }; }; const buildValidateIntent = networkFamily => async function validateIntent(transaction) { const { data } = await (0, live_network_1.default)({ method: "POST", url: `${ALPACA_URL}/${networkFamily}/transaction/validate`, data: { transaction, }, }); return data; }; const buildGetBalance = (networkFamily) => async function getBalance(address) { const { data } = await (0, live_network_1.default)({ method: "GET", url: `${ALPACA_URL}/${networkFamily}/account/${address}/balance`, }); return [ { value: BigInt(data.value), asset: data.asset, locked: BigInt(data?.locked ?? "0"), }, ]; }; const buildGetNextSequence = (networkFamily) => async function getNextSequence(address) { const { data } = await (0, live_network_1.default)({ method: "GET", url: `${ALPACA_URL}/${networkFamily}/account/${address}/info`, }); return data; }; const buildListOperations = networkFamily => async function listOperations(address, { minHeight = 0 }) { const { data } = await (0, live_network_1.default)({ method: "GET", url: `${ALPACA_URL}/${networkFamily}/account/${address}/operations`, data: { from: minHeight, }, }); return { items: data.operations.map(op => adaptOp(op)), next: undefined }; }; const buildLastBlock = networkFamily => async function lastBlock() { const { data } = await (0, live_network_1.default)({ method: "GET", url: `${ALPACA_URL}/${networkFamily}/lastblock`, }); return { height: data.height, time: new Date(data.time), hash: data.hash, }; }; const buildCraftTransaction = networkFamily => async function craftTransaction(intent) { const { data } = await (0, live_network_1.default)({ method: "POST", url: `${ALPACA_URL}/${networkFamily}/transaction/encode`, data: { intent: { ...intent, amount: intent.amount.toString(10), }, }, }); return data; }; const getNetworkAlpacaApi = (networkFamily) => ({ broadcast: buildBroadcast(networkFamily), combine: buildCombine(networkFamily), validateIntent: buildValidateIntent(networkFamily), estimateFees: buildEstimateFees(networkFamily), getBalance: buildGetBalance(networkFamily), getNextSequence: buildGetNextSequence(networkFamily), listOperations: buildListOperations(networkFamily), lastBlock: buildLastBlock(networkFamily), craftTransaction: buildCraftTransaction(networkFamily), craftRawTransaction: (_transaction, _sender, _publicKey, _sequence) => { throw new Error("craftRawTransaction is not supported"); }, getBlock(_height) { throw new Error("getBlock is not supported"); }, getBlockInfo(_height) { throw new Error("getBlockInfo is not supported"); }, getStakes(_address, _cursor) { throw new Error("getStakes is not supported"); }, getRewards(_address, _cursor) { throw new Error("getRewards is not supported"); }, getValidators(_cursor) { throw new Error("getValidators is not supported"); }, validateAddress(_address) { throw new Error("validateAddress is not supported"); }, }); exports.getNetworkAlpacaApi = getNetworkAlpacaApi; //# sourceMappingURL=network-alpaca.js.map