Module: Solana::Ruby::Kit::Instructions
- Extended by:
- T::Sig
- Defined in:
- lib/solana/ruby/kit/instructions/roles.rb,
lib/solana/ruby/kit/instructions/accounts.rb,
lib/solana/ruby/kit/instructions/instruction.rb
Defined Under Namespace
Modules: AccountRole
Classes: AccountLookupMeta, AccountMeta, Instruction
Class Method Summary
collapse
Class Method Details
.assert_instruction_for_program!(instruction, program_address) ⇒ Object
33
34
35
36
37
38
39
40
41
|
# File 'lib/solana/ruby/kit/instructions/instruction.rb', line 33
def assert_instruction_for_program!(instruction, program_address)
return if instruction_for_program?(instruction, program_address)
Kernel.raise SolanaError.new(
:SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS,
expected_program_address: program_address.value,
actual_program_address: instruction.program_address.value
)
end
|
.assert_instruction_with_accounts!(instruction) ⇒ Object
53
54
55
|
# File 'lib/solana/ruby/kit/instructions/instruction.rb', line 53
def assert_instruction_with_accounts!(instruction)
Kernel.raise SolanaError.new(:SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS) unless instruction_with_accounts?(instruction)
end
|
.assert_instruction_with_data!(instruction) ⇒ Object
67
68
69
|
# File 'lib/solana/ruby/kit/instructions/instruction.rb', line 67
def assert_instruction_with_data!(instruction)
Kernel.raise SolanaError.new(:SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA) unless instruction_with_data?(instruction)
end
|
.instruction_for_program?(instruction, program_address) ⇒ Boolean
26
27
28
|
# File 'lib/solana/ruby/kit/instructions/instruction.rb', line 26
def instruction_for_program?(instruction, program_address)
instruction.program_address == program_address
end
|
.instruction_with_accounts?(instruction) ⇒ Boolean
46
47
48
|
# File 'lib/solana/ruby/kit/instructions/instruction.rb', line 46
def instruction_with_accounts?(instruction)
!instruction.accounts.nil? && !T.must(instruction.accounts).empty?
end
|
.instruction_with_data?(instruction) ⇒ Boolean
60
61
62
|
# File 'lib/solana/ruby/kit/instructions/instruction.rb', line 60
def instruction_with_data?(instruction)
!instruction.data.nil?
end
|
.readonly_account(address) ⇒ Object
26
27
28
|
# File 'lib/solana/ruby/kit/instructions/accounts.rb', line 26
def readonly_account(address)
AccountMeta.new(address: address, role: AccountRole::READONLY)
end
|
.readonly_lookup_account(address, lookup_table_address:, address_index:) ⇒ Object
61
62
63
64
65
66
67
68
|
# File 'lib/solana/ruby/kit/instructions/accounts.rb', line 61
def readonly_lookup_account(address, lookup_table_address:, address_index:)
AccountLookupMeta.new(
address: address,
address_index: address_index,
lookup_table_address: lookup_table_address,
role: AccountRole::READONLY
)
end
|
.readonly_signer_account(address) ⇒ Object
38
39
40
|
# File 'lib/solana/ruby/kit/instructions/accounts.rb', line 38
def readonly_signer_account(address)
AccountMeta.new(address: address, role: AccountRole::READONLY_SIGNER)
end
|
.writable_account(address) ⇒ Object
32
33
34
|
# File 'lib/solana/ruby/kit/instructions/accounts.rb', line 32
def writable_account(address)
AccountMeta.new(address: address, role: AccountRole::WRITABLE)
end
|
.writable_lookup_account(address, lookup_table_address:, address_index:) ⇒ Object
71
72
73
74
75
76
77
78
|
# File 'lib/solana/ruby/kit/instructions/accounts.rb', line 71
def writable_lookup_account(address, lookup_table_address:, address_index:)
AccountLookupMeta.new(
address: address,
address_index: address_index,
lookup_table_address: lookup_table_address,
role: AccountRole::WRITABLE
)
end
|
.writable_signer_account(address) ⇒ Object
44
45
46
|
# File 'lib/solana/ruby/kit/instructions/accounts.rb', line 44
def writable_signer_account(address)
AccountMeta.new(address: address, role: AccountRole::WRITABLE_SIGNER)
end
|