directly use vout.Value instead of reconstructing Amount