Files
xrpl-dev-portal/content/_code-samples/checks/py/create_check.py
2022-09-06 21:31:35 -07:00

93 lines
2.6 KiB
Python

from datetime import datetime, timedelta
from xrpl.clients import JsonRpcClient
from xrpl.models import CheckCreate, IssuedCurrencyAmount
from xrpl.transaction import (safe_sign_and_autofill_transaction,
send_reliable_submission)
from xrpl.utils import datetime_to_ripple_time, str_to_hex, xrp_to_drops
from xrpl.wallet import generate_faucet_wallet
client = JsonRpcClient("https://s.altnet.rippletest.net:51234") # connect to the testnetwork
"""Create a token check"""
# check receiver address
receiver_addr = "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" # Example: send back to Testnet Faucet
# token name
token = "LegitXRP"
# amount of token to deliver
amount = 10.00
# token issuer address
issuer = "r9CEVt4Cmcjt68ME6GKyhf2DyEGo2rG8AW"
# check expiry date
# check will expire after 5 days
expiry_date = datetime_to_ripple_time(datetime.now() + timedelta(days=5))
# generate wallet from seed
sender_wallet = generate_faucet_wallet(client=client)
# build check create transaction
check_txn = CheckCreate(account=sender_wallet.classic_address, destination=receiver_addr,
send_max=IssuedCurrencyAmount(
currency=str_to_hex(token),
issuer=issuer,
value=amount),
expiration=expiry_date)
# sign transaction
stxn = safe_sign_and_autofill_transaction(check_txn, sender_wallet, client)
# submit transaction and wait for result
stxn_response = send_reliable_submission(stxn, client)
# parse response for result
stxn_result = stxn_response.result
# print result and transaction hash
print(stxn_result["meta"]["TransactionResult"])
print(stxn_result["hash"])
############# CREATE XRP CHECK ################################
"""Create xrp check"""
# check receiver address
receiver_addr = generate_faucet_wallet(client=client).classic_address
# amount of xrp to deliver
amount = 10.00
# check expiry date
# check will expire after 5 days
expiry_date = datetime_to_ripple_time(datetime.now() + timedelta(days=5))
# generate wallet from seed
sender_wallet = generate_faucet_wallet(client=client)
# build check create transaction
check_txn = CheckCreate(account=sender_wallet.classic_address,
destination=receiver_addr,
send_max=xrp_to_drops(amount),
expiration=expiry_date)
# sign transaction
stxn = safe_sign_and_autofill_transaction(check_txn, sender_wallet, client)
# submit transaction and wait for result
stxn_response = send_reliable_submission(stxn, client)
# parse response for result
stxn_result = stxn_response.result
# print result and transaction hash
print(stxn_result["meta"]["TransactionResult"])
print(stxn_result["hash"])