send-crypto
Version:
A minimal JavaScript library / wallet for sending crypto assets
52 lines • 5.39 kB
JavaScript
import axios from "axios";
import { fixUTXO, fixUTXOs, sortUTXOs } from "../../lib/utxo";
import { DEFAULT_TIMEOUT } from "./timeout";
const fetchUTXO = (network) => async (txHash, vOut) => {
const url = `https://sochain.com/api/v2/get_tx/${network}/${txHash}`;
const response = await axios.get(url, { timeout: DEFAULT_TIMEOUT });
const tx = response.data.data;
return fixUTXO({
txHash: tx.txid,
amount: parseInt(tx.outputs[vOut].value, 10),
// scriptPubKey: tx.script_hex,
vOut,
confirmations: tx.confirmations,
}, 8);
};
const fetchUTXOs = (network) => async (address, confirmations) => {
const url = `https://sochain.com/api/v2/get_tx_unspent/${network}/${address}/${confirmations}`;
const response = await axios.get(url, { timeout: DEFAULT_TIMEOUT });
return fixUTXOs(response.data.data.txs.map((utxo) => ({
txHash: utxo.txid,
amount: utxo.value,
// scriptPubKey: utxo.script_hex,
vOut: utxo.output_no,
confirmations: utxo.confirmations,
})), 8)
.filter((utxo) => confirmations === 0 || utxo.confirmations >= confirmations)
.sort(sortUTXOs);
};
const fetchTXs = (network) => async (address, confirmations = 0) => {
const url = `https://sochain.com/api/v2/get_tx_received/${network}/${address}/${confirmations}`;
const response = await axios.get(url, { timeout: DEFAULT_TIMEOUT });
return fixUTXOs(response.data.data.txs.map((utxo) => ({
txHash: utxo.txid,
amount: utxo.value,
// scriptPubKey: utxo.script_hex,
vOut: utxo.output_no,
confirmations: utxo.confirmations,
})), 8)
.filter((utxo) => confirmations === 0 || utxo.confirmations >= confirmations)
.sort(sortUTXOs);
};
const broadcastTransaction = (network) => async (txHex) => {
const response = await axios.post(`https://sochain.com/api/v2/send_tx/${network}`, { tx_hex: txHex }, { timeout: DEFAULT_TIMEOUT });
return response.data.data.txid;
};
export const Sochain = {
fetchUTXOs,
broadcastTransaction,
fetchUTXO,
fetchTXs,
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vYXBpcy9zb2NoYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQVEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBMkM1QyxNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUN4QyxNQUFjLEVBQ2QsSUFBWSxFQUNDLEVBQUU7SUFDZixNQUFNLEdBQUcsR0FBRyxxQ0FBcUMsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBQ3JFLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FFN0IsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFFdEMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFFOUIsT0FBTyxPQUFPLENBQ1Y7UUFDSSxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUk7UUFDZixNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUM1QywrQkFBK0I7UUFDL0IsSUFBSTtRQUNKLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYTtLQUNsQyxFQUNELENBQUMsQ0FDSixDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFDekMsT0FBZSxFQUNmLGFBQXFCLEVBQ04sRUFBRTtJQUNqQixNQUFNLEdBQUcsR0FBRyw2Q0FBNkMsT0FBTyxJQUFJLE9BQU8sSUFBSSxhQUFhLEVB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