mirror of
https://github.com/bohd4nx/FragmentAPI.git
synced 2026-07-25 06:14:29 +00:00
8135a9da7e
- Renamed the package from `fragmentapi` to `pyfragment` across all modules and tests. - Removed the old wallet utility functions and replaced them with new implementations. - Updated the `pyproject.toml` to reflect the new package name and repository links. - Adjusted all import statements in tests to use the new package name. - Implemented new methods for gifting Telegram Premium, Stars, and topping up TON balance. - Added exception handling for various error scenarios in the API interactions. - Created new utility functions for handling HTTP requests and decoding payloads. - Established a clear structure for types and constants used throughout the library.
49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
"""
|
||
Example: top up a Telegram Ads account with TON.
|
||
|
||
Amount must be an integer between 1 and 1 000 000 000 TON.
|
||
Your wallet must hold at least the topup amount + ~0.056 TON for gas.
|
||
"""
|
||
|
||
import asyncio
|
||
|
||
from pyfragment import ConfigurationError, FragmentClient, UserNotFoundError, WalletError
|
||
|
||
SEED = "word1 word2 ... word24"
|
||
API_KEY = "YOUR_TONAPI_KEY"
|
||
COOKIES = {
|
||
"stel_ssid": "YOUR_STEL_SSID",
|
||
"stel_dt": "YOUR_STEL_DT",
|
||
"stel_token": "YOUR_STEL_TOKEN",
|
||
"stel_ton_token": "YOUR_STEL_TON_TOKEN",
|
||
}
|
||
|
||
USERNAME = "@username"
|
||
AMOUNT = 10 # TON, integer — 1–1 000 000 000
|
||
|
||
|
||
async def main() -> None:
|
||
client = FragmentClient(seed=SEED, api_key=API_KEY, cookies=COOKIES)
|
||
|
||
try:
|
||
result = await client.topup_ton(USERNAME, amount=AMOUNT, show_sender=True)
|
||
except UserNotFoundError:
|
||
print(f"User {USERNAME!r} not found on Fragment.")
|
||
return
|
||
except WalletError as e:
|
||
print(f"Wallet error: {e}")
|
||
return
|
||
except ConfigurationError as e:
|
||
print(f"Invalid parameters: {e}")
|
||
return
|
||
|
||
print("TON topped up")
|
||
print(" %-14s %s" % ("Username:", result.username))
|
||
print(" %-14s %s TON" % ("Amount:", result.amount))
|
||
print(" %-14s %s" % ("Transaction:", result.transaction_id))
|
||
print(" %-14s %s" % ("Timestamp:", result.timestamp))
|
||
|
||
|
||
if __name__ == "__main__":
|
||
asyncio.run(main())
|