diff --git a/package-lock.json b/package-lock.json index 2c9873f..4ef1a68 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@sats-connect/core", - "version": "0.0.10", + "version": "0.0.11", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@sats-connect/core", - "version": "0.0.10", + "version": "0.0.11", "license": "ISC", "dependencies": { "axios": "1.6.8", diff --git a/package.json b/package.json index b272517..57e1342 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@sats-connect/core", - "version": "0.0.10", + "version": "0.0.11", "main": "dist/index.mjs", "module": "dist/index.mjs", "types": "dist/index.d.mts", diff --git a/src/runes/api.ts b/src/runes/api.ts index 41e2c6f..66120a0 100644 --- a/src/runes/api.ts +++ b/src/runes/api.ts @@ -1,3 +1,4 @@ +import { BitcoinNetworkType } from '../types'; import { CreateEtchOrderRequest, CreateMintOrderRequest, @@ -9,12 +10,16 @@ import { RBFOrderRequest, RBFOrderResponse, } from './types'; -import { BitcoinNetworkType } from '../types'; import axios, { AxiosError, AxiosInstance } from 'axios'; +const urlNetworkSuffix = { + [BitcoinNetworkType.Mainnet]: '', + [BitcoinNetworkType.Testnet]: '-testnet', + [BitcoinNetworkType.Signet]: '-signet', +}; export const ORDINALS_API_BASE_URL = (network: BitcoinNetworkType = BitcoinNetworkType.Mainnet) => - `https://ordinals${network === BitcoinNetworkType.Testnet ? '-testnet' : ''}.xverse.app/v1`; + `https://ordinals${urlNetworkSuffix[network]}.xverse.app/v1`; export class RunesApi { client: AxiosInstance; @@ -160,8 +165,12 @@ export class RunesApi { }; } -const testnetClient = new RunesApi(BitcoinNetworkType.Testnet); -const mainnetClient = new RunesApi(BitcoinNetworkType.Mainnet); - -export const getRunesApiClient = (network: BitcoinNetworkType = BitcoinNetworkType.Mainnet) => - network === BitcoinNetworkType.Mainnet ? mainnetClient : testnetClient; +const clients: Partial> = {}; +export const getRunesApiClient = ( + network: BitcoinNetworkType = BitcoinNetworkType.Mainnet +): RunesApi => { + if (!clients[network]) { + clients[network] = new RunesApi(network); + } + return clients[network]!; +}; diff --git a/src/types.ts b/src/types.ts index 1b6e0d2..2b97a2e 100644 --- a/src/types.ts +++ b/src/types.ts @@ -4,6 +4,7 @@ import { Requests, Return } from './request'; export enum BitcoinNetworkType { Mainnet = 'Mainnet', Testnet = 'Testnet', + Signet = 'Signet', } export interface BitcoinNetwork {