class XRP(object): client = None JSON_RPC_URL = "https://s.altnet.rippletest.net:51234/" # test_net def __new__(cls): if not hasattr(cls, 'instance'): cls.instance = super(cls, cls).__new__(cls) self = cls.instance self.client = JsonRpcClient(self.JSON_RPC_URL) return cls.instance def new_wallet(self) -> dict: test_wallet = generate_faucet_wallet(self.client, debug=False) return {'private_key':test_wallet.private_key,'classic_address':test_wallet.classic_address,'public_key':test_wallet.public_key ,\ 'sequence':test_wallet.sequence,'seed':test_wallet.seed } def payment(self, destination, sender, amount, sequence, seed) -> bool: my_tx_payment = Payment( account=sender, amount=xrp_to_drops(amount), destination=destination, sequence=sequence, ) sign_wallet = Wallet(seed, sequence) my_tx_payment_signed = safe_sign_and_autofill_transaction( my_tx_payment, sign_wallet, self.client) tx_response = send_reliable_submission(my_tx_payment_signed, self.client) return True def get_balance(self, sender): acct_info = AccountInfo( account=sender, ledger_index="validated", strict=True, ) response = self.client.request(acct_info) result = response.result print("response.status: ", response.status) balance = drops_to_xrp(response.result['account_data']['Balance']) print(balance) return balance
# 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, debug=True) # 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=12345, 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="validated", 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))