pub async fn get_program(&self, vk_hash: B256) -> Result<Option<GetProgramResponse>> {
        self.with_retry(
            || async {
                let mut rpc = self.prover_network_client().await?;
                match rpc.get_program(GetProgramRequest { vk_hash: vk_hash.to_vec() }).await {
                    StdOk(response) => Ok(Some(response.into_inner())),
                    Err(status) if status.code() == Code::NotFound => Ok(None),
                    Err(e) => Err(e.into()),
                }
            },
            "getting program",
        )
        .await
    }
Attempts to get the program on the network.

# Details
Returns `None` if the program does not exist.
crates/sdk/src/network/client.rs