import type { Address } from 'abitype'; import type { Block, BlockTag } from '../../types/block.js'; import type { FeeValuesLegacy } from '../../types/fee.js'; import type { Hash, Hex } from '../../types/misc.js'; import type { RpcTransactionReceipt } from '../../types/rpc.js'; import type { AccessList, TransactionBase as TransactionBase_, TransactionReceipt, TransactionRequestBase as TransactionRequestBase_, TransactionSerializableBase } from '../../types/transaction.js'; export type { SuaveWallet, SuaveProvider } from './wallet.js'; export declare enum SuaveTxRequestTypes { Legacy = "0x0", ConfidentialRequest = "0x43" } export declare enum SuaveTxTypes { ConfidentialRecord = "0x42", Suave = "0x50" } declare const AllSuaveTypes: { ConfidentialRecord: SuaveTxTypes.ConfidentialRecord; Suave: SuaveTxTypes.Suave; Legacy: SuaveTxRequestTypes.Legacy; ConfidentialRequest: SuaveTxRequestTypes.ConfidentialRequest; }; export type SuaveTxType = `${(typeof AllSuaveTypes)[keyof typeof AllSuaveTypes]}`; export type SuaveTxRequestType = `${(typeof SuaveTxRequestTypes)[keyof typeof SuaveTxRequestTypes]}`; type ConfidentialOverrides = { kettleAddress?: Address; isEIP712?: boolean; }; type ConfidentialComputeRequestOverrides = ConfidentialOverrides & { confidentialInputs?: Hex; }; type ConfidentialComputeRecordOverrides = ConfidentialOverrides & { confidentialInputsHash?: Hash; }; export type SuaveBlockOverrides = {}; export type SuaveTransactionReceiptOverrides = Partial & { confidentialComputeRequest: ConfidentialComputeRecord | null; confidentialComputeResult: Hex | null; }; type FeeValues = Omit, 'gasPrice'> & { gasPrice?: TQuantity; }; type TransactionBase = TransactionBase_ & FeeValues & { accessList?: AccessList; chainId: TIndex; type: TType; }; type TransactionRequestBase = Omit, 'from'> & FeeValues & { accessList?: AccessList; chainId?: TIndex; type?: TType; }; export type SuaveBlock = Omit>, 'sealFields'> & SuaveBlockOverrides; export type SuaveRpcBlock = SuaveBlock; export type TransactionSuave = TransactionBase & { requestRecord: ConfidentialComputeRecord; confidentialComputeResult: Hex; type: TType; }; /** The type that interfaces with RPC endpoints. * Used for endpoints that returns transactions, such as `eth_getTransactionByHash`. * Also used when parsing transactions from this client before sending to RPC endpoints * and/or signing transactions. */ export type RpcTransactionSuave = TransactionSuave; export type ConfidentialComputeRecord = Omit, 'blockHash' | 'transactionIndex' | 'blockNumber' | 'from'> & ConfidentialComputeRecordOverrides; export type ConfidentialComputeRecordRpc = ConfidentialComputeRecord; export type TransactionRequestSuave = TransactionRequestBase & ConfidentialComputeRequestOverrides & { from?: Address; }; export type PreparedConfidentialRecord = Omit & { data: Hex; to: Address; gasPrice: bigint; kettleAddress: Address; confidentialInputsHash: Hash; }; export type RpcTransactionRequestSuave = TransactionRequestSuave & { type: TType; }; export type TransactionReceiptSuave = TransactionReceipt & SuaveTransactionReceiptOverrides; export type RpcTransactionReceiptSuave = RpcTransactionReceipt & {}; export type TransactionSerializableEIP2930 = TransactionSerializableBase & FeeValues & { accessList?: AccessList; chainId: TIndex; yParity?: TIndex; }; export type TransactionSerializableSuave = TransactionSerializableEIP2930 & ConfidentialComputeRecordOverrides & ConfidentialComputeRequestOverrides & { type: TType; }; /** Required format for a serialized SUAVE transaction. * * By default, this type can be used to represent any serialized SUAVE transaction. * * To restrict the type to a specific SUAVE transaction type, use your specific type as * the generic TType argument, e.g. `TransactionSerializedSuave<'0x43'>`. */ export type TransactionSerializedSuave = `${TType}${string}`; //# sourceMappingURL=types.d.ts.map