UNPKG

@opendatalabs/vana-sdk

Version:

A TypeScript library for interacting with Vana Network smart contracts.

63 lines (62 loc) 3.08 kB
/** * Personal Server registration typed-data and signing helpers. * * These helpers are protocol-owned and runtime-neutral. Apps can sign with * viem local accounts, wallet clients, Account products, or any equivalent * signer by adapting to {@link PersonalServerRegistrationSigner}. * * @category Protocol */ import { type Account, type Address, type Hex, type TypedDataDomain, type TypedDataDefinition } from "viem"; import { SERVER_REGISTRATION_TYPES, type DataPortabilityGatewayConfig, type ServerRegistrationMessage } from "./eip712"; export declare const PERSONAL_SERVER_REGISTRATION_DEFAULT_CHAIN_ID = 1480; export declare const PERSONAL_SERVER_REGISTRATION_DEFAULT_VERIFYING_CONTRACT: "0x1483B1F634DBA75AeaE60da7f01A679aabd5ee2c"; export type PersonalServerRegistrationTypedData = TypedDataDefinition<typeof SERVER_REGISTRATION_TYPES, "ServerRegistration"> & { message: ServerRegistrationMessage; }; export interface PersonalServerRegistrationSigner { address: Address; signTypedData(typedData: PersonalServerRegistrationTypedData): Promise<Hex> | Hex; } export interface ViemPersonalServerRegistrationWalletClient { account?: Account | Address | null; signTypedData(typedData: PersonalServerRegistrationTypedData & { account?: Account | Address; }): Promise<Hex>; } export type ViemPersonalServerRegistrationSignerSource = PersonalServerRegistrationSigner | ViemPersonalServerRegistrationWalletClient; export interface BuildPersonalServerRegistrationTypedDataInput { ownerAddress: Address; serverAddress: Address; serverPublicKey: string; serverUrl: string; config?: DataPortabilityGatewayConfig; chainId?: number; verifyingContract?: Address; } export interface BuildPersonalServerRegistrationSignatureInput { signer: PersonalServerRegistrationSigner; serverAddress: Address; serverPublicKey: string; serverUrl: string; config?: DataPortabilityGatewayConfig; chainId?: number; verifyingContract?: Address; } export interface PersonalServerRegistrationSignature { signature: Hex; signerAddress: Address; typedData: PersonalServerRegistrationTypedData; } export interface PersonalServerRegistrationDomainInput { config?: DataPortabilityGatewayConfig; chainId?: number; verifyingContract?: Address; } export declare function createViemPersonalServerRegistrationSigner(source: ViemPersonalServerRegistrationSignerSource, options?: { account?: Account | Address; }): PersonalServerRegistrationSigner; export declare function personalServerRegistrationDomain(input?: PersonalServerRegistrationDomainInput): TypedDataDomain; export declare function buildPersonalServerRegistrationTypedData(input: BuildPersonalServerRegistrationTypedDataInput): PersonalServerRegistrationTypedData; export declare function buildPersonalServerRegistrationSignature(input: BuildPersonalServerRegistrationSignatureInput): Promise<PersonalServerRegistrationSignature>; export declare const registerPersonalServerSignature: typeof buildPersonalServerRegistrationSignature;