mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2026-07-26 16:40:14 +00:00
55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
from xrpl.clients import JsonRpcClient
|
|
from xrpl.models.requests import AccountObjects, AccountObjectType
|
|
from xrpl.models.transactions import AccountSet, TicketCreate
|
|
from xrpl.transaction import submit_and_wait
|
|
from xrpl.wallet import generate_faucet_wallet
|
|
|
|
# Set up client and account
|
|
JSON_RPC_URL = "https://s.altnet.rippletest.net:51234/"
|
|
client = JsonRpcClient(JSON_RPC_URL)
|
|
|
|
# Fund wallet
|
|
print("Getting a wallet from the faucet...")
|
|
wallet = generate_faucet_wallet(client=client)
|
|
print(f"Wallet address: {wallet.address}")
|
|
|
|
# Create Tickets
|
|
ticket_create = TicketCreate(
|
|
account=wallet.address,
|
|
ticket_count=10,
|
|
)
|
|
print("\nSubmitting TicketCreate transaction...")
|
|
ticket_create_result = submit_and_wait(ticket_create, client, wallet)
|
|
print(f"TicketCreate hash: {ticket_create_result.result['hash']}, validated: {ticket_create_result.result['validated']}")
|
|
|
|
# Check Available Tickets
|
|
print("\nChecking available tickets...")
|
|
tickets_response = client.request(AccountObjects(
|
|
account=wallet.address,
|
|
type=AccountObjectType.TICKET,
|
|
))
|
|
tickets = tickets_response.result["account_objects"]
|
|
print(f"Found {len(tickets)} Tickets")
|
|
|
|
# Choose an arbitrary Ticket to use
|
|
use_ticket = tickets[0]["TicketSequence"]
|
|
print(f"Using Ticket Sequence: {use_ticket}")
|
|
|
|
# Use a Ticket
|
|
ticketed_tx = AccountSet(
|
|
account=wallet.address,
|
|
ticket_sequence=use_ticket,
|
|
sequence=0,
|
|
)
|
|
print("\nSubmitting ticketed AccountSet transaction...")
|
|
ticketed_result = submit_and_wait(ticketed_tx, client, wallet)
|
|
print(f"Ticketed AccountSet hash: {ticketed_result.result['hash']}, validated: {ticketed_result.result['validated']}")
|
|
|
|
# Recheck Available Tickets
|
|
print("\nRechecking available tickets...")
|
|
tickets_after_response = client.request(AccountObjects(
|
|
account=wallet.address,
|
|
type=AccountObjectType.TICKET,
|
|
))
|
|
print(f"Found {len(tickets_after_response.result['account_objects'])} Tickets")
|