ordinalsbot
Version:
Node.js library for OrdinalsBot API
61 lines • 2.58 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SatscannerClient = void 0;
const axios_1 = __importDefault(require("axios"));
const error_1 = require("../inscription/error");
const types_1 = require("../types");
const l402_1 = require("l402");
class SatscannerClient {
constructor(key = "", environment = types_1.InscriptionEnvNetwork.mainnet, options) {
this.api_key = key;
environment = types_1.InscriptionEnvNetwork[environment] ?? types_1.InscriptionEnvNetwork.mainnet;
this.env = environment;
const createInstance = () => {
const headers = {
"Content-Type": "application/json",
};
if (this.api_key) {
headers["x-api-key"] = this.api_key;
}
const baseURL = options?.useL402
? "https://ordinalsbot.ln.sulu.sh/satscanner/"
: `${types_1.EnvNetworkExplorer[this.env] || types_1.EnvNetworkExplorer.mainnet}/satscanner/`;
const client = axios_1.default.create({
baseURL,
headers: headers,
});
client.interceptors.response.use(({ data }) => ("data" in data ? data.data : data), (err) => {
if (axios_1.default.isAxiosError(err) && err.response?.status !== 402) {
throw new error_1.InscriptionError(err.message, err.response?.statusText, err.response?.status);
}
if (err instanceof Error)
throw err;
return err;
});
if (options?.useL402 && options.l402Config) {
(0, l402_1.setupL402Interceptor)(client, options.l402Config.wallet, options.l402Config.tokenStore);
}
;
return client;
};
this.instanceV1 = createInstance();
}
async getSupportedSatributes() {
return this.instanceV1.get(`/supported-satributes`);
}
async findSpecialRanges(findSpecialRangesRequest) {
return this.instanceV1.get(`/find-special-ranges`, {
params: findSpecialRangesRequest,
});
}
async findSpecialRangesUtxo(findSpecialRangesRequestUtxo) {
return this.instanceV1.post(`/find-special-ranges-utxo`, {
...findSpecialRangesRequestUtxo,
});
}
}
exports.SatscannerClient = SatscannerClient;
//# sourceMappingURL=client.js.map