@bigmi/core
Version:
TypeScript library for Bitcoin apps.
47 lines • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getXPubAddresses = void 0;
const rpc_js_1 = require("../../errors/rpc.js");
const url_js_1 = require("../../utils/url.js");
const getXPubAddresses = async (client, { baseUrl, apiKey }, { xPubKey }) => {
const apiUrl = (0, url_js_1.urlWithParams)(`${baseUrl}/dashboards/xpub/${xPubKey}`, {
key: apiKey,
});
const response = (await client.request({
url: apiUrl,
fetchOptions: { method: 'GET' },
}));
if (response.context.error || response.context?.code !== 200) {
return {
error: {
code: response.context.code === 429
? rpc_js_1.RpcErrorCode.ACCESS_DENIED
: rpc_js_1.RpcErrorCode.MISC_ERROR,
message: response.context?.error,
},
};
}
if (response.data[xPubKey] === undefined) {
return {
result: {
balance: 0n,
addresses: [],
},
};
}
const xpubData = response.data[xPubKey];
const result = {
balance: BigInt(xpubData.xpub.balance),
addresses: Object.entries(xpubData.addresses).map(([address, data]) => ({
address,
balance: BigInt(data.balance),
path: data.path,
scriptHex: data.script_hex,
})),
};
return {
result,
};
};
exports.getXPubAddresses = getXPubAddresses;
//# sourceMappingURL=getXPubAddresses.js.map