UNPKG

@hyperlane-xyz/utils

Version:

General utilities and types for the Hyperlane network

51 lines 2.37 kB
import { BigNumber } from 'ethers'; import { Address, Domain, HexString, ParsedMessage, ParsedWarpRouteMessage } from './types.js'; /** * JS Implementation of solidity/contracts/libs/Message.sol#formatMessage * @returns Hex string of the packed message */ export declare const formatMessage: (version: number | BigNumber, nonce: number | BigNumber, originDomain: Domain, senderAddr: Address, destinationDomain: Domain, recipientAddr: Address, body: HexString) => HexString; /** * Get ID given message bytes * @param message Hex string of the packed message (see formatMessage) * @returns Hex string of message id */ export declare function messageId(message: HexString): HexString; /** * Parse a serialized Hyperlane message from raw bytes. * * @param message * @returns */ export declare function parseMessage(message: string): ParsedMessage; export declare function parseWarpRouteMessage(messageBody: string): ParsedWarpRouteMessage; export type StandardHookMetadataParams = { refundAddress?: Address; msgValue?: bigint; gasLimit?: bigint; }; /** * JS Implementation of solidity/contracts/hooks/libs/StandardHookMetadata.sol#formatMetadata * @returns Hex string of the packed hook metadata */ export declare function formatStandardHookMetadata({ refundAddress, msgValue, gasLimit, }: StandardHookMetadataParams): HexString; /** * Parse StandardHookMetadata bytes into its components. * @returns Parsed metadata or null if invalid */ export declare function parseStandardHookMetadata(metadata?: HexString): Required<StandardHookMetadataParams> | null; export declare function extractRefundAddressFromMetadata(metadata?: HexString): Address | null; export declare function hasValidRefundAddress(metadata?: HexString): boolean; /** * Compute the synthetic message ID the scraper stores for a same-chain CCR swap. * * Format: `0x00000000 || keccak256("SameChainCCR" || txHash32 || logIndex8)[0..28]` * * The 4-byte zero prefix makes synthetic IDs immediately distinguishable from * real Hyperlane message IDs (which are uniform keccak256 outputs). * * @param txHash 32-byte transaction hash (0x-prefixed hex string) * @param logIndex log index of the ReceivedTransferRemote event */ export declare function syntheticCcrSwapMessageId(txHash: HexString, logIndex: bigint | number): HexString; //# sourceMappingURL=messages.d.ts.map