mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-24 21:55:52 +00:00
remove env setup, begin refactor
This commit is contained in:
35
content/_code-samples/xrpl-py/get-acct-info.py
Normal file
35
content/_code-samples/xrpl-py/get-acct-info.py
Normal file
@@ -0,0 +1,35 @@
|
||||
# Define the network client
|
||||
from xrpl.clients import JsonRpcClient
|
||||
JSON_RPC_URL = "https://s.altnet.rippletest.net:51234/"
|
||||
client = JsonRpcClient(JSON_RPC_URL)
|
||||
|
||||
|
||||
# Create a wallet using the testnet faucet:
|
||||
# https://xrpl.org/xrp-testnet-faucet.html
|
||||
from xrpl.wallet import generate_faucet_wallet
|
||||
test_wallet = generate_faucet_wallet(client)
|
||||
|
||||
# Create an account str from the wallet
|
||||
test_account = test_wallet.classic_address
|
||||
|
||||
# Derive an x-address from the classic address:
|
||||
# https://xrpaddress.info/
|
||||
from xrpl.core import addresscodec
|
||||
test_xaddress = addresscodec.classic_address_to_xaddress(test_account, tag=0, is_test_network=True)
|
||||
print("\nClassic address:\n\n", test_account)
|
||||
print("X-address:\n\n", test_xaddress)
|
||||
|
||||
|
||||
# Look up info about your account
|
||||
from xrpl.models.requests.account_info import AccountInfo
|
||||
acct_info = AccountInfo(
|
||||
account=test_account,
|
||||
ledger_index="current",
|
||||
queue=True,
|
||||
strict=True,
|
||||
)
|
||||
response = client.request(acct_info)
|
||||
result = response.result
|
||||
print("response.status: ", response.status)
|
||||
import json
|
||||
print(json.dumps(response.result, indent=4, sort_keys=True))
|
||||
@@ -1,153 +0,0 @@
|
||||
import xrpl
|
||||
from xrpl.core import keypairs
|
||||
from xrpl.core.addresscodec.main import classic_address_to_xaddress
|
||||
from xrpl.clients.json_rpc_client import JsonRpcClient
|
||||
from xrpl.wallet import generate_faucet_wallet
|
||||
from xrpl.models.requests.account_info import AccountInfo
|
||||
from xrpl.wallet import Wallet
|
||||
from xrpl.models.transactions.transaction import Transaction, TransactionType, Memo
|
||||
from xrpl.models.transactions import AccountSet, Payment
|
||||
from xrpl.transaction import (
|
||||
LastLedgerSequenceExpiredException,
|
||||
)
|
||||
from xrpl.transaction.main import (
|
||||
safe_sign_and_submit_transaction,
|
||||
safe_sign_transaction,
|
||||
submit_transaction_blob,
|
||||
transaction_json_to_binary_codec_form,
|
||||
)
|
||||
from xrpl.transaction.reliable_submission import send_reliable_submission
|
||||
from xrpl.account import get_next_valid_seq_number
|
||||
import json
|
||||
|
||||
# Define the network client
|
||||
JSON_RPC_URL_TESTNET = "https://s.altnet.rippletest.net:51234/"
|
||||
JSON_RPC_CLIENT_TESTNET = JsonRpcClient(JSON_RPC_URL_TESTNET)
|
||||
|
||||
|
||||
JSON_RPC_URL_DEVNET = "https://s.devnet.rippletest.net:51234/"
|
||||
JSON_RPC_CLIENT_DEVNET = JsonRpcClient(JSON_RPC_URL_DEVNET)
|
||||
|
||||
# Create wallets using the testnet faucet:
|
||||
# https://xrpl.org/xrp-testnet-faucet.html
|
||||
TESTNET_WALLET = generate_faucet_wallet(JSON_RPC_CLIENT_TESTNET)
|
||||
TESTNET_CLASSIC_ACCOUNT = TESTNET_WALLET.classic_address
|
||||
|
||||
DEVNET_WALLET = generate_faucet_wallet(JSON_RPC_CLIENT_DEVNET)
|
||||
DEVNET_CLASSIC_ACCOUNT = DEVNET_WALLET.classic_address
|
||||
|
||||
# Define the receiver accounts
|
||||
TESTNET_DESTINATION_WALLET = generate_faucet_wallet(JSON_RPC_CLIENT_TESTNET)
|
||||
TESTNET_DESTINATION_ACCOUNT = TESTNET_DESTINATION_WALLET.classic_address
|
||||
|
||||
|
||||
# Define variables to use for transactions
|
||||
_ACCOUNT = "r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ"
|
||||
_AMOUNT = "20"
|
||||
_FEE = "10"
|
||||
_MEMO = "I sent this with xrpl-py!"
|
||||
_SEQUENCE = 19048
|
||||
SET_FLAG = 8
|
||||
|
||||
# Secrets to use for signing transactions
|
||||
_SECRET = ""
|
||||
_SEED = ""
|
||||
_SEED_HEX = "EACEB081770D8ADE216C85445DD6FB002C6B5A2930F2DECE006DA18150CB18F6"
|
||||
_PASSPHRASE = "mytopsecretpassphrasethatwillneverbehacked"
|
||||
|
||||
|
||||
# Create an XRP Ledger wallet from the
|
||||
# testnet faucet and derive an
|
||||
# x-address for the address
|
||||
def create_wallet_from_faucet():
|
||||
TESTNET_WALLET = generate_faucet_wallet(JSON_RPC_CLIENT_TESTNET)
|
||||
wallet_classic_address = TESTNET_WALLET.classic_address
|
||||
xaddress = addresscodec.classic_address_to_xaddress(
|
||||
wallet2_address, tag, True
|
||||
)
|
||||
print("\nClassic address:\n\n", wallet_classic_address)
|
||||
print("X-address:\n\n", xaddress)
|
||||
|
||||
# Create an XRP Ledger wallet from
|
||||
# a generated seed
|
||||
def create_wallet_from_seed():
|
||||
seed = keypairs.generate_seed()
|
||||
wallet_from_seed = xrpl.wallet.Wallet(seed)
|
||||
print(wallet_from_seed)
|
||||
|
||||
# Optionally generate private and public keys
|
||||
# to manage your XRP Ledger account
|
||||
def generate_keys():
|
||||
seed = keypairs.generate_seed()
|
||||
public, private = keypairs.derive_keypair(seed)
|
||||
CLASSIC_ACCOUNT = keypairs.derive_classic_address(public)
|
||||
print(f"Here's the public key:\n", public)
|
||||
print(f"Here's the private key:\n", private + "\nStore this in a secure place.")
|
||||
|
||||
# Look up information about your account
|
||||
def get_acct_info():
|
||||
client = JsonRpcClient(JSON_RPC_URL_TESTNET)
|
||||
acct_info = AccountInfo(
|
||||
account=wallet,
|
||||
ledger_index="current",
|
||||
queue=True,
|
||||
strict=True,
|
||||
)
|
||||
response = JSON_RPC_CLIENT_TESTNET.request(acct_info)
|
||||
print("response.status: ", response.status)
|
||||
print("response.result: ", response.result)
|
||||
print("response.id: ", response.id)
|
||||
print("response.type: ", response.type)
|
||||
print("response.result.account_data.Balance", response.result.account_data.Balance)
|
||||
|
||||
|
||||
# FUTURE Prepare tx
|
||||
def prepare_tx_future():
|
||||
my_tx_future = Transaction.from_xrpl(
|
||||
{
|
||||
"TransactionType": "Payment",
|
||||
"Amount": "50",
|
||||
"Destination": "rNZz9HS8mmKqb3jGk28PjNMkkRXRzGdTda",
|
||||
"Account": "rKQxjvLW67ZkMQdu9wmy73vhrbPcir21SV"
|
||||
}
|
||||
)
|
||||
TESTNET_WALLET.next_sequence_num = get_next_valid_seq_number(TESTNET_CLASSIC_ACCOUNT, JSON_RPC_CLIENT_TESTNET)
|
||||
|
||||
# CURRENT Prepare tx
|
||||
def prepare_tx_current():
|
||||
my_tx_current = Payment(
|
||||
account=TESTNET_CLASSIC_ACCOUNT,
|
||||
amount=_AMOUNT,
|
||||
destination=TESTNET_DESTINATION_ACCOUNT,
|
||||
memos=_MEMO,
|
||||
transaction_type=TransactionType.PAYMENT,
|
||||
)
|
||||
TESTNET_WALLET.next_sequence_num = get_next_valid_seq_number(TESTNET_CLASSIC_ACCOUNT, JSON_RPC_CLIENT_TESTNET)
|
||||
|
||||
# Prepare the tx by formatting it into
|
||||
# the shape expected by the XRP Ledger
|
||||
# and signing it
|
||||
def prepare_sign_submit_tx():
|
||||
TESTNET_WALLET.next_sequence_num = get_next_valid_seq_number(TESTNET_CLASSIC_ACCOUNT, JSON_RPC_CLIENT_TESTNET)
|
||||
account_set = AccountSet(
|
||||
account=TESTNET_CLASSIC_ACCOUNT,
|
||||
fee=_FEE,
|
||||
sequence=TESTNET_WALLET.next_sequence_num,
|
||||
set_flag=SET_FLAG,
|
||||
)
|
||||
response = safe_sign_and_submit_transaction(account_set, TESTNET_WALLET, JSON_RPC_CLIENT_TESTNET)
|
||||
value = tx.to_dict()[]
|
||||
signed_tx = Sign(
|
||||
transaction=value,
|
||||
seed=_SEED,
|
||||
seed_hex=_SEED_HEX,
|
||||
)
|
||||
print("Signed transaction: ", signed_tx)
|
||||
payment_transaction = Payment.from_dict(value)
|
||||
print("response.result.validated: ", response["validated"])
|
||||
print("response.result.meta: ", response.result["meta"]["TransactionResult"], "tesSUCCESS")
|
||||
if response.result["meta"]["TransactionResult"] != "tesSUCCESS":
|
||||
print("Transaction not yet validated")
|
||||
else:
|
||||
print("Validated!")
|
||||
|
||||
Reference in New Issue
Block a user