icgeek_ic_call_api 0.2.0

Library for execute internet computer calls.
Documentation
use candid::{CandidType, Principal};
use serde::{Deserialize, Serialize};

#[derive(CandidType, Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub enum AgentRequest {
    Query(AgentQueryRequest),
    Call(AgentCallRequest),
}

#[derive(CandidType, Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub struct AgentQueryRequest {
    pub canister_id: Principal,
    pub request_sign: AgentRequestSign,
}

#[derive(CandidType, Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub struct AgentCallRequest {
    pub canister_id: Principal,
    pub request_id: AgentRequestId,
    pub request_sign: AgentRequestSign,
    pub read_state_request_sign: AgentRequestSign,
}

pub type AgentRequestId = Vec<u8>;
pub type AgentRequestSign = Vec<u8>;

#[derive(CandidType, Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub enum AgentCallResponse {
    Ok(AgentCallResponseData),
    Error(String),
}

pub type AgentCallResponseData = Vec<u8>;