import type { MinimalProvider } from "../ethers/provider.js"; /** * Maps the Solidity struct `CoprocessorConfig` struct defined in * [`@fhevm/solidity/lib/Impl.sol`](https://github.com/zama-ai/fhevm-solidity/blob/main/lib/Impl.sol) * This struct contains all addresses of the FHEVM Coprocessor contracts, which are required in by a FHEVM dApp. */ export type CoprocessorConfig = { /** * Address of the deployed * [`ACL.sol`](https://github.com/zama-ai/fhevm-backend/blob/main/contracts/contracts/ACL.sol) * contract from `@fhevm/host-contracts`. */ ACLAddress: `0x${string}`; /** * Address of the deployed * [`FHEVMExecutor.sol`](https://github.com/zama-ai/fhevm-backend/blob/main/contracts/contracts/FHEVMExecutor.sol) * contract from `@fhevm/host-contracts`. */ CoprocessorAddress: `0x${string}`; /** * Address of the deployed * [`KMSVerifier.sol`](https://github.com/zama-ai/fhevm-backend/blob/main/contracts/contracts/KMSVerifier.sol) * contract from `@fhevm/host-contracts`. */ KMSVerifierAddress: `0x${string}`; }; /** * Retrieves the `CoprocessorConfig` struct from a smart contract that utilizes the FHEVM framework, * deployed at the given `contractAddress`. * * This function computes the storage slot corresponding to the `CoprocessorConfig` defined in * [`@fhevm/solidity/lib/Impl.sol`](https://github.com/zama-ai/fhevm-solidity/blob/main/lib/Impl.sol), * then reads the four consecutive addresses fields directly from storage. * * @param provider - A `MinimalProvider` that implements either `send` or `request` for JSON-RPC communication. * @param contractAddress - The on-chain address of the FHEVM contract to query. * @returns A Promise that resolves to the `CoprocessorConfig`. * * @throws If the computed storage slot does not match the expected constant layout, indicating a version or layout mismatch. */ export declare function getCoprocessorConfig(provider: MinimalProvider, contractAddress: string): Promise; //# sourceMappingURL=CoprocessorConfig.d.ts.map