@bigmi/core
Version:
TypeScript library for Bitcoin apps.
43 lines • 1.36 kB
JavaScript
import { RpcErrorCode } from '../../errors/rpc.js';
import { urlWithParams } from '../../utils/url.js';
export const getXPubAddresses = async (client, { baseUrl, apiKey }, { xPubKey }) => {
const apiUrl = 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
? RpcErrorCode.ACCESS_DENIED
: 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,
};
};
//# sourceMappingURL=getXPubAddresses.js.map