UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

104 lines 4.9 kB
import { Mailbox } from '@hyperlane-xyz/core'; import { Address, Domain, EvmChainId, ProtocolType } from '@hyperlane-xyz/utils'; import { HyperlaneAddresses } from '../contracts/types.js'; import { CoreConfig, DeployedCoreAddresses, DerivedCoreConfig } from '../core/types.js'; import { ProxyFactoryFactories } from '../deploy/contracts.js'; import { ContractVerifier } from '../deploy/verify/ContractVerifier.js'; import { DerivedIsmConfig, IsmConfig } from '../ism/types.js'; import { MultiProvider } from '../providers/MultiProvider.js'; import { AnnotatedEV5Transaction } from '../providers/ProviderType.js'; import { ChainName, ChainNameOrId } from '../types.js'; import { HyperlaneModule, HyperlaneModuleParams } from './AbstractHyperlaneModule.js'; import { EvmCoreReader } from './EvmCoreReader.js'; import { EvmIcaModule } from './EvmIcaModule.js'; import { HyperlaneCoreDeployer } from './HyperlaneCoreDeployer.js'; export declare class EvmCoreModule extends HyperlaneModule<ProtocolType.Ethereum, CoreConfig, DeployedCoreAddresses> { protected readonly multiProvider: MultiProvider; protected logger: import("pino").default.Logger<never>; protected coreReader: EvmCoreReader; protected evmIcaModule?: EvmIcaModule; readonly chainName: ChainName; readonly chainId: EvmChainId; readonly domainId: Domain; constructor(multiProvider: MultiProvider, args: HyperlaneModuleParams<CoreConfig, DeployedCoreAddresses>); /** * Reads the core configuration from the mailbox address specified in the SDK arguments. * @returns The core config. */ read(): Promise<DerivedCoreConfig>; /** * Updates the core contracts with the provided configuration. * * @param expectedConfig - The configuration for the core contracts to be updated. * @returns An array of Ethereum transactions that were executed to update the contract. */ update(expectedConfig: CoreConfig): Promise<AnnotatedEV5Transaction[]>; /** * Create a transaction to update an existing ISM config, or deploy a new ISM and return a tx to setDefaultIsm * * @param actualConfig - The on-chain router configuration, including the ISM configuration, and address. * @param expectedConfig - The expected token router configuration, including the ISM configuration. * @returns Transaction that need to be executed to update the ISM configuration. */ createDefaultIsmUpdateTxs(actualConfig: DerivedCoreConfig, expectedConfig: CoreConfig): Promise<AnnotatedEV5Transaction[]>; /** * Updates or deploys the ISM using the provided configuration. * * @returns Object with deployedIsm address, and update Transactions */ deployOrUpdateIsm(actualDefaultIsmConfig: DerivedIsmConfig, expectDefaultIsmConfig: IsmConfig): Promise<{ deployedIsm: Address; ismUpdateTxs: AnnotatedEV5Transaction[]; }>; /** * Create a transaction to transfer ownership of an existing mailbox with a given config. * * @param actualConfig - The on-chain core configuration. * @param expectedConfig - The expected token core configuration. * @returns Ethereum transaction that need to be executed to update the owner. */ createMailboxOwnerUpdateTxs(actualConfig: DerivedCoreConfig, expectedConfig: CoreConfig): AnnotatedEV5Transaction[]; /** * Deploys the Core contracts. * @remark Most of the contract owners is the Deployer with some being the Proxy Admin. * @returns The created EvmCoreModule instance. */ static create(params: { chain: ChainNameOrId; config: CoreConfig; multiProvider: MultiProvider; contractVerifier?: ContractVerifier; }): Promise<EvmCoreModule>; /** * Deploys the core Hyperlane contracts. * @returns The deployed core contract addresses. */ static deploy(params: { config: CoreConfig; multiProvider: MultiProvider; chain: ChainNameOrId; contractVerifier?: ContractVerifier; }): Promise<DeployedCoreAddresses>; /** * Deploys the ISM factories for a given chain. * @returns The deployed ISM factories addresses. */ static deployIsmFactories(params: { chainName: string; config: CoreConfig; multiProvider: MultiProvider; contractVerifier?: ContractVerifier; }): Promise<HyperlaneAddresses<ProxyFactoryFactories>>; /** * Deploys a Mailbox and its default ISM, hook, and required hook contracts with a given configuration. * @returns The deployed Mailbox contract instance. */ static deployMailbox(params: { config: CoreConfig; proxyAdmin: Address; coreDeployer: HyperlaneCoreDeployer; multiProvider: MultiProvider; chain: ChainNameOrId; }): Promise<Mailbox>; } //# sourceMappingURL=EvmCoreModule.d.ts.map