Module: Solana::Ruby::Kit::Rpc::Api::SimulateTransaction

Extended by:
T::Sig
Included in:
Client
Defined in:
lib/solana/ruby/kit/rpc/api/simulate_transaction.rb

Overview

Simulate a transaction without broadcasting it. Mirrors TypeScript’s SimulateTransactionApi.simulateTransaction. Returns an RpcContextualValue whose value is the simulation result hash.

Instance Method Summary collapse

Instance Method Details

#simulate_transaction(encoded_transaction, encoding: 'base64', commitment: nil, sig_verify: false, replace_recent_blockhash: false, accounts: nil) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/solana/ruby/kit/rpc/api/simulate_transaction.rb', line 23

def simulate_transaction(
  encoded_transaction,
  encoding:                 'base64',
  commitment:               nil,
  sig_verify:               false,
  replace_recent_blockhash: false,
  accounts:                 nil
)
  config = {
    'encoding'              => encoding,
    'sigVerify'             => sig_verify,
    'replaceRecentBlockhash' => replace_recent_blockhash
  }
  config['commitment'] = commitment.to_s if commitment
  config['accounts']   = accounts if accounts

  result = transport.request('simulateTransaction', [encoded_transaction, config])
  slot   = Kernel.Integer(result['context']['slot'])

  RpcTypes::RpcContextualValue.new(slot: slot, value: result['value'])
end