Send XRP: Draft Python sample code

Send XRP (.py) fixes

Send XRP (py): fix sneaky is_successful bug
This commit is contained in:
mDuo13
2021-03-23 22:52:54 -07:00
parent 1554c65439
commit 4bc161102e
2 changed files with 59 additions and 1 deletions

View File

@@ -2,7 +2,7 @@
let address = "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" let address = "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe"
let secret = "s████████████████████████████" let secret = "s████████████████████████████"
// Connect ------------------------------------------------------------------- // Connect ---------------------------------------------------------------------
// ripple = require('ripple-lib') // For Node.js. In browsers, use <script>. // ripple = require('ripple-lib') // For Node.js. In browsers, use <script>.
api = new ripple.RippleAPI({server: 'wss://s.altnet.rippletest.net:51233'}) api = new ripple.RippleAPI({server: 'wss://s.altnet.rippletest.net:51233'})
api.connect() api.connect()

View File

@@ -0,0 +1,58 @@
# Connect ----------------------------------------------------------------------
from xrpl.clients import JsonRpcClient
testnet_url = "https://s.altnet.rippletest.net:51234"
client = JsonRpcClient(testnet_url)
# Get credentials from the Testnet Faucet -----------------------------------
faucet_url = "https://faucet.altnet.rippletest.net/accounts"
print("Getting a new account from the Testnet faucet...")
from xrpl.wallet import generate_faucet_wallet
test_wallet = generate_faucet_wallet(client, debug=True)
# Prepare transaction ----------------------------------------------------------
from xrpl.ledger import get_latest_validated_ledger_sequence
current_validated_ledger = get_latest_validated_ledger_sequence(client)
min_ledger = current_validated_ledger + 1
max_ledger = min_ledger + 20
from xrpl.models.transactions import Payment
my_payment = Payment(
account=test_wallet.classic_address,
amount="22000000",
destination="rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe",
last_ledger_sequence=max_ledger,
sequence=test_wallet.next_sequence_num,
fee="10",
)
print("Payment object:", my_payment)
print(f"Can be validated in ledger range: {min_ledger} - {max_ledger}")
# Sign transaction -------------------------------------------------------------
import xrpl.transaction
signed = xrpl.transaction.safe_sign_transaction(my_payment, test_wallet)
print("Signed transaction blob:", signed)
# Submit transaction -----------------------------------------------------------
prelim_result = xrpl.transaction.submit_transaction_blob(signed, client)
print("Preliminary transaction result:", prelim_result)
if not prelim_result.is_successful():
exit("Submit failed.")
tx_id = prelim_result.result["tx_json"]["hash"]
# Wait for validation ----------------------------------------------------------
from time import sleep
while True:
sleep(1)
current_validated_ledger = get_latest_validated_ledger_sequence(client)
tx_response = xrpl.transaction.get_transaction_from_hash(tx_id, client)
if tx_response.is_successful():
if tx_response.result.get("validated"):
print("Got validated result!")
print(tx_response)
print(f"Explorer link: https://testnet.xrpl.org/transactions/{tx_id}")
break
else:
print(f"Results not yet validated... "
f"({current_validated_ledger}/{max_ledger})")
if current_validated_ledger > max_ledger:
print("max_ledger has passed. Last tx response:", tx_response)