import type { Account, Address, Chain, ContractFunctionArgs, Hex, Transport, WalletClient, WriteContractReturnType } from 'viem'; import { type RawOrContractAddress } from '../../../types/addresses.js'; import type { L1WriteActionBaseType } from '../../../types/l1Actions.js'; declare const ABI: readonly [{ readonly stateMutability: "nonpayable"; readonly type: "constructor"; readonly inputs: readonly []; }, { readonly type: "event"; readonly anonymous: false; readonly inputs: readonly [{ readonly name: "msgHash"; readonly internalType: "bytes32"; readonly type: "bytes32"; readonly indexed: true; }]; readonly name: "FailedRelayedMessage"; }, { readonly type: "event"; readonly anonymous: false; readonly inputs: readonly [{ readonly name: "version"; readonly internalType: "uint8"; readonly type: "uint8"; readonly indexed: false; }]; readonly name: "Initialized"; }, { readonly type: "event"; readonly anonymous: false; readonly inputs: readonly [{ readonly name: "msgHash"; readonly internalType: "bytes32"; readonly type: "bytes32"; readonly indexed: true; }]; readonly name: "RelayedMessage"; }, { readonly type: "event"; readonly anonymous: false; readonly inputs: readonly [{ readonly name: "target"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }, { readonly name: "sender"; readonly internalType: "address"; readonly type: "address"; readonly indexed: false; }, { readonly name: "message"; readonly internalType: "bytes"; readonly type: "bytes"; readonly indexed: false; }, { readonly name: "messageNonce"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; }, { readonly name: "gasLimit"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; }]; readonly name: "SentMessage"; }, { readonly type: "event"; readonly anonymous: false; readonly inputs: readonly [{ readonly name: "sender"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }, { readonly name: "value"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; }]; readonly name: "SentMessageExtension1"; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "MESSAGE_VERSION"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "uint16"; readonly type: "uint16"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "MIN_GAS_CALLDATA_OVERHEAD"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "uint64"; readonly type: "uint64"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "uint64"; readonly type: "uint64"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "uint64"; readonly type: "uint64"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "OTHER_MESSENGER"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "address"; readonly type: "address"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "PORTAL"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "contract OptimismPortal"; readonly type: "address"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "RELAY_CALL_OVERHEAD"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "uint64"; readonly type: "uint64"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "RELAY_CONSTANT_OVERHEAD"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "uint64"; readonly type: "uint64"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "RELAY_GAS_CHECK_BUFFER"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "uint64"; readonly type: "uint64"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "RELAY_RESERVED_GAS"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "uint64"; readonly type: "uint64"; }]; }, { readonly stateMutability: "pure"; readonly type: "function"; readonly inputs: readonly [{ readonly name: "_message"; readonly internalType: "bytes"; readonly type: "bytes"; }, { readonly name: "_minGasLimit"; readonly internalType: "uint32"; readonly type: "uint32"; }]; readonly name: "baseGas"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "uint64"; readonly type: "uint64"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly [{ readonly name: ""; readonly internalType: "bytes32"; readonly type: "bytes32"; }]; readonly name: "failedMessages"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "bool"; readonly type: "bool"; }]; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly inputs: readonly [{ readonly name: "_portal"; readonly internalType: "contract OptimismPortal"; readonly type: "address"; }]; readonly name: "initialize"; readonly outputs: readonly []; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "messageNonce"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "uint256"; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "portal"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "address"; readonly type: "address"; }]; }, { readonly stateMutability: "payable"; readonly type: "function"; readonly inputs: readonly [{ readonly name: "_nonce"; readonly internalType: "uint256"; readonly type: "uint256"; }, { readonly name: "_sender"; readonly internalType: "address"; readonly type: "address"; }, { readonly name: "_target"; readonly internalType: "address"; readonly type: "address"; }, { readonly name: "_value"; readonly internalType: "uint256"; readonly type: "uint256"; }, { readonly name: "_minGasLimit"; readonly internalType: "uint256"; readonly type: "uint256"; }, { readonly name: "_message"; readonly internalType: "bytes"; readonly type: "bytes"; }]; readonly name: "relayMessage"; readonly outputs: readonly []; }, { readonly stateMutability: "payable"; readonly type: "function"; readonly inputs: readonly [{ readonly name: "_target"; readonly internalType: "address"; readonly type: "address"; }, { readonly name: "_message"; readonly internalType: "bytes"; readonly type: "bytes"; }, { readonly name: "_minGasLimit"; readonly internalType: "uint32"; readonly type: "uint32"; }]; readonly name: "sendMessage"; readonly outputs: readonly []; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly [{ readonly name: ""; readonly internalType: "bytes32"; readonly type: "bytes32"; }]; readonly name: "successfulMessages"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "bool"; readonly type: "bool"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "version"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "string"; readonly type: "string"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "xDomainMessageSender"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "address"; readonly type: "address"; }]; }]; declare const FUNCTION = "sendMessage"; export type SendMessageParameters = { target: Address; minGasLimit: number; message?: Hex; }; export type WriteSendMessageParameters = { args: SendMessageParameters; l1CrossDomainMessenger: RawOrContractAddress<_chainId>; } & L1WriteActionBaseType, TChain, TAccount, TChainOverride>; /** * A generic, low-level way to make a L1 -> L2 call with replayability. * Calls sendMessage on the L1CrossDomainMessenger contract. * * @param parameters - {@link WriteSendMessageParameters} * @returns A [Transaction Hash](https://viem.sh/docs/glossary/terms.html#hash). {@link WriteContractReturnType} */ export declare function writeSendMessage(client: WalletClient, { args: { target, minGasLimit, message }, l1CrossDomainMessenger, ...rest }: WriteSendMessageParameters): Promise; export {}; //# sourceMappingURL=writeSendMessage.d.ts.map