import { PublicKey, TransactionInstruction } from '@solana/web3.js'; import { Address, Domain } from '@hyperlane-xyz/utils'; import { BaseSealevelAdapter } from '../../app/MultiProtocolApp.js'; import type { MultiProviderAdapter } from '../../providers/MultiProviderAdapter.js'; import { ChainName } from '../../types.js'; export declare class SealevelMultisigAdapter extends BaseSealevelAdapter { readonly chainName: ChainName; readonly multiProvider: MultiProviderAdapter; readonly addresses: { multisigIsm: Address; }; protected readonly multisigIsm: PublicKey; constructor(chainName: ChainName, multiProvider: MultiProviderAdapter, addresses: { multisigIsm: Address; }); /** * Create a SetValidatorsAndThreshold instruction * @param multisigIsmProgramId - The MultisigIsm program ID * @param accessControlPda - The access control PDA account * @param domainDataPda - The domain data PDA account (will be created if doesn't exist) * @param owner - The current owner who can set validators * @param domain - The remote domain for which validators are being set * @param validators - Array of 20-byte validator addresses (Ethereum-style addresses) * @param threshold - The number of validator signatures required * @returns TransactionInstruction */ createSetValidatorsAndThresholdInstruction(multisigIsmProgramId: PublicKey, accessControlPda: PublicKey, domainDataPda: PublicKey, owner: PublicKey, domain: Domain, validators: Uint8Array[], threshold: number): TransactionInstruction; /** * Create a TransferOwnership instruction * @param multisigIsmProgramId - The MultisigIsm program ID * @param accessControlPda - The access control PDA account * @param owner - The current owner * @param newOwner - The new owner (null to renounce ownership) * @returns TransactionInstruction */ createTransferOwnershipInstruction(multisigIsmProgramId: PublicKey, accessControlPda: PublicKey, owner: PublicKey, newOwner: PublicKey | null): TransactionInstruction; /** * Helper method to convert hex string validators to Uint8Array format * @param hexValidators - Array of validator addresses as hex strings (with or without 0x prefix) * @returns Array of 20-byte Uint8Arrays */ static hexValidatorsToUint8Array(hexValidators: string[]): Uint8Array[]; /** * Derive the domain data PDA for a given domain * Matches: rust/sealevel/programs/ism/multisig-ism-message-id/src/processor.rs domain_data_pda_seeds! * @param multisigIsmProgramId - The MultisigIsm program ID * @param domain - The domain * @returns PublicKey for the domain data PDA */ static deriveDomainDataPda(multisigIsmProgramId: string | PublicKey, domain: Domain): PublicKey; /** * Derive the access control PDA * Matches: rust/sealevel/programs/ism/multisig-ism-message-id/src/processor.rs access_control_pda_seeds! * @param multisigIsmProgramId - The MultisigIsm program ID * @returns PublicKey for the access control PDA */ static deriveAccessControlPda(multisigIsmProgramId: string | PublicKey): PublicKey; } //# sourceMappingURL=SealevelMultisigAdapter.d.ts.map