Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Sep 15, 2024

This PR contains the following updates:

Package Change Age Confidence
com.mmorrell:solanaj 1.17.71.27.3 age confidence

Release Notes

skynetcap/solanaj (com.mmorrell:solanaj)

v1.27.3: - Custom commitment for GPA

  • Add overloaded version of getProgamAccounts to support custom Commitment levels. processed commitment remains default for the API.

Full Changelog: skynetcap/solanaj@v1.27.2...v1.27.3

v1.27.2

🚀 SolanaJ 1.27.2

This release focuses on dependency reduction, type safety improvements, and enhanced byte manipulation utilities.

📦 Dependency Management

Removed Dependencies
  • Removed Moshi - Replaced with Jackson for JSON processing
  • Removed BorshJ - Minimal usage justified removal
  • Removed Slf4J - Minimal usage justified removal
  • Removed Guava - Minimal usage justified removal

Benefits: Faster builds, reduced dependency tree, lower risk of vulnerable dependencies, and smaller artifact size.

✨ New Features

ByteUtils Enhancements
  • Added readInt32() method for signed 32-bit integer reading
  • Added readUint16() methods for unsigned 16-bit integer reading
  • Added readUint128() method for 128-bit unsigned integer operations
  • Made reverseBytes() method public for improved accessibility
Type Safety Improvements
  • Enhanced RpcApi with generic callWithGenericType() method to reduce unchecked warnings
  • Improved numeric type handling in ProgramAccount class
  • Better handling of lamports and rentEpoch with proper Number conversions
  • Methods now properly convert Object types to their respective numeric types (double/long)
Validation Improvements
  • Updated BlockhashTest regex to allow valid blockhash lengths of 43 or 44 characters

🔧 Code Quality

  • Fixed remaining linting errors across the codebase
  • Added Lombok @Getter annotations to configuration classes for improved encapsulation
  • Removed unnecessary @SuppressWarnings annotations
  • Cleaned up unused imports and variables in tests
  • Removed raw type usage for cleaner, more maintainable code

📚 Documentation

  • Comprehensive README.md updates with new overview section
  • Added key features section
  • Enhanced installation instructions for both Maven and Gradle
  • Revised examples for account management, SOL transfers, and SPL token operations
  • Added advanced RPC query examples
  • Introduced extended program support documentation
  • Added architecture guidelines and community contribution information

🔄 Migration from 1.26.0

This release maintains backward compatibility. Simply update your dependency version:

Maven:

<dependency>
    <groupId>com.mmorrell</groupId>
    <artifactId>solanaj</artifactId>
    <version>1.27.2</version>
</dependency>

Gradle:

implementation 'com.mmorrell:solanaj:1.27.2'

🙏 Contributors

Thank you to everyone who contributed to this release!


Full Changelog: skynetcap/solanaj@v1.26.0...v1.27.2

v1.26.0: - 🚀 Base58 - Performance Optimization

✨ Overview

Improved Base58 utility class performance of at least 2x when decoding Base58, using this new class, compared to BitcoinJ's implementation. Tests included.

🎯 Key Features

⚡ High-Performance Encoding & Decoding
  • Lookup Table Optimization 🔍: Fast character-to-index conversion using pre-computed lookup tables
  • Memory Efficiency 💾: Minimized memory allocations by reusing buffers
  • Smart Zero Handling 0️⃣: Optimized skip-leading-zeros algorithm for faster processing
🛠️ Core Methods
encode(byte[] input)

Encodes byte arrays to Base58 strings with optimized base conversion

  • ✅ Null-safety checks
  • ✅ Empty input handling
  • ✅ Leading zero preservation
  • ✅ ~1.37x buffer allocation (ceil(log(256)/log(58)))
decode(String input)

Decodes Base58 strings back to byte arrays

  • ✅ Character validation with descriptive error messages
  • ✅ Invalid character detection
  • ✅ Original leading zero restoration
encodeNoCopy(byte[] input, int zeros) 🏎️

Performance-critical encoding path that avoids array copying

  • ⚠️ Note: Modifies input array - use when input is disposable
  • 🎯 Perfect for high-throughput scenarios

🔧 Technical Improvements

Optimized Division Operations
  1. divmod256to58() - Encoding optimization

    • Uses bit shifting (<< 8) instead of multiplication by 256
    • Specialized for base-256 to base-58 conversion
  2. divmod58to256() - Decoding optimization

    • Uses bit shifting (>> 8) for division by 256
    • Uses bit masking (& 0xFF) for modulo 256 operations
  3. divmod() - Generic division algorithm

    • Handles arbitrary base conversions up to base 256
    • Long division implementation accounting for input base

Full Changelog: skynetcap/solanaj@v1.25.3...v1.26.0

v1.25.5

  • WSS subscription fixes

Full Changelog: skynetcap/solanaj@v1.25.3...v1.25.5

v1.25.3: - WebSocket unsubscribe + subscription futures

🚀 solanaj 1.25.3 — WebSocket unsubscribe + subscription futures
✨ Highlights
  • Futures for subscription IDs: All WebSocket subscribe methods now return CompletableFuture<Long>.
  • Unified unsubscribe: Use Long subscription ID to unsubscribe.
  • Usage example: Added to SubscriptionWebSocketClient Javadoc.
  • Version bump: 1.25.3.
💥 Breaking Changes
  • unsubscribe now accepts Long (was String).
  • getSubscriptionId(String account) now returns Long.
  • Subscribe methods return CompletableFuture<Long> (was void).
    • Source-compatible if you ignore the return, but recompilation required.
🆕 New / Improved
  • Subscription futures complete when the server confirms the subscription ID ✅
  • Consistent API across:
    • accountSubscribe, signatureSubscribe, logsSubscribe
    • blockSubscribe, programSubscribe, rootSubscribe, slotSubscribe, slotsUpdatesSubscribe, voteSubscribe
  • More robust resubscription during reconnects.
📖 Docs
  • Javadoc usage example in SubscriptionWebSocketClient showing:
    • Awaiting a subscription ID
    • Unsubscribing using the ID
    • Unsubscribe by account via getSubscriptionId
🧪 Tests
  • Removed legacy testAccountUnsubscribe aligned with the new API.
🔧 Migration Guide
  • Replace String IDs with Long:
    • client.unsubscribe(subscriptionIdLong);
    • Long id = client.getSubscriptionId(accountPubkey);
  • Optionally await subscription establishment:
    SubscriptionWebSocketClient client = SubscriptionWebSocketClient.getInstance("wss://api.devnet.solana.com");
    
    CompletableFuture<Long> sub = client.logsSubscribe("So11111111111111111111111111111111111111112", data -> {
        System.out.println("Log: " + data);
    });
    
    Long subscriptionId = sub.get(10, TimeUnit.SECONDS);
    client.unsubscribe(subscriptionId);
  • Recompile your project to pick up the method signature changes.
📦 Dependency
  • pom.xml: 1.25.3
🙏 Thanks
  • Thanks to everyone using and testing WebSocket flows—this makes real-time work smoother! 🎉

Full Changelog: skynetcap/solanaj@v.1.25.2...v1.25.3

v1.24.0

  • getProgramAccounts support for changedSinceSlot value. (Used by Helius RPC)
  • Switch eddsa dependency to a patched fork version (old one had a low severity issue for years, new one is patched)
  • Fix lombok compilation with JDK 23
  • Various dependency updates

Full Changelog: skynetcap/solanaj@v1.23.0...v1.24.0

v1.23.0

  • GZIP request/response support

Full Changelog: skynetcap/solanaj@v1.22.0...v1.23.0

v1.21.0

What's Changed

New Contributors

Full Changelog: skynetcap/solanaj@v1.20.0...v1.21.0

v1.20.0

What's Changed

New Contributors

Full Changelog: skynetcap/solanaj@v1.19.2...v1.20.0

v1.19.2

What's Changed

  • feat: change access modifier of addSubscription method by @​oursy in #​58

Full Changelog: skynetcap/solanaj@v1.19.1...v1.19.2

v1.19.1

What's Changed

New Contributors

Full Changelog: skynetcap/solanaj@v1.19.0...v1.19.1

v1.19.0

What's Changed

New Contributors

Full Changelog: skynetcap/solanaj@v1.18.2...v1.19.0

v1.18.2

What's Changed

Full Changelog: skynetcap/solanaj@v1.18.1...v1.18.2

v1.18.1

What's Changed

feat: Implement AddressLookupTableProgram for efficient address management
skynetcap

Add TokenManagerTest.java for unit testing TokenManager functionality

Deprecate legacy RPC methods

Add documentation

Implement missing WebSocket APIs in SubscriptionWebSocketClient

Full Changelog: skynetcap/solanaj@v1.18.0...v1.18.1

v1.18.0

What's Changed

  • Improved the Transaction, TransactionBuilder, TransactionInstruction, and other related classes (commit: e53fe9f)
  • Added comprehensive BPFLoader functions and tests (commit: 17cab77)
  • Updated the unit tests and refactored ComputeBudgetProgram (commit: 819fa74)
  • Refactored MemoProgram and updated tests (commit: a74e18b)
  • Implemented and tested SystemProgram instructions (commit: e6f6da4)
  • Updated TokenProgram and TokenProgramTest for consistency (commit: b9b2d72)
  • Implemented enhancements in SubscriptionWebSocketClient and added WebSocket tests (commit: 9fcdfde)
  • Added LogNotificationEventListener and tests (commit: b169c61)
  • Enhanced WebSocket functionality and added unsubscribe feature (commit: 9f736cc)
  • Improved SubscriptionWebSocketClient documentation and robustness (commit: cabeda4)
  • Fixed constructor undefined error in RpcClient (commit: 149f83e)
  • Handled null RPC response in RpcClient (commit: 2041a8b)
  • Added SOCKS proxy support to RpcClient (commit: ddc1288)
  • Enhanced TokenProgramTest documentation and comments (commit: dcbe756)

New Contributors

Full Changelog: skynetcap/solanaj@v1.17.0...v1.18.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch 2 times, most recently from 0074ccf to cb38ce9 Compare September 23, 2024 23:55
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.18.2 Update dependency com.mmorrell:solanaj to v1.19.1 Sep 23, 2024
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from cb38ce9 to 65fef93 Compare September 24, 2024 07:00
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.19.1 Update dependency com.mmorrell:solanaj to v1.19.2 Sep 24, 2024
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from 65fef93 to 77b5507 Compare November 19, 2024 06:30
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.19.2 Update dependency com.mmorrell:solanaj to v1.19.3 Nov 19, 2024
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from 77b5507 to 9d10a14 Compare December 24, 2024 08:08
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.19.3 Update dependency com.mmorrell:solanaj to v1.20.0 Dec 24, 2024
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from 9d10a14 to 755291b Compare December 28, 2024 07:01
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.20.0 Update dependency com.mmorrell:solanaj to v1.20.1 Dec 28, 2024
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from 755291b to 979a55f Compare December 28, 2024 23:02
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.20.1 Update dependency com.mmorrell:solanaj to v1.20.2 Dec 28, 2024
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from 979a55f to 4107608 Compare January 28, 2025 10:19
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.20.2 Update dependency com.mmorrell:solanaj to v1.20.3 Jan 28, 2025
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from 4107608 to 7ba9475 Compare February 4, 2025 02:26
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.20.3 Update dependency com.mmorrell:solanaj to v1.20.4 Feb 4, 2025
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from 7ba9475 to cdddd8f Compare July 27, 2025 02:09
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.20.4 Update dependency com.mmorrell:solanaj to v1.21.0 Jul 27, 2025
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from cdddd8f to e959487 Compare August 15, 2025 03:04
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.21.0 Update dependency com.mmorrell:solanaj to v1.23.0 Aug 15, 2025
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from e959487 to d36bf98 Compare September 11, 2025 05:37
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.23.0 Update dependency com.mmorrell:solanaj to v1.24.0 Sep 11, 2025
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from d36bf98 to 05a2b20 Compare October 13, 2025 06:05
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.24.0 Update dependency com.mmorrell:solanaj to v1.25.2 Oct 13, 2025
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from 05a2b20 to 1fbdedf Compare October 14, 2025 08:40
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.25.2 Update dependency com.mmorrell:solanaj to v1.26.0 Oct 14, 2025
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from 1fbdedf to 2977026 Compare October 14, 2025 17:06
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.26.0 Update dependency com.mmorrell:solanaj to v1.27.0 Oct 14, 2025
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from 2977026 to 2818cdd Compare October 15, 2025 02:03
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.27.0 Update dependency com.mmorrell:solanaj to v1.27.2 Oct 15, 2025
@renovate renovate bot force-pushed the renovate/com.mmorrell-solanaj-1.x branch from 2818cdd to 2d1f4ab Compare October 16, 2025 23:00
@renovate renovate bot changed the title Update dependency com.mmorrell:solanaj to v1.27.2 Update dependency com.mmorrell:solanaj to v1.27.3 Oct 16, 2025
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.

1 participant