pub async fn start(
    context: Arc<ClientContext>,
    params: ParamsOfStart,
    callbacks: impl BrowserCallbacks + Send + Sync + 'static,
) -> ClientResult<RegisteredDebot> {
    let mut dengine = DEngine::new_with_client(
        params.address,
        None,
        context.clone(),
        Arc::new(callbacks),
    );
    dengine
        .start()
        .await
        .map_err(Error::start_failed)?;

    let handle = context.get_next_id();
    context.debots.insert(handle, Mutex::new(dengine));

    Ok(RegisteredDebot {
        debot_handle: DebotHandle(handle),
    })
}
/// [UNSTABLE](UNSTABLE.md) Starts an instance of debot.
/// 
/// Downloads debot smart contract from blockchain and switches it to
/// context zero.
/// Returns a debot handle which can be used later in `execute` function.
/// This function must be used by Debot Browser to start a dialog with debot.
/// While the function is executing, several Browser Callbacks can be called,
/// since the debot tries to display all actions from the context 0 to the user.
/// 
/// # Remarks
/// `start` is equivalent to `fetch` + switch to context 0.

[UNSTABLE](UNSTABLE.md) Starts an instance of debot.
Downloads debot smart contract from blockchain and switches it to
context zero.
Returns a debot handle which can be used later in `execute` function.
This function must be used by Debot Browser to start a dialog with debot.
While the function is executing, several Browser Callbacks can be called,
since the debot tries to display all actions from the context 0 to the user.
[ UNSTABLE ] ( UNSTABLE . md ) Starts an instance of debot . Downloads debot smart contract from blockchain and switches it to context zero . Returns a debot handle which can be used later in ` execute ` function . This function must be used by Debot Browser to start a dialog with debot . While the function is executing several Browser Callbacks can be called since the debot tries to display all actions from the context 0 to the user .
pub async fn start(
    context: Arc<ClientContext>,
    params: ParamsOfStart,
    callbacks: impl BrowserCallbacks + Send + Sync + 'static,
) -> ClientResult<RegisteredDebot> {
    let mut dengine = DEngine::new_with_client(
        params.address,
        None,
        context.clone(),
        Arc::new(callbacks),
    );
    dengine
        .start()
        .await
        .map_err(Error::start_failed)?;
    let handle = context.get_next_id();
    context.debots.insert(handle, Mutex::new(dengine));
    Ok(RegisteredDebot {
        debot_handle: DebotHandle(handle),
    })
}
pub async fn start ( context : Arc < ClientContext > , params : ParamsOfStart , callbacks : impl BrowserCallbacks + Send + Sync + ' static , ) -> ClientResult < RegisteredDebot > { let mut dengine = DEngine :: new_with_client ( params . address , None , context . clone ( ) , Arc :: new ( callbacks ) , ) ; dengine . start ( ) . await . map_err ( Error :: start_failed ) ? ; let handle = context . get_next_id ( ) ; context . debots . insert ( handle , Mutex :: new ( dengine ) ) ; Ok ( RegisteredDebot { debot_handle : DebotHandle ( handle ) , } ) }
[UNSTABLE](UNSTABLE.md) Starts an instance of debot.
[ UNSTABLE ] ( UNSTABLE . md ) Starts an instance of debot .
context
Arc<ClientContext>
params
ParamsOfStart
callbacks
impl BrowserCallbacks + Send + Sync + 'static
remarks

`start` is equivalent to `fetch` + switch to context 0.
` start ` is equivalent to ` fetch ` + switch to context 0 .