Update kstwallet.lua
This commit is contained in:
parent
e3ac5e1bfc
commit
e0eab0cb3b
1 changed files with 187 additions and 131 deletions
|
@ -1,21 +1,21 @@
|
|||
--[[-----------------------------------------------
|
||||
| KristWallet by cossacksson |
|
||||
| KristWallet by 3d6 |
|
||||
---------------------------------------------------
|
||||
| This is the reference wallet for Krist. |
|
||||
| It is the basic definition of a functional |
|
||||
| Krist program, although it is not as old as the |
|
||||
| network (we used to just use raw API calls). |
|
||||
---------------------------------------------------
|
||||
| Every last bit of this program (except, of |
|
||||
| course, SHA256 itself) was made entirely by |
|
||||
| cossacksson and is "free software" and whatnot. |
|
||||
| Do whatever you want with it, but if you make |
|
||||
/\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
|
||||
/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
|
||||
---------------------------------------------------
|
||||
| Do whatever you want with this, but if you make |
|
||||
| it interact with a currency or network other |
|
||||
| than Krist, please give me credit. Thanks <3 |
|
||||
---------------------------------------------------
|
||||
| This wallet will NEVER save passwords anywhere. |]]local --[[pretty sneaky, huh?]]
|
||||
| This wallet will NEVER save passwords anywhere. |]]local
|
||||
-----------------------------------------------]]--
|
||||
version = 11
|
||||
version = 14
|
||||
local latest = 0
|
||||
local balance = 0
|
||||
local balance2 = 0
|
||||
|
@ -45,9 +45,33 @@ local maxspace = ""
|
|||
local ar = 0
|
||||
local amt = 0
|
||||
local availability = 0
|
||||
|
||||
local function split(inputstr, sep)
|
||||
if sep == nil then
|
||||
sep = "%s"
|
||||
end
|
||||
local t={} ; i=1
|
||||
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
|
||||
t[i] = str
|
||||
i = i + 1
|
||||
end
|
||||
return t
|
||||
end
|
||||
|
||||
local function readURL(url)
|
||||
local resp = http.get(url)
|
||||
if not resp then
|
||||
log("Could not reach "..url)
|
||||
error("Error connecting to server")
|
||||
panic()
|
||||
end
|
||||
local content = resp.readAll()
|
||||
resp.close()
|
||||
return content
|
||||
end
|
||||
|
||||
local function boot()
|
||||
checkdir()
|
||||
checkdir()
|
||||
for i=1,2 do checkdir() end
|
||||
print("Starting KristWallet v"..tostring(version))
|
||||
log("Started KristWallet v"..tostring(version))
|
||||
update()
|
||||
|
@ -71,13 +95,13 @@ local function boot()
|
|||
end
|
||||
end
|
||||
function update()
|
||||
latest = tonumber(http.get(readconfig("versionserver")).readAll())
|
||||
latest = tonumber(readURL(readconfig("versionserver")))
|
||||
if latest > version then
|
||||
print("An update is available!")
|
||||
log("Discovered update")
|
||||
if readconfig("autoupdate") then
|
||||
local me = fs.open(fs.getName(shell.getRunningProgram()),"w")
|
||||
local nextversion = http.get(readconfig("updateserver")).readAll()
|
||||
local nextversion = readURL(readconfig("updateserver"))
|
||||
print("Installed update. Run this program again to start v"..latest..".")
|
||||
me.write(nextversion)
|
||||
me.close()
|
||||
|
@ -348,33 +372,21 @@ end
|
|||
function checkdir()
|
||||
if fs.isDir("kst") then
|
||||
math.randomseed(os.time())
|
||||
checkfile("log_wallet",[[-----KRISTWALLET LOG FILE-----
|
||||
--If this file becomes excessively large, you
|
||||
--should save a copy to a disk and stow it away.
|
||||
--You should not destroy logs - they may help any
|
||||
--detectives recover stolen krist, or at least find
|
||||
--the perpetrator! Happy Kristmas! -cossacksson.
|
||||
---------------------------------------------------]])
|
||||
checkfile("enabled","true") --Disabling this just makes KristWallet refuse to start. No danger of Krist loss.
|
||||
checkfile("log_wallet","-----KRISTWALLET LOG FILE-----")
|
||||
checkfile("enabled","true") --Disabling this just makes KristWallet refuse to start.
|
||||
checkfile("sweepv1","true")
|
||||
checkfile("appendhashes","true") --Disabling this makes it possible to use KristWallet with extremely old addresses. I doubt anyone but me ever will.
|
||||
checkfile("appendhashes","true") --Disabling this makes it possible to use KristWallet with extremely old addresses.
|
||||
checkfile("autoupdate","true")
|
||||
checkfile("whitelisted","false")
|
||||
checkfile("rebootonexit","false")
|
||||
checkfile("locksettings","false")
|
||||
checkfile("usev1address","false")
|
||||
checkfile("autologin","false") --Don't use autologin. Admittedly, it was a very stupid and dangerous idea. If you want a wallet exclusive to your address, use whitelist instead.
|
||||
checkfile("keyAL",sha256("")) --This is meaningless gibberish
|
||||
checkfile("keyLV",sha256(math.random(10)..os.time())) --This is where the local vault's krist is stored. DO NOT DESTROY EVER.
|
||||
checkfile("autologin","false")
|
||||
checkfile("keyAL",sha256(""))
|
||||
checkfile("keyLV",sha256(math.random(1000000)..os.time())) --This is where the local vault's krist is stored. DO NOT DESTROY!
|
||||
checkfile("versionserver","https://raw.githubusercontent.com/BTCTaras/kristwallet/master/staticapi/version")
|
||||
checkfile("updateserver","https://raw.githubusercontent.com/BTCTaras/kristwallet/master/kristwallet")
|
||||
checkfile("syncnode","http://ceriat.net/krist/") --A trusted A-class node to push transactions to.
|
||||
checkfile("whitelist",[[kg5dc1lzo0
|
||||
a5dfb396d3]])
|
||||
checkfile("blacklist",[[ke3kjplzsz #Blank string (prevent accidents)
|
||||
kojddz0uzw #RV main
|
||||
8c11bb0d2d #Ransom virus
|
||||
]])
|
||||
checkfile("syncnode","http://krist.ceriat.net/")
|
||||
checkfile("whitelist","")
|
||||
checkfile("blacklist","")
|
||||
else
|
||||
fs.makeDir("kst")
|
||||
end
|
||||
|
@ -419,6 +431,7 @@ function openwallet()
|
|||
password = readconfig("keyAL")
|
||||
else
|
||||
password = read("*")
|
||||
if password == "" then term.setCursorPos(16,6) password = read("*") end
|
||||
if readconfig("appendhashes") then password = sha256("KRISTWALLET"..password) end
|
||||
end
|
||||
term.clear()
|
||||
|
@ -430,12 +443,10 @@ function openwallet()
|
|||
log("Derived address: "..addressv1)
|
||||
address = makev2address(masterkey)
|
||||
log("Derived address: "..address)
|
||||
balance = tonumber(http.get(readconfig("syncnode").."?getbalance="..addressv1).readAll())
|
||||
if balance > 0 and readconfig("sweepv1") then local transaction = http.get(readconfig("syncnode").."?pushtx&q="..address.."&pkey="..masterkey.."&amt="..balance).readAll() log("Swept hex address") end
|
||||
balance = tonumber(http.get(readconfig("syncnode").."?getbalance="..address).readAll())
|
||||
balance = tonumber(readURL(readconfig("syncnode").."?getbalance="..addressv1))
|
||||
if balance > 0 and readconfig("sweepv1") then local transaction = readURL(readconfig("syncnode").."?pushtx&q="..address.."&pkey="..masterkey.."&amt="..balance); log("Swept hex address") end
|
||||
balance = tonumber(readURL(readconfig("syncnode").."?getbalance="..address))
|
||||
if balance >= 100000 then log("Woah! There's a small fortune here!") elseif balance > 0 then log("There is some krist here!") end
|
||||
if balance == 420 then log("This is such a blazing balance") end
|
||||
if balance == 42 then log("Hey, Chuck") end
|
||||
if readconfig("whitelisted") then
|
||||
local whitelist = readconfig("whitelist")
|
||||
if string.find(whitelist, address) == nil then
|
||||
|
@ -458,7 +469,6 @@ function openwallet()
|
|||
os.sleep(3)
|
||||
end
|
||||
end
|
||||
if readconfig("usev1address") then address = addressv1 end
|
||||
addresslv = makev2address(readconfig("keyLV"))
|
||||
log("Loaded local vault")
|
||||
end
|
||||
|
@ -603,8 +613,33 @@ local function postgraphic(px,py,id)
|
|||
term.write(".kst")
|
||||
elseif id == 8 then
|
||||
--Name sent
|
||||
term.setCursorPos(px+1,py+3)
|
||||
term.setBackgroundColor(16384)
|
||||
term.setTextColor(4)
|
||||
term.write(".kst")
|
||||
term.setTextColor(16384)
|
||||
term.setBackgroundColor(1)
|
||||
term.setCursorPos(px+2,py)
|
||||
term.write("/\\")
|
||||
term.setCursorPos(px+2,py+1)
|
||||
term.write("||")
|
||||
elseif id == 9 then
|
||||
--Name received
|
||||
term.setCursorPos(px+1,py+3)
|
||||
term.setBackgroundColor(16384)
|
||||
term.setTextColor(4)
|
||||
term.write(".kst")
|
||||
term.setTextColor(8192)
|
||||
term.setBackgroundColor(1)
|
||||
term.setCursorPos(px+1,py)
|
||||
term.write("||")
|
||||
term.setCursorPos(px+1,py+1)
|
||||
term.write("\\/")
|
||||
term.setTextColor(16384)
|
||||
term.setCursorPos(px+3,py)
|
||||
term.write("/\\")
|
||||
term.setCursorPos(px+3,py+1)
|
||||
term.write("||")
|
||||
end
|
||||
end
|
||||
function wallet()
|
||||
|
@ -614,7 +649,7 @@ function wallet()
|
|||
if gui == 1 and xPos >= 3 and xPos <= 14 then
|
||||
if yPos == 5 then
|
||||
page = 1
|
||||
balance = tonumber(http.get(readconfig("syncnode").."?getbalance="..address).readAll())
|
||||
balance = tonumber(readURL(readconfig("syncnode").."?getbalance="..address))
|
||||
end
|
||||
if yPos == 7 then
|
||||
page = 2
|
||||
|
@ -623,7 +658,7 @@ function wallet()
|
|||
end
|
||||
if yPos == 9 then
|
||||
page = 3
|
||||
balance = tonumber(http.get(readconfig("syncnode").."?getbalance="..address).readAll())
|
||||
balance = tonumber(readURL(readconfig("syncnode").."?getbalance="..address))
|
||||
end
|
||||
if yPos == 11 then
|
||||
page = 8
|
||||
|
@ -642,10 +677,18 @@ function wallet()
|
|||
page = 0
|
||||
end
|
||||
end
|
||||
local lexm = http.get(readconfig("syncnode").."?listnames="..address)
|
||||
local lem = false
|
||||
local lexmm
|
||||
if lexm.readAll then
|
||||
lem = true
|
||||
lexmm = lexm.readAll()
|
||||
end
|
||||
|
||||
if page == 1 then
|
||||
balance = tonumber(http.get(readconfig("syncnode").."?getbalance="..address).readAll())
|
||||
balance = tonumber(readURL(readconfig("syncnode").."?getbalance="..address))
|
||||
if (yPos-7)%5 == 0 and yPos >= 7 and xPos >= 26 and xPos <= 35 then
|
||||
subject = string.sub(http.get(readconfig("syncnode").."?listtx="..address.."&overview").readAll(),13+(31*((yPos-7)/5)),22+(31*((yPos-7)/5)))
|
||||
subject = string.sub(readURL(readconfig("syncnode").."?listtx="..address.."&overview"),13+(31*((yPos-7)/5)),22+(31*((yPos-7)/5)))
|
||||
if string.len(subject) == 10 and subject ~= "N/A(Mined)" and subject ~= "N/A(Names)" then
|
||||
page = 2
|
||||
end
|
||||
|
@ -685,8 +728,8 @@ function wallet()
|
|||
log("Read recipient for transfer")
|
||||
local amount = read()
|
||||
log("Read amount for transfer")
|
||||
local transaction = http.get(readconfig("syncnode").."?pushtx2&q="..recipient.."&pkey="..masterkey.."&amt="..amount).readAll()
|
||||
balance = tonumber(http.get(readconfig("syncnode").."?getbalance="..address).readAll())
|
||||
local transaction = readURL(readconfig("syncnode").."?pushtx2&q="..recipient.."&pkey="..masterkey.."&amt="..amount)
|
||||
balance = tonumber(readURL(readconfig("syncnode").."?getbalance="..address))
|
||||
log("Attempting to send "..amount.." KST to "..recipient)
|
||||
term.setCursorPos(19,8)
|
||||
if transaction == "Success" then
|
||||
|
@ -721,9 +764,6 @@ function wallet()
|
|||
if yPos == 4 and xPos >= 19 and xPos <= 31 then
|
||||
page = 10
|
||||
end
|
||||
if yPos == 5 and xPos >= 19 and xPos <= 31 then
|
||||
--page = 11
|
||||
end
|
||||
if yPos == 3 and xPos >= 35 and xPos <= 48 then
|
||||
page = 6
|
||||
end
|
||||
|
@ -757,26 +797,31 @@ function wallet()
|
|||
end
|
||||
end
|
||||
elseif page == 15 then
|
||||
|
||||
local function isEdit(xpo)
|
||||
return xpo >= 39 and xpo <= 42
|
||||
end
|
||||
local function isSend(xpo)
|
||||
return xpo >= 44 and xpo <= 47
|
||||
end
|
||||
|
||||
if xPos and yPos then
|
||||
local listofnames = split(lexmm, ";")
|
||||
if yPos == 1 and xPos >= 46 then
|
||||
page = 16
|
||||
elseif yPos >= 3 and xPos >= 39 and xPos <= 42 then
|
||||
elseif lem and yPos >= 3 and isEdit(xPos) then
|
||||
if listofnames[yPos - 3] then
|
||||
page = 17
|
||||
local listofnames = http.get(readconfig("syncnode").."?listnames="..address).readAll()
|
||||
local nameclicked = yPos - 3
|
||||
if nameclicked > 0 then repeat
|
||||
listofnames = listofnames:sub(1+listofnames:find(";"))
|
||||
nameclicked = nameclicked - 1
|
||||
until nameclicked == 0 end
|
||||
subject = listofnames:sub(0,listofnames:find(";")-1)
|
||||
elseif yPos >= 3 and xPos >= 44 and xPos <= 47 then
|
||||
subject = listofnames[nameclicked]
|
||||
end
|
||||
elseif lem and yPos >= 3 and isSend(xPos) then
|
||||
if listofnames[yPos - 3] then
|
||||
page = 18
|
||||
local listofnames = http.get(readconfig("syncnode").."?listnames="..address).readAll()
|
||||
local nameclicked = yPos - 3
|
||||
if nameclicked > 0 then repeat
|
||||
listofnames = listofnames:sub(1+listofnames:find(";"))
|
||||
nameclicked = nameclicked - 1
|
||||
until nameclicked == 0 end
|
||||
subject = listofnames:sub(0,listofnames:find(";")-1)
|
||||
subject = listofnames[nameclicked]
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif page == 8 then
|
||||
if yPos == 3 and xPos >= 19 and xPos <= 30 then
|
||||
|
@ -785,6 +830,9 @@ function wallet()
|
|||
if yPos == 3 and xPos >= 35 and xPos <= 47 then
|
||||
page = 16
|
||||
end
|
||||
if yPos == 4 and xPos >= 35 and xPos <= 47 then
|
||||
--page = 18
|
||||
end
|
||||
if yPos == 4 and xPos >= 19 and xPos <= 29 then
|
||||
page = 13
|
||||
end
|
||||
|
@ -795,14 +843,13 @@ function wallet()
|
|||
term.setCursorPos(30,5)
|
||||
maxspace = read():lower()
|
||||
term.setCursorPos(19,7)
|
||||
pagespace = http.get(readconfig("syncnode").."?name_transfer&pkey="..masterkey.."&name="..subject.."&q="..maxspace).readAll()
|
||||
pagespace = readURL(readconfig("syncnode").."?name_transfer&pkey="..masterkey.."&name="..subject.."&q="..maxspace)
|
||||
if pagespace == "Success" then
|
||||
end
|
||||
term.write("Transfer request broadcasted")
|
||||
term.write("Name transferred")
|
||||
log("Tried sending a name to "..maxspace)
|
||||
os.sleep(3)
|
||||
page = 15
|
||||
--im drunk on water right now
|
||||
end
|
||||
elseif page == 16 then
|
||||
if yPos == 4 and xPos >= 25 then
|
||||
|
@ -816,7 +863,7 @@ function wallet()
|
|||
if name == "a" or name == "name" or name == "id" or name == "owner" or name == "registered" or name == "updated" or name == "expires" or name == "unpaid" then
|
||||
availability = 0
|
||||
else
|
||||
availability = tonumber(http.get(readconfig("syncnode").."?name_check="..name).readAll())
|
||||
availability = tonumber(readURL(readconfig("syncnode").."?name_check="..name))
|
||||
log("Checked "..name..".kst for availability ("..availability..")")
|
||||
term.setCursorPos(19,7)
|
||||
if availability then
|
||||
|
@ -832,7 +879,7 @@ function wallet()
|
|||
end
|
||||
elseif yPos == 7 and xPos >= 30 and xPos <= 39 and availability == 1 and balance >= 500 then
|
||||
availability = 2
|
||||
local k = http.get(readconfig("syncnode").."?name_new&pkey="..masterkey.."&name="..name).readAll()
|
||||
local k = readURL(readconfig("syncnode").."?name_new&pkey="..masterkey.."&name="..name)
|
||||
end
|
||||
elseif page == 17 then
|
||||
if yPos == 5 and xPos >= 25 then
|
||||
|
@ -842,10 +889,10 @@ function wallet()
|
|||
zone = read():gsub("http://","")
|
||||
term.setCursorPos(25,5)
|
||||
term.write("Please wait... ")
|
||||
local sevenminutesleftuntilmaystartsfuckihavetoreleasethisnow = http.get(readconfig("syncnode").."?name_update&pkey="..masterkey.."&name="..subject.."&ar="..zone).readAll()
|
||||
local sevenminutesleftuntilmaystartsfuckihavetoreleasethisnow = readURL(readconfig("syncnode").."?name_update&pkey="..masterkey.."&name="..subject.."&ar="..zone)
|
||||
elseif yPos == 7 and xPos >= 30 and xPos <= 39 and availability == 1 and balance >= 500 then
|
||||
availability = 2
|
||||
local k = http.get(readconfig("syncnode").."?name_new&pkey="..masterkey.."&name="..name).readAll()
|
||||
local k = readURL(readconfig("syncnode").."?name_new&pkey="..masterkey.."&name="..name)
|
||||
end
|
||||
elseif page == 9 then
|
||||
if yPos == 4 and xPos >= 30 then
|
||||
|
@ -858,7 +905,7 @@ function wallet()
|
|||
if string.len(doublekey) > 0 then
|
||||
doublekey = sha256(masterkey.."-"..sha256(doublekey))
|
||||
addressdv = makev2address(doublekey)
|
||||
balance2 = tonumber(http.get(readconfig("syncnode").."?getbalance="..addressdv).readAll())
|
||||
balance2 = tonumber(readURL(readconfig("syncnode").."?getbalance="..addressdv))
|
||||
log("Derived double vault "..addressdv)
|
||||
else
|
||||
addressdv = ""
|
||||
|
@ -881,9 +928,9 @@ function wallet()
|
|||
if yPos == 6 and xPos >= 25 and xPos <= 33 then
|
||||
if tonumber(amt) > 0 and string.len(doublekey) > 0 then
|
||||
if tonumber(amt) <= balance then
|
||||
local transaction = http.get(readconfig("syncnode").."?pushtx2&q="..addressdv.."&pkey="..masterkey.."&amt="..tonumber(amt)).readAll()
|
||||
balance = tonumber(http.get(readconfig("syncnode").."?getbalance="..address).readAll())
|
||||
balance2 = tonumber(http.get(readconfig("syncnode").."?getbalance="..addressdv).readAll())
|
||||
local transaction = readURL(readconfig("syncnode").."?pushtx2&q="..addressdv.."&pkey="..masterkey.."&amt="..tonumber(amt))
|
||||
balance = tonumber(readURL(readconfig("syncnode").."?getbalance="..address))
|
||||
balance2 = tonumber(readURL(readconfig("syncnode").."?getbalance="..addressdv))
|
||||
log("Put "..amt.." KST in a double vault")
|
||||
end
|
||||
end
|
||||
|
@ -891,9 +938,9 @@ function wallet()
|
|||
if yPos == 6 and xPos >= 35 and xPos <= 44 then
|
||||
if tonumber(amt) > 0 and string.len(doublekey) > 0 then
|
||||
if tonumber(amt) <= balance2 then
|
||||
local transaction = http.get(readconfig("syncnode").."?pushtx2&q="..address.."&pkey="..doublekey.."&amt="..tonumber(amt)).readAll()
|
||||
balance = tonumber(http.get(readconfig("syncnode").."?getbalance="..address).readAll())
|
||||
balance2 = tonumber(http.get(readconfig("syncnode").."?getbalance="..addressdv).readAll())
|
||||
local transaction = readURL(readconfig("syncnode").."?pushtx2&q="..address.."&pkey="..doublekey.."&amt="..tonumber(amt))
|
||||
balance = tonumber(readURL(readconfig("syncnode").."?getbalance="..address))
|
||||
balance2 = tonumber(readURL(readconfig("syncnode").."?getbalance="..addressdv))
|
||||
log("Took "..amt.." KST from a double vault")
|
||||
end
|
||||
end
|
||||
|
@ -916,8 +963,8 @@ function wallet()
|
|||
if yPos == 6 and xPos >= 25 and xPos <= 33 then
|
||||
if tonumber(amt) > 0 then
|
||||
if tonumber(amt) <= balance then
|
||||
local transaction = http.get(readconfig("syncnode").."?pushtx2&q="..addresslv.."&pkey="..masterkey.."&amt="..tonumber(amt)).readAll()
|
||||
balance = tonumber(http.get(readconfig("syncnode").."?getbalance="..address).readAll())
|
||||
local transaction = readURL(readconfig("syncnode").."?pushtx2&q="..addresslv.."&pkey="..masterkey.."&amt="..tonumber(amt))
|
||||
balance = tonumber(readURL(readconfig("syncnode").."?getbalance="..address))
|
||||
log("Put "..amt.." KST in a local vault")
|
||||
end
|
||||
end
|
||||
|
@ -925,8 +972,8 @@ function wallet()
|
|||
if yPos == 6 and xPos >= 35 and xPos <= 44 then
|
||||
if tonumber(amt) > 0 then
|
||||
if tonumber(amt) <= balance3 then
|
||||
local transaction = http.get(readconfig("syncnode").."?pushtx2&q="..address.."&pkey="..readconfig("keyLV").."&amt="..tonumber(amt)).readAll()
|
||||
balance = tonumber(http.get(readconfig("syncnode").."?getbalance="..address).readAll())
|
||||
local transaction = readURL(readconfig("syncnode").."?pushtx2&q="..address.."&pkey="..readconfig("keyLV").."&amt="..tonumber(amt))
|
||||
balance = tonumber(readURL(readconfig("syncnode").."?getbalance="..address))
|
||||
log("Took "..amt.." KST from a local vault")
|
||||
end
|
||||
end
|
||||
|
@ -963,7 +1010,7 @@ function hud()
|
|||
term.setTextColor(2048)
|
||||
term.write("release "..version.."")
|
||||
term.setCursorPos(2,19)
|
||||
term.write("by cossacksson")
|
||||
term.write(" by 3d6")
|
||||
term.setTextColor(32768)
|
||||
term.setCursorPos(3,5)
|
||||
drawTab(" Overview ")
|
||||
|
@ -1011,18 +1058,20 @@ function hud()
|
|||
term.setTextColor(32768)
|
||||
term.setCursorPos(19,5)
|
||||
local recenttransactions = ""
|
||||
--if tostring(balance) ~= 'nil' then recenttransactions = http.get(readconfig("syncnode").."?listtx="..address.."&overview").readAll() end
|
||||
if tostring(balance) ~= 'nil' then recenttransactions = readURL(readconfig("syncnode").."?listtx="..address.."&overview") end
|
||||
local txtype = 0
|
||||
local graphics = 0
|
||||
if string.len(recenttransactions) > 25 then
|
||||
repeat
|
||||
if string.sub(recenttransactions,13+(31*graphics),22+(31*graphics)) == "N/A(Mined)" then txtype = 1
|
||||
elseif string.sub(recenttransactions,13+(31*graphics),22+(31*graphics)) == "N/A(Names)" and tonumber(string.sub(recenttransactions,23+(31*graphics),31+(31*graphics))) == 0 then txtype = 7
|
||||
elseif tonumber(string.sub(recenttransactions,23+(31*graphics),31+(31*graphics))) == 0 then txtype = 9
|
||||
elseif string.sub(recenttransactions,13+(31*graphics),22+(31*graphics)) == "N/A(Names)" then txtype = 6
|
||||
elseif string.sub(recenttransactions,13+(31*graphics),22+(31*graphics)) == address then txtype = 4
|
||||
elseif string.sub(recenttransactions,13+(31*graphics),22+(31*graphics)) == addressv1 then txtype = 5
|
||||
elseif tonumber(string.sub(recenttransactions,23+(31*graphics),31+(31*graphics))) < 0 then txtype = 2
|
||||
elseif tonumber(string.sub(recenttransactions,23+(31*graphics),31+(31*graphics))) > 0 then txtype = 3
|
||||
else txtype = 8
|
||||
end
|
||||
postgraphic(19,5+(5*graphics),txtype)
|
||||
term.setCursorPos(26,5+(5*graphics))
|
||||
|
@ -1035,6 +1084,8 @@ function hud()
|
|||
elseif txtype == 5 then term.write("Imported")
|
||||
elseif txtype == 6 then term.write("Name registered")
|
||||
elseif txtype == 7 then term.write("Name operation")
|
||||
elseif txtype == 8 then term.write("Unknown")
|
||||
elseif txtype == 9 then term.write("Name transfer")
|
||||
end
|
||||
term.setCursorPos(26,6+(5*graphics))
|
||||
if txtype == 4 then
|
||||
|
@ -1051,7 +1102,7 @@ function hud()
|
|||
term.setCursorPos(26,7+(5*graphics))
|
||||
term.setTextColor(32768)
|
||||
if txtype ~= 6 then term.setTextColor(512) end
|
||||
if txtype > 1 and txtype < 6 then term.write(string.sub(recenttransactions,13+(31*graphics),22+(31*graphics))) end
|
||||
if txtype == 9 or (txtype > 1 and txtype < 6) then term.write(string.sub(recenttransactions,13+(31*graphics),22+(31*graphics))) end
|
||||
--if txtype == 6 then term.write(".kst") end
|
||||
term.setCursorPos(26,8+(5*graphics))
|
||||
term.setTextColor(128)
|
||||
|
@ -1059,23 +1110,6 @@ function hud()
|
|||
graphics = graphics + 1
|
||||
until graphics >= math.floor(string.len(recenttransactions)/32)
|
||||
end
|
||||
term.setTextColor(colors.gray)
|
||||
term.setCursorPos(19,5)
|
||||
term.write("The Krist database is getting")
|
||||
term.setCursorPos(19,6)
|
||||
term.write("extremely huge. Some features")
|
||||
term.setCursorPos(19,7)
|
||||
term.write("have been temporarily disabled")
|
||||
term.setCursorPos(19,8)
|
||||
term.write("until queries can be made more")
|
||||
term.setCursorPos(19,9)
|
||||
term.write("efficient.")
|
||||
term.setCursorPos(19,11)
|
||||
term.write("This includes the recent")
|
||||
term.setCursorPos(19,12)
|
||||
term.write("transaction list that would")
|
||||
term.setCursorPos(19,13)
|
||||
term.write("normally be found here.")
|
||||
term.setTextColor(32768)
|
||||
term.setCursorPos(19,3)
|
||||
term.write("Your balance: ")
|
||||
|
@ -1083,18 +1117,21 @@ function hud()
|
|||
if tostring(balance) == 'nil' then balance = 0 end
|
||||
term.write(tostring(balance).." KST ")
|
||||
term.setTextColor(512)
|
||||
local names = tonumber(http.get(readconfig("syncnode").."?getnames="..address).readAll())
|
||||
local names = tonumber(readURL(readconfig("syncnode").."?getnames="..address))
|
||||
if names > 0 then term.write("["..tostring(names).."]") end
|
||||
if address == "khm4f12scx" or address == "klhyy8e845" or address == "kcyd5vejdw" then
|
||||
if address == "ke3kjplzsz" or address == "767fc628a4" or address == "e3b0c44298" then
|
||||
term.setCursorPos(1,1)
|
||||
term.setBackgroundColor(16384)
|
||||
term.setTextColor(16)
|
||||
term.clearLine()
|
||||
term.write("The crash on trying to edit a name is now fixed btw")
|
||||
term.write("You are currently using a blank string password.")
|
||||
end
|
||||
elseif page == 2 then
|
||||
subbal = http.get(readconfig("syncnode").."?getbalance="..subject).readAll()
|
||||
subtxs = http.get(readconfig("syncnode").."?listtx="..subject).readAll()
|
||||
term.setCursorPos(18,1)
|
||||
term.write("Please wait...")
|
||||
os.sleep(0)
|
||||
subbal = readURL(readconfig("syncnode").."?getbalance="..subject)
|
||||
subtxs = readURL(readconfig("syncnode").."?listtx="..subject)
|
||||
log("Loaded transactions for address "..subject)
|
||||
log("Page index is "..scroll)
|
||||
term.setCursorPos(18,1)
|
||||
|
@ -1215,7 +1252,7 @@ function hud()
|
|||
term.setCursorPos(19,9)
|
||||
--term.write("KST distrib. Largest transfers")
|
||||
elseif page == 5 then
|
||||
local blocks = http.get(readconfig("syncnode").."?blocks").readAll()
|
||||
local blocks = readURL(readconfig("syncnode").."?blocks")
|
||||
local tx = 0
|
||||
ar = 0
|
||||
local height = string.sub(blocks,1,8)
|
||||
|
@ -1273,7 +1310,7 @@ function hud()
|
|||
term.setCursorPos(18,1)
|
||||
term.write("ADDRESS (click to edit)")
|
||||
elseif page == 7 then
|
||||
local blocks = http.get(readconfig("syncnode").."?richapi").readAll()
|
||||
local blocks = readURL(readconfig("syncnode").."?richapi")
|
||||
local tx = 0
|
||||
ar = 0
|
||||
local height = string.sub(blocks,1,8)
|
||||
|
@ -1385,7 +1422,7 @@ function hud()
|
|||
end
|
||||
term.setTextColor(32768)
|
||||
elseif page == 10 then
|
||||
local blocks = http.get(readconfig("syncnode").."?blocks&low").readAll()
|
||||
local blocks = readURL(readconfig("syncnode").."?blocks&low")
|
||||
local tx = 0
|
||||
ar = 0
|
||||
local blktime = {}
|
||||
|
@ -1419,7 +1456,7 @@ function hud()
|
|||
term.write(string.sub(blkhash[ar],1,12))
|
||||
until ar == math.min(tx,18)
|
||||
elseif page == 11 then
|
||||
local blocks = http.get(readconfig("syncnode").."?blocks&low&lownonce").readAll()
|
||||
local blocks = readURL(readconfig("syncnode").."?blocks&low&lownonce")
|
||||
local tx = 0
|
||||
ar = 0
|
||||
local blktime = {}
|
||||
|
@ -1450,7 +1487,7 @@ function hud()
|
|||
term.write(tonumber(blkhash[ar]))
|
||||
until ar == math.min(tx,18)
|
||||
elseif page == 12 then
|
||||
local blocks = http.get(readconfig("syncnode").."?blocks&low&highnonce").readAll()
|
||||
local blocks = readURL(readconfig("syncnode").."?blocks&low&highnonce")
|
||||
local tx = 0
|
||||
ar = 0
|
||||
local blktime = {}
|
||||
|
@ -1481,7 +1518,7 @@ function hud()
|
|||
term.write(tonumber(blkhash[ar]))
|
||||
until ar == math.min(tx,18)
|
||||
elseif page == 13 then
|
||||
balance3 = tonumber(http.get(readconfig("syncnode").."?getbalance="..addresslv).readAll())
|
||||
balance3 = tonumber(readURL(readconfig("syncnode").."?getbalance="..addresslv))
|
||||
term.setCursorPos(25,2)
|
||||
term.write("Local vault manager")
|
||||
term.setCursorPos(19,8)
|
||||
|
@ -1497,15 +1534,15 @@ function hud()
|
|||
term.setCursorPos(19,13)
|
||||
term.write("they were initially created on.")
|
||||
term.setCursorPos(19,14)
|
||||
term.write("This has use cases, but is a")
|
||||
term.write("If you do this, please ensure")
|
||||
term.setCursorPos(19,15)
|
||||
term.write("dangerous way of storing Krist")
|
||||
term.write("that this computer is never")
|
||||
term.setCursorPos(19,16)
|
||||
term.write("and you should probably only do")
|
||||
term.write("stolen or broken, as your money")
|
||||
term.setCursorPos(19,17)
|
||||
term.write("it this way if you know what")
|
||||
term.write("may be lost if you don't have a")
|
||||
term.setCursorPos(19,18)
|
||||
term.write("you're doing.")
|
||||
term.write("backup.")
|
||||
term.setCursorPos(19,4)
|
||||
term.write("KST put here: "..balance3)
|
||||
term.setCursorPos(19,5)
|
||||
|
@ -1554,26 +1591,29 @@ function hud()
|
|||
term.write(" Name Actions ")
|
||||
term.setBackgroundColor(1)
|
||||
term.setCursorPos(18,3)
|
||||
local namelist = http.get(readconfig("syncnode").."?listnames="..address).readAll()
|
||||
if string.len(namelist) == 0 then
|
||||
local namelist = readURL(readconfig("syncnode").."?listnames="..address)
|
||||
local splitname = split(namelist, ";")
|
||||
|
||||
|
||||
if #splitname == 0 then
|
||||
term.setTextColor(256)
|
||||
term.write("No names to display!")
|
||||
else
|
||||
local namecount = 0
|
||||
local namecount = 1
|
||||
repeat
|
||||
local thisname = namelist:sub(0,namelist:find(";")-1)
|
||||
local thisname = splitname[namecount]
|
||||
--namelist:sub(0,namelist:find(";")-1)
|
||||
term.setTextColor(32768)
|
||||
term.setCursorPos(18,3+namecount)
|
||||
term.write(string.sub(thisname..".kst",0,20))
|
||||
term.write(splitname[namecount]..".kst")
|
||||
term.setCursorPos(39,3+namecount)
|
||||
term.setTextColor(512)
|
||||
if thisname == "a" or thisname == "name" or thisname == "owner" or thisname == "updated" or thisname == "registered" or thisname == "expires" or thisname == "id" or thisname == "unpaid" then term.setTextColor(256) end
|
||||
term.write("Edit Send ")
|
||||
term.setTextColor(256)
|
||||
term.write("Go")
|
||||
namelist = namelist:sub(1+namelist:find(";"))
|
||||
namecount = namecount + 1
|
||||
until string.len(namelist) == 0
|
||||
until namecount == #splitname+1
|
||||
end
|
||||
--term.write("a.kst Edit Send Go")
|
||||
term.setBackgroundColor(1)
|
||||
|
@ -1668,7 +1708,7 @@ function hud()
|
|||
term.setTextColor(colors.black)
|
||||
term.setCursorPos(19,5)
|
||||
term.write("Zone: ")
|
||||
zone = http.get(readconfig("syncnode").."?a="..subject).readAll()
|
||||
zone = readURL(readconfig("syncnode").."?a="..subject)
|
||||
if zone == "" then
|
||||
term.setTextColor(colors.lightGray)
|
||||
term.write("(click to set)")
|
||||
|
@ -1703,3 +1743,19 @@ function hud()
|
|||
end
|
||||
end
|
||||
boot()
|
||||
wallet = nil
|
||||
checkfile = nil
|
||||
posx = nil
|
||||
update = nil
|
||||
log = nil
|
||||
checkdir = nil
|
||||
readconfig = nil
|
||||
file = nil
|
||||
drawTab = nil
|
||||
makev2address = nil
|
||||
logfile = nil
|
||||
posy = nil
|
||||
openwallet = nil
|
||||
settle = nil
|
||||
drawBtn = nil
|
||||
hud = nil
|
||||
|
|
Loading…
Reference in a new issue