@desig/web3
Version:
Desig: The Blockchain-Agnostic Multisig Solution
41 lines (40 loc) • 2.02 kB
TypeScript
import { Connection } from './connection';
import { DesigKeypair } from './keypair';
import type { ExtendedApprovalEntity, ExtendedProposalEntity, PaginationParams } from './types';
export declare class Proposal extends Connection {
constructor(cluster: string, privkey: string, keypair: DesigKeypair);
static deriveProposalId: (multisigId: string, msg: Uint8Array) => string;
static deriveApprovalId(proposalId: string, signerId: string): string;
watch: (callback: (approvalId: string, er?: string) => void) => () => void;
getProposals: (chainId: string, { size, after }?: Partial<PaginationParams>) => Promise<ExtendedProposalEntity[]>;
getProposal: (proposalId: string) => Promise<ExtendedProposalEntity>;
getApproval: (approvalId: string) => Promise<ExtendedApprovalEntity>;
initializeProposal: ({ raw, msg, chainId, ttl, }: {
raw: Uint8Array;
msg: Uint8Array;
chainId: string;
ttl?: number;
}) => Promise<import("./types").ProposalEntity & {
multisig: import("./types").MultisigEntity;
approvals: (import("./types").ApprovalEntity & {
signer: Omit<import("./types").SignerEntity, "encryptedShare">;
})[];
}>;
approveProposal: (proposalId: string) => Promise<import("./types").ApprovalEntity & {
proposal: import("./types").ProposalEntity;
signer: Omit<import("./types").SignerEntity, "encryptedShare">;
}>;
private approveEd25519Proposal;
private approveSecp256k1Proposal;
updateTxHash: (proposalId: string, txHash: string) => Promise<import("./types").ProposalEntity & {
multisig: import("./types").MultisigEntity;
approvals: (import("./types").ApprovalEntity & {
signer: Omit<import("./types").SignerEntity, "encryptedShare">;
})[];
}>;
finalizeSignature: (proposalId: string) => Promise<{
sig: Uint8Array;
recv?: number;
}>;
verifySignature: (id: string, signature: Uint8Array) => Promise<boolean>;
}