var COMMENT_HASH_TAG = '//HASH:'; var CollectionUtil = Packages.me.hatter.tools.commons.collection.CollectionUtil; var __containsCommentHashTag = (list) => { for (var i = (list.size() - 1); i >= 0; i--) { var l = list.get(i); if ($STR(l.trim()) != '') { return l.startsWith(COMMENT_HASH_TAG); } } return false; }; var __getDigestJSON = (list) => { var digestJSON = null; if (__containsCommentHashTag(list)) { var last = CollectionUtil.last(list); while ((list.size() > 0) && ($STR(last.trim()) == '')) { CollectionUtil.removeLast(list); last = CollectionUtil.last(list); } if (last.startsWith(COMMENT_HASH_TAG)) { CollectionUtil.removeLast(list); digestJSON = JSON.parse(last.substring(COMMENT_HASH_TAG.length)); } } return digestJSON; }; var __calcSHA256Hex = (list) => { return $STR($$.digests().sha256().digest($$.bytes($ARR(list).join('\n'))).asHex()); }; var __checkSHA256 = (list) => { var digestJSON = __getDigestJSON(list); return digestJSON && (digestJSON.SHA256 == __calcSHA256Hex(list)); }; var checkBytesSHA256 = (bytes) => { return __checkSHA256(bytes.list()); }; if (typeof exports == 'object') { exports.__containsCommentHashTag = __containsCommentHashTag; exports.__getDigestJSON = __getDigestJSON; exports.__calcSHA256Hex = __calcSHA256Hex; exports.__checkSHA256 = __checkSHA256; exports.COMMENT_HASH_TAG = COMMENT_HASH_TAG; exports.checkBytesSHA256 = checkBytesSHA256; }