Hardening algorithmic stablecoins through security audits and stress-testing under shocks