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.
18 lines
895 B
18 lines
895 B
// Adapted from https://github.com/ethereum-optimism/optimism/blob/develop/packages/core-utils/src/optimism/deposit-transaction.ts#L117
|
|
import { concat } from '../../utils/data/concat.js';
|
|
import { pad } from '../../utils/data/pad.js';
|
|
import { toHex } from '../../utils/encoding/toHex.js';
|
|
import { keccak256, } from '../../utils/hash/keccak256.js';
|
|
const sourceHashDomainMap = {
|
|
userDeposit: 0,
|
|
l1InfoDeposit: 1,
|
|
};
|
|
export function getSourceHash({ domain, l1LogIndex, l1BlockHash, sequenceNumber, }) {
|
|
const marker = toHex(l1LogIndex ?? sequenceNumber);
|
|
const input = concat([l1BlockHash, pad(marker, { size: 32 })]);
|
|
const depositIdHash = keccak256(input);
|
|
const domainHex = toHex(sourceHashDomainMap[domain]);
|
|
const domainInput = concat([pad(domainHex, { size: 32 }), depositIdHash]);
|
|
return keccak256(domainInput);
|
|
}
|
|
//# sourceMappingURL=getSourceHash.js.map
|