UNPKG

@useorbis/db-sdk

Version:

Orbis' Typescript SDK for building open-data experiences.

35 lines (34 loc) 1.18 kB
import { SupportedChains, } from "../types/index.js"; import { toString } from "uint8arrays"; class OrbisSolProvider { genericSignerId = "orbis-sol"; chain = SupportedChains.solana; #provider; constructor(provider) { this.#provider = provider; } async connect() { if (this.#provider.connected === true || this.#provider.isConnected === true) return; await this.#provider.connect(); } async getAddress() { const publicKey = this.#provider.publicKey; if (typeof publicKey === "string") { return publicKey; } return publicKey.toString(); } async signMessage(message) { const encoder = new TextEncoder(); const encodedMessage = typeof message === "string" ? encoder.encode(message) : message; const signature = await this.#provider.signMessage(encodedMessage); if (signature instanceof Uint8Array) return toString(signature, "base58btc"); return toString(signature.signature, "base58btc"); } } export function normalizeSolProvider({ provider, }) { return new OrbisSolProvider(provider); }