def parse_args(self): args = json.loads('[{}]'.format(self.args_e.text())) abi_index = self.abi_signatures[self.abi_combo.currentIndex()][0] if abi_index == -1: return None, [] abi = self.contract['interface'][abi_index] inputs = abi.get('inputs', []) if not len(args) == len(inputs): raise BaseException('invalid input count,expect {} got {}'.format( len(inputs), len(args))) for index, _input in enumerate(inputs): _type = _input.get('type', '') if _type == 'address': addr = args[index] if is_address(addr): __, hash160 = b58_address_to_hash160(addr) addr = bh2u(hash160) if not is_hash160(addr): raise BaseException('invalid input:{}'.format(args[index])) args[index] = addr.lower() elif 'int' in _type: if not isinstance(args[index], int): raise BaseException('inavlid input:{}'.format(args[index])) if len(self.senders) > 0: sender = self.senders[self.sender_combo.currentIndex()] else: sender = None return abi, args, sender
def parse_args(self): sender = None if len(self.senders) > 0: sender = self.senders[self.sender_combo.currentIndex()] if not sender: raise BaseException('no sender selected') args = json.loads('[{}]'.format(self.args_e.text())) abi = self.constructor inputs = abi.get('inputs', []) if not len(args) == len(inputs): raise BaseException('invalid input count,expect {} got {}'.format( len(inputs), len(args))) for index, _input in enumerate(inputs): _type = _input.get('type', '') if _type == 'address': addr = args[index] if is_address(addr): __, hash160 = b58_address_to_hash160(addr) addr = bh2u(hash160) if not is_hash160(addr): raise BaseException('invalid input:{}'.format(args[index])) args[index] = addr.lower() elif 'int' in _type: if not isinstance(args[index], int): raise BaseException('inavlid input:{}'.format(args[index])) elif _type == 'string' or _type == 'bytes': args[index] = args[index].encode() return abi, args, sender
def show_address_helper(self, wallet, address, keystore=None): if keystore is None: keystore = wallet.get_keystore() if not is_address(address): keystore.handler.show_error(_('Invalid Qtum Address')) return False if not wallet.is_mine(address): keystore.handler.show_error(_('Address not in wallet.')) return False if type(keystore) != self.keystore_class: return False return True