UNPKG

@opendatalabs/vana-sdk

Version:

A TypeScript library for interacting with Vana Network smart contracts.

45 lines (44 loc) 2.43 kB
/** * PS Lite owner-binding message and signing helpers. * * PS Lite uses this replayable personal-sign message as a wallet-owned input * for opening the user's local encrypted runtime. This is intentionally * separate from Personal Server registration, which is EIP-712 typed data. * * @category Protocol */ import { type Account, type Address, type Hex, type SignableMessage } from "viem"; export declare const PERSONAL_SERVER_LITE_OWNER_BINDING_VERSION = "vana.account.v1"; export declare const PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE = "ps-lite-owner"; export declare const PERSONAL_SERVER_LITE_OWNER_BINDING_PREFIX: "vana.account.v1:ps-lite-owner:"; export type PersonalServerLiteOwnerBindingPurpose = typeof PERSONAL_SERVER_LITE_OWNER_BINDING_PURPOSE; export type PersonalServerLiteOwnerBindingMessage = `${typeof PERSONAL_SERVER_LITE_OWNER_BINDING_PREFIX}${Lowercase<Address>}`; export interface PersonalServerLiteOwnerBindingSigner { address: Address; signMessage(input: { message: PersonalServerLiteOwnerBindingMessage; }): Promise<Hex> | Hex; } export interface ViemPersonalServerLiteOwnerBindingWalletClient { account?: Account | Address | null; signMessage(input: { account?: Account | Address; message: SignableMessage; }): Promise<Hex>; } export type ViemPersonalServerLiteOwnerBindingSignerSource = PersonalServerLiteOwnerBindingSigner | ViemPersonalServerLiteOwnerBindingWalletClient; export interface BuildPersonalServerLiteOwnerBindingSignatureInput { signer: PersonalServerLiteOwnerBindingSigner; } export interface PersonalServerLiteOwnerBindingSignature { signature: Hex; signerAddress: Address; message: PersonalServerLiteOwnerBindingMessage; purpose: PersonalServerLiteOwnerBindingPurpose; } export declare function buildPersonalServerLiteOwnerBindingMessage(ownerAddress: Address): PersonalServerLiteOwnerBindingMessage; export declare function createViemPersonalServerLiteOwnerBindingSigner(source: ViemPersonalServerLiteOwnerBindingSignerSource, options?: { account?: Account | Address; }): PersonalServerLiteOwnerBindingSigner; export declare function buildPersonalServerLiteOwnerBindingSignature(input: BuildPersonalServerLiteOwnerBindingSignatureInput): Promise<PersonalServerLiteOwnerBindingSignature>; export declare const signPersonalServerLiteOwnerBinding: typeof buildPersonalServerLiteOwnerBindingSignature;