import type { Account, Chain, ContractFunctionArgs, Transport, WalletClient, WriteContractReturnType } from 'viem'; import { type RawOrContractAddress } from '../../../types/addresses.js'; import type { L1WriteActionBaseType } from '../../../types/l1Actions.js'; import type { GetProveWithdrawalTransactionArgsReturnType } from '../../index.js'; export declare const ABI: readonly [{ readonly stateMutability: "nonpayable"; readonly type: "constructor"; readonly inputs: readonly []; }, { 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: "account"; readonly internalType: "address"; readonly type: "address"; readonly indexed: false; }]; readonly name: "Paused"; }, { readonly type: "event"; readonly anonymous: false; readonly inputs: readonly [{ readonly name: "from"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }, { readonly name: "to"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }, { readonly name: "version"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }, { readonly name: "opaqueData"; readonly internalType: "bytes"; readonly type: "bytes"; readonly indexed: false; }]; readonly name: "TransactionDeposited"; }, { readonly type: "event"; readonly anonymous: false; readonly inputs: readonly [{ readonly name: "account"; readonly internalType: "address"; readonly type: "address"; readonly indexed: false; }]; readonly name: "Unpaused"; }, { readonly type: "event"; readonly anonymous: false; readonly inputs: readonly [{ readonly name: "withdrawalHash"; readonly internalType: "bytes32"; readonly type: "bytes32"; readonly indexed: true; }, { readonly name: "success"; readonly internalType: "bool"; readonly type: "bool"; readonly indexed: false; }]; readonly name: "WithdrawalFinalized"; }, { readonly type: "event"; readonly anonymous: false; readonly inputs: readonly [{ readonly name: "withdrawalHash"; readonly internalType: "bytes32"; readonly type: "bytes32"; readonly indexed: true; }, { readonly name: "from"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }, { readonly name: "to"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }]; readonly name: "WithdrawalProven"; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "GUARDIAN"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "address"; readonly type: "address"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "L2_ORACLE"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "contract L2OutputOracle"; readonly type: "address"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "SYSTEM_CONFIG"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "contract SystemConfig"; readonly type: "address"; }]; }, { readonly stateMutability: "payable"; readonly type: "function"; readonly inputs: readonly [{ readonly name: "_to"; readonly internalType: "address"; readonly type: "address"; }, { readonly name: "_value"; readonly internalType: "uint256"; readonly type: "uint256"; }, { readonly name: "_gasLimit"; readonly internalType: "uint64"; readonly type: "uint64"; }, { readonly name: "_isCreation"; readonly internalType: "bool"; readonly type: "bool"; }, { readonly name: "_data"; readonly internalType: "bytes"; readonly type: "bytes"; }]; readonly name: "depositTransaction"; readonly outputs: readonly []; }, { readonly stateMutability: "payable"; readonly type: "function"; readonly inputs: readonly []; readonly name: "donateETH"; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly inputs: readonly [{ readonly name: "_tx"; readonly internalType: "struct Types.WithdrawalTransaction"; readonly type: "tuple"; readonly components: 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: "gasLimit"; readonly internalType: "uint256"; readonly type: "uint256"; }, { readonly name: "data"; readonly internalType: "bytes"; readonly type: "bytes"; }]; }]; readonly name: "finalizeWithdrawalTransaction"; readonly outputs: readonly []; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly [{ readonly name: ""; readonly internalType: "bytes32"; readonly type: "bytes32"; }]; readonly name: "finalizedWithdrawals"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "bool"; readonly type: "bool"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "guardian"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "address"; readonly type: "address"; }]; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly inputs: readonly [{ readonly name: "_l2Oracle"; readonly internalType: "contract L2OutputOracle"; readonly type: "address"; }, { readonly name: "_guardian"; readonly internalType: "address"; readonly type: "address"; }, { readonly name: "_systemConfig"; readonly internalType: "contract SystemConfig"; readonly type: "address"; }, { readonly name: "_paused"; readonly internalType: "bool"; readonly type: "bool"; }]; readonly name: "initialize"; readonly outputs: readonly []; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly [{ readonly name: "_l2OutputIndex"; readonly internalType: "uint256"; readonly type: "uint256"; }]; readonly name: "isOutputFinalized"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "bool"; readonly type: "bool"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "l2Oracle"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "contract L2OutputOracle"; readonly type: "address"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "l2Sender"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "address"; readonly type: "address"; }]; }, { readonly stateMutability: "pure"; readonly type: "function"; readonly inputs: readonly [{ readonly name: "_byteCount"; readonly internalType: "uint64"; readonly type: "uint64"; }]; readonly name: "minimumGasLimit"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "uint64"; readonly type: "uint64"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "params"; readonly outputs: readonly [{ readonly name: "prevBaseFee"; readonly internalType: "uint128"; readonly type: "uint128"; }, { readonly name: "prevBoughtGas"; readonly internalType: "uint64"; readonly type: "uint64"; }, { readonly name: "prevBlockNum"; readonly internalType: "uint64"; readonly type: "uint64"; }]; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly inputs: readonly []; readonly name: "pause"; readonly outputs: readonly []; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "paused"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "bool"; readonly type: "bool"; }]; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly inputs: readonly [{ readonly name: "_tx"; readonly internalType: "struct Types.WithdrawalTransaction"; readonly type: "tuple"; readonly components: 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: "gasLimit"; readonly internalType: "uint256"; readonly type: "uint256"; }, { readonly name: "data"; readonly internalType: "bytes"; readonly type: "bytes"; }]; }, { readonly name: "_l2OutputIndex"; readonly internalType: "uint256"; readonly type: "uint256"; }, { readonly name: "_outputRootProof"; readonly internalType: "struct Types.OutputRootProof"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "version"; readonly internalType: "bytes32"; readonly type: "bytes32"; }, { readonly name: "stateRoot"; readonly internalType: "bytes32"; readonly type: "bytes32"; }, { readonly name: "messagePasserStorageRoot"; readonly internalType: "bytes32"; readonly type: "bytes32"; }, { readonly name: "latestBlockhash"; readonly internalType: "bytes32"; readonly type: "bytes32"; }]; }, { readonly name: "_withdrawalProof"; readonly internalType: "bytes[]"; readonly type: "bytes[]"; }]; readonly name: "proveWithdrawalTransaction"; readonly outputs: readonly []; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly [{ readonly name: ""; readonly internalType: "bytes32"; readonly type: "bytes32"; }]; readonly name: "provenWithdrawals"; readonly outputs: readonly [{ readonly name: "outputRoot"; readonly internalType: "bytes32"; readonly type: "bytes32"; }, { readonly name: "timestamp"; readonly internalType: "uint128"; readonly type: "uint128"; }, { readonly name: "l2OutputIndex"; readonly internalType: "uint128"; readonly type: "uint128"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly inputs: readonly []; readonly name: "systemConfig"; readonly outputs: readonly [{ readonly name: ""; readonly internalType: "contract SystemConfig"; readonly type: "address"; }]; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly inputs: readonly []; readonly name: "unpause"; readonly outputs: readonly []; }, { 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: "payable"; readonly type: "receive"; }]; export declare const FUNCTION = "proveWithdrawalTransaction"; export type ProveWithdrawalTransactionParameters = GetProveWithdrawalTransactionArgsReturnType; export type WriteProveWithdrawalTransactionParameters = { args: ProveWithdrawalTransactionParameters; portal: RawOrContractAddress<_chainId>; } & L1WriteActionBaseType, TChain, TAccount, TChainOverride>; /** * Calls proveWithdrawalTransaction on the OptimismPortal contract. * Is the first L1 step of a withdrawal. * * @param parameters - {@link WriteProveWithdrawalTransactionParameters} * @returns A [Transaction Hash](https://viem.sh/docs/glossary/terms.html#hash). {@link WriteContractReturnType} */ export declare function writeProveWithdrawalTransaction(client: WalletClient, { args: { withdrawalTransaction, L2OutputIndex, outputRootProof, withdrawalProof }, portal, ...rest }: WriteProveWithdrawalTransactionParameters): Promise; //# sourceMappingURL=writeProveWithdrawalTransaction.d.ts.map