use std::collections::BTreeMap;
use crate::{
keymanager::SignedPublicKey,
types::transaction::{CallResult, CallerAddress, Transaction},
};
pub const VERSION_GLOBAL_KEY: &str = "";
#[derive(Clone, Debug, Default, cbor::Encode, cbor::Decode)]
pub struct Metadata {
pub versions: BTreeMap<String, u32>,
}
#[derive(Clone, Debug, cbor::Encode, cbor::Decode)]
#[cbor(no_default)]
pub struct EstimateGasQuery {
#[cbor(optional)]
pub caller: Option<CallerAddress>,
pub tx: Transaction,
#[cbor(optional)]
pub propagate_failures: bool,
}
#[derive(Clone, Debug, Default, cbor::Encode, cbor::Decode)]
pub struct CallDataPublicKeyQueryResponse {
pub public_key: SignedPublicKey,
pub epoch: u64,
}
#[derive(Debug, Copy, Clone, cbor::Encode, cbor::Decode)]
#[cfg_attr(test, derive(PartialEq, Eq))]
pub enum MethodHandlerKind {
#[cbor(rename = "call")]
Call,
#[cbor(rename = "query")]
Query,
#[cbor(rename = "message_result")]
MessageResult,
}
#[derive(Debug, Clone, cbor::Encode, cbor::Decode)]
#[cfg_attr(test, derive(PartialEq, Eq))]
#[cbor(no_default)]
pub struct MethodHandlerInfo {
pub kind: MethodHandlerKind,
pub name: String,
}
#[derive(Clone, Debug, cbor::Encode, cbor::Decode)]
#[cfg_attr(test, derive(PartialEq, Eq))]
#[cbor(no_default)]
pub struct ModuleInfo {
pub version: u32,
pub params: cbor::Value,
pub methods: Vec<MethodHandlerInfo>,
}
#[derive(Clone, Debug, cbor::Encode, cbor::Decode)]
#[cfg_attr(test, derive(PartialEq, Eq))]
#[cbor(no_default)]
pub struct RuntimeInfoResponse {
pub runtime_version: oasis_core_runtime::common::version::Version,
pub state_version: u32,
pub modules: BTreeMap<String, ModuleInfo>,
}
#[derive(Clone, Debug, Default, cbor::Encode, cbor::Decode)]
pub struct ExecuteReadOnlyTxQuery {
pub tx: Vec<u8>,
}
#[derive(Clone, Debug, Default, cbor::Encode, cbor::Decode)]
pub struct ExecuteReadOnlyTxResponse {
pub result: CallResult,
}