@runonflux/aa-schnorr-multisig-sdk
Version:
Account Abstraction Schnorr Multi-Signatures SDK
56 lines (55 loc) • 1.91 kB
TypeScript
import type { UserOperationStruct_v6 } from "@alchemy/aa-core";
import { Key } from "../types";
import type { SignersNonces, SignersPubKeys, SignersSignatures, PublicNonces, SignatureOutput } from "../types";
import type { Hex } from "../types/misc";
import type { SchnorrSigner } from "../signers";
interface SerializedMultiSigOp {
id: string;
opHash: string;
userOpRequest: {
sender: string;
nonce: string;
initCode: string;
callData: string;
callGasLimit: string;
verificationGasLimit: string;
preVerificationGas: string;
maxFeePerGas: string;
maxPriorityFeePerGas: string;
paymasterAndData: string;
signature: string;
};
combinedPubKey: string;
publicNonces: Record<string, {
kPublic: string;
kTwoPublic: string;
}>;
publicKeys: Record<string, string>;
signatures: Record<string, {
finalPublicNonce: string;
challenge: string;
signature: string;
}>;
}
export declare class MultiSigUserOp {
readonly id: string;
readonly opHash: Hex;
readonly userOpRequest: UserOperationStruct_v6;
combinedPubKey: Key;
publicNonces: SignersNonces;
publicKeys: SignersPubKeys;
signatures: SignersSignatures;
constructor(publicKeys: Key[], publicNonces: PublicNonces[], opHash: Hex, userOpRequest: UserOperationStruct_v6);
getOpHash(): string;
signMultiSigHash(signer: SchnorrSigner): SignatureOutput;
getSummedSigData(): Hex;
getAddressSignature(signerAddress: string): SignatureOutput;
getAddressPublicNonces(signerAddress: string): PublicNonces;
getAddressPubKeys(signerAddress: string): Key;
_getSignatures(): SignatureOutput[];
_getPublicNonces(): PublicNonces[];
_getPublicKeys(): Key[];
toJson(): SerializedMultiSigOp;
static fromJson: (serialized: any) => any;
}
export {};