UNPKG

@opendatalabs/vana-sdk

Version:

A TypeScript library for interacting with Vana Network smart contracts.

59 lines 1.81 kB
import { buildPersonalServerLiteOwnerBindingMessage, PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE } from "../protocol/personal-server-lite-owner-binding.js"; class AccountPersonalServerLiteOwnerBindingError extends Error { code; details; constructor(input) { super(input.message); this.name = "AccountPersonalServerLiteOwnerBindingError"; this.code = input.code; this.details = input.details; } } async function signPersonalServerLiteOwnerBindingWithAccountClient(config) { let address; try { address = await config.client.getAddress(); } catch (error) { throw accountOwnerBindingError(error); } if (!address) { throw new AccountPersonalServerLiteOwnerBindingError({ message: "Account did not return a wallet address", code: "account_address_required" }); } const message = buildPersonalServerLiteOwnerBindingMessage(address); let signature; try { signature = await config.client.signMessage({ message }); } catch (error) { throw accountOwnerBindingError(error); } return { signature, signerAddress: address, message, purpose: PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE }; } function accountOwnerBindingError(error) { if (error instanceof AccountPersonalServerLiteOwnerBindingError) { return error; } const rpcError = error; const code = rpcError?.code; const message = typeof rpcError?.message === "string" && rpcError.message.length > 0 ? rpcError.message : "Account PS Lite owner-binding signature failed"; return new AccountPersonalServerLiteOwnerBindingError({ message, code, details: error }); } export { AccountPersonalServerLiteOwnerBindingError, signPersonalServerLiteOwnerBindingWithAccountClient }; //# sourceMappingURL=personal-server-lite-owner-binding.js.map