Skip to content

dex-guru/dg-sdk-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dexguru-sdk.py

dexguru-logo

dexguru-sdk.py allows you to access dex.guru public methods from your async python scripts.

Installation

To install latest version, just run:

pip install dexguru-sdk

Getting Started

Take API key of your project from developers.dex.guru

import asyncio from dexguru_sdk import DexGuru YOUR_API_KEY = 'abc123' sdk = DexGuru(api_key=YOUR_API_KEY) async def main(): response = await sdk.get_chains() return response if __name__ == '__main__': asyncio.run(main())

Response

SDK response is Pydantic's models, so you can do whatever Pydantic allows with them.

You can find all models at dexguru_sdk.models:

class ChainModel(BaseModel): chain_id: int name: str description: str class ChainsListModel(BaseModel): total: int data: List[ChainModel]
from typing import List from dexguru_sdk.models import ChainModel, ChainsListModel response: ChainsListModel total: int = response.total data: List[ChainModel] = response.data

if you need a simple dict from response, Pydantic can convert it:

response = response.dict()

Usage Examples

Ok, we want to see how your favorite wallets are trading:

import asyncio from dexguru_sdk import DexGuru sdk = DexGuru(api_key='my_sweet_key_from_sweet_project') wallets = ['bot_wallet_address1', 'mistake_wallet_address2', 'heavy_wallet_address3'] async def main(): wallets_info: WalletsListModel = await sdk.get_wallets_info( chain_id=1, wallet_addresses=wallets, ) return wallets_info if __name__ == '__main__': asyncio.run(main())

wallets_info.total == 2 because we have mistake in address2 and it was skipped

Print wallets_info object:

total=2 data=[ WalletModel( wallet_address='bot_wallet_address1', volume_1m_usd=5000.123456, txns_1m=999999, category='bot', timestamp=1621635936 # last tx timestamp ), WalletModel( wallet_address='whale_wallet_address3', volume_1m_usd=107382.62431031652, txns_1m=8699, category='heavy', timestamp=1621635936 # last tx timestamp )]

Wow, they are good traders! Let's see what transactions they made:

wallets = ['bot_wallet_address1', 'mistake_wallet_address2', 'heavy_wallet_address3'] async def get_txs_from_list_of_wallets(wallets: List[str]) -> List: result = [] for wallet in wallets: txs = await sdk.get_wallet_transactions(chain_id=1, wallet_address=wallet) result.append(txs) return result if __name__ == '__main__': result = asyncio.run(get_txs_from_list_of_wallets(wallets))

About

dex.guru python sdk

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7

Languages