@opendatalabs/vana-sdk
Version:
A TypeScript library for interacting with Vana Network smart contracts.
45 lines (44 loc) • 2.43 kB
TypeScript
/**
* 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;