const LCD_BASE = "https://lcd.bostrom.cybernode.ai";

export async function lcdGet<T = unknown>(path: string): Promise<T> {
  const url = `${LCD_BASE}${path}`;
  const res = await fetch(url);
  if (!res.ok) {
    throw new Error(`LCD ${res.status}: ${res.statusText} โ€” ${url}`);
  }
  return res.json() as Promise<T>;
}

export async function lcdSmartQuery<T = unknown>(
  contract: string,
  query: Record<string, unknown>,
): Promise<T> {
  const encoded = Buffer.from(JSON.stringify(query)).toString("base64");
  return lcdGet<{ data: T }>(
    `/cosmwasm/wasm/v1/contract/${contract}/smart/${encoded}`,
  ).then((r) => r.data);
}

Synonyms

cyb/src/services/community/lcd.ts
cyb/src/services/passports/lcd.ts
cyber-ts/packages/cyber-ts/src/osmosis/lcd.ts
cyber-ts/packages/cyber-ts/src/cosmos/lcd.ts
cyber-ts/packages/cyber-ts/src/cyber/lcd.ts
cyber-ts/packages/cyber-ts/src/cosmwasm/lcd.ts
pussy-ts/src/services/backend/services/lcd/lcd.ts
pussy-ts/src/services/backend/services/dataSource/blockchain/lcd.ts

Neighbours