import { BigNumber, PopulatedTransaction } from 'ethers'; import { z } from 'zod'; import { InterchainAccountRouter } from '@hyperlane-xyz/core'; import { Address, CallData } from '@hyperlane-xyz/utils'; import { HyperlaneAddressesMap, HyperlaneContracts, HyperlaneContractsMap } from '../../contracts/types.js'; import { MultiProvider } from '../../providers/MultiProvider.js'; import { CallData as SdkCallData } from '../../providers/transactions/types.js'; import { RouterApp } from '../../router/RouterApps.js'; import { ChainMap, ChainName } from '../../types.js'; import { InterchainAccountFactories } from './contracts.js'; import { AccountConfig, GetCallRemoteSettings } from './types.js'; export declare class InterchainAccount extends RouterApp { knownAccounts: Record; constructor(contractsMap: HyperlaneContractsMap, multiProvider: MultiProvider); remoteChains(chainName: string): Promise; router(contracts: HyperlaneContracts): InterchainAccountRouter; static fromAddressesMap(addressesMap: HyperlaneAddressesMap, multiProvider: MultiProvider): InterchainAccount; static EMPTY_SALT: string; getAccount(destinationChain: ChainName, config: AccountConfig): Promise
; deployAccount(destinationChain: ChainName, config: AccountConfig): Promise
; protected getOrDeployAccount(deployIfNotExists: boolean, destinationChain: ChainName, config: AccountConfig): Promise
; /** * Encode the ICA message body for handle() call estimation. * Mirrors solidity/contracts/middleware/libs/InterchainAccountMessage.sol#encode */ encodeIcaMessageBody(owner: string, ism: string, calls: { to: string; value: BigNumber; data: string; }[], salt?: string): string; /** * Estimate gas for ICA handle() execution on destination chain. */ estimateIcaHandleGas({ origin, destination, innerCalls, config, }: { origin: string; destination: string; innerCalls: SdkCallData[]; config: AccountConfig; }): Promise; getCallRemote({ chain, destination, innerCalls, config, hookMetadata, }: GetCallRemoteSettings): Promise; private extractGasLimitFromMetadata; callRemote({ chain, destination, innerCalls, config, hookMetadata, }: GetCallRemoteSettings): Promise; } export declare function buildInterchainAccountApp(multiProvider: MultiProvider, chain: ChainName, config: AccountConfig, coreAddressesByChain: ChainMap>): Promise; export declare function deployInterchainAccount(multiProvider: MultiProvider, chain: ChainName, config: AccountConfig, coreAddressesByChain: ChainMap>): Promise
; export declare function encodeIcaCalls(calls: CallData[], salt: string): string; export type RawCallData = { to: string; value?: string | number; data: string; }; export declare function normalizeCalls(calls: RawCallData[]): CallData[]; export declare function commitmentFromIcaCalls(calls: CallData[], salt: string): string; /** * Format of REVEAL message: * [ 0: 1] MessageType.REVEAL (uint8) * [ 1: 33] ICA ISM (bytes32) * [ 33: 65] Commitment (bytes32) */ export declare function commitmentFromRevealMessage(message: string): string; declare const PostCallsLegacySchema: z.ZodObject<{ calls: z.ZodArray; }, "strip", z.ZodTypeAny, { to: string; data: string; value?: string | undefined; }, { to: string; data: string; value?: string | undefined; }>, "many">; relayers: z.ZodArray; salt: z.ZodString; ismOverride: z.ZodOptional; originDomain: z.ZodNumber; } & { commitmentDispatchTx: z.ZodString; }, "strip", z.ZodTypeAny, { salt: string; calls: { to: string; data: string; value?: string | undefined; }[]; relayers: string[]; originDomain: number; commitmentDispatchTx: string; ismOverride?: string | undefined; }, { salt: string; calls: { to: string; data: string; value?: string | undefined; }[]; relayers: string[]; originDomain: number; commitmentDispatchTx: string; ismOverride?: string | undefined; }>; declare const PostCallsIcaSchema: z.ZodObject<{ calls: z.ZodArray; }, "strip", z.ZodTypeAny, { to: string; data: string; value?: string | undefined; }, { to: string; data: string; value?: string | undefined; }>, "many">; relayers: z.ZodArray; salt: z.ZodString; ismOverride: z.ZodOptional; originDomain: z.ZodNumber; } & { destinationDomain: z.ZodNumber; owner: z.ZodString; userSalt: z.ZodOptional; }, "strip", z.ZodTypeAny, { owner: string; salt: string; destinationDomain: number; calls: { to: string; data: string; value?: string | undefined; }[]; relayers: string[]; originDomain: number; ismOverride?: string | undefined; userSalt?: string | undefined; }, { owner: string; salt: string; destinationDomain: number; calls: { to: string; data: string; value?: string | undefined; }[]; relayers: string[]; originDomain: number; ismOverride?: string | undefined; userSalt?: string | undefined; }>; export declare const PostCallsSchema: z.ZodUnion<[z.ZodObject<{ calls: z.ZodArray; }, "strip", z.ZodTypeAny, { to: string; data: string; value?: string | undefined; }, { to: string; data: string; value?: string | undefined; }>, "many">; relayers: z.ZodArray; salt: z.ZodString; ismOverride: z.ZodOptional; originDomain: z.ZodNumber; } & { destinationDomain: z.ZodNumber; owner: z.ZodString; userSalt: z.ZodOptional; }, "strip", z.ZodTypeAny, { owner: string; salt: string; destinationDomain: number; calls: { to: string; data: string; value?: string | undefined; }[]; relayers: string[]; originDomain: number; ismOverride?: string | undefined; userSalt?: string | undefined; }, { owner: string; salt: string; destinationDomain: number; calls: { to: string; data: string; value?: string | undefined; }[]; relayers: string[]; originDomain: number; ismOverride?: string | undefined; userSalt?: string | undefined; }>, z.ZodObject<{ calls: z.ZodArray; }, "strip", z.ZodTypeAny, { to: string; data: string; value?: string | undefined; }, { to: string; data: string; value?: string | undefined; }>, "many">; relayers: z.ZodArray; salt: z.ZodString; ismOverride: z.ZodOptional; originDomain: z.ZodNumber; } & { commitmentDispatchTx: z.ZodString; }, "strip", z.ZodTypeAny, { salt: string; calls: { to: string; data: string; value?: string | undefined; }[]; relayers: string[]; originDomain: number; commitmentDispatchTx: string; ismOverride?: string | undefined; }, { salt: string; calls: { to: string; data: string; value?: string | undefined; }[]; relayers: string[]; originDomain: number; commitmentDispatchTx: string; ismOverride?: string | undefined; }>]>; export type PostCallsType = z.infer; export type PostCallsLegacyType = z.infer; export type PostCallsIcaType = z.infer; export declare function isPostCallsIca(data: PostCallsType): data is PostCallsIcaType; export declare function shareCallsWithPrivateRelayer(serverUrl: string, payload: PostCallsType): Promise; export {}; //# sourceMappingURL=InterchainAccount.d.ts.map