v0.2.5-pre.009
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
// file: crates/ksp-onchain-transport-lib/src/rpc_transactions.rs
|
||||
// version: 8
|
||||
// version: 9
|
||||
|
||||
const MAX_RECENT_PRIORITIZATION_FEE_ACCOUNTS: usize = 128;
|
||||
const MAX_SIGNATURES_FOR_ADDRESS_LIMIT: usize = 1_000;
|
||||
const MAX_SIGNATURE_STATUSES: usize = 256;
|
||||
|
||||
/// Binary encoding accepted for serialized transaction input payloads.
|
||||
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
|
||||
@@ -1083,10 +1087,6 @@ impl SolanaSimulateTransactionResult {
|
||||
}
|
||||
}
|
||||
|
||||
const MAX_RECENT_PRIORITIZATION_FEE_ACCOUNTS: usize = 128;
|
||||
const MAX_SIGNATURES_FOR_ADDRESS_LIMIT: usize = 1_000;
|
||||
const MAX_SIGNATURE_STATUSES: usize = 256;
|
||||
|
||||
impl crate::HttpTransportPool {
|
||||
/// Executes typed `getFeeForMessage` through the common KSP HTTP transport path.
|
||||
pub async fn get_fee_for_message(
|
||||
@@ -1469,6 +1469,104 @@ impl crate::HttpTransportPool {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
struct WireTransactionRpcResponse {
|
||||
context: serde_json::Value,
|
||||
value: serde_json::Value,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct WireLatestBlockhash {
|
||||
blockhash: std::string::String,
|
||||
last_valid_block_height: u64,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct WirePrioritizationFee {
|
||||
slot: u64,
|
||||
prioritization_fee: u64,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct WireSignatureInfo {
|
||||
signature: std::string::String,
|
||||
slot: u64,
|
||||
#[serde(default)]
|
||||
err: std::option::Option<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
memo: std::option::Option<std::string::String>,
|
||||
#[serde(default)]
|
||||
block_time: std::option::Option<i64>,
|
||||
#[serde(default)]
|
||||
confirmation_status: std::option::Option<std::string::String>,
|
||||
#[serde(default)]
|
||||
transaction_index: std::option::Option<u32>,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct WireSignatureStatus {
|
||||
slot: u64,
|
||||
#[serde(default)]
|
||||
confirmations: std::option::Option<u64>,
|
||||
status: serde_json::Value,
|
||||
#[serde(default)]
|
||||
err: std::option::Option<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
confirmation_status: std::option::Option<std::string::String>,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct WireConfirmedTransaction {
|
||||
slot: u64,
|
||||
transaction: serde_json::Value,
|
||||
#[serde(default)]
|
||||
meta: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
block_time: std::option::Option<i64>,
|
||||
#[serde(default)]
|
||||
version: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
transaction_index: crate::SolanaWireField<u32>,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct WireSimulateTransactionResult {
|
||||
#[serde(default)]
|
||||
err: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
logs: crate::SolanaWireField<std::vec::Vec<std::string::String>>,
|
||||
#[serde(default)]
|
||||
accounts: crate::SolanaWireField<std::vec::Vec<std::option::Option<serde_json::Value>>>,
|
||||
#[serde(default)]
|
||||
units_consumed: crate::SolanaWireField<u64>,
|
||||
#[serde(default)]
|
||||
loaded_accounts_data_size: crate::SolanaWireField<u32>,
|
||||
#[serde(default)]
|
||||
return_data: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
inner_instructions: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
replacement_blockhash: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
fee: crate::SolanaWireField<u64>,
|
||||
#[serde(default)]
|
||||
pre_balances: crate::SolanaWireField<std::vec::Vec<u64>>,
|
||||
#[serde(default)]
|
||||
post_balances: crate::SolanaWireField<std::vec::Vec<u64>>,
|
||||
#[serde(default)]
|
||||
pre_token_balances: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
post_token_balances: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
loaded_addresses: crate::SolanaWireField<serde_json::Value>,
|
||||
}
|
||||
|
||||
fn push_transaction_context_config(params: &mut std::vec::Vec<serde_json::Value>, config: std::option::Option<&crate::SolanaContextConfig>) {
|
||||
if let std::option::Option::Some(config) = config
|
||||
&& (config.commitment().is_some() || config.min_context_slot().is_some())
|
||||
@@ -1584,12 +1682,6 @@ fn transaction_descriptor(method: &str) -> ksp_core_lib::Result<&'static crate::
|
||||
};
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
struct WireTransactionRpcResponse {
|
||||
context: serde_json::Value,
|
||||
value: serde_json::Value,
|
||||
}
|
||||
|
||||
fn invalid_transaction_wire(method: &str, field: &str, message: &'static str) -> ksp_core_lib::Error {
|
||||
return ksp_core_lib::Error::new(crate::ERROR_CODE_INVALID_RESPONSE, message).with_context("rpc_method", method).with_context("field", field);
|
||||
}
|
||||
@@ -1711,98 +1803,6 @@ fn decode_replacement_blockhash_field(
|
||||
};
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct WireLatestBlockhash {
|
||||
blockhash: std::string::String,
|
||||
last_valid_block_height: u64,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct WirePrioritizationFee {
|
||||
slot: u64,
|
||||
prioritization_fee: u64,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct WireSignatureInfo {
|
||||
signature: std::string::String,
|
||||
slot: u64,
|
||||
#[serde(default)]
|
||||
err: std::option::Option<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
memo: std::option::Option<std::string::String>,
|
||||
#[serde(default)]
|
||||
block_time: std::option::Option<i64>,
|
||||
#[serde(default)]
|
||||
confirmation_status: std::option::Option<std::string::String>,
|
||||
#[serde(default)]
|
||||
transaction_index: std::option::Option<u32>,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct WireSignatureStatus {
|
||||
slot: u64,
|
||||
#[serde(default)]
|
||||
confirmations: std::option::Option<u64>,
|
||||
status: serde_json::Value,
|
||||
#[serde(default)]
|
||||
err: std::option::Option<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
confirmation_status: std::option::Option<std::string::String>,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct WireConfirmedTransaction {
|
||||
slot: u64,
|
||||
transaction: serde_json::Value,
|
||||
#[serde(default)]
|
||||
meta: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
block_time: std::option::Option<i64>,
|
||||
#[serde(default)]
|
||||
version: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
transaction_index: crate::SolanaWireField<u32>,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct WireSimulateTransactionResult {
|
||||
#[serde(default)]
|
||||
err: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
logs: crate::SolanaWireField<std::vec::Vec<std::string::String>>,
|
||||
#[serde(default)]
|
||||
accounts: crate::SolanaWireField<std::vec::Vec<std::option::Option<serde_json::Value>>>,
|
||||
#[serde(default)]
|
||||
units_consumed: crate::SolanaWireField<u64>,
|
||||
#[serde(default)]
|
||||
loaded_accounts_data_size: crate::SolanaWireField<u32>,
|
||||
#[serde(default)]
|
||||
return_data: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
inner_instructions: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
replacement_blockhash: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
fee: crate::SolanaWireField<u64>,
|
||||
#[serde(default)]
|
||||
pre_balances: crate::SolanaWireField<std::vec::Vec<u64>>,
|
||||
#[serde(default)]
|
||||
post_balances: crate::SolanaWireField<std::vec::Vec<u64>>,
|
||||
#[serde(default)]
|
||||
pre_token_balances: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
post_token_balances: crate::SolanaWireField<serde_json::Value>,
|
||||
#[serde(default)]
|
||||
loaded_addresses: crate::SolanaWireField<serde_json::Value>,
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
#[path = "../unit_tests/rpc_transactions.rs"]
|
||||
mod tests;
|
||||
|
||||
Reference in New Issue
Block a user