1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-13 19:18:56 +00:00

SegWit support

This commit is contained in:
Jochen Hoenicke 2016-05-01 14:21:20 +02:00
parent ead2781aff
commit aa3392fa7c
3 changed files with 920 additions and 564 deletions

File diff suppressed because one or more lines are too long

View File

@ -40,6 +40,43 @@ def insight_tx(url, rawdata=False):
return t
def smartbit_tx(url, rawdata=False):
if not rawdata:
try:
f = urllib2.urlopen(url)
data = json.load(f)
except:
raise Exception('URL error: %s' % url)
else:
data = url
data = data['transaction']
t = proto_types.TransactionType()
t.version = int(data['version'])
t.lock_time = data['locktime']
for vin in data['inputs']:
i = t.inputs.add()
if 'coinbase' in vin.keys():
i.prev_hash = "\0"*32
i.prev_index = 0xffffffff # signed int -1
i.script_sig = binascii.unhexlify(vin['coinbase'])
i.sequence = vin['sequence']
else:
i.prev_hash = binascii.unhexlify(vin['txid'])
i.prev_index = vin['vout']
i.script_sig = binascii.unhexlify(vin['script_sig']['hex'])
i.sequence = vin['sequence']
for vout in data['outputs']:
o = t.bin_outputs.add()
o.amount = int(Decimal(vout['value']) * 100000000)
o.script_pubkey = binascii.unhexlify(vout['script_pub_key']['hex'])
return t
class TXAPIBitcoin(object):
@filecache(DAY)
@ -53,3 +90,10 @@ class TXAPITestnet(object):
def get_tx(self, txhash):
url = 'https://test-insight.bitpay.com/api/tx/%s' % txhash
return insight_tx(url)
class TXAPISegnet(object):
@filecache(DAY)
def get_tx(self, txhash):
url = 'https://segnet-api.smartbit.com.au/v1/blockchain/tx/%s' % txhash
return smartbit_tx(url)

View File

@ -1,13 +1,18 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: types.proto
import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
import google.protobuf.descriptor_pb2
@ -15,7 +20,10 @@ import google.protobuf.descriptor_pb2
DESCRIPTOR = _descriptor.FileDescriptor(
name='types.proto',
package='',
serialized_pb='\n\x0btypes.proto\x1a google/protobuf/descriptor.proto\"\x80\x01\n\nHDNodeType\x12\r\n\x05\x64\x65pth\x18\x01 \x02(\r\x12\x13\n\x0b\x66ingerprint\x18\x02 \x02(\r\x12\x11\n\tchild_num\x18\x03 \x02(\r\x12\x12\n\nchain_code\x18\x04 \x02(\x0c\x12\x13\n\x0bprivate_key\x18\x05 \x01(\x0c\x12\x12\n\npublic_key\x18\x06 \x01(\x0c\">\n\x0eHDNodePathType\x12\x19\n\x04node\x18\x01 \x02(\x0b\x32\x0b.HDNodeType\x12\x11\n\taddress_n\x18\x02 \x03(\r\"~\n\x08\x43oinType\x12\x11\n\tcoin_name\x18\x01 \x01(\t\x12\x15\n\rcoin_shortcut\x18\x02 \x01(\t\x12\x17\n\x0c\x61\x64\x64ress_type\x18\x03 \x01(\r:\x01\x30\x12\x11\n\tmaxfee_kb\x18\x04 \x01(\x04\x12\x1c\n\x11\x61\x64\x64ress_type_p2sh\x18\x05 \x01(\r:\x01\x35\"[\n\x18MultisigRedeemScriptType\x12 \n\x07pubkeys\x18\x01 \x03(\x0b\x32\x0f.HDNodePathType\x12\x12\n\nsignatures\x18\x02 \x03(\x0c\x12\t\n\x01m\x18\x03 \x01(\r\"\xdb\x01\n\x0bTxInputType\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x11\n\tprev_hash\x18\x02 \x02(\x0c\x12\x12\n\nprev_index\x18\x03 \x02(\r\x12\x12\n\nscript_sig\x18\x04 \x01(\x0c\x12\x1c\n\x08sequence\x18\x05 \x01(\r:\n4294967295\x12\x33\n\x0bscript_type\x18\x06 \x01(\x0e\x32\x10.InputScriptType:\x0cSPENDADDRESS\x12+\n\x08multisig\x18\x07 \x01(\x0b\x32\x19.MultisigRedeemScriptType\"\xaf\x01\n\x0cTxOutputType\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x11\n\taddress_n\x18\x02 \x03(\r\x12\x0e\n\x06\x61mount\x18\x03 \x02(\x04\x12&\n\x0bscript_type\x18\x04 \x02(\x0e\x32\x11.OutputScriptType\x12+\n\x08multisig\x18\x05 \x01(\x0b\x32\x19.MultisigRedeemScriptType\x12\x16\n\x0eop_return_data\x18\x06 \x01(\x0c\"8\n\x0fTxOutputBinType\x12\x0e\n\x06\x61mount\x18\x01 \x02(\x04\x12\x15\n\rscript_pubkey\x18\x02 \x02(\x0c\"\xc3\x01\n\x0fTransactionType\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x1c\n\x06inputs\x18\x02 \x03(\x0b\x32\x0c.TxInputType\x12%\n\x0b\x62in_outputs\x18\x03 \x03(\x0b\x32\x10.TxOutputBinType\x12\x1e\n\x07outputs\x18\x05 \x03(\x0b\x32\r.TxOutputType\x12\x11\n\tlock_time\x18\x04 \x01(\r\x12\x12\n\ninputs_cnt\x18\x06 \x01(\r\x12\x13\n\x0boutputs_cnt\x18\x07 \x01(\r\">\n\x14TxRequestDetailsType\x12\x15\n\rrequest_index\x18\x01 \x01(\r\x12\x0f\n\x07tx_hash\x18\x02 \x01(\x0c\"\\\n\x17TxRequestSerializedType\x12\x17\n\x0fsignature_index\x18\x01 \x01(\r\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x15\n\rserialized_tx\x18\x03 \x01(\x0c\"g\n\x0cIdentityType\x12\r\n\x05proto\x18\x01 \x01(\t\x12\x0c\n\x04user\x18\x02 \x01(\t\x12\x0c\n\x04host\x18\x03 \x01(\t\x12\x0c\n\x04port\x18\x04 \x01(\t\x12\x0c\n\x04path\x18\x05 \x01(\t\x12\x10\n\x05index\x18\x06 \x01(\r:\x01\x30*\xcd\x02\n\x0b\x46\x61ilureType\x12\x1d\n\x19\x46\x61ilure_UnexpectedMessage\x10\x01\x12\x1a\n\x16\x46\x61ilure_ButtonExpected\x10\x02\x12\x17\n\x13\x46\x61ilure_SyntaxError\x10\x03\x12\x1b\n\x17\x46\x61ilure_ActionCancelled\x10\x04\x12\x17\n\x13\x46\x61ilure_PinExpected\x10\x05\x12\x18\n\x14\x46\x61ilure_PinCancelled\x10\x06\x12\x16\n\x12\x46\x61ilure_PinInvalid\x10\x07\x12\x1c\n\x18\x46\x61ilure_InvalidSignature\x10\x08\x12\x11\n\rFailure_Other\x10\t\x12\x1a\n\x16\x46\x61ilure_NotEnoughFunds\x10\n\x12\x1a\n\x16\x46\x61ilure_NotInitialized\x10\x0b\x12\x19\n\x15\x46\x61ilure_FirmwareError\x10\x63*_\n\x10OutputScriptType\x12\x10\n\x0cPAYTOADDRESS\x10\x00\x12\x13\n\x0fPAYTOSCRIPTHASH\x10\x01\x12\x11\n\rPAYTOMULTISIG\x10\x02\x12\x11\n\rPAYTOOPRETURN\x10\x03*6\n\x0fInputScriptType\x12\x10\n\x0cSPENDADDRESS\x10\x00\x12\x11\n\rSPENDMULTISIG\x10\x01*D\n\x0bRequestType\x12\x0b\n\x07TXINPUT\x10\x00\x12\x0c\n\x08TXOUTPUT\x10\x01\x12\n\n\x06TXMETA\x10\x02\x12\x0e\n\nTXFINISHED\x10\x03*\xc2\x02\n\x11\x42uttonRequestType\x12\x17\n\x13\x42uttonRequest_Other\x10\x01\x12\"\n\x1e\x42uttonRequest_FeeOverThreshold\x10\x02\x12\x1f\n\x1b\x42uttonRequest_ConfirmOutput\x10\x03\x12\x1d\n\x19\x42uttonRequest_ResetDevice\x10\x04\x12\x1d\n\x19\x42uttonRequest_ConfirmWord\x10\x05\x12\x1c\n\x18\x42uttonRequest_WipeDevice\x10\x06\x12\x1d\n\x19\x42uttonRequest_ProtectCall\x10\x07\x12\x18\n\x14\x42uttonRequest_SignTx\x10\x08\x12\x1f\n\x1b\x42uttonRequest_FirmwareCheck\x10\t\x12\x19\n\x15\x42uttonRequest_Address\x10\n*\x7f\n\x14PinMatrixRequestType\x12 \n\x1cPinMatrixRequestType_Current\x10\x01\x12!\n\x1dPinMatrixRequestType_NewFirst\x10\x02\x12\"\n\x1ePinMatrixRequestType_NewSecond\x10\x03:4\n\x07wire_in\x12!.google.protobuf.EnumValueOptions\x18\xd2\x86\x03 \x01(\x08:5\n\x08wire_out\x12!.google.protobuf.EnumValueOptions\x18\xd3\x86\x03 \x01(\x08::\n\rwire_debug_in\x12!.google.protobuf.EnumValueOptions\x18\xd4\x86\x03 \x01(\x08:;\n\x0ewire_debug_out\x12!.google.protobuf.EnumValueOptions\x18\xd5\x86\x03 \x01(\x08\x42-\n\x1f\x63om.satoshilabs.trezor.protobufB\nTrezorType')
serialized_pb=_b('\n\x0btypes.proto\x1a google/protobuf/descriptor.proto\"\x80\x01\n\nHDNodeType\x12\r\n\x05\x64\x65pth\x18\x01 \x02(\r\x12\x13\n\x0b\x66ingerprint\x18\x02 \x02(\r\x12\x11\n\tchild_num\x18\x03 \x02(\r\x12\x12\n\nchain_code\x18\x04 \x02(\x0c\x12\x13\n\x0bprivate_key\x18\x05 \x01(\x0c\x12\x12\n\npublic_key\x18\x06 \x01(\x0c\">\n\x0eHDNodePathType\x12\x19\n\x04node\x18\x01 \x02(\x0b\x32\x0b.HDNodeType\x12\x11\n\taddress_n\x18\x02 \x03(\r\"\xbe\x01\n\x08\x43oinType\x12\x11\n\tcoin_name\x18\x01 \x01(\t\x12\x15\n\rcoin_shortcut\x18\x02 \x01(\t\x12\x17\n\x0c\x61\x64\x64ress_type\x18\x03 \x01(\r:\x01\x30\x12\x11\n\tmaxfee_kb\x18\x04 \x01(\x04\x12\x1c\n\x11\x61\x64\x64ress_type_p2sh\x18\x05 \x01(\r:\x01\x35\x12\x1e\n\x13\x61\x64\x64ress_type_p2wpkh\x18\x06 \x01(\r:\x01\x36\x12\x1e\n\x12\x61\x64\x64ress_type_p2wsh\x18\x07 \x01(\r:\x02\x31\x30\"[\n\x18MultisigRedeemScriptType\x12 \n\x07pubkeys\x18\x01 \x03(\x0b\x32\x0f.HDNodePathType\x12\x12\n\nsignatures\x18\x02 \x03(\x0c\x12\t\n\x01m\x18\x03 \x01(\r\"\xeb\x01\n\x0bTxInputType\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x11\n\tprev_hash\x18\x02 \x02(\x0c\x12\x12\n\nprev_index\x18\x03 \x02(\r\x12\x12\n\nscript_sig\x18\x04 \x01(\x0c\x12\x1c\n\x08sequence\x18\x05 \x01(\r:\n4294967295\x12\x33\n\x0bscript_type\x18\x06 \x01(\x0e\x32\x10.InputScriptType:\x0cSPENDADDRESS\x12+\n\x08multisig\x18\x07 \x01(\x0b\x32\x19.MultisigRedeemScriptType\x12\x0e\n\x06\x61mount\x18\x08 \x01(\x04\"\xaf\x01\n\x0cTxOutputType\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x11\n\taddress_n\x18\x02 \x03(\r\x12\x0e\n\x06\x61mount\x18\x03 \x02(\x04\x12&\n\x0bscript_type\x18\x04 \x02(\x0e\x32\x11.OutputScriptType\x12+\n\x08multisig\x18\x05 \x01(\x0b\x32\x19.MultisigRedeemScriptType\x12\x16\n\x0eop_return_data\x18\x06 \x01(\x0c\"8\n\x0fTxOutputBinType\x12\x0e\n\x06\x61mount\x18\x01 \x02(\x04\x12\x15\n\rscript_pubkey\x18\x02 \x02(\x0c\"\xc3\x01\n\x0fTransactionType\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x1c\n\x06inputs\x18\x02 \x03(\x0b\x32\x0c.TxInputType\x12%\n\x0b\x62in_outputs\x18\x03 \x03(\x0b\x32\x10.TxOutputBinType\x12\x1e\n\x07outputs\x18\x05 \x03(\x0b\x32\r.TxOutputType\x12\x11\n\tlock_time\x18\x04 \x01(\r\x12\x12\n\ninputs_cnt\x18\x06 \x01(\r\x12\x13\n\x0boutputs_cnt\x18\x07 \x01(\r\">\n\x14TxRequestDetailsType\x12\x15\n\rrequest_index\x18\x01 \x01(\r\x12\x0f\n\x07tx_hash\x18\x02 \x01(\x0c\"\\\n\x17TxRequestSerializedType\x12\x17\n\x0fsignature_index\x18\x01 \x01(\r\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x15\n\rserialized_tx\x18\x03 \x01(\x0c\"g\n\x0cIdentityType\x12\r\n\x05proto\x18\x01 \x01(\t\x12\x0c\n\x04user\x18\x02 \x01(\t\x12\x0c\n\x04host\x18\x03 \x01(\t\x12\x0c\n\x04port\x18\x04 \x01(\t\x12\x0c\n\x04path\x18\x05 \x01(\t\x12\x10\n\x05index\x18\x06 \x01(\r:\x01\x30*\xcd\x02\n\x0b\x46\x61ilureType\x12\x1d\n\x19\x46\x61ilure_UnexpectedMessage\x10\x01\x12\x1a\n\x16\x46\x61ilure_ButtonExpected\x10\x02\x12\x17\n\x13\x46\x61ilure_SyntaxError\x10\x03\x12\x1b\n\x17\x46\x61ilure_ActionCancelled\x10\x04\x12\x17\n\x13\x46\x61ilure_PinExpected\x10\x05\x12\x18\n\x14\x46\x61ilure_PinCancelled\x10\x06\x12\x16\n\x12\x46\x61ilure_PinInvalid\x10\x07\x12\x1c\n\x18\x46\x61ilure_InvalidSignature\x10\x08\x12\x11\n\rFailure_Other\x10\t\x12\x1a\n\x16\x46\x61ilure_NotEnoughFunds\x10\n\x12\x1a\n\x16\x46\x61ilure_NotInitialized\x10\x0b\x12\x19\n\x15\x46\x61ilure_FirmwareError\x10\x63*_\n\x10OutputScriptType\x12\x10\n\x0cPAYTOADDRESS\x10\x00\x12\x13\n\x0fPAYTOSCRIPTHASH\x10\x01\x12\x11\n\rPAYTOMULTISIG\x10\x02\x12\x11\n\rPAYTOOPRETURN\x10\x03*k\n\x0fInputScriptType\x12\x10\n\x0cSPENDADDRESS\x10\x00\x12\x11\n\rSPENDMULTISIG\x10\x01\x12\x0c\n\x08\x45XTERNAL\x10\x02\x12\x11\n\rSPENDWADDRESS\x10\x03\x12\x12\n\x0eSPENDWMULTISIG\x10\x04*D\n\x0bRequestType\x12\x0b\n\x07TXINPUT\x10\x00\x12\x0c\n\x08TXOUTPUT\x10\x01\x12\n\n\x06TXMETA\x10\x02\x12\x0e\n\nTXFINISHED\x10\x03*\xdf\x02\n\x11\x42uttonRequestType\x12\x17\n\x13\x42uttonRequest_Other\x10\x01\x12\"\n\x1e\x42uttonRequest_FeeOverThreshold\x10\x02\x12\x1f\n\x1b\x42uttonRequest_ConfirmOutput\x10\x03\x12\x1d\n\x19\x42uttonRequest_ResetDevice\x10\x04\x12\x1d\n\x19\x42uttonRequest_ConfirmWord\x10\x05\x12\x1c\n\x18\x42uttonRequest_WipeDevice\x10\x06\x12\x1d\n\x19\x42uttonRequest_ProtectCall\x10\x07\x12\x18\n\x14\x42uttonRequest_SignTx\x10\x08\x12\x1f\n\x1b\x42uttonRequest_FirmwareCheck\x10\t\x12\x19\n\x15\x42uttonRequest_Address\x10\n\x12\x1b\n\x17\x42uttonRequest_PublicKey\x10\x0b*\x7f\n\x14PinMatrixRequestType\x12 \n\x1cPinMatrixRequestType_Current\x10\x01\x12!\n\x1dPinMatrixRequestType_NewFirst\x10\x02\x12\"\n\x1ePinMatrixRequestType_NewSecond\x10\x03:4\n\x07wire_in\x12!.google.protobuf.EnumValueOptions\x18\xd2\x86\x03 \x01(\x08:5\n\x08wire_out\x12!.google.protobuf.EnumValueOptions\x18\xd3\x86\x03 \x01(\x08::\n\rwire_debug_in\x12!.google.protobuf.EnumValueOptions\x18\xd4\x86\x03 \x01(\x08:;\n\x0ewire_debug_out\x12!.google.protobuf.EnumValueOptions\x18\xd5\x86\x03 \x01(\x08\x42-\n\x1f\x63om.satoshilabs.trezor.protobufB\nTrezorType')
,
dependencies=[google.protobuf.descriptor_pb2.DESCRIPTOR,])
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
_FAILURETYPE = _descriptor.EnumDescriptor(
name='FailureType',
@ -74,9 +82,10 @@ _FAILURETYPE = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=1385,
serialized_end=1718,
serialized_start=1466,
serialized_end=1799,
)
_sym_db.RegisterEnumDescriptor(_FAILURETYPE)
FailureType = enum_type_wrapper.EnumTypeWrapper(_FAILURETYPE)
_OUTPUTSCRIPTTYPE = _descriptor.EnumDescriptor(
@ -104,9 +113,10 @@ _OUTPUTSCRIPTTYPE = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=1720,
serialized_end=1815,
serialized_start=1801,
serialized_end=1896,
)
_sym_db.RegisterEnumDescriptor(_OUTPUTSCRIPTTYPE)
OutputScriptType = enum_type_wrapper.EnumTypeWrapper(_OUTPUTSCRIPTTYPE)
_INPUTSCRIPTTYPE = _descriptor.EnumDescriptor(
@ -123,12 +133,25 @@ _INPUTSCRIPTTYPE = _descriptor.EnumDescriptor(
name='SPENDMULTISIG', index=1, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='EXTERNAL', index=2, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SPENDWADDRESS', index=3, number=3,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SPENDWMULTISIG', index=4, number=4,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=1817,
serialized_end=1871,
serialized_start=1898,
serialized_end=2005,
)
_sym_db.RegisterEnumDescriptor(_INPUTSCRIPTTYPE)
InputScriptType = enum_type_wrapper.EnumTypeWrapper(_INPUTSCRIPTTYPE)
_REQUESTTYPE = _descriptor.EnumDescriptor(
@ -156,9 +179,10 @@ _REQUESTTYPE = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=1873,
serialized_end=1941,
serialized_start=2007,
serialized_end=2075,
)
_sym_db.RegisterEnumDescriptor(_REQUESTTYPE)
RequestType = enum_type_wrapper.EnumTypeWrapper(_REQUESTTYPE)
_BUTTONREQUESTTYPE = _descriptor.EnumDescriptor(
@ -207,12 +231,17 @@ _BUTTONREQUESTTYPE = _descriptor.EnumDescriptor(
name='ButtonRequest_Address', index=9, number=10,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='ButtonRequest_PublicKey', index=10, number=11,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=1944,
serialized_end=2266,
serialized_start=2078,
serialized_end=2429,
)
_sym_db.RegisterEnumDescriptor(_BUTTONREQUESTTYPE)
ButtonRequestType = enum_type_wrapper.EnumTypeWrapper(_BUTTONREQUESTTYPE)
_PINMATRIXREQUESTTYPE = _descriptor.EnumDescriptor(
@ -236,9 +265,10 @@ _PINMATRIXREQUESTTYPE = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=2268,
serialized_end=2395,
serialized_start=2431,
serialized_end=2558,
)
_sym_db.RegisterEnumDescriptor(_PINMATRIXREQUESTTYPE)
PinMatrixRequestType = enum_type_wrapper.EnumTypeWrapper(_PINMATRIXREQUESTTYPE)
Failure_UnexpectedMessage = 1
@ -259,6 +289,9 @@ PAYTOMULTISIG = 2
PAYTOOPRETURN = 3
SPENDADDRESS = 0
SPENDMULTISIG = 1
EXTERNAL = 2
SPENDWADDRESS = 3
SPENDWMULTISIG = 4
TXINPUT = 0
TXOUTPUT = 1
TXMETA = 2
@ -273,6 +306,7 @@ ButtonRequest_ProtectCall = 7
ButtonRequest_SignTx = 8
ButtonRequest_FirmwareCheck = 9
ButtonRequest_Address = 10
ButtonRequest_PublicKey = 11
PinMatrixRequestType_Current = 1
PinMatrixRequestType_NewFirst = 2
PinMatrixRequestType_NewSecond = 3
@ -342,21 +376,21 @@ _HDNODETYPE = _descriptor.Descriptor(
_descriptor.FieldDescriptor(
name='chain_code', full_name='HDNodeType.chain_code', index=3,
number=4, type=12, cpp_type=9, label=2,
has_default_value=False, default_value="",
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='private_key', full_name='HDNodeType.private_key', index=4,
number=5, type=12, cpp_type=9, label=1,
has_default_value=False, default_value="",
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='public_key', full_name='HDNodeType.public_key', index=5,
number=6, type=12, cpp_type=9, label=1,
has_default_value=False, default_value="",
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
@ -369,6 +403,8 @@ _HDNODETYPE = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
oneofs=[
],
serialized_start=50,
serialized_end=178,
)
@ -404,6 +440,8 @@ _HDNODEPATHTYPE = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
oneofs=[
],
serialized_start=180,
serialized_end=242,
)
@ -419,14 +457,14 @@ _COINTYPE = _descriptor.Descriptor(
_descriptor.FieldDescriptor(
name='coin_name', full_name='CoinType.coin_name', index=0,
number=1, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=unicode("", "utf-8"),
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='coin_shortcut', full_name='CoinType.coin_shortcut', index=1,
number=2, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=unicode("", "utf-8"),
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
@ -451,6 +489,20 @@ _COINTYPE = _descriptor.Descriptor(
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='address_type_p2wpkh', full_name='CoinType.address_type_p2wpkh', index=5,
number=6, type=13, cpp_type=3, label=1,
has_default_value=True, default_value=6,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='address_type_p2wsh', full_name='CoinType.address_type_p2wsh', index=6,
number=7, type=13, cpp_type=3, label=1,
has_default_value=True, default_value=10,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
@ -460,8 +512,10 @@ _COINTYPE = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
serialized_start=244,
serialized_end=370,
oneofs=[
],
serialized_start=245,
serialized_end=435,
)
@ -502,8 +556,10 @@ _MULTISIGREDEEMSCRIPTTYPE = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
serialized_start=372,
serialized_end=463,
oneofs=[
],
serialized_start=437,
serialized_end=528,
)
@ -524,7 +580,7 @@ _TXINPUTTYPE = _descriptor.Descriptor(
_descriptor.FieldDescriptor(
name='prev_hash', full_name='TxInputType.prev_hash', index=1,
number=2, type=12, cpp_type=9, label=2,
has_default_value=False, default_value="",
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
@ -538,7 +594,7 @@ _TXINPUTTYPE = _descriptor.Descriptor(
_descriptor.FieldDescriptor(
name='script_sig', full_name='TxInputType.script_sig', index=3,
number=4, type=12, cpp_type=9, label=1,
has_default_value=False, default_value="",
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
@ -563,6 +619,13 @@ _TXINPUTTYPE = _descriptor.Descriptor(
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='amount', full_name='TxInputType.amount', index=7,
number=8, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
@ -572,8 +635,10 @@ _TXINPUTTYPE = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
serialized_start=466,
serialized_end=685,
oneofs=[
],
serialized_start=531,
serialized_end=766,
)
@ -587,7 +652,7 @@ _TXOUTPUTTYPE = _descriptor.Descriptor(
_descriptor.FieldDescriptor(
name='address', full_name='TxOutputType.address', index=0,
number=1, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=unicode("", "utf-8"),
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
@ -622,7 +687,7 @@ _TXOUTPUTTYPE = _descriptor.Descriptor(
_descriptor.FieldDescriptor(
name='op_return_data', full_name='TxOutputType.op_return_data', index=5,
number=6, type=12, cpp_type=9, label=1,
has_default_value=False, default_value="",
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
@ -635,8 +700,10 @@ _TXOUTPUTTYPE = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
serialized_start=688,
serialized_end=863,
oneofs=[
],
serialized_start=769,
serialized_end=944,
)
@ -657,7 +724,7 @@ _TXOUTPUTBINTYPE = _descriptor.Descriptor(
_descriptor.FieldDescriptor(
name='script_pubkey', full_name='TxOutputBinType.script_pubkey', index=1,
number=2, type=12, cpp_type=9, label=2,
has_default_value=False, default_value="",
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
@ -670,8 +737,10 @@ _TXOUTPUTBINTYPE = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
serialized_start=865,
serialized_end=921,
oneofs=[
],
serialized_start=946,
serialized_end=1002,
)
@ -740,8 +809,10 @@ _TRANSACTIONTYPE = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
serialized_start=924,
serialized_end=1119,
oneofs=[
],
serialized_start=1005,
serialized_end=1200,
)
@ -762,7 +833,7 @@ _TXREQUESTDETAILSTYPE = _descriptor.Descriptor(
_descriptor.FieldDescriptor(
name='tx_hash', full_name='TxRequestDetailsType.tx_hash', index=1,
number=2, type=12, cpp_type=9, label=1,
has_default_value=False, default_value="",
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
@ -775,8 +846,10 @@ _TXREQUESTDETAILSTYPE = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
serialized_start=1121,
serialized_end=1183,
oneofs=[
],
serialized_start=1202,
serialized_end=1264,
)
@ -797,14 +870,14 @@ _TXREQUESTSERIALIZEDTYPE = _descriptor.Descriptor(
_descriptor.FieldDescriptor(
name='signature', full_name='TxRequestSerializedType.signature', index=1,
number=2, type=12, cpp_type=9, label=1,
has_default_value=False, default_value="",
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='serialized_tx', full_name='TxRequestSerializedType.serialized_tx', index=2,
number=3, type=12, cpp_type=9, label=1,
has_default_value=False, default_value="",
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
@ -817,8 +890,10 @@ _TXREQUESTSERIALIZEDTYPE = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
serialized_start=1185,
serialized_end=1277,
oneofs=[
],
serialized_start=1266,
serialized_end=1358,
)
@ -832,35 +907,35 @@ _IDENTITYTYPE = _descriptor.Descriptor(
_descriptor.FieldDescriptor(
name='proto', full_name='IdentityType.proto', index=0,
number=1, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=unicode("", "utf-8"),
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='user', full_name='IdentityType.user', index=1,
number=2, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=unicode("", "utf-8"),
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='host', full_name='IdentityType.host', index=2,
number=3, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=unicode("", "utf-8"),
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='port', full_name='IdentityType.port', index=3,
number=4, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=unicode("", "utf-8"),
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='path', full_name='IdentityType.path', index=4,
number=5, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=unicode("", "utf-8"),
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
@ -880,8 +955,10 @@ _IDENTITYTYPE = _descriptor.Descriptor(
options=None,
is_extendable=False,
extension_ranges=[],
serialized_start=1279,
serialized_end=1382,
oneofs=[
],
serialized_start=1360,
serialized_end=1463,
)
_HDNODEPATHTYPE.fields_by_name['node'].message_type = _HDNODETYPE
@ -904,72 +981,93 @@ DESCRIPTOR.message_types_by_name['TransactionType'] = _TRANSACTIONTYPE
DESCRIPTOR.message_types_by_name['TxRequestDetailsType'] = _TXREQUESTDETAILSTYPE
DESCRIPTOR.message_types_by_name['TxRequestSerializedType'] = _TXREQUESTSERIALIZEDTYPE
DESCRIPTOR.message_types_by_name['IdentityType'] = _IDENTITYTYPE
DESCRIPTOR.enum_types_by_name['FailureType'] = _FAILURETYPE
DESCRIPTOR.enum_types_by_name['OutputScriptType'] = _OUTPUTSCRIPTTYPE
DESCRIPTOR.enum_types_by_name['InputScriptType'] = _INPUTSCRIPTTYPE
DESCRIPTOR.enum_types_by_name['RequestType'] = _REQUESTTYPE
DESCRIPTOR.enum_types_by_name['ButtonRequestType'] = _BUTTONREQUESTTYPE
DESCRIPTOR.enum_types_by_name['PinMatrixRequestType'] = _PINMATRIXREQUESTTYPE
DESCRIPTOR.extensions_by_name['wire_in'] = wire_in
DESCRIPTOR.extensions_by_name['wire_out'] = wire_out
DESCRIPTOR.extensions_by_name['wire_debug_in'] = wire_debug_in
DESCRIPTOR.extensions_by_name['wire_debug_out'] = wire_debug_out
class HDNodeType(_message.Message):
__metaclass__ = _reflection.GeneratedProtocolMessageType
DESCRIPTOR = _HDNODETYPE
HDNodeType = _reflection.GeneratedProtocolMessageType('HDNodeType', (_message.Message,), dict(
DESCRIPTOR = _HDNODETYPE,
__module__ = 'types_pb2'
# @@protoc_insertion_point(class_scope:HDNodeType)
))
_sym_db.RegisterMessage(HDNodeType)
class HDNodePathType(_message.Message):
__metaclass__ = _reflection.GeneratedProtocolMessageType
DESCRIPTOR = _HDNODEPATHTYPE
HDNodePathType = _reflection.GeneratedProtocolMessageType('HDNodePathType', (_message.Message,), dict(
DESCRIPTOR = _HDNODEPATHTYPE,
__module__ = 'types_pb2'
# @@protoc_insertion_point(class_scope:HDNodePathType)
))
_sym_db.RegisterMessage(HDNodePathType)
class CoinType(_message.Message):
__metaclass__ = _reflection.GeneratedProtocolMessageType
DESCRIPTOR = _COINTYPE
CoinType = _reflection.GeneratedProtocolMessageType('CoinType', (_message.Message,), dict(
DESCRIPTOR = _COINTYPE,
__module__ = 'types_pb2'
# @@protoc_insertion_point(class_scope:CoinType)
))
_sym_db.RegisterMessage(CoinType)
class MultisigRedeemScriptType(_message.Message):
__metaclass__ = _reflection.GeneratedProtocolMessageType
DESCRIPTOR = _MULTISIGREDEEMSCRIPTTYPE
MultisigRedeemScriptType = _reflection.GeneratedProtocolMessageType('MultisigRedeemScriptType', (_message.Message,), dict(
DESCRIPTOR = _MULTISIGREDEEMSCRIPTTYPE,
__module__ = 'types_pb2'
# @@protoc_insertion_point(class_scope:MultisigRedeemScriptType)
))
_sym_db.RegisterMessage(MultisigRedeemScriptType)
class TxInputType(_message.Message):
__metaclass__ = _reflection.GeneratedProtocolMessageType
DESCRIPTOR = _TXINPUTTYPE
TxInputType = _reflection.GeneratedProtocolMessageType('TxInputType', (_message.Message,), dict(
DESCRIPTOR = _TXINPUTTYPE,
__module__ = 'types_pb2'
# @@protoc_insertion_point(class_scope:TxInputType)
))
_sym_db.RegisterMessage(TxInputType)
class TxOutputType(_message.Message):
__metaclass__ = _reflection.GeneratedProtocolMessageType
DESCRIPTOR = _TXOUTPUTTYPE
TxOutputType = _reflection.GeneratedProtocolMessageType('TxOutputType', (_message.Message,), dict(
DESCRIPTOR = _TXOUTPUTTYPE,
__module__ = 'types_pb2'
# @@protoc_insertion_point(class_scope:TxOutputType)
))
_sym_db.RegisterMessage(TxOutputType)
class TxOutputBinType(_message.Message):
__metaclass__ = _reflection.GeneratedProtocolMessageType
DESCRIPTOR = _TXOUTPUTBINTYPE
TxOutputBinType = _reflection.GeneratedProtocolMessageType('TxOutputBinType', (_message.Message,), dict(
DESCRIPTOR = _TXOUTPUTBINTYPE,
__module__ = 'types_pb2'
# @@protoc_insertion_point(class_scope:TxOutputBinType)
))
_sym_db.RegisterMessage(TxOutputBinType)
class TransactionType(_message.Message):
__metaclass__ = _reflection.GeneratedProtocolMessageType
DESCRIPTOR = _TRANSACTIONTYPE
TransactionType = _reflection.GeneratedProtocolMessageType('TransactionType', (_message.Message,), dict(
DESCRIPTOR = _TRANSACTIONTYPE,
__module__ = 'types_pb2'
# @@protoc_insertion_point(class_scope:TransactionType)
))
_sym_db.RegisterMessage(TransactionType)
class TxRequestDetailsType(_message.Message):
__metaclass__ = _reflection.GeneratedProtocolMessageType
DESCRIPTOR = _TXREQUESTDETAILSTYPE
TxRequestDetailsType = _reflection.GeneratedProtocolMessageType('TxRequestDetailsType', (_message.Message,), dict(
DESCRIPTOR = _TXREQUESTDETAILSTYPE,
__module__ = 'types_pb2'
# @@protoc_insertion_point(class_scope:TxRequestDetailsType)
))
_sym_db.RegisterMessage(TxRequestDetailsType)
class TxRequestSerializedType(_message.Message):
__metaclass__ = _reflection.GeneratedProtocolMessageType
DESCRIPTOR = _TXREQUESTSERIALIZEDTYPE
TxRequestSerializedType = _reflection.GeneratedProtocolMessageType('TxRequestSerializedType', (_message.Message,), dict(
DESCRIPTOR = _TXREQUESTSERIALIZEDTYPE,
__module__ = 'types_pb2'
# @@protoc_insertion_point(class_scope:TxRequestSerializedType)
))
_sym_db.RegisterMessage(TxRequestSerializedType)
class IdentityType(_message.Message):
__metaclass__ = _reflection.GeneratedProtocolMessageType
DESCRIPTOR = _IDENTITYTYPE
IdentityType = _reflection.GeneratedProtocolMessageType('IdentityType', (_message.Message,), dict(
DESCRIPTOR = _IDENTITYTYPE,
__module__ = 'types_pb2'
# @@protoc_insertion_point(class_scope:IdentityType)
))
_sym_db.RegisterMessage(IdentityType)
google.protobuf.descriptor_pb2.EnumValueOptions.RegisterExtension(wire_in)
google.protobuf.descriptor_pb2.EnumValueOptions.RegisterExtension(wire_out)
@ -977,5 +1075,5 @@ google.protobuf.descriptor_pb2.EnumValueOptions.RegisterExtension(wire_debug_in)
google.protobuf.descriptor_pb2.EnumValueOptions.RegisterExtension(wire_debug_out)
DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), '\n\037com.satoshilabs.trezor.protobufB\nTrezorType')
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\037com.satoshilabs.trezor.protobufB\nTrezorType'))
# @@protoc_insertion_point(module_scope)