UNPKG

satsterminal-sdk

Version:

A TypeScript SDK for interacting with the SatsTerminal ecosystem.

68 lines (67 loc) 2.19 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SatsTerminal = void 0; const node_fetch_1 = __importDefault(require("node-fetch")); class SatsTerminal { constructor(config) { if (!config.apiKey) { throw new Error('API key is required'); } this.apiKey = config.apiKey; this.baseUrl = config.baseUrl || 'https://api.satsterminal.com'; } async request(endpoint, data, version = 'v1') { const url = `${this.baseUrl}/${version}${endpoint}`; const response = await (0, node_fetch_1.default)(url, { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-api-key': this.apiKey, }, body: JSON.stringify(data), }); if (!response.ok) { const error = await response.json(); throw new Error(error.message || 'Request failed'); } return response.json(); } async search(params) { return this.request('/search', params); } async popularTokens(params) { return this.request('/search/popular', params); } async fetchQuote(params) { return this.request('/tba/fetch-quote', params); } async getPSBT(params) { return this.request('/tba/get-psbt', params); } async confirmPSBT(params) { return this.request('/tba/confirm-psbt', params); } async signIn(params) { return this.request('/user/sign-in', params); } async bind(params) { return this.request('/user/bind', params); } async points(params) { return this.request('/user/points', params); } // V2 API Methods async swapQuote(params) { return this.request('/swap/quote', params, 'v2'); } async swapPSBT(params) { return this.request('/swap/psbt', params, 'v2'); } async swapSubmit(params) { return this.request('/swap/submit', params, 'v2'); } } exports.SatsTerminal = SatsTerminal;