import asyncio
import os
from gql import gql, Client
from gql.transport.websockets import WebsocketsTransport
WS_URL = "wss://streaming.goldrushdata.com/graphql"
SUBSCRIPTION = gql("""
subscription {
newPairs(chain_name: SOLANA_MAINNET) {
block_signed_at
protocol
pair_address
base_token { contract_address contract_ticker_symbol contract_decimals }
quote_token { contract_address contract_ticker_symbol contract_decimals }
liquidity
}
}
""")
async def main():
transport = WebsocketsTransport(
url=WS_URL,
init_payload={"GOLDRUSH_API_KEY": os.environ["GOLDRUSH_API_KEY"]},
)
async with Client(transport=transport, fetch_schema_from_transport=False) as session:
async for result in session.subscribe(SUBSCRIPTION):
print(result["newPairs"])
asyncio.run(main())