simulateTransaction method
Future<TransactionResponse>
simulateTransaction(
- Transaction transactionBlock, {
- TransactionIncludeOptions? include,
- bool? doGasSelection,
- bool? checksEnabled,
override
Simulates transactionBlock without signing; results surface via
effects, events, and command outputs.
Implementation
@override
Future<TransactionResponse> simulateTransaction(
Transaction transactionBlock, {
TransactionIncludeOptions? include,
bool? doGasSelection,
bool? checksEnabled,
}) async {
final txJson =
transactionBlock.toGrpcTransaction().toProto3Json()
as Map<String, dynamic>;
final data = await _client.executeData(
_simulateTransactionOperation,
generated.Variables$Query$SimulateTransaction(
tx: txJson,
checksEnabled: checksEnabled,
doGasSelection: doGasSelection,
),
);
final result = data.simulateTransaction;
final effects = result.effects;
return TransactionResponse(
digest: '',
status: ExecutionStatus(
success: effects?.status == schema.Enum$ExecutionStatus.SUCCESS,
),
events: effects?.events?.nodes.map(_mapSimEvent).toList(),
commandResults: result.outputs?.map(_mapSimCommand).toList(),
);
}