![Introducing Enhanced Alert Actions and Triage Functionality](https://cdn.sanity.io/images/cgdhsj6q/production/fe71306d515f85de6139b46745ea7180362324f0-2530x946.png?w=800&fit=max&auto=format)
Product
Introducing Enhanced Alert Actions and Triage Functionality
Socket now supports four distinct alert actions instead of the previous two, and alert triaging allows users to override the actions taken for all individual alerts.
Readme
A Python library to retrieve data from Pyth account structures off the Solana blockchain.
NOTE: This library requires Python 3.7 or greater due to from __future__ import annotations
.
Install the library:
pip install pythclient
You can then read the current Pyth price using the following:
from pythclient.pythclient import PythClient
from pythclient.pythaccounts import PythPriceAccount
from pythclient.utils import get_key
solana_network="devnet"
async with PythClient(
first_mapping_account_key=get_key(solana_network, "mapping"),
program_key=get_key(solana_network, "program") if use_program else None,
) as c:
await c.refresh_all_prices()
products = await c.get_products()
for p in products:
print(p.attrs)
prices = await p.get_prices()
for _, pr in prices.items():
print(
pr.price_type,
pr.aggregate_price_status,
pr.aggregate_price,
"p/m",
pr.aggregate_price_confidence_interval,
)
This code snippet lists the products on pyth and the price for each product. Sample output is:
{'symbol': 'Crypto.ETH/USD', 'asset_type': 'Crypto', 'quote_currency': 'USD', 'description': 'ETH/USD', 'generic_symbol': 'ETHUSD', 'base': 'ETH'}
PythPriceType.PRICE PythPriceStatus.TRADING 4390.286 p/m 2.4331
{'symbol': 'Crypto.SOL/USD', 'asset_type': 'Crypto', 'quote_currency': 'USD', 'description': 'SOL/USD', 'generic_symbol': 'SOLUSD', 'base': 'SOL'}
PythPriceType.PRICE PythPriceStatus.TRADING 192.27550000000002 p/m 0.0485
{'symbol': 'Crypto.SRM/USD', 'asset_type': 'Crypto', 'quote_currency': 'USD', 'description': 'SRM/USD', 'generic_symbol': 'SRMUSD', 'base': 'SRM'}
PythPriceType.PRICE PythPriceStatus.UNKNOWN None p/m None
...
The examples
directory includes some example applications that demonstrate how to use this library:
examples/dump.py
is a detailed usage example that demonstrates the asynchronous API to update prices using a websocket subscription or account polling.examples/read_one_price_feed.py
shows how to read the price of a single price feed using its account key.Using python 3.7 or newer, create, and activate a virtual environment:
python3 -m venv ve
. ve/bin/activate
To install this library in editable mode with test dependencies:
pip install -e '.[testing]'
To run the unit tests:
pytest
If html based test coverage is more your jam:
pytest --cov-report=html
The coverage webpages will be in the htmlcov
directory.
To build the package for distribution to pypi, first install dependencies:
python3 -m pip install --upgrade twine build
Next, edit setup.py
and bump the version
field.
Then build the package by running:
python3 -m build
This command will produce packages in the dist/
directory.
Upload these packages to pypi by running:
python3 -m twine upload --repository pypi dist/*
This command will require you to log in to a pypi account.
FAQs
A library to retrieve Pyth account structures off the Solana blockchain.
We found that pythclient demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports four distinct alert actions instead of the previous two, and alert triaging allows users to override the actions taken for all individual alerts.
Security News
Polyfill.io has been serving malware for months via its CDN, after the project's open source maintainer sold the service to a company based in China.
Security News
OpenSSF is warning open source maintainers to stay vigilant against reputation farming on GitHub, where users artificially inflate their status by manipulating interactions on closed issues and PRs.