sui-rpc 0.3.0

RPC interface definitions and client for the Sui Sdk
Documentation
use sui_sdk_types::Address;
use sui_sdk_types::Digest;

use super::*;

impl GetObjectRequest {
    pub fn new(object_id: &Address) -> Self {
        Self {
            object_id: Some(object_id.to_string()),
            version: None,
            read_mask: None,
        }
    }
}

impl GetObjectResponse {
    pub fn new(object: Object) -> Self {
        Self {
            object: Some(object),
        }
    }
}

impl BatchGetObjectsResponse {
    pub fn new(objects: Vec<GetObjectResult>) -> Self {
        Self { objects }
    }
}

impl GetObjectResult {
    pub fn new_object(object: Object) -> Self {
        Self {
            result: Some(get_object_result::Result::Object(object)),
        }
    }

    pub fn new_error(error: crate::proto::google::rpc::Status) -> Self {
        Self {
            result: Some(get_object_result::Result::Error(error)),
        }
    }

    pub fn to_result(self) -> Result<Object, crate::proto::google::rpc::Status> {
        match self.result {
            Some(get_object_result::Result::Object(object)) => Ok(object),
            Some(get_object_result::Result::Error(error)) => Err(error),
            None => Err(crate::proto::google::rpc::Status {
                code: tonic::Code::NotFound.into(),
                ..Default::default()
            }),
        }
    }
}

impl GetTransactionRequest {
    pub fn new(digest: &Digest) -> Self {
        Self {
            digest: Some(digest.to_string()),
            read_mask: None,
        }
    }
}

impl GetTransactionResponse {
    pub fn new(transaction: ExecutedTransaction) -> Self {
        Self {
            transaction: Some(transaction),
        }
    }
}

impl BatchGetTransactionsResponse {
    pub fn new(transactions: Vec<GetTransactionResult>) -> Self {
        Self { transactions }
    }
}

impl GetTransactionResult {
    pub fn new_transaction(transaction: ExecutedTransaction) -> Self {
        Self {
            result: Some(get_transaction_result::Result::Transaction(transaction)),
        }
    }

    pub fn new_error(error: crate::proto::google::rpc::Status) -> Self {
        Self {
            result: Some(get_transaction_result::Result::Error(error)),
        }
    }

    pub fn to_result(self) -> Result<ExecutedTransaction, crate::proto::google::rpc::Status> {
        match self.result {
            Some(get_transaction_result::Result::Transaction(transaction)) => Ok(transaction),
            Some(get_transaction_result::Result::Error(error)) => Err(error),
            None => Err(crate::proto::google::rpc::Status {
                code: tonic::Code::NotFound.into(),
                ..Default::default()
            }),
        }
    }
}

impl GetCheckpointRequest {
    pub fn latest() -> Self {
        Self {
            read_mask: None,
            checkpoint_id: None,
        }
    }

    pub fn by_sequence_number(checkpoint: u64) -> Self {
        Self {
            read_mask: None,
            checkpoint_id: Some(get_checkpoint_request::CheckpointId::SequenceNumber(
                checkpoint,
            )),
        }
    }

    pub fn by_digest(digest: &Digest) -> Self {
        Self {
            read_mask: None,
            checkpoint_id: Some(get_checkpoint_request::CheckpointId::Digest(
                digest.to_string(),
            )),
        }
    }
}

impl GetCheckpointResponse {
    pub fn new(checkpoint: Checkpoint) -> Self {
        Self {
            checkpoint: Some(checkpoint),
        }
    }
}

impl GetEpochRequest {
    pub fn latest() -> Self {
        Self {
            epoch: None,
            read_mask: None,
        }
    }

    pub fn new(epoch: u64) -> Self {
        Self {
            epoch: Some(epoch),
            read_mask: None,
        }
    }
}

impl GetEpochResponse {
    pub fn new(epoch: Epoch) -> Self {
        Self { epoch: Some(epoch) }
    }
}