// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Unlicense use anyhow::Result; use detee_shared::app_proto::brain_app_cli_client::BrainAppCliClient; use detee_shared::app_proto::{AppResource, NewAppReq, NewAppRes}; use tonic::transport::Channel; use crate::common::test_utils::Key; pub async fn create_new_app( key: &Key, node_pubkey: &str, brain_channel: &Channel, ) -> Result { let new_app_req = NewAppReq { admin_pubkey: key.pubkey.clone(), node_pubkey: node_pubkey.to_string(), price_per_unit: 1200, resource: Some(AppResource { ports: vec![8080, 8081], ..Default::default() }), locked_nano: 100, ..Default::default() }; let mut client_app_cli = BrainAppCliClient::new(brain_channel.clone()); let new_app_resp = client_app_cli.new_app(key.sign_request(new_app_req.clone())?).await?.into_inner(); assert!(new_app_resp.error.is_empty()); assert!(new_app_resp.app_id.len() == 40); Ok(new_app_resp) }