import { calculateErc8042 } from '@tevm/voltaire/Storage';
import { keccak256 } from '@tevm/voltaire/crypto';
// Generate storage slots for facets
const facets = [
'OwnershipFacet',
'DiamondCutFacet',
'DiamondLoupeFacet',
'ERC20Facet',
'ERC721Facet'
];
const slots = facets.map(name => ({
name,
namespace: `diamond.${name.toLowerCase()}.storage`,
slot: calculateErc8042(keccak256, `diamond.${name.toLowerCase()}.storage`)
}));
slots.forEach(({ name, namespace, slot }) => {
console.log(`${name}:`);
console.log(` Namespace: ${namespace}`);
console.log(` Slot: 0x${Buffer.from(slot).toString('hex')}`);
});