solana-ruby-kit 8.2.0 → 8.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +164 -12
- data/lib/solana/ruby/kit/accounts/maybe_account.rb +1 -1
- data/lib/solana/ruby/kit/addresses/address.rb +1 -1
- data/lib/solana/ruby/kit/addresses/curve.rb +1 -1
- data/lib/solana/ruby/kit/addresses/program_derived_address.rb +1 -1
- data/lib/solana/ruby/kit/addresses/public_key.rb +1 -1
- data/lib/solana/ruby/kit/codecs/codec.rb +115 -5
- data/lib/solana/ruby/kit/codecs/data_structures.rb +246 -47
- data/lib/solana/ruby/kit/codecs/numbers.rb +96 -61
- data/lib/solana/ruby/kit/codecs/strings.rb +132 -6
- data/lib/solana/ruby/kit/encoding/base58.rb +1 -1
- data/lib/solana/ruby/kit/errors.rb +18 -1
- data/lib/solana/ruby/kit/fast_stable_stringify.rb +1 -1
- data/lib/solana/ruby/kit/functional.rb +1 -1
- data/lib/solana/ruby/kit/instruction_plans/instruction_plan.rb +31 -26
- data/lib/solana/ruby/kit/instruction_plans/message_packer_errors.rb +131 -0
- data/lib/solana/ruby/kit/instruction_plans/transaction_plan.rb +1 -1
- data/lib/solana/ruby/kit/instruction_plans/transaction_plan_executor.rb +2 -2
- data/lib/solana/ruby/kit/instruction_plans/transaction_plan_result.rb +1 -1
- data/lib/solana/ruby/kit/instruction_plans/transaction_planner.rb +11 -14
- data/lib/solana/ruby/kit/instruction_plans.rb +1 -1
- data/lib/solana/ruby/kit/instructions/accounts.rb +1 -1
- data/lib/solana/ruby/kit/instructions/instruction.rb +1 -1
- data/lib/solana/ruby/kit/instructions/roles.rb +1 -1
- data/lib/solana/ruby/kit/keys/key_pair.rb +1 -1
- data/lib/solana/ruby/kit/keys/private_key.rb +1 -1
- data/lib/solana/ruby/kit/keys/public_key.rb +1 -1
- data/lib/solana/ruby/kit/keys/signatures.rb +1 -1
- data/lib/solana/ruby/kit/offchain_messages/codec.rb +1 -1
- data/lib/solana/ruby/kit/offchain_messages/message_v1.rb +1 -1
- data/lib/solana/ruby/kit/options/option.rb +1 -1
- data/lib/solana/ruby/kit/plugin_core.rb +1 -1
- data/lib/solana/ruby/kit/programs/associated_token_account.rb +1 -1
- data/lib/solana/ruby/kit/programs/stake_program.rb +1 -1
- data/lib/solana/ruby/kit/programs/system_program.rb +1 -1
- data/lib/solana/ruby/kit/programs.rb +1 -1
- data/lib/solana/ruby/kit/promises.rb +1 -1
- data/lib/solana/ruby/kit/resource_limit_estimation.rb +1 -1
- data/lib/solana/ruby/kit/rpc_parsed_types/address_lookup_table.rb +1 -1
- data/lib/solana/ruby/kit/rpc_parsed_types/nonce_account.rb +1 -1
- data/lib/solana/ruby/kit/rpc_parsed_types/stake_account.rb +1 -1
- data/lib/solana/ruby/kit/rpc_parsed_types/token_account.rb +1 -1
- data/lib/solana/ruby/kit/rpc_parsed_types/vote_account.rb +1 -1
- data/lib/solana/ruby/kit/rpc_types/cluster_url.rb +1 -1
- data/lib/solana/ruby/kit/rpc_types/commitment.rb +1 -1
- data/lib/solana/ruby/kit/rpc_types/lamports.rb +1 -1
- data/lib/solana/ruby/kit/rpc_types/sol.rb +1 -1
- data/lib/solana/ruby/kit/signers/keypair_signer.rb +1 -1
- data/lib/solana/ruby/kit/subscribable/async_iterable.rb +1 -1
- data/lib/solana/ruby/kit/subscribable/bridge_store_to_async_iterable.rb +1 -1
- data/lib/solana/ruby/kit/subscribable/reactive_action_store.rb +1 -1
- data/lib/solana/ruby/kit/subscribable/reactive_stream_store.rb +1 -1
- data/lib/solana/ruby/kit/sysvars/clock.rb +1 -1
- data/lib/solana/ruby/kit/sysvars/epoch_schedule.rb +1 -1
- data/lib/solana/ruby/kit/sysvars/last_restart_slot.rb +1 -1
- data/lib/solana/ruby/kit/sysvars/rent.rb +1 -1
- data/lib/solana/ruby/kit/sysvars.rb +1 -1
- data/lib/solana/ruby/kit/transaction_confirmation.rb +1 -1
- data/lib/solana/ruby/kit/transaction_introspection/compiled_transaction_message.rb +8 -7
- data/lib/solana/ruby/kit/transaction_introspection/decode_rpc_transaction.rb +1 -1
- data/lib/solana/ruby/kit/transaction_introspection/get_inner_instructions.rb +1 -1
- data/lib/solana/ruby/kit/transaction_introspection/get_instructions.rb +1 -1
- data/lib/solana/ruby/kit/transaction_introspection/walk_instructions.rb +1 -1
- data/lib/solana/ruby/kit/transaction_messages/compute_budget.rb +1 -1
- data/lib/solana/ruby/kit/transaction_messages/resource_limit_validation.rb +1 -1
- data/lib/solana/ruby/kit/transaction_messages/transaction_message.rb +1 -1
- data/lib/solana/ruby/kit/transactions/compiler.rb +2 -2
- data/lib/solana/ruby/kit/transactions/transaction.rb +30 -10
- data/lib/solana/ruby/kit/version.rb +1 -1
- data/lib/solana/ruby/kit/wallet_standard.rb +10 -9
- data/solana-ruby-kit.gemspec +1 -1
- metadata +6 -6
- data/lib/solana/ruby/kit/instruction_plans/max_instructions.rb +0 -59
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: solana-ruby-kit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 8.
|
|
4
|
+
version: 8.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Paul Zupan, Idhra Inc.
|
|
@@ -231,7 +231,7 @@ files:
|
|
|
231
231
|
- lib/solana/ruby/kit/functional.rb
|
|
232
232
|
- lib/solana/ruby/kit/instruction_plans.rb
|
|
233
233
|
- lib/solana/ruby/kit/instruction_plans/instruction_plan.rb
|
|
234
|
-
- lib/solana/ruby/kit/instruction_plans/
|
|
234
|
+
- lib/solana/ruby/kit/instruction_plans/message_packer_errors.rb
|
|
235
235
|
- lib/solana/ruby/kit/instruction_plans/plans.rb
|
|
236
236
|
- lib/solana/ruby/kit/instruction_plans/transaction_plan.rb
|
|
237
237
|
- lib/solana/ruby/kit/instruction_plans/transaction_plan_executor.rb
|
|
@@ -346,13 +346,13 @@ files:
|
|
|
346
346
|
- lib/solana/ruby/kit/version.rb
|
|
347
347
|
- lib/solana/ruby/kit/wallet_standard.rb
|
|
348
348
|
- solana-ruby-kit.gemspec
|
|
349
|
-
homepage: https://github.com/
|
|
349
|
+
homepage: https://github.com/idhra/solana-ruby-kit
|
|
350
350
|
licenses:
|
|
351
351
|
- MIT
|
|
352
352
|
metadata:
|
|
353
|
-
source_code_uri: https://github.com/
|
|
354
|
-
documentation_uri: https://github.com/
|
|
355
|
-
bug_tracker_uri: https://github.com/
|
|
353
|
+
source_code_uri: https://github.com/idhra/solana-ruby-kit/tree/main
|
|
354
|
+
documentation_uri: https://github.com/idhra/solana-ruby-kit/wiki
|
|
355
|
+
bug_tracker_uri: https://github.com/idhra/solana-ruby-kit/issues
|
|
356
356
|
rdoc_options: []
|
|
357
357
|
require_paths:
|
|
358
358
|
- lib
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# typed: strict
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
require_relative '../errors'
|
|
5
|
-
|
|
6
|
-
module Solana::Ruby::Kit
|
|
7
|
-
module InstructionPlans
|
|
8
|
-
extend T::Sig
|
|
9
|
-
|
|
10
|
-
# The default maximum number of top-level instructions per planned transaction message.
|
|
11
|
-
#
|
|
12
|
-
# Intentionally lower than the transaction format's instruction limit to leave headroom
|
|
13
|
-
# for inner instructions (CPIs), which are not visible at planning time.
|
|
14
|
-
DEFAULT_MAX_INSTRUCTIONS_PER_TRANSACTION = T.let(16, Integer)
|
|
15
|
-
|
|
16
|
-
# The hard maximum number of top-level instructions the transaction format can encode.
|
|
17
|
-
TRANSACTION_INSTRUCTION_LIMIT = T.let(64, Integer)
|
|
18
|
-
|
|
19
|
-
module_function
|
|
20
|
-
|
|
21
|
-
# Resolves the effective maximum number of instructions allowed in a transaction message,
|
|
22
|
-
# falling back to the default when no value is provided.
|
|
23
|
-
# Mirrors `resolveMaxInstructions(maxInstructions)`.
|
|
24
|
-
sig { params(max_instructions: T.nilable(Integer)).returns(Integer) }
|
|
25
|
-
def resolve_max_instructions(max_instructions)
|
|
26
|
-
max_instructions || DEFAULT_MAX_INSTRUCTIONS_PER_TRANSACTION
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
# Asserts that a configured maximum number of instructions per transaction is valid.
|
|
30
|
-
# +nil+ is allowed and falls back to the default.
|
|
31
|
-
# Mirrors `assertValidMaxInstructionsPerTransaction(maxInstructions)`.
|
|
32
|
-
sig { params(max_instructions: T.nilable(Integer)).void }
|
|
33
|
-
def assert_valid_max_instructions_per_transaction(max_instructions)
|
|
34
|
-
return if max_instructions.nil?
|
|
35
|
-
|
|
36
|
-
if max_instructions <= 0 || max_instructions > TRANSACTION_INSTRUCTION_LIMIT
|
|
37
|
-
Kernel.raise SolanaError.new(
|
|
38
|
-
SolanaError::INSTRUCTION_PLANS__INVALID_MAX_INSTRUCTIONS_PER_TRANSACTION,
|
|
39
|
-
{
|
|
40
|
-
max_instructions: max_instructions,
|
|
41
|
-
transaction_instruction_limit: TRANSACTION_INSTRUCTION_LIMIT
|
|
42
|
-
}
|
|
43
|
-
)
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
# Raises if +num_instructions+ exceeds +max_instructions+.
|
|
48
|
-
# Mirrors `assertMaxInstructionsPerTransaction(numInstructions, maxInstructions)`.
|
|
49
|
-
sig { params(num_instructions: Integer, max_instructions: Integer).void }
|
|
50
|
-
def assert_max_instructions_per_transaction(num_instructions, max_instructions)
|
|
51
|
-
return if num_instructions <= max_instructions
|
|
52
|
-
|
|
53
|
-
Kernel.raise SolanaError.new(
|
|
54
|
-
SolanaError::INSTRUCTION_PLANS__MAX_INSTRUCTIONS_PER_TRANSACTION_EXCEEDED,
|
|
55
|
-
{ max_instructions: max_instructions, num_instructions: num_instructions }
|
|
56
|
-
)
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|