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