1use std::net::SocketAddr;
5
6use jsonrpsee::proc_macros::rpc;
7use sui_sdk_types::Address;
8
9use crate::msgs::{
10 DevInspectArgs,
11 DevInspectResults,
12 DryRunTransactionBlockResponse,
13 ExecuteTransactionRequestType,
14 SuiTransactionBlockResponse,
15 SuiTransactionBlockResponseOptions,
16};
17use crate::serde::BigInt;
18
19#[rpc(client, namespace = "sui")]
20pub trait WriteApi {
21 #[method(name = "executeTransactionBlock")]
27 async fn execute_transaction_block(
28 &self,
29 tx_bytes: String,
30 signatures: Vec<String>,
31 options: Option<SuiTransactionBlockResponseOptions>,
32 request_type: Option<ExecuteTransactionRequestType>,
33 ) -> RpcResult<SuiTransactionBlockResponse>;
34
35 #[method(name = "monitoredExecuteTransactionBlock")]
36 async fn monitored_execute_transaction_block(
37 &self,
38 tx_bytes: String,
39 signatures: Vec<String>,
40 options: Option<SuiTransactionBlockResponseOptions>,
41 request_type: Option<ExecuteTransactionRequestType>,
42 client_addr: Option<SocketAddr>,
43 ) -> RpcResult<SuiTransactionBlockResponse>;
44
45 #[method(name = "devInspectTransactionBlock")]
49 async fn dev_inspect_transaction_block(
50 &self,
51 sender_address: Address,
52 tx_bytes: String,
53 gas_price: Option<BigInt<u64>>,
54 epoch: Option<BigInt<u64>>,
55 additional_args: Option<DevInspectArgs>,
56 ) -> RpcResult<DevInspectResults>;
57
58 #[method(name = "dryRunTransactionBlock")]
61 async fn dry_run_transaction_block(
62 &self,
63 tx_bytes: String,
64 ) -> RpcResult<DryRunTransactionBlockResponse>;
65}