SimulateTransactionRequest
public final class SimulateTransactionRequest : @unchecked Sendable
Request parameters for simulating a Soroban transaction.
SimulateTransactionRequest configures how a transaction should be simulated by the Soroban RPC server.
Parameters:
- transaction: The transaction to simulate (must contain InvokeHostFunction operation)
- resourceConfig: Optional resource budget configuration (default: 3000000 instruction leeway)
- authMode: Authorization simulation mode (protocol 23+)
Authorization modes (protocol 23+):
- “enforce”: Strict authorization checking (default)
- “record”: Record auth entries without enforcing
- “record_allow_nonroot”: Allow non-root authorization
Example:
let request = SimulateTransactionRequest(
transaction: transaction,
resourceConfig: ResourceConfig(instructionLeeway: 5000000)
)
let response = await server.simulateTransaction(simulateTxRequest: request)
See also:
- [SorobanServer.simulateTransaction] for running simulations
- [SimulateTransactionResponse] for simulation results
- [ResourceConfig] for resource configuration
-
Transaction to simulate (must contain InvokeHostFunction operation).
Declaration
Swift
public let transaction: Transaction -
Resource limits for simulation (instruction leeway, memory bounds).
Declaration
Swift
public let resourceConfig: ResourceConfig? -
Support for non-root authorization. Only available for protocol >= 23 Possible values: “enforce” | “record” | “record_allow_nonroot”
Declaration
Swift
public let authMode: String? -
Creates a request for simulating Soroban transaction execution.
Declaration
Swift
public init(transaction: Transaction, resourceConfig: ResourceConfig? = nil, authMode: String? = nil) -
Builds JSON-RPC request parameters from the simulation configuration.
Declaration
Swift
public func buildRequestParams() -> [String : Any]
View on GitHub
Install in Dash