renegade_sdk/renegade_wallet_client/actions/
create_account.rs

1//! Create an account with the relayer
2
3use renegade_external_api::EmptyRequestResponse;
4use renegade_external_api::http::account::{CREATE_ACCOUNT_ROUTE, CreateAccountRequest};
5
6use crate::{
7    RenegadeClientError,
8    client::{AccountSecrets, RenegadeClient},
9};
10
11impl RenegadeClient {
12    /// Create an account with the relayer.
13    ///
14    /// This method will register the account credentials with the relayer,
15    /// but will not yet result in any state being committed onchain in the
16    /// darkpool.
17    pub async fn create_account(&self) -> Result<(), RenegadeClientError> {
18        let AccountSecrets { account_id, master_view_seed, auth_hmac_key, .. } = self.secrets;
19
20        let address = self.get_account_address();
21        let schnorr_public_key = self.get_schnorr_public_key();
22
23        let request = CreateAccountRequest {
24            account_id,
25            address,
26            master_view_seed,
27            auth_hmac_key: auth_hmac_key.into(),
28            schnorr_public_key,
29        };
30
31        self.relayer_client.post::<_, EmptyRequestResponse>(CREATE_ACCOUNT_ROUTE, request).await?;
32
33        Ok(())
34    }
35}