//Bytes private functions //cob.r=@remove security=function() if @map.remove != @locals.remove then map.remove=@locals.remove map.remove("remove") end if if @map.hasIndex != @locals.hasIndex then map.remove("hasIndex") if @map.indexOf != @locals.indexOf then map.remove("indexOf") if @globals.remove != @locals.remove then globals.remove=@locals.remove globals.remove("remove") end if if @globals.hasIndex != @locals.hasIndex then globals.remove("hasIndex") if @globals.indexOf != @locals.indexOf then globals.remove("indexOf") if globals.hasIndex("include_lib") then globals.remove("include_lib") if globals.hasIndex("get_shell") then globals.remove("get_shell") if globals.hasIndex("print") then globals.remove("print") if globals.hasIndex("user_input") then globals.remove("user_input") if globals.hasIndex("str") then globals.remove("str") if globals.hasIndex("exit") then globals.remove("exit") if globals.hasIndex("typeof") then globals.remove("typeof") end function security globals.remove("security") ver="2.2.0" func=0 approvedNames=["Bytes"] if approvedNames.indexOf(program_path.split("/")[-1]) == null then func=1 if (not globals.hasIndex("BTC") and globals.len != 4) or (globals.hasIndex("BTC") and globals.len > 10) then exit("Please import Bytes at the start of your code!") BytKonfidential=function(AccessKode) if @map.remove != @locals.remove then map.remove=@locals.remove map.remove("remove") end if if @map.hasIndex != @locals.hasIndex then map.remove("hasIndex") if @map.indexOf != @locals.indexOf then map.remove("indexOf") if @globals.remove != @locals.remove then globals.remove=@locals.remove globals.remove("remove") end if if @globals.hasIndex != @locals.hasIndex then globals.remove("hasIndex") if @globals.indexOf != @locals.indexOf then globals.remove("indexOf") if globals.hasIndex("include_lib") then globals.remove("include_lib") if globals.hasIndex("get_shell") then globals.remove("get_shell") if globals.hasIndex("print") then globals.remove("print") if globals.hasIndex("user_input") then globals.remove("user_input") if globals.hasIndex("str") then globals.remove("str") if globals.hasIndex("exit") then globals.remove("exit") if globals.hasIndex("typeof") then globals.remove("typeof") if typeof(@AccessKode) != "string" then return 0 if str(@AccessKode) != "xo1L629hYD0J1eaalZPGxEI9jNJEufwLBQZ4P6tRkEGvBIam" then return 0 Byt={} Byt.callBytesServersFunc=function(silent=0) out={} out.bool=1 if not silent then print("-=-=-={ CONNECTING TO BYTES }=-=-=-") web=get_shell.connect_service if typeof(web) != "shell" then out.bool=0 return out end if if not silent then print("") if not silent then print("[][][][]Connected successfully[][][][]") out.out=web return out end function Byt.Sha256=function(string=null) if not string then return string=str(string) Blocks = [[0]] i=0 e=0 while i < string.len e=4 while e > 0 and string.hasIndex(i) e=e-1 Blocks[-1][-1] = Blocks[-1][-1] + code(string[i])*256^e i=i+1 end while if e == 0 then if Blocks[-1].len == 16 then Blocks = Blocks + [[0]] else Blocks[-1] = Blocks[-1] + [0] end if end while if e > 0 then Blocks[-1][-1] = Blocks[-1][-1] + (2147483648/256^(4-e)) else Blocks[-1][-1] = 2147483648 end if if Blocks[-1].len == 16 then Blocks = Blocks + [[0]] while Blocks[-1].len != 15 Blocks[-1] = Blocks[-1] + [0] end while Blocks[-1] = Blocks[-1] + [string.len*8] add = function(a, b) return (a + b) % 4294967296 end function XOR = function(a, b) return bitwise("^", floor(a/65536), floor(b/65536))*65536+bitwise("^", a%65536, b%65536) end function AND = function(a, b) return bitwise("&", floor(a/65536), floor(b/65536))*65536+bitwise("&", a%65536, b%65536) end function OR = function(a, b) return bitwise("|", floor(a/65536), floor(b/65536))*65536+bitwise("|", a%65536, b%65536) end function NOT = function(n) return 4294967295-n end function Ch = function(x, y, z) return OR(AND(x, y), AND(NOT(x), z)) end function Maj = function(x, y, z) return OR(OR(AND(x, y), AND(x, z)), AND(y, z)) end function shr = function(n, shifts) return floor(n/2^shifts) end function rotr = function(n, rots) rots = 2^rots return (n % rots) * (4294967296/rots) + floor(n/rots) end function sigma0 = function(n) return XOR(XOR(rotr(n, 7), rotr(n, 18)), shr(n, 3)) end function sigma1 = function(n) return XOR(XOR(rotr(n, 17), rotr(n, 19)), shr(n, 10)) end function SIGMA0 = function(n) return XOR(XOR(rotr(n, 2), rotr(n, 13)), rotr(n, 22)) end function SIGMA1 = function(n) return XOR(XOR(rotr(n, 6), rotr(n, 11)), rotr(n, 25)) end function K = [] K = K + [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221] K = K + [3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580] K = K + [3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986] K = K + [2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895] K = K + [666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037] K = K + [2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344] K = K + [430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779] K = K + [1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298] H = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225] for Block in Blocks W = Block[0:] for i in range(16, 63) W = W + [add(add(add(sigma1(W[i-2]), W[i-7]), sigma0(W[i-15])), W[i-16])] end for a = H[0] b = H[1] c = H[2] d = H[3] e = H[4] f = H[5] g = H[6] h = H[7] for i in range(0, 63) T1 = add(add(add(add(SIGMA1(e), Ch(e, f, g)), h), K[i]), W[i]) T2 = add(SIGMA0(a), Maj(a, b, c)) h = g g = f f = e e = add(d, T1) d = c c = b b = a a = add(T1, T2) end for H[0] = add(a, H[0]) H[1] = add(b, H[1]) H[2] = add(c, H[2]) H[3] = add(d, H[3]) H[4] = add(e, H[4]) H[5] = add(f, H[5]) H[6] = add(g, H[6]) H[7] = add(h, H[7]) end for hexTable = "0123456789abcdef" output = "" for i in H.indexes for j in range(7) output = output + hexTable[floor(H[i]/16^j) % 16] end for end for return output end function Byt.BytesLogin=function(sub=null,key=null) out={} out.bool=1 if not sub then out.bool=0 out.err="No user account sent over" return out end if if key then if key != sub.get_info then out.bool=0 out.err="Invalid key" end if return out end if print("-=-= User Protection =-=-") print("-=-= If these aren't right, chances are you are using an impostor Bytes client!") print("Confirm your:") compCol=md5(sub.get_user+sub.get_info)[:6] print("Balance: ["+sub.get_balance+" Bytes]") lt=sub.last_transaction if not lt then print("Last transaction: [ Nothing! ]") else print("Last transaction: [ ["+(["+","-"][lt[-1]])+"] "+str(lt[1])+" ["+(["<",">"][lt[-1]])+"] "+lt[0]+"]") end if print("Computer color: [###]") print pass="" salt="" while not sub.check_password(salt) or pass.len < 1 pass=user_input("Password: ",1) salt=Byt.Sha256(pass+sub.get_user+sub.get_info) if not sub.check_password(salt) or pass.len < 1 then print("Invalid password") end while return out end function return Byt end function Bytes={} Bytes.login=function(user=null,silent=0) out={} out.bool=1 if (@silent != null and typeof(@silent) != "number") or (@user != null and typeof(@user) != "string") then out.bool=0 out.err="Unexpected error" return out end if security=function() if @map.remove != @locals.remove then map.remove=@locals.remove map.remove("remove") end if if @map.hasIndex != @locals.hasIndex then map.remove("hasIndex") if @map.indexOf != @locals.indexOf then map.remove("indexOf") if @globals.remove != @locals.remove then globals.remove=@locals.remove globals.remove("remove") end if if @globals.hasIndex != @locals.hasIndex then globals.remove("hasIndex") if @globals.indexOf != @locals.indexOf then globals.remove("indexOf") if globals.hasIndex("include_lib") then globals.remove("include_lib") if globals.hasIndex("get_shell") then globals.remove("get_shell") if globals.hasIndex("print") then globals.remove("print") if globals.hasIndex("user_input") then globals.remove("user_input") if globals.hasIndex("str") then globals.remove("str") if globals.hasIndex("exit") then globals.remove("exit") if globals.hasIndex("typeof") then globals.remove("typeof") end function security Byt=BytKonfidential("xo1L629hYD0J1eaalZPGxEI9jNJEufwLBQZ4P6tRkEGvBIam") if not Byt then out.bool=0 out.err="Unknown error" return out end if if not Byt.hasIndex("callBytesServersFunc") or not Byt.hasIndex("Sha256") or not Byt.hasIndex("BytesLogin") then out.bool=0 out.err="Unknown error" return out end if if not user then user=user_input("Subwallet: ") if user.len == 0 then out.bool=0 out.err="Subwallet does not exist" return out end if bc=null root=get_shell.host_computer.File("/").get_folders+get_shell.host_computer.File("/").get_files while root.len currFile=root.pull if currFile.is_folder then root=currFile.get_folders+currFile.get_files+root test=include_lib(currFile.path) if typeof(test) == "blockchainLib" and not bc then bc=test end while if not bc then out.bool=0 out.err="blockchain.so does not exist in the system" return out end if coin=bc.get_coin if typeof(coin) == "string" then out.bool=0 out.err="Unknown error obtaining coin" return out end if sub=coin.get_subwallet(user) if typeof(sub) == "string" then out.bool=0 out.err="Subwallet does not exist" return out end if attempt=Byt.BytesLogin(sub) if not attempt.bool then out.bool=0 out.err=attempt.err return out end if if not silent then print("Hello, "+user+"!") compCol=md5(user+sub.get_info)[:6] print("Balance: ["+sub.get_balance+" Bytes]") lt=sub.last_transaction if not lt then print("Last transaction: [ Nothing! ]") else print("Last transaction: [ ["+(["+","-"][lt[-1]])+"] "+str(lt[1])+" ["+(["<",">"][lt[-1]])+"] "+lt[0]+"]") end if print("Computer color: [###]") print("\nDO NOT SHARE YOUR SECRET TRANSFER KEY!!!") print("IT IS USED FOR AUTOMATED TRANSFERS WITHOUT LOGIN") print("Secret Transfer Key: "+sub.get_info+"") end if out.out="Logging out :)" return out end function Bytes.register=function() out={} out.bool=1 security=function() if @map.remove != @locals.remove then map.remove=@locals.remove map.remove("remove") end if if @map.hasIndex != @locals.hasIndex then map.remove("hasIndex") if @map.indexOf != @locals.indexOf then map.remove("indexOf") if @globals.remove != @locals.remove then globals.remove=@locals.remove globals.remove("remove") end if if @globals.hasIndex != @locals.hasIndex then globals.remove("hasIndex") if @globals.indexOf != @locals.indexOf then globals.remove("indexOf") if globals.hasIndex("include_lib") then globals.remove("include_lib") if globals.hasIndex("get_shell") then globals.remove("get_shell") if globals.hasIndex("print") then globals.remove("print") if globals.hasIndex("user_input") then globals.remove("user_input") if globals.hasIndex("str") then globals.remove("str") if globals.hasIndex("exit") then globals.remove("exit") if globals.hasIndex("typeof") then globals.remove("typeof") end function security Byt=BytKonfidential("xo1L629hYD0J1eaalZPGxEI9jNJEufwLBQZ4P6tRkEGvBIam") if not Byt then out.bool=0 out.err="Unknown error" return out end if if not Byt.hasIndex("callBytesServersFunc") or not Byt.hasIndex("Sha256") or not Byt.hasIndex("BytesLogin") then out.bool=0 out.err="Unknown error" return out end if call=Byt.callBytesServersFunc if call.bool then web=call.out else out.bool=0 out.err="Could not connect to Bytes webservice" return out end if genRandomString=function(length) alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" alphaLen=alpha.len newString="" while newString.len != length newString=newString+alpha[floor(rnd*alphaLen)] end while return newString end function allowedChars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" user=user_input("Register username: ") if user.len > 20 then out.bool=0 out.err="Username too long" return out end if for chr in user if allowedChars.indexOf(chr) == null then out.bool=0 out.err="Illegal characters used in username" return out end if end for print("Remember that we cannot change your password if you lose it or get hacked!") Rpass=user_input("Register password: ",1) Cpass=user_input("Confirm password: ",1) if Cpass != Rpass then out.bool=0 out.err="Passwords do not match" return out end if if Cpass.len < 10 then out.bool=0 out.err="Password must be longer than 10 characters" return out end if print("Get your wallet username & pin from the wallet program, found in shops.") wall=user_input("Wallet username: ",1) if not wall.len then out.bool=0 out.err="Wallet does not exist" return out end if pin=user_input("Wallet pin: ",1) print("Please wait as we set up a user account for you!") bc=null root=get_shell.host_computer.File("/").get_folders+get_shell.host_computer.File("/").get_files while root.len currFile=root.pull if currFile.is_folder then root=currFile.get_folders+currFile.get_files+root test=include_lib(currFile.path) if typeof(test) == "blockchainLib" and not bc then bc=test end while if not bc then out.bool=0 out.err="blockchain.so does not exist in the system" return out end if coin=bc.get_coin if typeof(coin) == "string" then out.bool=0 out.err="Unknown error obtaining coin" return out end if if typeof(coin.get_subwallet(user)) != "string" then out.bool=0 out.err="User exists" return out end if usrnum=coin.get_subwallets.len+1 key=Byt.Sha256(genRandomString(48)+Cpass+user+str(usrnum)) salt=Byt.Sha256(Cpass+user+key) t=coin.create_subwallet(wall,pin,user,salt) if typeof(t) == "string" then out.bool=0 out.err=t return out end if sub=coin.get_subwallet(user) sub.set_info(key) newUsers=web.host_computer.File("/Public/htdocs/template.html").get_content newUsers=newUsers.replace("%Users%",str(usrnum)) web.host_computer.File("/Public/htdocs/website.html").set_content(newUsers) out.out="User "+user+" registered successfully!" return out end function Bytes.delete=function(user=null) out={} out.bool=1 if (@user != null and typeof(@user) != "string") then out.bool=0 out.err="Unexpected error" return out end if security=function() if @map.remove != @locals.remove then map.remove=@locals.remove map.remove("remove") end if if @map.hasIndex != @locals.hasIndex then map.remove("hasIndex") if @map.indexOf != @locals.indexOf then map.remove("indexOf") if @globals.remove != @locals.remove then globals.remove=@locals.remove globals.remove("remove") end if if @globals.hasIndex != @locals.hasIndex then globals.remove("hasIndex") if @globals.indexOf != @locals.indexOf then globals.remove("indexOf") if globals.hasIndex("include_lib") then globals.remove("include_lib") if globals.hasIndex("get_shell") then globals.remove("get_shell") if globals.hasIndex("print") then globals.remove("print") if globals.hasIndex("user_input") then globals.remove("user_input") if globals.hasIndex("str") then globals.remove("str") if globals.hasIndex("exit") then globals.remove("exit") if globals.hasIndex("typeof") then globals.remove("typeof") end function security Byt=BytKonfidential("xo1L629hYD0J1eaalZPGxEI9jNJEufwLBQZ4P6tRkEGvBIam") if not Byt then out.bool=0 out.err="Unknown error" return out end if if not Byt.hasIndex("callBytesServersFunc") or not Byt.hasIndex("Sha256") or not Byt.hasIndex("BytesLogin") then out.bool=0 out.err="Unknown error" return out end if call=Byt.callBytesServersFunc if call.bool then web=call.out else out.bool=0 out.err="Could not connect to Bytes webservice" return out end if if not user then user=user_input("Username: ") if user.len == 0 then out.bool=0 out.err="User does not exist" return out end if bc=null root=get_shell.host_computer.File("/").get_folders+get_shell.host_computer.File("/").get_files while root.len currFile=root.pull if currFile.is_folder then root=currFile.get_folders+currFile.get_files+root test=include_lib(currFile.path) if typeof(test) == "blockchainLib" and not bc then bc=test end while if not bc then out.bool=0 out.err="blockchain.so does not exist in the system" return out end if coin=bc.get_coin if typeof(coin) == "string" then out.bool=0 out.err="Unknown error obtaining coin" return out end if sub=coin.get_subwallet(user) if typeof(sub) == "string" then out.bool=0 out.err="Subwallet does not exist" return out end if attempt=Byt.BytesLogin(sub) if not attempt.bool then out.bool=0 out.err=attempt.err return out end if print("-=-= { ACOUNT DELETION } =-=-") print("WARNING: You will not keep any of your Bytes! Continue?") conf=user_input("[y/N]$ ").lower if conf != "y" then out.out="User not deleted" return out end if t=sub.delete if not t or typeof(t) == "string" then out.bool=0 out.err=t return out end if newUsers=web.host_computer.File("/Public/htdocs/template.html").get_content newUsers=newUsers.replace("%Users%",str(coin.get_subwallets.len)) web.host_computer.File("/Public/htdocs/website.html").set_content(newUsers) out.out="User deleted" return out end function Bytes.transfer=function(rec=null,quant=null,user=null,key=null) out={} out.bool=1 if (@rec != null and typeof(@rec) != "string") or (@quant != null and typeof(@quant) != "string") or (@key != null and typeof(@key) != "string") or (@user != null and typeof(@user) != "string") then out.bool=0 out.err="Unexpected error" return out end if security=function() if @map.remove != @locals.remove then map.remove=@locals.remove map.remove("remove") end if if @map.hasIndex != @locals.hasIndex then map.remove("hasIndex") if @map.indexOf != @locals.indexOf then map.remove("indexOf") if @globals.remove != @locals.remove then globals.remove=@locals.remove globals.remove("remove") end if if @globals.hasIndex != @locals.hasIndex then globals.remove("hasIndex") if @globals.indexOf != @locals.indexOf then globals.remove("indexOf") if globals.hasIndex("include_lib") then globals.remove("include_lib") if globals.hasIndex("get_shell") then globals.remove("get_shell") if globals.hasIndex("print") then globals.remove("print") if globals.hasIndex("user_input") then globals.remove("user_input") if globals.hasIndex("str") then globals.remove("str") if globals.hasIndex("exit") then globals.remove("exit") if globals.hasIndex("typeof") then globals.remove("typeof") end function security Byt=BytKonfidential("xo1L629hYD0J1eaalZPGxEI9jNJEufwLBQZ4P6tRkEGvBIam") if not Byt then out.bool=0 out.err="Unknown error" return out end if if not Byt.hasIndex("callBytesServersFunc") or not Byt.hasIndex("Sha256") or not Byt.hasIndex("BytesLogin") then out.bool=0 out.err="Unknown error" return out end if if not user then user=user_input("Username: ") if user.len == 0 then out.bool=0 out.err="User does not exist" return out end if bc=null root=get_shell.host_computer.File("/").get_folders+get_shell.host_computer.File("/").get_files while root.len currFile=root.pull if currFile.is_folder then root=currFile.get_folders+currFile.get_files+root test=include_lib(currFile.path) if typeof(test) == "blockchainLib" and not bc then bc=test end while if not bc then out.bool=0 out.err="blockchain.so does not exist in the system" return out end if coin=bc.get_coin if typeof(coin) == "string" then out.bool=0 out.err="Unknown error obtaining coin" return out end if sub=coin.get_subwallet(user) if typeof(sub) == "string" then out.bool=0 out.err="Subwallet does not exist" return out end if attempt=Byt.BytesLogin(sub,key) if not attempt.bool then out.bool=0 out.err=attempt.err return out end if if not rec then rec=user_input("Recipient: ") if rec.len == 0 then out.bool=0 out.err="User does not exist" return out end if rec=coin.get_subwallet(rec) if typeof(rec) == "string" then out.bool=0 out.err="User does not exist" return out end if if not quant then quant=user_input("Bytes: ") if typeof(quant) == "string" then quant=quant.to_int if typeof(quant) != "number" then out.bool=0 out.err="Invalid number" return out end if if quant <= 0 then out.bool=0 out.err="Invalid transaction amount" return out end if if typeof(sub.get_balance) == "string" or sub.get_balance < quant then out.bool=0 out.err="Insufficient funds" return out end if if rec.get_user != sub.get_user then if not key then print("Confirm transfer of "+quant+" Bytes?") conf=user_input("[y/N]$ ").lower if conf != "y" then out.bool=0 out.err="Transaction cancelled" return out end if end if trans=coin.transaction(sub.get_user,rec.get_user,quant) if typeof(trans) == "string" then out.bool=0 out.err="Unknown error" return out end if end if out.out="Transaction successful" return out end function Bytes.mine=function(user=null) out={} out.bool=1 if (@user != null and typeof(@user) != "string") then out.bool=0 out.err="Unexpected error" return out end if security=function() if @map.remove != @locals.remove then map.remove=@locals.remove map.remove("remove") end if if @map.hasIndex != @locals.hasIndex then map.remove("hasIndex") if @map.indexOf != @locals.indexOf then map.remove("indexOf") if @globals.remove != @locals.remove then globals.remove=@locals.remove globals.remove("remove") end if if @globals.hasIndex != @locals.hasIndex then globals.remove("hasIndex") if @globals.indexOf != @locals.indexOf then globals.remove("indexOf") if globals.hasIndex("include_lib") then globals.remove("include_lib") if globals.hasIndex("get_shell") then globals.remove("get_shell") if globals.hasIndex("print") then globals.remove("print") if globals.hasIndex("user_input") then globals.remove("user_input") if globals.hasIndex("str") then globals.remove("str") if globals.hasIndex("exit") then globals.remove("exit") if globals.hasIndex("typeof") then globals.remove("typeof") end function security //if not user_mail_address then // out.bool=0 // out.err="Cannot run Bytes mining on a server" // return out //end if Byt=BytKonfidential("xo1L629hYD0J1eaalZPGxEI9jNJEufwLBQZ4P6tRkEGvBIam") if not Byt then out.bool=0 out.err="Unknown error" return out end if if not Byt.hasIndex("callBytesServersFunc") or not Byt.hasIndex("Sha256") or not Byt.hasIndex("BytesLogin") then out.bool=0 out.err="Unknown error" return out end if if not user then user=user_input("Username: ") if user.len == 0 then out.bool=0 out.err="User does not exist" return out end if bc=null root=get_shell.host_computer.File("/").get_folders+get_shell.host_computer.File("/").get_files while root.len currFile=root.pull if currFile.is_folder then root=currFile.get_folders+currFile.get_files+root test=include_lib(currFile.path) if typeof(test) == "blockchainLib" and not bc then bc=test end while if not bc then out.bool=0 out.err="blockchain.so does not exist in the system" return out end if coin=bc.get_coin if typeof(coin) == "string" then out.bool=0 out.err="Unknown error obtaining coin" return out end if sub=coin.get_subwallet(user) if typeof(sub) == "string" then out.bool=0 out.err="Subwallet does not exist" return out end if attempt=Byt.BytesLogin(sub) if not attempt.bool then out.bool=0 out.err=attempt.err return out end if hints=["Check out the list of approved programs! www.raveleflei.org", "Check out FoxTrot! placeholder", "Check out Weasel Penetration Security for secure services! www.yondeljf.net"] while 1 if coin.get_mined_coins >= 15000000 then out.bool=0 out.err="Sorry! All available coins have been mined." return out end if clear_screen print("["+hints[floor(rnd*hints.len)]+"]") print("[Mining as user: "+user+"]") print("[Balance: "+sub.get_balance+" Bytes]") sub.mining if func then break end while return out end function Bytes.total=function() out={} out.bool=1 security=function() if @map.remove != @locals.remove then map.remove=@locals.remove map.remove("remove") end if if @map.hasIndex != @locals.hasIndex then map.remove("hasIndex") if @map.indexOf != @locals.indexOf then map.remove("indexOf") if @globals.remove != @locals.remove then globals.remove=@locals.remove globals.remove("remove") end if if @globals.hasIndex != @locals.hasIndex then globals.remove("hasIndex") if @globals.indexOf != @locals.indexOf then globals.remove("indexOf") if globals.hasIndex("include_lib") then globals.remove("include_lib") if globals.hasIndex("get_shell") then globals.remove("get_shell") if globals.hasIndex("print") then globals.remove("print") if globals.hasIndex("user_input") then globals.remove("user_input") if globals.hasIndex("str") then globals.remove("str") if globals.hasIndex("exit") then globals.remove("exit") if globals.hasIndex("typeof") then globals.remove("typeof") end function security bc=null root=get_shell.host_computer.File("/").get_folders+get_shell.host_computer.File("/").get_files while root.len currFile=root.pull if currFile.is_folder then root=currFile.get_folders+currFile.get_files+root test=include_lib(currFile.path) if typeof(test) == "blockchainLib" and not bc then bc=test end while if not bc then out.bool=0 out.err="blockchain.so does not exist in the system" return out end if coin=bc.get_coin if typeof(coin) == "string" then out.bool=0 out.err="Unknown error obtaining coin" return out end if out.out=coin.get_mined_coins return out end function Bytes.bal=function(user=null) out={} out.bool=1 if (@user != null and typeof(@user) != "string") then out.bool=0 out.err="Unexpected error" return out end if security=function() if @map.remove != @locals.remove then map.remove=@locals.remove map.remove("remove") end if if @map.hasIndex != @locals.hasIndex then map.remove("hasIndex") if @map.indexOf != @locals.indexOf then map.remove("indexOf") if @globals.remove != @locals.remove then globals.remove=@locals.remove globals.remove("remove") end if if @globals.hasIndex != @locals.hasIndex then globals.remove("hasIndex") if @globals.indexOf != @locals.indexOf then globals.remove("indexOf") if globals.hasIndex("include_lib") then globals.remove("include_lib") if globals.hasIndex("get_shell") then globals.remove("get_shell") if globals.hasIndex("print") then globals.remove("print") if globals.hasIndex("user_input") then globals.remove("user_input") if globals.hasIndex("str") then globals.remove("str") if globals.hasIndex("exit") then globals.remove("exit") if globals.hasIndex("typeof") then globals.remove("typeof") end function security if not user then user=user_input("Username: ") if user.len == 0 then out.bool=0 out.err="User does not exist" return out end if bc=null root=get_shell.host_computer.File("/").get_folders+get_shell.host_computer.File("/").get_files while root.len currFile=root.pull if currFile.is_folder then root=currFile.get_folders+currFile.get_files+root test=include_lib(currFile.path) if typeof(test) == "blockchainLib" and not bc then bc=test end while if not bc then out.bool=0 out.err="blockchain.so does not exist in the system" return out end if coin=bc.get_coin if typeof(coin) == "string" then out.bool=0 out.err="Unknown error obtaining coin" return out end if sub=coin.get_subwallet(user) if typeof(sub) == "string" then out.bool=0 out.err="Subwallet does not exist" return out end if out.out=sub.get_balance return out end function if not func then apt=null root=get_shell.host_computer.File("/").get_folders+get_shell.host_computer.File("/").get_files while root.len currFile=root.pull if currFile.is_folder then root=currFile.get_folders+currFile.get_files+root test=include_lib(currFile.path) if typeof(test) == "aptclientLib" and not apt then apt=test end while if apt then if get_shell.host_computer.File("/etc/apt/sources.txt") then inSource=apt.show("122.14.7.249") if inSource == "122.14.7.249 repository not found" then print("Adding Bytes repository...") apt.add_repo("122.14.7.249",1542) apt.update end if if apt.check_upgrade(program_path) then print("Updating...\n") apt.install(program_path.split("/")[-1],parent_path(program_path)) exit("Please re-launch Bytes client") end if end if end if if params.len >= 1 then out=null if params[0].lower == "register" then if params.len == 2 then out=Bytes.register(params[1]) else out=Bytes.register else if params[0].lower == "login" then if params.len == 2 then out=Bytes.login(params[1]) else out=Bytes.login else if params[0].lower == "delete" then if params.len == 2 then out=Bytes.delete(params[1]) else out=Bytes.delete else if params[0].lower == "transfer" then user=null rec=null quant=null if params.len >= 2 then user=params[1] if params.len >= 3 then rec=params[2] if params.len == 4 then quant=params[3] out=Bytes.transfer(rec,quant,user) else if params[0].lower == "mine" then if params.len == 2 then out=Bytes.mine(params[1]) else out=Bytes.mine else if params[0].lower == "bal" then if params.len == 2 then out=Bytes.bal(params[1]) else out=Bytes.bal else if params[0].lower == "total" then out=Bytes.total else exit end if if out then if out.bool then exit(""+out.out+"") else exit(""+out.err+"") end if end if while 1 print("Bytes Crypto Client") print("v."+ver+"") print("Usage: Bytes [function] [(opt) username] [(transfer);(opt) recipient] [(transfer);(opt) amount]") print("Available functions") print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-") print("/>{REGISTER} {LOGIN} {DELETE} {MINE} {TRANSFER} {TOTAL} {BAL}//") print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-") opt=user_input("\FUNC> ").lower if opt == "login" then out=Bytes.login else if opt == "register" then out=Bytes.register else if opt == "delete" then out=Bytes.delete else if opt == "transfer" then out=Bytes.transfer else if opt == "total" then out=Bytes.total else if opt == "mine" then out=Bytes.mine else if opt == "bal" then out=Bytes.bal else continue end if if out.bool then exit(""+out.out+"") else exit(""+out.err+"") end while end if m={} for i in globals.indexes i=@i i=str(i) if i == "m" then continue if i == "BytKonfidential" then continue if i == "ver" or i == "func" or i == "approvedNames" then continue m[i]=@globals[i] end for globals.classID=m