Added
- Add
AsyncClient.send_rpc_request(...)for custom JSON-RPC methods backed by Pydantic request serializers, result models, and an optional custom JSON-RPC error parser hook. - Add
transaction_details,rewards, andcommitmentparameters toAsyncClient.get_block(#684). - Add an
exclude_non_circulating_accounts_listparameter toAsyncClient.get_supply(#684).
Removed
- BREAKING: Remove deprecated
Client(sync RPC client) — usesolana.rpc.async_api.AsyncClientinstead. - BREAKING: Remove deprecated
Token(sync SPL Token client) andAsyncToken(async SPL Token client) — useAsyncClientwithspl.token.instructionsdirectly instead. - BREAKING: Remove deprecated
_TokenCore,AccountInfo, andMintInfofromspl.token.core— usespl.token.modelsinstead. - BREAKING: Remove sync HTTP provider (
solana.rpc.providers.http.HTTPProvider) and sync base provider (solana.rpc.providers.base.BaseProvider) — usesolana.rpc.providers.async_http.AsyncHTTPProviderinstead. - BREAKING: Remove deprecated
NamedTuplecompatibility types fromsolana.rpc.types,solana.vote_program,spl.memo.instructions, andspl.token.instructions. Use model types fromsolana.rpc.models,solana.models,spl.memo.models, andspl.token.models. - BREAKING: Remove
PydanticModel.from_namedtupleand all API boundary coercion paths. RPC and instruction helpers now accept only the Pydantic model params/options types. - Remove HTTP batch request plumbing from the HTTP provider path; use individual async requests and compose concurrency with
asyncio.gatherwhen needed. - Remove integration test
test_http_client.pyand unit testtest_client.py. - Remove obsolete documentation pages (
docs/rpc/api.md,docs/spl/token/client.md,docs/spl/token/async_client.md,docs/spl/token/core.md). - Remove obsolete
docs/rpc/types.md. - Update
random_funded_keypairfixture to be async.
Changed
- Simplify
AsyncClientRPC plumbing by removing unnecessary internal abstractions while preserving the existingsoldersrequest/response path for built-in RPC methods. - Rewrite
test_spl_token.pyto useAsyncClientwithspl.token.instructionsdirectly instead of the removedToken/AsyncTokenclasses. - Rewrite
test_spl_memo.pyto useAsyncClientwithspl.memo.instructionsdirectly instead of the removedClientclass. - Update
README.mdcode examples to useAsyncClient. - Update
mkdocs.ymlnavigation to remove deleted doc pages. - Update
docs/cookbook/token-operations/get-token-mint.mdto import fromspl.token.modelsinstead ofspl.token.core.
Docs
- Add a
ClienttoAsyncClientmigration guide and fix local docs serving (#683).
Full Changelog: https://github.com/michaelhly/solana-py/blob/master/CHANGELOG.md
Thanks to @kingsznhone for driving the bulk of this release.