Level 1 - Personal Vault
Let's get ready to write your first own exploit. We've simplified the contract used in Level 0 a bit - there's no shared vault anymore, the contract only manages personal vaults. The functionality is still the same: after initializing your account, you can deposit and withdraw SOL from this account.
Each personal wallet account has an authority. This authority is stored in the account data struct:
#![allow(unused)] fn main() { pub struct Wallet { pub authority: Pubkey } }
Only the authority should be able to withdraw funds from a wallet. Can you break this?