Uniswap Typescript SDK: how is the wrapping of eth happening?

I'm not sure if this is the right place to ask this question, I'm guessing there must be quite a few SDK users here.

So I'm using the typescript uniswap SDK to convert my Ethereum into another token. For this, I call the “swapExactETHForTokens” function in the uniswap contract. The function then basically converts WETH to another token. But I didn't have WETH, nor do I see any code in the contract function for such a conversion. Similarly, to convert another token back to ETH, I call the “swapExactTokensForETH” function which converts tokens to WETH, but when I check my metamask wallet, I see ETH.

How exactly is my ETH being converted to WETH and back?

Uniswap Typescript SDK: how is the wrapping of eth happening?