ethers - ethers.utils.defaultAbiCoder - + we only need to encode one call, get - ethers.utils.keccak256 - + find a standalone implementation - ethers.utils.hexZeroPad - + just extract this function - ethers.BigNumber.from - + use native BigInteger - ethers.utils.Interface - + pretty sure lib.slot is deprecated now? ebnf - the parser for dpath should be trivial