You'll learn how to use the Permit2 contract with the Uniswap Universal Router, through its function PERMIT2_PERMIT. The point is to be able to give a Permit allowance to swap/sell ERC-20 tokens.
Creating a swap transaction for the latest Uniswap router is not as straightforward as it used to be with the previous routers: you cannot just use the router ABI and invoke a swap function. This guide will teach you how to use Python to build the transaction input data you need to send to the Uniswap Universal Router (UR) in order to buy a token with ETH.
The open source library "uniswap-universal-router-decoder" allows you to easily decode and encode transaction data sent to the Uniswap Universal Router.
It supports the chaining of functions in the same transactions, for example wrapping ETH and using the WETH to buy tokens from a V2 and a V3 pool in the very same transaction.