Bundle simulation by Jito
On our dedicated nodes we can offer Jito RPC support. This primarily gives access to the improved simulation support that Jito offers and allows you to simulate bundles of transactions. Triton One only offers the RPC node with the Jito client installed. It is up to our customers to get their IP whitelisted on Jito's Block Engine. sendBundle is a Jito exclusive RPC method and requires having a connection to the Jito Block Engine.
For more information, see Jito's searcher examples: https://github.com/jito-labs/searcher-examples/ For Jito's docs follow this link: https://docs.jito.wtf/en/latest/lowlatencytxnsend.html
simulateBundle
POST
https://xyz.mainnet.rpcpool.com/
Simulates a transaction bundle.
Request Body
transactions*
Vector
List of transactions to simulate.
config
Object
(optional) Object of type RpcSimulateBundleConfig, provide configuration for the transaction simulation. See description of this parameter below.
Returns a JSON RPC response corresponding to the following Rust struct:
pub struct RpcSimulateBundleResult {
pub summary: RpcBundleSimulationSummary,
pub transaction_results: Vec<RpcSimulateBundleTransactionResult>,
}
pub enum RpcBundleSimulationSummary {
/// error and offending transaction signature if applicable
Failed {
error: RpcBundleExecutionError,
tx_signature: Option<String>,
},
Succeeded,
}
pub enum RpcBundleExecutionError {
#[error("The bank has hit the max allotted time for processing transactions")]
BankProcessingTimeLimitReached,
#[error("Error locking bundle because a transaction is malformed")]
BundleLockError,
#[error("Bundle execution timed out")]
BundleExecutionTimeout,
#[error("The bundle exceeds the cost model")]
ExceedsCostModel,
#[error("Invalid pre or post accounts")]
InvalidPreOrPostAccounts,
#[error("PoH record error: {0}")]
PohRecordError(String),
#[error("Tip payment error: {0}")]
TipError(String),
#[error("A transaction in the bundle failed to execute: [signature={0}, error={1}]")]
TransactionFailure(Signature, String),
}
pub struct RpcSimulateBundleTransactionResult {
pub err: Option<TransactionError>,
pub logs: Option<Vec<String>>,
pub pre_execution_accounts: Option<Vec<UiAccount>>,
pub post_execution_accounts: Option<Vec<UiAccount>>,
pub units_consumed: Option<u64>,
pub return_data: Option<UiTransactionReturnData>,
}
Last updated
Was this helpful?