Update kstwallet.lua

This commit is contained in:
Ale32bit 2015-11-01 12:19:21 +01:00
parent 4fff42085f
commit 2547c8c2e8

View file

@ -1,21 +1,21 @@
--[[-----------------------------------------------
| KristWallet by cossacksson |
--------------------------------------------------- ---------------------------------------------------
-- KristWallet by cossacksson -- | 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). |
--------------------------------------------------- ---------------------------------------------------
--This is the reference wallet for Krist. -- | Every last bit of this program (except, of |
--It is the basic definition of a functional -- | course, SHA256 itself) was made entirely by |
--Krist program, and it was built alongside the -- | cossacksson and is "free software" and whatnot. |
--protocol itself. -- | Do whatever you want with it, but if you make |
| it interact with a currency or network other |
| than Krist, please give me credit. Thanks <3 |
--------------------------------------------------- ---------------------------------------------------
--Every last bit of this program (except, of -- | This wallet will NEVER save passwords anywhere. |]]local --[[pretty sneaky, huh?]]
--course, SHA256 itself) was made entirely by -- -----------------------------------------------]]--
--cossacksson and is "free software" and whatnot.-- version = 11
--Do whatever you want with it, 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 version = 10
local latest = 0 local latest = 0
local balance = 0 local balance = 0
local balance2 = 0 local balance2 = 0
@ -91,7 +91,7 @@ function update()
end end
end end
function log(text) function log(text)
logfile = fs.open("kst/log","a") logfile = fs.open("kst/log_wallet","a")
logfile.writeLine(tostring(os.day()).."-"..tostring(os.time()).."/"..text) logfile.writeLine(tostring(os.day()).."-"..tostring(os.time()).."/"..text)
logfile.close() logfile.close()
end end
@ -348,7 +348,7 @@ end
function checkdir() function checkdir()
if fs.isDir("kst") then if fs.isDir("kst") then
math.randomseed(os.time()) math.randomseed(os.time())
checkfile("log",[[-----KRISTWALLET LOG FILE----- checkfile("log_wallet",[[-----KRISTWALLET LOG FILE-----
--If this file becomes excessively large, you --If this file becomes excessively large, you
--should save a copy to a disk and stow it away. --should save a copy to a disk and stow it away.
--You should not destroy logs - they may help any --You should not destroy logs - they may help any
@ -364,7 +364,7 @@ function checkdir()
checkfile("locksettings","false") checkfile("locksettings","false")
checkfile("usev1address","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("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("")) 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("keyLV",sha256(math.random(10)..os.time())) --This is where the local vault's krist is stored. DO NOT DESTROY EVER.
checkfile("versionserver","https://raw.githubusercontent.com/BTCTaras/kristwallet/master/staticapi/version") checkfile("versionserver","https://raw.githubusercontent.com/BTCTaras/kristwallet/master/staticapi/version")
checkfile("updateserver","https://raw.githubusercontent.com/BTCTaras/kristwallet/master/kristwallet") checkfile("updateserver","https://raw.githubusercontent.com/BTCTaras/kristwallet/master/kristwallet")
@ -431,8 +431,11 @@ function openwallet()
address = makev2address(masterkey) address = makev2address(masterkey)
log("Derived address: "..address) log("Derived address: "..address)
balance = tonumber(http.get(readconfig("syncnode").."?getbalance="..addressv1).readAll()) 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() end 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(http.get(readconfig("syncnode").."?getbalance="..address).readAll())
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 if readconfig("whitelisted") then
local whitelist = readconfig("whitelist") local whitelist = readconfig("whitelist")
if string.find(whitelist, address) == nil then if string.find(whitelist, address) == nil then
@ -598,6 +601,10 @@ local function postgraphic(px,py,id)
term.setBackgroundColor(16384) term.setBackgroundColor(16384)
term.setTextColor(4) term.setTextColor(4)
term.write(".kst") term.write(".kst")
elseif id == 8 then
--Name sent
elseif id == 9 then
--Name received
end end
end end
function wallet() function wallet()
@ -756,10 +763,19 @@ function wallet()
page = 17 page = 17
local listofnames = http.get(readconfig("syncnode").."?listnames="..address).readAll() local listofnames = http.get(readconfig("syncnode").."?listnames="..address).readAll()
local nameclicked = yPos - 3 local nameclicked = yPos - 3
repeat if nameclicked > 0 then repeat
listofnames = listofnames:sub(1+listofnames:find(";")) listofnames = listofnames:sub(1+listofnames:find(";"))
nameclicked = nameclicked - 1 nameclicked = nameclicked - 1
until nameclicked == 0 until nameclicked == 0 end
subject = listofnames:sub(0,listofnames:find(";")-1)
elseif yPos >= 3 and xPos >= 44 and xPos <= 47 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:sub(0,listofnames:find(";")-1)
end end
elseif page == 8 then elseif page == 8 then
@ -772,6 +788,22 @@ function wallet()
if yPos == 4 and xPos >= 19 and xPos <= 29 then if yPos == 4 and xPos >= 19 and xPos <= 29 then
page = 13 page = 13
end end
elseif page == 18 then
if yPos == 5 and xPos >= 30 then
term.setCursorPos(30,5)
term.write(" ")
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()
if pagespace == "Success" then
end
term.write("Transfer request broadcasted")
log("Tried sending a name to "..maxspace)
os.sleep(3)
page = 15
--im drunk on water right now
end
elseif page == 16 then elseif page == 16 then
if yPos == 4 and xPos >= 25 then if yPos == 4 and xPos >= 25 then
term.setCursorPos(25,4) term.setCursorPos(25,4)
@ -1053,12 +1085,12 @@ function hud()
term.setTextColor(512) term.setTextColor(512)
local names = tonumber(http.get(readconfig("syncnode").."?getnames="..address).readAll()) local names = tonumber(http.get(readconfig("syncnode").."?getnames="..address).readAll())
if names > 0 then term.write("["..tostring(names).."]") end if names > 0 then term.write("["..tostring(names).."]") end
if address == "kgvewr7va7" then if address == "khm4f12scx" or address == "klhyy8e845" or address == "kcyd5vejdw" then
term.setCursorPos(1,1) term.setCursorPos(1,1)
term.setBackgroundColor(16384) term.setBackgroundColor(16384)
term.setTextColor(16) term.setTextColor(16)
term.clearLine() term.clearLine()
term.write("Test alert. Please disregard") term.write("The crash on trying to edit a name is now fixed btw")
end end
elseif page == 2 then elseif page == 2 then
subbal = http.get(readconfig("syncnode").."?getbalance="..subject).readAll() subbal = http.get(readconfig("syncnode").."?getbalance="..subject).readAll()
@ -1279,12 +1311,12 @@ function hud()
until ar == 16 until ar == 16
elseif page == 8 then elseif page == 8 then
term.setCursorPos(19,2) term.setCursorPos(19,2)
term.write("Storage Domain names") term.write("Storage Names")
term.setTextColor(512) term.setTextColor(512)
term.setCursorPos(19,3) term.setCursorPos(19,3)
term.write("Double vault Register name") term.write("Double vault Register name")
term.setCursorPos(19,4) term.setCursorPos(19,4)
term.write("Local vault Edit zone record") term.write("Local vault ")
term.setCursorPos(19,5) term.setCursorPos(19,5)
--term.write("Disk vault v1 SHA vault") --term.write("Disk vault v1 SHA vault")
term.setCursorPos(19,6) term.setCursorPos(19,6)
@ -1529,14 +1561,15 @@ function hud()
else else
local namecount = 0 local namecount = 0
repeat repeat
local thisname = namelist:sub(0,namelist:find(";")-1)
term.setTextColor(32768) term.setTextColor(32768)
term.setCursorPos(18,3+namecount) term.setCursorPos(18,3+namecount)
term.write(string.sub(namelist:sub(0,namelist:find(";")-1)..".kst",0,20)) term.write(string.sub(thisname..".kst",0,20))
term.setCursorPos(39,3+namecount) term.setCursorPos(39,3+namecount)
term.setTextColor(512) term.setTextColor(512)
term.write("Edit ") 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.setTextColor(256)
term.write("Send ")
term.write("Go") term.write("Go")
namelist = namelist:sub(1+namelist:find(";")) namelist = namelist:sub(1+namelist:find(";"))
namecount = namecount + 1 namecount = namecount + 1
@ -1569,12 +1602,12 @@ function hud()
elseif availability == 1 then elseif availability == 1 then
term.setTextColor(colors.green) term.setTextColor(colors.green)
term.write("Available! ") term.write("Available! ")
if balance >= 500 then --if balance >= 500 then
term.setBackgroundColor(colors.green) term.setBackgroundColor(colors.green)
term.setTextColor(colors.lime) term.setTextColor(colors.lime)
term.write(" Register ") term.write(" Register ")
term.setBackgroundColor(colors.white) term.setBackgroundColor(colors.white)
end --end
elseif availability == 2 then elseif availability == 2 then
term.setTextColor(colors.yellow) term.setTextColor(colors.yellow)
term.write("Name registered!") term.write("Name registered!")
@ -1608,6 +1641,31 @@ function hud()
term.setTextColor(colors.lightGray) term.setTextColor(colors.lightGray)
term.write(".kst") term.write(".kst")
term.setTextColor(colors.black) term.setTextColor(colors.black)
term.setCursorPos(19,7)
term.write("Your name's zone file is the")
term.setCursorPos(19,8)
term.write("URL of the site it is pointing")
term.setCursorPos(19,9)
term.write("to. When KristScape navigates")
term.setCursorPos(19,10)
term.write("to a name, it will make an HTTP")
term.setCursorPos(19,11)
term.write("get request to the above URL.")
term.setCursorPos(19,12)
term.write("The zone record should not")
term.setCursorPos(19,13)
term.write("include a protocol (http://)")
term.setCursorPos(19,14)
term.write("and shouldn't end with a")
term.setCursorPos(19,15)
term.write("slash. You can redirect a name")
term.setCursorPos(19,16)
term.write("to another name by making the")
term.setCursorPos(19,17)
term.write("first character of the record")
term.setCursorPos(19,18)
term.write("a dollar sign; e.g. $krist.kst")
term.setTextColor(colors.black)
term.setCursorPos(19,5) term.setCursorPos(19,5)
term.write("Zone: ") term.write("Zone: ")
zone = http.get(readconfig("syncnode").."?a="..subject).readAll() zone = http.get(readconfig("syncnode").."?a="..subject).readAll()
@ -1617,6 +1675,17 @@ function hud()
else else
term.write(zone) term.write(zone)
end end
elseif page == 18 then
term.setBackgroundColor(1)
term.setCursorPos(28,2)
term.write("Name transfer")
term.setCursorPos(19,4)
term.write("Name: "..subject)
term.setTextColor(colors.lightGray)
term.write(".kst")
term.setTextColor(colors.black)
term.setCursorPos(19,5)
term.write("Recipient: ")
elseif page == 21 then elseif page == 21 then
term.setBackgroundColor(1) term.setBackgroundColor(1)
term.setCursorPos(4,6) term.setCursorPos(4,6)