pub fn participate(
    ctx: Context<'_, '_, '_, '_, Participate<'_>>,
    args: ParticipateArgs
) -> Result<()>