Inherits: ERC4626, Ownable
IUniswapV2Router02 uniswapRouter;Allocation[] public allocations;mapping(address => bool) public Allowlist;constructor(IERC20 asset, address _uniswapRouterAddress) ERC4626(asset);receive() external payable;function setAllocations(Allocation[] calldata newAllocations) external onlyOwner;function addToAllowlist(address token) external onlyOwner;function deposit(uint256 assets, address receiver) public override returns (uint256 shares);function purchaseTokens(uint256 amountETH) internal;https://github.com/leeftk/index-vault
function swapETHForTokens(address token, uint256 amountETH, uint256 amountOutMin) internal;struct Allocation {
address token;
uint256 percentage;
}