EffePrivacy-preserving swap gating on Uniswap v4 using ZK group membership proofsethereum · foundry · solidity · typescript · uniswap-v4