UNPKG

@useorbis/db-sdk

Version:

Orbis' Typescript SDK for building open-data experiences.

51 lines (50 loc) 1.65 kB
import { SupportedChains, } from "../types/index.js"; import { catchError } from "../util/tryit.js"; class OrbisTezosProvider { genericSignerId = "orbis-tezos"; chain = SupportedChains.tezos; #provider; constructor(provider) { this.#provider = provider; } async connect() { if (typeof this.#provider.checkPermissions === "function") { const [active] = await catchError(() => this.#provider.getActiveAccount()); if (active && active.address) { const [connected] = await catchError(() => this.#provider.checkPermissions("sign_payload_request")); if (connected) { return; } } } if (typeof this.#provider.requestPermissions === "function") { return this.#provider.requestPermissions({ network: { type: "mainnet", }, }); } return; } async getAddress() { const { address } = await this.#provider.getActiveAccount(); return address; } async getPublicKey() { const { publicKey } = await this.#provider.getActiveAccount(); return publicKey; } async signMessage(message) { const signature = await this.#provider.requestSignPayload({ signingType: "micheline", payload: message, }); if (typeof signature === "string") { return signature; } return signature.signature; } } export function normalizeTezosProvider({ provider, }) { return new OrbisTezosProvider(provider); }