diff --git a/content/_code-samples/quickstart/python/lesson1-send-xrp.py b/content/_code-samples/quickstart/python/lesson1-send-xrp.py new file mode 100644 index 0000000000..cb90d5106e --- /dev/null +++ b/content/_code-samples/quickstart/python/lesson1-send-xrp.py @@ -0,0 +1,153 @@ +import tkinter as tk +import xrpl +import json + +from mod1 import get_account +from mod1 import get_account_info +from mod1 import send_xrp + +############################################# +## Handlers ################################# +############################################# + +# sb seed: snk7pMfHPZoUpwMQuFApo3XTLRJhn +# op seed: spmiHeaCDMFX56SNZVsCbi34WEE52 + +def get_standby_account(): + new_wallet = get_account(ent_standby_seed.get()) + ent_standby_account.delete(0, tk.END) + ent_standby_seed.delete(0, tk.END) + ent_standby_account.insert(0, new_wallet.classic_address) + ent_standby_seed.insert(0, new_wallet.seed) +def get_standby_account_info(): + accountInfo = get_account_info(ent_standby_account.get()) + ent_standby_balance.delete(0, tk.END) + ent_standby_balance.insert(0,accountInfo['Balance']) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0",json.dumps(accountInfo, indent=4)) +def standby_send_xrp(): + response = send_xrp(ent_standby_seed.get(),ent_standby_amount.get(), + ent_standby_destination.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0",json.dumps(response.result, indent=4)) + get_standby_account_info() + get_operational_account_info() +def get_operational_account(): + new_wallet = get_account(ent_operational_seed.get()) + ent_operational_account.delete(0, tk.END) + ent_operational_account.insert(0, new_wallet.classic_address) + ent_operational_seed.delete(0, tk.END) + ent_operational_seed.insert(0, new_wallet.seed) +def get_operational_account_info(): + accountInfo = get_account_info(ent_operational_account.get()) + ent_operational_balance.delete(0, tk.END) + ent_operational_balance.insert(0,accountInfo['Balance']) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0",json.dumps(accountInfo, indent=4)) +def operational_send_xrp(): + response = send_xrp(ent_operational_seed.get(),ent_operational_amount.get(), ent_operational_destination.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0",json.dumps(response.result,indent=4)) + get_standby_account_info() + get_operational_account_info() + +# Create a new window with the title "Quickstart Module 1" +window = tk.Tk() +window.title("Quickstart Module 1") + +# Form frame +frm_form = tk.Frame(relief=tk.SUNKEN, borderwidth=3) +frm_form.pack() + +# Create the Label and Entry widgets for "Standby Account" +lbl_standy_seed = tk.Label(master=frm_form, text="Standby Seed") +ent_standby_seed = tk.Entry(master=frm_form, width=50) +lbl_standby_account = tk.Label(master=frm_form, text="Standby Account") +ent_standby_account = tk.Entry(master=frm_form, width=50) +lbl_standby_balance = tk.Label(master=frm_form, text="XRP Balance") +ent_standby_balance = tk.Entry(master=frm_form, width=50) +lbl_standy_amount = tk.Label(master=frm_form, text="Amount") +ent_standby_amount = tk.Entry(master=frm_form, width=50) +lbl_standby_destination = tk.Label(master=frm_form, text="Destination") +ent_standby_destination = tk.Entry(master=frm_form, width=50) +lbl_standby_results = tk.Label(master=frm_form,text='Results') +text_standby_results = tk.Text(master=frm_form, height = 20, width = 65) + +# Place fields in a grid. +lbl_standy_seed.grid(row=0, column=0, sticky="w") +ent_standby_seed.grid(row=0, column=1) +lbl_standby_account.grid(row=2, column=0, sticky="e") +ent_standby_account.grid(row=2, column=1) +lbl_standy_amount.grid(row=3, column=0, sticky="e") +ent_standby_amount.grid(row=3, column=1) +lbl_standby_destination.grid(row=4, column=0, sticky="e") +ent_standby_destination.grid(row=4, column=1) +lbl_standby_balance.grid(row=5, column=0, sticky="e") +ent_standby_balance.grid(row=5, column=1) +lbl_standby_results.grid(row=6, column=0, sticky="ne") +text_standby_results.grid(row=6, column=1, sticky="nw") + +############################################### +## Operational Account ######################## +############################################### + +# Create the Label and Entry widgets for "Operational Account" +lbl_operational_seed = tk.Label(master=frm_form, text="Operational Seed") +ent_operational_seed = tk.Entry(master=frm_form, width=50) +lbl_operational_account = tk.Label(master=frm_form, text="Operational Account") +ent_operational_account = tk.Entry(master=frm_form, width=50) +lbl_operational_balance = tk.Label(master=frm_form, text="XRP Balance") +ent_operational_balance = tk.Entry(master=frm_form, width=50) +lbl_operational_amount = tk.Label(master=frm_form, text="Amount") +ent_operational_amount = tk.Entry(master=frm_form, width=50) +lbl_operational_destination = tk.Label(master=frm_form, text="Destination") +ent_operational_destination = tk.Entry(master=frm_form, width=50) +lbl_operational_results = tk.Label(master=frm_form,text='Results') +text_operational_results = tk.Text(master=frm_form, height = 20, width = 65) + + +#Place the widgets in a grid +lbl_operational_seed.grid(row=0, column=4, sticky="e") +ent_operational_seed.grid(row=0, column=5, sticky="w") +lbl_operational_account.grid(row=2,column=4, sticky="e") +ent_operational_account.grid(row=2,column=5, sticky="w") +lbl_operational_amount.grid(row=3, column=4, sticky="e") +ent_operational_amount.grid(row=3, column=5, sticky="w") +lbl_operational_destination.grid(row=4, column=4, sticky="e") +ent_operational_destination.grid(row=4, column=5, sticky="w") +lbl_operational_balance.grid(row=5, column=4, sticky="e") +ent_operational_balance.grid(row=5, column=5, sticky="w") +lbl_operational_results.grid(row=6, column=4, sticky="ne") +text_operational_results.grid(row=6, column=5, sticky="nw") + +############################################# +## Buttons ################################## +############################################# + +# Create the Get Standby Account Buttons +btn_get_standby_account = tk.Button(master=frm_form, text="Get Standby Account", + command = get_standby_account) +btn_get_standby_account.grid(row=0, column=2, sticky = "nsew") +btn_get_standby_account_info = tk.Button(master=frm_form, + text="Get Standby Account Info", + command = get_standby_account_info) +btn_get_standby_account_info.grid(row=1, column=2, sticky = "nsew") +btn_standby_send_xrp = tk.Button(master=frm_form, text="Send XRP >", + command = standby_send_xrp) +btn_standby_send_xrp.grid(row=2, column = 2, sticky = "nsew") + +# Create the Operational Account Buttons +btn_get_operational_account = tk.Button(master=frm_form, + text="Get Operational Account", + command = get_operational_account) +btn_get_operational_account.grid(row=0, column=3, sticky = "nsew") +btn_get_op_account_info = tk.Button(master=frm_form, text="Get Op Account Info", + command = get_operational_account_info) +btn_get_op_account_info.grid(row=1, column=3, sticky = "nsew") +btn_op_send_xrp = tk.Button(master=frm_form, text="< Send XRP", + command = operational_send_xrp) +btn_op_send_xrp.grid(row=2, column = 3, sticky = "nsew") + + +# Start the application +window.mainloop() diff --git a/content/_code-samples/quickstart/python/lesson2-send-currency.py b/content/_code-samples/quickstart/python/lesson2-send-currency.py new file mode 100644 index 0000000000..43f5806b3f --- /dev/null +++ b/content/_code-samples/quickstart/python/lesson2-send-currency.py @@ -0,0 +1,250 @@ +import tkinter as tk +import xrpl +import json + +from mod2 import create_trust_line +from mod2 import send_currency +from mod2 import get_balance +from mod2 import configure_account + +from mod1 import get_account +from mod1 import get_account_info +from mod1 import send_xrp + +############################################# +## Handlers ################################# +############################################# + +# Module 2 Handlers +def standby_create_trust_line(): + results = create_trust_line(ent_standby_seed.get(), + ent_standby_destination.get(), + ent_standby_currency.get(), + ent_standby_amount.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_send_currency(): + results = send_currency(ent_standby_seed.get(), + ent_standby_destination.get(), + ent_standby_currency.get(), + ent_standby_amount.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_configure_account(): + results = configure_account( + ent_standby_seed.get(), + standbyRippling) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def operational_create_trust_line(): + results = create_trust_line(ent_operational_seed.get(), + ent_operational_destination.get(), + ent_operational_currency.get(), + ent_operational_amount.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_send_currency(): + results = send_currency(ent_operational_seed.get(), + ent_operational_destination.get(), + ent_operational_currency.get(), + ent_operational_amount.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_configure_account(): + results = configure_account( + ent_operational_seed.get(), + operationalRippling) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def get_balances(): + results = get_balance(ent_operational_account.get(), ent_standby_account.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) + results = get_balance(ent_standby_account.get(), ent_operational_account.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) + +# Module 1 Handlers +def get_standby_account(): + new_wallet = get_account(ent_standby_seed.get()) + ent_standby_account.delete(0, tk.END) + ent_standby_seed.delete(0, tk.END) + ent_standby_account.insert(0, new_wallet.classic_address) + ent_standby_seed.insert(0, new_wallet.seed) +def get_standby_account_info(): + accountInfo = get_account_info(ent_standby_account.get()) + ent_standby_balance.delete(0, tk.END) + ent_standby_balance.insert(0,accountInfo['Balance']) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0",json.dumps(accountInfo, indent=4)) +def standby_send_xrp(): + response = send_xrp(ent_standby_seed.get(),ent_standby_amount.get(), + ent_standby_destination.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0",json.dumps(response.result, indent=4)) + get_standby_account_info() + get_operational_account_info() +def get_operational_account(): + new_wallet = get_account(ent_operational_seed.get()) + ent_operational_account.delete(0, tk.END) + ent_operational_account.insert(0, new_wallet.classic_address) + ent_operational_seed.delete(0, tk.END) + ent_operational_seed.insert(0, new_wallet.seed) +def get_operational_account_info(): + accountInfo = get_account_info(ent_operational_account.get()) + ent_operational_balance.delete(0, tk.END) + ent_operational_balance.insert(0,accountInfo['Balance']) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0",json.dumps(accountInfo, indent=4)) +def operational_send_xrp(): + response = send_xrp(ent_operational_seed.get(),ent_operational_amount.get(), ent_operational_destination.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0",json.dumps(response.result,indent=4)) + get_standby_account_info() + get_operational_account_info() + +# Create a new window with the title "Quickstart Module 2" +window = tk.Tk() +window.title("Quickstart Module 2") + + +standbyRippling = tk.BooleanVar() +operationalRippling = tk.BooleanVar() + + +# Form frame +frm_form = tk.Frame(relief=tk.SUNKEN, borderwidth=3) +frm_form.pack() + +# Create the Label and Entry widgets for "Standby Account" +lbl_standy_seed = tk.Label(master=frm_form, text="Standby Seed") +ent_standby_seed = tk.Entry(master=frm_form, width=50) +lbl_standby_account = tk.Label(master=frm_form, text="Standby Account") +ent_standby_account = tk.Entry(master=frm_form, width=50) +lbl_standby_balance = tk.Label(master=frm_form, text="XRP Balance") +ent_standby_balance = tk.Entry(master=frm_form, width=50) +lbl_standy_amount = tk.Label(master=frm_form, text="Amount") +ent_standby_amount = tk.Entry(master=frm_form, width=50) +lbl_standby_destination = tk.Label(master=frm_form, text="Destination") +ent_standby_destination = tk.Entry(master=frm_form, width=50) +lbl_standby_currency = tk.Label(master=frm_form, text="Currency") +ent_standby_currency = tk.Entry(master=frm_form, width=50) +cb_standby_allow_rippling = tk.Checkbutton(master=frm_form, text="Allow Rippling", variable=standbyRippling, onvalue=True, offvalue=False) +lbl_standby_results = tk.Label(master=frm_form,text='Results') +text_standby_results = tk.Text(master=frm_form, height = 20, width = 65) + +# Place field in a grid. +lbl_standy_seed.grid(row=0, column=0, sticky="w") +ent_standby_seed.grid(row=0, column=1) +lbl_standby_account.grid(row=2, column=0, sticky="e") +ent_standby_account.grid(row=2, column=1) +lbl_standy_amount.grid(row=3, column=0, sticky="e") +ent_standby_amount.grid(row=3, column=1) +lbl_standby_destination.grid(row=4, column=0, sticky="e") +ent_standby_destination.grid(row=4, column=1) +lbl_standby_balance.grid(row=5, column=0, sticky="e") +ent_standby_balance.grid(row=5, column=1) +lbl_standby_currency.grid(row=6, column=0, sticky="e") +ent_standby_currency.grid(row=6, column=1) +cb_standby_allow_rippling.grid(row=7,column=1, sticky="w") +lbl_standby_results.grid(row=8, column=0, sticky="ne") +text_standby_results.grid(row=8, column=1, sticky="nw") +cb_standby_allow_rippling.select() + +############################################### +## Operational Account ######################## +############################################### + +# Create the Label and Entry widgets for "Operational Account" +lbl_operational_seed = tk.Label(master=frm_form, text="Operational Seed") +ent_operational_seed = tk.Entry(master=frm_form, width=50) +lbl_operational_account = tk.Label(master=frm_form, text="Operational Account") +ent_operational_account = tk.Entry(master=frm_form, width=50) +lbl_operational_balance = tk.Label(master=frm_form, text="XRP Balance") +ent_operational_balance = tk.Entry(master=frm_form, width=50) +lbl_operational_amount = tk.Label(master=frm_form, text="Amount") +ent_operational_amount = tk.Entry(master=frm_form, width=50) +lbl_operational_destination = tk.Label(master=frm_form, text="Destination") +ent_operational_destination = tk.Entry(master=frm_form, width=50) +lbl_operational_currency = tk.Label(master=frm_form, text="Currency") +ent_operational_currency = tk.Entry(master=frm_form, width=50) +cb_operational_allow_rippling = tk.Checkbutton(master=frm_form, text="Allow Rippling", variable=operationalRippling, onvalue=True, offvalue=False) + +lbl_operational_results = tk.Label(master=frm_form,text='Results') +text_operational_results = tk.Text(master=frm_form, height = 20, width = 65) + +#Place the widgets in a grid +lbl_operational_seed.grid(row=0, column=4, sticky="e") +ent_operational_seed.grid(row=0, column=5, sticky="w") +lbl_operational_account.grid(row=2,column=4, sticky="e") +ent_operational_account.grid(row=2,column=5, sticky="w") +lbl_operational_amount.grid(row=3, column=4, sticky="e") +ent_operational_amount.grid(row=3, column=5, sticky="w") +lbl_operational_destination.grid(row=4, column=4, sticky="e") +ent_operational_destination.grid(row=4, column=5, sticky="w") +lbl_operational_balance.grid(row=5, column=4, sticky="e") +ent_operational_balance.grid(row=5, column=5, sticky="w") +lbl_operational_currency.grid(row=6, column=4, sticky="e") +ent_operational_currency.grid(row=6, column=5) +cb_operational_allow_rippling.grid(row=7,column=5, sticky="w") +lbl_operational_results.grid(row=8, column=4, sticky="ne") +text_operational_results.grid(row=8, column=5, sticky="nw") +cb_operational_allow_rippling.select() + +############################################# +## Buttons ################################## +############################################# + +# Create the Standby Account Buttons +btn_get_standby_account = tk.Button(master=frm_form, text="Get Standby Account", + command = get_standby_account) +btn_get_standby_account.grid(row=0, column=2, sticky = "nsew") +btn_get_standby_account_info = tk.Button(master=frm_form, + text="Get Standby Account Info", + command = get_standby_account_info) +btn_get_standby_account_info.grid(row=1, column=2, sticky = "nsew") +btn_standby_send_xrp = tk.Button(master=frm_form, text="Send XRP >", + command = standby_send_xrp) +btn_standby_send_xrp.grid(row=2, column = 2, sticky = "nsew") +btn_standby_create_trust_line = tk.Button(master=frm_form, + text="Create Trust Line", + command = standby_create_trust_line) +btn_standby_create_trust_line.grid(row=3, column=2, sticky = "nsew") +btn_standby_send_currency = tk.Button(master=frm_form, text="Send Currency >", + command = standby_send_currency) +btn_standby_send_currency.grid(row=4, column=2, sticky = "nsew") +btn_standby_send_currency = tk.Button(master=frm_form, text="Get Balances", + command = get_balances) +btn_standby_send_currency.grid(row=5, column=2, sticky = "nsew") +btn_standby_configure_account = tk.Button(master=frm_form, + text="Configure Account", + command = standby_configure_account) +btn_standby_configure_account.grid(row=7,column=0, sticky = "nsew") + + +# Create the Operational Account Buttons +btn_get_operational_account = tk.Button(master=frm_form, + text="Get Operational Account", + command = get_operational_account) +btn_get_operational_account.grid(row=0, column=3, sticky = "nsew") +btn_get_op_account_info = tk.Button(master=frm_form, text="Get Op Account Info", + command = get_operational_account_info) +btn_get_op_account_info.grid(row=1, column=3, sticky = "nsew") +btn_op_send_xrp = tk.Button(master=frm_form, text="< Send XRP", + command = operational_send_xrp) +btn_op_send_xrp.grid(row=2, column = 3, sticky = "nsew") +btn_op_create_trust_line = tk.Button(master=frm_form, text="Create Trust Line", + command = operational_create_trust_line) +btn_op_create_trust_line.grid(row=3, column=3, sticky = "nsew") +btn_op_send_currency = tk.Button(master=frm_form, text="< Send Currency", + command = operational_send_currency) +btn_op_send_currency.grid(row=4, column=3, sticky = "nsew") +btn_op_get_balances = tk.Button(master=frm_form, text="Get Balances", + command = get_balances) +btn_op_get_balances.grid(row=5, column=3, sticky = "nsew") +btn_op_configure_account = tk.Button(master=frm_form, text="Configure Account", + command = operational_configure_account) +btn_op_configure_account.grid(row=7,column=4, sticky = "nsew") + +# Start the application +window.mainloop() diff --git a/content/_code-samples/quickstart/python/lesson3-mint-token.py b/content/_code-samples/quickstart/python/lesson3-mint-token.py new file mode 100644 index 0000000000..8ac48aa4df --- /dev/null +++ b/content/_code-samples/quickstart/python/lesson3-mint-token.py @@ -0,0 +1,362 @@ +import tkinter as tk +import xrpl +import json + +from mod3 import mint_token +from mod3 import get_tokens +from mod3 import burn_token + +from mod2 import create_trust_line +from mod2 import send_currency +from mod2 import get_balance +from mod2 import configure_account + +from mod1 import get_account +from mod1 import get_account_info +from mod1 import send_xrp + +############################################# +## Handlers ################################# +############################################# + +# Module 3 Handlers + +def standby_mint_token(): + results = mint_token( + ent_standby_seed.get(), + ent_standby_uri.get(), + ent_standby_flags.get(), + ent_standby_transfer_fee.get(), + ent_standby_taxon.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_get_tokens(): + results = get_tokens(ent_standby_account.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_burn_token(): + results = burn_token( + ent_standby_seed.get(), + ent_standby_nft_id.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def operational_mint_token(): + results = mint_token( + ent_operational_seed.get(), + ent_operational_uri.get(), + ent_operational_flags.get(), + ent_operational_transfer_fee.get(), + ent_operational_taxon.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_get_tokens(): + results = get_tokens(ent_operational_account.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_burn_token(): + results = burn_token( + ent_operational_seed.get(), + ent_operational_nft_id.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) + +# Module 2 Handlers + +def standby_create_trust_line(): + results = create_trust_line(ent_standby_seed.get(), + ent_standby_destination.get(), + ent_standby_currency.get(), + ent_standby_amount.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_send_currency(): + results = send_currency(ent_standby_seed.get(), + ent_standby_destination.get(), + ent_standby_currency.get(), + ent_standby_amount.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_configure_account(): + results = configure_account( + ent_standby_seed.get(), + standbyRippling) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def operational_create_trust_line(): + results = create_trust_line(ent_operational_seed.get(), + ent_operational_destination.get(), + ent_operational_currency.get(), + ent_operational_amount.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_send_currency(): + results = send_currency(ent_operational_seed.get(), + ent_operational_destination.get(), + ent_operational_currency.get(), + ent_operational_amount.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_configure_account(): + results = configure_account( + ent_operational_seed.get(), + operationalRippling) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def get_balances(): + results = get_balance(ent_operational_account.get(), ent_standby_account.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) + results = get_balance(ent_standby_account.get(), ent_operational_account.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) + +# Module 1 Handlers +def get_standby_account(): + new_wallet = get_account(ent_standby_seed.get()) + ent_standby_account.delete(0, tk.END) + ent_standby_seed.delete(0, tk.END) + ent_standby_account.insert(0, new_wallet.classic_address) + ent_standby_seed.insert(0, new_wallet.seed) +def get_standby_account_info(): + accountInfo = get_account_info(ent_standby_account.get()) + ent_standby_balance.delete(0, tk.END) + ent_standby_balance.insert(0,accountInfo['Balance']) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0",json.dumps(accountInfo, indent=4)) +def standby_send_xrp(): + response = send_xrp(ent_standby_seed.get(),ent_standby_amount.get(), + ent_standby_destination.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0",json.dumps(response.result, indent=4)) + get_standby_account_info() + get_operational_account_info() +def get_operational_account(): + new_wallet = get_account(ent_operational_seed.get()) + ent_operational_account.delete(0, tk.END) + ent_operational_account.insert(0, new_wallet.classic_address) + ent_operational_seed.delete(0, tk.END) + ent_operational_seed.insert(0, new_wallet.seed) +def get_operational_account_info(): + accountInfo = get_account_info(ent_operational_account.get()) + ent_operational_balance.delete(0, tk.END) + ent_operational_balance.insert(0,accountInfo['Balance']) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0",json.dumps(accountInfo, indent=4)) +def operational_send_xrp(): + response = send_xrp(ent_operational_seed.get(),ent_operational_amount.get(), ent_operational_destination.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0",json.dumps(response.result,indent=4)) + get_standby_account_info() + get_operational_account_info() + +# Create a new window with the title "Quickstart Module 3" +window = tk.Tk() +window.title("Quickstart Module 3") + + +standbyRippling = tk.BooleanVar() +operationalRippling = tk.BooleanVar() + + +# Form frame +frm_form = tk.Frame(relief=tk.SUNKEN, borderwidth=3) +frm_form.pack() + +# Create the Label and Entry widgets for "Standby Account" +lbl_standy_seed = tk.Label(master=frm_form, text="Standby Seed") +ent_standby_seed = tk.Entry(master=frm_form, width=50) +lbl_standby_account = tk.Label(master=frm_form, text="Standby Account") +ent_standby_account = tk.Entry(master=frm_form, width=50) +lbl_standby_balance = tk.Label(master=frm_form, text="XRP Balance") +ent_standby_balance = tk.Entry(master=frm_form, width=50) +lbl_standy_amount = tk.Label(master=frm_form, text="Amount") +ent_standby_amount = tk.Entry(master=frm_form, width=50) +lbl_standby_destination = tk.Label(master=frm_form, text="Destination") +ent_standby_destination = tk.Entry(master=frm_form, width=50) +lbl_standby_currency = tk.Label(master=frm_form, text="Currency") +ent_standby_currency = tk.Entry(master=frm_form, width=50) +cb_standby_allow_rippling = tk.Checkbutton(master=frm_form, text="Allow Rippling", variable=standbyRippling, onvalue=True, offvalue=False) +lbl_standby_uri = tk.Label(master=frm_form, text="NFT URI") +ent_standby_uri = tk.Entry(master=frm_form, width=50) +lbl_standby_flags = tk.Label(master=frm_form, text="Flags") +ent_standby_flags = tk.Entry(master=frm_form, width=50) +lbl_standby_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee") +ent_standby_transfer_fee = tk.Entry(master=frm_form, width="50") +lbl_standby_taxon = tk.Label(master=frm_form, text="Taxon") +ent_standby_taxon = tk.Entry(master=frm_form, width="50") +lbl_standby_nft_id = tk.Label(master=frm_form, text="NFT ID") +ent_standby_nft_id = tk.Entry(master=frm_form, width="50") +lbl_standby_results = tk.Label(master=frm_form,text='Results') +text_standby_results = tk.Text(master=frm_form, height = 20, width = 65) + + + + + +# Place field in a grid. +lbl_standy_seed.grid(row=0, column=0, sticky="w") +ent_standby_seed.grid(row=0, column=1) +lbl_standby_account.grid(row=2, column=0, sticky="e") +ent_standby_account.grid(row=2, column=1) +lbl_standy_amount.grid(row=3, column=0, sticky="e") +ent_standby_amount.grid(row=3, column=1) +lbl_standby_destination.grid(row=4, column=0, sticky="e") +ent_standby_destination.grid(row=4, column=1) +lbl_standby_balance.grid(row=5, column=0, sticky="e") +ent_standby_balance.grid(row=5, column=1) +lbl_standby_currency.grid(row=6, column=0, sticky="e") +ent_standby_currency.grid(row=6, column=1) +cb_standby_allow_rippling.grid(row=7,column=1, sticky="w") +lbl_standby_uri.grid(row=8, column=0, sticky="e") +ent_standby_uri.grid(row=8, column=1, sticky="w") +lbl_standby_flags.grid(row=9, column=0, sticky="e") +ent_standby_flags.grid(row=9, column=1, sticky="w") +lbl_standby_transfer_fee.grid(row=10, column=0, sticky="e") +ent_standby_transfer_fee.grid(row=10, column=1, sticky="w") +lbl_standby_taxon.grid(row=11, column=0, sticky="e") +ent_standby_taxon.grid(row=11, column=1, sticky="w") +lbl_standby_nft_id.grid(row=12, column=0, sticky="e") +ent_standby_nft_id.grid(row=12, column=1, sticky="w") +lbl_standby_results.grid(row=13, column=0, sticky="ne") +text_standby_results.grid(row=13, column=1, sticky="nw") +cb_standby_allow_rippling.select() + +############################################### +## Operational Account ######################## +############################################### + +# Create the Label and Entry widgets for "Operational Account" +lbl_operational_seed = tk.Label(master=frm_form, text="Operational Seed") +ent_operational_seed = tk.Entry(master=frm_form, width=50) +lbl_operational_account = tk.Label(master=frm_form, text="Operational Account") +ent_operational_account = tk.Entry(master=frm_form, width=50) +lbl_operational_balance = tk.Label(master=frm_form, text="XRP Balance") +ent_operational_balance = tk.Entry(master=frm_form, width=50) +lbl_operational_amount = tk.Label(master=frm_form, text="Amount") +ent_operational_amount = tk.Entry(master=frm_form, width=50) +lbl_operational_destination = tk.Label(master=frm_form, text="Destination") +ent_operational_destination = tk.Entry(master=frm_form, width=50) +lbl_operational_currency = tk.Label(master=frm_form, text="Currency") +ent_operational_currency = tk.Entry(master=frm_form, width=50) +cb_operational_allow_rippling = tk.Checkbutton(master=frm_form, text="Allow Rippling", variable=operationalRippling, onvalue=True, offvalue=False) +lbl_operational_uri = tk.Label(master=frm_form, text="NFT URI") +ent_operational_uri = tk.Entry(master=frm_form, width=50) +lbl_operational_flags = tk.Label(master=frm_form, text="Flags") +ent_operational_flags = tk.Entry(master=frm_form, width=50) +lbl_operational_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee") +ent_operational_transfer_fee = tk.Entry(master=frm_form, width="50") +lbl_operational_taxon = tk.Label(master=frm_form, text="Taxon") +ent_operational_taxon = tk.Entry(master=frm_form, width="50") +lbl_operational_nft_id = tk.Label(master=frm_form, text="NFT ID") +ent_operational_nft_id = tk.Entry(master=frm_form, width="50") +lbl_operational_results = tk.Label(master=frm_form,text='Results') +text_operational_results = tk.Text(master=frm_form, height = 20, width = 65) + +#Place the widgets in a grid +lbl_operational_seed.grid(row=0, column=4, sticky="e") +ent_operational_seed.grid(row=0, column=5, sticky="w") +lbl_operational_account.grid(row=2,column=4, sticky="e") +ent_operational_account.grid(row=2,column=5, sticky="w") +lbl_operational_amount.grid(row=3, column=4, sticky="e") +ent_operational_amount.grid(row=3, column=5, sticky="w") +lbl_operational_destination.grid(row=4, column=4, sticky="e") +ent_operational_destination.grid(row=4, column=5, sticky="w") +lbl_operational_balance.grid(row=5, column=4, sticky="e") +ent_operational_balance.grid(row=5, column=5, sticky="w") +lbl_operational_currency.grid(row=6, column=4, sticky="e") +ent_operational_currency.grid(row=6, column=5) +cb_operational_allow_rippling.grid(row=7,column=5, sticky="w") +lbl_operational_uri.grid(row=8, column=4, sticky="e") +ent_operational_uri.grid(row=8, column=5, sticky="w") +lbl_operational_flags.grid(row=9, column=4, sticky="e") +ent_operational_flags.grid(row=9, column=5, sticky="w") +lbl_operational_transfer_fee.grid(row=10, column=4, sticky="e") +ent_operational_transfer_fee.grid(row=10, column=5, sticky="w") +lbl_operational_taxon.grid(row=11, column=4, sticky="e") +ent_operational_taxon.grid(row=11, column=5, sticky="w") +lbl_operational_nft_id.grid(row=12, column=4, sticky="e") +ent_operational_nft_id.grid(row=12, column=5, sticky="w") +lbl_operational_results.grid(row=13, column=4, sticky="ne") +text_operational_results.grid(row=13, column=5, sticky="nw") + +cb_operational_allow_rippling.select() + +############################################# +## Buttons ################################## +############################################# + +# Create the Standby Account Buttons +btn_get_standby_account = tk.Button(master=frm_form, text="Get Standby Account", + command = get_standby_account) +btn_get_standby_account.grid(row=0, column=2, sticky = "nsew") +btn_get_standby_account_info = tk.Button(master=frm_form, + text="Get Standby Account Info", + command = get_standby_account_info) +btn_get_standby_account_info.grid(row=1, column=2, sticky = "nsew") +btn_standby_send_xrp = tk.Button(master=frm_form, text="Send XRP >", + command = standby_send_xrp) +btn_standby_send_xrp.grid(row=2, column = 2, sticky = "nsew") +btn_standby_create_trust_line = tk.Button(master=frm_form, + text="Create Trust Line", + command = standby_create_trust_line) +btn_standby_create_trust_line.grid(row=3, column=2, sticky = "nsew") +btn_standby_send_currency = tk.Button(master=frm_form, text="Send Currency >", + command = standby_send_currency) +btn_standby_send_currency.grid(row=4, column=2, sticky = "nsew") +btn_standby_send_currency = tk.Button(master=frm_form, text="Get Balances", + command = get_balances) +btn_standby_send_currency.grid(row=5, column=2, sticky = "nsew") +btn_standby_configure_account = tk.Button(master=frm_form, + text="Configure Account", + command = standby_configure_account) +btn_standby_configure_account.grid(row=7,column=0, sticky = "nsew") +btn_standby_mint_token = tk.Button(master=frm_form, text="Mint NFT", + command = standby_mint_token) +btn_standby_mint_token.grid(row=8, column=2, sticky="nsew") +btn_standby_get_tokens = tk.Button(master=frm_form, text="Get NFTs", + command = standby_get_tokens) +btn_standby_get_tokens.grid(row=9, column=2, sticky="nsew") +btn_standby_burn_token = tk.Button(master=frm_form, text="Burn NFT", + command = standby_burn_token) +btn_standby_burn_token.grid(row=10, column=2, sticky="nsew") + + +# Create the Operational Account Buttons +btn_get_operational_account = tk.Button(master=frm_form, + text="Get Operational Account", + command = get_operational_account) +btn_get_operational_account.grid(row=0, column=3, sticky = "nsew") +btn_get_op_account_info = tk.Button(master=frm_form, text="Get Op Account Info", + command = get_operational_account_info) +btn_get_op_account_info.grid(row=1, column=3, sticky = "nsew") +btn_op_send_xrp = tk.Button(master=frm_form, text="< Send XRP", + command = operational_send_xrp) +btn_op_send_xrp.grid(row=2, column = 3, sticky = "nsew") +btn_op_create_trust_line = tk.Button(master=frm_form, text="Create Trust Line", + command = operational_create_trust_line) +btn_op_create_trust_line.grid(row=3, column=3, sticky = "nsew") +btn_op_send_currency = tk.Button(master=frm_form, text="< Send Currency", + command = operational_send_currency) +btn_op_send_currency.grid(row=4, column=3, sticky = "nsew") +btn_op_get_balances = tk.Button(master=frm_form, text="Get Balances", + command = get_balances) +btn_op_get_balances.grid(row=5, column=3, sticky = "nsew") +btn_op_configure_account = tk.Button(master=frm_form, text="Configure Account", + command = operational_configure_account) +btn_op_configure_account.grid(row=7,column=4, sticky = "nsew") +btn_op_mint_token = tk.Button(master=frm_form, text="Mint NFT", + command = operational_mint_token) +btn_op_mint_token.grid(row=8, column=3, sticky="nsew") +btn_op_get_tokens = tk.Button(master=frm_form, text="Get NFTs", + command = operational_get_tokens) +btn_op_get_tokens.grid(row=9, column=3, sticky="nsew") +btn_op_burn_token = tk.Button(master=frm_form, text="Burn NFT", + command = operational_burn_token) +btn_op_burn_token.grid(row=10, column=3, sticky="nsew") + +# Start the application +window.mainloop() diff --git a/content/_code-samples/quickstart/python/lesson4-transfer-tokens.py b/content/_code-samples/quickstart/python/lesson4-transfer-tokens.py new file mode 100644 index 0000000000..05c0a21aa7 --- /dev/null +++ b/content/_code-samples/quickstart/python/lesson4-transfer-tokens.py @@ -0,0 +1,530 @@ +import tkinter as tk +import xrpl +import json + +from mod4 import create_sell_offer +from mod4 import create_buy_offer +from mod4 import get_offers +from mod4 import cancel_offer +from mod4 import accept_sell_offer +from mod4 import accept_buy_offer + +from mod3 import mint_token +from mod3 import get_tokens +from mod3 import burn_token + +from mod2 import create_trust_line +from mod2 import send_currency +from mod2 import get_balance +from mod2 import configure_account + +from mod1 import get_account +from mod1 import get_account_info +from mod1 import send_xrp + +############################################# +## Handlers ################################# +############################################# + +# Module 4 Handlers + +def standby_create_sell_offer(): + results = create_sell_offer( + ent_standby_seed.get(), + ent_standby_amount.get(), + ent_standby_nft_id.get(), + ent_standby_expiration.get(), + ent_standby_destination.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_accept_sell_offer(): + results = accept_sell_offer ( + ent_standby_seed.get(), + ent_standby_nft_offer_index.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_create_buy_offer(): + results = create_buy_offer( + ent_standby_seed.get(), + ent_standby_amount.get(), + ent_standby_nft_id.get(), + ent_standby_owner.get(), + ent_standby_expiration.get(), + ent_standby_destination.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_accept_buy_offer(): + results = accept_buy_offer ( + ent_standby_seed.get(), + ent_standby_nft_offer_index.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_get_offers(): + results = get_offers(ent_standby_nft_id.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", results) +def standby_cancel_offer(): + results = cancel_offer( + ent_standby_seed.get(), + ent_standby_nft_offer_index.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def op_create_sell_offer(): + results = create_sell_offer( + ent_operational_seed.get(), + ent_operational_amount.get(), + ent_operational_nft_id.get(), + ent_operational_expiration.get(), + ent_operational_destination.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def op_accept_sell_offer(): + results = accept_sell_offer ( + ent_operational_seed.get(), + ent_operational_nft_offer_index.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def op_create_buy_offer(): + results = create_buy_offer( + ent_operational_seed.get(), + ent_operational_amount.get(), + ent_operational_nft_id.get(), + ent_operational_owner.get(), + ent_operational_expiration.get(), + ent_operational_destination.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def op_accept_buy_offer(): + results = accept_buy_offer ( + ent_operational_seed.get(), + ent_operational_nft_offer_index.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def op_get_offers(): + results = get_offers(ent_operational_nft_id.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", results) +def op_cancel_offer(): + results = cancel_offer( + ent_operational_seed.get(), + ent_operational_nft_offer_index.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) + + +# Module 3 Handlers + +def standby_mint_token(): + results = mint_token( + ent_standby_seed.get(), + ent_standby_uri.get(), + ent_standby_flags.get(), + ent_standby_transfer_fee.get(), + ent_standby_taxon.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_get_tokens(): + results = get_tokens(ent_standby_account.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_burn_token(): + results = burn_token( + ent_standby_seed.get(), + ent_standby_nft_id.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def operational_mint_token(): + results = mint_token( + ent_operational_seed.get(), + ent_operational_uri.get(), + ent_operational_flags.get(), + ent_operational_transfer_fee.get(), + ent_operational_taxon.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_get_tokens(): + results = get_tokens(ent_operational_account.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_burn_token(): + results = burn_token( + ent_operational_seed.get(), + ent_operational_nft_id.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) + +# Module 2 Handlers + +def standby_create_trust_line(): + results = create_trust_line(ent_standby_seed.get(), + ent_standby_destination.get(), + ent_standby_currency.get(), + ent_standby_amount.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_send_currency(): + results = send_currency(ent_standby_seed.get(), + ent_standby_destination.get(), + ent_standby_currency.get(), + ent_standby_amount.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_configure_account(): + results = configure_account( + ent_standby_seed.get(), + standbyRippling) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def operational_create_trust_line(): + results = create_trust_line(ent_operational_seed.get(), + ent_operational_destination.get(), + ent_operational_currency.get(), + ent_operational_amount.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_send_currency(): + results = send_currency(ent_operational_seed.get(), + ent_operational_destination.get(), + ent_operational_currency.get(), + ent_operational_amount.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_configure_account(): + results = configure_account( + ent_operational_seed.get(), + operationalRippling) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def get_balances(): + results = get_balance(ent_operational_account.get(), ent_standby_account.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) + results = get_balance(ent_standby_account.get(), ent_operational_account.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) + +# Module 1 Handlers +def get_standby_account(): + new_wallet = get_account(ent_standby_seed.get()) + ent_standby_account.delete(0, tk.END) + ent_standby_seed.delete(0, tk.END) + ent_standby_account.insert(0, new_wallet.classic_address) + ent_standby_seed.insert(0, new_wallet.seed) +def get_standby_account_info(): + accountInfo = get_account_info(ent_standby_account.get()) + ent_standby_balance.delete(0, tk.END) + ent_standby_balance.insert(0,accountInfo['Balance']) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0",json.dumps(accountInfo, indent=4)) +def standby_send_xrp(): + response = send_xrp(ent_standby_seed.get(),ent_standby_amount.get(), + ent_standby_destination.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0",json.dumps(response.result, indent=4)) + get_standby_account_info() + get_operational_account_info() +def get_operational_account(): + new_wallet = get_account(ent_operational_seed.get()) + ent_operational_account.delete(0, tk.END) + ent_operational_account.insert(0, new_wallet.classic_address) + ent_operational_seed.delete(0, tk.END) + ent_operational_seed.insert(0, new_wallet.seed) +def get_operational_account_info(): + accountInfo = get_account_info(ent_operational_account.get()) + ent_operational_balance.delete(0, tk.END) + ent_operational_balance.insert(0,accountInfo['Balance']) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0",json.dumps(accountInfo, indent=4)) +def operational_send_xrp(): + response = send_xrp(ent_operational_seed.get(),ent_operational_amount.get(), ent_operational_destination.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0",json.dumps(response.result,indent=4)) + get_standby_account_info() + get_operational_account_info() + +# Create a new window with the title "Quickstart Module 4" +window = tk.Tk() +window.title("Quickstart Module 4") + + +standbyRippling = tk.BooleanVar() +operationalRippling = tk.BooleanVar() + + +# Form frame +frm_form = tk.Frame(relief=tk.SUNKEN, borderwidth=3) +frm_form.pack() + +# Create the Label and Entry widgets for "Standby Account" +lbl_standy_seed = tk.Label(master=frm_form, text="Standby Seed") +ent_standby_seed = tk.Entry(master=frm_form, width=50) +lbl_standby_account = tk.Label(master=frm_form, text="Standby Account") +ent_standby_account = tk.Entry(master=frm_form, width=50) +lbl_standby_balance = tk.Label(master=frm_form, text="XRP Balance") +ent_standby_balance = tk.Entry(master=frm_form, width=50) +lbl_standy_amount = tk.Label(master=frm_form, text="Amount") +ent_standby_amount = tk.Entry(master=frm_form, width=50) +lbl_standby_destination = tk.Label(master=frm_form, text="Destination") +ent_standby_destination = tk.Entry(master=frm_form, width=50) +lbl_standby_currency = tk.Label(master=frm_form, text="Currency") +ent_standby_currency = tk.Entry(master=frm_form, width=50) +cb_standby_allow_rippling = tk.Checkbutton(master=frm_form, text="Allow Rippling", variable=standbyRippling, onvalue=True, offvalue=False) +lbl_standby_uri = tk.Label(master=frm_form, text="NFT URI") +ent_standby_uri = tk.Entry(master=frm_form, width=50) +lbl_standby_flags = tk.Label(master=frm_form, text="Flags") +ent_standby_flags = tk.Entry(master=frm_form, width=50) +lbl_standby_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee") +ent_standby_transfer_fee = tk.Entry(master=frm_form, width="50") +lbl_standby_taxon = tk.Label(master=frm_form, text="Taxon") +ent_standby_taxon = tk.Entry(master=frm_form, width="50") +lbl_standby_nft_id = tk.Label(master=frm_form, text="NFT ID") +ent_standby_nft_id = tk.Entry(master=frm_form, width="50") +lbl_standby_nft_offer_index = tk.Label(master=frm_form, text="NFT Offer Index") +ent_standby_nft_offer_index = tk.Entry(master=frm_form, width="50") +lbl_standby_owner = tk.Label(master=frm_form, text="Owner") +ent_standby_owner = tk.Entry(master=frm_form, width="50") +lbl_standby_expiration = tk.Label(master=frm_form, text="Expiration") +ent_standby_expiration = tk.Entry(master=frm_form, width="50") +lbl_standby_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee") +ent_standby_transfer_fee = tk.Entry(master=frm_form, width="50") +lbl_standby_results = tk.Label(master=frm_form,text='Results') +text_standby_results = tk.Text(master=frm_form, height = 20, width = 65) + + + + +# Place field in a grid. +lbl_standy_seed.grid(row=0, column=0, sticky="w") +ent_standby_seed.grid(row=0, column=1) +lbl_standby_account.grid(row=2, column=0, sticky="e") +ent_standby_account.grid(row=2, column=1) +lbl_standy_amount.grid(row=3, column=0, sticky="e") +ent_standby_amount.grid(row=3, column=1) +lbl_standby_destination.grid(row=4, column=0, sticky="e") +ent_standby_destination.grid(row=4, column=1) +lbl_standby_balance.grid(row=5, column=0, sticky="e") +ent_standby_balance.grid(row=5, column=1) +lbl_standby_currency.grid(row=6, column=0, sticky="e") +ent_standby_currency.grid(row=6, column=1) +cb_standby_allow_rippling.grid(row=7,column=1, sticky="w") +lbl_standby_uri.grid(row=8, column=0, sticky="e") +ent_standby_uri.grid(row=8, column=1, sticky="w") +lbl_standby_flags.grid(row=9, column=0, sticky="e") +ent_standby_flags.grid(row=9, column=1, sticky="w") +lbl_standby_transfer_fee.grid(row=10, column=0, sticky="e") +ent_standby_transfer_fee.grid(row=10, column=1, sticky="w") +lbl_standby_taxon.grid(row=11, column=0, sticky="e") +ent_standby_taxon.grid(row=11, column=1, sticky="w") +lbl_standby_nft_id.grid(row=12, column=0, sticky="e") +ent_standby_nft_id.grid(row=12, column=1, sticky="w") +lbl_standby_nft_offer_index.grid(row=13, column=0, sticky="ne") +ent_standby_nft_offer_index.grid(row=13, column=1, sticky="w") +lbl_standby_owner.grid(row=14, column=0, sticky="ne") +ent_standby_owner.grid(row=14, column=1, sticky="w") +lbl_standby_expiration.grid(row=15, column=0, sticky="ne") +ent_standby_expiration.grid(row=15, column=1, sticky="w") +lbl_standby_results.grid(row=17, column=0, sticky="ne") +text_standby_results.grid(row=17, column=1, sticky="nw") + +cb_standby_allow_rippling.select() + +############################################### +## Operational Account ######################## +############################################### + +# Create the Label and Entry widgets for "Operational Account" +lbl_operational_seed = tk.Label(master=frm_form, text="Operational Seed") +ent_operational_seed = tk.Entry(master=frm_form, width=50) +lbl_operational_account = tk.Label(master=frm_form, text="Operational Account") +ent_operational_account = tk.Entry(master=frm_form, width=50) +lbl_operational_balance = tk.Label(master=frm_form, text="XRP Balance") +ent_operational_balance = tk.Entry(master=frm_form, width=50) +lbl_operational_amount = tk.Label(master=frm_form, text="Amount") +ent_operational_amount = tk.Entry(master=frm_form, width=50) +lbl_operational_destination = tk.Label(master=frm_form, text="Destination") +ent_operational_destination = tk.Entry(master=frm_form, width=50) +lbl_operational_currency = tk.Label(master=frm_form, text="Currency") +ent_operational_currency = tk.Entry(master=frm_form, width=50) +cb_operational_allow_rippling = tk.Checkbutton(master=frm_form, text="Allow Rippling", variable=operationalRippling, onvalue=True, offvalue=False) +lbl_operational_uri = tk.Label(master=frm_form, text="NFT URI") +ent_operational_uri = tk.Entry(master=frm_form, width=50) +lbl_operational_flags = tk.Label(master=frm_form, text="Flags") +ent_operational_flags = tk.Entry(master=frm_form, width=50) +lbl_operational_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee") +ent_operational_transfer_fee = tk.Entry(master=frm_form, width="50") +lbl_operational_taxon = tk.Label(master=frm_form, text="Taxon") +ent_operational_taxon = tk.Entry(master=frm_form, width="50") +lbl_operational_nft_id = tk.Label(master=frm_form, text="NFT ID") +ent_operational_nft_id = tk.Entry(master=frm_form, width="50") +lbl_operational_nft_offer_index = tk.Label(master=frm_form, text="NFT Offer Index") +ent_operational_nft_offer_index = tk.Entry(master=frm_form, width="50") +lbl_operational_owner = tk.Label(master=frm_form, text="Owner") +ent_operational_owner = tk.Entry(master=frm_form, width="50") +lbl_operational_expiration = tk.Label(master=frm_form, text="Expiration") +ent_operational_expiration = tk.Entry(master=frm_form, width="50") +lbl_operational_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee") +ent_operational_transfer_fee = tk.Entry(master=frm_form, width="50") +lbl_operational_results = tk.Label(master=frm_form,text="Results") +text_operational_results = tk.Text(master=frm_form, height = 20, width = 65) + +#Place the widgets in a grid +lbl_operational_seed.grid(row=0, column=4, sticky="e") +ent_operational_seed.grid(row=0, column=5, sticky="w") +lbl_operational_account.grid(row=2,column=4, sticky="e") +ent_operational_account.grid(row=2,column=5, sticky="w") +lbl_operational_amount.grid(row=3, column=4, sticky="e") +ent_operational_amount.grid(row=3, column=5, sticky="w") +lbl_operational_destination.grid(row=4, column=4, sticky="e") +ent_operational_destination.grid(row=4, column=5, sticky="w") +lbl_operational_balance.grid(row=5, column=4, sticky="e") +ent_operational_balance.grid(row=5, column=5, sticky="w") +lbl_operational_currency.grid(row=6, column=4, sticky="e") +ent_operational_currency.grid(row=6, column=5) +cb_operational_allow_rippling.grid(row=7,column=5, sticky="w") +lbl_operational_uri.grid(row=8, column=4, sticky="e") +ent_operational_uri.grid(row=8, column=5, sticky="w") +lbl_operational_flags.grid(row=9, column=4, sticky="e") +ent_operational_flags.grid(row=9, column=5, sticky="w") +lbl_operational_transfer_fee.grid(row=10, column=4, sticky="e") +ent_operational_transfer_fee.grid(row=10, column=5, sticky="w") +lbl_operational_taxon.grid(row=11, column=4, sticky="e") +ent_operational_taxon.grid(row=11, column=5, sticky="w") +lbl_operational_nft_id.grid(row=12, column=4, sticky="e") +ent_operational_nft_id.grid(row=12, column=5, sticky="w") +lbl_operational_nft_offer_index.grid(row=13, column=4, sticky="ne") +ent_operational_nft_offer_index.grid(row=13, column=5, sticky="w") +lbl_operational_owner.grid(row=14, column=4, sticky="ne") +ent_operational_owner.grid(row=14, column=5, sticky="w") +lbl_operational_expiration.grid(row=15, column=4, sticky="ne") +ent_operational_expiration.grid(row=15, column=5, sticky="w") +lbl_operational_results.grid(row=17, column=4, sticky="ne") +text_operational_results.grid(row=17, column=5, sticky="nw") + +cb_operational_allow_rippling.select() + +############################################# +## Buttons ################################## +############################################# + +# Create the Standby Account Buttons +btn_get_standby_account = tk.Button(master=frm_form, text="Get Standby Account", + command = get_standby_account) +btn_get_standby_account.grid(row=0, column=2, sticky = "nsew") +btn_get_standby_account_info = tk.Button(master=frm_form, + text="Get Standby Account Info", + command = get_standby_account_info) +btn_get_standby_account_info.grid(row=1, column=2, sticky = "nsew") +btn_standby_send_xrp = tk.Button(master=frm_form, text="Send XRP >", + command = standby_send_xrp) +btn_standby_send_xrp.grid(row=2, column = 2, sticky = "nsew") +btn_standby_create_trust_line = tk.Button(master=frm_form, + text="Create Trust Line", + command = standby_create_trust_line) +btn_standby_create_trust_line.grid(row=4, column=2, sticky = "nsew") +btn_standby_send_currency = tk.Button(master=frm_form, text="Send Currency >", + command = standby_send_currency) +btn_standby_send_currency.grid(row=5, column=2, sticky = "nsew") +btn_standby_send_currency = tk.Button(master=frm_form, text="Get Balances", + command = get_balances) +btn_standby_send_currency.grid(row=6, column=2, sticky = "nsew") +btn_standby_configure_account = tk.Button(master=frm_form, + text="Configure Account", + command = standby_configure_account) +btn_standby_configure_account.grid(row=7,column=0, sticky = "nsew") +btn_standby_mint_token = tk.Button(master=frm_form, text="Mint NFT", + command = standby_mint_token) +btn_standby_mint_token.grid(row=8, column=2, sticky="nsew") +btn_standby_get_tokens = tk.Button(master=frm_form, text="Get NFTs", + command = standby_get_tokens) +btn_standby_get_tokens.grid(row=9, column=2, sticky="nsew") +btn_standby_burn_token = tk.Button(master=frm_form, text="Burn NFT", + command = standby_burn_token) +btn_standby_burn_token.grid(row=10, column=2, sticky="nsew") +btn_standby_create_sell_offer = tk.Button(master=frm_form, text="Create Sell Offer", + command = standby_create_sell_offer) +btn_standby_create_sell_offer.grid(row=11, column=2, sticky="nsew") +btn_standby_accept_sell_offer = tk.Button(master=frm_form, text="Accept Sell Offer", + command = standby_accept_sell_offer) +btn_standby_accept_sell_offer.grid(row=12, column=2, sticky="nsew") +btn_standby_create_buy_offer = tk.Button(master=frm_form, text="Create Buy Offer", + command = standby_create_buy_offer) +btn_standby_create_buy_offer.grid(row=13, column=2, sticky="nsew") +btn_standby_accept_buy_offer = tk.Button(master=frm_form, text="Accept Buy Offer", + command = standby_accept_buy_offer) +btn_standby_accept_buy_offer.grid(row=14, column=2, sticky="nsew") +btn_standby_get_offers = tk.Button(master=frm_form, text="Get Offers", + command = standby_get_offers) +btn_standby_get_offers.grid(row=15, column=2, sticky="nsew") +btn_standby_cancel_offer = tk.Button(master=frm_form, text="Cancel Offer", + command = standby_cancel_offer) +btn_standby_cancel_offer.grid(row=16, column=2, sticky="nsew") + + + +# Create the Operational Account Buttons +btn_get_operational_account = tk.Button(master=frm_form, + text="Get Operational Account", + command = get_operational_account) +btn_get_operational_account.grid(row=0, column=3, sticky = "nsew") +btn_get_op_account_info = tk.Button(master=frm_form, text="Get Op Account Info", + command = get_operational_account_info) +btn_get_op_account_info.grid(row=1, column=3, sticky = "nsew") +btn_op_send_xrp = tk.Button(master=frm_form, text="< Send XRP", + command = operational_send_xrp) +btn_op_send_xrp.grid(row=2, column = 3, sticky = "nsew") +btn_op_create_trust_line = tk.Button(master=frm_form, text="Create Trust Line", + command = operational_create_trust_line) +btn_op_create_trust_line.grid(row=4, column=3, sticky = "nsew") +btn_op_send_currency = tk.Button(master=frm_form, text="< Send Currency", + command = operational_send_currency) +btn_op_send_currency.grid(row=5, column=3, sticky = "nsew") +btn_op_get_balances = tk.Button(master=frm_form, text="Get Balances", + command = get_balances) +btn_op_get_balances.grid(row=6, column=3, sticky = "nsew") +btn_op_configure_account = tk.Button(master=frm_form, text="Configure Account", + command = operational_configure_account) +btn_op_configure_account.grid(row=7,column=4, sticky = "nsew") +btn_op_mint_token = tk.Button(master=frm_form, text="Mint NFT", + command = operational_mint_token) +btn_op_mint_token.grid(row=8, column=3, sticky="nsew") +btn_op_get_tokens = tk.Button(master=frm_form, text="Get NFTs", + command = operational_get_tokens) +btn_op_get_tokens.grid(row=9, column=3, sticky="nsew") +btn_op_burn_token = tk.Button(master=frm_form, text="Burn NFT", + command = operational_burn_token) +btn_op_burn_token.grid(row=10, column=3, sticky="nsew") +btn_op_create_sell_offer = tk.Button(master=frm_form, text="Create Sell Offer", + command = op_create_sell_offer) +btn_op_create_sell_offer.grid(row=11, column=3, sticky="nsew") +btn_op_accept_sell_offer = tk.Button(master=frm_form, text="Accept Sell Offer", + command = op_accept_sell_offer) +btn_op_accept_sell_offer.grid(row=12, column=3, sticky="nsew") +btn_op_create_buy_offer = tk.Button(master=frm_form, text="Create Buy Offer", + command = op_create_buy_offer) +btn_op_create_buy_offer.grid(row=13, column=3, sticky="nsew") +btn_op_accept_buy_offer = tk.Button(master=frm_form, text="Accept Buy Offer", + command = op_accept_buy_offer) +btn_op_accept_buy_offer.grid(row=14, column=3, sticky="nsew") +btn_op_get_offers = tk.Button(master=frm_form, text="Get Offers", + command = op_get_offers) +btn_op_get_offers.grid(row=15, column=3, sticky="nsew") +btn_op_cancel_offer = tk.Button(master=frm_form, text="Cancel Offer", + command = op_cancel_offer) +btn_op_cancel_offer.grid(row=16, column=3, sticky="nsew") + +# Start the application +window.mainloop() diff --git a/content/_code-samples/quickstart/python/lesson5-broker-nfts.py b/content/_code-samples/quickstart/python/lesson5-broker-nfts.py new file mode 100644 index 0000000000..436caa379b --- /dev/null +++ b/content/_code-samples/quickstart/python/lesson5-broker-nfts.py @@ -0,0 +1,637 @@ +import tkinter as tk +import xrpl +import json + +from mod5 import broker_sale + +from mod4 import create_sell_offer +from mod4 import create_buy_offer +from mod4 import get_offers +from mod4 import cancel_offer +from mod4 import accept_sell_offer +from mod4 import accept_buy_offer + +from mod3 import mint_token +from mod3 import get_tokens +from mod3 import burn_token + +from mod2 import create_trust_line +from mod2 import send_currency +from mod2 import get_balance +from mod2 import configure_account + +from mod1 import get_account +from mod1 import get_account_info +from mod1 import send_xrp + +############################################# +## Handlers ################################# +############################################# + +# Module 5 Handlers + +def get_broker_account(): + new_wallet = get_account(ent_broker_seed.get()) + ent_broker_account.delete(0, tk.END) + ent_broker_seed.delete(0, tk.END) + ent_broker_account.insert(0, new_wallet.classic_address) + ent_broker_seed.insert(0, new_wallet.seed) +def get_broker_account_info(): + accountInfo = get_account_info(ent_broker_account.get()) + ent_broker_balance.delete(0, tk.END) + ent_broker_balance.insert(0,accountInfo['Balance']) + text_broker_results.delete("1.0", tk.END) + text_broker_results.insert("1.0",json.dumps(accountInfo, indent=4)) +def broker_broker_sale(): + results = broker_sale( + ent_broker_seed.get(), + ent_broker_sell_nft_idx.get(), + ent_broker_buy_nft_idx.get(), + ent_broker_fee.get() + ) + text_broker_results.delete("1.0", tk.END) + text_broker_results.insert("1.0", json.dumps(results, indent=4)) +def broker_get_offers(): + results = get_offers(ent_broker_nft_id.get()) + text_broker_results.delete("1.0", tk.END) + text_broker_results.insert("1.0", results) +def broker_cancel_offer(): + results = cancel_offer( + ent_broker_seed.get(), + ent_broker_buy_nft_idx.get() + ) + text_broker_results.delete("1.0", tk.END) + text_broker_results.insert("1.0", json.dumps(results, indent=4)) + + +# Module 4 Handlers + +def standby_create_sell_offer(): + results = create_sell_offer( + ent_standby_seed.get(), + ent_standby_amount.get(), + ent_standby_nft_id.get(), + ent_standby_expiration.get(), + ent_standby_destination.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_accept_sell_offer(): + results = accept_sell_offer ( + ent_standby_seed.get(), + ent_standby_nft_offer_index.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_create_buy_offer(): + results = create_buy_offer( + ent_standby_seed.get(), + ent_standby_amount.get(), + ent_standby_nft_id.get(), + ent_standby_owner.get(), + ent_standby_expiration.get(), + ent_standby_destination.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_accept_buy_offer(): + results = accept_buy_offer ( + ent_standby_seed.get(), + ent_standby_nft_offer_index.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_get_offers(): + results = get_offers(ent_standby_nft_id.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", results) +def standby_cancel_offer(): + results = cancel_offer( + ent_standby_seed.get(), + ent_standby_nft_offer_index.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def op_create_sell_offer(): + results = create_sell_offer( + ent_operational_seed.get(), + ent_operational_amount.get(), + ent_operational_nft_id.get(), + ent_operational_expiration.get(), + ent_operational_destination.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def op_accept_sell_offer(): + results = accept_sell_offer ( + ent_operational_seed.get(), + ent_operational_nft_offer_index.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def op_create_buy_offer(): + results = create_buy_offer( + ent_operational_seed.get(), + ent_operational_amount.get(), + ent_operational_nft_id.get(), + ent_operational_owner.get(), + ent_operational_expiration.get(), + ent_operational_destination.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def op_accept_buy_offer(): + results = accept_buy_offer ( + ent_operational_seed.get(), + ent_operational_nft_offer_index.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def op_get_offers(): + results = get_offers(ent_operational_nft_id.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", results) +def op_cancel_offer(): + results = cancel_offer( + ent_operational_seed.get(), + ent_operational_nft_offer_index.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) + + + +# Module 3 Handlers + +def standby_mint_token(): + results = mint_token( + ent_standby_seed.get(), + ent_standby_uri.get(), + ent_standby_flags.get(), + ent_standby_transfer_fee.get(), + ent_standby_taxon.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_get_tokens(): + results = get_tokens(ent_standby_account.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_burn_token(): + results = burn_token( + ent_standby_seed.get(), + ent_standby_nft_id.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def operational_mint_token(): + results = mint_token( + ent_operational_seed.get(), + ent_operational_uri.get(), + ent_operational_flags.get(), + ent_operational_transfer_fee.get(), + ent_operational_taxon.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_get_tokens(): + results = get_tokens(ent_operational_account.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_burn_token(): + results = burn_token( + ent_operational_seed.get(), + ent_operational_nft_id.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) + +# Module 2 Handlers + +def standby_create_trust_line(): + results = create_trust_line(ent_standby_seed.get(), + ent_standby_destination.get(), + ent_standby_currency.get(), + ent_standby_amount.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_send_currency(): + results = send_currency(ent_standby_seed.get(), + ent_standby_destination.get(), + ent_standby_currency.get(), + ent_standby_amount.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_configure_account(): + results = configure_account( + ent_standby_seed.get(), + standbyRippling) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def operational_create_trust_line(): + results = create_trust_line(ent_operational_seed.get(), + ent_operational_destination.get(), + ent_operational_currency.get(), + ent_operational_amount.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_send_currency(): + results = send_currency(ent_operational_seed.get(), + ent_operational_destination.get(), + ent_operational_currency.get(), + ent_operational_amount.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_configure_account(): + results = configure_account( + ent_operational_seed.get(), + operationalRippling) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def get_balances(): + results = get_balance(ent_operational_account.get(), ent_standby_account.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) + results = get_balance(ent_standby_account.get(), ent_operational_account.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) + +# Module 1 Handlers +def get_standby_account(): + new_wallet = get_account(ent_standby_seed.get()) + ent_standby_account.delete(0, tk.END) + ent_standby_seed.delete(0, tk.END) + ent_standby_account.insert(0, new_wallet.classic_address) + ent_standby_seed.insert(0, new_wallet.seed) +def get_standby_account_info(): + accountInfo = get_account_info(ent_standby_account.get()) + ent_standby_balance.delete(0, tk.END) + ent_standby_balance.insert(0,accountInfo['Balance']) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0",json.dumps(accountInfo, indent=4)) +def standby_send_xrp(): + response = send_xrp(ent_standby_seed.get(),ent_standby_amount.get(), + ent_standby_destination.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0",json.dumps(response.result, indent=4)) + get_standby_account_info() + get_operational_account_info() +def get_operational_account(): + new_wallet = get_account(ent_operational_seed.get()) + ent_operational_account.delete(0, tk.END) + ent_operational_account.insert(0, new_wallet.classic_address) + ent_operational_seed.delete(0, tk.END) + ent_operational_seed.insert(0, new_wallet.seed) +def get_operational_account_info(): + accountInfo = get_account_info(ent_operational_account.get()) + ent_operational_balance.delete(0, tk.END) + ent_operational_balance.insert(0,accountInfo['Balance']) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0",json.dumps(accountInfo, indent=4)) +def operational_send_xrp(): + response = send_xrp(ent_operational_seed.get(),ent_operational_amount.get(), ent_operational_destination.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0",json.dumps(response.result,indent=4)) + get_standby_account_info() + get_operational_account_info() + +# Create a new window with the title "Quickstart - Broker Sale" +window = tk.Tk() +window.title("Quickstart - Broker Sale") + +myscrollbar=tk.Scrollbar(window,orient="vertical") +myscrollbar.pack(side="right",fill="y") + + + +standbyRippling = tk.BooleanVar() +operationalRippling = tk.BooleanVar() + +# Broker frame + +frm_broker = tk.Frame(relief=tk.SUNKEN, borderwidth=3) +frm_broker.pack() + +lbl_broker_seed = tk.Label(master=frm_broker, text="Broker Seed") +ent_broker_seed = tk.Entry(master=frm_broker, width=50) +lbl_broker_account = tk.Label(master=frm_broker, text="Broker Account") +ent_broker_account = tk.Entry(master=frm_broker, width=50) +lbl_broker_balance = tk.Label(master=frm_broker, text="XRP Balance") +ent_broker_balance = tk.Entry(master=frm_broker, width=50) +lbl_broker_amount = tk.Label(master=frm_broker, text="Amount") +ent_broker_amount = tk.Entry(master=frm_broker, width=50) +lbl_broker_nft_id = tk.Label(master=frm_broker, text="NFT ID") +ent_broker_nft_id = tk.Entry(master=frm_broker, width=50) +lbl_broker_sell_nft_idx = tk.Label(master=frm_broker, text="Sell NFT Offer Index") +ent_broker_sell_nft_idx = tk.Entry(master=frm_broker, width=50) +lbl_broker_buy_nft_idx = tk.Label(master=frm_broker, text="Buy NFT Offer Index") +ent_broker_buy_nft_idx = tk.Entry(master=frm_broker, width=50) +lbl_broker_owner = tk.Label(master=frm_broker, text="Owner") +ent_broker_owner = tk.Entry(master=frm_broker, width=50) +lbl_broker_fee = tk.Label(master=frm_broker, text="Broker Fee") +ent_broker_fee = tk.Entry(master=frm_broker, width=50) +lbl_broker_results=tk.Label(master=frm_broker, text="Results") +text_broker_results = tk.Text(master=frm_broker, height=10, width=65) + +lbl_broker_seed.grid(row=0, column=0, sticky="w") +ent_broker_seed.grid(row=0, column=1) +lbl_broker_account.grid(row=1, column=0, sticky="w") +ent_broker_account.grid(row=1, column=1) +lbl_broker_balance.grid(row=2, column=0, sticky="w") +ent_broker_balance.grid(row=2, column=1) +lbl_broker_amount.grid(row=3, column=0, sticky="w") +ent_broker_amount.grid(row=3, column=1) +lbl_broker_nft_id.grid(row=4, column=0, sticky="w") +ent_broker_nft_id.grid(row=4, column=1) +lbl_broker_sell_nft_idx.grid(row=5, column=0, sticky="w") +ent_broker_sell_nft_idx.grid(row=5, column=1) +lbl_broker_buy_nft_idx.grid(row=6, column=0, sticky="w") +ent_broker_buy_nft_idx.grid(row=6, column=1) +lbl_broker_owner.grid(row=7, column=0, sticky="w") +ent_broker_owner.grid(row=7, column=1) +lbl_broker_fee.grid(row=8, column=0, sticky="w") +ent_broker_fee.grid(row=8, column=1) +lbl_broker_results.grid(row=9, column=0) +text_broker_results.grid(row=9, column=1) + +# Broker Buttons +btn_broker_get_account = tk.Button(master=frm_broker, text="Get Broker Account", + command = get_broker_account) +btn_broker_get_account.grid(row=0, column=2, sticky = "nsew") +btn_broker_get_account_info = tk.Button(master=frm_broker, text="Get Broker Account Info", + command = get_broker_account_info) +btn_broker_get_account_info.grid(row=1, column=2, sticky = "nsew") +btn_broker_sale = tk.Button(master=frm_broker, text="Broker Sale", + command = broker_broker_sale) +btn_broker_sale.grid(row=2, column=2, sticky = "nsew") +btn_broker_get_offers = tk.Button(master=frm_broker, text="Get Offers", + command = broker_get_offers) +btn_broker_get_offers.grid(row=3, column=2, sticky = "nsew") +btn_broker_cancel_offer = tk.Button(master=frm_broker, text="Cancel Offer", + command = broker_cancel_offer) +btn_broker_cancel_offer.grid(row=4, column=2, sticky="nsew") + +# Form frame +frm_form = tk.Frame(relief=tk.SUNKEN, borderwidth=3) +frm_form.pack() + +# Create the Label and Entry widgets for "Standby Account" +lbl_standy_seed = tk.Label(master=frm_form, text="Standby Seed") +ent_standby_seed = tk.Entry(master=frm_form, width=50) +lbl_standby_account = tk.Label(master=frm_form, text="Standby Account") +ent_standby_account = tk.Entry(master=frm_form, width=50) +lbl_standby_balance = tk.Label(master=frm_form, text="XRP Balance") +ent_standby_balance = tk.Entry(master=frm_form, width=50) +lbl_standy_amount = tk.Label(master=frm_form, text="Amount") +ent_standby_amount = tk.Entry(master=frm_form, width=50) +lbl_standby_destination = tk.Label(master=frm_form, text="Destination") +ent_standby_destination = tk.Entry(master=frm_form, width=50) +lbl_standby_currency = tk.Label(master=frm_form, text="Currency") +ent_standby_currency = tk.Entry(master=frm_form, width=50) +cb_standby_allow_rippling = tk.Checkbutton(master=frm_form, text="Allow Rippling", variable=standbyRippling, onvalue=True, offvalue=False) +lbl_standby_uri = tk.Label(master=frm_form, text="NFT URI") +ent_standby_uri = tk.Entry(master=frm_form, width=50) +lbl_standby_flags = tk.Label(master=frm_form, text="Flags") +ent_standby_flags = tk.Entry(master=frm_form, width=50) +lbl_standby_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee") +ent_standby_transfer_fee = tk.Entry(master=frm_form, width="50") +lbl_standby_taxon = tk.Label(master=frm_form, text="Taxon") +ent_standby_taxon = tk.Entry(master=frm_form, width="50") +lbl_standby_nft_id = tk.Label(master=frm_form, text="NFT ID") +ent_standby_nft_id = tk.Entry(master=frm_form, width="50") +lbl_standby_nft_offer_index = tk.Label(master=frm_form, text="NFT Offer Index") +ent_standby_nft_offer_index = tk.Entry(master=frm_form, width="50") +lbl_standby_owner = tk.Label(master=frm_form, text="Owner") +ent_standby_owner = tk.Entry(master=frm_form, width="50") +lbl_standby_expiration = tk.Label(master=frm_form, text="Expiration") +ent_standby_expiration = tk.Entry(master=frm_form, width="50") +lbl_standby_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee") +ent_standby_transfer_fee = tk.Entry(master=frm_form, width="50") +lbl_standby_results = tk.Label(master=frm_form,text='Results') +text_standby_results = tk.Text(master=frm_form, height = 10, width = 65) + + + + +# Place field in a grid. +lbl_standy_seed.grid(row=0, column=0, sticky="w") +ent_standby_seed.grid(row=0, column=1) +lbl_standby_account.grid(row=2, column=0, sticky="e") +ent_standby_account.grid(row=2, column=1) +lbl_standy_amount.grid(row=3, column=0, sticky="e") +ent_standby_amount.grid(row=3, column=1) +lbl_standby_destination.grid(row=4, column=0, sticky="e") +ent_standby_destination.grid(row=4, column=1) +lbl_standby_balance.grid(row=5, column=0, sticky="e") +ent_standby_balance.grid(row=5, column=1) +lbl_standby_currency.grid(row=6, column=0, sticky="e") +ent_standby_currency.grid(row=6, column=1) +cb_standby_allow_rippling.grid(row=7,column=1, sticky="w") +lbl_standby_uri.grid(row=8, column=0, sticky="e") +ent_standby_uri.grid(row=8, column=1, sticky="w") +lbl_standby_flags.grid(row=9, column=0, sticky="e") +ent_standby_flags.grid(row=9, column=1, sticky="w") +lbl_standby_transfer_fee.grid(row=10, column=0, sticky="e") +ent_standby_transfer_fee.grid(row=10, column=1, sticky="w") +lbl_standby_taxon.grid(row=11, column=0, sticky="e") +ent_standby_taxon.grid(row=11, column=1, sticky="w") +lbl_standby_nft_id.grid(row=12, column=0, sticky="e") +ent_standby_nft_id.grid(row=12, column=1, sticky="w") +lbl_standby_nft_offer_index.grid(row=13, column=0, sticky="ne") +ent_standby_nft_offer_index.grid(row=13, column=1, sticky="w") +lbl_standby_owner.grid(row=14, column=0, sticky="ne") +ent_standby_owner.grid(row=14, column=1, sticky="w") +lbl_standby_expiration.grid(row=15, column=0, sticky="ne") +ent_standby_expiration.grid(row=15, column=1, sticky="w") +lbl_standby_results.grid(row=17, column=0, sticky="ne") +text_standby_results.grid(row=17, column=1, sticky="nw") + +cb_standby_allow_rippling.select() + +############################################### +## Operational Account ######################## +############################################### + +# Create the Label and Entry widgets for "Operational Account" +lbl_operational_seed = tk.Label(master=frm_form, text="Operational Seed") +ent_operational_seed = tk.Entry(master=frm_form, width=50) +lbl_operational_account = tk.Label(master=frm_form, text="Operational Account") +ent_operational_account = tk.Entry(master=frm_form, width=50) +lbl_operational_balance = tk.Label(master=frm_form, text="XRP Balance") +ent_operational_balance = tk.Entry(master=frm_form, width=50) +lbl_operational_amount = tk.Label(master=frm_form, text="Amount") +ent_operational_amount = tk.Entry(master=frm_form, width=50) +lbl_operational_destination = tk.Label(master=frm_form, text="Destination") +ent_operational_destination = tk.Entry(master=frm_form, width=50) +lbl_operational_currency = tk.Label(master=frm_form, text="Currency") +ent_operational_currency = tk.Entry(master=frm_form, width=50) +cb_operational_allow_rippling = tk.Checkbutton(master=frm_form, text="Allow Rippling", variable=operationalRippling, onvalue=True, offvalue=False) +lbl_operational_uri = tk.Label(master=frm_form, text="NFT URI") +ent_operational_uri = tk.Entry(master=frm_form, width=50) +lbl_operational_flags = tk.Label(master=frm_form, text="Flags") +ent_operational_flags = tk.Entry(master=frm_form, width=50) +lbl_operational_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee") +ent_operational_transfer_fee = tk.Entry(master=frm_form, width="50") +lbl_operational_taxon = tk.Label(master=frm_form, text="Taxon") +ent_operational_taxon = tk.Entry(master=frm_form, width="50") +lbl_operational_nft_id = tk.Label(master=frm_form, text="NFT ID") +ent_operational_nft_id = tk.Entry(master=frm_form, width="50") +lbl_operational_nft_offer_index = tk.Label(master=frm_form, text="NFT Offer Index") +ent_operational_nft_offer_index = tk.Entry(master=frm_form, width="50") +lbl_operational_owner = tk.Label(master=frm_form, text="Owner") +ent_operational_owner = tk.Entry(master=frm_form, width="50") +lbl_operational_expiration = tk.Label(master=frm_form, text="Expiration") +ent_operational_expiration = tk.Entry(master=frm_form, width="50") +lbl_operational_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee") +ent_operational_transfer_fee = tk.Entry(master=frm_form, width="50") +lbl_operational_results = tk.Label(master=frm_form,text="Results") +text_operational_results = tk.Text(master=frm_form, height = 10, width = 65) + +#Place the widgets in a grid +lbl_operational_seed.grid(row=0, column=4, sticky="e") +ent_operational_seed.grid(row=0, column=5, sticky="w") +lbl_operational_account.grid(row=2,column=4, sticky="e") +ent_operational_account.grid(row=2,column=5, sticky="w") +lbl_operational_amount.grid(row=3, column=4, sticky="e") +ent_operational_amount.grid(row=3, column=5, sticky="w") +lbl_operational_destination.grid(row=4, column=4, sticky="e") +ent_operational_destination.grid(row=4, column=5, sticky="w") +lbl_operational_balance.grid(row=5, column=4, sticky="e") +ent_operational_balance.grid(row=5, column=5, sticky="w") +lbl_operational_currency.grid(row=6, column=4, sticky="e") +ent_operational_currency.grid(row=6, column=5) +cb_operational_allow_rippling.grid(row=7,column=5, sticky="w") +lbl_operational_uri.grid(row=8, column=4, sticky="e") +ent_operational_uri.grid(row=8, column=5, sticky="w") +lbl_operational_flags.grid(row=9, column=4, sticky="e") +ent_operational_flags.grid(row=9, column=5, sticky="w") +lbl_operational_transfer_fee.grid(row=10, column=4, sticky="e") +ent_operational_transfer_fee.grid(row=10, column=5, sticky="w") +lbl_operational_taxon.grid(row=11, column=4, sticky="e") +ent_operational_taxon.grid(row=11, column=5, sticky="w") +lbl_operational_nft_id.grid(row=12, column=4, sticky="e") +ent_operational_nft_id.grid(row=12, column=5, sticky="w") +lbl_operational_nft_offer_index.grid(row=13, column=4, sticky="ne") +ent_operational_nft_offer_index.grid(row=13, column=5, sticky="w") +lbl_operational_owner.grid(row=14, column=4, sticky="ne") +ent_operational_owner.grid(row=14, column=5, sticky="w") +lbl_operational_expiration.grid(row=15, column=4, sticky="ne") +ent_operational_expiration.grid(row=15, column=5, sticky="w") +lbl_operational_results.grid(row=17, column=4, sticky="ne") +text_operational_results.grid(row=17, column=5, sticky="nw") + +cb_operational_allow_rippling.select() + +############################################# +## Buttons ################################## +############################################# + +# Create the Standby Account Buttons +btn_get_standby_account = tk.Button(master=frm_form, text="Get Standby Account", + command = get_standby_account) +btn_get_standby_account.grid(row=0, column=2, sticky = "nsew") +btn_get_standby_account_info = tk.Button(master=frm_form, + text="Get Standby Account Info", + command = get_standby_account_info) +btn_get_standby_account_info.grid(row=1, column=2, sticky = "nsew") +btn_standby_send_xrp = tk.Button(master=frm_form, text="Send XRP >", + command = standby_send_xrp) +btn_standby_send_xrp.grid(row=2, column = 2, sticky = "nsew") +btn_standby_create_trust_line = tk.Button(master=frm_form, + text="Create Trust Line", + command = standby_create_trust_line) +btn_standby_create_trust_line.grid(row=4, column=2, sticky = "nsew") +btn_standby_send_currency = tk.Button(master=frm_form, text="Send Currency >", + command = standby_send_currency) +btn_standby_send_currency.grid(row=5, column=2, sticky = "nsew") +btn_standby_send_currency = tk.Button(master=frm_form, text="Get Balances", + command = get_balances) +btn_standby_send_currency.grid(row=6, column=2, sticky = "nsew") +btn_standby_configure_account = tk.Button(master=frm_form, + text="Configure Account", + command = standby_configure_account) +btn_standby_configure_account.grid(row=7,column=0, sticky = "nsew") +btn_standby_mint_token = tk.Button(master=frm_form, text="Mint NFT", + command = standby_mint_token) +btn_standby_mint_token.grid(row=8, column=2, sticky="nsew") +btn_standby_get_tokens = tk.Button(master=frm_form, text="Get NFTs", + command = standby_get_tokens) +btn_standby_get_tokens.grid(row=9, column=2, sticky="nsew") +btn_standby_burn_token = tk.Button(master=frm_form, text="Burn NFT", + command = standby_burn_token) +btn_standby_burn_token.grid(row=10, column=2, sticky="nsew") +btn_standby_create_sell_offer = tk.Button(master=frm_form, text="Create Sell Offer", + command = standby_create_sell_offer) +btn_standby_create_sell_offer.grid(row=11, column=2, sticky="nsew") +btn_standby_accept_sell_offer = tk.Button(master=frm_form, text="Accept Sell Offer", + command = standby_accept_sell_offer) +btn_standby_accept_sell_offer.grid(row=12, column=2, sticky="nsew") +btn_standby_create_buy_offer = tk.Button(master=frm_form, text="Create Buy Offer", + command = standby_create_buy_offer) +btn_standby_create_buy_offer.grid(row=13, column=2, sticky="nsew") +btn_standby_accept_buy_offer = tk.Button(master=frm_form, text="Accept Buy Offer", + command = standby_accept_buy_offer) +btn_standby_accept_buy_offer.grid(row=14, column=2, sticky="nsew") +btn_standby_get_offers = tk.Button(master=frm_form, text="Get Offers", + command = standby_get_offers) +btn_standby_get_offers.grid(row=15, column=2, sticky="nsew") +btn_standby_cancel_offer = tk.Button(master=frm_form, text="Cancel Offer", + command = standby_cancel_offer) +btn_standby_cancel_offer.grid(row=16, column=2, sticky="nsew") + + + +# Create the Operational Account Buttons +btn_get_operational_account = tk.Button(master=frm_form, + text="Get Operational Account", + command = get_operational_account) +btn_get_operational_account.grid(row=0, column=3, sticky = "nsew") +btn_get_op_account_info = tk.Button(master=frm_form, text="Get Op Account Info", + command = get_operational_account_info) +btn_get_op_account_info.grid(row=1, column=3, sticky = "nsew") +btn_op_send_xrp = tk.Button(master=frm_form, text="< Send XRP", + command = operational_send_xrp) +btn_op_send_xrp.grid(row=2, column = 3, sticky = "nsew") +btn_op_create_trust_line = tk.Button(master=frm_form, text="Create Trust Line", + command = operational_create_trust_line) +btn_op_create_trust_line.grid(row=4, column=3, sticky = "nsew") +btn_op_send_currency = tk.Button(master=frm_form, text="< Send Currency", + command = operational_send_currency) +btn_op_send_currency.grid(row=5, column=3, sticky = "nsew") +btn_op_get_balances = tk.Button(master=frm_form, text="Get Balances", + command = get_balances) +btn_op_get_balances.grid(row=6, column=3, sticky = "nsew") +btn_op_configure_account = tk.Button(master=frm_form, text="Configure Account", + command = operational_configure_account) +btn_op_configure_account.grid(row=7,column=4, sticky = "nsew") +btn_op_mint_token = tk.Button(master=frm_form, text="Mint NFT", + command = operational_mint_token) +btn_op_mint_token.grid(row=8, column=3, sticky="nsew") +btn_op_get_tokens = tk.Button(master=frm_form, text="Get NFTs", + command = operational_get_tokens) +btn_op_get_tokens.grid(row=9, column=3, sticky="nsew") +btn_op_burn_token = tk.Button(master=frm_form, text="Burn NFT", + command = operational_burn_token) +btn_op_burn_token.grid(row=10, column=3, sticky="nsew") +btn_op_create_sell_offer = tk.Button(master=frm_form, text="Create Sell Offer", + command = op_create_sell_offer) +btn_op_create_sell_offer.grid(row=11, column=3, sticky="nsew") +btn_op_accept_sell_offer = tk.Button(master=frm_form, text="Accept Sell Offer", + command = op_accept_sell_offer) +btn_op_accept_sell_offer.grid(row=12, column=3, sticky="nsew") +btn_op_create_buy_offer = tk.Button(master=frm_form, text="Create Buy Offer", + command = op_create_buy_offer) +btn_op_create_buy_offer.grid(row=13, column=3, sticky="nsew") +btn_op_accept_buy_offer = tk.Button(master=frm_form, text="Accept Buy Offer", + command = op_accept_buy_offer) +btn_op_accept_buy_offer.grid(row=14, column=3, sticky="nsew") +btn_op_get_offers = tk.Button(master=frm_form, text="Get Offers", + command = op_get_offers) +btn_op_get_offers.grid(row=15, column=3, sticky="nsew") +btn_op_cancel_offer = tk.Button(master=frm_form, text="Cancel Offer", + command = op_cancel_offer) +btn_op_cancel_offer.grid(row=16, column=3, sticky="nsew") + + +# Start the application +window.mainloop() diff --git a/content/_code-samples/quickstart/python/lesson6-auth-minter.py b/content/_code-samples/quickstart/python/lesson6-auth-minter.py new file mode 100644 index 0000000000..4224883194 --- /dev/null +++ b/content/_code-samples/quickstart/python/lesson6-auth-minter.py @@ -0,0 +1,594 @@ +import tkinter as tk +import xrpl +import json + +from mod6 import set_minter +from mod6 import mint_other + +from mod4 import create_sell_offer +from mod4 import create_buy_offer +from mod4 import get_offers +from mod4 import cancel_offer +from mod4 import accept_sell_offer +from mod4 import accept_buy_offer + +from mod3 import mint_token +from mod3 import get_tokens +from mod3 import burn_token + +from mod2 import create_trust_line +from mod2 import send_currency +from mod2 import get_balance +from mod2 import configure_account + +from mod1 import get_account +from mod1 import get_account_info +from mod1 import send_xrp + +############################################# +## Handlers ################################# +############################################# + +# Module 6 Handlers + +def standby_set_minter(): + results = set_minter(ent_standby_seed.get(),ent_standby_auth_minter.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_mint_other(): + results = mint_other( + ent_standby_seed.get(), + ent_standby_uri.get(), + ent_standby_flags.get(), + ent_standby_transfer_fee.get(), + ent_standby_taxon.get(), + ent_standby_issuer.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def operational_set_minter(): + results = set_minter(ent_operational_seed.get(),ent_operational_auth_minter.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_mint_other(): + results = mint_other( + ent_operational_seed.get(), + ent_operational_uri.get(), + ent_operational_flags.get(), + ent_operational_transfer_fee.get(), + ent_operational_taxon.get(), + ent_operational_issuer.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) + +# Module 4 Handlers + +def standby_create_sell_offer(): + results = create_sell_offer( + ent_standby_seed.get(), + ent_standby_amount.get(), + ent_standby_nft_id.get(), + ent_standby_expiration.get(), + ent_standby_destination.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_accept_sell_offer(): + results = accept_sell_offer ( + ent_standby_seed.get(), + ent_standby_nft_offer_index.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_create_buy_offer(): + results = create_buy_offer( + ent_standby_seed.get(), + ent_standby_amount.get(), + ent_standby_nft_id.get(), + ent_standby_owner.get(), + ent_standby_expiration.get(), + ent_standby_destination.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_accept_buy_offer(): + results = accept_buy_offer ( + ent_standby_seed.get(), + ent_standby_nft_offer_index.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_get_offers(): + results = get_offers(ent_standby_nft_id.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", results) +def standby_cancel_offer(): + results = cancel_offer( + ent_standby_seed.get(), + ent_standby_nft_offer_index.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def op_create_sell_offer(): + results = create_sell_offer( + ent_operational_seed.get(), + ent_operational_amount.get(), + ent_operational_nft_id.get(), + ent_operational_expiration.get(), + ent_operational_destination.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def op_accept_sell_offer(): + results = accept_sell_offer ( + ent_operational_seed.get(), + ent_operational_nft_offer_index.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def op_create_buy_offer(): + results = create_buy_offer( + ent_operational_seed.get(), + ent_operational_amount.get(), + ent_operational_nft_id.get(), + ent_operational_owner.get(), + ent_operational_expiration.get(), + ent_operational_destination.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def op_accept_buy_offer(): + results = accept_buy_offer ( + ent_operational_seed.get(), + ent_operational_nft_offer_index.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def op_get_offers(): + results = get_offers(ent_operational_nft_id.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", results) +def op_cancel_offer(): + results = cancel_offer( + ent_operational_seed.get(), + ent_operational_nft_offer_index.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) + + + +# Module 3 Handlers + +def standby_mint_token(): + results = mint_token( + ent_standby_seed.get(), + ent_standby_uri.get(), + ent_standby_flags.get(), + ent_standby_transfer_fee.get(), + ent_standby_taxon.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_get_tokens(): + results = get_tokens(ent_standby_account.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_burn_token(): + results = burn_token( + ent_standby_seed.get(), + ent_standby_nft_id.get() + ) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def operational_mint_token(): + results = mint_token( + ent_operational_seed.get(), + ent_operational_uri.get(), + ent_operational_flags.get(), + ent_operational_transfer_fee.get(), + ent_operational_taxon.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_get_tokens(): + results = get_tokens(ent_operational_account.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_burn_token(): + results = burn_token( + ent_operational_seed.get(), + ent_operational_nft_id.get() + ) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) + +# Module 2 Handlers + +def standby_create_trust_line(): + results = create_trust_line(ent_standby_seed.get(), + ent_standby_destination.get(), + ent_standby_currency.get(), + ent_standby_amount.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_send_currency(): + results = send_currency(ent_standby_seed.get(), + ent_standby_destination.get(), + ent_standby_currency.get(), + ent_standby_amount.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def standby_configure_account(): + results = configure_account( + ent_standby_seed.get(), + standbyRippling) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) +def operational_create_trust_line(): + results = create_trust_line(ent_operational_seed.get(), + ent_operational_destination.get(), + ent_operational_currency.get(), + ent_operational_amount.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_send_currency(): + results = send_currency(ent_operational_seed.get(), + ent_operational_destination.get(), + ent_operational_currency.get(), + ent_operational_amount.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def operational_configure_account(): + results = configure_account( + ent_operational_seed.get(), + operationalRippling) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) +def get_balances(): + results = get_balance(ent_operational_account.get(), ent_standby_account.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0", json.dumps(results, indent=4)) + results = get_balance(ent_standby_account.get(), ent_operational_account.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0", json.dumps(results, indent=4)) + +# Module 1 Handlers +def get_standby_account(): + new_wallet = get_account(ent_standby_seed.get()) + ent_standby_account.delete(0, tk.END) + ent_standby_seed.delete(0, tk.END) + ent_standby_account.insert(0, new_wallet.classic_address) + ent_standby_seed.insert(0, new_wallet.seed) +def get_standby_account_info(): + accountInfo = get_account_info(ent_standby_account.get()) + ent_standby_balance.delete(0, tk.END) + ent_standby_balance.insert(0,accountInfo['Balance']) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0",json.dumps(accountInfo, indent=4)) +def standby_send_xrp(): + response = send_xrp(ent_standby_seed.get(),ent_standby_amount.get(), + ent_standby_destination.get()) + text_standby_results.delete("1.0", tk.END) + text_standby_results.insert("1.0",json.dumps(response.result, indent=4)) + get_standby_account_info() + get_operational_account_info() +def get_operational_account(): + new_wallet = get_account(ent_operational_seed.get()) + ent_operational_account.delete(0, tk.END) + ent_operational_account.insert(0, new_wallet.classic_address) + ent_operational_seed.delete(0, tk.END) + ent_operational_seed.insert(0, new_wallet.seed) +def get_operational_account_info(): + accountInfo = get_account_info(ent_operational_account.get()) + ent_operational_balance.delete(0, tk.END) + ent_operational_balance.insert(0,accountInfo['Balance']) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0",json.dumps(accountInfo, indent=4)) +def operational_send_xrp(): + response = send_xrp(ent_operational_seed.get(),ent_operational_amount.get(), ent_operational_destination.get()) + text_operational_results.delete("1.0", tk.END) + text_operational_results.insert("1.0",json.dumps(response.result,indent=4)) + get_standby_account_info() + get_operational_account_info() + +# Create a new window with the title "Quickstart - Authorized Minter" +window = tk.Tk() +window.title("Quickstart - Authorized Minter") + +myscrollbar=tk.Scrollbar(window,orient="vertical") +myscrollbar.pack(side="right",fill="y") + +standbyRippling = tk.BooleanVar() +operationalRippling = tk.BooleanVar() + +# Form frame +frm_form = tk.Frame(relief=tk.SUNKEN, borderwidth=3) +frm_form.pack() + +# Create the Label and Entry widgets for "Standby Account" +lbl_standy_seed = tk.Label(master=frm_form, text="Standby Seed") +ent_standby_seed = tk.Entry(master=frm_form, width=50) +lbl_standby_account = tk.Label(master=frm_form, text="Standby Account") +ent_standby_account = tk.Entry(master=frm_form, width=50) +lbl_standby_balance = tk.Label(master=frm_form, text="XRP Balance") +ent_standby_balance = tk.Entry(master=frm_form, width=50) +lbl_standy_amount = tk.Label(master=frm_form, text="Amount") +ent_standby_amount = tk.Entry(master=frm_form, width=50) +lbl_standby_destination = tk.Label(master=frm_form, text="Destination") +ent_standby_destination = tk.Entry(master=frm_form, width=50) +lbl_standby_currency = tk.Label(master=frm_form, text="Currency") +ent_standby_currency = tk.Entry(master=frm_form, width=50) +cb_standby_allow_rippling = tk.Checkbutton(master=frm_form, text="Allow Rippling", variable=standbyRippling, onvalue=True, offvalue=False) +lbl_standby_uri = tk.Label(master=frm_form, text="NFT URI") +ent_standby_uri = tk.Entry(master=frm_form, width=50) +lbl_standby_flags = tk.Label(master=frm_form, text="Flags") +ent_standby_flags = tk.Entry(master=frm_form, width=50) +lbl_standby_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee") +ent_standby_transfer_fee = tk.Entry(master=frm_form, width="50") +lbl_standby_taxon = tk.Label(master=frm_form, text="Taxon") +ent_standby_taxon = tk.Entry(master=frm_form, width="50") +lbl_standby_nft_id = tk.Label(master=frm_form, text="NFT ID") +ent_standby_nft_id = tk.Entry(master=frm_form, width="50") +lbl_standby_nft_offer_index = tk.Label(master=frm_form, text="NFT Offer Index") +ent_standby_nft_offer_index = tk.Entry(master=frm_form, width="50") +lbl_standby_owner = tk.Label(master=frm_form, text="Owner") +ent_standby_owner = tk.Entry(master=frm_form, width="50") +lbl_standby_expiration = tk.Label(master=frm_form, text="Expiration") +ent_standby_expiration = tk.Entry(master=frm_form, width="50") +lbl_standby_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee") +ent_standby_transfer_fee = tk.Entry(master=frm_form, width="50") +lbl_standby_auth_minter = tk.Label(master=frm_form, text="Authorized Minter") +ent_standby_auth_minter = tk.Entry(master=frm_form, width="50") +lbl_standby_issuer = tk.Label(master=frm_form, text="Issuer") +ent_standby_issuer = tk.Entry(master=frm_form, width="50") +lbl_standby_results = tk.Label(master=frm_form,text='Results') +text_standby_results = tk.Text(master=frm_form, height = 50, width = 65) + + +# Place field in a grid. +lbl_standy_seed.grid(row=0, column=0, sticky="w") +ent_standby_seed.grid(row=0, column=1) +lbl_standby_account.grid(row=2, column=0, sticky="e") +ent_standby_account.grid(row=2, column=1) +lbl_standy_amount.grid(row=3, column=0, sticky="e") +ent_standby_amount.grid(row=3, column=1) +lbl_standby_destination.grid(row=4, column=0, sticky="e") +ent_standby_destination.grid(row=4, column=1) +lbl_standby_balance.grid(row=5, column=0, sticky="e") +ent_standby_balance.grid(row=5, column=1) +lbl_standby_currency.grid(row=6, column=0, sticky="e") +ent_standby_currency.grid(row=6, column=1) +cb_standby_allow_rippling.grid(row=7,column=1, sticky="w") +lbl_standby_uri.grid(row=8, column=0, sticky="e") +ent_standby_uri.grid(row=8, column=1, sticky="w") +lbl_standby_flags.grid(row=9, column=0, sticky="e") +ent_standby_flags.grid(row=9, column=1, sticky="w") +lbl_standby_transfer_fee.grid(row=10, column=0, sticky="e") +ent_standby_transfer_fee.grid(row=10, column=1, sticky="w") +lbl_standby_taxon.grid(row=11, column=0, sticky="e") +ent_standby_taxon.grid(row=11, column=1, sticky="w") +lbl_standby_nft_id.grid(row=12, column=0, sticky="e") +ent_standby_nft_id.grid(row=12, column=1, sticky="w") +lbl_standby_nft_offer_index.grid(row=13, column=0, sticky="ne") +ent_standby_nft_offer_index.grid(row=13, column=1, sticky="w") +lbl_standby_owner.grid(row=14, column=0, sticky="ne") +ent_standby_owner.grid(row=14, column=1, sticky="w") +lbl_standby_expiration.grid(row=15, column=0, sticky="ne") +ent_standby_expiration.grid(row=15, column=1, sticky="w") +lbl_standby_auth_minter.grid(row=16,column=0, sticky="ne") +ent_standby_auth_minter.grid(row=16,column=1, sticky="w") +lbl_standby_issuer.grid(row=17,column=0, sticky="ne") +ent_standby_issuer.grid(row=17,column=1, sticky="w") +lbl_standby_results.grid(row=18, column=0, sticky="ne") +text_standby_results.grid(row=18, column=1, sticky="nw") + +cb_standby_allow_rippling.select() + +############################################### +## Operational Account ######################## +############################################### + +# Create the Label and Entry widgets for "Operational Account" +lbl_operational_seed = tk.Label(master=frm_form, text="Operational Seed") +ent_operational_seed = tk.Entry(master=frm_form, width=50) +lbl_operational_account = tk.Label(master=frm_form, text="Operational Account") +ent_operational_account = tk.Entry(master=frm_form, width=50) +lbl_operational_balance = tk.Label(master=frm_form, text="XRP Balance") +ent_operational_balance = tk.Entry(master=frm_form, width=50) +lbl_operational_amount = tk.Label(master=frm_form, text="Amount") +ent_operational_amount = tk.Entry(master=frm_form, width=50) +lbl_operational_destination = tk.Label(master=frm_form, text="Destination") +ent_operational_destination = tk.Entry(master=frm_form, width=50) +lbl_operational_currency = tk.Label(master=frm_form, text="Currency") +ent_operational_currency = tk.Entry(master=frm_form, width=50) +cb_operational_allow_rippling = tk.Checkbutton(master=frm_form, text="Allow Rippling", variable=operationalRippling, onvalue=True, offvalue=False) +lbl_operational_uri = tk.Label(master=frm_form, text="NFT URI") +ent_operational_uri = tk.Entry(master=frm_form, width=50) +lbl_operational_flags = tk.Label(master=frm_form, text="Flags") +ent_operational_flags = tk.Entry(master=frm_form, width=50) +lbl_operational_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee") +ent_operational_transfer_fee = tk.Entry(master=frm_form, width="50") +lbl_operational_taxon = tk.Label(master=frm_form, text="Taxon") +ent_operational_taxon = tk.Entry(master=frm_form, width="50") +lbl_operational_nft_id = tk.Label(master=frm_form, text="NFT ID") +ent_operational_nft_id = tk.Entry(master=frm_form, width="50") +lbl_operational_nft_offer_index = tk.Label(master=frm_form, text="NFT Offer Index") +ent_operational_nft_offer_index = tk.Entry(master=frm_form, width="50") +lbl_operational_owner = tk.Label(master=frm_form, text="Owner") +ent_operational_owner = tk.Entry(master=frm_form, width="50") +lbl_operational_expiration = tk.Label(master=frm_form, text="Expiration") +ent_operational_expiration = tk.Entry(master=frm_form, width="50") +lbl_operational_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee") +ent_operational_transfer_fee = tk.Entry(master=frm_form, width="50") +lbl_operational_auth_minter = tk.Label(master=frm_form, text="Authorized Minter") +ent_operational_auth_minter = tk.Entry(master=frm_form, width="50") +lbl_operational_issuer = tk.Label(master=frm_form, text="Issuer") +ent_operational_issuer = tk.Entry(master=frm_form, width="50") +lbl_operational_results = tk.Label(master=frm_form,text="Results") +text_operational_results = tk.Text(master=frm_form, height = 50, width = 65) + +#Place the widgets in a grid +lbl_operational_seed.grid(row=0, column=4, sticky="e") +ent_operational_seed.grid(row=0, column=5, sticky="w") +lbl_operational_account.grid(row=2,column=4, sticky="e") +ent_operational_account.grid(row=2,column=5, sticky="w") +lbl_operational_amount.grid(row=3, column=4, sticky="e") +ent_operational_amount.grid(row=3, column=5, sticky="w") +lbl_operational_destination.grid(row=4, column=4, sticky="e") +ent_operational_destination.grid(row=4, column=5, sticky="w") +lbl_operational_balance.grid(row=5, column=4, sticky="e") +ent_operational_balance.grid(row=5, column=5, sticky="w") +lbl_operational_currency.grid(row=6, column=4, sticky="e") +ent_operational_currency.grid(row=6, column=5) +cb_operational_allow_rippling.grid(row=7,column=5, sticky="w") +lbl_operational_uri.grid(row=8, column=4, sticky="e") +ent_operational_uri.grid(row=8, column=5, sticky="w") +lbl_operational_flags.grid(row=9, column=4, sticky="e") +ent_operational_flags.grid(row=9, column=5, sticky="w") +lbl_operational_transfer_fee.grid(row=10, column=4, sticky="e") +ent_operational_transfer_fee.grid(row=10, column=5, sticky="w") +lbl_operational_taxon.grid(row=11, column=4, sticky="e") +ent_operational_taxon.grid(row=11, column=5, sticky="w") +lbl_operational_nft_id.grid(row=12, column=4, sticky="e") +ent_operational_nft_id.grid(row=12, column=5, sticky="w") +lbl_operational_nft_offer_index.grid(row=13, column=4, sticky="ne") +ent_operational_nft_offer_index.grid(row=13, column=5, sticky="w") +lbl_operational_owner.grid(row=14, column=4, sticky="ne") +ent_operational_owner.grid(row=14, column=5, sticky="w") +lbl_operational_expiration.grid(row=15, column=4, sticky="ne") +ent_operational_expiration.grid(row=15, column=5, sticky="w") +lbl_operational_auth_minter.grid(row=16, column=4, sticky="ne") +ent_operational_auth_minter.grid(row=16, column=5, sticky="w") +lbl_operational_issuer.grid(row=17, column=4, sticky="ne") +ent_operational_issuer.grid(row=17, column=5, sticky="w") +lbl_operational_results.grid(row=18, column=4, sticky="ne") +text_operational_results.grid(row=18, column=5, sticky="nw") + +cb_operational_allow_rippling.select() + +############################################# +## Buttons ################################## +############################################# + +# Create the Standby Account Buttons +btn_get_standby_account = tk.Button(master=frm_form, text="Get Standby Account", + command = get_standby_account) +btn_get_standby_account.grid(row=0, column=2, sticky = "nsew") +btn_get_standby_account_info = tk.Button(master=frm_form, + text="Get Standby Account Info", + command = get_standby_account_info) +btn_get_standby_account_info.grid(row=1, column=2, sticky = "nsew") +btn_standby_send_xrp = tk.Button(master=frm_form, text="Send XRP >", + command = standby_send_xrp) +btn_standby_send_xrp.grid(row=2, column = 2, sticky = "nsew") +btn_standby_create_trust_line = tk.Button(master=frm_form, + text="Create Trust Line", + command = standby_create_trust_line) +btn_standby_create_trust_line.grid(row=4, column=2, sticky = "nsew") +btn_standby_send_currency = tk.Button(master=frm_form, text="Send Currency >", + command = standby_send_currency) +btn_standby_send_currency.grid(row=5, column=2, sticky = "nsew") +btn_standby_send_currency = tk.Button(master=frm_form, text="Get Balances", + command = get_balances) +btn_standby_send_currency.grid(row=6, column=2, sticky = "nsew") +btn_standby_configure_account = tk.Button(master=frm_form, + text="Configure Account", + command = standby_configure_account) +btn_standby_configure_account.grid(row=7,column=0, sticky = "nsew") +btn_standby_mint_token = tk.Button(master=frm_form, text="Mint NFT", + command = standby_mint_token) +btn_standby_mint_token.grid(row=8, column=2, sticky="nsew") +btn_standby_get_tokens = tk.Button(master=frm_form, text="Get NFTs", + command = standby_get_tokens) +btn_standby_get_tokens.grid(row=9, column=2, sticky="nsew") +btn_standby_burn_token = tk.Button(master=frm_form, text="Burn NFT", + command = standby_burn_token) +btn_standby_burn_token.grid(row=10, column=2, sticky="nsew") +btn_standby_create_sell_offer = tk.Button(master=frm_form, text="Create Sell Offer", + command = standby_create_sell_offer) +btn_standby_create_sell_offer.grid(row=11, column=2, sticky="nsew") +btn_standby_accept_sell_offer = tk.Button(master=frm_form, text="Accept Sell Offer", + command = standby_accept_sell_offer) +btn_standby_accept_sell_offer.grid(row=12, column=2, sticky="nsew") +btn_standby_create_buy_offer = tk.Button(master=frm_form, text="Create Buy Offer", + command = standby_create_buy_offer) +btn_standby_create_buy_offer.grid(row=13, column=2, sticky="nsew") +btn_standby_accept_buy_offer = tk.Button(master=frm_form, text="Accept Buy Offer", + command = standby_accept_buy_offer) +btn_standby_accept_buy_offer.grid(row=14, column=2, sticky="nsew") +btn_standby_get_offers = tk.Button(master=frm_form, text="Get Offers", + command = standby_get_offers) +btn_standby_get_offers.grid(row=15, column=2, sticky="nsew") +btn_standby_cancel_offer = tk.Button(master=frm_form, text="Cancel Offer", + command = standby_cancel_offer) +btn_standby_cancel_offer.grid(row=16, column=2, sticky="nsew") +btn_standby_set_minter = tk.Button(master=frm_form, text="Set Minter", + command = standby_set_minter) +btn_standby_set_minter.grid(row=17, column=2, sticky="nsew") +btn_standby_mint_other = tk.Button(master=frm_form, text="Mint Other", + command = standby_mint_other) +btn_standby_mint_other.grid(row=18, column=2, sticky="new") + + + +# Create the Operational Account Buttons +btn_get_operational_account = tk.Button(master=frm_form, + text="Get Operational Account", + command = get_operational_account) +btn_get_operational_account.grid(row=0, column=3, sticky = "nsew") +btn_get_op_account_info = tk.Button(master=frm_form, text="Get Op Account Info", + command = get_operational_account_info) +btn_get_op_account_info.grid(row=1, column=3, sticky = "nsew") +btn_op_send_xrp = tk.Button(master=frm_form, text="< Send XRP", + command = operational_send_xrp) +btn_op_send_xrp.grid(row=2, column = 3, sticky = "nsew") +btn_op_create_trust_line = tk.Button(master=frm_form, text="Create Trust Line", + command = operational_create_trust_line) +btn_op_create_trust_line.grid(row=4, column=3, sticky = "nsew") +btn_op_send_currency = tk.Button(master=frm_form, text="< Send Currency", + command = operational_send_currency) +btn_op_send_currency.grid(row=5, column=3, sticky = "nsew") +btn_op_get_balances = tk.Button(master=frm_form, text="Get Balances", + command = get_balances) +btn_op_get_balances.grid(row=6, column=3, sticky = "nsew") +btn_op_configure_account = tk.Button(master=frm_form, text="Configure Account", + command = operational_configure_account) +btn_op_configure_account.grid(row=7,column=4, sticky = "nsew") +btn_op_mint_token = tk.Button(master=frm_form, text="Mint NFT", + command = operational_mint_token) +btn_op_mint_token.grid(row=8, column=3, sticky="nsew") +btn_op_get_tokens = tk.Button(master=frm_form, text="Get NFTs", + command = operational_get_tokens) +btn_op_get_tokens.grid(row=9, column=3, sticky="nsew") +btn_op_burn_token = tk.Button(master=frm_form, text="Burn NFT", + command = operational_burn_token) +btn_op_burn_token.grid(row=10, column=3, sticky="nsew") +btn_op_create_sell_offer = tk.Button(master=frm_form, text="Create Sell Offer", + command = op_create_sell_offer) +btn_op_create_sell_offer.grid(row=11, column=3, sticky="nsew") +btn_op_accept_sell_offer = tk.Button(master=frm_form, text="Accept Sell Offer", + command = op_accept_sell_offer) +btn_op_accept_sell_offer.grid(row=12, column=3, sticky="nsew") +btn_op_create_buy_offer = tk.Button(master=frm_form, text="Create Buy Offer", + command = op_create_buy_offer) +btn_op_create_buy_offer.grid(row=13, column=3, sticky="nsew") +btn_op_accept_buy_offer = tk.Button(master=frm_form, text="Accept Buy Offer", + command = op_accept_buy_offer) +btn_op_accept_buy_offer.grid(row=14, column=3, sticky="nsew") +btn_op_get_offers = tk.Button(master=frm_form, text="Get Offers", + command = op_get_offers) +btn_op_get_offers.grid(row=15, column=3, sticky="nsew") +btn_op_cancel_offer = tk.Button(master=frm_form, text="Cancel Offer", + command = op_cancel_offer) +btn_op_cancel_offer.grid(row=16, column=3, sticky="nsew") +btn_op_set_minter = tk.Button(master=frm_form, text="Set Minter", + command = operational_set_minter) +btn_op_set_minter.grid(row=17, column=3, sticky="nsew") +btn_op_mint_other = tk.Button(master=frm_form, text="Mint Other", + command = operational_mint_other) +btn_op_mint_other.grid(row=18, column=3, sticky="new") + +# Start the application +window.mainloop() diff --git a/content/_code-samples/quickstart/python/mod1.py b/content/_code-samples/quickstart/python/mod1.py new file mode 100644 index 0000000000..73aed5e186 --- /dev/null +++ b/content/_code-samples/quickstart/python/mod1.py @@ -0,0 +1,49 @@ +import xrpl +import json + +def get_account(_seed): + from xrpl.clients import JsonRpcClient + from xrpl.wallet import Wallet + JSON_RPC_URL = "https://s.altnet.rippletest.net:51234/" + client = JsonRpcClient(JSON_RPC_URL) + if (_seed == ''): + new_wallet = xrpl.wallet.generate_faucet_wallet(client) + else: + new_wallet = Wallet(_seed, sequence = 79396029) + return(new_wallet) + +def get_account_info(_accountId): + from xrpl.clients import JsonRpcClient + from xrpl.models.requests.account_info import AccountInfo + import json + JSON_RPC_URL = 'wss://s.altnet.rippletest.net:51234' + client = JsonRpcClient(JSON_RPC_URL) + acct_info = AccountInfo( + account=_accountId, + ledger_index="validated" + ) + response = client.request(acct_info) + return response.result['account_data'] + +def send_xrp(_seed, _amount, _destination): + from xrpl.clients import JsonRpcClient + from xrpl.wallet import Wallet + sending_wallet = Wallet(_seed, sequence = 16237283) + testnet_url = "https://s.altnet.rippletest.net:51234" + client = JsonRpcClient(testnet_url) + payment = xrpl.models.transactions.Payment( + account=sending_wallet.classic_address, + amount=xrpl.utils.xrp_to_drops(int(_amount)), + destination=_destination, + ) + signed_tx = xrpl.transaction.safe_sign_and_autofill_transaction( + payment, sending_wallet, client) + # max_ledger = signed_tx.last_ledger_sequence + # tx_id = signed_tx.get_hash() + try: + tx_response = xrpl.transaction.send_reliable_submission(signed_tx,client) + response = tx_response + except xrpl.transaction.XRPLReliableSubmissionException as e: + response = f"Submit failed: {e}" + return response + diff --git a/content/_code-samples/quickstart/python/mod2.py b/content/_code-samples/quickstart/python/mod2.py new file mode 100644 index 0000000000..0cff0af80d --- /dev/null +++ b/content/_code-samples/quickstart/python/mod2.py @@ -0,0 +1,109 @@ +import xrpl +import json +from xrpl.clients import JsonRpcClient +from xrpl.wallet import Wallet +from xrpl.models.requests.account_info import AccountInfo + + +testnet_url = "https://s.altnet.rippletest.net:51234" + +##################### +# create_trust_line # +##################### + +def create_trust_line(_seed, _issuer, _currency, _amount): +# Get the client + receiving_wallet = Wallet(_seed, sequence = 16237283) + client = JsonRpcClient(testnet_url) +# Define the trust line transaction + trustline_tx = xrpl.models.transactions.TrustSet( + account = receiving_wallet.classic_address, + limit_amount = xrpl.models.amounts.IssuedCurrencyAmount( + currency = _currency, + issuer = _issuer, + value = int(_amount) + ) + ) +# Sign and fill the transaction + signed_tx = xrpl.transaction.safe_sign_and_autofill_transaction( + trustline_tx, receiving_wallet, client) +# Submit the transaction and get results + try: + response = xrpl.transaction.send_reliable_submission(signed_tx,client) + except xrpl.transaction.XRPLReliableSubmissionException as e: + response = f"Submit failed: {e}" + return response.result + +################# +# send_currency # +################# + +def send_currency(_seed, _destination, _currency, _amount): +# Get the client + sending_wallet = Wallet(_seed, sequence = 16237283) + client = JsonRpcClient(testnet_url) +# Define the payment transaction. + send_currency_tx = xrpl.models.transactions.Payment( + account = sending_wallet.classic_address, + amount = xrpl.models.amounts.IssuedCurrencyAmount( + currency = _currency, + value = int(_amount), + issuer = sending_wallet.classic_address + ), + destination=_destination + ) +# Sign and fill the transaction + signed_tx = xrpl.transaction.safe_sign_and_autofill_transaction( + send_currency_tx, sending_wallet, client) +# Submit the transaction and get results + try: + response = xrpl.transaction.send_reliable_submission(signed_tx,client) + except xrpl.transaction.XRPLReliableSubmissionException as e: + response = f"Submit failed: {e}" + return response.result + +############### +# get_balance # +############### + +def get_balance(_sb_account_id, _op_account_id): + JSON_RPC_URL = 'wss://s.altnet.rippletest.net:51234' + client = JsonRpcClient(JSON_RPC_URL) + balance = xrpl.models.requests.GatewayBalances( + account=_sb_account_id, + ledger_index="validated", + hotwallet=[_op_account_id] + ) + response = client.request(balance) + return response.result + +##################### +# configure_account # +##################### + +def configure_account(_seed, _default_setting): +# Get the client + wallet = Wallet(_seed, sequence = 16237283) + client = JsonRpcClient(testnet_url) +# Create transaction + if (_default_setting.get()): + setting_tx = xrpl.models.transactions.AccountSet( + account = wallet.classic_address, + set_flag=xrpl.models.transactions.AccountSetFlag.ASF_DEFAULT_RIPPLE + ) + else: + setting_tx = xrpl.models.transactions.AccountSet( + account = wallet.classic_address, + clear_flag = xrpl.models.transactions.AccountSetFlag.ASF_DEFAULT_RIPPLE + ) + +# Sign and fill the transaction + signed_tx = xrpl.transaction.safe_sign_and_autofill_transaction( + setting_tx, wallet, client) +# Submit the transaction and get results + try: + response = xrpl.transaction.send_reliable_submission(signed_tx,client) + except xrpl.transaction.XRPLReliableSubmissionException as e: + response.result = f"Submit failed: {e}" + return response.result + diff --git a/content/_code-samples/quickstart/python/mod3.py b/content/_code-samples/quickstart/python/mod3.py new file mode 100644 index 0000000000..674eda0aaa --- /dev/null +++ b/content/_code-samples/quickstart/python/mod3.py @@ -0,0 +1,72 @@ +import xrpl +import json +from xrpl.clients import JsonRpcClient +from xrpl.wallet import Wallet +from xrpl.models.requests import AccountNFTs + +testnet_url = "https://s.altnet.rippletest.net:51234" + +############## +# mint_token # +############## + +def mint_token(_seed, _uri, _flags, _transfer_fee, _taxon): +# Get the client + mint_wallet = Wallet(_seed, sequence = 16237283) + client = JsonRpcClient(testnet_url) +# Define the mint transaction + mint_tx = xrpl.models.transactions.NFTokenMint( + account = mint_wallet.classic_address, + uri = xrpl.utils.str_to_hex(_uri), + flags = int(_flags), + transfer_fee = int(_transfer_fee), + nftoken_taxon = int(_taxon) + ) +# Sign and fill the transaction + signed_tx = xrpl.transaction.safe_sign_and_autofill_transaction( + mint_tx, mint_wallet, client) +# Submit the transaction and get results + try: + response = xrpl.transaction.send_reliable_submission(signed_tx,client) + except xrpl.transaction.XRPLReliableSubmissionException as e: + response = f"Submit failed: {e}" + return response.result + +############## +# get_tokens # +############## + +def get_tokens(_account): + from xrpl.clients import JsonRpcClient + import json + client = JsonRpcClient(testnet_url) + acct_nfts = AccountNFTs( + account=_account + ) + response = client.request(acct_nfts) + return response.result + + +############## +# burn_token # +############## + +def burn_token(_seed, _nftoken_id): +# Get the client + owner_wallet = Wallet(_seed, sequence = 16237283) + client = JsonRpcClient(testnet_url) + burn_tx = xrpl.models.transactions.NFTokenBurn( + account = owner_wallet.classic_address, + nftoken_id = _nftoken_id + ) +# Sign and fill the transaction + signed_tx = xrpl.transaction.safe_sign_and_autofill_transaction( + burn_tx, owner_wallet, client) +# Submit the transaction and get results + try: + response = xrpl.transaction.send_reliable_submission(signed_tx,client) + except xrpl.transaction.XRPLReliableSubmissionException as e: + response = f"Submit failed: {e}" + return response.result + + diff --git a/content/_code-samples/quickstart/python/mod4.py b/content/_code-samples/quickstart/python/mod4.py new file mode 100644 index 0000000000..7e775db143 --- /dev/null +++ b/content/_code-samples/quickstart/python/mod4.py @@ -0,0 +1,134 @@ +import xrpl +import json +from xrpl.clients import JsonRpcClient +from xrpl.wallet import Wallet +from datetime import datetime +from datetime import timedelta +from xrpl.models.requests import NFTSellOffers +from xrpl.models.requests import NFTBuyOffers +from xrpl.models.transactions import NFTokenAcceptOffer +testnet_url = "https://s.altnet.rippletest.net:51234" + +def create_sell_offer(_seed, _amount, _nftoken_id, _expiration, _destination): +# Get the client + owner_wallet = Wallet(_seed, sequence = 16237283) + client = JsonRpcClient(testnet_url) + expiration_date = datetime.now() + if (_expiration != ''): + expiration_date = xrpl.utils.datetime_to_ripple_time(expiration_date) + expiration_date = expiration_date + int(_expiration) +# Define the sell offer + sell_offer_tx = xrpl.models.transactions.NFTokenCreateOffer( + account = owner_wallet.classic_address, + nftoken_id = _nftoken_id, + amount = _amount, + destination=_destination if _destination != '' else None, + expiration = expiration_date if _expiration != '' else None, + flags = 1 + ) +# Sign and fill the transaction + signed_tx = xrpl.transaction.safe_sign_and_autofill_transaction( + sell_offer_tx, owner_wallet, client) +# Submit the transaction and report the results + try: + response = xrpl.transaction.send_reliable_submission(signed_tx,client) + except xrpl.transaction.XRPLReliableSubmissionException as e: + response = f"Submit failed: {e}" + return response.result +def accept_sell_offer(_seed, _offer_index): + buyer_wallet = Wallet(_seed, sequence = 16237283) + client = JsonRpcClient(testnet_url) + accept_offer_tx = xrpl.models.transactions.NFTokenAcceptOffer( + account = buyer_wallet.classic_address, + nftoken_sell_offer = _offer_index + ) +# Sign and fill the transaction + signed_tx = xrpl.transaction.safe_sign_and_autofill_transaction( + accept_offer_tx, buyer_wallet, client) +# Submit the transaction and report the results + try: + response = xrpl.transaction.send_reliable_submission(signed_tx,client) + except xrpl.transaction.XRPLReliableSubmissionException as e: + response = f"Submit failed: {e}" + return response.result + +def create_buy_offer(_seed, _amount, _nft_id, _owner, _expiration, _destination): +# Get the client + buyer_wallet = Wallet(_seed, sequence = 16237283) + client = JsonRpcClient(testnet_url) + expiration_date = datetime.now() + if (_expiration != ''): + expiration_date = xrpl.utils.datetime_to_ripple_time(expiration_date) + expiration_date = expiration_date + int(_expiration) +# Define the buy offer transaction with an expiration date + buy_offer_tx = xrpl.models.transactions.NFTokenCreateOffer( + account = buyer_wallet.classic_address, + nftoken_id = _nft_id, + amount = _amount, + owner = _owner, + expiration = expiration_date if _expiration != '' else None, + destination=_destination if _destination != '' else None, + flags = 0 + ) +# Sign and fill the transaction + signed_tx = xrpl.transaction.safe_sign_and_autofill_transaction( + buy_offer_tx, buyer_wallet, client) +# Submit the transaction and report the results + try: + response = xrpl.transaction.send_reliable_submission(signed_tx,client) + except xrpl.transaction.XRPLReliableSubmissionException as e: + response = f"Submit failed: {e}" + return response.result +def accept_buy_offer(_seed, _offer_index): + buyer_wallet = Wallet(_seed, sequence = 16237283) + client = JsonRpcClient(testnet_url) + accept_offer_tx = xrpl.models.transactions.NFTokenAcceptOffer( + account = buyer_wallet.classic_address, + nftoken_buy_offer = _offer_index + ) +# Sign and fill the transaction + signed_tx = xrpl.transaction.safe_sign_and_autofill_transaction( + accept_offer_tx, buyer_wallet, client) +# Submit the transaction and report the results + try: + response = xrpl.transaction.send_reliable_submission(signed_tx,client) + except xrpl.transaction.XRPLReliableSubmissionException as e: + response = f"Submit failed: {e}" + return response.result + +def get_offers(_nft_id): + client = JsonRpcClient(testnet_url) + offers = NFTBuyOffers( + nft_id=_nft_id + ) + response = client.request(offers) + allOffers = "Buy Offers:\n" + json.dumps(response.result, indent=4) + offers = NFTSellOffers( + nft_id=_nft_id + ) + response = client.request(offers) + allOffers += "\n\nSell Offers:\n" + json.dumps(response.result, indent=4) + return allOffers + +def cancel_offer(_seed, _nftoken_offer_ids): + owner_wallet = Wallet(_seed, sequence = 16237283) + client = JsonRpcClient(testnet_url) + tokenOfferIDs = [_nftoken_offer_ids] + nftSellOffers = "No sell offers" + cancel_offer_tx = xrpl.models.transactions.NFTokenCancelOffer( + account = owner_wallet.classic_address, + nftoken_offers = tokenOfferIDs + ) + signed_tx = xrpl.transaction.safe_sign_and_autofill_transaction( + cancel_offer_tx, owner_wallet, client) + try: + response = xrpl.transaction.send_reliable_submission(signed_tx,client) + except xrpl.transaction.XRPLReliableSubmissionException as e: + response = f"Submit failed: {e}" + return response.result + + + + + + diff --git a/content/_code-samples/quickstart/python/mod5.py b/content/_code-samples/quickstart/python/mod5.py new file mode 100644 index 0000000000..f669e612cc --- /dev/null +++ b/content/_code-samples/quickstart/python/mod5.py @@ -0,0 +1,25 @@ +import xrpl +import json +from xrpl.clients import JsonRpcClient +from xrpl.wallet import Wallet +testnet_url = "https://s.altnet.rippletest.net:51234" + + +def broker_sale(_seed, _sell_offer_index, _buy_offer_index, _broker_fee): + broker_wallet = Wallet(_seed, sequence = 16237283) + client = JsonRpcClient(testnet_url) + accept_offer_tx = xrpl.models.transactions.NFTokenAcceptOffer( + account = broker_wallet.classic_address, + nftoken_sell_offer = _sell_offer_index, + nftoken_buy_offer = _buy_offer_index, + nftoken_broker_fee = _broker_fee + ) +# Sign and fill the transaction + signed_tx = xrpl.transaction.safe_sign_and_autofill_transaction( + accept_offer_tx, broker_wallet, client) +# Submit the transaction and report the results + try: + response = xrpl.transaction.send_reliable_submission(signed_tx,client) + except xrpl.transaction.XRPLReliableSubmissionException as e: + response = f"Submit failed: {e}" + return response.result diff --git a/content/_code-samples/quickstart/python/mod6.py b/content/_code-samples/quickstart/python/mod6.py new file mode 100644 index 0000000000..c0e5371f4d --- /dev/null +++ b/content/_code-samples/quickstart/python/mod6.py @@ -0,0 +1,45 @@ +import xrpl +import json +from xrpl.clients import JsonRpcClient +from xrpl.wallet import Wallet +testnet_url = "https://s.altnet.rippletest.net:51234" + +def set_minter(_seed, _minter): + granter_wallet = Wallet(_seed, sequence = 16237283) + client = JsonRpcClient(testnet_url) + + set_minter_tx = xrpl.models.transactions.AccountSet( + account = granter_wallet.classic_address, + nftoken_minter = _minter, + set_flag = xrpl.models.transactions.AccountSetFlag.ASF_AUTHORIZED_NFTOKEN_MINTER + ) +# Sign and fill the transaction + signed_tx = xrpl.transaction.safe_sign_and_autofill_transaction( + set_minter_tx, granter_wallet, client) +# Submit the transaction and report the results + try: + response = xrpl.transaction.send_reliable_submission(signed_tx,client) + except xrpl.transaction.XRPLReliableSubmissionException as e: + response = f"Submit failed: {e}" + return response.result + +def mint_other(_seed, _uri, _flags, _transfer_fee, _taxon, _issuer): + minter_wallet = Wallet(_seed, sequence = 16237283) + client = JsonRpcClient(testnet_url) + mint_other_tx = xrpl.models.transactions.NFTokenMint( + account = minter_wallet.classic_address, + uri = xrpl.utils.str_to_hex(_uri), + flags = int(_flags), + transfer_fee = int(_transfer_fee), + nftoken_taxon = int(_taxon), + issuer = _issuer + ) +# Sign and fill the transaction + signed_tx = xrpl.transaction.safe_sign_and_autofill_transaction( + mint_other_tx, minter_wallet, client) +# Submit the transaction and report the results + try: + response = xrpl.transaction.send_reliable_submission(signed_tx,client) + except xrpl.transaction.XRPLReliableSubmissionException as e: + response = f"Submit failed: {e}" + return response.result