ordinalsbot
Version:
Node.js library for OrdinalsBot API
81 lines • 3.4 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TokenPayClient = void 0;
const axios_1 = __importDefault(require("axios"));
const types_1 = require("../types");
const error_1 = require("../inscription/error");
const l402_1 = require("l402");
class TokenPayClient {
constructor(key = "", environment = types_1.InscriptionEnvNetwork.mainnet, tokenPayApiKey, options) {
this.api_key = key;
environment = types_1.InscriptionEnvNetwork[environment] ?? types_1.InscriptionEnvNetwork.mainnet;
this.env = environment;
if (!tokenPayApiKey || (typeof tokenPayApiKey !== 'string')) {
throw new Error("tokenpay api key is not defined");
}
this.tokenpay_api_key = tokenPayApiKey;
const createInstance = () => {
const headers = {
"Content-Type": "application/json",
};
if (this.tokenpay_api_key) {
headers["x-api-key"] = this.tokenpay_api_key;
}
const baseURL = options?.useL402
? "https://ordinalsbot.ln.sulu.sh/tokenpay/"
: `${types_1.EnvNetworkExplorer[this.env] || types_1.EnvNetworkExplorer.mainnet}/tokenpay/`;
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 createRuneOrder(createRuneOrderRequest) {
return this.instanceV1.post(`/user/order/rune`, {
...createRuneOrderRequest,
});
}
async createPaymentPSBT(createPaymentRequest) {
return this.instanceV1.post(`/create-payment-psbt`, {
...createPaymentRequest,
});
}
async checkTransactionAsTxid(checkTransactionAsTxidRequest) {
return this.instanceV1.post(`/utils/checktx`, {
...checkTransactionAsTxidRequest,
});
}
async getOrder(getOrderRequest) {
return this.instanceV1.get(`/order/${getOrderRequest.orderId}`);
}
async accountWithdraw(accountWithdrawRequest) {
return this.instanceV1.post(`/user/account/withdraw`, {
...accountWithdrawRequest,
});
}
async getAccountWithdraw(getAccountWithdrawRequest) {
return this.instanceV1.get(`/user/account/withdraw/${getAccountWithdrawRequest.withdrawalId}`);
}
async getAccountBalance() {
return this.instanceV1.get(`/user/account/balance`);
}
}
exports.TokenPayClient = TokenPayClient;
//# sourceMappingURL=client.js.map