%global _empty_manifest_terminate_build 0 Name: python-solana Version: 0.29.2 Release: 1 Summary: Solana Python API License: MIT URL: https://github.com/michaelhly/solanapy Source0: https://mirrors.nju.edu.cn/pypi/web/packages/12/ed/55a245cbce9061f0990f40dad594fa5aa936ea1d77bcf618462745e90270/solana-0.29.2.tar.gz BuildArch: noarch Requires: python3-construct-typing Requires: python3-httpx Requires: python3-typing-extensions Requires: python3-cachetools Requires: python3-types-cachetools Requires: python3-websockets Requires: python3-solders %description [![Actions Status](https://github.com/michaelhly/solanapy/workflows/CI/badge.svg)](https://github.com/michaelhly/solanapy/actions?query=workflow%3ACI) [![PyPI version](https://badge.fury.io/py/solana.svg)](https://badge.fury.io/py/solana) [![Codecov](https://codecov.io/gh/michaelhly/solana-py/branch/master/graph/badge.svg)](https://codecov.io/gh/michaelhly/solana-py/branch/master) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/michaelhly/solana-py/blob/master/LICENSE) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) # Solana.py **🐍 The Solana Python SDK 🐍** Solana.py is the base Python library for interacting with Solana. You can use it to build transactions and interact with the [Solana JSON RPC API](https://docs.solana.com/apps/jsonrpc-api), much like you would do with [solana-web3.js](https://github.com/solana-labs/solana-web3.js/) It also covers the [SPL Token Program](https://spl.solana.com/token). [Latest Documentation](https://michaelhly.github.io/solana-py/). Note: This library uses many core types from the [Solders](https://github.com/kevinheavey/solders) package which used to be provided by `solana-py` itself. If you are upgrading from an old version and you're looking for something that was deleted, it's probably in `solders` now. **⚓︎ See also: [AnchorPy](https://github.com/kevinheavey/anchorpy),** **a Python client for** **[Anchor](https://project-serum.github.io/anchor/getting-started/introduction.html)-based** **programs on Solana. ⚓︎** ## ⚡ Quickstart ### Installation ```sh pip install solana ``` ### General Usage Note: check out the [Solana Cookbook](https://solanacookbook.com/) for more detailed examples! ```py import solana ``` ### API Client ```py from solana.rpc.api import Client http_client = Client("https://api.devnet.solana.com") ``` ### Async API Client ```py import asyncio from solana.rpc.async_api import AsyncClient async def main(): async with AsyncClient("https://api.devnet.solana.com") as client: res = await client.is_connected() print(res) # True # Alternatively, close the client explicitly instead of using a context manager: client = AsyncClient("https://api.devnet.solana.com") res = await client.is_connected() print(res) # True await client.close() asyncio.run(main()) ``` ### Websockets Client ```py import asyncio from asyncstdlib import enumerate from solana.rpc.websocket_api import connect async def main(): async with connect("wss://api.devnet.solana.com") as websocket: await websocket.logs_subscribe() first_resp = await websocket.recv() subscription_id = first_resp.result next_resp = await websocket.recv() print(next_resp) await websocket.logs_unsubscribe(subscription_id) # Alternatively, use the client as an infinite asynchronous iterator: async with connect("wss://api.devnet.solana.com") as websocket: await websocket.logs_subscribe() first_resp = await websocket.recv() subscription_id = first_resp.result async for idx, msg in enumerate(websocket): if idx == 3: break print(msg) await websocket.logs_unsubscribe(subscription_id) asyncio.run(main()) ``` ## 🔨 Development ### Setup 1. Install [poetry](https://python-poetry.org/docs/#installation) 2. Install dev dependencies: ```sh poetry install ``` 3. Activate the poetry shell. ```sh poetry shell ``` ### Lint ```sh make lint ``` ### Tests ```sh # All tests make tests # Unit tests only make unit-tests # Integration tests only make int-tests ``` %package -n python3-solana Summary: Solana Python API Provides: python-solana BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-solana [![Actions Status](https://github.com/michaelhly/solanapy/workflows/CI/badge.svg)](https://github.com/michaelhly/solanapy/actions?query=workflow%3ACI) [![PyPI version](https://badge.fury.io/py/solana.svg)](https://badge.fury.io/py/solana) [![Codecov](https://codecov.io/gh/michaelhly/solana-py/branch/master/graph/badge.svg)](https://codecov.io/gh/michaelhly/solana-py/branch/master) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/michaelhly/solana-py/blob/master/LICENSE) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) # Solana.py **🐍 The Solana Python SDK 🐍** Solana.py is the base Python library for interacting with Solana. You can use it to build transactions and interact with the [Solana JSON RPC API](https://docs.solana.com/apps/jsonrpc-api), much like you would do with [solana-web3.js](https://github.com/solana-labs/solana-web3.js/) It also covers the [SPL Token Program](https://spl.solana.com/token). [Latest Documentation](https://michaelhly.github.io/solana-py/). Note: This library uses many core types from the [Solders](https://github.com/kevinheavey/solders) package which used to be provided by `solana-py` itself. If you are upgrading from an old version and you're looking for something that was deleted, it's probably in `solders` now. **⚓︎ See also: [AnchorPy](https://github.com/kevinheavey/anchorpy),** **a Python client for** **[Anchor](https://project-serum.github.io/anchor/getting-started/introduction.html)-based** **programs on Solana. ⚓︎** ## ⚡ Quickstart ### Installation ```sh pip install solana ``` ### General Usage Note: check out the [Solana Cookbook](https://solanacookbook.com/) for more detailed examples! ```py import solana ``` ### API Client ```py from solana.rpc.api import Client http_client = Client("https://api.devnet.solana.com") ``` ### Async API Client ```py import asyncio from solana.rpc.async_api import AsyncClient async def main(): async with AsyncClient("https://api.devnet.solana.com") as client: res = await client.is_connected() print(res) # True # Alternatively, close the client explicitly instead of using a context manager: client = AsyncClient("https://api.devnet.solana.com") res = await client.is_connected() print(res) # True await client.close() asyncio.run(main()) ``` ### Websockets Client ```py import asyncio from asyncstdlib import enumerate from solana.rpc.websocket_api import connect async def main(): async with connect("wss://api.devnet.solana.com") as websocket: await websocket.logs_subscribe() first_resp = await websocket.recv() subscription_id = first_resp.result next_resp = await websocket.recv() print(next_resp) await websocket.logs_unsubscribe(subscription_id) # Alternatively, use the client as an infinite asynchronous iterator: async with connect("wss://api.devnet.solana.com") as websocket: await websocket.logs_subscribe() first_resp = await websocket.recv() subscription_id = first_resp.result async for idx, msg in enumerate(websocket): if idx == 3: break print(msg) await websocket.logs_unsubscribe(subscription_id) asyncio.run(main()) ``` ## 🔨 Development ### Setup 1. Install [poetry](https://python-poetry.org/docs/#installation) 2. Install dev dependencies: ```sh poetry install ``` 3. Activate the poetry shell. ```sh poetry shell ``` ### Lint ```sh make lint ``` ### Tests ```sh # All tests make tests # Unit tests only make unit-tests # Integration tests only make int-tests ``` %package help Summary: Development documents and examples for solana Provides: python3-solana-doc %description help [![Actions Status](https://github.com/michaelhly/solanapy/workflows/CI/badge.svg)](https://github.com/michaelhly/solanapy/actions?query=workflow%3ACI) [![PyPI version](https://badge.fury.io/py/solana.svg)](https://badge.fury.io/py/solana) [![Codecov](https://codecov.io/gh/michaelhly/solana-py/branch/master/graph/badge.svg)](https://codecov.io/gh/michaelhly/solana-py/branch/master) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/michaelhly/solana-py/blob/master/LICENSE) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) # Solana.py **🐍 The Solana Python SDK 🐍** Solana.py is the base Python library for interacting with Solana. You can use it to build transactions and interact with the [Solana JSON RPC API](https://docs.solana.com/apps/jsonrpc-api), much like you would do with [solana-web3.js](https://github.com/solana-labs/solana-web3.js/) It also covers the [SPL Token Program](https://spl.solana.com/token). [Latest Documentation](https://michaelhly.github.io/solana-py/). Note: This library uses many core types from the [Solders](https://github.com/kevinheavey/solders) package which used to be provided by `solana-py` itself. If you are upgrading from an old version and you're looking for something that was deleted, it's probably in `solders` now. **⚓︎ See also: [AnchorPy](https://github.com/kevinheavey/anchorpy),** **a Python client for** **[Anchor](https://project-serum.github.io/anchor/getting-started/introduction.html)-based** **programs on Solana. ⚓︎** ## ⚡ Quickstart ### Installation ```sh pip install solana ``` ### General Usage Note: check out the [Solana Cookbook](https://solanacookbook.com/) for more detailed examples! ```py import solana ``` ### API Client ```py from solana.rpc.api import Client http_client = Client("https://api.devnet.solana.com") ``` ### Async API Client ```py import asyncio from solana.rpc.async_api import AsyncClient async def main(): async with AsyncClient("https://api.devnet.solana.com") as client: res = await client.is_connected() print(res) # True # Alternatively, close the client explicitly instead of using a context manager: client = AsyncClient("https://api.devnet.solana.com") res = await client.is_connected() print(res) # True await client.close() asyncio.run(main()) ``` ### Websockets Client ```py import asyncio from asyncstdlib import enumerate from solana.rpc.websocket_api import connect async def main(): async with connect("wss://api.devnet.solana.com") as websocket: await websocket.logs_subscribe() first_resp = await websocket.recv() subscription_id = first_resp.result next_resp = await websocket.recv() print(next_resp) await websocket.logs_unsubscribe(subscription_id) # Alternatively, use the client as an infinite asynchronous iterator: async with connect("wss://api.devnet.solana.com") as websocket: await websocket.logs_subscribe() first_resp = await websocket.recv() subscription_id = first_resp.result async for idx, msg in enumerate(websocket): if idx == 3: break print(msg) await websocket.logs_unsubscribe(subscription_id) asyncio.run(main()) ``` ## 🔨 Development ### Setup 1. Install [poetry](https://python-poetry.org/docs/#installation) 2. Install dev dependencies: ```sh poetry install ``` 3. Activate the poetry shell. ```sh poetry shell ``` ### Lint ```sh make lint ``` ### Tests ```sh # All tests make tests # Unit tests only make unit-tests # Integration tests only make int-tests ``` %prep %autosetup -n solana-0.29.2 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-solana -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Wed Apr 12 2023 Python_Bot - 0.29.2-1 - Package Spec generated