@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
54 lines • 3.7 kB
TypeScript
import { TransactionReceipt } from '@ethersproject/providers';
import { ethers } from 'ethers';
import type { TransactionReceipt as ViemTxReceipt } from 'viem';
import { IMessageRecipient } from '@hyperlane-xyz/core';
import { Address, AddressBytes32 } from '@hyperlane-xyz/utils';
import { HyperlaneApp } from '../app/HyperlaneApp.js';
import { HyperlaneAddressesMap } from '../contracts/types.js';
import { DerivedHookConfig } from '../hook/types.js';
import { DerivedIsmConfig } from '../ism/types.js';
import { MultiProvider } from '../providers/MultiProvider.js';
import { RouterConfig } from '../router/types.js';
import { ChainMap, ChainName, OwnableConfig } from '../types.js';
import { CoreFactories } from './contracts.js';
import { DispatchEvent } from './events.js';
import { DispatchedMessage } from './types.js';
export declare class HyperlaneCore extends HyperlaneApp<CoreFactories> {
static fromAddressesMap(addressesMap: HyperlaneAddressesMap<any>, multiProvider: MultiProvider): HyperlaneCore;
getRouterConfig: (owners: Address | ChainMap<OwnableConfig>) => ChainMap<RouterConfig>;
quoteGasPayment: (origin: ChainName, destination: ChainName, recipient: AddressBytes32, body: string, metadata?: string, hook?: Address) => Promise<ethers.BigNumber>;
getDestination(message: DispatchedMessage): ChainName;
getOrigin(message: DispatchedMessage): ChainName;
getRecipientIsmAddress(message: DispatchedMessage): Promise<Address>;
getHookAddress(message: DispatchedMessage): Promise<Address>;
getRecipientIsmConfig(message: DispatchedMessage): Promise<DerivedIsmConfig>;
getHookConfig(message: DispatchedMessage): Promise<DerivedHookConfig>;
sendMessage(origin: ChainName, destination: ChainName, recipient: Address, body: string, hook?: Address, metadata?: string): Promise<{
dispatchTx: TransactionReceipt;
message: DispatchedMessage;
}>;
onDispatch(handler: (message: DispatchedMessage, event: DispatchEvent) => Promise<void>, chains?: string[]): {
removeHandler: (chains?: ChainName[]) => void;
};
getDefaults(): Promise<ChainMap<{
ism: Address;
hook: Address;
}>>;
getIsm(destinationChain: ChainName, recipientAddress: Address): Promise<Address>;
protected getRecipient(message: DispatchedMessage): IMessageRecipient;
estimateHandle(message: DispatchedMessage): Promise<string>;
deliver(message: DispatchedMessage, ismMetadata: string): Promise<ethers.ContractReceipt>;
getHook(originChain: ChainName, senderAddress: Address): Promise<Address>;
isDelivered(message: DispatchedMessage): Promise<boolean>;
getSenderHookAddress(message: DispatchedMessage): Promise<Address>;
getProcessedReceipt(message: DispatchedMessage): Promise<ethers.ContractReceipt>;
protected waitForProcessReceipt(message: DispatchedMessage): Promise<ethers.ContractReceipt>;
waitForMessageIdProcessed(messageId: string, destination: ChainName, delayMs?: number, maxAttempts?: number): Promise<true>;
waitForMessageProcessing(sourceTx: ethers.ContractReceipt | ViemTxReceipt): Promise<ethers.ContractReceipt[]>;
waitForMessageProcessed(sourceTx: ethers.ContractReceipt | ViemTxReceipt, delay?: number, maxAttempts?: number): Promise<void>;
getDispatchedMessages(sourceTx: TransactionReceipt | ViemTxReceipt): DispatchedMessage[];
getDispatchTx(originChain: ChainName, messageId: string, blockNumber?: number): Promise<TransactionReceipt>;
static parseDispatchedMessage(message: string): DispatchedMessage;
static getDispatchedMessages(sourceTx: TransactionReceipt | ViemTxReceipt): DispatchedMessage[];
}
//# sourceMappingURL=HyperlaneCore.d.ts.map