2020-05-10 21:11:21 -03:00
#Developer: Curly60e
2020-05-25 19:35:24 -03:00
#PyBLOCK its a clock of the Bitcoin blockchain.
2020-06-19 17:51:28 -03:00
#Version: 0.5.0
2020-05-10 21:11:21 -03:00
2020-05-06 16:34:55 -03:00
import os
2020-05-16 00:21:47 -03:00
import os . path
2020-05-06 16:34:55 -03:00
import time as t
2020-05-16 00:21:47 -03:00
import pickle
2020-05-25 19:35:24 -03:00
import psutil
2020-05-29 11:52:29 -03:00
import qrcode
2020-06-19 17:51:28 -03:00
import random
2020-05-23 08:50:38 -03:00
from clone import *
2020-05-20 20:32:31 -03:00
from donation import *
2020-05-23 08:50:38 -03:00
from feed import *
2020-05-08 08:37:26 -03:00
from art import *
2020-05-18 22:25:55 -03:00
from logos import *
2020-05-25 19:35:24 -03:00
from sysinf import *
from pblogo import *
from apisnd import *
2020-06-19 17:51:28 -03:00
from ppi import *
2020-05-30 21:46:11 -03:00
from nodeconnection import *
2020-05-29 11:52:29 -03:00
from terminal_matrix . matrix import *
2020-05-06 16:34:55 -03:00
2020-05-09 18:22:43 -03:00
2020-05-30 21:46:11 -03:00
def sysinfo ( ) : #Cpu and memory usage
print ( " \033 [0;37;40m---------------------- " )
print ( " \033 [3;33;40mCPU Usage: \033 [1;32;40m " + str ( psutil . cpu_percent ( ) ) + " % \033 [0;37;40m " )
print ( " \033 [3;33;40mMemory Usage: \033 [1;32;40m " " {} % \033 [0;37;40m " . format ( int ( psutil . virtual_memory ( ) . percent ) ) )
print ( " \033 [0;37;40m---------------------- " )
2020-06-12 22:51:15 -03:00
2020-05-30 21:46:11 -03:00
def getblock ( ) : # get access to bitcoin-cli with the command getblockchaininfo
bitcoincli = " getblockchaininfo "
2020-06-11 16:40:02 -03:00
a = os . popen ( path [ ' bitcoincli ' ] + bitcoincli ) . read ( )
b = json . loads ( a )
d = b
print ( d )
clear ( )
print ( " \033 [1;32;40m " )
blogo ( )
print ( " \033 [0;37;40m " )
print ( " <<< Back to the Main Menu Press Control + C. \n \n " )
print ( " \n ---------------------------------------------------------------------------------------------------------------- " )
print ( """
Chain : { }
Blocks : { }
Best BlockHash : { }
Difficulty : { }
Verification Progress : { }
Size on Disk : { }
Pruned : { }
""" .format(d[ ' chain ' ], d[ ' blocks ' ], d[ ' bestblockhash ' ], d[ ' difficulty ' ], d[ ' verificationprogress ' ], d[ ' size_on_disk ' ], d[ ' pruned ' ]))
print ( " ---------------------------------------------------------------------------------------------------------------- \n " )
2020-05-30 21:46:11 -03:00
def getblockcount ( ) : # get access to bitcoin-cli with the command getblockcount
bitcoincli = " getblockcount "
2020-06-11 16:40:02 -03:00
os . system ( path [ ' bitcoincli ' ] + bitcoincli )
2020-05-30 21:46:11 -03:00
def clear ( ) : # clear the screen
os . system ( ' cls ' if os . name == ' nt ' else ' clear ' )
2020-06-10 19:02:49 -03:00
def getgenesis ( ) : # get and decode Genesis block
2020-05-30 21:46:11 -03:00
bitcoincli = " getblock 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f 0 | xxd -r -p | hexyl -n 256 "
2020-06-11 16:40:02 -03:00
os . system ( path [ ' bitcoincli ' ] + bitcoincli )
2020-06-10 19:02:49 -03:00
2020-05-30 21:46:11 -03:00
def close ( ) :
print ( " <<< Back to the Main Menu Press Control + C. \n \n " )
2020-06-10 19:02:49 -03:00
2020-05-30 21:46:11 -03:00
def readHexBlock ( ) : # Hex Decoder using Hexyl on local node
hexa = input ( " Add the Block Hash you want to decode: " )
blocknumber = input ( " Add the Block number: " )
2020-06-11 16:40:02 -03:00
decodeBlock = path [ ' bitcoincli ' ] + " getblock {} {} " . format ( hexa , blocknumber ) + " | xxd -r -p | hexyl -n 256 "
2020-05-30 21:46:11 -03:00
os . system ( decodeBlock )
2020-06-10 19:02:49 -03:00
2020-05-30 21:46:11 -03:00
def readHexTx ( ) : # Hex Decoder using Hexyl on an external node
hexa = input ( " Add the Transaction ID. you want to decode: " )
2020-06-11 16:40:02 -03:00
decodeTX = path [ ' bitcoincli ' ] + " getrawtransaction {} " . format ( hexa ) + " | xxd -r -p | hexyl -n 256 "
2020-05-30 21:46:11 -03:00
os . system ( decodeTX )
2020-06-10 19:02:49 -03:00
2020-05-30 21:46:11 -03:00
def prt ( ) :
print ( " \033 [1;32;40m " )
blogo ( )
print ( " \033 [0;37;40m " )
def tmp ( ) :
t . sleep ( 15 )
2020-05-18 22:25:55 -03:00
def console ( ) : # get into the console from bitcoin-cli
2020-05-25 19:35:24 -03:00
print ( " \t \033 [0;37;40mThis is \033 [1;33;40mBitcoin-cli ' s \033 [0;37;40mconsole. Type your respective commands you want to display. \n \n " )
2020-05-18 22:25:55 -03:00
while True :
2020-05-25 19:35:24 -03:00
cle = input ( " \033 [1;32;40mconsole $>: \033 [0;37;40m " )
2020-06-11 16:40:02 -03:00
lsd = os . popen ( path [ ' bitcoincli ' ] + " " + cle )
2020-05-27 08:59:36 -03:00
lsd0 = lsd . read ( )
lsd1 = str ( lsd0 )
print ( lsd1 )
lsd . close ( )
2020-05-29 11:52:29 -03:00
def screensv ( ) :
try :
doit ( )
except ( KeyboardInterrupt , SystemExit ) :
matrix . close ( )
clear ( )
ptr ( )
menu ( )
2020-06-04 14:28:45 -03:00
#------------------------------------------------------
2020-05-06 17:04:20 -03:00
2020-05-09 18:22:43 -03:00
def connected ( info ) : # here we complete the connection to the external node
if info == " Y " or info == " y " :
2020-05-13 19:47:58 -03:00
clear ( )
prt ( )
print ( " \n Add your node information \n " )
2020-05-15 07:41:42 -03:00
menuUserConn ( )
2020-05-09 18:22:43 -03:00
else :
2020-05-13 19:47:58 -03:00
menu ( )
2020-05-24 14:15:12 -03:00
2020-05-16 00:21:47 -03:00
def nodeinfo ( ) :
2020-05-25 19:35:24 -03:00
print ( " \n \033 [1;31;40mWARNING! This is not a safe method of connection. The best method is doing this locally. \n " )
connected ( input ( " WARNING! Are you sure you want to connect to a node? Y/n: \033 [0;37;40m " ) ) # call 'connected' function to make the connection with the node information
2020-05-24 14:15:12 -03:00
2020-05-09 18:22:43 -03:00
def artist ( ) : # here we convert the result of the command 'getblockcount' on a random art design
custom = input ( " Do you want random designs? Y/n: " )
if custom == " Y " or custom == " y " :
while True :
2020-05-16 12:51:30 -03:00
try :
clear ( )
close ( )
design ( )
tmp ( )
except ( KeyboardInterrupt , SystemExit ) :
menu ( )
raise
2020-05-07 10:59:47 -03:00
else :
2020-05-09 18:22:43 -03:00
while True :
2020-05-16 12:51:30 -03:00
try :
clear ( )
close ( )
getblockcount ( )
tmp ( )
except ( KeyboardInterrupt , SystemExit ) :
menu ( )
raise
2020-05-10 21:11:21 -03:00
def design ( ) :
2020-06-11 16:40:02 -03:00
bitcoinclient = path [ ' bitcoincli ' ] + " getblockcount "
2020-05-10 21:11:21 -03:00
block = os . popen ( str ( bitcoinclient ) ) . read ( ) # 'getblockcount' convert to string
2020-05-24 14:15:12 -03:00
b = block
2020-05-25 19:35:24 -03:00
print ( " \033 [1;32;40m " )
2020-05-15 07:41:42 -03:00
tprint ( b , font = " rnd-large " )
2020-05-25 19:35:24 -03:00
print ( " \033 [0;37;40m " )
2020-06-11 19:49:41 -03:00
2020-05-07 10:59:47 -03:00
2020-05-16 00:21:47 -03:00
#--------------------------------- Hex Block Decoder Functions -------------------------------------
2020-05-25 19:35:24 -03:00
def getrawtx ( ) : # show confirmatins from transactions
tx = input ( " Insert your TxID: " )
while True :
try :
clear ( )
prt ( )
close ( )
bitcoincli = " getrawtransaction "
2020-05-27 17:34:26 -03:00
if tx == " 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b " :
print ( """ \t \t \n \033 [1;35;40mThis transaction it ' s the first one of the Bitcoin Blockchain on Block 0 by Satoshi Nakamoto.
You can decode that block in HEX and see what ' s inside. \033 [0;37;40m " " " )
t . sleep ( 10 )
else :
2020-06-11 16:40:02 -03:00
lsd = os . popen ( path [ ' bitcoincli ' ] + bitcoincli + tx + " 1 " )
2020-05-27 17:34:26 -03:00
lsd0 = lsd . read ( )
lsd1 = str ( lsd0 )
lsda = lsd1 . split ( ' , ' )
lsdb = lsda [ - 3 ]
2020-06-10 19:02:49 -03:00
lsdc = str ( lsdb )
print ( " \033 [0;37;40mTransaction " + " \033 [1;31;40m {} \033 [0;37;40m " . format ( tx ) + " has: \n " + " \033 [1;31;40m {} \033 [0;37;40m " . format ( lsdc ) )
2020-05-27 17:34:26 -03:00
tmp ( )
lsd . close ( )
2020-05-25 19:35:24 -03:00
except ( KeyboardInterrupt , SystemExit ) :
menu ( )
2020-05-16 00:21:47 -03:00
#--------------------------------- End Hex Block Decoder Functions -------------------------------------
2020-05-24 14:15:12 -03:00
2020-05-16 00:21:47 -03:00
#--------------------------------- Menu section -----------------------------------
def menu ( ) : #Main Menu
2020-05-13 19:47:58 -03:00
clear ( )
prt ( )
2020-05-25 19:35:24 -03:00
sysinfo ( )
2020-05-13 19:47:58 -03:00
print ( """ \t \t
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m Menu
2020-06-11 16:40:02 -03:00
Local Node
2020-06-19 17:51:28 -03:00
Version 0.5 .0
2020-05-25 19:35:24 -03:00
2020-06-11 16:40:02 -03:00
\033 [ 1 ; 31 ; 40 mA . \033 [ 0 ; 37 ; 40 m Run PyBLOCK
\033 [ 1 ; 32 ; 40 mB . \033 [ 0 ; 37 ; 40 m Show Blockchain information
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 32 ; 40 mC . \033 [ 0 ; 37 ; 40 m Show the Genesis Block
\033 [ 1 ; 32 ; 40 mD . \033 [ 0 ; 37 ; 40 m Decode in HEX any block
\033 [ 1 ; 32 ; 40 mE . \033 [ 0 ; 37 ; 40 m Decode in HEX any transaction
\033 [ 1 ; 32 ; 40 mF . \033 [ 0 ; 37 ; 40 m Show confirmations from a transaction
\033 [ 1 ; 32 ; 40 mH . \033 [ 0 ; 37 ; 40 m Advanced
2020-05-29 11:52:29 -03:00
\033 [ 1 ; 33 ; 40 mL . \033 [ 0 ; 37 ; 40 m Lightning Network
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 34 ; 40 mS . \033 [ 0 ; 37 ; 40 m SatNode
2020-06-19 17:51:28 -03:00
\033 [ 3 ; 33 ; 40 mP . \033 [ 0 ; 37 ; 40 m Premium
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 35 ; 40 mX . \033 [ 0 ; 37 ; 40 m Donate
\033 [ 1 ; 33 ; 40 mQ . \033 [ 0 ; 37 ; 40 m Exit
2020-05-13 19:47:58 -03:00
\n \n """ )
2020-05-25 19:35:24 -03:00
menuA ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
2020-05-24 14:15:12 -03:00
2020-05-16 00:21:47 -03:00
def menuUserConn ( ) : #Menu before connection over ssh
2020-05-15 07:41:42 -03:00
clear ( )
prt ( )
2020-05-25 19:35:24 -03:00
sysinfo ( )
2020-05-15 07:41:42 -03:00
print ( """ \t \t
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m Menu
2020-06-11 16:40:02 -03:00
Remote Node RPC
2020-06-19 17:51:28 -03:00
Version 0.5 .0
2020-05-25 19:35:24 -03:00
2020-06-11 16:40:02 -03:00
\033 [ 1 ; 31 ; 40 mA . \033 [ 0 ; 37 ; 40 m Run PyBLOCK
\033 [ 1 ; 32 ; 40 mB . \033 [ 0 ; 37 ; 40 m Show Blockchain information
\033 [ 1 ; 33 ; 40 mL . \033 [ 0 ; 37 ; 40 m Lightning Network
\033 [ 1 ; 32 ; 40 mH . \033 [ 0 ; 37 ; 40 m Advanced
\033 [ 1 ; 34 ; 40 mS . \033 [ 0 ; 37 ; 40 m SatNode
2020-06-19 17:51:28 -03:00
\033 [ 3 ; 33 ; 40 mP . \033 [ 0 ; 37 ; 40 m Premium
2020-06-11 16:40:02 -03:00
\033 [ 1 ; 35 ; 40 mX . \033 [ 0 ; 37 ; 40 m Donate
\033 [ 1 ; 33 ; 40 mQ . \033 [ 0 ; 37 ; 40 m Exit
2020-05-15 07:41:42 -03:00
\n \n """ )
2020-06-11 16:40:02 -03:00
menuRemote ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
2020-05-24 14:15:12 -03:00
2020-05-25 19:35:24 -03:00
def advanceMenu ( ) : # Advanced Menu
2020-05-18 22:25:55 -03:00
clear ( )
prt ( )
2020-05-25 19:35:24 -03:00
sysinfo ( )
2020-05-18 22:25:55 -03:00
print ( """ \t \t
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m Menu
2020-06-19 17:51:28 -03:00
Version 0.5 .0
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 32 ; 40 mA . \033 [ 0 ; 37 ; 40 m Bitconi - cli Console
\033 [ 1 ; 32 ; 40 mB . \033 [ 0 ; 37 ; 40 m FunB
\033 [ 1 ; 32 ; 40 mC . \033 [ 0 ; 37 ; 40 m Show QR from a Bitcoin Address
\033 [ 1 ; 32 ; 40 mS . \033 [ 0 ; 37 ; 40 m Sysinfo
\033 [ 1 ; 36 ; 40 mR . \033 [ 0 ; 37 ; 40 m Return Main Menu
2020-05-18 22:25:55 -03:00
\n \n """ )
2020-05-25 19:35:24 -03:00
menuB ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
2020-05-15 07:41:42 -03:00
2020-06-11 18:46:16 -03:00
def remoteadvanceMenu ( ) : # Advanced Menu
clear ( )
prt ( )
sysinfo ( )
print ( """ \t \t
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m Menu
2020-06-19 17:51:28 -03:00
Version 0.5 .0
2020-06-11 18:46:16 -03:00
\033 [ 1 ; 32 ; 40 mA . \033 [ 0 ; 37 ; 40 m Bitconi - cli Console
\033 [ 1 ; 32 ; 40 mB . \033 [ 0 ; 37 ; 40 m FunB
\033 [ 1 ; 32 ; 40 mC . \033 [ 0 ; 37 ; 40 m Show QR from a Bitcoin Address
\033 [ 1 ; 32 ; 40 mS . \033 [ 0 ; 37 ; 40 m Sysinfo
\033 [ 1 ; 36 ; 40 mR . \033 [ 0 ; 37 ; 40 m Return Main Menu
\n \n """ )
menuBA ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
2020-05-25 19:35:24 -03:00
def dnt ( ) : # Donation selection menu
2020-05-20 20:32:31 -03:00
clear ( )
prt ( )
2020-05-25 19:35:24 -03:00
sysinfo ( )
2020-05-20 20:32:31 -03:00
print ( """ \t \t
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m Menu
2020-06-19 17:51:28 -03:00
Version 0.5 .0
2020-05-24 14:15:12 -03:00
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 32 ; 40 mA . \033 [ 0 ; 37 ; 40 m Developers Donation
\033 [ 1 ; 32 ; 40 mB . \033 [ 0 ; 37 ; 40 m Testers Donation
\033 [ 1 ; 36 ; 40 mR . \033 [ 0 ; 37 ; 40 m Return Main Menu
2020-05-23 08:50:38 -03:00
\n \n """ )
2020-05-25 19:35:24 -03:00
menuC ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
2020-05-24 14:15:12 -03:00
2020-05-25 19:35:24 -03:00
def dntDev ( ) : # Dev Donation Menu
2020-05-23 08:50:38 -03:00
clear ( )
prt ( )
2020-05-25 19:35:24 -03:00
sysinfo ( )
2020-05-23 08:50:38 -03:00
print ( """ \t \t
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m Menu
2020-06-19 17:51:28 -03:00
Version 0.5 .0
2020-05-24 14:15:12 -03:00
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 32 ; 40 mA . \033 [ 0 ; 37 ; 40 m PayNym
\033 [ 1 ; 32 ; 40 mB . \033 [ 0 ; 37 ; 40 m Bitcoin Address
\033 [ 1 ; 32 ; 40 mC . \033 [ 0 ; 37 ; 40 m Lightning Network
\033 [ 1 ; 36 ; 40 mR . \033 [ 0 ; 37 ; 40 m Return Main Menu
2020-05-20 20:32:31 -03:00
\n \n """ )
2020-05-25 19:35:24 -03:00
menuE ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
2020-05-24 14:15:12 -03:00
2020-05-25 19:35:24 -03:00
def dntTst ( ) : # Tester Donation Menu
2020-05-23 08:50:38 -03:00
clear ( )
prt ( )
2020-05-25 19:35:24 -03:00
sysinfo ( )
2020-05-23 08:50:38 -03:00
print ( """ \t \t
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m Menu
2020-06-19 17:51:28 -03:00
Version 0.5 .0
2020-05-24 14:15:12 -03:00
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 32 ; 40 mA . \033 [ 0 ; 37 ; 40 m Bitcoin Address
\033 [ 1 ; 32 ; 40 mB . \033 [ 0 ; 37 ; 40 m Lightning Network
\033 [ 1 ; 36 ; 40 mR . \033 [ 0 ; 37 ; 40 m Return Main Menu
2020-05-23 08:50:38 -03:00
\n \n """ )
2020-05-25 19:35:24 -03:00
menuF ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
2020-05-24 14:15:12 -03:00
2020-05-25 19:35:24 -03:00
def satnodeMenu ( ) : # Satnode Menu
2020-05-23 08:50:38 -03:00
clear ( )
prt ( )
2020-05-25 19:35:24 -03:00
sysinfo ( )
2020-05-23 08:50:38 -03:00
print ( """ \t \t
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m Menu
2020-06-10 20:28:39 -03:00
Version 0.4 .0
2020-05-25 19:35:24 -03:00
\033 [ 1 ; 32 ; 40 mA . \033 [ 0 ; 37 ; 40 m Start SatNode
\033 [ 1 ; 32 ; 40 mB . \033 [ 0 ; 37 ; 40 m Feed
\033 [ 1 ; 32 ; 40 mC . \033 [ 0 ; 37 ; 40 m Setup
\033 [ 1 ; 34 ; 40 mS . \033 [ 0 ; 37 ; 40 m Send a Message to Space
\033 [ 1 ; 36 ; 40 mD . \033 [ 0 ; 37 ; 40 m Return Main Menu
2020-05-23 08:50:38 -03:00
\n \n """ )
2020-05-25 19:35:24 -03:00
menuD ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
2020-05-20 20:32:31 -03:00
2020-05-29 11:52:29 -03:00
def menuLND ( ) :
clear ( )
prt ( )
sysinfo ( )
print ( """ \t \t
2020-05-29 16:06:45 -03:00
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m Lightning Network Menu
2020-06-01 22:38:56 -03:00
Remote node connection
2020-06-19 17:51:28 -03:00
Version 0.5 .0
2020-05-29 11:52:29 -03:00
2020-05-29 16:06:45 -03:00
\033 [ 1 ; 32 ; 40 mI . \033 [ 0 ; 37 ; 40 m New Invoice
2020-05-29 11:52:29 -03:00
\033 [ 1 ; 31 ; 40 mP . \033 [ 0 ; 37 ; 40 m Pay Invoice
2020-06-04 14:28:45 -03:00
\033 [ 1 ; 32 ; 40 mQ . \033 [ 0 ; 37 ; 40 m Channel Balance
2020-06-11 16:40:02 -03:00
\033 [ 1 ; 31 ; 40 mL . \033 [ 0 ; 37 ; 40 m List Invoices
\033 [ 1 ; 32 ; 40 mC . \033 [ 0 ; 37 ; 40 m Show Channels
2020-06-01 22:38:56 -03:00
\033 [ 1 ; 33 ; 40 mB . \033 [ 0 ; 37 ; 40 m New Bitcoin Address
2020-06-11 16:40:02 -03:00
\033 [ 1 ; 33 ; 40 mX . \033 [ 0 ; 37 ; 40 m List Onchain Transactions
2020-06-04 14:28:45 -03:00
\033 [ 1 ; 32 ; 40 mN . \033 [ 0 ; 37 ; 40 m Get Node Info
\033 [ 1 ; 32 ; 40 mO . \033 [ 0 ; 37 ; 40 m Onchain Balance
2020-05-29 11:52:29 -03:00
\033 [ 1 ; 36 ; 40 mR . \033 [ 0 ; 37 ; 40 m Return Main Menu
\n \n """ )
menuLN ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
2020-05-24 14:15:12 -03:00
2020-06-10 19:02:49 -03:00
def menuLNDLOCAL ( ) :
clear ( )
prt ( )
sysinfo ( )
print ( """ \t \t
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m Lightning Network Menu
Local node connection
2020-06-19 17:51:28 -03:00
Version 0.5 .0
2020-06-10 19:02:49 -03:00
\033 [ 1 ; 32 ; 40 mI . \033 [ 0 ; 37 ; 40 m New Invoice
\033 [ 1 ; 31 ; 40 mP . \033 [ 0 ; 37 ; 40 m Pay Invoice
2020-06-10 20:28:39 -03:00
\033 [ 1 ; 32 ; 40 mK . \033 [ 0 ; 37 ; 40 m Make a KeySend Payment
\033 [ 1 ; 31 ; 40 mL . \033 [ 0 ; 37 ; 40 m List Invoices
2020-06-10 19:02:49 -03:00
\033 [ 1 ; 32 ; 40 mQ . \033 [ 0 ; 37 ; 40 m Channel Balance
2020-06-10 20:28:39 -03:00
\033 [ 1 ; 32 ; 40 mC . \033 [ 0 ; 37 ; 40 m Show Channels
2020-06-10 19:02:49 -03:00
\033 [ 1 ; 32 ; 40 mN . \033 [ 0 ; 37 ; 40 m Get Node Info
\033 [ 1 ; 32 ; 40 mW . \033 [ 0 ; 37 ; 40 m Get Network Information
2020-06-19 17:51:28 -03:00
\033 [ 1 ; 32 ; 40 mJ . \033 [ 0 ; 37 ; 40 m Lncli Console
2020-06-10 20:28:39 -03:00
\033 [ 1 ; 33 ; 40 mB . \033 [ 0 ; 37 ; 40 m New Bitcoin Address
\033 [ 1 ; 33 ; 40 mX . \033 [ 0 ; 37 ; 40 m List Onchain Transactions
\033 [ 1 ; 32 ; 40 mO . \033 [ 0 ; 37 ; 40 m Onchain Balance
2020-06-10 19:02:49 -03:00
\033 [ 1 ; 36 ; 40 mR . \033 [ 0 ; 37 ; 40 m Return Main Menu
\n \n """ )
menuLNlocal ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
2020-06-19 17:51:28 -03:00
def APIMenu ( ) :
clear ( )
prt ( )
sysinfo ( )
print ( """ \t \t
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m API \033 [ 1 ; 34 ; 40 mPremium \033 [ 0 ; 37 ; 40 m Menu
Version 0.5 .0
2020-06-22 20:57:57 -03:00
\033 [ 1 ; 32 ; 40 mA . \033 [ 0 ; 37 ; 40 m TippinMe FREE
\033 [ 1 ; 32 ; 40 mB . \033 [ 0 ; 37 ; 40 m LNBits \033 [ 3 ; 35 ; 40 m { lnbitspaid } \033 [ 0 ; 37 ; 40 m
\033 [ 1 ; 32 ; 40 mC . \033 [ 0 ; 37 ; 40 m LNPay \033 [ 3 ; 35 ; 40 m { lnpaypaid } \033 [ 0 ; 37 ; 40 m
\033 [ 1 ; 32 ; 40 mD . \033 [ 0 ; 37 ; 40 m OpenNode \033 [ 3 ; 35 ; 40 m { opennodepaid } \033 [ 0 ; 37 ; 40 m
2020-06-19 17:51:28 -03:00
\033 [ 1 ; 36 ; 40 mR . \033 [ 0 ; 37 ; 40 m Return Main Menu
2020-06-22 20:57:57 -03:00
\n \n """ .format(lnbitspaid = " PAID " if os.path.isfile( " lnbitSN.conf " ) else " PREMIUM " , lnpaypaid = " PAID " if os.path.isfile( " lnpaySN.conf " ) else " PREMIUM " , opennodepaid = " PAID " if os.path.isfile( " opennodeSN.conf " ) else " PREMIUM " ))
2020-06-19 17:51:28 -03:00
menuPI ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
def APILnbit ( ) :
2020-06-22 20:57:57 -03:00
bitLN = { " NN " : " " , " pd " : " " }
if os . path . isfile ( ' lnbitSN.conf ' ) : # Check if the file 'bclock.conf' is in the same folder
bitData = pickle . load ( open ( " lnbitSN.conf " , " rb " ) ) # Load the file 'bclock.conf'
bitLN = bitData # Copy the variable pathv to 'path'
2020-06-19 17:51:28 -03:00
clear ( )
prt ( )
sysinfo ( )
print ( """ \t \t
2020-06-22 20:57:57 -03:00
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m LNBits SN : { } \033 [ 1 ; 34 ; 40 mPremium \033 [ 0 ; 37 ; 40 m Menu
2020-06-19 17:51:28 -03:00
Version 0.5 .0
\033 [ 1 ; 32 ; 40 mA . \033 [ 0 ; 37 ; 40 m New Invoice
\033 [ 1 ; 32 ; 40 mB . \033 [ 0 ; 37 ; 40 m Pay Invoice
\033 [ 1 ; 32 ; 40 mC . \033 [ 0 ; 37 ; 40 m New PayWall
\033 [ 1 ; 32 ; 40 mD . \033 [ 0 ; 37 ; 40 m Delete PayWall
\033 [ 1 ; 32 ; 40 mE . \033 [ 0 ; 37 ; 40 m List PayWalls
\033 [ 1 ; 36 ; 40 mR . \033 [ 0 ; 37 ; 40 m Return Main Menu
2020-06-22 20:57:57 -03:00
\n \n """ .format(bitLN[ ' NN ' ]))
2020-06-19 17:51:28 -03:00
menuLNBPI ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
2020-06-22 14:26:07 -03:00
def APILnPay ( ) :
2020-06-22 20:57:57 -03:00
bitLN = { " NN " : " " , " pd " : " " }
if os . path . isfile ( ' lnpaySN.conf ' ) : # Check if the file 'bclock.conf' is in the same folder
bitData = pickle . load ( open ( " lnpaySN.conf " , " rb " ) ) # Load the file 'bclock.conf'
bitLN = bitData # Copy the variable pathv to 'path'
2020-06-22 14:26:07 -03:00
clear ( )
prt ( )
sysinfo ( )
print ( """ \t \t
2020-06-22 20:57:57 -03:00
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m LNPay SN : { } \033 [ 1 ; 34 ; 40 mPremium \033 [ 0 ; 37 ; 40 m Menu
2020-06-22 14:26:07 -03:00
Version 0.5 .0
\033 [ 1 ; 32 ; 40 mA . \033 [ 0 ; 37 ; 40 m New Invoice
\033 [ 1 ; 32 ; 40 mB . \033 [ 0 ; 37 ; 40 m Pay Invoice
\033 [ 1 ; 32 ; 40 mC . \033 [ 0 ; 37 ; 40 m Wallet Balance
\033 [ 1 ; 32 ; 40 mD . \033 [ 0 ; 37 ; 40 m List Invoices
\033 [ 1 ; 32 ; 40 mE . \033 [ 0 ; 37 ; 40 m Transfer Between Wallets
\033 [ 1 ; 36 ; 40 mR . \033 [ 0 ; 37 ; 40 m Return Main Menu
2020-06-22 20:57:57 -03:00
\n \n """ .format(bitLN[ ' NN ' ]))
2020-06-22 14:26:07 -03:00
menuLNPAY ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
def APIOpenNode ( ) :
2020-06-22 20:57:57 -03:00
bitLN = { " NN " : " " , " pd " : " " }
if os . path . isfile ( ' opennodeSN.conf ' ) : # Check if the file 'bclock.conf' is in the same folder
bitData = pickle . load ( open ( " opennodeSN.conf " , " rb " ) ) # Load the file 'bclock.conf'
bitLN = bitData # Copy the variable pathv to 'path'
2020-06-22 14:26:07 -03:00
clear ( )
prt ( )
sysinfo ( )
print ( """ \t \t
2020-06-22 20:57:57 -03:00
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m OpenNode SN : { } \033 [ 1 ; 34 ; 40 mPremium \033 [ 0 ; 37 ; 40 m Menu
2020-06-22 14:26:07 -03:00
Version 0.5 .0
\033 [ 1 ; 32 ; 40 mA . \033 [ 0 ; 37 ; 40 m New Invoice
\033 [ 1 ; 32 ; 40 mB . \033 [ 0 ; 37 ; 40 m Pay Invoice
\033 [ 1 ; 32 ; 40 mC . \033 [ 0 ; 37 ; 40 m Wallet Balance
\033 [ 1 ; 32 ; 40 mD . \033 [ 0 ; 37 ; 40 m List Payments
\033 [ 1 ; 36 ; 40 mR . \033 [ 0 ; 37 ; 40 m Return Main Menu
2020-06-22 20:57:57 -03:00
\n \n """ .format(bitLN[ ' NN ' ]))
2020-06-22 14:26:07 -03:00
menuOpenNode ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
2020-06-22 20:57:57 -03:00
def APITippinMe ( ) :
clear ( )
prt ( )
sysinfo ( )
print ( """ \t \t
\033 [ 1 ; 31 ; 40 mPyBLOCK \033 [ 0 ; 37 ; 40 m TippinMe \033 [ 1 ; 34 ; 40 mFree \033 [ 0 ; 37 ; 40 m Menu
Version 0.5 .0
\033 [ 1 ; 32 ; 40 mA . \033 [ 0 ; 37 ; 40 m New Invoice
\033 [ 1 ; 36 ; 40 mR . \033 [ 0 ; 37 ; 40 m Return Main Menu
\n \n """ )
menuTippinMe ( input ( " \033 [1;32;40mSelect option: \033 [0;37;40m " ) )
2020-06-11 19:49:41 -03:00
def menuSelection ( ) :
path = { " ip_port " : " " , " rpcuser " : " " , " rpcpass " : " " , " bitcoincli " : " " }
2020-06-11 16:40:02 -03:00
pathv = pickle . load ( open ( " bclock.conf " , " rb " ) ) # Load the file 'bclock.conf'
path = pathv # Copy the variable pathv to 'path'
if path [ ' bitcoincli ' ] :
menu ( )
else :
menuUserConn ( )
2020-06-11 19:49:41 -03:00
2020-06-11 16:40:02 -03:00
def menuSelectionLN ( ) :
2020-06-10 19:02:49 -03:00
lndconnectload = { " ip_port " : " " , " tls " : " " , " macaroon " : " " , " lncli " : " " }
lndconnectData = pickle . load ( open ( " blndconnect.conf " , " rb " ) ) # Load the file 'bclock.conf'
lndconnectload = lndconnectData # Copy the variable pathv to 'path'
2020-06-11 19:49:41 -03:00
if lndconnectload [ ' ln ' ] :
2020-06-10 19:02:49 -03:00
menuLNDLOCAL ( )
else :
menuLND ( )
2020-06-19 17:51:28 -03:00
def aaccPPiLNBits ( ) :
bitLN = { " NN " : " " , " pd " : " " }
2020-06-22 20:57:57 -03:00
if os . path . isfile ( ' lnbitSN.conf ' ) :
bitData = pickle . load ( open ( " lnbitSN.conf " , " rb " ) )
bitLN = bitData
2020-06-19 17:51:28 -03:00
APILnbit ( )
else :
qr = qrcode . QRCode (
version = 1 ,
error_correction = qrcode . constants . ERROR_CORRECT_L ,
box_size = 10 ,
border = 4 ,
)
2020-06-22 22:27:37 -03:00
bitLN [ ' NN ' ] = randrange ( 10000000 )
curl = ' curl -X POST https://lnbits.com/api/v1/payments -d ' + " ' { " + """ " out " : false, " amount " : 100000, " memo " : " LNBits on PyBLOCK {} " """ . format ( bitLN [ ' NN ' ] ) + " } ' " + """ -H " X-Api-Key: 1d646820055e4e2da218e801eaacfc94 " -H " Content-type: application/json " """
2020-06-19 17:51:28 -03:00
sh = os . popen ( curl ) . read ( )
n = str ( sh )
d = json . loads ( n )
q = d [ ' payment_request ' ]
c = q . lower ( )
while True :
2020-06-22 14:26:07 -03:00
print ( " \033 [1;30;47m " )
qr . add_data ( c )
qr . print_ascii ( )
print ( " \033 [0;37;40m " )
qr . clear ( )
print ( " Lightning Invoice: " + c )
dn = str ( d [ ' checking_id ' ] )
t . sleep ( 10 )
2020-06-19 17:51:28 -03:00
checkcurl = ' curl -X GET https://lnbits.com/api/v1/payments/ ' + dn + """ -H " X-Api-Key: 1d646820055e4e2da218e801eaacfc94 " -H " Content-type: application/json " """
rsh = os . popen ( checkcurl ) . read ( )
clear ( )
blogo ( )
nn = str ( rsh )
dd = json . loads ( nn )
db = dd [ ' paid ' ]
if db == True :
clear ( )
blogo ( )
tick ( )
bitLN [ ' pd ' ] = " PAID "
pickle . dump ( bitLN , open ( " lnbitSN.conf " , " wb " ) )
createFileConnLNBits ( )
break
else :
continue
2020-06-22 14:26:07 -03:00
def aaccPPiLNPay ( ) :
bitLN = { " NN " : " " , " pd " : " " }
if os . path . isfile ( ' lnpaySN.conf ' ) : # Check if the file 'bclock.conf' is in the same folder
bitData = pickle . load ( open ( " lnpaySN.conf " , " rb " ) ) # Load the file 'bclock.conf'
bitLN = bitData # Copy the variable pathv to 'path'
APILnPay ( )
else :
qr = qrcode . QRCode (
version = 1 ,
error_correction = qrcode . constants . ERROR_CORRECT_L ,
box_size = 10 ,
border = 4 ,
)
2020-06-22 22:27:37 -03:00
bitLN [ ' NN ' ] = randrange ( 10000000 )
curl = ' curl -X POST https://lnbits.com/api/v1/payments -d ' + " ' { " + """ " out " : false, " amount " : 100000, " memo " : " LNPay on PyBLOCK {} " """ . format ( bitLN [ ' NN ' ] ) + " } ' " + """ -H " X-Api-Key: 1d646820055e4e2da218e801eaacfc94 " -H " Content-type: application/json " """
2020-06-22 14:26:07 -03:00
sh = os . popen ( curl ) . read ( )
n = str ( sh )
d = json . loads ( n )
q = d [ ' payment_request ' ]
c = q . lower ( )
while True :
print ( " \033 [1;30;47m " )
qr . add_data ( c )
qr . print_ascii ( )
print ( " \033 [0;37;40m " )
qr . clear ( )
print ( " Lightning Invoice: " + c )
dn = str ( d [ ' checking_id ' ] )
t . sleep ( 10 )
checkcurl = ' curl -X GET https://lnbits.com/api/v1/payments/ ' + dn + """ -H " X-Api-Key: 1d646820055e4e2da218e801eaacfc94 " -H " Content-type: application/json " """
rsh = os . popen ( checkcurl ) . read ( )
clear ( )
blogo ( )
nn = str ( rsh )
dd = json . loads ( nn )
db = dd [ ' paid ' ]
if db == True :
clear ( )
blogo ( )
tick ( )
bitLN [ ' pd ' ] = " PAID "
pickle . dump ( bitLN , open ( " lnpaySN.conf " , " wb " ) )
createFileConnLNPay ( )
break
else :
continue
def aaccPPiOpenNode ( ) :
bitLN = { " NN " : " " , " pd " : " " }
if os . path . isfile ( ' opennodeSN.conf ' ) : # Check if the file 'bclock.conf' is in the same folder
bitData = pickle . load ( open ( " opennodeSN.conf " , " rb " ) ) # Load the file 'bclock.conf'
bitLN = bitData # Copy the variable pathv to 'path'
APIOpenNode ( )
else :
qr = qrcode . QRCode (
version = 1 ,
error_correction = qrcode . constants . ERROR_CORRECT_L ,
box_size = 10 ,
border = 4 ,
)
2020-06-22 22:27:37 -03:00
bitLN [ ' NN ' ] = randrange ( 10000000 )
curl = ' curl -X POST https://lnbits.com/api/v1/payments -d ' + " ' { " + """ " out " : false, " amount " : 100000, " memo " : " OpenNode on PyBLOCK {} " """ . format ( bitLN [ ' NN ' ] ) + " } ' " + """ -H " X-Api-Key: 1d646820055e4e2da218e801eaacfc94 " -H " Content-type: application/json " """
2020-06-22 14:26:07 -03:00
sh = os . popen ( curl ) . read ( )
n = str ( sh )
d = json . loads ( n )
q = d [ ' payment_request ' ]
c = q . lower ( )
while True :
print ( " \033 [1;30;47m " )
qr . add_data ( c )
qr . print_ascii ( )
print ( " \033 [0;37;40m " )
qr . clear ( )
print ( " Lightning Invoice: " + c )
dn = str ( d [ ' checking_id ' ] )
t . sleep ( 10 )
checkcurl = ' curl -X GET https://lnbits.com/api/v1/payments/ ' + dn + """ -H " X-Api-Key: 1d646820055e4e2da218e801eaacfc94 " -H " Content-type: application/json " """
rsh = os . popen ( checkcurl ) . read ( )
clear ( )
blogo ( )
nn = str ( rsh )
dd = json . loads ( nn )
db = dd [ ' paid ' ]
if db == True :
clear ( )
blogo ( )
tick ( )
bitLN [ ' pd ' ] = " PAID "
pickle . dump ( bitLN , open ( " opennodeSN.conf " , " wb " ) )
createFileConnOpenNode ( )
break
else :
continue
2020-06-22 20:57:57 -03:00
def aaccPPiTippinMe ( ) :
bitLN = { " NN " : " " , " pd " : " " }
if os . path . isfile ( ' tippinme.conf ' ) : # Check if the file 'bclock.conf' is in the same folder
bitData = pickle . load ( open ( " tippinme.conf " , " rb " ) ) # Load the file 'bclock.conf'
bitLN = bitData # Copy the variable pathv to 'path'
APITippinMe ( )
else :
2020-06-22 22:02:00 -03:00
createFileTippinMe ( )
2020-06-10 19:02:49 -03:00
#--------------------------------- End Menu section -----------------------------------
2020-05-16 12:51:30 -03:00
#--------------------------------- Main Menu execution --------------------------------
2020-06-19 17:51:28 -03:00
def menuPI ( menuWN ) :
if menuWN == " A " or menuWN == " a " :
2020-06-22 20:57:57 -03:00
aaccPPiTippinMe ( )
2020-06-22 14:26:07 -03:00
if menuWN == " B " or menuWN == " b " :
2020-06-22 20:57:57 -03:00
aaccPPiLNBits ( )
2020-06-22 14:26:07 -03:00
if menuWN == " C " or menuWN == " c " :
2020-06-22 20:57:57 -03:00
aaccPPiLNPay ( )
if menuWN == " D " or menuWN == " d " :
2020-06-22 14:26:07 -03:00
aaccPPiOpenNode ( )
2020-06-22 20:57:57 -03:00
def menuTippinMe ( menuTM ) :
if menuTM == " A " or menuTM == " a " :
tippinmeGetInvoice ( )
if menuTM == " R " or menuTM == " r " :
APIMenu ( )
2020-06-22 14:26:07 -03:00
def menuOpenNode ( menuOP ) :
if menuOP == " A " or menuOP == " a " :
clear ( )
prt ( )
OpenNodecreatecharge ( )
if menuOP == " B " or menuOP == " b " :
clear ( )
prt ( )
OpenNodeiniciatewithdrawal ( )
if menuOP == " C " or menuOP == " c " :
clear ( )
prt ( )
OpenNodelistfunds ( )
if menuOP == " D " or menuOP == " d " :
clear ( )
prt ( )
OpenNodeListPayments ( )
if menuOP == " R " or menuOP == " r " :
APIMenu ( )
def menuLNPAY ( menuNW ) :
if menuNW == " A " or menuNW == " a " :
clear ( )
prt ( )
lnpayCreateInvoice ( )
if menuNW == " B " or menuNW == " b " :
clear ( )
prt ( )
lnpayPayInvoice ( )
if menuNW == " C " or menuNW == " c " :
clear ( )
prt ( )
lnpayGetBalance ( )
if menuNW == " D " or menuNW == " d " :
clear ( )
prt ( )
lnpayGetTransactions ( )
if menuNW == " E " or menuNW == " e " :
clear ( )
prt ( )
lnpayTransBWallets ( )
if menuNW == " R " or menuNW == " r " :
APIMenu ( )
2020-06-19 17:51:28 -03:00
def menuLNBPI ( menuLNQ ) :
if menuLNQ == " A " or menuLNQ == " a " :
clear ( )
prt ( )
lnbitCreateNewInvoice ( )
if menuLNQ == " B " or menuLNQ == " b " :
clear ( )
prt ( )
lnbitPayInvoice ( )
if menuLNQ == " C " or menuLNQ == " c " :
clear ( )
prt ( )
lnbitCreatePayWall ( )
if menuLNQ == " D " or menuLNQ == " d " :
clear ( )
prt ( )
lnbitDeletePayWall ( )
if menuLNQ == " E " or menuLNQ == " e " :
clear ( )
prt ( )
lnbitListPawWall ( )
if menuLNQ == " R " or menuLNQ == " r " :
APIMenu ( )
2020-05-16 00:21:47 -03:00
def menuA ( menuS ) : #Execution of the Main Menu options
2020-05-15 07:41:42 -03:00
if menuS == " A " or menuS == " a " :
2020-05-16 12:51:30 -03:00
artist ( )
2020-05-15 07:41:42 -03:00
elif menuS == " B " or menuS == " b " :
2020-05-13 19:47:58 -03:00
while True :
2020-05-16 12:51:30 -03:00
try :
clear ( )
close ( )
getblock ( )
tmp ( )
2020-06-13 19:23:52 -03:00
except :
break
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-15 07:41:42 -03:00
elif menuS == " C " or menuS == " c " :
clear ( )
prt ( )
getgenesis ( )
a = input ( " Do you want to return to the Main Menu? Y/n: " )
if a == " Y " or a == " y " :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-15 07:41:42 -03:00
else :
b = input ( " Do you want to exit? Y/n: " )
if b == " Y " or b == " y " :
2020-05-27 08:59:36 -03:00
os . _exit ( 0 )
apisnd . close ( )
donation . close ( )
clone . close ( )
logos . close ( )
feed . close ( )
2020-05-27 11:01:03 -03:00
sysinf . close ( )
2020-06-01 09:25:57 -03:00
nodeconnection . close ( )
2020-05-15 07:41:42 -03:00
exit ( )
else :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-16 12:51:30 -03:00
elif menuS == " D " or menuS == " d " :
2020-05-16 00:21:47 -03:00
clear ( )
prt ( )
readHexBlock ( )
while True :
r = input ( " Do you want to continue decoding? Y/n: " )
if r == " Y " or r == " y " :
clear ( )
prt ( )
readHexBlock ( )
else :
2020-06-13 19:23:52 -03:00
break
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-16 12:51:30 -03:00
elif menuS == " E " or menuS == " e " :
clear ( )
prt ( )
readHexTx ( )
while True :
r = input ( " Do you want to continue decoding? Y/n: " )
if r == " Y " or r == " y " :
clear ( )
prt ( )
2020-05-25 19:35:24 -03:00
sysinfo ( )
2020-05-16 12:51:30 -03:00
readHexTx ( )
else :
2020-06-13 19:23:52 -03:00
break
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-16 00:21:47 -03:00
elif menuS == " F " or menuS == " f " :
2020-05-25 19:35:24 -03:00
getrawtx ( )
elif menuS == " H " or menuS == " h " :
advanceMenu ( )
2020-05-29 11:52:29 -03:00
elif menuS == " L " or menuS == " l " :
clear ( )
prt ( )
2020-06-11 16:40:02 -03:00
menuSelectionLN ( )
elif menuS == " Q " or menuS == " q " :
os . _exit ( 0 )
apisnd . close ( )
donation . close ( )
clone . close ( )
logos . close ( )
feed . close ( )
sysinf . close ( )
nodeconnection . close ( )
exit ( )
elif menuS == " S " or menuS == " s " :
clear ( )
prt ( )
satnodeMenu ( )
elif menuS == " G " or menuS == " g " :
nodeinfo ( )
2020-06-19 17:51:28 -03:00
elif menuS == " P " or menuS == " p " :
APIMenu ( )
2020-06-11 16:40:02 -03:00
elif menuS == " X " or menuS == " x " :
dnt ( )
elif menuS == " T " or menuS == " t " : #Test feature fast access
print ( " This is a test access. \n " )
screensv ( )
2020-06-11 19:49:41 -03:00
2020-06-11 16:40:02 -03:00
def menuRemote ( menuS ) : #Execution of the Main Menu options
if menuS == " A " or menuS == " a " :
while True :
try :
clear ( )
close ( )
remotegetblock ( )
tmp ( )
2020-06-13 19:23:52 -03:00
except :
break
2020-06-11 16:40:02 -03:00
menuUserConn ( )
elif menuS == " B " or menuS == " b " :
while True :
try :
clear ( )
close ( )
remotegetblockcount ( )
tmp ( )
2020-06-13 19:23:52 -03:00
except :
break
2020-06-11 16:40:02 -03:00
menuUserConn ( )
elif menuS == " H " or menuS == " h " :
2020-06-11 18:46:16 -03:00
remoteadvanceMenu ( )
2020-06-11 16:40:02 -03:00
elif menuS == " L " or menuS == " l " :
clear ( )
prt ( )
menuSelectionLN ( )
2020-05-18 22:25:55 -03:00
elif menuS == " Q " or menuS == " q " :
2020-05-27 08:59:36 -03:00
os . _exit ( 0 )
apisnd . close ( )
donation . close ( )
clone . close ( )
logos . close ( )
feed . close ( )
2020-05-27 11:01:03 -03:00
sysinf . close ( )
2020-06-01 09:25:57 -03:00
nodeconnection . close ( )
2020-05-15 07:41:42 -03:00
exit ( )
2020-05-25 19:35:24 -03:00
elif menuS == " S " or menuS == " s " :
clear ( )
prt ( )
satnodeMenu ( )
2020-06-19 17:51:28 -03:00
elif menuS == " P " or menuS == " p " :
APIMenu ( )
2020-05-18 22:25:55 -03:00
elif menuS == " G " or menuS == " g " :
2020-05-25 19:35:24 -03:00
nodeinfo ( )
2020-05-20 20:32:31 -03:00
elif menuS == " X " or menuS == " x " :
dnt ( )
2020-05-25 19:35:24 -03:00
elif menuS == " T " or menuS == " t " : #Test feature fast access
2020-05-26 14:20:20 -03:00
print ( " This is a test access. \n " )
2020-05-29 11:52:29 -03:00
screensv ( )
2020-06-10 19:02:49 -03:00
#------------------------------------------REMOTE
2020-05-29 11:52:29 -03:00
def menuLN ( menuLL ) :
2020-05-29 16:06:45 -03:00
if menuLL == " I " or menuLL == " i " :
2020-05-29 11:52:29 -03:00
clear ( )
prt ( )
2020-06-10 19:02:49 -03:00
getnewinvoice ( )
2020-05-29 16:06:45 -03:00
elif menuLL == " P " or menuLL == " p " :
2020-05-29 11:52:29 -03:00
clear ( )
prt ( )
2020-05-29 16:06:45 -03:00
payinvoice ( )
2020-06-04 14:28:45 -03:00
elif menuLL == " Q " or menuLL == " q " :
2020-06-01 22:38:56 -03:00
clear ( )
prt ( )
2020-06-04 14:28:45 -03:00
channelbalance ( )
2020-06-11 16:40:02 -03:00
elif menuLL == " L " or menuLL == " l " :
clear ( )
prt ( )
listinvoice ( )
elif menuLL == " X " or menuLL == " x " :
clear ( )
prt ( )
listonchaintxs ( )
elif menuLL == " C " or menuLL == " c " :
clear ( )
prt ( )
channels ( )
2020-06-04 14:28:45 -03:00
elif menuLL == " B " or menuLL == " b " :
2020-06-01 22:38:56 -03:00
clear ( )
prt ( )
2020-06-04 14:28:45 -03:00
getnewaddress ( )
2020-06-01 22:38:56 -03:00
elif menuLL == " N " or menuLL == " n " :
clear ( )
prt ( )
2020-06-10 19:02:49 -03:00
getinfo ( )
2020-06-03 18:26:59 -03:00
elif menuLL == " O " or menuLL == " o " :
clear ( )
prt ( )
2020-06-10 19:02:49 -03:00
balanceOC ( )
2020-05-29 11:52:29 -03:00
elif menuLL == " R " or menuLL == " r " :
2020-06-11 16:40:02 -03:00
menuUserConn ( )
2020-06-10 19:02:49 -03:00
#------------------------------------------END REMOTE
#------------------------------------------LOCAL
def menuLNlocal ( menuLL ) :
if menuLL == " I " or menuLL == " i " :
clear ( )
prt ( )
localaddinvoice ( )
elif menuLL == " P " or menuLL == " p " :
clear ( )
prt ( )
localpayinvoice ( )
elif menuLL == " Q " or menuLL == " q " :
clear ( )
prt ( )
localchannelbalance ( )
2020-06-10 20:28:39 -03:00
elif menuLL == " L " or menuLL == " l " :
2020-06-10 19:02:49 -03:00
clear ( )
prt ( )
2020-06-10 20:28:39 -03:00
locallistinvoices ( )
elif menuLL == " X " or menuLL == " x " :
2020-06-10 19:02:49 -03:00
clear ( )
prt ( )
2020-06-10 20:28:39 -03:00
locallistchaintxns ( )
elif menuLL == " C " or menuLL == " c " :
clear ( )
prt ( )
locallistchannels ( )
elif menuLL == " B " or menuLL == " b " :
clear ( )
prt ( )
localnewaddress ( )
2020-06-10 19:02:49 -03:00
elif menuLL == " N " or menuLL == " n " :
clear ( )
prt ( )
localgetinfo ( )
elif menuLL == " O " or menuLL == " o " :
clear ( )
prt ( )
localbalanceOC ( )
elif menuLL == " W " or menuLL == " w " :
clear ( )
prt ( )
localgetnetworkinfo ( )
2020-06-19 17:51:28 -03:00
elif menuLL == " J " or menuLL == " j " :
while True :
try :
clear ( )
prt ( )
sysinfo ( )
close ( )
consoleLN ( )
t . sleep ( 5 )
except :
break
menu ( )
2020-06-10 19:02:49 -03:00
elif menuLL == " K " or menuLL == " k " :
clear ( )
prt ( )
localkeysend ( )
elif menuLL == " R " or menuLL == " r " :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-06-10 19:02:49 -03:00
#------------------------------------------END LOCAL
2020-05-25 19:35:24 -03:00
def menuB ( menuR ) : # Advanced access Menu
2020-05-18 22:25:55 -03:00
if menuR == " A " or menuR == " a " :
while True :
try :
clear ( )
prt ( )
2020-05-25 19:35:24 -03:00
sysinfo ( )
2020-05-18 22:25:55 -03:00
close ( )
console ( )
t . sleep ( 5 )
2020-06-13 19:23:52 -03:00
except :
break
2020-05-18 22:25:55 -03:00
advanceMenu ( )
elif menuR == " B " or menuR == " b " :
while True :
try :
clear ( )
prt ( )
close ( )
logoA ( )
tmp ( )
clear ( )
prt ( )
close ( )
logoB ( )
tmp ( )
clear ( )
prt ( )
close ( )
logoC ( )
tmp ( )
2020-06-13 19:23:52 -03:00
except :
break
2020-05-18 22:25:55 -03:00
advanceMenu ( )
2020-05-20 20:32:31 -03:00
elif menuR == " C " or menuR == " c " :
while True :
try :
clear ( )
prt ( )
2020-05-25 19:35:24 -03:00
sysinfo ( )
2020-05-20 20:32:31 -03:00
close ( )
decodeQR ( )
t . sleep ( 50 )
2020-06-13 19:23:52 -03:00
except :
break
2020-05-20 20:32:31 -03:00
advanceMenu ( )
2020-05-23 08:50:38 -03:00
elif menuR == " S " or menuR == " s " :
2020-05-25 19:35:24 -03:00
while True :
try :
clear ( )
prt ( )
close ( )
sysinfoDetail ( )
t . sleep ( 1 )
2020-06-13 19:23:52 -03:00
except :
break
2020-05-25 19:35:24 -03:00
advanceMenu ( )
2020-05-18 22:25:55 -03:00
elif menuR == " R " or menuR == " r " :
2020-05-27 16:19:42 -03:00
try :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-06-13 19:23:52 -03:00
except :
2020-05-27 16:19:42 -03:00
os . _exit ( 0 )
apisnd . close ( )
donation . close ( )
clone . close ( )
logos . close ( )
feed . close ( )
sysinf . close ( )
exit ( )
2020-06-11 19:49:41 -03:00
2020-06-11 18:46:16 -03:00
def menuBA ( menuR ) : # Advanced access Menu
if menuR == " A " or menuR == " a " :
while True :
try :
clear ( )
prt ( )
sysinfo ( )
close ( )
remoteconsole ( )
t . sleep ( 5 )
2020-06-13 19:23:52 -03:00
except :
break
2020-06-11 18:46:16 -03:00
advanceMenu ( )
elif menuR == " B " or menuR == " b " :
while True :
try :
clear ( )
prt ( )
close ( )
logoA ( )
tmp ( )
clear ( )
prt ( )
close ( )
logoB ( )
tmp ( )
clear ( )
prt ( )
close ( )
logoC ( )
tmp ( )
2020-06-13 19:23:52 -03:00
except :
break
2020-06-11 18:46:16 -03:00
advanceMenu ( )
elif menuR == " C " or menuR == " c " :
while True :
try :
clear ( )
prt ( )
sysinfo ( )
close ( )
decodeQR ( )
t . sleep ( 50 )
2020-06-13 19:23:52 -03:00
except :
break
2020-06-11 18:46:16 -03:00
advanceMenu ( )
elif menuR == " S " or menuR == " s " :
while True :
try :
clear ( )
prt ( )
close ( )
sysinfoDetail ( )
t . sleep ( 1 )
2020-06-13 19:23:52 -03:00
except :
break
2020-06-11 18:46:16 -03:00
advanceMenu ( )
elif menuR == " R " or menuR == " r " :
try :
menuSelection ( )
2020-06-13 19:23:52 -03:00
except :
2020-06-11 18:46:16 -03:00
os . _exit ( 0 )
apisnd . close ( )
donation . close ( )
clone . close ( )
logos . close ( )
feed . close ( )
sysinf . close ( )
exit ( )
2020-06-10 19:02:49 -03:00
2020-05-25 19:35:24 -03:00
def menuC ( menuO ) : # Donation access Menu
2020-05-24 14:15:12 -03:00
if menuO == " A " or menuO == " a " :
2020-05-23 08:50:38 -03:00
dntDev ( )
elif menuO == " B " or menuO == " b " :
dntTst ( )
2020-05-25 19:35:24 -03:00
elif menuO == " R " or menuO == " r " :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-24 14:15:12 -03:00
2020-05-25 19:35:24 -03:00
def menuD ( menuN ) : # Satnode access Menu
2020-05-23 08:50:38 -03:00
if menuN == " A " or menuN == " a " :
satnode ( )
elif menuN == " B " or menuN == " b " :
readFile ( )
2020-05-25 19:35:24 -03:00
elif menuN == " S " or menuN == " s " :
try :
close ( )
2020-05-26 14:20:20 -03:00
message = input ( " \n \033 [0;37;40mYour message it ' s a \033 [1;34;40mF \033 [0;37;40mile or a plain \033 [1;32;40mT \033 [0;37;40mext? \033 [1;34;40mF \033 [0;37;40m/ \033 [1;32;40mT \033 [0;37;40m: " )
if message == " F " or message == " f " :
try :
clear ( )
prt ( )
close ( )
apisenderFile ( )
2020-05-26 20:48:23 -03:00
t . sleep ( 30 )
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-06-13 19:23:52 -03:00
except :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-06-10 19:02:49 -03:00
elif message == " T " or message == " t " :
2020-05-26 14:20:20 -03:00
try :
clear ( )
prt ( )
close ( )
apisender ( )
2020-05-26 20:48:23 -03:00
t . sleep ( 30 )
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-06-13 19:23:52 -03:00
except :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-06-13 19:23:52 -03:00
except :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-23 08:50:38 -03:00
elif menuN == " C " or menuN == " c " :
print ( " \n \t This only will work on Linux or Unix systems. \n " )
a = input ( " Do we continue? Y/n: " )
if a == " Y " or a == " y " :
gitclone ( )
else :
2020-06-11 16:40:02 -03:00
menuSelection ( )
elif menuN == " D " or menuN == " d " :
menuSelection ( )
2020-05-24 14:15:12 -03:00
2020-05-25 19:35:24 -03:00
def menuE ( menuQ ) : # Dev Donation access Menu
2020-05-24 14:15:12 -03:00
if menuQ == " A " or menuQ == " a " :
2020-05-20 20:32:31 -03:00
try :
clear ( )
prt ( )
close ( )
donationPN ( )
t . sleep ( 50 )
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-06-13 19:23:52 -03:00
except :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-23 08:50:38 -03:00
elif menuQ == " B " or menuQ == " b " :
2020-05-20 20:32:31 -03:00
try :
clear ( )
prt ( )
close ( )
donationAddr ( )
t . sleep ( 50 )
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-06-13 19:23:52 -03:00
except :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-23 08:50:38 -03:00
elif menuQ == " C " or menuQ == " c " :
2020-05-20 20:32:31 -03:00
try :
clear ( )
prt ( )
close ( )
donationLN ( )
t . sleep ( 50 )
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-06-13 19:23:52 -03:00
except :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-25 19:35:24 -03:00
elif menuQ == " R " or menuQ == " r " :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-24 14:15:12 -03:00
2020-05-25 19:35:24 -03:00
def menuF ( menuV ) : # Tester Donation access Menu
2020-05-23 08:50:38 -03:00
if menuV == " A " or menuV == " a " :
try :
clear ( )
prt ( )
close ( )
donationAddrTst ( )
t . sleep ( 50 )
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-06-13 19:23:52 -03:00
except :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-23 08:50:38 -03:00
elif menuV == " B " or menuV == " b " :
try :
clear ( )
prt ( )
close ( )
donationLNTst ( )
t . sleep ( 50 )
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-06-13 19:23:52 -03:00
except :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-25 19:35:24 -03:00
elif menuV == " R " or menuV == " r " :
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-23 08:50:38 -03:00
2020-05-16 12:51:30 -03:00
#--------------------------------- End Main Menu execution --------------------------------
2020-05-24 14:15:12 -03:00
2020-06-02 22:59:20 -03:00
while True : # Loop
clear ( )
2020-06-11 19:49:41 -03:00
path = { " ip_port " : " " , " rpcuser " : " " , " rpcpass " : " " , " bitcoincli " : " " }
2020-06-11 16:40:02 -03:00
2020-05-29 11:52:29 -03:00
if os . path . isfile ( ' bclock.conf ' ) or os . path . isfile ( ' blnclock.conf ' ) : # Check if the file 'bclock.conf' is in the same folder
2020-05-16 00:21:47 -03:00
pathv = pickle . load ( open ( " bclock.conf " , " rb " ) ) # Load the file 'bclock.conf'
path = pathv # Copy the variable pathv to 'path'
2020-06-11 16:40:02 -03:00
menuSelection ( )
2020-05-16 00:21:47 -03:00
else :
prt ( )
2020-05-25 19:35:24 -03:00
print ( " Welcome to \033 [1;31;40mPyBLOCK \033 [0;37;40m \n \n " )
2020-06-11 16:40:02 -03:00
print ( " \n \t If you are going to use your local node leave IP:PORT/USER/PASSWORD in blank. \n " )
path [ ' ip_port ' ] = " http:// {} " . format ( input ( " Insert IP:PORT to access your remote Bitcoin-Cli node: " ) )
path [ ' rpcuser ' ] = input ( " RPC User: " )
path [ ' rpcpass ' ] = input ( " RPC Password: " )
print ( " \n \t Local Bitcoin Core Node connection. \n " )
path [ ' bitcoincli ' ] = input ( " Insert the Path to Bitcoin-Cli: " )
2020-06-10 19:02:49 -03:00
pickle . dump ( path , open ( " bclock.conf " , " wb " ) )
2020-06-11 16:40:02 -03:00
menuSelection ( )