mirror of
https://github.com/vibe-existing/pyfragment.git
synced 2026-07-25 06:54:31 +00:00
902b692dcb
- Added new methods for handling giveaways: `giveaway_premium` and `giveaway_stars`. - Refactored existing purchase methods into separate files: `purchase_premium.py` and `purchase_stars.py`. - Removed old premium and stars methods from the codebase. - Updated `__init__.py` to include new giveaway methods in the public API. - Introduced new result types for giveaways: `PremiumGiveawayResult` and `StarsGiveawayResult`. - Updated constants for new giveaway pages. - Enhanced error handling for configuration and user validation in giveaway methods. - Updated tests to cover new functionality and refactored existing tests to match new method locations.
44 lines
1.3 KiB
Python
44 lines
1.3 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 to 1 000 000 000
|
|
|
|
|
|
async def main() -> None:
|
|
async with FragmentClient(seed=SEED, api_key=API_KEY, cookies=COOKIES) as client:
|
|
try:
|
|
result = await client.topup_ton(USERNAME, amount=AMOUNT, show_sender=True)
|
|
except UserNotFoundError:
|
|
print(f"User {USERNAME} was not found on fragment.com — check the username and try again.")
|
|
return
|
|
except WalletError as e:
|
|
print(f"Wallet error — insufficient balance or misconfiguration: {e}")
|
|
return
|
|
except ConfigurationError as e:
|
|
print(f"Invalid argument: {e}")
|
|
return
|
|
|
|
print(f"{result.amount} TON successfully sent to {result.username} | tx: {result.transaction_id}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|