How to Mitigate Contract Authorization Risks with ViaWallet