Merge branch 'master' into py-condition-escrow

This commit is contained in:
Dennis Dawson
2023-10-23 11:42:05 -07:00
committed by GitHub
268 changed files with 3340 additions and 1647 deletions

View File

@@ -12,7 +12,7 @@ httpcore==0.13.6
idna==3.2
image==1.5.33
pifacedigitalio==3.0.5
Pillow==9.3.0
Pillow==10.0.1
pycparser==2.20
pytz==2021.1
qrcode==7.2

View File

@@ -140,11 +140,23 @@
estree-walker "^2.0.2"
picomatch "^2.3.1"
"@types/brorand@^1.0.30":
version "1.0.31"
resolved "https://registry.yarnpkg.com/@types/brorand/-/brorand-1.0.31.tgz#120626ac4ce3510e6a8e20f3bd7ad7a2ec68cd35"
integrity sha512-L3fWmIDV7i8dBeE2/Yk/pDThcLYu0M6/FJpa1YxubI0Q69Po8v1HyyIslu39Q9oTf5nsC85MMbFtidWabnO1PQ==
dependencies:
"@types/node" "*"
"@types/estree@^1.0.0":
version "1.0.0"
resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz"
integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==
"@types/node@*":
version "20.8.3"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.3.tgz#c4ae2bb1cfab2999ed441a95c122bbbe1567a66d"
integrity sha512-jxiZQFpb+NlH5kjW49vXxvxTjeeqlbsnTAdBTKpzEdPs9itay7MscYXz3Fo9VYFEsfQ6LJFitHad3faerLAjCw==
"@types/node@10.12.18":
version "10.12.18"
resolved "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz"
@@ -187,16 +199,16 @@ available-typed-arrays@^1.0.5:
resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz"
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
base-x@3.0.9, base-x@^3.0.2:
base-x@^3.0.2, base-x@^3.0.9:
version "3.0.9"
resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz"
integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==
dependencies:
safe-buffer "^5.0.1"
base64-js@^1.0.2:
base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
big-integer@^1.6.48:
@@ -329,13 +341,13 @@ buffer-xor@^1.0.3:
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==
buffer@5.6.0:
version "5.6.0"
resolved "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz"
integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==
buffer@6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
dependencies:
base64-js "^1.0.2"
ieee754 "^1.1.4"
base64-js "^1.3.1"
ieee754 "^1.2.1"
builtin-status-codes@^3.0.0:
version "3.0.0"
@@ -615,9 +627,9 @@ https-proxy-agent@^5.0.0:
agent-base "6"
debug "4"
ieee754@^1.1.4:
ieee754@^1.2.1:
version "1.2.1"
resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.4:
@@ -720,10 +732,10 @@ nan@^2.13.2:
resolved "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz"
integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==
nanoid@^3.3.4:
version "3.3.4"
resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz"
integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
nanoid@^3.3.6:
version "3.3.6"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
object-is@^1.0.1:
version "1.1.5"
@@ -776,11 +788,11 @@ picomatch@^2.3.1:
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
postcss@^8.4.21:
version "8.4.21"
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz"
integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==
version "8.4.31"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
dependencies:
nanoid "^3.3.4"
nanoid "^3.3.6"
picocolors "^1.0.0"
source-map-js "^1.0.2"
@@ -837,36 +849,36 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
hash-base "^3.0.0"
inherits "^2.0.1"
ripple-address-codec@^4.2.4:
version "4.2.4"
resolved "https://registry.npmjs.org/ripple-address-codec/-/ripple-address-codec-4.2.4.tgz"
integrity sha512-roAOjKz94+FboTItey1XRh5qynwt4xvfBLvbbcx+FiR94Yw2x3LrKLF2GVCMCSAh5I6PkcpADg6AbYsUbGN3nA==
ripple-address-codec@^4.3.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/ripple-address-codec/-/ripple-address-codec-4.3.1.tgz#68fbaf646bb8567f70743af7f1ce4479f73efbf6"
integrity sha512-Qa3+9wKVvpL/xYtT6+wANsn0A1QcC5CT6IMZbRJZ/1lGt7gmwIfsrCuz1X0+LCEO7zgb+3UT1I1dc0k/5dwKQQ==
dependencies:
base-x "3.0.9"
base-x "^3.0.9"
create-hash "^1.1.2"
ripple-binary-codec@^1.5.0-beta.3:
version "1.5.0-beta.3"
resolved "https://registry.yarnpkg.com/ripple-binary-codec/-/ripple-binary-codec-1.5.0-beta.3.tgz#8f1514cf449a938a6285c469030a7bb1c0889fa3"
integrity sha512-VqAmgcOCYzg02DI4ajzX3jwKZ/nQMgwUoyk2/jWtuJqfXfPdEafBAnj0yGqo/gJ28hXY7tQoVAPCFBfLs5wksQ==
ripple-binary-codec@^1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/ripple-binary-codec/-/ripple-binary-codec-1.10.0.tgz#549f7fb3d3faf6b2d09fe7032bdcc4e6f8b5a511"
integrity sha512-qWXxubgXBV3h5NTaaLiusZ1FhPqSy+bCYHHarfZ3bMmO2alRa1Ox61jvX1Zyozok8PcF3gs3bKwZci4RTlA07w==
dependencies:
assert "^2.0.0"
big-integer "^1.6.48"
buffer "5.6.0"
buffer "6.0.3"
create-hash "^1.2.0"
decimal.js "^10.2.0"
ripple-address-codec "^4.2.4"
ripple-address-codec "^4.3.1"
ripple-keypairs@^1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/ripple-keypairs/-/ripple-keypairs-1.1.4.tgz"
integrity sha512-PMMjTOxZmCSBOvHPj6bA+V/HGx7oFgDtGGI8VcZYuaFO2H87UX0X0jhfHy+LA2Xy31WYlD7GaDIDDt2QO+AMtw==
ripple-keypairs@^1.1.5, ripple-keypairs@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/ripple-keypairs/-/ripple-keypairs-1.3.1.tgz#7fa531df36b138134afb53555a87d7f5eb465b2e"
integrity sha512-dmPlraWKJciFJxHcoubDahGnoIalG5e/BtV6HNDUs7wLXmtnLMHt6w4ed9R8MTL2zNrVPiIdI/HCtMMo0Tm7JQ==
dependencies:
bn.js "^5.1.1"
brorand "^1.0.5"
elliptic "^6.5.4"
hash.js "^1.0.3"
ripple-address-codec "^4.2.4"
ripple-address-codec "^4.3.1"
rollup-plugin-polyfill-node@^0.12.0:
version "0.12.0"
@@ -1003,20 +1015,30 @@ ws@^8.2.2:
resolved "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz"
integrity sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==
xrpl@^2.7.0-beta.2:
version "2.7.0-beta.2"
resolved "https://registry.yarnpkg.com/xrpl/-/xrpl-2.7.0-beta.2.tgz#b0f56dd600d937aab98a25d6e04ee5ba9b7aae88"
integrity sha512-ZhTr3LzIEOus0GakmGonK/JsyPDtU75QlUBDzPoX52qLIrZIgBVaNw+5K19p+Xn//EeGQqvHN5UbTCg5Obd3bw==
xrpl-secret-numbers@^0.3.3:
version "0.3.4"
resolved "https://registry.yarnpkg.com/xrpl-secret-numbers/-/xrpl-secret-numbers-0.3.4.tgz#947d6c803b8ff0286f19256e0fc54ea1bee96ae2"
integrity sha512-B3m0OLRsmNLQpN/BUR15+LC4yejM/pdneoWgijfBYbgjVVnpyCF5+Ur7zbAs4nCAlBUZYXnxp+o/rSNZkke9jQ==
dependencies:
"@types/brorand" "^1.0.30"
brorand "^1.1.0"
ripple-keypairs "^1.1.5"
xrpl@^2.11.0:
version "2.12.0"
resolved "https://registry.yarnpkg.com/xrpl/-/xrpl-2.12.0.tgz#6298ca0cbc28151a491a650552ef30166fc76c09"
integrity sha512-K50m1F2FDVwx5eUgHQcwl4xi7bA2eWxtSrmJ6CRomLsWjFSkortOLIzDfVLMtrylB2au1ky91zoeaDDrDxVYLQ==
dependencies:
bignumber.js "^9.0.0"
bip32 "^2.0.6"
bip39 "^3.0.4"
https-proxy-agent "^5.0.0"
lodash "^4.17.4"
ripple-address-codec "^4.2.4"
ripple-binary-codec "^1.5.0-beta.3"
ripple-keypairs "^1.1.4"
ripple-address-codec "^4.3.1"
ripple-binary-codec "^1.10.0"
ripple-keypairs "^1.3.1"
ws "^8.2.2"
xrpl-secret-numbers "^0.3.3"
xtend@^4.0.2:
version "4.0.2"

View File

@@ -23,6 +23,6 @@
"xrpl": "^2.6.0"
},
"devDependencies": {
"electron": "22.3.24"
"electron": "22.3.25"
}
}

View File

@@ -0,0 +1,127 @@
import tkinter as tk
import xrpl
import json
from mod1 import get_account, get_account_info
from mod7 import batch_mint, get_batch
#############################################
## Handlers #################################
#############################################
# Module 7 Handlers
def standby_batch_mint():
results = batch_mint(
ent_standby_seed.get(),
ent_standby_uri.get(),
ent_standby_flags.get(),
ent_standby_transfer_fee.get(),
ent_standby_taxon.get(),
ent_standby_nft_count.get()
)
text_standby_results.delete("1.0", tk.END)
text_standby_results.insert("1.0", json.dumps(results, indent=4))
def standby_get_batch_nfts():
results = get_batch(
ent_standby_seed.get(),
ent_standby_account.get()
)
text_standby_results.delete("1.0", tk.END)
text_standby_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))
# Create a new window with the title "Quickstart - Batch Minting"
window = tk.Tk()
window.title("Quickstart - Batch Minting")
# 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_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_nft_count = tk.Label(master=frm_form, text="NFT Count")
ent_standby_nft_count = 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_standby_balance.grid(row=5, column=0, sticky="e")
ent_standby_balance.grid(row=5, column=1)
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_count.grid(row=12, column=0, sticky="e")
ent_standby_nft_count.grid(row=12, column=1, sticky="w")
lbl_standby_results.grid(row=13, column=1, sticky="ne")
text_standby_results.grid(row=13, column=2, sticky="nw")
#############################################
## 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_batch_mint = tk.Button(master=frm_form,
text="Batch Mint",
command = standby_batch_mint)
btn_standby_batch_mint.grid(row=5, column=2, sticky = "nsew")
btn_standby_get_batch_nfts = tk.Button(master=frm_form,
text="Get Batch NFTs",
command = standby_get_batch_nfts)
btn_standby_get_batch_nfts.grid(row=8, column=2, sticky = "nsew")
# Start the application
window.mainloop()