def SettleTransaction(self,WavesAddress): #check transaction WavesAddress and WAVES : attchment BTCaddress and verify assetID # trnc = ModuleHandler.wrapper("/transactions/address/" + WavesAddress + "/limit/1") pywaves.setNode(node = pywaves.getNode() , chain = self.CHAIN) print("getNode(): ",pywaves.getNode()) trnc = pywaves.wrapper("/transactions/address/" + WavesAddress + "/limit/1" , host = self.TESTNET_NODE ) print('trnc',trnc) BTCaddress = trnc[0][0]['attachment'] if BTCaddress == '' : return {"result" : "there is not any transaction!" } assetDetail = ModuleHandler.wrapper("/assets/details/" + trnc[0][0]['assetId'] , host = self.TESTNET_NODE) print('assetDetail : ',assetDetail) decimals = assetDetail['decimals'] con = lite.connect('test.db') with con: cur = con.cursor() # cur.execute("SELECT MIN(cnt) FROM (SELECT COUNT(*) cnt FROM voting GROUP BY candidate) t;") # minimumMigdar = cur.fetchone() cur.execute("""SELECT * FROM addresses ORDER BY Inventory DESC """) #TODO change query for get min count con.commit() rows = cur.fetchall() cnt = 0 remind = amount*(10**((-1)*decimals)) #### Decimals Decimals Decimals while remind > 0: serializedWallet = rows[cnt][1] #ref to DB structure wallet = Wallet.deserialize(serializedWallet , network=BitcoinTestNet) inv = rows[cnt][3] if inv >= remind : blockcypher.simple_spend(from_privkey=ModuleHandler.encode( wallet.get_private_key_hex() ) , to_address = BTCaddress , to_satoshis = remind) cur.execute(""" UPDATE addresses SET Inventory = ? WHERE WavesAddress = ? """, ( inv - remind , WavesAddress )) else : blockcypher.simple_spend(from_privkey=ModuleHandler.encode( wallet.get_private_key_hex() ) , to_address = BTCaddress , to_satoshis = inv) remind = remind - inv cur.execute(""" UPDATE addresses SET Inventory = ? WHERE WavesAddress = ? """, ( 0 , WavesAddress )) con.commit() return res
def __init__(self): self.nickname = cmdArgs.nick self.commandChar = '.' self.realname = self.nickname self.username = self.nickname self.channels = {} self.userModes = {} self.fingerReply = GlobalVars.finger self.versionName = self.nickname self.versionNum = GlobalVars.version self.versionEnv = platform.platform() self.sourceURL = GlobalVars.source # dataStore has to be before moduleHandler dataStorePath = os.path.join('Data', cmdArgs.server) if not os.path.exists(dataStorePath): os.makedirs(dataStorePath) self.dataStore = shelve.open(os.path.join(dataStorePath, 'shelve.db'), protocol=2, writeback=True) self.moduleHandler = ModuleHandler.ModuleHandler(self) self.moduleHandler.loadAll()
def VerifyEntry(): # print( request.path , request.full_path , request.script_root , request.base_url , request.url ) # print( request.url_root , request.endpoint , request.method , request.cookies , request.data ) # print( request.headers , request.args , request.form , request.remote_addr ) if not request.json or not 'Type' in request.json or not 'WavesAddress' in request.json : abort(400) Type = request.json['Type'] WavesAddress = request.json['WavesAddress'] coin = ModuleHandler.str_to_class('Modules.'+Type, Type) res = coin.VerifyWallet(WavesAddress) print(res) response = app.response_class( response=json.dumps(res), status=200, mimetype='application/json' ) return response
def initConnections(self): self.connect(self.connectSettingsAction, QtCore.SIGNAL("triggered()"), self.showConnectDialog) self.connect(self.connectAction, QtCore.SIGNAL("triggered()"), self.connectToFeeServers) self.connect(self.disconnectAction, QtCore.SIGNAL("triggered()"), self.disconnectFromFeeServers) self.dcsInterface = DcsInterfaceThreadWrapper(DcsInterface()) self.feeCardHandler = FeeCardHandler(self.dcsInterface) self.truCardHandler = TruCardHandler(self.dcsInterface) self.rcuHandler = RcuHandler(self.dcsInterface) self.moduleHandler = ModuleHandler(self.dcsInterface) self.detectorHandler = DetectorHandler(self.dcsInterface) self.logHandler = LogHandler(self.dcsInterface) self.databaseHandler = DatabaseHandler(self.dcsInterface) self.connect(self.feeCardHandler, QtCore.SIGNAL("fetchLog"), self.fetchLog) self.connect(self.truCardHandler, QtCore.SIGNAL("fetchLog"), self.fetchLog) self.connect(self.rcuHandler, QtCore.SIGNAL("fetchLog"), self.logHandler.getLogString) self.connect(self.moduleHandler, QtCore.SIGNAL("fetchLog"), self.fetchLog) self.connect(self.detectorHandler, QtCore.SIGNAL("fetchLog"), self.fetchLog) self.connect(self.logHandler, QtCore.SIGNAL("gotLog"), self.updateLogViewer) self.connect(self, QtCore.SIGNAL("viewFee"), self.showFeeDialog) self.connect(self, QtCore.SIGNAL("viewdTru"), self.showTruDialog) self.connect(self, QtCore.SIGNAL("viewRcu"), self.showRcuDialog) self.connect(self, QtCore.SIGNAL("toggleFee"), self.feeCardHandler.toggleOnOff) self.connect(self, QtCore.SIGNAL("toggleTru"), self.truCardHandler.toggleOnOff) self.connect(self, QtCore.SIGNAL("rcuUpdateStatus"), self.rcuHandler.updateStatus) self.connect(self, QtCore.SIGNAL("rcuToggleOnOff"), self.rcuHandler.toggleOnOff) # self.connect(self, QtCore.SIGNAL("turnOnModule"), self.moduleHandler.turnOn) self.connect(self, QtCore.SIGNAL("turnOnModule"), self.goReady) self.connect(self, QtCore.SIGNAL("shutdownModule"), self.moduleHandler.shutdown) self.connect(self, QtCore.SIGNAL("showModuleProperties"), self.showModulePropertiesDialog) self.connect(self, QtCore.SIGNAL("configureElectronicsModule"), self.showElectronicsConfigDialog) self.connect(self, QtCore.SIGNAL("enableTriggerModule"), self.moduleHandler.enableTrigger) self.connect(self, QtCore.SIGNAL("disableTriggerModule"), self.moduleHandler.disableTrigger) self.connect(self, QtCore.SIGNAL("FeeServerStarted"), self.enableConnectedFeeServers) self.connect(self.detectorHandler, QtCore.SIGNAL("FeeServerStarted"), self.enableConnectedFeeServers) for i in range(PHOS_MODS): self.connect(self.moduleTabs[i], QtCore.SIGNAL("toggleFee"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("viewFee"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("toggleTru"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("viewTru"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("rcuUpdateStatus"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("rcuToggleOnOff"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("viewRcu"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("turnOnModule"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("shutdownModule"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("showModuleProperties"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("configureElectronicsModule"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("enableTriggerModule"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("disableTriggerModule"), self.extractSignal) self.connect(self, QtCore.SIGNAL("cardToggled" + str(i)), self.moduleTabs[i].updateFeeCard) self.connect(self, QtCore.SIGNAL("feeStateUpdated" + str(i)), self.moduleTabs[i].updateFeeCard) self.connect(self, QtCore.SIGNAL("statusUpdated" + str(i)), self.moduleTabs[i].updateRcu) self.connect(self.feeCardHandler, QtCore.SIGNAL("cardToggled"), self.translateFeeSignal) self.connect(self.rcuHandler, QtCore.SIGNAL("cardToggled"), self.translateFeeSignal) self.connect(self.rcuHandler, QtCore.SIGNAL("feeStateUpdated"), self.translateFeeSignal) self.connect(self.rcuHandler, QtCore.SIGNAL("statusUpdated"), self.translateRcuSignal)
class PhosGui(QtGui.QMainWindow): """The main gui""" def __init__(self, parent=None): super(QtGui.QMainWindow, self).__init__(parent) print 'init phos gui' self.resize(1120, 880) self.initTabs() self.initMenuBar() self.initDialogs() self.setCentralWidget(self.tabControls) self.initConnections() self.rcuDialog = RcuDialog() self.configureElectronicsDialog = ConfigureElectronicsDialog() def initTabs(self): self.tabControls = QtGui.QTabWidget(self) self.moduleTabs = [None]*PHOS_MODS for i in range(PHOS_MODS): self.moduleTabs[i] = ModuleTabWidget(i,self) self.tabControls.addTab(self.moduleTabs[i], "Module " + str(i)) self.moduleTabs[i].setEnabled(0) self.phosTab = PhosTabWidget(self) self.tabControls.addTab(self.phosTab, "PHOS Detector") def initMenuBar(self): self.connectMenu = self.menuBar().addMenu("&Connect") self.settingsMenu = self.menuBar().addMenu("&Settings") self.connectAction = QtGui.QAction("Connect &Now", self) self.connectSettingsAction = QtGui.QAction("Connection &Settings...", self) self.disconnectAction = QtGui.QAction("&Disconnect", self) self.connectMenu.addAction(self.connectAction) self.connectMenu.addAction(self.disconnectAction) self.connectMenu.addAction(self.connectSettingsAction) def initDialogs(self): self.feeServerNames = [None]*PHOS_MODS self.connectSettingsDialog = ConnectSettingsDialog(self.feeServerNames) def initConnections(self): self.connect(self.connectSettingsAction, QtCore.SIGNAL("triggered()"), self.showConnectDialog) self.connect(self.connectAction, QtCore.SIGNAL("triggered()"), self.connectToFeeServers) self.connect(self.disconnectAction, QtCore.SIGNAL("triggered()"), self.disconnectFromFeeServers) self.dcsInterface = DcsInterfaceThreadWrapper(DcsInterface()) self.feeCardHandler = FeeCardHandler(self.dcsInterface) self.truCardHandler = TruCardHandler(self.dcsInterface) self.rcuHandler = RcuHandler(self.dcsInterface) self.moduleHandler = ModuleHandler(self.dcsInterface) self.detectorHandler = DetectorHandler(self.dcsInterface) self.logHandler = LogHandler(self.dcsInterface) self.databaseHandler = DatabaseHandler(self.dcsInterface) self.connect(self.feeCardHandler, QtCore.SIGNAL("fetchLog"), self.fetchLog) self.connect(self.truCardHandler, QtCore.SIGNAL("fetchLog"), self.fetchLog) self.connect(self.rcuHandler, QtCore.SIGNAL("fetchLog"), self.logHandler.getLogString) self.connect(self.moduleHandler, QtCore.SIGNAL("fetchLog"), self.fetchLog) self.connect(self.detectorHandler, QtCore.SIGNAL("fetchLog"), self.fetchLog) self.connect(self.logHandler, QtCore.SIGNAL("gotLog"), self.updateLogViewer) self.connect(self, QtCore.SIGNAL("viewFee"), self.showFeeDialog) self.connect(self, QtCore.SIGNAL("viewdTru"), self.showTruDialog) self.connect(self, QtCore.SIGNAL("viewRcu"), self.showRcuDialog) self.connect(self, QtCore.SIGNAL("toggleFee"), self.feeCardHandler.toggleOnOff) self.connect(self, QtCore.SIGNAL("toggleTru"), self.truCardHandler.toggleOnOff) self.connect(self, QtCore.SIGNAL("rcuUpdateStatus"), self.rcuHandler.updateStatus) self.connect(self, QtCore.SIGNAL("rcuToggleOnOff"), self.rcuHandler.toggleOnOff) # self.connect(self, QtCore.SIGNAL("turnOnModule"), self.moduleHandler.turnOn) self.connect(self, QtCore.SIGNAL("turnOnModule"), self.goReady) self.connect(self, QtCore.SIGNAL("shutdownModule"), self.moduleHandler.shutdown) self.connect(self, QtCore.SIGNAL("showModuleProperties"), self.showModulePropertiesDialog) self.connect(self, QtCore.SIGNAL("configureElectronicsModule"), self.showElectronicsConfigDialog) self.connect(self, QtCore.SIGNAL("enableTriggerModule"), self.moduleHandler.enableTrigger) self.connect(self, QtCore.SIGNAL("disableTriggerModule"), self.moduleHandler.disableTrigger) self.connect(self, QtCore.SIGNAL("FeeServerStarted"), self.enableConnectedFeeServers) self.connect(self.detectorHandler, QtCore.SIGNAL("FeeServerStarted"), self.enableConnectedFeeServers) for i in range(PHOS_MODS): self.connect(self.moduleTabs[i], QtCore.SIGNAL("toggleFee"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("viewFee"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("toggleTru"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("viewTru"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("rcuUpdateStatus"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("rcuToggleOnOff"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("viewRcu"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("turnOnModule"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("shutdownModule"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("showModuleProperties"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("configureElectronicsModule"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("enableTriggerModule"), self.extractSignal) self.connect(self.moduleTabs[i], QtCore.SIGNAL("disableTriggerModule"), self.extractSignal) self.connect(self, QtCore.SIGNAL("cardToggled" + str(i)), self.moduleTabs[i].updateFeeCard) self.connect(self, QtCore.SIGNAL("feeStateUpdated" + str(i)), self.moduleTabs[i].updateFeeCard) self.connect(self, QtCore.SIGNAL("statusUpdated" + str(i)), self.moduleTabs[i].updateRcu) self.connect(self.feeCardHandler, QtCore.SIGNAL("cardToggled"), self.translateFeeSignal) self.connect(self.rcuHandler, QtCore.SIGNAL("cardToggled"), self.translateFeeSignal) self.connect(self.rcuHandler, QtCore.SIGNAL("feeStateUpdated"), self.translateFeeSignal) self.connect(self.rcuHandler, QtCore.SIGNAL("statusUpdated"), self.translateRcuSignal) def translateFeeSignal(self, *args): feeId = args[1] res = args[2] module = feeId/(RCUS_PER_MODULE*CARDS_PER_RCU) self.emit(QtCore.SIGNAL(args[0] + str(module)), feeId, res) print args[0] def translateRcuSignal(self, *args): rcuId = args[1] res = args[2] module = rcuId/(RCUS_PER_MODULE) self.emit(QtCore.SIGNAL(args[0] + str(module)), rcuId, res) print args[0] def extractSignal(self, *args): params = [] for i in range(1, len(args)): params.append(args[i]) self.emit(QtCore.SIGNAL(args[0]), *params) # def rcuUpdateStatus(self, signal, rcuId): # self.emit(QtCore.SIGNAL("rcuUpdateStatus"), rcuId) # def rcuUpdateStatus(self, signal, rcuId): # self.emit(QtCore.SIGNAL("rcuUpdateStatus"), rcuId) # def rcuUpdateStatus(self, signal, rcuId): # self.emit(QtCore.SIGNAL("rcuUpdateStatus"), rcuId) def showFeeDialog(self, feeId): print 'Dialog not yet made...' def showTruDialog(self, feeId): print 'Dialog not yet made...' def showRcuDialog(self, rcuId): moduleId = 0 self.rcuDialog.start(self.rcuHandler, rcuId, moduleId) def showModulePropertiesDialog(self, moduleId): print 'Dialog not yet made...' def showElectronicsConfigDialog(self, moduleId): self.configureElectronicsDialog.start(self.moduleHandler, self.databaseHandler, moduleId) def showConnectDialog(self): self.connectSettingsDialog.exec_() def connectToFeeServers(self): feeServerNames, feeServerEnabled = self.connectSettingsDialog.getFeeServers() self.detectorHandler.connectToFeeServers(feeServerNames, feeServerEnabled) def disconnectFromFeeServers(self): self.detectorHandler.disconnectFromFeeServers() def enableConnectedFeeServers(self, res): feeServerNames, feeServerEnabled = self.connectSettingsDialog.getFeeServers() for i in range(PHOS_MODS): for j in range(RCUS_PER_MODULE): if feeServerEnabled[i*(RCUS_PER_MODULE) + j] == True: if res > 0: self.moduleTabs[i].enableRcu(True, j) self.moduleTabs[i].setEnabled(True) # else: # self.moduleTabs[i].enableRcu(False, j) # self.moduleTabs[i].SetEnabled(False) #TODO: fix this such that the RCU is disabled on no connection # else: # self.moduleTabs[i].enableRcu(False, j) # Need to enable TORs also ... def fetchLog(self, signal, moduleId): self.logHandler.getLogString(moduleId) def updateLogViewer(self, tmpSignal, logString): for i in range(PHOS_MODS): self.moduleTabs[i].addLogString(logString) def goReady(self, moduleId): self.moduleHandler.shutdown(moduleId) self.configureElectronicsDialog.start(self.moduleHandler, self.databaseHandler, moduleId, True) self.configureElectronicsDialog.doConfigure() self.moduleHandler.disableTrigger(moduleId) self.moduleHandler.enableTrigger(moduleId)
def CreateWallet(self,WavesAddress): con = lite.connect('test.db') with con: cur = con.cursor() cur.execute("""SELECT id FROM addressid WHERE WavesAddress=:adr""", {"adr": WavesAddress}) row = cur.fetchone() if len(row)>0 : BTCWallet = get_wallet_addresses(wallet_name='Noay'+ str(row[0]), api_key=self.APIKEY, coin_symbol=self.coin_symbol) cur.execute("""SELECT * FROM addresses WHERE WavesAddress=:adr""", {"adr": WavesAddress}) row = cur.fetchone() wallet = Wallet.deserialize(row[1] , network=BitcoinTestNet) ModuleHandler.encode(wallet.get_public_key_hex()) con.commit() return { 'addresses' : BTCWallet['addresses'][0] , 'public_key' : ModuleHandler.encode( wallet.get_public_key_hex() ) } con.commit() newWallet = Wallet.new_random_wallet(network=BitcoinTestNet) # private_key_hex = newWallet.get_private_key_hex() # public_key_hex = newWallet.get_public_key_hex() serializedWallet = newWallet.serialize() newAddress = newWallet.to_address() # print('newAddress : ',newAddress) con = lite.connect('test.db') with con: cur = con.cursor() cur.execute("CREATE TABLE IF NOT EXISTS addressid(id INTEGER PRIMARY KEY AUTOINCREMENT, WavesAddress TEXT NOT NULL )") cur.execute("""INSERT INTO addressid (WavesAddress) VALUES(?)""",(WavesAddress,)) cur.execute("""SELECT id FROM addressid WHERE WavesAddress=:adr""", {"adr": WavesAddress}) con.commit() row = cur.fetchone() # print("row[0] : ",row[0]) #TODO handle {'error': 'Error: wallet exists'} BTCWallet = get_wallet_addresses(wallet_name='Noay'+ str(row[0]), api_key=self.APIKEY, coin_symbol=self.coin_symbol) try: s = BTCWallet['error'] print('BTCWallet' , 0) BTCWallet = create_wallet_from_address(wallet_name= 'Noay'+ str(row[0]), address=newAddress, api_key=self.APIKEY , coin_symbol=self.coin_symbol) #TODO SAVE WAVESAddress , serializeWlt in DB except Exception as e: con = lite.connect('test.db') print('BTCWallet' , 1) with con: cur = con.cursor() cur.execute("CREATE TABLE IF NOT EXISTS addresses(WavesAddress TEXT , serializedWallet TEXT , BTCaddress TEXT , Inventory REAL)") cur.execute("""INSERT INTO addresses VALUES(?,?,?,0)""",(WavesAddress,serializedWallet,BTCWallet['addresses'][0])) con.commit() # con.close() # print('BTCWallet' , BTCWallet) return { 'addresses' : BTCWallet['addresses'][0] , 'public_key' : ModuleHandler.encode( newWallet.get_public_key_hex() ) } # public key btc