Change type to 'script' and remove OP_RETURN
This commit is contained in:
@@ -66,22 +66,16 @@ class PayToEdit(ScanQRTextEdit):
|
|||||||
self.setStyleSheet("QWidget { background-color:#ffcccc;}")
|
self.setStyleSheet("QWidget { background-color:#ffcccc;}")
|
||||||
|
|
||||||
def parse_address_and_amount(self, line):
|
def parse_address_and_amount(self, line):
|
||||||
m = re.match('^OP_RETURN\s+([0-9a-fA-F]+)$', line.strip())
|
x, y = line.split(',')
|
||||||
if m:
|
n = re.match('^SCRIPT\s+([0-9a-fA-F]+)$', x.strip())
|
||||||
_type = 'op_return'
|
if n:
|
||||||
address = m.group(1).decode('hex')
|
_type = 'script'
|
||||||
amount = 0
|
address = n.group(1).decode('hex')
|
||||||
|
amount = self.parse_amount(y)
|
||||||
else:
|
else:
|
||||||
x, y = line.split(',')
|
_type = 'address'
|
||||||
n = re.match('^CUSTOM_OUT\s+([0-9a-fA-F]+)$', x.strip())
|
address = self.parse_address(x)
|
||||||
if n:
|
amount = self.parse_amount(y)
|
||||||
_type = 'custom'
|
|
||||||
address = n.group(1).decode('hex')
|
|
||||||
amount = self.parse_amount(y)
|
|
||||||
else:
|
|
||||||
_type = 'address'
|
|
||||||
address = self.parse_address(x)
|
|
||||||
amount = self.parse_amount(y)
|
|
||||||
return _type, address, amount
|
return _type, address, amount
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -424,7 +424,7 @@ def get_address_from_output_script(bytes):
|
|||||||
if match_decoded(decoded, match):
|
if match_decoded(decoded, match):
|
||||||
return 'op_return', decoded[1][1]
|
return 'op_return', decoded[1][1]
|
||||||
|
|
||||||
return 'custom', bytes
|
return 'script', bytes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -564,9 +564,8 @@ class Transaction:
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def pay_script(self, output_type, addr):
|
def pay_script(self, output_type, addr):
|
||||||
if output_type == 'op_return':
|
if output_type == 'script':
|
||||||
h = addr.encode('hex')
|
return addr.encode('hex')
|
||||||
return '6a' + push_script(h)
|
|
||||||
elif output_type == 'address':
|
elif output_type == 'address':
|
||||||
addrtype, hash_160 = bc_address_to_hash_160(addr)
|
addrtype, hash_160 = bc_address_to_hash_160(addr)
|
||||||
if addrtype == 0:
|
if addrtype == 0:
|
||||||
@@ -580,7 +579,7 @@ class Transaction:
|
|||||||
else:
|
else:
|
||||||
raise
|
raise
|
||||||
else:
|
else:
|
||||||
script = addr.encode('hex')
|
raise
|
||||||
return script
|
return script
|
||||||
|
|
||||||
def input_script(self, txin, i, for_sig):
|
def input_script(self, txin, i, for_sig):
|
||||||
@@ -757,10 +756,8 @@ class Transaction:
|
|||||||
addr = x
|
addr = x
|
||||||
elif type == 'pubkey':
|
elif type == 'pubkey':
|
||||||
addr = public_key_to_bc_address(x.decode('hex'))
|
addr = public_key_to_bc_address(x.decode('hex'))
|
||||||
elif type == 'op_return':
|
|
||||||
addr = 'OP_RETURN ' + x.encode('hex')
|
|
||||||
else:
|
else:
|
||||||
addr = 'CUSTOM ' + x.encode('hex')
|
addr = 'SCRIPT ' + x.encode('hex')
|
||||||
o.append((addr,v)) # consider using yield (addr, v)
|
o.append((addr,v)) # consider using yield (addr, v)
|
||||||
return o
|
return o
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user