UNPKG

@provablehq/sdk

Version:

A Software Development Kit (SDK) for Zero-Knowledge Transactions

77 lines (76 loc) 3.4 kB
import { ExecutionRequest } from "./wasm.js"; import type { ExternalSigningInput, ExternalSigningOptions, ExecutionRequestParams, InputStrategy } from "./models/external-signing.js"; export * from "./models/external-signing.js"; /** * Build an ExecutionRequest from externally signed data. * * The `strategy` parameter determines how record input IDs are resolved: * - `{ recordViewKeys?, gammas? }` — explicit record view keys and gammas * - `{ viewKey, gammas? }` — derive record view keys from a ViewKey * - `{ inputIds }` — pre-computed input IDs (Field or [Field, Group, Field, Field, Field] tuples) * * @throws {Error} If `strategy` is not a valid `InputStrategy` variant. * * @example * // With explicit record view keys * buildExecutionRequestFromExternallySignedData( * { programId, functionName, inputs, inputTypes, signature, tvk, signer, skTag }, * { recordViewKeys: [...], gammas: [...] }, * ); * * // With a view key * buildExecutionRequestFromExternallySignedData( * { programId, functionName, inputs, inputTypes, signature, tvk, signer, skTag }, * { viewKey: "AViewKey1..." }, * ); * * // With pre-computed input IDs * buildExecutionRequestFromExternallySignedData( * { programId, functionName, inputs, inputTypes, signature, tvk, signer, skTag }, * { inputIds: [...] }, * ); */ export declare function buildExecutionRequestFromExternallySignedData(params: ExecutionRequestParams, strategy?: InputStrategy): ExecutionRequest; /** * Computes the function ID and serialized input data for a program function call. * Used by external signing wallets and other applications that need publicly computable inputs * for building a signed execution request (e.g. before calling {@link ExecutionRequest.sign}). * * The optional `outputFormat` field controls how field elements are returned: * - `"string"` (default) — human-readable strings like `"123field"` * - `"bytes"` — raw little-endian `Uint8Array`s * * @param {ExternalSigningOptions} options - Program name, function name, inputs, input_types, root flag, an optional program checksum, an optional view key, and an optional output format. * @throws Throws if parsing the program ID, function name, or inputs fails or if the inputs do not match the type signatures passed in the input_types parameter. * * @example * // String output (default) * const result = await computeExternalSigningInputs({ * programName: "credits.aleo", * functionName: "transfer_public", * inputs: ["aleo1...", "100u64"], * inputTypes: ["address.public", "u64.public"], * isRoot: true, * }); * result.functionId; // string * * @example * // Bytes output * const result = await computeExternalSigningInputs({ * programName: "credits.aleo", * functionName: "transfer_public", * inputs: ["aleo1...", "100u64"], * inputTypes: ["address.public", "u64.public"], * isRoot: true, * outputFormat: "bytes", * }); * result.functionId; // Uint8Array * * @returns {ExternalSigningInput} A JSON object for inputs to external signing algorithms. */ export declare function computeExternalSigningInputs(options: ExternalSigningOptions & { outputFormat: "bytes"; }): Promise<ExternalSigningInput<"bytes">>; export declare function computeExternalSigningInputs(options: ExternalSigningOptions & { outputFormat?: "string"; }): Promise<ExternalSigningInput<"string">>;