mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-21 20:25:51 +00:00
Merge pull request #1493 from wojake/patch-6
Add Python code sample for asfRequireDest
This commit is contained in:
@@ -0,0 +1,4 @@
|
|||||||
|
# Require Destination Tags Sample Code
|
||||||
|
|
||||||
|
This code demonstrates how to configure your XRP Ledger account to require destination tags using [xrpl-py (Python)](https://github.com/XRPLF/xrpl-py). For a detailed explanation, see <https://xrpl.org/require-destination-tags.html>.
|
||||||
|
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
from xrpl.clients import JsonRpcClient
|
||||||
|
from xrpl.models.transactions import AccountSet, AccountSetFlag
|
||||||
|
from xrpl.transaction import safe_sign_and_autofill_transaction, submit_transaction
|
||||||
|
from xrpl.wallet import generate_faucet_wallet
|
||||||
|
from xrpl.models.requests import AccountInfo
|
||||||
|
|
||||||
|
# Stand-alone code sample for the "Require Destination Tags" tutorial:
|
||||||
|
# https://xrpl.org/require-destination-tags.html
|
||||||
|
|
||||||
|
lsfRequireDestTag = 131072
|
||||||
|
|
||||||
|
# Connect to a testnet node
|
||||||
|
print("Connecting to Testnet...")
|
||||||
|
JSON_RPC_URL = "https://s.altnet.rippletest.net:51234/"
|
||||||
|
client = JsonRpcClient(JSON_RPC_URL)
|
||||||
|
|
||||||
|
# Get credentials from the Testnet Faucet
|
||||||
|
print("Requesting address from the Testnet faucet...")
|
||||||
|
test_wallet = generate_faucet_wallet(client=client)
|
||||||
|
myAddr = test_wallet.classic_address
|
||||||
|
|
||||||
|
# Construct AccountSet transaction
|
||||||
|
tx = AccountSet(
|
||||||
|
account=myAddr,
|
||||||
|
set_flag=AccountSetFlag.ASF_REQUIRE_DEST
|
||||||
|
)
|
||||||
|
print(f"Prepared transaction: {tx}")
|
||||||
|
|
||||||
|
# Sign the transaction
|
||||||
|
my_tx_payment_signed = safe_sign_and_autofill_transaction(tx, wallet=test_wallet, client=client)
|
||||||
|
print(f"Transaction Hash: {my_tx_payment_signed.txn_signature}")
|
||||||
|
|
||||||
|
# Send the transaction to the node
|
||||||
|
print(f"Enabling Require Destination Tag flag (asfRequireDest) on {myAddr}")
|
||||||
|
submit_tx = submit_transaction(client=client, transaction=my_tx_payment_signed)
|
||||||
|
submit_tx = submit_tx.result["engine_result"]
|
||||||
|
print(f"Submit result: {submit_tx}")
|
||||||
|
|
||||||
|
# Verify Account Settings
|
||||||
|
get_acc_flag = AccountInfo(
|
||||||
|
account=myAddr
|
||||||
|
)
|
||||||
|
response = client.request(get_acc_flag)
|
||||||
|
|
||||||
|
if response.result['account_data']['Flags'] & lsfRequireDestTag:
|
||||||
|
print("Require Destination Tag is ENABLED.")
|
||||||
|
else:
|
||||||
|
print("Require Destination Tag is DISABLED.")
|
||||||
Reference in New Issue
Block a user