ordinalsbot
Version:
Node.js library for OrdinalsBot API
55 lines • 2.34 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MempoolClient = 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 MempoolClient {
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/mempool/"
: `${types_1.EnvNetworkExplorer[this.env] || types_1.EnvNetworkExplorer.mainnet}/mempool/`;
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);
}
;
console.log({ environment, key });
return client;
};
this.instanceV1 = createInstance();
}
async getFeeEstimation() {
return this.instanceV1.get("api/v1/fees/recommended");
}
async getAddressUtxo(address) {
return this.instanceV1.get(`api/address/${address}/utxo`);
}
}
exports.MempoolClient = MempoolClient;
//# sourceMappingURL=client.js.map