mirror of
https://github.com/bohd4nx/FragmentAPI.git
synced 2026-07-25 14:24:31 +00:00
228fbfcd1c
- Moved account-related functions and classes from `pyfragment.domains.tonapi.account` to `pyfragment.services.tonapi.account`. - Moved transaction-related functions and classes from `pyfragment.domains.tonapi.transaction` to `pyfragment.services.tonapi.transaction`. - Updated imports across the codebase to reflect the new structure. - Removed unused `tonapi` module files and cleaned up related code. - Introduced `ApiProvider` enum to manage API provider types. - Added validation functions for cookies and wallet versions in a new `validation.py` module.
60 lines
1.9 KiB
Python
60 lines
1.9 KiB
Python
"""
|
||
Example: purchase Telegram Stars for a user.
|
||
|
||
Amount must be an integer between 50 and 10 000 000.
|
||
Set show_sender=False to send anonymously.
|
||
Username can be "@username", "username", or "https://t.me/username".
|
||
"""
|
||
|
||
import asyncio
|
||
|
||
from pyfragment import ConfigurationError, FragmentClient, UserNotFoundError
|
||
from pyfragment.enums import PaymentMethod
|
||
|
||
SEED = "word1 word2 ... word24"
|
||
API_KEY = "YOUR_API_KEY" # tonconsole.com (tonapi, default) or t.me/toncenter
|
||
|
||
# Option A: extract cookies directly from your browser (no manual copy-paste needed)
|
||
# COOKIES = get_cookies_from_browser("chrome").cookies # or "firefox", "edge", "brave", ...
|
||
|
||
# Option B: provide cookies manually
|
||
COOKIES = {
|
||
"stel_ssid": "YOUR_STEL_SSID",
|
||
"stel_dt": "YOUR_STEL_DT",
|
||
"stel_token": "YOUR_STEL_TOKEN",
|
||
"stel_ton_token": "YOUR_STEL_TON_TOKEN",
|
||
}
|
||
|
||
USERNAME = "https://t.me/username"
|
||
AMOUNT = 500 # 50–10 000 000 stars
|
||
PAYMENT_METHOD = PaymentMethod.USDT_GRAM # GRAM, USDT_GRAM, USDT_ETH, USDT_POL, USDC_ETH, USDC_BASE, USDC_POL
|
||
|
||
|
||
async def main() -> None:
|
||
async with FragmentClient(
|
||
seed=SEED,
|
||
api_key=API_KEY,
|
||
cookies=COOKIES,
|
||
wallet_version="V5R1", # or "V4R2", "HighloadV2", "HighloadV3R1"
|
||
api_provider="tonapi", # or "toncenter"
|
||
) as client:
|
||
try:
|
||
result = await client.purchase_stars(
|
||
USERNAME,
|
||
amount=AMOUNT,
|
||
show_sender=True,
|
||
payment_method=PAYMENT_METHOD,
|
||
)
|
||
except UserNotFoundError:
|
||
print(f"User {USERNAME} was not found on fragment.com — check the username and try again.")
|
||
return
|
||
except ConfigurationError as e:
|
||
print(f"Invalid argument: {e}")
|
||
return
|
||
|
||
print(f"{result.amount} Stars successfully sent to {result.username} | tx: {result.transaction_id}")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
asyncio.run(main())
|