An approximation to abi.encodeWithSignature is abi.encodePacked(bytes4(keccak256(signature)), abi.encode(parameters...))
You can save 0x3df02124 as byte4 variable in your contract and use an adaptation of the code above:
bytes4 functionSig = 0x3df02124
Uniswap protocol is developed in Solidity, and you can find two main building blocks:
uniswap-v2-core: Core smart contracts, essentially with the Factory, Pair and ERC20, together with a number of interfaces and libraries.
uniswap-v2-periphery: additional smart contracts to interact with the Core ones. They simplify the process of doing swaps or adding/...