octra_sqlite/client/
raw.rs1#[cfg(all(feature = "cli", feature = "http"))]
2use super::write::prepare_write_with_owner_auth;
3#[cfg(feature = "http")]
4use super::{
5 error::Result,
6 results::AuthInfo,
7 rpc::{
8 auth_info_with, circle_info_with, next_nonce_with, program_info_with, query_typed_with,
9 view_with, wait_for_transaction_with,
10 },
11 safety::Operation,
12 transport::{HttpTransport, RpcTraceMode},
13 write::{prepare_write_with, sign_write, submit_signed_write_with},
14};
15
16pub use super::session::{
17 ClientOptions, Session, build_control_session, build_session, resolve_database_target,
18 resolve_wallet_path,
19};
20pub use super::wallet::{discover_wallet_path, wallet_caller};
21
22#[cfg(feature = "cli")]
23pub(crate) use super::wallet::{
24 WalletMaterial, wallet_file_material, wallet_material_from_private_key,
25};
26
27#[cfg(feature = "http")]
28use crate::protocol::tx::Tx;
29#[cfg(feature = "http")]
30use serde_json::Value;
31
32#[cfg(feature = "http")]
33pub fn view(session: &Session, method: &str, params: Vec<Value>) -> Result<Value> {
34 let transport = HttpTransport::default();
35 view_with(&transport, session, method, params)
36}
37
38#[cfg(feature = "http")]
39pub fn query_typed(session: &Session, sql: &str) -> Result<Value> {
40 let transport = HttpTransport::default();
41 query_typed_with(&transport, session, sql)
42}
43
44#[cfg(feature = "http")]
45pub fn query_typed_traced(
46 session: &Session,
47 sql: &str,
48 trace_path: &std::path::Path,
49 trace_mode: RpcTraceMode,
50) -> Result<Value> {
51 let transport = HttpTransport::with_trace_jsonl_mode(trace_path, trace_mode)?;
52 query_typed_with(&transport, session, sql)
53}
54
55#[cfg(feature = "http")]
56pub fn auth_info(session: &Session) -> Result<AuthInfo> {
57 let transport = HttpTransport::default();
58 auth_info_with(&transport, session)
59}
60
61#[cfg(feature = "http")]
62pub fn program_info(session: &Session) -> Result<Value> {
63 let transport = HttpTransport::default();
64 program_info_with(&transport, session)
65}
66
67#[cfg(feature = "http")]
68pub fn circle_info(session: &Session) -> Result<Value> {
69 let transport = HttpTransport::default();
70 circle_info_with(&transport, session)
71}
72
73#[cfg(feature = "http")]
74pub fn exec_sql(session: &Session, sql: &str, no_wait: bool) -> Result<Value> {
75 let transport = HttpTransport::default();
76 let operation = if no_wait {
77 Operation::ExecuteNoWait
78 } else {
79 Operation::Execute
80 };
81 let prepared = prepare_write_with(&transport, session, sql, operation)?;
82 let signed = sign_write(session, &prepared)?;
83 submit_signed_write_with(&transport, session, signed, no_wait)
84}
85
86#[cfg(all(feature = "cli", feature = "http"))]
87pub(crate) fn exec_sql_with_owner_auth(
88 session: &Session,
89 sql: &str,
90 db_id: &str,
91 owner_pubkey: &str,
92) -> Result<Value> {
93 let transport = HttpTransport::default();
94 let prepared = prepare_write_with_owner_auth(
95 &transport,
96 session,
97 sql,
98 Operation::Execute,
99 db_id,
100 owner_pubkey,
101 )?;
102 let signed = sign_write(session, &prepared)?;
103 submit_signed_write_with(&transport, session, signed, false)
104}
105
106#[cfg(feature = "http")]
107pub fn next_nonce(session: &Session) -> Result<i64> {
108 let transport = HttpTransport::default();
109 next_nonce_with(&transport, session)
110}
111
112#[cfg(feature = "http")]
113pub fn submit_tx(session: &Session, tx: Tx, no_wait: bool) -> Result<Value> {
114 let transport = HttpTransport::default();
115 super::write::sign_and_submit_tx_with(&transport, session, tx, no_wait)
116}
117
118#[cfg(feature = "http")]
119pub fn wait_for_transaction(session: &Session, tx_hash: &str) -> Result<Value> {
120 let transport = HttpTransport::default();
121 wait_for_transaction_with(&transport, session, tx_hash)
122}