UNPKG

@tatumio/transaction-simulator

Version:

Transaction Simulation Extension

32 lines 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.matchStorageSlotsToAddresses = void 0; const ethers_1 = require("ethers"); const matchStorageSlotsToAddresses = (addresses, storageAddresses) => { const matchedAddresses = {}; for (const address of addresses) { for (let position = 0; position <= 1000; position++) { const soliditySlot = getStorageSlotSolidity(address, position); const vyperSlot = getStorageSlotVyper(address, position); if (storageAddresses.includes(soliditySlot)) { matchedAddresses[address] = soliditySlot; break; } else if (storageAddresses.includes(vyperSlot)) { matchedAddresses[address] = vyperSlot; break; } } } return matchedAddresses; }; exports.matchStorageSlotsToAddresses = matchStorageSlotsToAddresses; const getStorageSlotSolidity = (address, position) => { const addressStripped = address.slice(2); return ethers_1.ethers.keccak256(ethers_1.AbiCoder.defaultAbiCoder().encode(['address', 'uint'], [addressStripped, position])); }; const getStorageSlotVyper = (address, position) => { const addressStripped = address.slice(2); return ethers_1.ethers.keccak256(ethers_1.AbiCoder.defaultAbiCoder().encode(['uint', 'address'], [position, addressStripped])); }; //# sourceMappingURL=utils.js.map