Class: Solace::Message
- Inherits:
-
Object
- Object
- Solace::Message
- Includes:
- Concerns::BinarySerializable
- Defined in:
- lib/solace/message.rb
Overview
Solace::Message represents the message portion of a Solana transaction (legacy or versioned). It handles serialization and deserialization of message fields.
Constant Summary collapse
- SERIALIZER =
Solace::Serializers::MessageSerializer
- DESERIALIZER =
Solace::Serializers::MessageDeserializer
Instance Attribute Summary collapse
-
#accounts ⇒ Array<String>
Account public keys (base58).
-
#address_lookup_tables ⇒ Array<Solace::AddressLookupTable>
Address lookup tables (for versioned messages).
-
#DESERIALIZER ⇒ Solace::Serializers::MessageDeserializer
The deserializer for the message.
-
#header ⇒ Array<Integer>
Message header [num_required_signatures, num_readonly_signed, num_readonly_unsigned].
-
#instructions ⇒ Array<Solace::Instruction>
Instructions in the message.
-
#recent_blockhash ⇒ String
Recent blockhash (base58).
-
#SERIALIZER ⇒ Solace::Serializers::MessageSerializer
The serializer for the message.
-
#version ⇒ Integer?
Message version (nil for legacy).
Instance Method Summary collapse
-
#initialize(version: nil, accounts: [], instructions: [], recent_blockhash: nil, header: [0, 0, 0], address_lookup_tables: []) ⇒ Message
constructor
Initialize a new Message.
-
#num_readonly_signed_accounts ⇒ Integer
Returns the number of readonly signed accounts.
-
#num_readonly_unsigned_accounts ⇒ Integer
Returns the number of readonly unsigned accounts.
-
#num_required_signatures ⇒ Integer
Returns the number of required signatures.
-
#versioned? ⇒ Boolean
Check if the message is versioned.
Methods included from Concerns::BinarySerializable
included, #serialize, #to_binary, #to_bytes, #to_io
Constructor Details
#initialize(version: nil, accounts: [], instructions: [], recent_blockhash: nil, header: [0, 0, 0], address_lookup_tables: []) ⇒ Message
Initialize a new Message
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/solace/message.rb', line 61 def initialize( version: nil, accounts: [], instructions: [], recent_blockhash: nil, header: [0, 0, 0], address_lookup_tables: [] ) super() @version = version @header = header @accounts = accounts @recent_blockhash = recent_blockhash @instructions = instructions @address_lookup_tables = address_lookup_tables end |
Instance Attribute Details
#accounts ⇒ Array<String>
Returns Account public keys (base58).
39 40 41 |
# File 'lib/solace/message.rb', line 39 def accounts @accounts end |
#address_lookup_tables ⇒ Array<Solace::AddressLookupTable>
Returns Address lookup tables (for versioned messages).
51 52 53 |
# File 'lib/solace/message.rb', line 51 def address_lookup_tables @address_lookup_tables end |
#DESERIALIZER ⇒ Solace::Serializers::MessageDeserializer
Returns The deserializer for the message.
27 |
# File 'lib/solace/message.rb', line 27 DESERIALIZER = Solace::Serializers::MessageDeserializer |
#header ⇒ Array<Integer>
Returns Message header [num_required_signatures, num_readonly_signed, num_readonly_unsigned].
35 36 37 |
# File 'lib/solace/message.rb', line 35 def header @header end |
#instructions ⇒ Array<Solace::Instruction>
Returns Instructions in the message.
47 48 49 |
# File 'lib/solace/message.rb', line 47 def instructions @instructions end |
#recent_blockhash ⇒ String
Returns Recent blockhash (base58).
43 44 45 |
# File 'lib/solace/message.rb', line 43 def recent_blockhash @recent_blockhash end |
#SERIALIZER ⇒ Solace::Serializers::MessageSerializer
Returns The serializer for the message.
23 |
# File 'lib/solace/message.rb', line 23 SERIALIZER = Solace::Serializers::MessageSerializer |
#version ⇒ Integer?
Returns Message version (nil for legacy).
31 32 33 |
# File 'lib/solace/message.rb', line 31 def version @version end |
Instance Method Details
#num_readonly_signed_accounts ⇒ Integer
Returns the number of readonly signed accounts
96 97 98 |
# File 'lib/solace/message.rb', line 96 def num_readonly_signed_accounts header[1] end |
#num_readonly_unsigned_accounts ⇒ Integer
Returns the number of readonly unsigned accounts
103 104 105 |
# File 'lib/solace/message.rb', line 103 def num_readonly_unsigned_accounts header[2] end |
#num_required_signatures ⇒ Integer
Returns the number of required signatures
89 90 91 |
# File 'lib/solace/message.rb', line 89 def num_required_signatures header[0] end |
#versioned? ⇒ Boolean
Check if the message is versioned
82 83 84 |
# File 'lib/solace/message.rb', line 82 def versioned? !version.nil? end |