|  |  |  | @ -81,22 +81,29 @@ class Plugin(BalPlugin,Logger): | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     @hook | 
		
	
		
			
				|  |  |  |  |     def init_qt(self,gui_object): | 
		
	
		
			
				|  |  |  |  |         print("********************************************************************************************************************") | 
		
	
		
			
				|  |  |  |  |         self.logger.info("HOOK init qt")    | 
		
	
		
			
				|  |  |  |  |         print("logger") | 
		
	
		
			
				|  |  |  |  |         try: | 
		
	
		
			
				|  |  |  |  |             self.gui_object=gui_object | 
		
	
		
			
				|  |  |  |  |             print(dir(gui_object)) | 
		
	
		
			
				|  |  |  |  |             for window in gui_object.windows: | 
		
	
		
			
				|  |  |  |  |                 wallet = window.wallet | 
		
	
		
			
				|  |  |  |  |                 if wallet: | 
		
	
		
			
				|  |  |  |  |                     window.show_warning(_('Please restart Electrum to activate the BAL plugin'), title=_('Success')) | 
		
	
		
			
				|  |  |  |  |                     return | 
		
	
		
			
				|  |  |  |  |                 w = BalWindow(self,window) | 
		
	
		
			
				|  |  |  |  |                 print("windows.winid",window.winid) | 
		
	
		
			
				|  |  |  |  |                 self.bal_windows[window.winId]= w | 
		
	
		
			
				|  |  |  |  |                 for child in window.children(): | 
		
	
		
			
				|  |  |  |  |                     if isinstance(child,QMenuBar): | 
		
	
		
			
				|  |  |  |  |                         print("found menubar") | 
		
	
		
			
				|  |  |  |  |                         for menu_child in child.children(): | 
		
	
		
			
				|  |  |  |  |                             if isinstance(menu_child,QMenu): | 
		
	
		
			
				|  |  |  |  |                                 print("found qmenu") | 
		
	
		
			
				|  |  |  |  |                                 try: | 
		
	
		
			
				|  |  |  |  |                                     if menu_child.title()==_("&Tools"): | 
		
	
		
			
				|  |  |  |  |                                         print("found tools") | 
		
	
		
			
				|  |  |  |  |                                         w.init_menubar_tools(menu_child) | 
		
	
		
			
				|  |  |  |  |                                              | 
		
	
		
			
				|  |  |  |  |                                 except Exception as e: | 
		
	
	
		
			
				
					
					|  |  |  | @ -104,8 +111,8 @@ class Plugin(BalPlugin,Logger): | 
		
	
		
			
				|  |  |  |  |                                     self.logger.error(("except:",menu_child.text())) | 
		
	
		
			
				|  |  |  |  |                                      | 
		
	
		
			
				|  |  |  |  |         except Exception as e: | 
		
	
		
			
				|  |  |  |  |             raise e | 
		
	
		
			
				|  |  |  |  |             self.logger.error("Error loading plugini {}".format(e)) | 
		
	
		
			
				|  |  |  |  |             raise e | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					
					|  |  |  | @ -118,15 +125,16 @@ class Plugin(BalPlugin,Logger): | 
		
	
		
			
				|  |  |  |  |         sb.addPermanentWidget(b) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     @hook | 
		
	
		
			
				|  |  |  |  |     def init_menubar_tools(self,window,tools_menu): | 
		
	
		
			
				|  |  |  |  |     def init_menubar(self,window): | 
		
	
		
			
				|  |  |  |  |         self.logger.info("HOOK init_menubar") | 
		
	
		
			
				|  |  |  |  |         w = self.get_window(window) | 
		
	
		
			
				|  |  |  |  |         w.init_menubar_tools(tools_menu) | 
		
	
		
			
				|  |  |  |  |         w.init_menubar_tools(window.tools_menu) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     @hook | 
		
	
		
			
				|  |  |  |  |     def load_wallet(self,wallet, main_window): | 
		
	
		
			
				|  |  |  |  |         self.logger.info("HOOK load wallet") | 
		
	
		
			
				|  |  |  |  |         w = self.get_window(main_window) | 
		
	
		
			
				|  |  |  |  |         print(dir(w))  | 
		
	
		
			
				|  |  |  |  |         w.wallet = wallet | 
		
	
		
			
				|  |  |  |  |         w.init_will() | 
		
	
		
			
				|  |  |  |  |         w.willexecutors = Willexecutors.get_willexecutors(self, update=False, bal_window=w) | 
		
	
	
		
			
				
					
					|  |  |  | @ -170,8 +178,116 @@ class Plugin(BalPlugin,Logger): | 
		
	
		
			
				|  |  |  |  |             return | 
		
	
		
			
				|  |  |  |  |         self.extension = bool(keystore.get_passphrase(password)) | 
		
	
		
			
				|  |  |  |  |         return keystore.get_seed(password) | 
		
	
		
			
				|  |  |  |  |     def settings_dialog(self,window,wallet): | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         d = BalDialog(window, self.get_window_title("Settings")) | 
		
	
		
			
				|  |  |  |  |         d.setMinimumSize(100, 200) | 
		
	
		
			
				|  |  |  |  |         qicon=qt_resources.read_QPixmap("bal32x32.png") | 
		
	
		
			
				|  |  |  |  |         lbl_logo = QLabel() | 
		
	
		
			
				|  |  |  |  |         lbl_logo.setPixmap(qicon) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         #heir_locktime_time = QSpinBox() | 
		
	
		
			
				|  |  |  |  |         #heir_locktime_time.setMinimum(0) | 
		
	
		
			
				|  |  |  |  |         #heir_locktime_time.setMaximum(3650) | 
		
	
		
			
				|  |  |  |  |         #heir_locktime_time.setValue(int(self.config_get(BalPlugin.LOCKTIME_TIME))) | 
		
	
		
			
				|  |  |  |  |         #def on_heir_locktime_time(): | 
		
	
		
			
				|  |  |  |  |         #    value = heir_locktime_time.value() | 
		
	
		
			
				|  |  |  |  |         #    self.config.set_key(BalPlugin.LOCKTIME_TIME,value,save=True) | 
		
	
		
			
				|  |  |  |  |         #heir_locktime_time.valueChanged.connect(on_heir_locktime_time) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         ##heir_locktimedelta_time = QSpinBox() | 
		
	
		
			
				|  |  |  |  |         #heir_locktimedelta_time.setMinimum(0) | 
		
	
		
			
				|  |  |  |  |         #heir_locktimedelta_time.setMaximum(3650) | 
		
	
		
			
				|  |  |  |  |         #heir_locktimedelta_time.setValue(int(self.config_get(BalPlugin.LOCKTIMEDELTA_TIME))) | 
		
	
		
			
				|  |  |  |  |         #def on_heir_locktime_time(): | 
		
	
		
			
				|  |  |  |  |             #value = heir_locktime_time.value | 
		
	
		
			
				|  |  |  |  |             #self.config.set_key(BalPlugin.LOCKTIME_TIME,value,save=True) | 
		
	
		
			
				|  |  |  |  |         #heir_locktime_time.valueChanged.connect(on_heir_locktime_time) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         #heir_locktime_blocks = QSpinBox() | 
		
	
		
			
				|  |  |  |  |         #heir_locktime_blocks.setMinimum(0) | 
		
	
		
			
				|  |  |  |  |         #heir_locktime_blocks.setMaximum(144*3650) | 
		
	
		
			
				|  |  |  |  |         #heir_locktime_blocks.setValue(int(self.config_get(BalPlugin.LOCKTIME_BLOCKS))) | 
		
	
		
			
				|  |  |  |  |         #def on_heir_locktime_blocks(): | 
		
	
		
			
				|  |  |  |  |             #value = heir_locktime_blocks.value() | 
		
	
		
			
				|  |  |  |  |             #self.config.set_key(BalPlugin.LOCKTIME_BLOCKS,value,save=True) | 
		
	
		
			
				|  |  |  |  |         #heir_locktime_blocks.valueChanged.connect(on_heir_locktime_blocks) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         #heir_locktimedelta_blocks = QSpinBox() | 
		
	
		
			
				|  |  |  |  |         #heir_locktimedelta_blocks.setMinimum(0) | 
		
	
		
			
				|  |  |  |  |         #heir_locktimedelta_blocks.setMaximum(144*3650) | 
		
	
		
			
				|  |  |  |  |         #heir_locktimedelta_blocks.setValue(int(self.config_get(BalPlugin.LOCKTIMEDELTA_BLOCKS))) | 
		
	
		
			
				|  |  |  |  |         #def on_heir_locktimedelta_blocks(): | 
		
	
		
			
				|  |  |  |  |             #value = heir_locktimedelta_blocks.value() | 
		
	
		
			
				|  |  |  |  |             #self.config.set_key(BalPlugin.LOCKTIMEDELTA_TIME,value,save=True) | 
		
	
		
			
				|  |  |  |  |         #heir_locktimedelta_blocks.valueChanged.connect(on_heir_locktimedelta_blocks) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         #heir_tx_fees = QSpinBox() | 
		
	
		
			
				|  |  |  |  |         #heir_tx_fees.setMinimum(1) | 
		
	
		
			
				|  |  |  |  |         #heir_tx_fees.setMaximum(10000) | 
		
	
		
			
				|  |  |  |  |         #heir_tx_fees.setValue(int(self.config_get(BalPlugin.TX_FEES))) | 
		
	
		
			
				|  |  |  |  |         #def on_heir_tx_fees(): | 
		
	
		
			
				|  |  |  |  |             #value = heir_tx_fees.value() | 
		
	
		
			
				|  |  |  |  |             #self.config.set_key(BalPlugin.TX_FEES,value,save=True) | 
		
	
		
			
				|  |  |  |  |         #heir_tx_fees.valueChanged.connect(on_heir_tx_fees) | 
		
	
		
			
				|  |  |  |  |         #heir_broadcast = bal_checkbox(self, BalPlugin.BROADCAST) | 
		
	
		
			
				|  |  |  |  |         #heir_ask_broadcast = bal_checkbox(self, BalPlugin.ASK_BROADCAST) | 
		
	
		
			
				|  |  |  |  |         #heir_invalidate = bal_checkbox(self, BalPlugin.INVALIDATE) | 
		
	
		
			
				|  |  |  |  |         #heir_ask_invalidate = bal_checkbox(self, BalPlugin.ASK_INVALIDATE) | 
		
	
		
			
				|  |  |  |  |         #heir_preview = bal_checkbox(self, BalPlugin.PREVIEW) | 
		
	
		
			
				|  |  |  |  |         heir_ping_willexecutors = bal_checkbox(self, BalPlugin.PING_WILLEXECUTORS) | 
		
	
		
			
				|  |  |  |  |         heir_ask_ping_willexecutors = bal_checkbox(self, BalPlugin.ASK_PING_WILLEXECUTORS) | 
		
	
		
			
				|  |  |  |  |         #print("setkey broadcast") | 
		
	
		
			
				|  |  |  |  |         #self.config.set_key(BalPlugin.BROADCAST,True) | 
		
	
		
			
				|  |  |  |  |         heir_no_willexecutor = bal_checkbox(self, BalPlugin.NO_WILLEXECUTOR) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |          | 
		
	
		
			
				|  |  |  |  |         heir_hide_replaced = bal_checkbox(self,BalPlugin.HIDE_REPLACED,self) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         heir_hide_invalidated = bal_checkbox(self,BalPlugin.HIDE_INVALIDATED,self) | 
		
	
		
			
				|  |  |  |  |         #heir_allow_repush = bal_checkbox(self,BalPlugin.ALLOW_REPUSH,self) | 
		
	
		
			
				|  |  |  |  |         heir_repush = QPushButton("Rebroadcast transactions") | 
		
	
		
			
				|  |  |  |  |         heir_repush.clicked.connect(partial(self.broadcast_transactions,True)) | 
		
	
		
			
				|  |  |  |  |         grid=QGridLayout(d) | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Refresh Time Days",heir_locktime_time,0,"Delta days for inputs to  be invalidated and transactions resubmitted") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Refresh Blocks",heir_locktime_blocks,1,"Delta blocks for inputs to be invalidated and transaction resubmitted") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Transaction fees",heir_tx_fees,1,"Default transaction fees") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Broadcast transactions",heir_broadcast,3,"") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid," - Ask before",heir_ask_broadcast,4,"") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Invalidate transactions",heir_invalidate,5,"") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid," - Ask before",heir_ask_invalidate,6,"") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Show preview before sign",heir_preview,7,"") | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         #grid.addWidget(lbl_logo,0,0)  | 
		
	
		
			
				|  |  |  |  |         add_widget(grid,"Hide Replaced",heir_hide_replaced, 1, "Hide replaced transactions from will detail and list") | 
		
	
		
			
				|  |  |  |  |         add_widget(grid,"Hide Invalidated",heir_hide_invalidated ,2,"Hide invalidated transactions from will detail and list") | 
		
	
		
			
				|  |  |  |  |         add_widget(grid,"Ping Willexecutors",heir_ping_willexecutors,3,"Ping willexecutors to get payment info before compiling will") | 
		
	
		
			
				|  |  |  |  |         add_widget(grid," - Ask before",heir_ask_ping_willexecutors,4,"Ask before to ping willexecutor") | 
		
	
		
			
				|  |  |  |  |         add_widget(grid,"Backup Transaction",heir_no_willexecutor,5,"Add transactions without willexecutor") | 
		
	
		
			
				|  |  |  |  |         grid.addWidget(heir_repush,6,0) | 
		
	
		
			
				|  |  |  |  |         grid.addWidget(HelpButton("Broadcast all transactions to willexecutors including those already pushed"),6,2) | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Max Allowed TimeDelta Days",heir_locktimedelta_time,8,"") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Max Allowed BlocksDelta",heir_locktimedelta_blocks,9,"") | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         if ret := bool(d.exec()): | 
		
	
		
			
				|  |  |  |  |             try: | 
		
	
		
			
				|  |  |  |  |                 self.update_all() | 
		
	
		
			
				|  |  |  |  |                 return ret | 
		
	
		
			
				|  |  |  |  |             except: | 
		
	
		
			
				|  |  |  |  |                 pass | 
		
	
		
			
				|  |  |  |  |         return False | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     def broadcast_transactions(self,force): | 
		
	
		
			
				|  |  |  |  |         for k,w in self.bal_windows.items(): | 
		
	
		
			
				|  |  |  |  |             print(dir(w)) | 
		
	
		
			
				|  |  |  |  |             w.broadcast_transactions(force) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     def update_all(self): | 
		
	
		
			
				|  |  |  |  |         for k,w in self.bal_windows.items(): | 
		
	
		
			
				|  |  |  |  |             w.update_all() | 
		
	
		
			
				|  |  |  |  |     def get_window_title(self,title): | 
		
	
		
			
				|  |  |  |  |         return _('BAL - ') + _(title)  | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     | 
		
	
		
			
				|  |  |  |  | class shown_cv(): | 
		
	
		
			
				|  |  |  |  |     _type= bool | 
		
	
		
			
				|  |  |  |  |     def __init__(self,value): | 
		
	
	
		
			
				
					
					|  |  |  | @ -212,11 +328,22 @@ class BalWindow(Logger): | 
		
	
		
			
				|  |  |  |  |             tab.tab_pos = len(tabs) | 
		
	
		
			
				|  |  |  |  |             if tab.is_shown_cv: | 
		
	
		
			
				|  |  |  |  |                 tabs.addTab(tab, icon, description.replace("&", "")) | 
		
	
		
			
				|  |  |  |  |          | 
		
	
		
			
				|  |  |  |  |         def add_toggle_action(tab): | 
		
	
		
			
				|  |  |  |  |             is_shown = tab.is_shown_cv.get() | 
		
	
		
			
				|  |  |  |  |             tab.menu_action = self.window.view_menu.addAction(tab.tab_description, lambda: self.window.toggle_tab(tab)) | 
		
	
		
			
				|  |  |  |  |             tab.menu_action.setCheckable(True) | 
		
	
		
			
				|  |  |  |  |             tab.menu_action.setChecked(is_shown) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         print("add tab heir",self.heirs_tab); | 
		
	
		
			
				|  |  |  |  |         add_optional_tab(self.window.tabs, self.heirs_tab, qt_resources.read_QIcon("heir.png"), _("&Heirs")) | 
		
	
		
			
				|  |  |  |  |         add_optional_tab(self.window.tabs, self.will_tab, qt_resources.read_QIcon("will.png"), _("&Will")) | 
		
	
		
			
				|  |  |  |  |         tools_menu.addSeparator() | 
		
	
		
			
				|  |  |  |  |         self.tools_menu.willexecutors_action = tools_menu.addAction(_("&Will-Executors"), self.show_willexecutor_dialog) | 
		
	
		
			
				|  |  |  |  |         self.window.view_menu.addSeparator() | 
		
	
		
			
				|  |  |  |  |         add_toggle_action(self.heirs_tab) | 
		
	
		
			
				|  |  |  |  |         add_toggle_action(self.will_tab) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     def load_willitems(self): | 
		
	
		
			
				|  |  |  |  |         self.willitems={} | 
		
	
	
		
			
				
					
					|  |  |  | @ -262,8 +389,6 @@ class BalWindow(Logger): | 
		
	
		
			
				|  |  |  |  |             self.bal_plugin.validate_will_settings(self.will_settings) | 
		
	
		
			
				|  |  |  |  |             self.heir_list.update_will_settings() | 
		
	
		
			
				|  |  |  |  |                  | 
		
	
		
			
				|  |  |  |  |     def get_window_title(self,title): | 
		
	
		
			
				|  |  |  |  |         return _('BAL - ') + _(title)  | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     def show_willexecutor_dialog(self): | 
		
	
		
			
				|  |  |  |  |         self.willexecutor_dialog = WillExecutorDialog(self) | 
		
	
	
		
			
				
					
					|  |  |  | @ -271,6 +396,8 @@ class BalWindow(Logger): | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     def create_heirs_tab(self): | 
		
	
		
			
				|  |  |  |  |         self.heir_list = l = HeirList(self) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         print("heir_list",l) | 
		
	
		
			
				|  |  |  |  |         tab = self.window.create_list_tab(l) | 
		
	
		
			
				|  |  |  |  |         tab.is_shown_cv = shown_cv(True) | 
		
	
		
			
				|  |  |  |  |         return tab | 
		
	
	
		
			
				
					
					|  |  |  | @ -707,12 +834,12 @@ class BalWindow(Logger): | 
		
	
		
			
				|  |  |  |  |                     if Willexecutors.push_transactions_to_willexecutor(willexecutors[url]): | 
		
	
		
			
				|  |  |  |  |                         for wid in willexecutors[url]['txsids']: | 
		
	
		
			
				|  |  |  |  |                             self.willitems[wid].set_status('PUSHED', True) | 
		
	
		
			
				|  |  |  |  |                         willexecutors[url]['broadcast_stauts'] = _("Success") | 
		
	
		
			
				|  |  |  |  |                         willexecutors[url]['broadcast_status'] = _("Success") | 
		
	
		
			
				|  |  |  |  |                     else: | 
		
	
		
			
				|  |  |  |  |                         for wid in willexecutors[url]['txsids']: | 
		
	
		
			
				|  |  |  |  |                             self.willitems[wid].set_status('PUSH_FAIL', True) | 
		
	
		
			
				|  |  |  |  |                             error=True | 
		
	
		
			
				|  |  |  |  |                         willexecutors[url]['broadcast_stauts'] = _("Failed") | 
		
	
		
			
				|  |  |  |  |                         willexecutors[url]['broadcast_status'] = _("Failed") | 
		
	
		
			
				|  |  |  |  |                     del willexecutor['txs'] | 
		
	
		
			
				|  |  |  |  |                 except Willexecutors.AlreadyPresentException: | 
		
	
		
			
				|  |  |  |  |                     for wid in willexecutor['txsids']: | 
		
	
	
		
			
				
					
					|  |  |  | @ -829,101 +956,6 @@ class BalWindow(Logger): | 
		
	
		
			
				|  |  |  |  |         self.dw=WillDetailDialog(self) | 
		
	
		
			
				|  |  |  |  |         self.dw.show() | 
		
	
		
			
				|  |  |  |  |              | 
		
	
		
			
				|  |  |  |  |     def settings_dialog(self,window): | 
		
	
		
			
				|  |  |  |  |         d = BalDialog(window, self.get_window_title("Settings")) | 
		
	
		
			
				|  |  |  |  |         d.setMinimumSize(100, 200) | 
		
	
		
			
				|  |  |  |  |         qicon=qt_resources.read_QPixmap("bal32x32.png") | 
		
	
		
			
				|  |  |  |  |         lbl_logo = QLabel() | 
		
	
		
			
				|  |  |  |  |         lbl_logo.setPixmap(qicon) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         heir_locktime_time = QSpinBox() | 
		
	
		
			
				|  |  |  |  |         heir_locktime_time.setMinimum(0) | 
		
	
		
			
				|  |  |  |  |         heir_locktime_time.setMaximum(3650) | 
		
	
		
			
				|  |  |  |  |         heir_locktime_time.setValue(int(self.bal_plugin.config_get(BalPlugin.LOCKTIME_TIME))) | 
		
	
		
			
				|  |  |  |  |         def on_heir_locktime_time(): | 
		
	
		
			
				|  |  |  |  |             value = heir_locktime_time.value() | 
		
	
		
			
				|  |  |  |  |             self.bal_plugin.config.set_key(BalPlugin.LOCKTIME_TIME,value,save=True) | 
		
	
		
			
				|  |  |  |  |         heir_locktime_time.valueChanged.connect(on_heir_locktime_time) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         heir_locktimedelta_time = QSpinBox() | 
		
	
		
			
				|  |  |  |  |         heir_locktimedelta_time.setMinimum(0) | 
		
	
		
			
				|  |  |  |  |         heir_locktimedelta_time.setMaximum(3650) | 
		
	
		
			
				|  |  |  |  |         heir_locktimedelta_time.setValue(int(self.bal_plugin.config_get(BalPlugin.LOCKTIMEDELTA_TIME))) | 
		
	
		
			
				|  |  |  |  |         def on_heir_locktime_time(): | 
		
	
		
			
				|  |  |  |  |             value = heir_locktime_time.value | 
		
	
		
			
				|  |  |  |  |             self.bal_plugin.config.set_key(BalPlugin.LOCKTIME_TIME,value,save=True) | 
		
	
		
			
				|  |  |  |  |         heir_locktime_time.valueChanged.connect(on_heir_locktime_time) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         heir_locktime_blocks = QSpinBox() | 
		
	
		
			
				|  |  |  |  |         heir_locktime_blocks.setMinimum(0) | 
		
	
		
			
				|  |  |  |  |         heir_locktime_blocks.setMaximum(144*3650) | 
		
	
		
			
				|  |  |  |  |         heir_locktime_blocks.setValue(int(self.bal_plugin.config_get(BalPlugin.LOCKTIME_BLOCKS))) | 
		
	
		
			
				|  |  |  |  |         def on_heir_locktime_blocks(): | 
		
	
		
			
				|  |  |  |  |             value = heir_locktime_blocks.value() | 
		
	
		
			
				|  |  |  |  |             self.bal_plugin.config.set_key(BalPlugin.LOCKTIME_BLOCKS,value,save=True) | 
		
	
		
			
				|  |  |  |  |         heir_locktime_blocks.valueChanged.connect(on_heir_locktime_blocks) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         heir_locktimedelta_blocks = QSpinBox() | 
		
	
		
			
				|  |  |  |  |         heir_locktimedelta_blocks.setMinimum(0) | 
		
	
		
			
				|  |  |  |  |         heir_locktimedelta_blocks.setMaximum(144*3650) | 
		
	
		
			
				|  |  |  |  |         heir_locktimedelta_blocks.setValue(int(self.bal_plugin.config_get(BalPlugin.LOCKTIMEDELTA_BLOCKS))) | 
		
	
		
			
				|  |  |  |  |         def on_heir_locktimedelta_blocks(): | 
		
	
		
			
				|  |  |  |  |             value = heir_locktimedelta_blocks.value() | 
		
	
		
			
				|  |  |  |  |             self.bal_plugin.config.set_key(BalPlugin.LOCKTIMEDELTA_TIME,value,save=True) | 
		
	
		
			
				|  |  |  |  |         heir_locktimedelta_blocks.valueChanged.connect(on_heir_locktimedelta_blocks) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         heir_tx_fees = QSpinBox() | 
		
	
		
			
				|  |  |  |  |         heir_tx_fees.setMinimum(1) | 
		
	
		
			
				|  |  |  |  |         heir_tx_fees.setMaximum(10000) | 
		
	
		
			
				|  |  |  |  |         heir_tx_fees.setValue(int(self.bal_plugin.config_get(BalPlugin.TX_FEES))) | 
		
	
		
			
				|  |  |  |  |         def on_heir_tx_fees(): | 
		
	
		
			
				|  |  |  |  |             value = heir_tx_fees.value() | 
		
	
		
			
				|  |  |  |  |             self.bal_plugin.config.set_key(BalPlugin.TX_FEES,value,save=True) | 
		
	
		
			
				|  |  |  |  |         heir_tx_fees.valueChanged.connect(on_heir_tx_fees) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         heir_broadcast = bal_checkbox(self.bal_plugin, BalPlugin.BROADCAST) | 
		
	
		
			
				|  |  |  |  |         heir_ask_broadcast = bal_checkbox(self.bal_plugin, BalPlugin.ASK_BROADCAST) | 
		
	
		
			
				|  |  |  |  |         heir_invalidate = bal_checkbox(self.bal_plugin, BalPlugin.INVALIDATE) | 
		
	
		
			
				|  |  |  |  |         heir_ask_invalidate = bal_checkbox(self.bal_plugin, BalPlugin.ASK_INVALIDATE) | 
		
	
		
			
				|  |  |  |  |         heir_preview = bal_checkbox(self.bal_plugin, BalPlugin.PREVIEW) | 
		
	
		
			
				|  |  |  |  |         heir_ping_willexecutors = bal_checkbox(self.bal_plugin, BalPlugin.PING_WILLEXECUTORS) | 
		
	
		
			
				|  |  |  |  |         heir_ask_ping_willexecutors = bal_checkbox(self.bal_plugin, BalPlugin.ASK_PING_WILLEXECUTORS) | 
		
	
		
			
				|  |  |  |  |         heir_no_willexecutor = bal_checkbox(self.bal_plugin, BalPlugin.NO_WILLEXECUTOR) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |          | 
		
	
		
			
				|  |  |  |  |         heir_hide_replaced = bal_checkbox(self.bal_plugin,BalPlugin.HIDE_REPLACED,self) | 
		
	
		
			
				|  |  |  |  |         heir_hide_invalidated = bal_checkbox(self.bal_plugin,BalPlugin.HIDE_INVALIDATED,self) | 
		
	
		
			
				|  |  |  |  |         heir_allow_repush = bal_checkbox(self.bal_plugin,BalPlugin.ALLOW_REPUSH,self) | 
		
	
		
			
				|  |  |  |  |         heir_repush = QPushButton("Rebroadcast transactions") | 
		
	
		
			
				|  |  |  |  |         heir_repush.clicked.connect(partial(self.broadcast_transactions,True)) | 
		
	
		
			
				|  |  |  |  |         grid=QGridLayout(d) | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Refresh Time Days",heir_locktime_time,0,"Delta days for inputs to  be invalidated and transactions resubmitted") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Refresh Blocks",heir_locktime_blocks,1,"Delta blocks for inputs to be invalidated and transaction resubmitted") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Transaction fees",heir_tx_fees,1,"Default transaction fees") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Broadcast transactions",heir_broadcast,3,"") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid," - Ask before",heir_ask_broadcast,4,"") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Invalidate transactions",heir_invalidate,5,"") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid," - Ask before",heir_ask_invalidate,6,"") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Show preview before sign",heir_preview,7,"") | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         #grid.addWidget(lbl_logo,0,0)  | 
		
	
		
			
				|  |  |  |  |         add_widget(grid,"Hide Replaced",heir_hide_replaced, 1, "Hide replaced transactions from will detail and list") | 
		
	
		
			
				|  |  |  |  |         add_widget(grid,"Hide Invalidated",heir_hide_invalidated ,2,"Hide invalidated transactions from will detail and list") | 
		
	
		
			
				|  |  |  |  |         add_widget(grid,"Ping Willexecutors",heir_ping_willexecutors,3,"Ping willexecutors to get payment info before compiling will") | 
		
	
		
			
				|  |  |  |  |         add_widget(grid," - Ask before",heir_ask_ping_willexecutors,4,"Ask before to ping willexecutor") | 
		
	
		
			
				|  |  |  |  |         add_widget(grid,"Backup Transaction",heir_no_willexecutor,5,"Add transactions without willexecutor") | 
		
	
		
			
				|  |  |  |  |         grid.addWidget(heir_repush,6,0) | 
		
	
		
			
				|  |  |  |  |         grid.addWidget(HelpButton("Broadcast all transactions to willexecutors including those already pushed"),6,2) | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Max Allowed TimeDelta Days",heir_locktimedelta_time,8,"") | 
		
	
		
			
				|  |  |  |  |         #add_widget(grid,"Max Allowed BlocksDelta",heir_locktimedelta_blocks,9,"") | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         if ret := bool(d.exec()): | 
		
	
		
			
				|  |  |  |  |             try: | 
		
	
		
			
				|  |  |  |  |                 self.update_all() | 
		
	
		
			
				|  |  |  |  |                 return ret | 
		
	
		
			
				|  |  |  |  |             except: | 
		
	
		
			
				|  |  |  |  |                 pass | 
		
	
		
			
				|  |  |  |  |         return False | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     def update_all(self): | 
		
	
		
			
				|  |  |  |  |         self.will_list.update_will(self.willitems) | 
		
	
	
		
			
				
					
					|  |  |  | 
 |