Solana Python API
Project description
Solana.py
Solana Python API built on the JSON RPC API.
Python version of solana-web3.js for interacting with Solana.
Read the Documentation.
Also check out anchorpy, a Python client for Anchor based programs on Solana.
Quickstart
Installation
pip install solana
General Usage
import solana
API Client
from solana.rpc.api import Client
http_client = Client("https://api.devnet.solana.com")
Async API Client
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
import asyncio
from asyncstdlib import enumerate
from solana.rpc.websocket_api import connect
async def main():
async with connect("ws://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("ws://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
- Install poetry
- Install dev dependencies:
poetry install
- Activate the poetry shell.
poetry shell
Lint
make lint
Tests
# All tests
make tests
# Unit tests only
make unit-tests
# Integration tests only
make int-tests
Start a Solana Localnet
Install docker.
# Update/pull latest docker image
make update-localnet
# Start localnet instance
make start-localnet
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
solana-0.19.1.tar.gz
(68.9 kB
view details)
Built Distribution
solana-0.19.1-py3-none-any.whl
(84.6 kB
view details)
File details
Details for the file solana-0.19.1.tar.gz
.
File metadata
- Download URL: solana-0.19.1.tar.gz
- Upload date:
- Size: 68.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.11 CPython/3.7.9 Darwin/21.1.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70beb10485db01b04536521520c0edc8598a1c972a08e4aecd3bf1830c7637ac |
|
MD5 | 4e1ee65b8be4fd3e3f23585b4eeaa63d |
|
BLAKE2b-256 | 39d85171fe015bdad07cd606b36607cfab15b42bbefdcd88e6165b5cc356d176 |
File details
Details for the file solana-0.19.1-py3-none-any.whl
.
File metadata
- Download URL: solana-0.19.1-py3-none-any.whl
- Upload date:
- Size: 84.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.11 CPython/3.7.9 Darwin/21.1.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d205a85ea38fe011295dc22e9add8dff33f5509e0374c15d826d0a1e03310e1 |
|
MD5 | afa468635d44c86ce65f3f8828b1bab5 |
|
BLAKE2b-256 | a9a06543d55d6e0eaf2fef07647ffc2c398edd6954cc309a26511ef53d1f83a9 |