@hyperlane-xyz/utils
Version:
General utilities and types for the Hyperlane network
24 lines • 1 kB
JavaScript
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