key=assert(settings.get"krist.pkey","please set private key") -- d@ac.kst our_name = {"d","ac"} PRICE = 5 sres =textutils.unserializeJSON( http.post("https://krist.dev/ws/start","privatekey="..key).readAll()) assert(sres.ok,"not ok") ws = assert(http.websocket(sres.url)) nextid = 0 our_addr = "???" function sendws(t) t.id = nextid nextid = nextid + 1 return ws.send(textutils.serializeJSON(t)) end sendws{type="me"} function parsemeta(m) local out = {} for s in string.gmatch(m..";","(.-);") do local k,v = s:match"^(.-)=(.-)$" if k==nil then out.recipient = s else out[k]=v end end return out end function proctrans(tr) if tr.to ~= our_addr then return end if tr.type ~= "transfer" then return end if not (tr.sent_metaname == our_name[1] and tr.sent_name == our_name[2]) then return end local meta = parsemeta(tr.metadata) end while true do msgtxt = assert(ws.receive(),"ws error") msg = textutils.unserializeJSON(msgtxt) if msg.type ~= "keepalive" then print(msgtxt) end if msg.type == "response" and msg.responding_to_type == "me" then our_addr = msg.address.address local m = peripheral.wrap"left" m.setCursorPos(1,1) m.write(our_addr) end if msg.type == "event" and msg.event == "transaction" then require"cc.pretty".pretty_print(proctrans(msg.transaction)) end end -- mtop = peripheral.wrap"top" -- while true do -- mtop.setTextScale(3.5) -- mtop.setTextColor(colors.cyan) -- mtop.setCursorPos(1,1) -- mtop.write"DIAMONDS" -- os.sleep(0.75) -- mtop.clear() -- os.sleep(0.25) -- mtop.setTextScale(3) -- mtop.setTextColor(colors.white) -- mtop.setCursorPos(1,1) -- mtop.write("5KST EACH") -- os.sleep(0.75) -- mtop.clear() -- os.sleep(0.25) -- end