@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
1,502 lines • 80.7 kB
TypeScript
import { z } from 'zod';
import { Address, WithAddress } from '@hyperlane-xyz/utils';
import { ChainMap, OwnableConfig } from '../types.js';
export declare enum OnchainHookType {
UNUSED = 0,
ROUTING = 1,
AGGREGATION = 2,
MERKLE_TREE = 3,
INTERCHAIN_GAS_PAYMASTER = 4,
FALLBACK_ROUTING = 5,
ID_AUTH_ISM = 6,
PAUSABLE = 7,
PROTOCOL_FEE = 8,
DEPRECATED = 9,
RATE_LIMITED = 10,
ARB_L2_TO_L1 = 11,
OP_L2_TO_L1 = 12,
MAILBOX_DEFAULT_HOOK = 13,
AMOUNT_ROUTING = 14,
CCTP = 15,
TIMELOCK_ROUTING = 16,
PREDICATE_ROUTER_WRAPPER = 17
}
export declare const HookType: {
/**
* Retained for backwards compatibility with pre-deployed hooks that don't fit
* a named type. Excluded from `DeployableHookType` — cannot be deployed via
* `HyperlaneHookDeployer`. New code should use a specific named hook type.
*/
readonly CUSTOM: "custom";
readonly MERKLE_TREE: "merkleTreeHook";
readonly INTERCHAIN_GAS_PAYMASTER: "interchainGasPaymaster";
readonly AGGREGATION: "aggregationHook";
readonly PROTOCOL_FEE: "protocolFee";
readonly OP_STACK: "opStackHook";
readonly ROUTING: "domainRoutingHook";
readonly FALLBACK_ROUTING: "fallbackRoutingHook";
readonly AMOUNT_ROUTING: "amountRoutingHook";
readonly PAUSABLE: "pausableHook";
readonly ARB_L2_TO_L1: "arbL2ToL1Hook";
readonly MAILBOX_DEFAULT: "defaultHook";
readonly CCIP: "ccipHook";
/**
* References a pre-deployed CCTP hook by address. Excluded from
* `DeployableHookType` — not deployed via `HyperlaneHookDeployer`; the
* `EvmHookModule.deploy` path just connects to `config.address`.
*/
readonly CCTP: "cctpHook";
/**
* Rate-limits outbound token volume on the origin chain at dispatch time.
* Warp-route only. Not valid for core required/default hooks.
*/
readonly RATE_LIMITED: "rateLimitedHook";
readonly UNKNOWN: "unknownHook";
readonly PREDICATE: "predicateHook";
};
export type HookType = (typeof HookType)[keyof typeof HookType];
export type DeployableHookType = Exclude<HookType, typeof HookType.CUSTOM | typeof HookType.PREDICATE | typeof HookType.UNKNOWN | typeof HookType.CCTP>;
export declare const HookTypeToContractNameMap: Record<DeployableHookType, string>;
export type MerkleTreeHookConfig = z.infer<typeof MerkleTreeSchema>;
export type IgpHookConfig = z.infer<typeof IgpSchema>;
export type ProtocolFeeHookConfig = z.infer<typeof ProtocolFeeSchema>;
export type PausableHookConfig = z.infer<typeof PausableHookSchema>;
export type OpStackHookConfig = z.infer<typeof OpStackHookSchema>;
export type ArbL2ToL1HookConfig = z.infer<typeof ArbL2ToL1HookSchema>;
export type MailboxDefaultHookConfig = z.infer<typeof MailboxDefaultHookSchema>;
export type RateLimitedHookConfig = z.infer<typeof RateLimitedHookSchema>;
export type CCIPHookConfig = z.infer<typeof CCIPHookSchema>;
export type AggregationHookConfig = {
type: typeof HookType.AGGREGATION;
hooks: Array<HookConfig>;
};
export type RoutingHookConfig = OwnableConfig & {
domains: ChainMap<HookConfig>;
};
export type DomainRoutingHookConfig = RoutingHookConfig & {
type: typeof HookType.ROUTING;
};
export type FallbackRoutingHookConfig = RoutingHookConfig & {
type: typeof HookType.FALLBACK_ROUTING;
fallback: HookConfig;
};
export type AmountRoutingHookConfig = {
type: typeof HookType.AMOUNT_ROUTING;
threshold: number;
lowerHook: HookConfig;
upperHook: HookConfig;
};
export type HookConfig = z.infer<typeof HookConfigSchema>;
export type DerivedHookConfig = WithAddress<Exclude<HookConfig, Address>>;
export declare const MUTABLE_HOOK_TYPE: HookType[];
export declare const ProtocolFeeSchema: z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"protocolFee">;
beneficiary: z.ZodString;
maxProtocolFee: z.ZodString;
protocolFee: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "protocolFee";
owner: string;
protocolFee: string;
beneficiary: string;
maxProtocolFee: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "protocolFee";
owner: string;
protocolFee: string;
beneficiary: string;
maxProtocolFee: string;
ownerOverrides?: Record<string, string> | undefined;
}>;
export declare const MerkleTreeSchema: z.ZodObject<{
type: z.ZodLiteral<"merkleTreeHook">;
}, "strip", z.ZodTypeAny, {
type: "merkleTreeHook";
}, {
type: "merkleTreeHook";
}>;
export declare const PredicateHookSchema: z.ZodObject<{
type: z.ZodLiteral<"predicateHook">;
address: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "predicateHook";
address: string;
}, {
type: "predicateHook";
address: string;
}>;
export type PredicateHookConfig = z.infer<typeof PredicateHookSchema>;
export declare const PausableHookSchema: z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
paused: z.ZodBoolean;
} & {
type: z.ZodLiteral<"pausableHook">;
}, "strip", z.ZodTypeAny, {
type: "pausableHook";
owner: string;
paused: boolean;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "pausableHook";
owner: string;
paused: boolean;
ownerOverrides?: Record<string, string> | undefined;
}>;
export declare const MailboxDefaultHookSchema: z.ZodObject<{
type: z.ZodLiteral<"defaultHook">;
}, "strip", z.ZodTypeAny, {
type: "defaultHook";
}, {
type: "defaultHook";
}>;
export declare const OpStackHookSchema: z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"opStackHook">;
nativeBridge: z.ZodString;
destinationChain: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "opStackHook";
owner: string;
nativeBridge: string;
destinationChain: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "opStackHook";
owner: string;
nativeBridge: string;
destinationChain: string;
ownerOverrides?: Record<string, string> | undefined;
}>;
export declare const ArbL2ToL1HookSchema: z.ZodObject<{
type: z.ZodLiteral<"arbL2ToL1Hook">;
arbSys: z.ZodString;
bridge: z.ZodOptional<z.ZodString>;
destinationChain: z.ZodString;
childHook: z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>;
}, "strip", z.ZodTypeAny, {
type: "arbL2ToL1Hook";
destinationChain: string;
arbSys: string;
bridge?: string | undefined;
childHook?: any;
}, {
type: "arbL2ToL1Hook";
destinationChain: string;
arbSys: string;
bridge?: string | undefined;
childHook?: any;
}>;
export declare const IgpSchema: z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"interchainGasPaymaster">;
beneficiary: z.ZodString;
oracleKey: z.ZodString;
overhead: z.ZodRecord<z.ZodString, z.ZodNumber>;
oracleConfig: z.ZodRecord<z.ZodString, z.ZodObject<{
gasPrice: z.ZodString;
tokenExchangeRate: z.ZodString;
} & {
tokenDecimals: z.ZodOptional<z.ZodNumber>;
} & {
typicalCost: z.ZodOptional<z.ZodObject<{
handleGasAmount: z.ZodNumber;
totalGasAmount: z.ZodNumber;
totalUsdCost: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
}, {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
}>>;
}, "strip", z.ZodTypeAny, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>>;
quoteSigners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
contractVersion: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: "interchainGasPaymaster";
owner: string;
beneficiary: string;
oracleKey: string;
overhead: Record<string, number>;
oracleConfig: Record<string, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>;
ownerOverrides?: Record<string, string> | undefined;
quoteSigners?: string[] | undefined;
contractVersion?: string | undefined;
}, {
type: "interchainGasPaymaster";
owner: string;
beneficiary: string;
oracleKey: string;
overhead: Record<string, number>;
oracleConfig: Record<string, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>;
ownerOverrides?: Record<string, string> | undefined;
quoteSigners?: string[] | undefined;
contractVersion?: string | undefined;
}>;
export declare const DomainRoutingHookConfigSchema: z.ZodSchema<DomainRoutingHookConfig>;
export declare const FallbackRoutingHookConfigSchema: z.ZodSchema<FallbackRoutingHookConfig>;
export declare const AmountRoutingHookConfigSchema: z.ZodSchema<AmountRoutingHookConfig>;
export declare const AggregationHookConfigSchema: z.ZodSchema<AggregationHookConfig>;
export declare const CCIPHookSchema: z.ZodObject<{
type: z.ZodLiteral<"ccipHook">;
destinationChain: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "ccipHook";
destinationChain: string;
}, {
type: "ccipHook";
destinationChain: string;
}>;
export declare const CctpHookSchema: z.ZodObject<{
type: z.ZodLiteral<"cctpHook">;
address: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "cctpHook";
address: string;
}, {
type: "cctpHook";
address: string;
}>;
export type CctpHookConfig = z.infer<typeof CctpHookSchema>;
export declare const UnknownHookSchema: z.ZodObject<{
type: z.ZodLiteral<"unknownHook">;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
type: z.ZodLiteral<"unknownHook">;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
type: z.ZodLiteral<"unknownHook">;
}, z.ZodTypeAny, "passthrough">>;
export type UnknownHookConfig = z.infer<typeof UnknownHookSchema>;
export declare const RateLimitedHookSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"rateLimitedHook">;
maxCapacity: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>;
/**
* Recursively normalizes unknown hook type values to HookType.UNKNOWN.
* Use this before parsing with HookConfigSchema when configs may contain
* hook types not yet known to this SDK version.
*
* Note: String address configs (e.g., "0x...") are passed through unchanged
* since they represent deployed hook addresses, not hook type configs.
*/
export declare function normalizeUnknownHookTypes<T>(config: T): T;
export declare const HookConfigSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"protocolFee">;
beneficiary: z.ZodString;
maxProtocolFee: z.ZodString;
protocolFee: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "protocolFee";
owner: string;
protocolFee: string;
beneficiary: string;
maxProtocolFee: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "protocolFee";
owner: string;
protocolFee: string;
beneficiary: string;
maxProtocolFee: string;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
paused: z.ZodBoolean;
} & {
type: z.ZodLiteral<"pausableHook">;
}, "strip", z.ZodTypeAny, {
type: "pausableHook";
owner: string;
paused: boolean;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "pausableHook";
owner: string;
paused: boolean;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"opStackHook">;
nativeBridge: z.ZodString;
destinationChain: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "opStackHook";
owner: string;
nativeBridge: string;
destinationChain: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "opStackHook";
owner: string;
nativeBridge: string;
destinationChain: string;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
type: z.ZodLiteral<"merkleTreeHook">;
}, "strip", z.ZodTypeAny, {
type: "merkleTreeHook";
}, {
type: "merkleTreeHook";
}>, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"interchainGasPaymaster">;
beneficiary: z.ZodString;
oracleKey: z.ZodString;
overhead: z.ZodRecord<z.ZodString, z.ZodNumber>;
oracleConfig: z.ZodRecord<z.ZodString, z.ZodObject<{
gasPrice: z.ZodString;
tokenExchangeRate: z.ZodString;
} & {
tokenDecimals: z.ZodOptional<z.ZodNumber>;
} & {
typicalCost: z.ZodOptional<z.ZodObject<{
handleGasAmount: z.ZodNumber;
totalGasAmount: z.ZodNumber;
totalUsdCost: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
}, {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
}>>;
}, "strip", z.ZodTypeAny, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>>;
quoteSigners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
contractVersion: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: "interchainGasPaymaster";
owner: string;
beneficiary: string;
oracleKey: string;
overhead: Record<string, number>;
oracleConfig: Record<string, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>;
ownerOverrides?: Record<string, string> | undefined;
quoteSigners?: string[] | undefined;
contractVersion?: string | undefined;
}, {
type: "interchainGasPaymaster";
owner: string;
beneficiary: string;
oracleKey: string;
overhead: Record<string, number>;
oracleConfig: Record<string, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>;
ownerOverrides?: Record<string, string> | undefined;
quoteSigners?: string[] | undefined;
contractVersion?: string | undefined;
}>, z.ZodType<DomainRoutingHookConfig, z.ZodTypeDef, DomainRoutingHookConfig>, z.ZodType<FallbackRoutingHookConfig, z.ZodTypeDef, FallbackRoutingHookConfig>, z.ZodType<AmountRoutingHookConfig, z.ZodTypeDef, AmountRoutingHookConfig>, z.ZodType<AggregationHookConfig, z.ZodTypeDef, AggregationHookConfig>, z.ZodObject<{
type: z.ZodLiteral<"arbL2ToL1Hook">;
arbSys: z.ZodString;
bridge: z.ZodOptional<z.ZodString>;
destinationChain: z.ZodString;
childHook: z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>;
}, "strip", z.ZodTypeAny, {
type: "arbL2ToL1Hook";
destinationChain: string;
arbSys: string;
bridge?: string | undefined;
childHook?: any;
}, {
type: "arbL2ToL1Hook";
destinationChain: string;
arbSys: string;
bridge?: string | undefined;
childHook?: any;
}>, z.ZodObject<{
type: z.ZodLiteral<"defaultHook">;
}, "strip", z.ZodTypeAny, {
type: "defaultHook";
}, {
type: "defaultHook";
}>, z.ZodObject<{
type: z.ZodLiteral<"ccipHook">;
destinationChain: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "ccipHook";
destinationChain: string;
}, {
type: "ccipHook";
destinationChain: string;
}>, z.ZodObject<{
type: z.ZodLiteral<"cctpHook">;
address: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "cctpHook";
address: string;
}, {
type: "cctpHook";
address: string;
}>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"rateLimitedHook">;
maxCapacity: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
type: z.ZodLiteral<"unknownHook">;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
type: z.ZodLiteral<"unknownHook">;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
type: z.ZodLiteral<"unknownHook">;
}, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
type: z.ZodLiteral<"predicateHook">;
address: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "predicateHook";
address: string;
}, {
type: "predicateHook";
address: string;
}>]>;
/**
* Forward-compatible hook config schema that normalizes unknown hook types.
* Use this instead of HookConfigSchema when parsing configs that may contain
* hook types added in newer registry versions.
*/
export declare const SafeParseHookConfigSchema: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"protocolFee">;
beneficiary: z.ZodString;
maxProtocolFee: z.ZodString;
protocolFee: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "protocolFee";
owner: string;
protocolFee: string;
beneficiary: string;
maxProtocolFee: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "protocolFee";
owner: string;
protocolFee: string;
beneficiary: string;
maxProtocolFee: string;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
paused: z.ZodBoolean;
} & {
type: z.ZodLiteral<"pausableHook">;
}, "strip", z.ZodTypeAny, {
type: "pausableHook";
owner: string;
paused: boolean;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "pausableHook";
owner: string;
paused: boolean;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"opStackHook">;
nativeBridge: z.ZodString;
destinationChain: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "opStackHook";
owner: string;
nativeBridge: string;
destinationChain: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "opStackHook";
owner: string;
nativeBridge: string;
destinationChain: string;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
type: z.ZodLiteral<"merkleTreeHook">;
}, "strip", z.ZodTypeAny, {
type: "merkleTreeHook";
}, {
type: "merkleTreeHook";
}>, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"interchainGasPaymaster">;
beneficiary: z.ZodString;
oracleKey: z.ZodString;
overhead: z.ZodRecord<z.ZodString, z.ZodNumber>;
oracleConfig: z.ZodRecord<z.ZodString, z.ZodObject<{
gasPrice: z.ZodString;
tokenExchangeRate: z.ZodString;
} & {
tokenDecimals: z.ZodOptional<z.ZodNumber>;
} & {
typicalCost: z.ZodOptional<z.ZodObject<{
handleGasAmount: z.ZodNumber;
totalGasAmount: z.ZodNumber;
totalUsdCost: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
}, {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
}>>;
}, "strip", z.ZodTypeAny, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>>;
quoteSigners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
contractVersion: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: "interchainGasPaymaster";
owner: string;
beneficiary: string;
oracleKey: string;
overhead: Record<string, number>;
oracleConfig: Record<string, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>;
ownerOverrides?: Record<string, string> | undefined;
quoteSigners?: string[] | undefined;
contractVersion?: string | undefined;
}, {
type: "interchainGasPaymaster";
owner: string;
beneficiary: string;
oracleKey: string;
overhead: Record<string, number>;
oracleConfig: Record<string, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>;
ownerOverrides?: Record<string, string> | undefined;
quoteSigners?: string[] | undefined;
contractVersion?: string | undefined;
}>, z.ZodType<DomainRoutingHookConfig, z.ZodTypeDef, DomainRoutingHookConfig>, z.ZodType<FallbackRoutingHookConfig, z.ZodTypeDef, FallbackRoutingHookConfig>, z.ZodType<AmountRoutingHookConfig, z.ZodTypeDef, AmountRoutingHookConfig>, z.ZodType<AggregationHookConfig, z.ZodTypeDef, AggregationHookConfig>, z.ZodObject<{
type: z.ZodLiteral<"arbL2ToL1Hook">;
arbSys: z.ZodString;
bridge: z.ZodOptional<z.ZodString>;
destinationChain: z.ZodString;
childHook: z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>;
}, "strip", z.ZodTypeAny, {
type: "arbL2ToL1Hook";
destinationChain: string;
arbSys: string;
bridge?: string | undefined;
childHook?: any;
}, {
type: "arbL2ToL1Hook";
destinationChain: string;
arbSys: string;
bridge?: string | undefined;
childHook?: any;
}>, z.ZodObject<{
type: z.ZodLiteral<"defaultHook">;
}, "strip", z.ZodTypeAny, {
type: "defaultHook";
}, {
type: "defaultHook";
}>, z.ZodObject<{
type: z.ZodLiteral<"ccipHook">;
destinationChain: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "ccipHook";
destinationChain: string;
}, {
type: "ccipHook";
destinationChain: string;
}>, z.ZodObject<{
type: z.ZodLiteral<"cctpHook">;
address: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "cctpHook";
address: string;
}, {
type: "cctpHook";
address: string;
}>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"rateLimitedHook">;
maxCapacity: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
type: z.ZodLiteral<"unknownHook">;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
type: z.ZodLiteral<"unknownHook">;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
type: z.ZodLiteral<"unknownHook">;
}, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
type: z.ZodLiteral<"predicateHook">;
address: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "predicateHook";
address: string;
}, {
type: "predicateHook";
address: string;
}>]>, string | {
type: "merkleTreeHook";
} | {
type: "interchainGasPaymaster";
owner: string;
beneficiary: string;
oracleKey: string;
overhead: Record<string, number>;
oracleConfig: Record<string, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>;
ownerOverrides?: Record<string, string> | undefined;
quoteSigners?: string[] | undefined;
contractVersion?: string | undefined;
} | {
type: "protocolFee";
owner: string;
protocolFee: string;
beneficiary: string;
maxProtocolFee: string;
ownerOverrides?: Record<string, string> | undefined;
} | {
type: "pausableHook";
owner: string;
paused: boolean;
ownerOverrides?: Record<string, string> | undefined;
} | {
type: "opStackHook";
owner: string;
nativeBridge: string;
destinationChain: string;
ownerOverrides?: Record<string, string> | undefined;
} | {
type: "arbL2ToL1Hook";
destinationChain: string;
arbSys: string;
bridge?: string | undefined;
childHook?: any;
} | {
type: "defaultHook";
} | {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
} | {
type: "ccipHook";
destinationChain: string;
} | DomainRoutingHookConfig | FallbackRoutingHookConfig | AmountRoutingHookConfig | AggregationHookConfig | {
type: "cctpHook";
address: string;
} | z.objectOutputType<{
type: z.ZodLiteral<"unknownHook">;
}, z.ZodTypeAny, "passthrough"> | {
type: "predicateHook";
address: string;
}, unknown>;
export declare const HooksConfigSchema: z.ZodObject<{
default: z.ZodUnion<[z.ZodString, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"protocolFee">;
beneficiary: z.ZodString;
maxProtocolFee: z.ZodString;
protocolFee: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "protocolFee";
owner: string;
protocolFee: string;
beneficiary: string;
maxProtocolFee: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "protocolFee";
owner: string;
protocolFee: string;
beneficiary: string;
maxProtocolFee: string;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
paused: z.ZodBoolean;
} & {
type: z.ZodLiteral<"pausableHook">;
}, "strip", z.ZodTypeAny, {
type: "pausableHook";
owner: string;
paused: boolean;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "pausableHook";
owner: string;
paused: boolean;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"opStackHook">;
nativeBridge: z.ZodString;
destinationChain: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "opStackHook";
owner: string;
nativeBridge: string;
destinationChain: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "opStackHook";
owner: string;
nativeBridge: string;
destinationChain: string;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
type: z.ZodLiteral<"merkleTreeHook">;
}, "strip", z.ZodTypeAny, {
type: "merkleTreeHook";
}, {
type: "merkleTreeHook";
}>, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"interchainGasPaymaster">;
beneficiary: z.ZodString;
oracleKey: z.ZodString;
overhead: z.ZodRecord<z.ZodString, z.ZodNumber>;
oracleConfig: z.ZodRecord<z.ZodString, z.ZodObject<{
gasPrice: z.ZodString;
tokenExchangeRate: z.ZodString;
} & {
tokenDecimals: z.ZodOptional<z.ZodNumber>;
} & {
typicalCost: z.ZodOptional<z.ZodObject<{
handleGasAmount: z.ZodNumber;
totalGasAmount: z.ZodNumber;
totalUsdCost: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
}, {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
}>>;
}, "strip", z.ZodTypeAny, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>>;
quoteSigners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
contractVersion: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: "interchainGasPaymaster";
owner: string;
beneficiary: string;
oracleKey: string;
overhead: Record<string, number>;
oracleConfig: Record<string, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>;
ownerOverrides?: Record<string, string> | undefined;
quoteSigners?: string[] | undefined;
contractVersion?: string | undefined;
}, {
type: "interchainGasPaymaster";
owner: string;
beneficiary: string;
oracleKey: string;
overhead: Record<string, number>;
oracleConfig: Record<string, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>;
ownerOverrides?: Record<string, string> | undefined;
quoteSigners?: string[] | undefined;
contractVersion?: string | undefined;
}>, z.ZodType<DomainRoutingHookConfig, z.ZodTypeDef, DomainRoutingHookConfig>, z.ZodType<FallbackRoutingHookConfig, z.ZodTypeDef, FallbackRoutingHookConfig>, z.ZodType<AmountRoutingHookConfig, z.ZodTypeDef, AmountRoutingHookConfig>, z.ZodType<AggregationHookConfig, z.ZodTypeDef, AggregationHookConfig>, z.ZodObject<{
type: z.ZodLiteral<"arbL2ToL1Hook">;
arbSys: z.ZodString;
bridge: z.ZodOptional<z.ZodString>;
destinationChain: z.ZodString;
childHook: z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>;
}, "strip", z.ZodTypeAny, {
type: "arbL2ToL1Hook";
destinationChain: string;
arbSys: string;
bridge?: string | undefined;
childHook?: any;
}, {
type: "arbL2ToL1Hook";
destinationChain: string;
arbSys: string;
bridge?: string | undefined;
childHook?: any;
}>, z.ZodObject<{
type: z.ZodLiteral<"defaultHook">;
}, "strip", z.ZodTypeAny, {
type: "defaultHook";
}, {
type: "defaultHook";
}>, z.ZodObject<{
type: z.ZodLiteral<"ccipHook">;
destinationChain: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "ccipHook";
destinationChain: string;
}, {
type: "ccipHook";
destinationChain: string;
}>, z.ZodObject<{
type: z.ZodLiteral<"cctpHook">;
address: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "cctpHook";
address: string;
}, {
type: "cctpHook";
address: string;
}>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"rateLimitedHook">;
maxCapacity: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
type: z.ZodLiteral<"unknownHook">;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
type: z.ZodLiteral<"unknownHook">;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
type: z.ZodLiteral<"unknownHook">;
}, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
type: z.ZodLiteral<"predicateHook">;
address: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "predicateHook";
address: string;
}, {
type: "predicateHook";
address: string;
}>]>;
required: z.ZodUnion<[z.ZodString, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"protocolFee">;
beneficiary: z.ZodString;
maxProtocolFee: z.ZodString;
protocolFee: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "protocolFee";
owner: string;
protocolFee: string;
beneficiary: string;
maxProtocolFee: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "protocolFee";
owner: string;
protocolFee: string;
beneficiary: string;
maxProtocolFee: string;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
paused: z.ZodBoolean;
} & {
type: z.ZodLiteral<"pausableHook">;
}, "strip", z.ZodTypeAny, {
type: "pausableHook";
owner: string;
paused: boolean;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "pausableHook";
owner: string;
paused: boolean;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"opStackHook">;
nativeBridge: z.ZodString;
destinationChain: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "opStackHook";
owner: string;
nativeBridge: string;
destinationChain: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "opStackHook";
owner: string;
nativeBridge: string;
destinationChain: string;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
type: z.ZodLiteral<"merkleTreeHook">;
}, "strip", z.ZodTypeAny, {
type: "merkleTreeHook";
}, {
type: "merkleTreeHook";
}>, z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"interchainGasPaymaster">;
beneficiary: z.ZodString;
oracleKey: z.ZodString;
overhead: z.ZodRecord<z.ZodString, z.ZodNumber>;
oracleConfig: z.ZodRecord<z.ZodString, z.ZodObject<{
gasPrice: z.ZodString;
tokenExchangeRate: z.ZodString;
} & {
tokenDecimals: z.ZodOptional<z.ZodNumber>;
} & {
typicalCost: z.ZodOptional<z.ZodObject<{
handleGasAmount: z.ZodNumber;
totalGasAmount: z.ZodNumber;
totalUsdCost: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
}, {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
}>>;
}, "strip", z.ZodTypeAny, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>>;
quoteSigners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
contractVersion: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: "interchainGasPaymaster";
owner: string;
beneficiary: string;
oracleKey: string;
overhead: Record<string, number>;
oracleConfig: Record<string, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>;
ownerOverrides?: Record<string, string> | undefined;
quoteSigners?: string[] | undefined;
contractVersion?: string | undefined;
}, {
type: "interchainGasPaymaster";
owner: string;
beneficiary: string;
oracleKey: string;
overhead: Record<string, number>;
oracleConfig: Record<string, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>;
ownerOverrides?: Record<string, string> | undefined;
quoteSigners?: string[] | undefined;
contractVersion?: string | undefined;
}>, z.ZodType<DomainRoutingHookConfig, z.ZodTypeDef, DomainRoutingHookConfig>, z.ZodType<FallbackRoutingHookConfig, z.ZodTypeDef, FallbackRoutingHookConfig>, z.ZodType<AmountRoutingHookConfig, z.ZodTypeDef, AmountRoutingHookConfig>, z.ZodType<AggregationHookConfig, z.ZodTypeDef, AggregationHookConfig>, z.ZodObject<{
type: z.ZodLiteral<"arbL2ToL1Hook">;
arbSys: z.ZodString;
bridge: z.ZodOptional<z.ZodString>;
destinationChain: z.ZodString;
childHook: z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>;
}, "strip", z.ZodTypeAny, {
type: "arbL2ToL1Hook";
destinationChain: string;
arbSys: string;
bridge?: string | undefined;
childHook?: any;
}, {
type: "arbL2ToL1Hook";
destinationChain: string;
arbSys: string;
bridge?: string | undefined;
childHook?: any;
}>, z.ZodObject<{
type: z.ZodLiteral<"defaultHook">;
}, "strip", z.ZodTypeAny, {
type: "defaultHook";
}, {
type: "defaultHook";
}>, z.ZodObject<{
type: z.ZodLiteral<"ccipHook">;
destinationChain: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "ccipHook";
destinationChain: string;
}, {
type: "ccipHook";
destinationChain: string;
}>, z.ZodObject<{
type: z.ZodLiteral<"cctpHook">;
address: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "cctpHook";
address: string;
}, {
type: "cctpHook";
address: string;
}>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
owner: z.ZodString;
ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
} & {
type: z.ZodLiteral<"rateLimitedHook">;
maxCapacity: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}, {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
}>, z.ZodObject<{
type: z.ZodLiteral<"unknownHook">;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
type: z.ZodLiteral<"unknownHook">;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
type: z.ZodLiteral<"unknownHook">;
}, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
type: z.ZodLiteral<"predicateHook">;
address: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "predicateHook";
address: string;
}, {
type: "predicateHook";
address: string;
}>]>;
}, "strip", z.ZodTypeAny, {
default: string | {
type: "merkleTreeHook";
} | {
type: "interchainGasPaymaster";
owner: string;
beneficiary: string;
oracleKey: string;
overhead: Record<string, number>;
oracleConfig: Record<string, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>;
ownerOverrides?: Record<string, string> | undefined;
quoteSigners?: string[] | undefined;
contractVersion?: string | undefined;
} | {
type: "protocolFee";
owner: string;
protocolFee: string;
beneficiary: string;
maxProtocolFee: string;
ownerOverrides?: Record<string, string> | undefined;
} | {
type: "pausableHook";
owner: string;
paused: boolean;
ownerOverrides?: Record<string, string> | undefined;
} | {
type: "opStackHook";
owner: string;
nativeBridge: string;
destinationChain: string;
ownerOverrides?: Record<string, string> | undefined;
} | {
type: "arbL2ToL1Hook";
destinationChain: string;
arbSys: string;
bridge?: string | undefined;
childHook?: any;
} | {
type: "defaultHook";
} | {
type: "rateLimitedHook";
owner: string;
maxCapacity: string;
ownerOverrides?: Record<string, string> | undefined;
} | {
type: "ccipHook";
destinationChain: string;
} | DomainRoutingHookConfig | FallbackRoutingHookConfig | AmountRoutingHookConfig | AggregationHookConfig | {
type: "cctpHook";
address: string;
} | z.objectOutputType<{
type: z.ZodLiteral<"unknownHook">;
}, z.ZodTypeAny, "passthrough"> | {
type: "predicateHook";
address: string;
};
required: string | {
type: "merkleTreeHook";
} | {
type: "interchainGasPaymaster";
owner: string;
beneficiary: string;
oracleKey: string;
overhead: Record<string, number>;
oracleConfig: Record<string, {
gasPrice: string;
tokenExchangeRate: string;
tokenDecimals?: number | undefined;
typicalCost?: {
handleGasAmount: number;
totalGasAmount: number;
totalUsdCost: number;
} | undefined;
}>;
ownerOverrides?: Record<string, string> | undefined;
quoteSigners?: string[] | undefined;
contractVersion?: string | undefined;
} | {
type: "protocolFee";
owner: string;
protocolFee: string;
beneficiary: string;
maxProtocolFee: string;
ownerOverrides?: Record<string, string> | undefined;
} | {
type: "pausableHoo