UNPKG

@opendatalabs/vana-sdk

Version:

A TypeScript library for interacting with Vana Network smart contracts.

65 lines 2.37 kB
import { isAddress } from "viem"; const PERSONAL_SERVER_LITE_OWNER_BINDING_VERSION = "vana.account.v1"; const PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE = "ps-lite-owner"; const PERSONAL_SERVER_LITE_OWNER_BINDING_PREFIX = `${PERSONAL_SERVER_LITE_OWNER_BINDING_VERSION}:${PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE}:`; function assertAddress(value, name) { if (!isAddress(value)) { throw new Error(`${name} must be a valid EVM address`); } } function getAccountAddress(account) { if (!account) { return void 0; } return typeof account === "string" ? account : account.address; } function isPersonalServerLiteOwnerBindingSigner(source) { return "address" in source && typeof source.signMessage === "function"; } function buildPersonalServerLiteOwnerBindingMessage(ownerAddress) { assertAddress(ownerAddress, "ownerAddress"); return `${PERSONAL_SERVER_LITE_OWNER_BINDING_PREFIX}${ownerAddress.toLowerCase()}`; } function createViemPersonalServerLiteOwnerBindingSigner(source, options = {}) { if (isPersonalServerLiteOwnerBindingSigner(source)) { return source; } const accountAddress = getAccountAddress(options.account) ?? getAccountAddress(source.account); if (accountAddress) { return { address: accountAddress, signMessage: ({ message }) => source.signMessage({ account: options.account ?? source.account ?? accountAddress, message }) }; } throw new Error( "Viem wallet client requires an account option or account property" ); } async function buildPersonalServerLiteOwnerBindingSignature(input) { const message = buildPersonalServerLiteOwnerBindingMessage( input.signer.address ); const signature = await input.signer.signMessage({ message }); return { signature, signerAddress: input.signer.address, message, purpose: PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE }; } const signPersonalServerLiteOwnerBinding = buildPersonalServerLiteOwnerBindingSignature; export { PERSONAL_SERVER_LITE_OWNER_BINDING_PREFIX, PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE, PERSONAL_SERVER_LITE_OWNER_BINDING_VERSION, buildPersonalServerLiteOwnerBindingMessage, buildPersonalServerLiteOwnerBindingSignature, createViemPersonalServerLiteOwnerBindingSigner, signPersonalServerLiteOwnerBinding }; //# sourceMappingURL=personal-server-lite-owner-binding.js.map