function makeSigningRoot(
pubkey,
withdrawalCredentials,
amount
) {
const DomainType = {
DEPOSIT: 3,
};
const GENESIS_FORK_VERSION = '00000000'
const domainType = DomainType.DEPOSIT;
const ZERO_HASH = Buffer.alloc(32, 0);
const forkVersion = Buffer.from(GENESIS_FORK_VERSION, 'hex');
const genesisValidatorRoot = ZERO_HASH;
const forkData = {
currentVersion: forkVersion,
genesisValidatorsRoot: genesisValidatorRoot,
};
const forkDataRoot = mainnetTypes.ForkData.hashTreeRoot(forkData);
const domain = Buffer.concat([
lodestarUtils.intToBytes(domainType, 4),
Uint8Array.from(forkDataRoot.valueOf()).slice(0, 28),
]);
const depositData = {
pubkey,
withdrawalCredentials: withdrawalCredentials,
amount,
signature: Buffer.alloc(96),
};
return Buffer.from(
mainnetTypes.SigningData.hashTreeRoot({
objectRoot: mainnetTypes.DepositMessage.hashTreeRoot(depositData),
domain,
})
);
}