Returned accounts are represented as SolanaAccountInfo.
Existing getAccountInfo(...) behavior is unchanged.
### Description:
Add generic Solana API support for fetching program-owned accounts using server-side filters.
This is needed so higher-level APIs can find relevant accounts without downloading all accounts owned by a program.
### Suggested API shape:
```java
Set<SolanaAccountInfo> getProgramAccounts(
ΩSolanaProgramIdΩ programId,
Set<SolanaProgramAccountFilter> filters
) throws IOException, InterruptedException;
```
### Initial filter support:
* `memcmp` filter
* offset
* bytes/base58 value to match
### Non-goals:
* No local filtering of program accounts
* No decoding of program account data
* No support for every Solana RPC filter type yet
### Acceptance criteria:
* `SolanaBlockChain` exposes a generic `getProgramAccounts(...)` method with filter support.
* Implementation supports Solana RPC `memcmp` filters.
* Returned accounts are represented as `SolanaAccountInfo`.
* Existing `getAccountInfo(...)` behavior is unchanged.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Description:
Add generic Solana API support for fetching program-owned accounts using server-side filters.
This is needed so higher-level APIs can find relevant accounts without downloading all accounts owned by a program.
Suggested API shape:
Initial filter support:
memcmpfilterNon-goals:
Acceptance criteria:
SolanaBlockChainexposes a genericgetProgramAccounts(...)method with filter support.memcmpfilters.SolanaAccountInfo.getAccountInfo(...)behavior is unchanged.