Contract to skip "confirm" step on metamask. Allows for interactions that don't bother the user, if they're considered "safe" enough not to need authorization.
The contract lets you give another address permission to operate on your behalf (with different authorization level, 8 levels, up to 255 different combinations). This means the front-end can create a temporary account, and use it to operate on your behalf, after you sent it gas money and set the allowance to operate. In the simple front end, you have three buttons that ask for different authorization levels (level 1, 2, and both). You can give the front end an authorization level that is any combination of 3 levels: level 1: to press button 1, and button 3 if you also have level 2 level 2: to press button 2, and button 3 if you also have level 1 level 3: useless, to demonstrate that if you have a higher authorization you cannot do lower auth stuff (that is: level 3 is different from 1 and 2, not higher)
We didn't have much time to polish the front-end, so there's no loading bars and so on: a "Status: ..." log on the bottom explains what's happening behind the scenes.
We used remix for deployment, and svelte for the front-end. We used svelte-web3 and web3js, but the implementation is as basic as possible. It should show how easy and low-gas such implementation can be.
The frontend requires metamask or similar injected wallet.
Possible usecases could be in games, where user might not want to approve on walletconnect every time they do some operations which influence chain state.