Skip to content

Feature: Solana cbor and compact-u16 decoding#7

Merged
kronikarz merged 1 commit intomasterfrom
ks-feature/solana-cbor-and-compact-u16-decoding
Dec 12, 2025
Merged

Feature: Solana cbor and compact-u16 decoding#7
kronikarz merged 1 commit intomasterfrom
ks-feature/solana-cbor-and-compact-u16-decoding

Conversation

@SucharMistrz
Copy link
Collaborator

This branch introduces components required for connecting Solana wallets through Keystone, signing Solana transactions as well as decoding variable-length integers in Solana.

List of changes:

  • updated a_cbor_tagged_object.dart and cbor_special_tag.dart to include new Solana elements
  • created cbor_crypto_multi_accounts.dart, used to connect Solana wallets
  • created cbor_sol_sign_request.dart and cbor_sol_signature.dart, used to request and return Solana signature
  • created compact_u16_decoder.dart, used for decoding variable-length integers in Solana
  • created byte_reader.dart, a helper used for sequential reading of binary data
  • unrelated with domain: updated base58_codec.dart to fix an issue where the decode() method applied zero-byte padding on top of the already decoded value when the input consisted entirely of '1' Base58 characters. For example, decoding 32 zeros returned the decoded value of 0 and padding added 32 zeros on top of it, returning 33 zeros in total, instead of 32. It caused the Solana System Program address to be decoded incorrectly. Solana System Program is the most important program of all, responsible for: new account creation, space allocation, assigning program ownership and transferring SOL.

This branch introduces components required for connecting Solana wallets through Keystone, signing Solana transactions as well as decoding variable-length integers in Solana.

List of changes:
- updated a_cbor_tagged_object.dart and cbor_special_tag.dart to include new Solana elements
- created cbor_crypto_multi_accounts.dart, used to connect Solana wallets
- created cbor_sol_sign_request.dart and cbor_sol_signature.dart, used to request and return Solana signature
- created compact_u16_decoder.dart, used for decoding variable-length integers in Solana
- created byte_reader.dart, a helper used for sequential reading of binary data
- unrelated with domain: updated base58_codec.dart to fix an issue where the decode() method applied zero-byte padding on top of the already decoded value when the input consisted entirely of '1' Base58 characters. For example, decoding 32 zeros returned the decoded value of 0 and padding added 32 zeros on top of it, returning 33 zeros in total, instead of 32. It caused the Solana System Program address to be decoded incorrectly. Solana System Program is the most important program of all, responsible for: new account creation, space allocation, assigning program ownership and transferring SOL.
@kronikarz kronikarz merged commit 185baf4 into master Dec 12, 2025
2 checks passed
@kronikarz kronikarz deleted the ks-feature/solana-cbor-and-compact-u16-decoding branch December 12, 2025 13:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants