You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
1.0 KiB
20 lines
1.0 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.getSourceHash = getSourceHash;
|
|
const concat_js_1 = require("../../utils/data/concat.js");
|
|
const pad_js_1 = require("../../utils/data/pad.js");
|
|
const toHex_js_1 = require("../../utils/encoding/toHex.js");
|
|
const keccak256_js_1 = require("../../utils/hash/keccak256.js");
|
|
const sourceHashDomainMap = {
|
|
userDeposit: 0,
|
|
l1InfoDeposit: 1,
|
|
};
|
|
function getSourceHash({ domain, l1LogIndex, l1BlockHash, sequenceNumber, }) {
|
|
const marker = (0, toHex_js_1.toHex)(l1LogIndex ?? sequenceNumber);
|
|
const input = (0, concat_js_1.concat)([l1BlockHash, (0, pad_js_1.pad)(marker, { size: 32 })]);
|
|
const depositIdHash = (0, keccak256_js_1.keccak256)(input);
|
|
const domainHex = (0, toHex_js_1.toHex)(sourceHashDomainMap[domain]);
|
|
const domainInput = (0, concat_js_1.concat)([(0, pad_js_1.pad)(domainHex, { size: 32 }), depositIdHash]);
|
|
return (0, keccak256_js_1.keccak256)(domainInput);
|
|
}
|
|
//# sourceMappingURL=getSourceHash.js.map
|