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.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +164 -12
  3. data/lib/solana/ruby/kit/accounts/maybe_account.rb +1 -1
  4. data/lib/solana/ruby/kit/addresses/address.rb +1 -1
  5. data/lib/solana/ruby/kit/addresses/curve.rb +1 -1
  6. data/lib/solana/ruby/kit/addresses/program_derived_address.rb +1 -1
  7. data/lib/solana/ruby/kit/addresses/public_key.rb +1 -1
  8. data/lib/solana/ruby/kit/codecs/codec.rb +115 -5
  9. data/lib/solana/ruby/kit/codecs/data_structures.rb +246 -47
  10. data/lib/solana/ruby/kit/codecs/numbers.rb +96 -61
  11. data/lib/solana/ruby/kit/codecs/strings.rb +132 -6
  12. data/lib/solana/ruby/kit/encoding/base58.rb +1 -1
  13. data/lib/solana/ruby/kit/errors.rb +18 -1
  14. data/lib/solana/ruby/kit/fast_stable_stringify.rb +1 -1
  15. data/lib/solana/ruby/kit/functional.rb +1 -1
  16. data/lib/solana/ruby/kit/instruction_plans/instruction_plan.rb +31 -26
  17. data/lib/solana/ruby/kit/instruction_plans/message_packer_errors.rb +131 -0
  18. data/lib/solana/ruby/kit/instruction_plans/transaction_plan.rb +1 -1
  19. data/lib/solana/ruby/kit/instruction_plans/transaction_plan_executor.rb +2 -2
  20. data/lib/solana/ruby/kit/instruction_plans/transaction_plan_result.rb +1 -1
  21. data/lib/solana/ruby/kit/instruction_plans/transaction_planner.rb +11 -14
  22. data/lib/solana/ruby/kit/instruction_plans.rb +1 -1
  23. data/lib/solana/ruby/kit/instructions/accounts.rb +1 -1
  24. data/lib/solana/ruby/kit/instructions/instruction.rb +1 -1
  25. data/lib/solana/ruby/kit/instructions/roles.rb +1 -1
  26. data/lib/solana/ruby/kit/keys/key_pair.rb +1 -1
  27. data/lib/solana/ruby/kit/keys/private_key.rb +1 -1
  28. data/lib/solana/ruby/kit/keys/public_key.rb +1 -1
  29. data/lib/solana/ruby/kit/keys/signatures.rb +1 -1
  30. data/lib/solana/ruby/kit/offchain_messages/codec.rb +1 -1
  31. data/lib/solana/ruby/kit/offchain_messages/message_v1.rb +1 -1
  32. data/lib/solana/ruby/kit/options/option.rb +1 -1
  33. data/lib/solana/ruby/kit/plugin_core.rb +1 -1
  34. data/lib/solana/ruby/kit/programs/associated_token_account.rb +1 -1
  35. data/lib/solana/ruby/kit/programs/stake_program.rb +1 -1
  36. data/lib/solana/ruby/kit/programs/system_program.rb +1 -1
  37. data/lib/solana/ruby/kit/programs.rb +1 -1
  38. data/lib/solana/ruby/kit/promises.rb +1 -1
  39. data/lib/solana/ruby/kit/resource_limit_estimation.rb +1 -1
  40. data/lib/solana/ruby/kit/rpc_parsed_types/address_lookup_table.rb +1 -1
  41. data/lib/solana/ruby/kit/rpc_parsed_types/nonce_account.rb +1 -1
  42. data/lib/solana/ruby/kit/rpc_parsed_types/stake_account.rb +1 -1
  43. data/lib/solana/ruby/kit/rpc_parsed_types/token_account.rb +1 -1
  44. data/lib/solana/ruby/kit/rpc_parsed_types/vote_account.rb +1 -1
  45. data/lib/solana/ruby/kit/rpc_types/cluster_url.rb +1 -1
  46. data/lib/solana/ruby/kit/rpc_types/commitment.rb +1 -1
  47. data/lib/solana/ruby/kit/rpc_types/lamports.rb +1 -1
  48. data/lib/solana/ruby/kit/rpc_types/sol.rb +1 -1
  49. data/lib/solana/ruby/kit/signers/keypair_signer.rb +1 -1
  50. data/lib/solana/ruby/kit/subscribable/async_iterable.rb +1 -1
  51. data/lib/solana/ruby/kit/subscribable/bridge_store_to_async_iterable.rb +1 -1
  52. data/lib/solana/ruby/kit/subscribable/reactive_action_store.rb +1 -1
  53. data/lib/solana/ruby/kit/subscribable/reactive_stream_store.rb +1 -1
  54. data/lib/solana/ruby/kit/sysvars/clock.rb +1 -1
  55. data/lib/solana/ruby/kit/sysvars/epoch_schedule.rb +1 -1
  56. data/lib/solana/ruby/kit/sysvars/last_restart_slot.rb +1 -1
  57. data/lib/solana/ruby/kit/sysvars/rent.rb +1 -1
  58. data/lib/solana/ruby/kit/sysvars.rb +1 -1
  59. data/lib/solana/ruby/kit/transaction_confirmation.rb +1 -1
  60. data/lib/solana/ruby/kit/transaction_introspection/compiled_transaction_message.rb +8 -7
  61. data/lib/solana/ruby/kit/transaction_introspection/decode_rpc_transaction.rb +1 -1
  62. data/lib/solana/ruby/kit/transaction_introspection/get_inner_instructions.rb +1 -1
  63. data/lib/solana/ruby/kit/transaction_introspection/get_instructions.rb +1 -1
  64. data/lib/solana/ruby/kit/transaction_introspection/walk_instructions.rb +1 -1
  65. data/lib/solana/ruby/kit/transaction_messages/compute_budget.rb +1 -1
  66. data/lib/solana/ruby/kit/transaction_messages/resource_limit_validation.rb +1 -1
  67. data/lib/solana/ruby/kit/transaction_messages/transaction_message.rb +1 -1
  68. data/lib/solana/ruby/kit/transactions/compiler.rb +2 -2
  69. data/lib/solana/ruby/kit/transactions/transaction.rb +30 -10
  70. data/lib/solana/ruby/kit/version.rb +1 -1
  71. data/lib/solana/ruby/kit/wallet_standard.rb +10 -9
  72. data/solana-ruby-kit.gemspec +1 -1
  73. metadata +6 -6
  74. 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.2.0
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/max_instructions.rb
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/pzupan/solana-ruby-kit
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/pzupan/solana-ruby-kit/tree/main
354
- documentation_uri: https://github.com/pzupan/solana-ruby-kit/wiki
355
- bug_tracker_uri: https://github.com/pzupan/solana-ruby-kit/issues
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