def create_main_tab(self): self.execution_widget = ScriptExecutionWidget(self.execution) # For variable substitution self.execution_widget.model.plugin_handler = self.handler self.execution_delegate = ScriptExecutionDelegate() self.execution_widget.view.setItemDelegate(self.execution_delegate) # Raw script input. self.tx_script = QPlainTextEdit() self.tx_script.setWhatsThis('Enter a raw script here to evaluate it.') self.tx_script.setFont(monospace_font) self.tx_script.setTabChangesFocus(True) self.clear_button = QPushButton('Clear') self.clear_button.setToolTip('Clear the current script.') self.clear_button.clicked.connect(self.reset) self.do_button = QPushButton('&Evaluate') self.do_button.setToolTip('Evaluate the entire script.') self.do_button.clicked.connect(self.do_evaluate) btn_hbox = floated_buttons([self.clear_button, self.do_button], left=True) vbox = QVBoxLayout() vbox.addWidget(QLabel('Script:')) vbox.addWidget(self.tx_script) vbox.addLayout(btn_hbox) vbox.addWidget(self.execution_widget, stretch=1) self.next_button = QPushButton('Next') self.next_button.setToolTip('Step forward in script execution.') self.next_button.clicked.connect(self.execution_widget.select_next) self.prev_button = QPushButton('Previous') self.prev_button.setToolTip('Step backward in script execution.') self.prev_button.clicked.connect(self.execution_widget.select_prev) controls_hbox = floated_buttons([self.prev_button, self.next_button], left=True) vbox.addLayout(controls_hbox) self.script_passed = ReadOnlyCheckBox('Passed') self.script_passed.setToolTip('Whether the script passed') self.script_passed.setWhatsThis('This box is checked if the script finished with a nonzero top stack value.') self.script_verified = ReadOnlyCheckBox('Verified') self.script_verified.setToolTip('Whether the script was verified with an input script') self.script_verified.setWhatsThis('This box is checked if the script was verified with a transaction\'s input script.') pass_hbox = HBox(QLabel('Script: '), self.script_passed, self.script_verified) pass_hbox.addStretch(1) vbox.addLayout(pass_hbox) w = QWidget() w.setLayout(vbox) return w
def __init__(self, parent=None): super(TxProperties, self).__init__(parent) self.tx_size_edit = QLineEdit() self.tx_size_edit.setReadOnly(True) tx_size = HBox(QLabel('Size:'), self.tx_size_edit) tx_size.setContentsMargins(0, 0, 0, 0) self.tx_size = QWidget() self.tx_size.setLayout(tx_size) self.tx_size.setToolTip('Size (in bytes) of the serialized tx') self.is_final = ReadOnlyCheckBox('Is Final') self.is_final.setToolTip( 'True if all inputs have a Sequence of 0xffffffff') self.is_coinbase = ReadOnlyCheckBox('Is Coinbase') self.is_coinbase.setToolTip( 'True if the tx generates new coins via mining') hbox = floated_buttons([self.tx_size, self.is_final, self.is_coinbase], left=True) hbox.setContentsMargins(16, 0, 0, 0) self.setLayout(hbox)