@useorbis/db-sdk
Version:
Orbis' Typescript SDK for building open-data experiences.
35 lines (34 loc) • 1.18 kB
JavaScript
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);
}