UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

1,482 lines (1,481 loc) 88.9 kB
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 } export declare enum HookType { CUSTOM = "custom", MERKLE_TREE = "merkleTreeHook", INTERCHAIN_GAS_PAYMASTER = "interchainGasPaymaster", AGGREGATION = "aggregationHook", PROTOCOL_FEE = "protocolFee", OP_STACK = "opStackHook", ROUTING = "domainRoutingHook", FALLBACK_ROUTING = "fallbackRoutingHook", AMOUNT_ROUTING = "amountRoutingHook", PAUSABLE = "pausableHook", ARB_L2_TO_L1 = "arbL2ToL1Hook", MAILBOX_DEFAULT = "defaultHook", CCIP = "ccipHook" } export declare const HookTypeToContractNameMap: Record<Exclude<HookType, HookType.CUSTOM>, 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 CCIPHookConfig = z.infer<typeof CCIPHookSchema>; export type AggregationHookConfig = { type: HookType.AGGREGATION; hooks: Array<HookConfig>; }; export type RoutingHookConfig = OwnableConfig & { domains: ChainMap<HookConfig>; }; export type DomainRoutingHookConfig = RoutingHookConfig & { type: HookType.ROUTING; }; export type FallbackRoutingHookConfig = RoutingHookConfig & { type: HookType.FALLBACK_ROUTING; fallback: HookConfig; }; export type AmountRoutingHookConfig = { type: 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<HookType.PROTOCOL_FEE>; beneficiary: z.ZodString; maxProtocolFee: z.ZodString; protocolFee: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; }>; export declare const MerkleTreeSchema: z.ZodObject<{ type: z.ZodLiteral<HookType.MERKLE_TREE>; }, "strip", z.ZodTypeAny, { type: HookType.MERKLE_TREE; }, { type: HookType.MERKLE_TREE; }>; export declare const PausableHookSchema: z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; paused: z.ZodBoolean; type: z.ZodLiteral<HookType.PAUSABLE>; }, "strip", z.ZodTypeAny, { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; }>; export declare const MailboxDefaultHookSchema: z.ZodObject<{ type: z.ZodLiteral<HookType.MAILBOX_DEFAULT>; }, "strip", z.ZodTypeAny, { type: HookType.MAILBOX_DEFAULT; }, { type: HookType.MAILBOX_DEFAULT; }>; export declare const OpStackHookSchema: z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; type: z.ZodLiteral<HookType.OP_STACK>; nativeBridge: z.ZodString; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; }>; export declare const ArbL2ToL1HookSchema: z.ZodObject<{ type: z.ZodLiteral<HookType.ARB_L2_TO_L1>; arbSys: z.ZodString; bridge: z.ZodOptional<z.ZodString>; destinationChain: z.ZodString; childHook: z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>; }, "strip", z.ZodTypeAny, { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }, { type: HookType.ARB_L2_TO_L1; 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<HookType.INTERCHAIN_GAS_PAYMASTER>; 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; }>>; }, "strip", z.ZodTypeAny, { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; }, { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; }>; 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<HookType.CCIP>; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.CCIP; destinationChain: string; }, { type: HookType.CCIP; destinationChain: string; }>; 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<HookType.PROTOCOL_FEE>; beneficiary: z.ZodString; maxProtocolFee: z.ZodString; protocolFee: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.PROTOCOL_FEE; 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<HookType.PAUSABLE>; }, "strip", z.ZodTypeAny, { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.PAUSABLE; 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<HookType.OP_STACK>; nativeBridge: z.ZodString; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<HookType.MERKLE_TREE>; }, "strip", z.ZodTypeAny, { type: HookType.MERKLE_TREE; }, { type: HookType.MERKLE_TREE; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; type: z.ZodLiteral<HookType.INTERCHAIN_GAS_PAYMASTER>; 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; }>>; }, "strip", z.ZodTypeAny, { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; }, { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; }>, 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<HookType.ARB_L2_TO_L1>; arbSys: z.ZodString; bridge: z.ZodOptional<z.ZodString>; destinationChain: z.ZodString; childHook: z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>; }, "strip", z.ZodTypeAny, { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }, { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }>, z.ZodObject<{ type: z.ZodLiteral<HookType.MAILBOX_DEFAULT>; }, "strip", z.ZodTypeAny, { type: HookType.MAILBOX_DEFAULT; }, { type: HookType.MAILBOX_DEFAULT; }>, z.ZodObject<{ type: z.ZodLiteral<HookType.CCIP>; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.CCIP; destinationChain: string; }, { type: HookType.CCIP; destinationChain: string; }>]>; 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<HookType.PROTOCOL_FEE>; beneficiary: z.ZodString; maxProtocolFee: z.ZodString; protocolFee: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.PROTOCOL_FEE; 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<HookType.PAUSABLE>; }, "strip", z.ZodTypeAny, { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.PAUSABLE; 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<HookType.OP_STACK>; nativeBridge: z.ZodString; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<HookType.MERKLE_TREE>; }, "strip", z.ZodTypeAny, { type: HookType.MERKLE_TREE; }, { type: HookType.MERKLE_TREE; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; type: z.ZodLiteral<HookType.INTERCHAIN_GAS_PAYMASTER>; 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; }>>; }, "strip", z.ZodTypeAny, { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; }, { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; }>, 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<HookType.ARB_L2_TO_L1>; arbSys: z.ZodString; bridge: z.ZodOptional<z.ZodString>; destinationChain: z.ZodString; childHook: z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>; }, "strip", z.ZodTypeAny, { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }, { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }>, z.ZodObject<{ type: z.ZodLiteral<HookType.MAILBOX_DEFAULT>; }, "strip", z.ZodTypeAny, { type: HookType.MAILBOX_DEFAULT; }, { type: HookType.MAILBOX_DEFAULT; }>, z.ZodObject<{ type: z.ZodLiteral<HookType.CCIP>; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.CCIP; destinationChain: string; }, { type: HookType.CCIP; destinationChain: string; }>]>; required: z.ZodUnion<[z.ZodString, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; type: z.ZodLiteral<HookType.PROTOCOL_FEE>; beneficiary: z.ZodString; maxProtocolFee: z.ZodString; protocolFee: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.PROTOCOL_FEE; 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<HookType.PAUSABLE>; }, "strip", z.ZodTypeAny, { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.PAUSABLE; 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<HookType.OP_STACK>; nativeBridge: z.ZodString; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; }, { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<HookType.MERKLE_TREE>; }, "strip", z.ZodTypeAny, { type: HookType.MERKLE_TREE; }, { type: HookType.MERKLE_TREE; }>, z.ZodObject<{ owner: z.ZodString; ownerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; type: z.ZodLiteral<HookType.INTERCHAIN_GAS_PAYMASTER>; 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; }>>; }, "strip", z.ZodTypeAny, { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; }, { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; }>, 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<HookType.ARB_L2_TO_L1>; arbSys: z.ZodString; bridge: z.ZodOptional<z.ZodString>; destinationChain: z.ZodString; childHook: z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>; }, "strip", z.ZodTypeAny, { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }, { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }>, z.ZodObject<{ type: z.ZodLiteral<HookType.MAILBOX_DEFAULT>; }, "strip", z.ZodTypeAny, { type: HookType.MAILBOX_DEFAULT; }, { type: HookType.MAILBOX_DEFAULT; }>, z.ZodObject<{ type: z.ZodLiteral<HookType.CCIP>; destinationChain: z.ZodString; }, "strip", z.ZodTypeAny, { type: HookType.CCIP; destinationChain: string; }, { type: HookType.CCIP; destinationChain: string; }>]>; }, "strip", z.ZodTypeAny, { default: string | { type: HookType.MERKLE_TREE; } | { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; } | { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: HookType.MAILBOX_DEFAULT; } | { type: HookType.CCIP; destinationChain: string; } | AmountRoutingHookConfig | AggregationHookConfig | (string & { type: HookType.MERKLE_TREE; }) | (string & { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; }) | (string & { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; }) | (string & { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; }) | (string & { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; }) | (string & { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }) | (string & { type: HookType.MAILBOX_DEFAULT; }) | (string & { type: HookType.CCIP; destinationChain: string; }) | (string & { owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.ROUTING; }) | (string & { owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.FALLBACK_ROUTING; fallback: HookConfig; }) | (string & AmountRoutingHookConfig) | (string & AggregationHookConfig) | ({ type: HookType.MERKLE_TREE; } & string) | ({ type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; } & string) | ({ type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; } & string) | ({ type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; } & string) | ({ type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; } & string) | ({ type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } & string) | ({ type: HookType.MAILBOX_DEFAULT; } & string) | ({ type: HookType.CCIP; destinationChain: string; } & string) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.ROUTING; } & string) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.ROUTING; }) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.FALLBACK_ROUTING; fallback: HookConfig; } & string) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.FALLBACK_ROUTING; fallback: HookConfig; }) | (AmountRoutingHookConfig & string) | (AggregationHookConfig & string); required: string | { type: HookType.MERKLE_TREE; } | { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; } | { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: HookType.MAILBOX_DEFAULT; } | { type: HookType.CCIP; destinationChain: string; } | AmountRoutingHookConfig | AggregationHookConfig | (string & { type: HookType.MERKLE_TREE; }) | (string & { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; }) | (string & { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; }) | (string & { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; }) | (string & { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; }) | (string & { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }) | (string & { type: HookType.MAILBOX_DEFAULT; }) | (string & { type: HookType.CCIP; destinationChain: string; }) | (string & { owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.ROUTING; }) | (string & { owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.FALLBACK_ROUTING; fallback: HookConfig; }) | (string & AmountRoutingHookConfig) | (string & AggregationHookConfig) | ({ type: HookType.MERKLE_TREE; } & string) | ({ type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; } & string) | ({ type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; } & string) | ({ type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; } & string) | ({ type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; } & string) | ({ type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } & string) | ({ type: HookType.MAILBOX_DEFAULT; } & string) | ({ type: HookType.CCIP; destinationChain: string; } & string) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.ROUTING; } & string) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.ROUTING; }) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.FALLBACK_ROUTING; fallback: HookConfig; } & string) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.FALLBACK_ROUTING; fallback: HookConfig; }) | (AmountRoutingHookConfig & string) | (AggregationHookConfig & string); }, { default: string | { type: HookType.MERKLE_TREE; } | { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; } | { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: HookType.MAILBOX_DEFAULT; } | { type: HookType.CCIP; destinationChain: string; } | AmountRoutingHookConfig | AggregationHookConfig | (string & { owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.ROUTING; }) | (string & { owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.FALLBACK_ROUTING; fallback: HookConfig; }) | (string & AmountRoutingHookConfig) | (string & AggregationHookConfig) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.ROUTING; } & string) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.ROUTING; }) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.FALLBACK_ROUTING; fallback: HookConfig; } & string) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.FALLBACK_ROUTING; fallback: HookConfig; }) | (AmountRoutingHookConfig & string) | (AggregationHookConfig & string) | (string & { type: HookType.MERKLE_TREE; }) | (string & { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; }) | (string & { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; }) | (string & { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; }) | (string & { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; }) | (string & { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }) | (string & { type: HookType.MAILBOX_DEFAULT; }) | (string & { type: HookType.CCIP; destinationChain: string; }) | ({ type: HookType.MERKLE_TREE; } & string) | ({ type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; } & string) | ({ type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; } & string) | ({ type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; } & string) | ({ type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; } & string) | ({ type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } & string) | ({ type: HookType.MAILBOX_DEFAULT; } & string) | ({ type: HookType.CCIP; destinationChain: string; } & string); required: string | { type: HookType.MERKLE_TREE; } | { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; } | { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; } | { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; } | { type: HookType.MAILBOX_DEFAULT; } | { type: HookType.CCIP; destinationChain: string; } | AmountRoutingHookConfig | AggregationHookConfig | (string & { owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.ROUTING; }) | (string & { owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.FALLBACK_ROUTING; fallback: HookConfig; }) | (string & AmountRoutingHookConfig) | (string & AggregationHookConfig) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.ROUTING; } & string) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.ROUTING; }) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.FALLBACK_ROUTING; fallback: HookConfig; } & string) | ({ owner: string; ownerOverrides?: Record<string, string> | undefined; } & { domains: ChainMap<HookConfig>; } & { type: HookType.FALLBACK_ROUTING; fallback: HookConfig; }) | (AmountRoutingHookConfig & string) | (AggregationHookConfig & string) | (string & { type: HookType.MERKLE_TREE; }) | (string & { type: HookType.INTERCHAIN_GAS_PAYMASTER; 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; }) | (string & { type: HookType.PROTOCOL_FEE; owner: string; protocolFee: string; beneficiary: string; maxProtocolFee: string; ownerOverrides?: Record<string, string> | undefined; }) | (string & { type: HookType.PAUSABLE; owner: string; paused: boolean; ownerOverrides?: Record<string, string> | undefined; }) | (string & { type: HookType.OP_STACK; owner: string; nativeBridge: string; destinationChain: string; ownerOverrides?: Record<string, string> | undefined; }) | (string & { type: HookType.ARB_L2_TO_L1; destinationChain: string; arbSys: string; bridge?: string | undefined; childHook?: any; }) | (string & { type: HookType.MAILBOX_DEFAULT; }) | (string & { type: HookType.CCIP; destinationChain: string; }) | ({ type: HookType.MERKLE_TREE; } & string) | ({ type: HookType.INTERCHAIN_GAS_PAYMASTER; owner: string;