Deposit/Withdraw
function deposit(IGovPool govPool) external {
(, address govUserKeeperAddress, , , ) = govPool.getHelperContracts();
IGovUserKeeper govUserKeeper = IGovUserKeeper(govUserKeeperAddress);
IERC20(govUserKeeper.tokenAddress()).approve(govUserKeeperAddress, type(uint256).max);
IERC721(govUserKeeper.nftAddress()).setApprovalForAll(govUserKeeperAddress, true);
uint256 amount = 10 ether;
uint256[] memory nftIds = new uint256[](3);
nftIds[0] = 1;
nftIds[1] = 2;
nftIds[3] = 3;
govPool.deposit(amount, nftIds);
} function withdraw(IGovPool govPool) external {
(uint256 amount, uint256[] memory nftIds) = govPool.getWithdrawableAssets(address(this));
govPool.withdraw(address(this), amount, nftIds);
}