UNPKG

@hyperlane-xyz/utils

Version:

General utilities and types for the Hyperlane network

24 lines 1 kB
import { utils } from 'ethers'; export function isValidSignature(signature) { return typeof signature === 'string' ? utils.isHexString(signature) : utils.isHexString(signature.r) && utils.isHexString(signature.s) && Number.isSafeInteger(signature.v); } export function isS3Checkpoint(obj) { return isValidSignature(obj.signature) && isCheckpoint(obj.value); } export function isS3CheckpointWithId(obj) { return (isValidSignature(obj.signature) && isCheckpoint(obj.value.checkpoint) && utils.isHexString(obj.value.message_id)); } export function isCheckpoint(obj) { const isValidRoot = utils.isHexString(obj.root); const isValidIndex = Number.isSafeInteger(obj.index); const isValidMailbox = utils.isHexString(obj.merkle_tree_hook_address); const isValidDomain = Number.isSafeInteger(obj.mailbox_domain); return isValidIndex && isValidRoot && isValidMailbox && isValidDomain; } //# sourceMappingURL=checkpoints.js.map