1# Automatically generated by pb2py
2# fmt: off
3# isort:skip_file
4
5from enum import IntEnum
6from typing import Sequence, Optional
7
8from . import protobuf
9
10
11class BinanceOrderType(IntEnum):
12    OT_UNKNOWN = 0
13    MARKET = 1
14    LIMIT = 2
15    OT_RESERVED = 3
16
17
18class BinanceOrderSide(IntEnum):
19    SIDE_UNKNOWN = 0
20    BUY = 1
21    SELL = 2
22
23
24class BinanceTimeInForce(IntEnum):
25    TIF_UNKNOWN = 0
26    GTE = 1
27    TIF_RESERVED = 2
28    IOC = 3
29
30
31class MessageType(IntEnum):
32    Initialize = 0
33    Ping = 1
34    Success = 2
35    Failure = 3
36    ChangePin = 4
37    WipeDevice = 5
38    GetEntropy = 9
39    Entropy = 10
40    LoadDevice = 13
41    ResetDevice = 14
42    Features = 17
43    PinMatrixRequest = 18
44    PinMatrixAck = 19
45    Cancel = 20
46    LockDevice = 24
47    ApplySettings = 25
48    ButtonRequest = 26
49    ButtonAck = 27
50    ApplyFlags = 28
51    BackupDevice = 34
52    EntropyRequest = 35
53    EntropyAck = 36
54    PassphraseRequest = 41
55    PassphraseAck = 42
56    RecoveryDevice = 45
57    WordRequest = 46
58    WordAck = 47
59    GetFeatures = 55
60    SdProtect = 79
61    ChangeWipeCode = 82
62    EndSession = 83
63    DoPreauthorized = 84
64    PreauthorizedRequest = 85
65    CancelAuthorization = 86
66    RebootToBootloader = 87
67    SetU2FCounter = 63
68    GetNextU2FCounter = 80
69    NextU2FCounter = 81
70    Deprecated_PassphraseStateRequest = 77
71    Deprecated_PassphraseStateAck = 78
72    FirmwareErase = 6
73    FirmwareUpload = 7
74    FirmwareRequest = 8
75    SelfTest = 32
76    GetPublicKey = 11
77    PublicKey = 12
78    SignTx = 15
79    TxRequest = 21
80    TxAck = 22
81    GetAddress = 29
82    Address = 30
83    SignMessage = 38
84    VerifyMessage = 39
85    MessageSignature = 40
86    GetOwnershipId = 43
87    OwnershipId = 44
88    GetOwnershipProof = 49
89    OwnershipProof = 50
90    AuthorizeCoinJoin = 51
91    CipherKeyValue = 23
92    CipheredKeyValue = 48
93    SignIdentity = 53
94    SignedIdentity = 54
95    GetECDHSessionKey = 61
96    ECDHSessionKey = 62
97    CosiCommit = 71
98    CosiCommitment = 72
99    CosiSign = 73
100    CosiSignature = 74
101    DebugLinkDecision = 100
102    DebugLinkGetState = 101
103    DebugLinkState = 102
104    DebugLinkStop = 103
105    DebugLinkLog = 104
106    DebugLinkMemoryRead = 110
107    DebugLinkMemory = 111
108    DebugLinkMemoryWrite = 112
109    DebugLinkFlashErase = 113
110    DebugLinkLayout = 9001
111    DebugLinkReseedRandom = 9002
112    DebugLinkRecordScreen = 9003
113    DebugLinkEraseSdCard = 9005
114    DebugLinkWatchLayout = 9006
115    EthereumGetPublicKey = 450
116    EthereumPublicKey = 451
117    EthereumGetAddress = 56
118    EthereumAddress = 57
119    EthereumSignTx = 58
120    EthereumSignTxEIP1559 = 452
121    EthereumTxRequest = 59
122    EthereumTxAck = 60
123    EthereumSignMessage = 64
124    EthereumVerifyMessage = 65
125    EthereumMessageSignature = 66
126    EthereumSignTypedData = 464
127    EthereumTypedDataStructRequest = 465
128    EthereumTypedDataStructAck = 466
129    EthereumTypedDataValueRequest = 467
130    EthereumTypedDataValueAck = 468
131    EthereumTypedDataSignature = 469
132    NEMGetAddress = 67
133    NEMAddress = 68
134    NEMSignTx = 69
135    NEMSignedTx = 70
136    NEMDecryptMessage = 75
137    NEMDecryptedMessage = 76
138    TezosGetAddress = 150
139    TezosAddress = 151
140    TezosSignTx = 152
141    TezosSignedTx = 153
142    TezosGetPublicKey = 154
143    TezosPublicKey = 155
144    StellarSignTx = 202
145    StellarTxOpRequest = 203
146    StellarGetAddress = 207
147    StellarAddress = 208
148    StellarCreateAccountOp = 210
149    StellarPaymentOp = 211
150    StellarPathPaymentStrictReceiveOp = 212
151    StellarManageSellOfferOp = 213
152    StellarCreatePassiveSellOfferOp = 214
153    StellarSetOptionsOp = 215
154    StellarChangeTrustOp = 216
155    StellarAllowTrustOp = 217
156    StellarAccountMergeOp = 218
157    StellarManageDataOp = 220
158    StellarBumpSequenceOp = 221
159    StellarManageBuyOfferOp = 222
160    StellarPathPaymentStrictSendOp = 223
161    StellarSignedTx = 230
162    CardanoSignTx = 303
163    CardanoGetPublicKey = 305
164    CardanoPublicKey = 306
165    CardanoGetAddress = 307
166    CardanoAddress = 308
167    CardanoSignedTx = 310
168    CardanoSignedTxChunk = 311
169    CardanoSignedTxChunkAck = 312
170    CardanoTxItemAck = 313
171    CardanoTxAuxiliaryDataSupplement = 314
172    CardanoTxWitnessRequest = 315
173    CardanoTxWitnessResponse = 316
174    CardanoTxHostAck = 317
175    CardanoTxBodyHash = 318
176    CardanoSignTxFinished = 319
177    CardanoSignTxInit = 320
178    CardanoTxInput = 321
179    CardanoTxOutput = 322
180    CardanoAssetGroup = 323
181    CardanoToken = 324
182    CardanoTxCertificate = 325
183    CardanoTxWithdrawal = 326
184    CardanoTxAuxiliaryData = 327
185    CardanoPoolOwner = 328
186    CardanoPoolRelayParameters = 329
187    CardanoGetNativeScriptHash = 330
188    CardanoNativeScriptHash = 331
189    CardanoTxMint = 332
190    RippleGetAddress = 400
191    RippleAddress = 401
192    RippleSignTx = 402
193    RippleSignedTx = 403
194    MoneroTransactionInitRequest = 501
195    MoneroTransactionInitAck = 502
196    MoneroTransactionSetInputRequest = 503
197    MoneroTransactionSetInputAck = 504
198    MoneroTransactionInputsPermutationRequest = 505
199    MoneroTransactionInputsPermutationAck = 506
200    MoneroTransactionInputViniRequest = 507
201    MoneroTransactionInputViniAck = 508
202    MoneroTransactionAllInputsSetRequest = 509
203    MoneroTransactionAllInputsSetAck = 510
204    MoneroTransactionSetOutputRequest = 511
205    MoneroTransactionSetOutputAck = 512
206    MoneroTransactionAllOutSetRequest = 513
207    MoneroTransactionAllOutSetAck = 514
208    MoneroTransactionSignInputRequest = 515
209    MoneroTransactionSignInputAck = 516
210    MoneroTransactionFinalRequest = 517
211    MoneroTransactionFinalAck = 518
212    MoneroKeyImageExportInitRequest = 530
213    MoneroKeyImageExportInitAck = 531
214    MoneroKeyImageSyncStepRequest = 532
215    MoneroKeyImageSyncStepAck = 533
216    MoneroKeyImageSyncFinalRequest = 534
217    MoneroKeyImageSyncFinalAck = 535
218    MoneroGetAddress = 540
219    MoneroAddress = 541
220    MoneroGetWatchKey = 542
221    MoneroWatchKey = 543
222    DebugMoneroDiagRequest = 546
223    DebugMoneroDiagAck = 547
224    MoneroGetTxKeyRequest = 550
225    MoneroGetTxKeyAck = 551
226    MoneroLiveRefreshStartRequest = 552
227    MoneroLiveRefreshStartAck = 553
228    MoneroLiveRefreshStepRequest = 554
229    MoneroLiveRefreshStepAck = 555
230    MoneroLiveRefreshFinalRequest = 556
231    MoneroLiveRefreshFinalAck = 557
232    EosGetPublicKey = 600
233    EosPublicKey = 601
234    EosSignTx = 602
235    EosTxActionRequest = 603
236    EosTxActionAck = 604
237    EosSignedTx = 605
238    BinanceGetAddress = 700
239    BinanceAddress = 701
240    BinanceGetPublicKey = 702
241    BinancePublicKey = 703
242    BinanceSignTx = 704
243    BinanceTxRequest = 705
244    BinanceTransferMsg = 706
245    BinanceOrderMsg = 707
246    BinanceCancelMsg = 708
247    BinanceSignedTx = 709
248    WebAuthnListResidentCredentials = 800
249    WebAuthnCredentials = 801
250    WebAuthnAddResidentCredential = 802
251    WebAuthnRemoveResidentCredential = 803
252
253
254class FailureType(IntEnum):
255    UnexpectedMessage = 1
256    ButtonExpected = 2
257    DataError = 3
258    ActionCancelled = 4
259    PinExpected = 5
260    PinCancelled = 6
261    PinInvalid = 7
262    InvalidSignature = 8
263    ProcessError = 9
264    NotEnoughFunds = 10
265    NotInitialized = 11
266    PinMismatch = 12
267    WipeCodeMismatch = 13
268    InvalidSession = 14
269    FirmwareError = 99
270
271
272class ButtonRequestType(IntEnum):
273    Other = 1
274    FeeOverThreshold = 2
275    ConfirmOutput = 3
276    ResetDevice = 4
277    ConfirmWord = 5
278    WipeDevice = 6
279    ProtectCall = 7
280    SignTx = 8
281    FirmwareCheck = 9
282    Address = 10
283    PublicKey = 11
284    MnemonicWordCount = 12
285    MnemonicInput = 13
286    _Deprecated_ButtonRequest_PassphraseType = 14
287    UnknownDerivationPath = 15
288    RecoveryHomepage = 16
289    Success = 17
290    Warning = 18
291    PassphraseEntry = 19
292    PinEntry = 20
293
294
295class PinMatrixRequestType(IntEnum):
296    Current = 1
297    NewFirst = 2
298    NewSecond = 3
299    WipeCodeFirst = 4
300    WipeCodeSecond = 5
301
302
303class InputScriptType(IntEnum):
304    SPENDADDRESS = 0
305    SPENDMULTISIG = 1
306    EXTERNAL = 2
307    SPENDWITNESS = 3
308    SPENDP2SHWITNESS = 4
309    SPENDTAPROOT = 5
310
311
312class OutputScriptType(IntEnum):
313    PAYTOADDRESS = 0
314    PAYTOSCRIPTHASH = 1
315    PAYTOMULTISIG = 2
316    PAYTOOPRETURN = 3
317    PAYTOWITNESS = 4
318    PAYTOP2SHWITNESS = 5
319    PAYTOTAPROOT = 6
320
321
322class DecredStakingSpendType(IntEnum):
323    SSGen = 0
324    SSRTX = 1
325
326
327class AmountUnit(IntEnum):
328    BITCOIN = 0
329    MILLIBITCOIN = 1
330    MICROBITCOIN = 2
331    SATOSHI = 3
332
333
334class RequestType(IntEnum):
335    TXINPUT = 0
336    TXOUTPUT = 1
337    TXMETA = 2
338    TXFINISHED = 3
339    TXEXTRADATA = 4
340    TXORIGINPUT = 5
341    TXORIGOUTPUT = 6
342
343
344class CardanoDerivationType(IntEnum):
345    LEDGER = 0
346    ICARUS = 1
347    ICARUS_TREZOR = 2
348
349
350class CardanoAddressType(IntEnum):
351    BASE = 0
352    BASE_SCRIPT_KEY = 1
353    BASE_KEY_SCRIPT = 2
354    BASE_SCRIPT_SCRIPT = 3
355    POINTER = 4
356    POINTER_SCRIPT = 5
357    ENTERPRISE = 6
358    ENTERPRISE_SCRIPT = 7
359    BYRON = 8
360    REWARD = 14
361    REWARD_SCRIPT = 15
362
363
364class CardanoNativeScriptType(IntEnum):
365    PUB_KEY = 0
366    ALL = 1
367    ANY = 2
368    N_OF_K = 3
369    INVALID_BEFORE = 4
370    INVALID_HEREAFTER = 5
371
372
373class CardanoNativeScriptHashDisplayFormat(IntEnum):
374    HIDE = 0
375    BECH32 = 1
376    POLICY_ID = 2
377
378
379class CardanoCertificateType(IntEnum):
380    STAKE_REGISTRATION = 0
381    STAKE_DEREGISTRATION = 1
382    STAKE_DELEGATION = 2
383    STAKE_POOL_REGISTRATION = 3
384
385
386class CardanoPoolRelayType(IntEnum):
387    SINGLE_HOST_IP = 0
388    SINGLE_HOST_NAME = 1
389    MULTIPLE_HOST_NAME = 2
390
391
392class CardanoTxAuxiliaryDataSupplementType(IntEnum):
393    NONE = 0
394    CATALYST_REGISTRATION_SIGNATURE = 1
395
396
397class CardanoTxSigningMode(IntEnum):
398    ORDINARY_TRANSACTION = 0
399    POOL_REGISTRATION_AS_OWNER = 1
400    MULTISIG_TRANSACTION = 2
401
402
403class CardanoTxWitnessType(IntEnum):
404    BYRON_WITNESS = 0
405    SHELLEY_WITNESS = 1
406
407
408class BackupType(IntEnum):
409    Bip39 = 0
410    Slip39_Basic = 1
411    Slip39_Advanced = 2
412
413
414class SafetyCheckLevel(IntEnum):
415    Strict = 0
416    PromptAlways = 1
417    PromptTemporarily = 2
418
419
420class Capability(IntEnum):
421    Bitcoin = 1
422    Bitcoin_like = 2
423    Binance = 3
424    Cardano = 4
425    Crypto = 5
426    EOS = 6
427    Ethereum = 7
428    Lisk = 8
429    Monero = 9
430    NEM = 10
431    Ripple = 11
432    Stellar = 12
433    Tezos = 13
434    U2F = 14
435    Shamir = 15
436    ShamirGroups = 16
437    PassphraseEntry = 17
438
439
440class SdProtectOperationType(IntEnum):
441    DISABLE = 0
442    ENABLE = 1
443    REFRESH = 2
444
445
446class RecoveryDeviceType(IntEnum):
447    ScrambledWords = 0
448    Matrix = 1
449
450
451class WordRequestType(IntEnum):
452    Plain = 0
453    Matrix9 = 1
454    Matrix6 = 2
455
456
457class DebugSwipeDirection(IntEnum):
458    UP = 0
459    DOWN = 1
460    LEFT = 2
461    RIGHT = 3
462
463
464class EthereumDataType(IntEnum):
465    UINT = 1
466    INT = 2
467    BYTES = 3
468    STRING = 4
469    BOOL = 5
470    ADDRESS = 6
471    ARRAY = 7
472    STRUCT = 8
473
474
475class NEMMosaicLevy(IntEnum):
476    MosaicLevy_Absolute = 1
477    MosaicLevy_Percentile = 2
478
479
480class NEMSupplyChangeType(IntEnum):
481    SupplyChange_Increase = 1
482    SupplyChange_Decrease = 2
483
484
485class NEMModificationType(IntEnum):
486    CosignatoryModification_Add = 1
487    CosignatoryModification_Delete = 2
488
489
490class NEMImportanceTransferMode(IntEnum):
491    ImportanceTransfer_Activate = 1
492    ImportanceTransfer_Deactivate = 2
493
494
495class StellarAssetType(IntEnum):
496    NATIVE = 0
497    ALPHANUM4 = 1
498    ALPHANUM12 = 2
499
500
501class StellarMemoType(IntEnum):
502    NONE = 0
503    TEXT = 1
504    ID = 2
505    HASH = 3
506    RETURN = 4
507
508
509class StellarSignerType(IntEnum):
510    ACCOUNT = 0
511    PRE_AUTH = 1
512    HASH = 2
513
514
515class TezosContractType(IntEnum):
516    Implicit = 0
517    Originated = 1
518
519
520class TezosBallotType(IntEnum):
521    Yay = 0
522    Nay = 1
523    Pass = 2
524
525
526class BinanceGetAddress(protobuf.MessageType):
527    MESSAGE_WIRE_TYPE = 700
528    FIELDS = {
529        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
530        2: protobuf.Field("show_display", "bool", repeated=False, required=False),
531    }
532
533    def __init__(
534        self,
535        *,
536        address_n: Optional[Sequence["int"]] = None,
537        show_display: Optional["bool"] = None,
538    ) -> None:
539        self.address_n: Sequence["int"] = address_n if address_n is not None else []
540        self.show_display = show_display
541
542
543class BinanceAddress(protobuf.MessageType):
544    MESSAGE_WIRE_TYPE = 701
545    FIELDS = {
546        1: protobuf.Field("address", "string", repeated=False, required=True),
547    }
548
549    def __init__(
550        self,
551        *,
552        address: "str",
553    ) -> None:
554        self.address = address
555
556
557class BinanceGetPublicKey(protobuf.MessageType):
558    MESSAGE_WIRE_TYPE = 702
559    FIELDS = {
560        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
561        2: protobuf.Field("show_display", "bool", repeated=False, required=False),
562    }
563
564    def __init__(
565        self,
566        *,
567        address_n: Optional[Sequence["int"]] = None,
568        show_display: Optional["bool"] = None,
569    ) -> None:
570        self.address_n: Sequence["int"] = address_n if address_n is not None else []
571        self.show_display = show_display
572
573
574class BinancePublicKey(protobuf.MessageType):
575    MESSAGE_WIRE_TYPE = 703
576    FIELDS = {
577        1: protobuf.Field("public_key", "bytes", repeated=False, required=True),
578    }
579
580    def __init__(
581        self,
582        *,
583        public_key: "bytes",
584    ) -> None:
585        self.public_key = public_key
586
587
588class BinanceSignTx(protobuf.MessageType):
589    MESSAGE_WIRE_TYPE = 704
590    FIELDS = {
591        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
592        2: protobuf.Field("msg_count", "uint32", repeated=False, required=False),
593        3: protobuf.Field("account_number", "sint64", repeated=False, required=False),
594        4: protobuf.Field("chain_id", "string", repeated=False, required=False),
595        5: protobuf.Field("memo", "string", repeated=False, required=False),
596        6: protobuf.Field("sequence", "sint64", repeated=False, required=False),
597        7: protobuf.Field("source", "sint64", repeated=False, required=False),
598    }
599
600    def __init__(
601        self,
602        *,
603        address_n: Optional[Sequence["int"]] = None,
604        msg_count: Optional["int"] = None,
605        account_number: Optional["int"] = None,
606        chain_id: Optional["str"] = None,
607        memo: Optional["str"] = None,
608        sequence: Optional["int"] = None,
609        source: Optional["int"] = None,
610    ) -> None:
611        self.address_n: Sequence["int"] = address_n if address_n is not None else []
612        self.msg_count = msg_count
613        self.account_number = account_number
614        self.chain_id = chain_id
615        self.memo = memo
616        self.sequence = sequence
617        self.source = source
618
619
620class BinanceTxRequest(protobuf.MessageType):
621    MESSAGE_WIRE_TYPE = 705
622
623
624class BinanceTransferMsg(protobuf.MessageType):
625    MESSAGE_WIRE_TYPE = 706
626    FIELDS = {
627        1: protobuf.Field("inputs", "BinanceInputOutput", repeated=True, required=False),
628        2: protobuf.Field("outputs", "BinanceInputOutput", repeated=True, required=False),
629    }
630
631    def __init__(
632        self,
633        *,
634        inputs: Optional[Sequence["BinanceInputOutput"]] = None,
635        outputs: Optional[Sequence["BinanceInputOutput"]] = None,
636    ) -> None:
637        self.inputs: Sequence["BinanceInputOutput"] = inputs if inputs is not None else []
638        self.outputs: Sequence["BinanceInputOutput"] = outputs if outputs is not None else []
639
640
641class BinanceOrderMsg(protobuf.MessageType):
642    MESSAGE_WIRE_TYPE = 707
643    FIELDS = {
644        1: protobuf.Field("id", "string", repeated=False, required=False),
645        2: protobuf.Field("ordertype", "BinanceOrderType", repeated=False, required=False),
646        3: protobuf.Field("price", "sint64", repeated=False, required=False),
647        4: protobuf.Field("quantity", "sint64", repeated=False, required=False),
648        5: protobuf.Field("sender", "string", repeated=False, required=False),
649        6: protobuf.Field("side", "BinanceOrderSide", repeated=False, required=False),
650        7: protobuf.Field("symbol", "string", repeated=False, required=False),
651        8: protobuf.Field("timeinforce", "BinanceTimeInForce", repeated=False, required=False),
652    }
653
654    def __init__(
655        self,
656        *,
657        id: Optional["str"] = None,
658        ordertype: Optional["BinanceOrderType"] = None,
659        price: Optional["int"] = None,
660        quantity: Optional["int"] = None,
661        sender: Optional["str"] = None,
662        side: Optional["BinanceOrderSide"] = None,
663        symbol: Optional["str"] = None,
664        timeinforce: Optional["BinanceTimeInForce"] = None,
665    ) -> None:
666        self.id = id
667        self.ordertype = ordertype
668        self.price = price
669        self.quantity = quantity
670        self.sender = sender
671        self.side = side
672        self.symbol = symbol
673        self.timeinforce = timeinforce
674
675
676class BinanceCancelMsg(protobuf.MessageType):
677    MESSAGE_WIRE_TYPE = 708
678    FIELDS = {
679        1: protobuf.Field("refid", "string", repeated=False, required=False),
680        2: protobuf.Field("sender", "string", repeated=False, required=False),
681        3: protobuf.Field("symbol", "string", repeated=False, required=False),
682    }
683
684    def __init__(
685        self,
686        *,
687        refid: Optional["str"] = None,
688        sender: Optional["str"] = None,
689        symbol: Optional["str"] = None,
690    ) -> None:
691        self.refid = refid
692        self.sender = sender
693        self.symbol = symbol
694
695
696class BinanceSignedTx(protobuf.MessageType):
697    MESSAGE_WIRE_TYPE = 709
698    FIELDS = {
699        1: protobuf.Field("signature", "bytes", repeated=False, required=True),
700        2: protobuf.Field("public_key", "bytes", repeated=False, required=True),
701    }
702
703    def __init__(
704        self,
705        *,
706        signature: "bytes",
707        public_key: "bytes",
708    ) -> None:
709        self.signature = signature
710        self.public_key = public_key
711
712
713class BinanceInputOutput(protobuf.MessageType):
714    MESSAGE_WIRE_TYPE = None
715    FIELDS = {
716        1: protobuf.Field("address", "string", repeated=False, required=False),
717        2: protobuf.Field("coins", "BinanceCoin", repeated=True, required=False),
718    }
719
720    def __init__(
721        self,
722        *,
723        coins: Optional[Sequence["BinanceCoin"]] = None,
724        address: Optional["str"] = None,
725    ) -> None:
726        self.coins: Sequence["BinanceCoin"] = coins if coins is not None else []
727        self.address = address
728
729
730class BinanceCoin(protobuf.MessageType):
731    MESSAGE_WIRE_TYPE = None
732    FIELDS = {
733        1: protobuf.Field("amount", "sint64", repeated=False, required=False),
734        2: protobuf.Field("denom", "string", repeated=False, required=False),
735    }
736
737    def __init__(
738        self,
739        *,
740        amount: Optional["int"] = None,
741        denom: Optional["str"] = None,
742    ) -> None:
743        self.amount = amount
744        self.denom = denom
745
746
747class Success(protobuf.MessageType):
748    MESSAGE_WIRE_TYPE = 2
749    FIELDS = {
750        1: protobuf.Field("message", "string", repeated=False, required=False),
751    }
752
753    def __init__(
754        self,
755        *,
756        message: Optional["str"] = '',
757    ) -> None:
758        self.message = message
759
760
761class Failure(protobuf.MessageType):
762    MESSAGE_WIRE_TYPE = 3
763    FIELDS = {
764        1: protobuf.Field("code", "FailureType", repeated=False, required=False),
765        2: protobuf.Field("message", "string", repeated=False, required=False),
766    }
767
768    def __init__(
769        self,
770        *,
771        code: Optional["FailureType"] = None,
772        message: Optional["str"] = None,
773    ) -> None:
774        self.code = code
775        self.message = message
776
777
778class ButtonRequest(protobuf.MessageType):
779    MESSAGE_WIRE_TYPE = 26
780    FIELDS = {
781        1: protobuf.Field("code", "ButtonRequestType", repeated=False, required=False),
782        2: protobuf.Field("pages", "uint32", repeated=False, required=False),
783    }
784
785    def __init__(
786        self,
787        *,
788        code: Optional["ButtonRequestType"] = None,
789        pages: Optional["int"] = None,
790    ) -> None:
791        self.code = code
792        self.pages = pages
793
794
795class ButtonAck(protobuf.MessageType):
796    MESSAGE_WIRE_TYPE = 27
797
798
799class PinMatrixRequest(protobuf.MessageType):
800    MESSAGE_WIRE_TYPE = 18
801    FIELDS = {
802        1: protobuf.Field("type", "PinMatrixRequestType", repeated=False, required=False),
803    }
804
805    def __init__(
806        self,
807        *,
808        type: Optional["PinMatrixRequestType"] = None,
809    ) -> None:
810        self.type = type
811
812
813class PinMatrixAck(protobuf.MessageType):
814    MESSAGE_WIRE_TYPE = 19
815    FIELDS = {
816        1: protobuf.Field("pin", "string", repeated=False, required=True),
817    }
818
819    def __init__(
820        self,
821        *,
822        pin: "str",
823    ) -> None:
824        self.pin = pin
825
826
827class PassphraseRequest(protobuf.MessageType):
828    MESSAGE_WIRE_TYPE = 41
829    FIELDS = {
830        1: protobuf.Field("_on_device", "bool", repeated=False, required=False),
831    }
832
833    def __init__(
834        self,
835        *,
836        _on_device: Optional["bool"] = None,
837    ) -> None:
838        self._on_device = _on_device
839
840
841class PassphraseAck(protobuf.MessageType):
842    MESSAGE_WIRE_TYPE = 42
843    FIELDS = {
844        1: protobuf.Field("passphrase", "string", repeated=False, required=False),
845        2: protobuf.Field("_state", "bytes", repeated=False, required=False),
846        3: protobuf.Field("on_device", "bool", repeated=False, required=False),
847    }
848
849    def __init__(
850        self,
851        *,
852        passphrase: Optional["str"] = None,
853        _state: Optional["bytes"] = None,
854        on_device: Optional["bool"] = None,
855    ) -> None:
856        self.passphrase = passphrase
857        self._state = _state
858        self.on_device = on_device
859
860
861class Deprecated_PassphraseStateRequest(protobuf.MessageType):
862    MESSAGE_WIRE_TYPE = 77
863    FIELDS = {
864        1: protobuf.Field("state", "bytes", repeated=False, required=False),
865    }
866
867    def __init__(
868        self,
869        *,
870        state: Optional["bytes"] = None,
871    ) -> None:
872        self.state = state
873
874
875class Deprecated_PassphraseStateAck(protobuf.MessageType):
876    MESSAGE_WIRE_TYPE = 78
877
878
879class HDNodeType(protobuf.MessageType):
880    MESSAGE_WIRE_TYPE = None
881    FIELDS = {
882        1: protobuf.Field("depth", "uint32", repeated=False, required=True),
883        2: protobuf.Field("fingerprint", "uint32", repeated=False, required=True),
884        3: protobuf.Field("child_num", "uint32", repeated=False, required=True),
885        4: protobuf.Field("chain_code", "bytes", repeated=False, required=True),
886        5: protobuf.Field("private_key", "bytes", repeated=False, required=False),
887        6: protobuf.Field("public_key", "bytes", repeated=False, required=True),
888    }
889
890    def __init__(
891        self,
892        *,
893        depth: "int",
894        fingerprint: "int",
895        child_num: "int",
896        chain_code: "bytes",
897        public_key: "bytes",
898        private_key: Optional["bytes"] = None,
899    ) -> None:
900        self.depth = depth
901        self.fingerprint = fingerprint
902        self.child_num = child_num
903        self.chain_code = chain_code
904        self.public_key = public_key
905        self.private_key = private_key
906
907
908class MultisigRedeemScriptType(protobuf.MessageType):
909    MESSAGE_WIRE_TYPE = None
910    FIELDS = {
911        1: protobuf.Field("pubkeys", "HDNodePathType", repeated=True, required=False),
912        2: protobuf.Field("signatures", "bytes", repeated=True, required=False),
913        3: protobuf.Field("m", "uint32", repeated=False, required=True),
914        4: protobuf.Field("nodes", "HDNodeType", repeated=True, required=False),
915        5: protobuf.Field("address_n", "uint32", repeated=True, required=False),
916    }
917
918    def __init__(
919        self,
920        *,
921        m: "int",
922        pubkeys: Optional[Sequence["HDNodePathType"]] = None,
923        signatures: Optional[Sequence["bytes"]] = None,
924        nodes: Optional[Sequence["HDNodeType"]] = None,
925        address_n: Optional[Sequence["int"]] = None,
926    ) -> None:
927        self.pubkeys: Sequence["HDNodePathType"] = pubkeys if pubkeys is not None else []
928        self.signatures: Sequence["bytes"] = signatures if signatures is not None else []
929        self.nodes: Sequence["HDNodeType"] = nodes if nodes is not None else []
930        self.address_n: Sequence["int"] = address_n if address_n is not None else []
931        self.m = m
932
933
934class GetPublicKey(protobuf.MessageType):
935    MESSAGE_WIRE_TYPE = 11
936    FIELDS = {
937        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
938        2: protobuf.Field("ecdsa_curve_name", "string", repeated=False, required=False),
939        3: protobuf.Field("show_display", "bool", repeated=False, required=False),
940        4: protobuf.Field("coin_name", "string", repeated=False, required=False),
941        5: protobuf.Field("script_type", "InputScriptType", repeated=False, required=False),
942        6: protobuf.Field("ignore_xpub_magic", "bool", repeated=False, required=False),
943    }
944
945    def __init__(
946        self,
947        *,
948        address_n: Optional[Sequence["int"]] = None,
949        ecdsa_curve_name: Optional["str"] = None,
950        show_display: Optional["bool"] = None,
951        coin_name: Optional["str"] = 'Bitcoin',
952        script_type: Optional["InputScriptType"] = InputScriptType.SPENDADDRESS,
953        ignore_xpub_magic: Optional["bool"] = None,
954    ) -> None:
955        self.address_n: Sequence["int"] = address_n if address_n is not None else []
956        self.ecdsa_curve_name = ecdsa_curve_name
957        self.show_display = show_display
958        self.coin_name = coin_name
959        self.script_type = script_type
960        self.ignore_xpub_magic = ignore_xpub_magic
961
962
963class PublicKey(protobuf.MessageType):
964    MESSAGE_WIRE_TYPE = 12
965    FIELDS = {
966        1: protobuf.Field("node", "HDNodeType", repeated=False, required=True),
967        2: protobuf.Field("xpub", "string", repeated=False, required=True),
968        3: protobuf.Field("root_fingerprint", "uint32", repeated=False, required=False),
969    }
970
971    def __init__(
972        self,
973        *,
974        node: "HDNodeType",
975        xpub: "str",
976        root_fingerprint: Optional["int"] = None,
977    ) -> None:
978        self.node = node
979        self.xpub = xpub
980        self.root_fingerprint = root_fingerprint
981
982
983class GetAddress(protobuf.MessageType):
984    MESSAGE_WIRE_TYPE = 29
985    FIELDS = {
986        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
987        2: protobuf.Field("coin_name", "string", repeated=False, required=False),
988        3: protobuf.Field("show_display", "bool", repeated=False, required=False),
989        4: protobuf.Field("multisig", "MultisigRedeemScriptType", repeated=False, required=False),
990        5: protobuf.Field("script_type", "InputScriptType", repeated=False, required=False),
991        6: protobuf.Field("ignore_xpub_magic", "bool", repeated=False, required=False),
992    }
993
994    def __init__(
995        self,
996        *,
997        address_n: Optional[Sequence["int"]] = None,
998        coin_name: Optional["str"] = 'Bitcoin',
999        show_display: Optional["bool"] = None,
1000        multisig: Optional["MultisigRedeemScriptType"] = None,
1001        script_type: Optional["InputScriptType"] = InputScriptType.SPENDADDRESS,
1002        ignore_xpub_magic: Optional["bool"] = None,
1003    ) -> None:
1004        self.address_n: Sequence["int"] = address_n if address_n is not None else []
1005        self.coin_name = coin_name
1006        self.show_display = show_display
1007        self.multisig = multisig
1008        self.script_type = script_type
1009        self.ignore_xpub_magic = ignore_xpub_magic
1010
1011
1012class Address(protobuf.MessageType):
1013    MESSAGE_WIRE_TYPE = 30
1014    FIELDS = {
1015        1: protobuf.Field("address", "string", repeated=False, required=True),
1016    }
1017
1018    def __init__(
1019        self,
1020        *,
1021        address: "str",
1022    ) -> None:
1023        self.address = address
1024
1025
1026class GetOwnershipId(protobuf.MessageType):
1027    MESSAGE_WIRE_TYPE = 43
1028    FIELDS = {
1029        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
1030        2: protobuf.Field("coin_name", "string", repeated=False, required=False),
1031        3: protobuf.Field("multisig", "MultisigRedeemScriptType", repeated=False, required=False),
1032        4: protobuf.Field("script_type", "InputScriptType", repeated=False, required=False),
1033    }
1034
1035    def __init__(
1036        self,
1037        *,
1038        address_n: Optional[Sequence["int"]] = None,
1039        coin_name: Optional["str"] = 'Bitcoin',
1040        multisig: Optional["MultisigRedeemScriptType"] = None,
1041        script_type: Optional["InputScriptType"] = InputScriptType.SPENDADDRESS,
1042    ) -> None:
1043        self.address_n: Sequence["int"] = address_n if address_n is not None else []
1044        self.coin_name = coin_name
1045        self.multisig = multisig
1046        self.script_type = script_type
1047
1048
1049class OwnershipId(protobuf.MessageType):
1050    MESSAGE_WIRE_TYPE = 44
1051    FIELDS = {
1052        1: protobuf.Field("ownership_id", "bytes", repeated=False, required=True),
1053    }
1054
1055    def __init__(
1056        self,
1057        *,
1058        ownership_id: "bytes",
1059    ) -> None:
1060        self.ownership_id = ownership_id
1061
1062
1063class SignMessage(protobuf.MessageType):
1064    MESSAGE_WIRE_TYPE = 38
1065    FIELDS = {
1066        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
1067        2: protobuf.Field("message", "bytes", repeated=False, required=True),
1068        3: protobuf.Field("coin_name", "string", repeated=False, required=False),
1069        4: protobuf.Field("script_type", "InputScriptType", repeated=False, required=False),
1070        5: protobuf.Field("no_script_type", "bool", repeated=False, required=False),
1071    }
1072
1073    def __init__(
1074        self,
1075        *,
1076        message: "bytes",
1077        address_n: Optional[Sequence["int"]] = None,
1078        coin_name: Optional["str"] = 'Bitcoin',
1079        script_type: Optional["InputScriptType"] = InputScriptType.SPENDADDRESS,
1080        no_script_type: Optional["bool"] = None,
1081    ) -> None:
1082        self.address_n: Sequence["int"] = address_n if address_n is not None else []
1083        self.message = message
1084        self.coin_name = coin_name
1085        self.script_type = script_type
1086        self.no_script_type = no_script_type
1087
1088
1089class MessageSignature(protobuf.MessageType):
1090    MESSAGE_WIRE_TYPE = 40
1091    FIELDS = {
1092        1: protobuf.Field("address", "string", repeated=False, required=True),
1093        2: protobuf.Field("signature", "bytes", repeated=False, required=True),
1094    }
1095
1096    def __init__(
1097        self,
1098        *,
1099        address: "str",
1100        signature: "bytes",
1101    ) -> None:
1102        self.address = address
1103        self.signature = signature
1104
1105
1106class VerifyMessage(protobuf.MessageType):
1107    MESSAGE_WIRE_TYPE = 39
1108    FIELDS = {
1109        1: protobuf.Field("address", "string", repeated=False, required=True),
1110        2: protobuf.Field("signature", "bytes", repeated=False, required=True),
1111        3: protobuf.Field("message", "bytes", repeated=False, required=True),
1112        4: protobuf.Field("coin_name", "string", repeated=False, required=False),
1113    }
1114
1115    def __init__(
1116        self,
1117        *,
1118        address: "str",
1119        signature: "bytes",
1120        message: "bytes",
1121        coin_name: Optional["str"] = 'Bitcoin',
1122    ) -> None:
1123        self.address = address
1124        self.signature = signature
1125        self.message = message
1126        self.coin_name = coin_name
1127
1128
1129class SignTx(protobuf.MessageType):
1130    MESSAGE_WIRE_TYPE = 15
1131    FIELDS = {
1132        1: protobuf.Field("outputs_count", "uint32", repeated=False, required=True),
1133        2: protobuf.Field("inputs_count", "uint32", repeated=False, required=True),
1134        3: protobuf.Field("coin_name", "string", repeated=False, required=False),
1135        4: protobuf.Field("version", "uint32", repeated=False, required=False),
1136        5: protobuf.Field("lock_time", "uint32", repeated=False, required=False),
1137        6: protobuf.Field("expiry", "uint32", repeated=False, required=False),
1138        7: protobuf.Field("overwintered", "bool", repeated=False, required=False),
1139        8: protobuf.Field("version_group_id", "uint32", repeated=False, required=False),
1140        9: protobuf.Field("timestamp", "uint32", repeated=False, required=False),
1141        10: protobuf.Field("branch_id", "uint32", repeated=False, required=False),
1142        11: protobuf.Field("amount_unit", "AmountUnit", repeated=False, required=False),
1143        12: protobuf.Field("decred_staking_ticket", "bool", repeated=False, required=False),
1144    }
1145
1146    def __init__(
1147        self,
1148        *,
1149        outputs_count: "int",
1150        inputs_count: "int",
1151        coin_name: Optional["str"] = 'Bitcoin',
1152        version: Optional["int"] = 1,
1153        lock_time: Optional["int"] = 0,
1154        expiry: Optional["int"] = None,
1155        overwintered: Optional["bool"] = None,
1156        version_group_id: Optional["int"] = None,
1157        timestamp: Optional["int"] = None,
1158        branch_id: Optional["int"] = None,
1159        amount_unit: Optional["AmountUnit"] = AmountUnit.BITCOIN,
1160        decred_staking_ticket: Optional["bool"] = False,
1161    ) -> None:
1162        self.outputs_count = outputs_count
1163        self.inputs_count = inputs_count
1164        self.coin_name = coin_name
1165        self.version = version
1166        self.lock_time = lock_time
1167        self.expiry = expiry
1168        self.overwintered = overwintered
1169        self.version_group_id = version_group_id
1170        self.timestamp = timestamp
1171        self.branch_id = branch_id
1172        self.amount_unit = amount_unit
1173        self.decred_staking_ticket = decred_staking_ticket
1174
1175
1176class TxRequest(protobuf.MessageType):
1177    MESSAGE_WIRE_TYPE = 21
1178    FIELDS = {
1179        1: protobuf.Field("request_type", "RequestType", repeated=False, required=False),
1180        2: protobuf.Field("details", "TxRequestDetailsType", repeated=False, required=False),
1181        3: protobuf.Field("serialized", "TxRequestSerializedType", repeated=False, required=False),
1182    }
1183
1184    def __init__(
1185        self,
1186        *,
1187        request_type: Optional["RequestType"] = None,
1188        details: Optional["TxRequestDetailsType"] = None,
1189        serialized: Optional["TxRequestSerializedType"] = None,
1190    ) -> None:
1191        self.request_type = request_type
1192        self.details = details
1193        self.serialized = serialized
1194
1195
1196class TxAck(protobuf.MessageType):
1197    MESSAGE_WIRE_TYPE = 22
1198    FIELDS = {
1199        1: protobuf.Field("tx", "TransactionType", repeated=False, required=False),
1200    }
1201
1202    def __init__(
1203        self,
1204        *,
1205        tx: Optional["TransactionType"] = None,
1206    ) -> None:
1207        self.tx = tx
1208
1209
1210class TxInput(protobuf.MessageType):
1211    MESSAGE_WIRE_TYPE = None
1212    FIELDS = {
1213        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
1214        2: protobuf.Field("prev_hash", "bytes", repeated=False, required=True),
1215        3: protobuf.Field("prev_index", "uint32", repeated=False, required=True),
1216        4: protobuf.Field("script_sig", "bytes", repeated=False, required=False),
1217        5: protobuf.Field("sequence", "uint32", repeated=False, required=False),
1218        6: protobuf.Field("script_type", "InputScriptType", repeated=False, required=False),
1219        7: protobuf.Field("multisig", "MultisigRedeemScriptType", repeated=False, required=False),
1220        8: protobuf.Field("amount", "uint64", repeated=False, required=True),
1221        9: protobuf.Field("decred_tree", "uint32", repeated=False, required=False),
1222        13: protobuf.Field("witness", "bytes", repeated=False, required=False),
1223        14: protobuf.Field("ownership_proof", "bytes", repeated=False, required=False),
1224        15: protobuf.Field("commitment_data", "bytes", repeated=False, required=False),
1225        16: protobuf.Field("orig_hash", "bytes", repeated=False, required=False),
1226        17: protobuf.Field("orig_index", "uint32", repeated=False, required=False),
1227        18: protobuf.Field("decred_staking_spend", "DecredStakingSpendType", repeated=False, required=False),
1228        19: protobuf.Field("script_pubkey", "bytes", repeated=False, required=False),
1229    }
1230
1231    def __init__(
1232        self,
1233        *,
1234        prev_hash: "bytes",
1235        prev_index: "int",
1236        amount: "int",
1237        address_n: Optional[Sequence["int"]] = None,
1238        script_sig: Optional["bytes"] = None,
1239        sequence: Optional["int"] = 4294967295,
1240        script_type: Optional["InputScriptType"] = InputScriptType.SPENDADDRESS,
1241        multisig: Optional["MultisigRedeemScriptType"] = None,
1242        decred_tree: Optional["int"] = None,
1243        witness: Optional["bytes"] = None,
1244        ownership_proof: Optional["bytes"] = None,
1245        commitment_data: Optional["bytes"] = None,
1246        orig_hash: Optional["bytes"] = None,
1247        orig_index: Optional["int"] = None,
1248        decred_staking_spend: Optional["DecredStakingSpendType"] = None,
1249        script_pubkey: Optional["bytes"] = None,
1250    ) -> None:
1251        self.address_n: Sequence["int"] = address_n if address_n is not None else []
1252        self.prev_hash = prev_hash
1253        self.prev_index = prev_index
1254        self.amount = amount
1255        self.script_sig = script_sig
1256        self.sequence = sequence
1257        self.script_type = script_type
1258        self.multisig = multisig
1259        self.decred_tree = decred_tree
1260        self.witness = witness
1261        self.ownership_proof = ownership_proof
1262        self.commitment_data = commitment_data
1263        self.orig_hash = orig_hash
1264        self.orig_index = orig_index
1265        self.decred_staking_spend = decred_staking_spend
1266        self.script_pubkey = script_pubkey
1267
1268
1269class TxOutput(protobuf.MessageType):
1270    MESSAGE_WIRE_TYPE = None
1271    FIELDS = {
1272        1: protobuf.Field("address", "string", repeated=False, required=False),
1273        2: protobuf.Field("address_n", "uint32", repeated=True, required=False),
1274        3: protobuf.Field("amount", "uint64", repeated=False, required=True),
1275        4: protobuf.Field("script_type", "OutputScriptType", repeated=False, required=False),
1276        5: protobuf.Field("multisig", "MultisigRedeemScriptType", repeated=False, required=False),
1277        6: protobuf.Field("op_return_data", "bytes", repeated=False, required=False),
1278        10: protobuf.Field("orig_hash", "bytes", repeated=False, required=False),
1279        11: protobuf.Field("orig_index", "uint32", repeated=False, required=False),
1280    }
1281
1282    def __init__(
1283        self,
1284        *,
1285        amount: "int",
1286        address_n: Optional[Sequence["int"]] = None,
1287        address: Optional["str"] = None,
1288        script_type: Optional["OutputScriptType"] = OutputScriptType.PAYTOADDRESS,
1289        multisig: Optional["MultisigRedeemScriptType"] = None,
1290        op_return_data: Optional["bytes"] = None,
1291        orig_hash: Optional["bytes"] = None,
1292        orig_index: Optional["int"] = None,
1293    ) -> None:
1294        self.address_n: Sequence["int"] = address_n if address_n is not None else []
1295        self.amount = amount
1296        self.address = address
1297        self.script_type = script_type
1298        self.multisig = multisig
1299        self.op_return_data = op_return_data
1300        self.orig_hash = orig_hash
1301        self.orig_index = orig_index
1302
1303
1304class PrevTx(protobuf.MessageType):
1305    MESSAGE_WIRE_TYPE = None
1306    FIELDS = {
1307        1: protobuf.Field("version", "uint32", repeated=False, required=True),
1308        4: protobuf.Field("lock_time", "uint32", repeated=False, required=True),
1309        6: protobuf.Field("inputs_count", "uint32", repeated=False, required=True),
1310        7: protobuf.Field("outputs_count", "uint32", repeated=False, required=True),
1311        9: protobuf.Field("extra_data_len", "uint32", repeated=False, required=False),
1312        10: protobuf.Field("expiry", "uint32", repeated=False, required=False),
1313        12: protobuf.Field("version_group_id", "uint32", repeated=False, required=False),
1314        13: protobuf.Field("timestamp", "uint32", repeated=False, required=False),
1315        14: protobuf.Field("branch_id", "uint32", repeated=False, required=False),
1316    }
1317
1318    def __init__(
1319        self,
1320        *,
1321        version: "int",
1322        lock_time: "int",
1323        inputs_count: "int",
1324        outputs_count: "int",
1325        extra_data_len: Optional["int"] = 0,
1326        expiry: Optional["int"] = None,
1327        version_group_id: Optional["int"] = None,
1328        timestamp: Optional["int"] = None,
1329        branch_id: Optional["int"] = None,
1330    ) -> None:
1331        self.version = version
1332        self.lock_time = lock_time
1333        self.inputs_count = inputs_count
1334        self.outputs_count = outputs_count
1335        self.extra_data_len = extra_data_len
1336        self.expiry = expiry
1337        self.version_group_id = version_group_id
1338        self.timestamp = timestamp
1339        self.branch_id = branch_id
1340
1341
1342class PrevInput(protobuf.MessageType):
1343    MESSAGE_WIRE_TYPE = None
1344    FIELDS = {
1345        2: protobuf.Field("prev_hash", "bytes", repeated=False, required=True),
1346        3: protobuf.Field("prev_index", "uint32", repeated=False, required=True),
1347        4: protobuf.Field("script_sig", "bytes", repeated=False, required=True),
1348        5: protobuf.Field("sequence", "uint32", repeated=False, required=True),
1349        9: protobuf.Field("decred_tree", "uint32", repeated=False, required=False),
1350    }
1351
1352    def __init__(
1353        self,
1354        *,
1355        prev_hash: "bytes",
1356        prev_index: "int",
1357        script_sig: "bytes",
1358        sequence: "int",
1359        decred_tree: Optional["int"] = None,
1360    ) -> None:
1361        self.prev_hash = prev_hash
1362        self.prev_index = prev_index
1363        self.script_sig = script_sig
1364        self.sequence = sequence
1365        self.decred_tree = decred_tree
1366
1367
1368class PrevOutput(protobuf.MessageType):
1369    MESSAGE_WIRE_TYPE = None
1370    FIELDS = {
1371        1: protobuf.Field("amount", "uint64", repeated=False, required=True),
1372        2: protobuf.Field("script_pubkey", "bytes", repeated=False, required=True),
1373        3: protobuf.Field("decred_script_version", "uint32", repeated=False, required=False),
1374    }
1375
1376    def __init__(
1377        self,
1378        *,
1379        amount: "int",
1380        script_pubkey: "bytes",
1381        decred_script_version: Optional["int"] = None,
1382    ) -> None:
1383        self.amount = amount
1384        self.script_pubkey = script_pubkey
1385        self.decred_script_version = decred_script_version
1386
1387
1388class TxAckInput(protobuf.MessageType):
1389    MESSAGE_WIRE_TYPE = 22
1390    FIELDS = {
1391        1: protobuf.Field("tx", "TxAckInputWrapper", repeated=False, required=True),
1392    }
1393
1394    def __init__(
1395        self,
1396        *,
1397        tx: "TxAckInputWrapper",
1398    ) -> None:
1399        self.tx = tx
1400
1401
1402class TxAckOutput(protobuf.MessageType):
1403    MESSAGE_WIRE_TYPE = 22
1404    FIELDS = {
1405        1: protobuf.Field("tx", "TxAckOutputWrapper", repeated=False, required=True),
1406    }
1407
1408    def __init__(
1409        self,
1410        *,
1411        tx: "TxAckOutputWrapper",
1412    ) -> None:
1413        self.tx = tx
1414
1415
1416class TxAckPrevMeta(protobuf.MessageType):
1417    MESSAGE_WIRE_TYPE = 22
1418    FIELDS = {
1419        1: protobuf.Field("tx", "PrevTx", repeated=False, required=True),
1420    }
1421
1422    def __init__(
1423        self,
1424        *,
1425        tx: "PrevTx",
1426    ) -> None:
1427        self.tx = tx
1428
1429
1430class TxAckPrevInput(protobuf.MessageType):
1431    MESSAGE_WIRE_TYPE = 22
1432    FIELDS = {
1433        1: protobuf.Field("tx", "TxAckPrevInputWrapper", repeated=False, required=True),
1434    }
1435
1436    def __init__(
1437        self,
1438        *,
1439        tx: "TxAckPrevInputWrapper",
1440    ) -> None:
1441        self.tx = tx
1442
1443
1444class TxAckPrevOutput(protobuf.MessageType):
1445    MESSAGE_WIRE_TYPE = 22
1446    FIELDS = {
1447        1: protobuf.Field("tx", "TxAckPrevOutputWrapper", repeated=False, required=True),
1448    }
1449
1450    def __init__(
1451        self,
1452        *,
1453        tx: "TxAckPrevOutputWrapper",
1454    ) -> None:
1455        self.tx = tx
1456
1457
1458class TxAckPrevExtraData(protobuf.MessageType):
1459    MESSAGE_WIRE_TYPE = 22
1460    FIELDS = {
1461        1: protobuf.Field("tx", "TxAckPrevExtraDataWrapper", repeated=False, required=True),
1462    }
1463
1464    def __init__(
1465        self,
1466        *,
1467        tx: "TxAckPrevExtraDataWrapper",
1468    ) -> None:
1469        self.tx = tx
1470
1471
1472class GetOwnershipProof(protobuf.MessageType):
1473    MESSAGE_WIRE_TYPE = 49
1474    FIELDS = {
1475        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
1476        2: protobuf.Field("coin_name", "string", repeated=False, required=False),
1477        3: protobuf.Field("script_type", "InputScriptType", repeated=False, required=False),
1478        4: protobuf.Field("multisig", "MultisigRedeemScriptType", repeated=False, required=False),
1479        5: protobuf.Field("user_confirmation", "bool", repeated=False, required=False),
1480        6: protobuf.Field("ownership_ids", "bytes", repeated=True, required=False),
1481        7: protobuf.Field("commitment_data", "bytes", repeated=False, required=False),
1482    }
1483
1484    def __init__(
1485        self,
1486        *,
1487        address_n: Optional[Sequence["int"]] = None,
1488        ownership_ids: Optional[Sequence["bytes"]] = None,
1489        coin_name: Optional["str"] = 'Bitcoin',
1490        script_type: Optional["InputScriptType"] = InputScriptType.SPENDWITNESS,
1491        multisig: Optional["MultisigRedeemScriptType"] = None,
1492        user_confirmation: Optional["bool"] = False,
1493        commitment_data: Optional["bytes"] = b'',
1494    ) -> None:
1495        self.address_n: Sequence["int"] = address_n if address_n is not None else []
1496        self.ownership_ids: Sequence["bytes"] = ownership_ids if ownership_ids is not None else []
1497        self.coin_name = coin_name
1498        self.script_type = script_type
1499        self.multisig = multisig
1500        self.user_confirmation = user_confirmation
1501        self.commitment_data = commitment_data
1502
1503
1504class OwnershipProof(protobuf.MessageType):
1505    MESSAGE_WIRE_TYPE = 50
1506    FIELDS = {
1507        1: protobuf.Field("ownership_proof", "bytes", repeated=False, required=True),
1508        2: protobuf.Field("signature", "bytes", repeated=False, required=True),
1509    }
1510
1511    def __init__(
1512        self,
1513        *,
1514        ownership_proof: "bytes",
1515        signature: "bytes",
1516    ) -> None:
1517        self.ownership_proof = ownership_proof
1518        self.signature = signature
1519
1520
1521class AuthorizeCoinJoin(protobuf.MessageType):
1522    MESSAGE_WIRE_TYPE = 51
1523    FIELDS = {
1524        1: protobuf.Field("coordinator", "string", repeated=False, required=True),
1525        2: protobuf.Field("max_total_fee", "uint64", repeated=False, required=True),
1526        3: protobuf.Field("fee_per_anonymity", "uint32", repeated=False, required=False),
1527        4: protobuf.Field("address_n", "uint32", repeated=True, required=False),
1528        5: protobuf.Field("coin_name", "string", repeated=False, required=False),
1529        6: protobuf.Field("script_type", "InputScriptType", repeated=False, required=False),
1530        11: protobuf.Field("amount_unit", "AmountUnit", repeated=False, required=False),
1531    }
1532
1533    def __init__(
1534        self,
1535        *,
1536        coordinator: "str",
1537        max_total_fee: "int",
1538        address_n: Optional[Sequence["int"]] = None,
1539        fee_per_anonymity: Optional["int"] = 0,
1540        coin_name: Optional["str"] = 'Bitcoin',
1541        script_type: Optional["InputScriptType"] = InputScriptType.SPENDADDRESS,
1542        amount_unit: Optional["AmountUnit"] = AmountUnit.BITCOIN,
1543    ) -> None:
1544        self.address_n: Sequence["int"] = address_n if address_n is not None else []
1545        self.coordinator = coordinator
1546        self.max_total_fee = max_total_fee
1547        self.fee_per_anonymity = fee_per_anonymity
1548        self.coin_name = coin_name
1549        self.script_type = script_type
1550        self.amount_unit = amount_unit
1551
1552
1553class HDNodePathType(protobuf.MessageType):
1554    MESSAGE_WIRE_TYPE = None
1555    FIELDS = {
1556        1: protobuf.Field("node", "HDNodeType", repeated=False, required=True),
1557        2: protobuf.Field("address_n", "uint32", repeated=True, required=False),
1558    }
1559
1560    def __init__(
1561        self,
1562        *,
1563        node: "HDNodeType",
1564        address_n: Optional[Sequence["int"]] = None,
1565    ) -> None:
1566        self.address_n: Sequence["int"] = address_n if address_n is not None else []
1567        self.node = node
1568
1569
1570class TxRequestDetailsType(protobuf.MessageType):
1571    MESSAGE_WIRE_TYPE = None
1572    FIELDS = {
1573        1: protobuf.Field("request_index", "uint32", repeated=False, required=False),
1574        2: protobuf.Field("tx_hash", "bytes", repeated=False, required=False),
1575        3: protobuf.Field("extra_data_len", "uint32", repeated=False, required=False),
1576        4: protobuf.Field("extra_data_offset", "uint32", repeated=False, required=False),
1577    }
1578
1579    def __init__(
1580        self,
1581        *,
1582        request_index: Optional["int"] = None,
1583        tx_hash: Optional["bytes"] = None,
1584        extra_data_len: Optional["int"] = None,
1585        extra_data_offset: Optional["int"] = None,
1586    ) -> None:
1587        self.request_index = request_index
1588        self.tx_hash = tx_hash
1589        self.extra_data_len = extra_data_len
1590        self.extra_data_offset = extra_data_offset
1591
1592
1593class TxRequestSerializedType(protobuf.MessageType):
1594    MESSAGE_WIRE_TYPE = None
1595    FIELDS = {
1596        1: protobuf.Field("signature_index", "uint32", repeated=False, required=False),
1597        2: protobuf.Field("signature", "bytes", repeated=False, required=False),
1598        3: protobuf.Field("serialized_tx", "bytes", repeated=False, required=False),
1599    }
1600
1601    def __init__(
1602        self,
1603        *,
1604        signature_index: Optional["int"] = None,
1605        signature: Optional["bytes"] = None,
1606        serialized_tx: Optional["bytes"] = None,
1607    ) -> None:
1608        self.signature_index = signature_index
1609        self.signature = signature
1610        self.serialized_tx = serialized_tx
1611
1612
1613class TransactionType(protobuf.MessageType):
1614    MESSAGE_WIRE_TYPE = None
1615    FIELDS = {
1616        1: protobuf.Field("version", "uint32", repeated=False, required=False),
1617        2: protobuf.Field("inputs", "TxInputType", repeated=True, required=False),
1618        3: protobuf.Field("bin_outputs", "TxOutputBinType", repeated=True, required=False),
1619        4: protobuf.Field("lock_time", "uint32", repeated=False, required=False),
1620        5: protobuf.Field("outputs", "TxOutputType", repeated=True, required=False),
1621        6: protobuf.Field("inputs_cnt", "uint32", repeated=False, required=False),
1622        7: protobuf.Field("outputs_cnt", "uint32", repeated=False, required=False),
1623        8: protobuf.Field("extra_data", "bytes", repeated=False, required=False),
1624        9: protobuf.Field("extra_data_len", "uint32", repeated=False, required=False),
1625        10: protobuf.Field("expiry", "uint32", repeated=False, required=False),
1626        11: protobuf.Field("overwintered", "bool", repeated=False, required=False),
1627        12: protobuf.Field("version_group_id", "uint32", repeated=False, required=False),
1628        13: protobuf.Field("timestamp", "uint32", repeated=False, required=False),
1629        14: protobuf.Field("branch_id", "uint32", repeated=False, required=False),
1630    }
1631
1632    def __init__(
1633        self,
1634        *,
1635        inputs: Optional[Sequence["TxInputType"]] = None,
1636        bin_outputs: Optional[Sequence["TxOutputBinType"]] = None,
1637        outputs: Optional[Sequence["TxOutputType"]] = None,
1638        version: Optional["int"] = None,
1639        lock_time: Optional["int"] = None,
1640        inputs_cnt: Optional["int"] = None,
1641        outputs_cnt: Optional["int"] = None,
1642        extra_data: Optional["bytes"] = None,
1643        extra_data_len: Optional["int"] = None,
1644        expiry: Optional["int"] = None,
1645        overwintered: Optional["bool"] = None,
1646        version_group_id: Optional["int"] = None,
1647        timestamp: Optional["int"] = None,
1648        branch_id: Optional["int"] = None,
1649    ) -> None:
1650        self.inputs: Sequence["TxInputType"] = inputs if inputs is not None else []
1651        self.bin_outputs: Sequence["TxOutputBinType"] = bin_outputs if bin_outputs is not None else []
1652        self.outputs: Sequence["TxOutputType"] = outputs if outputs is not None else []
1653        self.version = version
1654        self.lock_time = lock_time
1655        self.inputs_cnt = inputs_cnt
1656        self.outputs_cnt = outputs_cnt
1657        self.extra_data = extra_data
1658        self.extra_data_len = extra_data_len
1659        self.expiry = expiry
1660        self.overwintered = overwintered
1661        self.version_group_id = version_group_id
1662        self.timestamp = timestamp
1663        self.branch_id = branch_id
1664
1665
1666class TxInputType(protobuf.MessageType):
1667    MESSAGE_WIRE_TYPE = None
1668    FIELDS = {
1669        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
1670        2: protobuf.Field("prev_hash", "bytes", repeated=False, required=True),
1671        3: protobuf.Field("prev_index", "uint32", repeated=False, required=True),
1672        4: protobuf.Field("script_sig", "bytes", repeated=False, required=False),
1673        5: protobuf.Field("sequence", "uint32", repeated=False, required=False),
1674        6: protobuf.Field("script_type", "InputScriptType", repeated=False, required=False),
1675        7: protobuf.Field("multisig", "MultisigRedeemScriptType", repeated=False, required=False),
1676        8: protobuf.Field("amount", "uint64", repeated=False, required=False),
1677        9: protobuf.Field("decred_tree", "uint32", repeated=False, required=False),
1678        13: protobuf.Field("witness", "bytes", repeated=False, required=False),
1679        14: protobuf.Field("ownership_proof", "bytes", repeated=False, required=False),
1680        15: protobuf.Field("commitment_data", "bytes", repeated=False, required=False),
1681        16: protobuf.Field("orig_hash", "bytes", repeated=False, required=False),
1682        17: protobuf.Field("orig_index", "uint32", repeated=False, required=False),
1683        18: protobuf.Field("decred_staking_spend", "DecredStakingSpendType", repeated=False, required=False),
1684        19: protobuf.Field("script_pubkey", "bytes", repeated=False, required=False),
1685    }
1686
1687    def __init__(
1688        self,
1689        *,
1690        prev_hash: "bytes",
1691        prev_index: "int",
1692        address_n: Optional[Sequence["int"]] = None,
1693        script_sig: Optional["bytes"] = None,
1694        sequence: Optional["int"] = 4294967295,
1695        script_type: Optional["InputScriptType"] = InputScriptType.SPENDADDRESS,
1696        multisig: Optional["MultisigRedeemScriptType"] = None,
1697        amount: Optional["int"] = None,
1698        decred_tree: Optional["int"] = None,
1699        witness: Optional["bytes"] = None,
1700        ownership_proof: Optional["bytes"] = None,
1701        commitment_data: Optional["bytes"] = None,
1702        orig_hash: Optional["bytes"] = None,
1703        orig_index: Optional["int"] = None,
1704        decred_staking_spend: Optional["DecredStakingSpendType"] = None,
1705        script_pubkey: Optional["bytes"] = None,
1706    ) -> None:
1707        self.address_n: Sequence["int"] = address_n if address_n is not None else []
1708        self.prev_hash = prev_hash
1709        self.prev_index = prev_index
1710        self.script_sig = script_sig
1711        self.sequence = sequence
1712        self.script_type = script_type
1713        self.multisig = multisig
1714        self.amount = amount
1715        self.decred_tree = decred_tree
1716        self.witness = witness
1717        self.ownership_proof = ownership_proof
1718        self.commitment_data = commitment_data
1719        self.orig_hash = orig_hash
1720        self.orig_index = orig_index
1721        self.decred_staking_spend = decred_staking_spend
1722        self.script_pubkey = script_pubkey
1723
1724
1725class TxOutputBinType(protobuf.MessageType):
1726    MESSAGE_WIRE_TYPE = None
1727    FIELDS = {
1728        1: protobuf.Field("amount", "uint64", repeated=False, required=True),
1729        2: protobuf.Field("script_pubkey", "bytes", repeated=False, required=True),
1730        3: protobuf.Field("decred_script_version", "uint32", repeated=False, required=False),
1731    }
1732
1733    def __init__(
1734        self,
1735        *,
1736        amount: "int",
1737        script_pubkey: "bytes",
1738        decred_script_version: Optional["int"] = None,
1739    ) -> None:
1740        self.amount = amount
1741        self.script_pubkey = script_pubkey
1742        self.decred_script_version = decred_script_version
1743
1744
1745class TxOutputType(protobuf.MessageType):
1746    MESSAGE_WIRE_TYPE = None
1747    FIELDS = {
1748        1: protobuf.Field("address", "string", repeated=False, required=False),
1749        2: protobuf.Field("address_n", "uint32", repeated=True, required=False),
1750        3: protobuf.Field("amount", "uint64", repeated=False, required=True),
1751        4: protobuf.Field("script_type", "OutputScriptType", repeated=False, required=False),
1752        5: protobuf.Field("multisig", "MultisigRedeemScriptType", repeated=False, required=False),
1753        6: protobuf.Field("op_return_data", "bytes", repeated=False, required=False),
1754        10: protobuf.Field("orig_hash", "bytes", repeated=False, required=False),
1755        11: protobuf.Field("orig_index", "uint32", repeated=False, required=False),
1756    }
1757
1758    def __init__(
1759        self,
1760        *,
1761        amount: "int",
1762        address_n: Optional[Sequence["int"]] = None,
1763        address: Optional["str"] = None,
1764        script_type: Optional["OutputScriptType"] = OutputScriptType.PAYTOADDRESS,
1765        multisig: Optional["MultisigRedeemScriptType"] = None,
1766        op_return_data: Optional["bytes"] = None,
1767        orig_hash: Optional["bytes"] = None,
1768        orig_index: Optional["int"] = None,
1769    ) -> None:
1770        self.address_n: Sequence["int"] = address_n if address_n is not None else []
1771        self.amount = amount
1772        self.address = address
1773        self.script_type = script_type
1774        self.multisig = multisig
1775        self.op_return_data = op_return_data
1776        self.orig_hash = orig_hash
1777        self.orig_index = orig_index
1778
1779
1780class TxAckInputWrapper(protobuf.MessageType):
1781    MESSAGE_WIRE_TYPE = None
1782    FIELDS = {
1783        2: protobuf.Field("input", "TxInput", repeated=False, required=True),
1784    }
1785
1786    def __init__(
1787        self,
1788        *,
1789        input: "TxInput",
1790    ) -> None:
1791        self.input = input
1792
1793
1794class TxAckOutputWrapper(protobuf.MessageType):
1795    MESSAGE_WIRE_TYPE = None
1796    FIELDS = {
1797        5: protobuf.Field("output", "TxOutput", repeated=False, required=True),
1798    }
1799
1800    def __init__(
1801        self,
1802        *,
1803        output: "TxOutput",
1804    ) -> None:
1805        self.output = output
1806
1807
1808class TxAckPrevInputWrapper(protobuf.MessageType):
1809    MESSAGE_WIRE_TYPE = None
1810    FIELDS = {
1811        2: protobuf.Field("input", "PrevInput", repeated=False, required=True),
1812    }
1813
1814    def __init__(
1815        self,
1816        *,
1817        input: "PrevInput",
1818    ) -> None:
1819        self.input = input
1820
1821
1822class TxAckPrevOutputWrapper(protobuf.MessageType):
1823    MESSAGE_WIRE_TYPE = None
1824    FIELDS = {
1825        3: protobuf.Field("output", "PrevOutput", repeated=False, required=True),
1826    }
1827
1828    def __init__(
1829        self,
1830        *,
1831        output: "PrevOutput",
1832    ) -> None:
1833        self.output = output
1834
1835
1836class TxAckPrevExtraDataWrapper(protobuf.MessageType):
1837    MESSAGE_WIRE_TYPE = None
1838    FIELDS = {
1839        8: protobuf.Field("extra_data_chunk", "bytes", repeated=False, required=True),
1840    }
1841
1842    def __init__(
1843        self,
1844        *,
1845        extra_data_chunk: "bytes",
1846    ) -> None:
1847        self.extra_data_chunk = extra_data_chunk
1848
1849
1850class FirmwareErase(protobuf.MessageType):
1851    MESSAGE_WIRE_TYPE = 6
1852    FIELDS = {
1853        1: protobuf.Field("length", "uint32", repeated=False, required=False),
1854    }
1855
1856    def __init__(
1857        self,
1858        *,
1859        length: Optional["int"] = None,
1860    ) -> None:
1861        self.length = length
1862
1863
1864class FirmwareRequest(protobuf.MessageType):
1865    MESSAGE_WIRE_TYPE = 8
1866    FIELDS = {
1867        1: protobuf.Field("offset", "uint32", repeated=False, required=False),
1868        2: protobuf.Field("length", "uint32", repeated=False, required=False),
1869    }
1870
1871    def __init__(
1872        self,
1873        *,
1874        offset: Optional["int"] = None,
1875        length: Optional["int"] = None,
1876    ) -> None:
1877        self.offset = offset
1878        self.length = length
1879
1880
1881class FirmwareUpload(protobuf.MessageType):
1882    MESSAGE_WIRE_TYPE = 7
1883    FIELDS = {
1884        1: protobuf.Field("payload", "bytes", repeated=False, required=True),
1885        2: protobuf.Field("hash", "bytes", repeated=False, required=False),
1886    }
1887
1888    def __init__(
1889        self,
1890        *,
1891        payload: "bytes",
1892        hash: Optional["bytes"] = None,
1893    ) -> None:
1894        self.payload = payload
1895        self.hash = hash
1896
1897
1898class SelfTest(protobuf.MessageType):
1899    MESSAGE_WIRE_TYPE = 32
1900    FIELDS = {
1901        1: protobuf.Field("payload", "bytes", repeated=False, required=False),
1902    }
1903
1904    def __init__(
1905        self,
1906        *,
1907        payload: Optional["bytes"] = None,
1908    ) -> None:
1909        self.payload = payload
1910
1911
1912class CardanoBlockchainPointerType(protobuf.MessageType):
1913    MESSAGE_WIRE_TYPE = None
1914    FIELDS = {
1915        1: protobuf.Field("block_index", "uint32", repeated=False, required=True),
1916        2: protobuf.Field("tx_index", "uint32", repeated=False, required=True),
1917        3: protobuf.Field("certificate_index", "uint32", repeated=False, required=True),
1918    }
1919
1920    def __init__(
1921        self,
1922        *,
1923        block_index: "int",
1924        tx_index: "int",
1925        certificate_index: "int",
1926    ) -> None:
1927        self.block_index = block_index
1928        self.tx_index = tx_index
1929        self.certificate_index = certificate_index
1930
1931
1932class CardanoNativeScript(protobuf.MessageType):
1933    MESSAGE_WIRE_TYPE = None
1934    FIELDS = {
1935        1: protobuf.Field("type", "CardanoNativeScriptType", repeated=False, required=True),
1936        2: protobuf.Field("scripts", "CardanoNativeScript", repeated=True, required=False),
1937        3: protobuf.Field("key_hash", "bytes", repeated=False, required=False),
1938        4: protobuf.Field("key_path", "uint32", repeated=True, required=False),
1939        5: protobuf.Field("required_signatures_count", "uint32", repeated=False, required=False),
1940        6: protobuf.Field("invalid_before", "uint64", repeated=False, required=False),
1941        7: protobuf.Field("invalid_hereafter", "uint64", repeated=False, required=False),
1942    }
1943
1944    def __init__(
1945        self,
1946        *,
1947        type: "CardanoNativeScriptType",
1948        scripts: Optional[Sequence["CardanoNativeScript"]] = None,
1949        key_path: Optional[Sequence["int"]] = None,
1950        key_hash: Optional["bytes"] = None,
1951        required_signatures_count: Optional["int"] = None,
1952        invalid_before: Optional["int"] = None,
1953        invalid_hereafter: Optional["int"] = None,
1954    ) -> None:
1955        self.scripts: Sequence["CardanoNativeScript"] = scripts if scripts is not None else []
1956        self.key_path: Sequence["int"] = key_path if key_path is not None else []
1957        self.type = type
1958        self.key_hash = key_hash
1959        self.required_signatures_count = required_signatures_count
1960        self.invalid_before = invalid_before
1961        self.invalid_hereafter = invalid_hereafter
1962
1963
1964class CardanoGetNativeScriptHash(protobuf.MessageType):
1965    MESSAGE_WIRE_TYPE = 330
1966    FIELDS = {
1967        1: protobuf.Field("script", "CardanoNativeScript", repeated=False, required=True),
1968        2: protobuf.Field("display_format", "CardanoNativeScriptHashDisplayFormat", repeated=False, required=True),
1969        3: protobuf.Field("derivation_type", "CardanoDerivationType", repeated=False, required=True),
1970    }
1971
1972    def __init__(
1973        self,
1974        *,
1975        script: "CardanoNativeScript",
1976        display_format: "CardanoNativeScriptHashDisplayFormat",
1977        derivation_type: "CardanoDerivationType",
1978    ) -> None:
1979        self.script = script
1980        self.display_format = display_format
1981        self.derivation_type = derivation_type
1982
1983
1984class CardanoNativeScriptHash(protobuf.MessageType):
1985    MESSAGE_WIRE_TYPE = 331
1986    FIELDS = {
1987        1: protobuf.Field("script_hash", "bytes", repeated=False, required=True),
1988    }
1989
1990    def __init__(
1991        self,
1992        *,
1993        script_hash: "bytes",
1994    ) -> None:
1995        self.script_hash = script_hash
1996
1997
1998class CardanoAddressParametersType(protobuf.MessageType):
1999    MESSAGE_WIRE_TYPE = None
2000    FIELDS = {
2001        1: protobuf.Field("address_type", "CardanoAddressType", repeated=False, required=True),
2002        2: protobuf.Field("address_n", "uint32", repeated=True, required=False),
2003        3: protobuf.Field("address_n_staking", "uint32", repeated=True, required=False),
2004        4: protobuf.Field("staking_key_hash", "bytes", repeated=False, required=False),
2005        5: protobuf.Field("certificate_pointer", "CardanoBlockchainPointerType", repeated=False, required=False),
2006        6: protobuf.Field("script_payment_hash", "bytes", repeated=False, required=False),
2007        7: protobuf.Field("script_staking_hash", "bytes", repeated=False, required=False),
2008    }
2009
2010    def __init__(
2011        self,
2012        *,
2013        address_type: "CardanoAddressType",
2014        address_n: Optional[Sequence["int"]] = None,
2015        address_n_staking: Optional[Sequence["int"]] = None,
2016        staking_key_hash: Optional["bytes"] = None,
2017        certificate_pointer: Optional["CardanoBlockchainPointerType"] = None,
2018        script_payment_hash: Optional["bytes"] = None,
2019        script_staking_hash: Optional["bytes"] = None,
2020    ) -> None:
2021        self.address_n: Sequence["int"] = address_n if address_n is not None else []
2022        self.address_n_staking: Sequence["int"] = address_n_staking if address_n_staking is not None else []
2023        self.address_type = address_type
2024        self.staking_key_hash = staking_key_hash
2025        self.certificate_pointer = certificate_pointer
2026        self.script_payment_hash = script_payment_hash
2027        self.script_staking_hash = script_staking_hash
2028
2029
2030class CardanoGetAddress(protobuf.MessageType):
2031    MESSAGE_WIRE_TYPE = 307
2032    FIELDS = {
2033        2: protobuf.Field("show_display", "bool", repeated=False, required=False),
2034        3: protobuf.Field("protocol_magic", "uint32", repeated=False, required=True),
2035        4: protobuf.Field("network_id", "uint32", repeated=False, required=True),
2036        5: protobuf.Field("address_parameters", "CardanoAddressParametersType", repeated=False, required=True),
2037        6: protobuf.Field("derivation_type", "CardanoDerivationType", repeated=False, required=True),
2038    }
2039
2040    def __init__(
2041        self,
2042        *,
2043        protocol_magic: "int",
2044        network_id: "int",
2045        address_parameters: "CardanoAddressParametersType",
2046        derivation_type: "CardanoDerivationType",
2047        show_display: Optional["bool"] = False,
2048    ) -> None:
2049        self.protocol_magic = protocol_magic
2050        self.network_id = network_id
2051        self.address_parameters = address_parameters
2052        self.derivation_type = derivation_type
2053        self.show_display = show_display
2054
2055
2056class CardanoAddress(protobuf.MessageType):
2057    MESSAGE_WIRE_TYPE = 308
2058    FIELDS = {
2059        1: protobuf.Field("address", "string", repeated=False, required=True),
2060    }
2061
2062    def __init__(
2063        self,
2064        *,
2065        address: "str",
2066    ) -> None:
2067        self.address = address
2068
2069
2070class CardanoGetPublicKey(protobuf.MessageType):
2071    MESSAGE_WIRE_TYPE = 305
2072    FIELDS = {
2073        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
2074        2: protobuf.Field("show_display", "bool", repeated=False, required=False),
2075        3: protobuf.Field("derivation_type", "CardanoDerivationType", repeated=False, required=True),
2076    }
2077
2078    def __init__(
2079        self,
2080        *,
2081        derivation_type: "CardanoDerivationType",
2082        address_n: Optional[Sequence["int"]] = None,
2083        show_display: Optional["bool"] = None,
2084    ) -> None:
2085        self.address_n: Sequence["int"] = address_n if address_n is not None else []
2086        self.derivation_type = derivation_type
2087        self.show_display = show_display
2088
2089
2090class CardanoPublicKey(protobuf.MessageType):
2091    MESSAGE_WIRE_TYPE = 306
2092    FIELDS = {
2093        1: protobuf.Field("xpub", "string", repeated=False, required=True),
2094        2: protobuf.Field("node", "HDNodeType", repeated=False, required=True),
2095    }
2096
2097    def __init__(
2098        self,
2099        *,
2100        xpub: "str",
2101        node: "HDNodeType",
2102    ) -> None:
2103        self.xpub = xpub
2104        self.node = node
2105
2106
2107class CardanoSignTxInit(protobuf.MessageType):
2108    MESSAGE_WIRE_TYPE = 320
2109    FIELDS = {
2110        1: protobuf.Field("signing_mode", "CardanoTxSigningMode", repeated=False, required=True),
2111        2: protobuf.Field("protocol_magic", "uint32", repeated=False, required=True),
2112        3: protobuf.Field("network_id", "uint32", repeated=False, required=True),
2113        4: protobuf.Field("inputs_count", "uint32", repeated=False, required=True),
2114        5: protobuf.Field("outputs_count", "uint32", repeated=False, required=True),
2115        6: protobuf.Field("fee", "uint64", repeated=False, required=True),
2116        7: protobuf.Field("ttl", "uint64", repeated=False, required=False),
2117        8: protobuf.Field("certificates_count", "uint32", repeated=False, required=True),
2118        9: protobuf.Field("withdrawals_count", "uint32", repeated=False, required=True),
2119        10: protobuf.Field("has_auxiliary_data", "bool", repeated=False, required=True),
2120        11: protobuf.Field("validity_interval_start", "uint64", repeated=False, required=False),
2121        12: protobuf.Field("witness_requests_count", "uint32", repeated=False, required=True),
2122        13: protobuf.Field("minting_asset_groups_count", "uint32", repeated=False, required=True),
2123        14: protobuf.Field("derivation_type", "CardanoDerivationType", repeated=False, required=True),
2124    }
2125
2126    def __init__(
2127        self,
2128        *,
2129        signing_mode: "CardanoTxSigningMode",
2130        protocol_magic: "int",
2131        network_id: "int",
2132        inputs_count: "int",
2133        outputs_count: "int",
2134        fee: "int",
2135        certificates_count: "int",
2136        withdrawals_count: "int",
2137        has_auxiliary_data: "bool",
2138        witness_requests_count: "int",
2139        minting_asset_groups_count: "int",
2140        derivation_type: "CardanoDerivationType",
2141        ttl: Optional["int"] = None,
2142        validity_interval_start: Optional["int"] = None,
2143    ) -> None:
2144        self.signing_mode = signing_mode
2145        self.protocol_magic = protocol_magic
2146        self.network_id = network_id
2147        self.inputs_count = inputs_count
2148        self.outputs_count = outputs_count
2149        self.fee = fee
2150        self.certificates_count = certificates_count
2151        self.withdrawals_count = withdrawals_count
2152        self.has_auxiliary_data = has_auxiliary_data
2153        self.witness_requests_count = witness_requests_count
2154        self.minting_asset_groups_count = minting_asset_groups_count
2155        self.derivation_type = derivation_type
2156        self.ttl = ttl
2157        self.validity_interval_start = validity_interval_start
2158
2159
2160class CardanoTxInput(protobuf.MessageType):
2161    MESSAGE_WIRE_TYPE = 321
2162    FIELDS = {
2163        1: protobuf.Field("prev_hash", "bytes", repeated=False, required=True),
2164        2: protobuf.Field("prev_index", "uint32", repeated=False, required=True),
2165    }
2166
2167    def __init__(
2168        self,
2169        *,
2170        prev_hash: "bytes",
2171        prev_index: "int",
2172    ) -> None:
2173        self.prev_hash = prev_hash
2174        self.prev_index = prev_index
2175
2176
2177class CardanoTxOutput(protobuf.MessageType):
2178    MESSAGE_WIRE_TYPE = 322
2179    FIELDS = {
2180        1: protobuf.Field("address", "string", repeated=False, required=False),
2181        2: protobuf.Field("address_parameters", "CardanoAddressParametersType", repeated=False, required=False),
2182        3: protobuf.Field("amount", "uint64", repeated=False, required=True),
2183        4: protobuf.Field("asset_groups_count", "uint32", repeated=False, required=True),
2184    }
2185
2186    def __init__(
2187        self,
2188        *,
2189        amount: "int",
2190        asset_groups_count: "int",
2191        address: Optional["str"] = None,
2192        address_parameters: Optional["CardanoAddressParametersType"] = None,
2193    ) -> None:
2194        self.amount = amount
2195        self.asset_groups_count = asset_groups_count
2196        self.address = address
2197        self.address_parameters = address_parameters
2198
2199
2200class CardanoAssetGroup(protobuf.MessageType):
2201    MESSAGE_WIRE_TYPE = 323
2202    FIELDS = {
2203        1: protobuf.Field("policy_id", "bytes", repeated=False, required=True),
2204        2: protobuf.Field("tokens_count", "uint32", repeated=False, required=True),
2205    }
2206
2207    def __init__(
2208        self,
2209        *,
2210        policy_id: "bytes",
2211        tokens_count: "int",
2212    ) -> None:
2213        self.policy_id = policy_id
2214        self.tokens_count = tokens_count
2215
2216
2217class CardanoToken(protobuf.MessageType):
2218    MESSAGE_WIRE_TYPE = 324
2219    FIELDS = {
2220        1: protobuf.Field("asset_name_bytes", "bytes", repeated=False, required=True),
2221        2: protobuf.Field("amount", "uint64", repeated=False, required=False),
2222        3: protobuf.Field("mint_amount", "sint64", repeated=False, required=False),
2223    }
2224
2225    def __init__(
2226        self,
2227        *,
2228        asset_name_bytes: "bytes",
2229        amount: Optional["int"] = None,
2230        mint_amount: Optional["int"] = None,
2231    ) -> None:
2232        self.asset_name_bytes = asset_name_bytes
2233        self.amount = amount
2234        self.mint_amount = mint_amount
2235
2236
2237class CardanoPoolOwner(protobuf.MessageType):
2238    MESSAGE_WIRE_TYPE = 328
2239    FIELDS = {
2240        1: protobuf.Field("staking_key_path", "uint32", repeated=True, required=False),
2241        2: protobuf.Field("staking_key_hash", "bytes", repeated=False, required=False),
2242    }
2243
2244    def __init__(
2245        self,
2246        *,
2247        staking_key_path: Optional[Sequence["int"]] = None,
2248        staking_key_hash: Optional["bytes"] = None,
2249    ) -> None:
2250        self.staking_key_path: Sequence["int"] = staking_key_path if staking_key_path is not None else []
2251        self.staking_key_hash = staking_key_hash
2252
2253
2254class CardanoPoolRelayParameters(protobuf.MessageType):
2255    MESSAGE_WIRE_TYPE = 329
2256    FIELDS = {
2257        1: protobuf.Field("type", "CardanoPoolRelayType", repeated=False, required=True),
2258        2: protobuf.Field("ipv4_address", "bytes", repeated=False, required=False),
2259        3: protobuf.Field("ipv6_address", "bytes", repeated=False, required=False),
2260        4: protobuf.Field("host_name", "string", repeated=False, required=False),
2261        5: protobuf.Field("port", "uint32", repeated=False, required=False),
2262    }
2263
2264    def __init__(
2265        self,
2266        *,
2267        type: "CardanoPoolRelayType",
2268        ipv4_address: Optional["bytes"] = None,
2269        ipv6_address: Optional["bytes"] = None,
2270        host_name: Optional["str"] = None,
2271        port: Optional["int"] = None,
2272    ) -> None:
2273        self.type = type
2274        self.ipv4_address = ipv4_address
2275        self.ipv6_address = ipv6_address
2276        self.host_name = host_name
2277        self.port = port
2278
2279
2280class CardanoPoolMetadataType(protobuf.MessageType):
2281    MESSAGE_WIRE_TYPE = None
2282    FIELDS = {
2283        1: protobuf.Field("url", "string", repeated=False, required=True),
2284        2: protobuf.Field("hash", "bytes", repeated=False, required=True),
2285    }
2286
2287    def __init__(
2288        self,
2289        *,
2290        url: "str",
2291        hash: "bytes",
2292    ) -> None:
2293        self.url = url
2294        self.hash = hash
2295
2296
2297class CardanoPoolParametersType(protobuf.MessageType):
2298    MESSAGE_WIRE_TYPE = None
2299    FIELDS = {
2300        1: protobuf.Field("pool_id", "bytes", repeated=False, required=True),
2301        2: protobuf.Field("vrf_key_hash", "bytes", repeated=False, required=True),
2302        3: protobuf.Field("pledge", "uint64", repeated=False, required=True),
2303        4: protobuf.Field("cost", "uint64", repeated=False, required=True),
2304        5: protobuf.Field("margin_numerator", "uint64", repeated=False, required=True),
2305        6: protobuf.Field("margin_denominator", "uint64", repeated=False, required=True),
2306        7: protobuf.Field("reward_account", "string", repeated=False, required=True),
2307        8: protobuf.Field("owners", "CardanoPoolOwner", repeated=True, required=False),
2308        9: protobuf.Field("relays", "CardanoPoolRelayParameters", repeated=True, required=False),
2309        10: protobuf.Field("metadata", "CardanoPoolMetadataType", repeated=False, required=False),
2310        11: protobuf.Field("owners_count", "uint32", repeated=False, required=True),
2311        12: protobuf.Field("relays_count", "uint32", repeated=False, required=True),
2312    }
2313
2314    def __init__(
2315        self,
2316        *,
2317        pool_id: "bytes",
2318        vrf_key_hash: "bytes",
2319        pledge: "int",
2320        cost: "int",
2321        margin_numerator: "int",
2322        margin_denominator: "int",
2323        reward_account: "str",
2324        owners_count: "int",
2325        relays_count: "int",
2326        owners: Optional[Sequence["CardanoPoolOwner"]] = None,
2327        relays: Optional[Sequence["CardanoPoolRelayParameters"]] = None,
2328        metadata: Optional["CardanoPoolMetadataType"] = None,
2329    ) -> None:
2330        self.owners: Sequence["CardanoPoolOwner"] = owners if owners is not None else []
2331        self.relays: Sequence["CardanoPoolRelayParameters"] = relays if relays is not None else []
2332        self.pool_id = pool_id
2333        self.vrf_key_hash = vrf_key_hash
2334        self.pledge = pledge
2335        self.cost = cost
2336        self.margin_numerator = margin_numerator
2337        self.margin_denominator = margin_denominator
2338        self.reward_account = reward_account
2339        self.owners_count = owners_count
2340        self.relays_count = relays_count
2341        self.metadata = metadata
2342
2343
2344class CardanoTxCertificate(protobuf.MessageType):
2345    MESSAGE_WIRE_TYPE = 325
2346    FIELDS = {
2347        1: protobuf.Field("type", "CardanoCertificateType", repeated=False, required=True),
2348        2: protobuf.Field("path", "uint32", repeated=True, required=False),
2349        3: protobuf.Field("pool", "bytes", repeated=False, required=False),
2350        4: protobuf.Field("pool_parameters", "CardanoPoolParametersType", repeated=False, required=False),
2351        5: protobuf.Field("script_hash", "bytes", repeated=False, required=False),
2352    }
2353
2354    def __init__(
2355        self,
2356        *,
2357        type: "CardanoCertificateType",
2358        path: Optional[Sequence["int"]] = None,
2359        pool: Optional["bytes"] = None,
2360        pool_parameters: Optional["CardanoPoolParametersType"] = None,
2361        script_hash: Optional["bytes"] = None,
2362    ) -> None:
2363        self.path: Sequence["int"] = path if path is not None else []
2364        self.type = type
2365        self.pool = pool
2366        self.pool_parameters = pool_parameters
2367        self.script_hash = script_hash
2368
2369
2370class CardanoTxWithdrawal(protobuf.MessageType):
2371    MESSAGE_WIRE_TYPE = 326
2372    FIELDS = {
2373        1: protobuf.Field("path", "uint32", repeated=True, required=False),
2374        2: protobuf.Field("amount", "uint64", repeated=False, required=True),
2375        3: protobuf.Field("script_hash", "bytes", repeated=False, required=False),
2376    }
2377
2378    def __init__(
2379        self,
2380        *,
2381        amount: "int",
2382        path: Optional[Sequence["int"]] = None,
2383        script_hash: Optional["bytes"] = None,
2384    ) -> None:
2385        self.path: Sequence["int"] = path if path is not None else []
2386        self.amount = amount
2387        self.script_hash = script_hash
2388
2389
2390class CardanoCatalystRegistrationParametersType(protobuf.MessageType):
2391    MESSAGE_WIRE_TYPE = None
2392    FIELDS = {
2393        1: protobuf.Field("voting_public_key", "bytes", repeated=False, required=True),
2394        2: protobuf.Field("staking_path", "uint32", repeated=True, required=False),
2395        3: protobuf.Field("reward_address_parameters", "CardanoAddressParametersType", repeated=False, required=True),
2396        4: protobuf.Field("nonce", "uint64", repeated=False, required=True),
2397    }
2398
2399    def __init__(
2400        self,
2401        *,
2402        voting_public_key: "bytes",
2403        reward_address_parameters: "CardanoAddressParametersType",
2404        nonce: "int",
2405        staking_path: Optional[Sequence["int"]] = None,
2406    ) -> None:
2407        self.staking_path: Sequence["int"] = staking_path if staking_path is not None else []
2408        self.voting_public_key = voting_public_key
2409        self.reward_address_parameters = reward_address_parameters
2410        self.nonce = nonce
2411
2412
2413class CardanoTxAuxiliaryData(protobuf.MessageType):
2414    MESSAGE_WIRE_TYPE = 327
2415    FIELDS = {
2416        1: protobuf.Field("catalyst_registration_parameters", "CardanoCatalystRegistrationParametersType", repeated=False, required=False),
2417        2: protobuf.Field("hash", "bytes", repeated=False, required=False),
2418    }
2419
2420    def __init__(
2421        self,
2422        *,
2423        catalyst_registration_parameters: Optional["CardanoCatalystRegistrationParametersType"] = None,
2424        hash: Optional["bytes"] = None,
2425    ) -> None:
2426        self.catalyst_registration_parameters = catalyst_registration_parameters
2427        self.hash = hash
2428
2429
2430class CardanoTxMint(protobuf.MessageType):
2431    MESSAGE_WIRE_TYPE = 332
2432    FIELDS = {
2433        1: protobuf.Field("asset_groups_count", "uint32", repeated=False, required=True),
2434    }
2435
2436    def __init__(
2437        self,
2438        *,
2439        asset_groups_count: "int",
2440    ) -> None:
2441        self.asset_groups_count = asset_groups_count
2442
2443
2444class CardanoTxItemAck(protobuf.MessageType):
2445    MESSAGE_WIRE_TYPE = 313
2446
2447
2448class CardanoTxAuxiliaryDataSupplement(protobuf.MessageType):
2449    MESSAGE_WIRE_TYPE = 314
2450    FIELDS = {
2451        1: protobuf.Field("type", "CardanoTxAuxiliaryDataSupplementType", repeated=False, required=True),
2452        2: protobuf.Field("auxiliary_data_hash", "bytes", repeated=False, required=False),
2453        3: protobuf.Field("catalyst_signature", "bytes", repeated=False, required=False),
2454    }
2455
2456    def __init__(
2457        self,
2458        *,
2459        type: "CardanoTxAuxiliaryDataSupplementType",
2460        auxiliary_data_hash: Optional["bytes"] = None,
2461        catalyst_signature: Optional["bytes"] = None,
2462    ) -> None:
2463        self.type = type
2464        self.auxiliary_data_hash = auxiliary_data_hash
2465        self.catalyst_signature = catalyst_signature
2466
2467
2468class CardanoTxWitnessRequest(protobuf.MessageType):
2469    MESSAGE_WIRE_TYPE = 315
2470    FIELDS = {
2471        1: protobuf.Field("path", "uint32", repeated=True, required=False),
2472    }
2473
2474    def __init__(
2475        self,
2476        *,
2477        path: Optional[Sequence["int"]] = None,
2478    ) -> None:
2479        self.path: Sequence["int"] = path if path is not None else []
2480
2481
2482class CardanoTxWitnessResponse(protobuf.MessageType):
2483    MESSAGE_WIRE_TYPE = 316
2484    FIELDS = {
2485        1: protobuf.Field("type", "CardanoTxWitnessType", repeated=False, required=True),
2486        2: protobuf.Field("pub_key", "bytes", repeated=False, required=True),
2487        3: protobuf.Field("signature", "bytes", repeated=False, required=True),
2488        4: protobuf.Field("chain_code", "bytes", repeated=False, required=False),
2489    }
2490
2491    def __init__(
2492        self,
2493        *,
2494        type: "CardanoTxWitnessType",
2495        pub_key: "bytes",
2496        signature: "bytes",
2497        chain_code: Optional["bytes"] = None,
2498    ) -> None:
2499        self.type = type
2500        self.pub_key = pub_key
2501        self.signature = signature
2502        self.chain_code = chain_code
2503
2504
2505class CardanoTxHostAck(protobuf.MessageType):
2506    MESSAGE_WIRE_TYPE = 317
2507
2508
2509class CardanoTxBodyHash(protobuf.MessageType):
2510    MESSAGE_WIRE_TYPE = 318
2511    FIELDS = {
2512        1: protobuf.Field("tx_hash", "bytes", repeated=False, required=True),
2513    }
2514
2515    def __init__(
2516        self,
2517        *,
2518        tx_hash: "bytes",
2519    ) -> None:
2520        self.tx_hash = tx_hash
2521
2522
2523class CardanoSignTxFinished(protobuf.MessageType):
2524    MESSAGE_WIRE_TYPE = 319
2525
2526
2527class CardanoSignTx(protobuf.MessageType):
2528    MESSAGE_WIRE_TYPE = 303
2529    FIELDS = {
2530        1: protobuf.Field("inputs", "CardanoTxInputType", repeated=True, required=False),
2531        2: protobuf.Field("outputs", "CardanoTxOutputType", repeated=True, required=False),
2532        5: protobuf.Field("protocol_magic", "uint32", repeated=False, required=True),
2533        6: protobuf.Field("fee", "uint64", repeated=False, required=True),
2534        7: protobuf.Field("ttl", "uint64", repeated=False, required=False),
2535        8: protobuf.Field("network_id", "uint32", repeated=False, required=True),
2536        9: protobuf.Field("certificates", "CardanoTxCertificateType", repeated=True, required=False),
2537        10: protobuf.Field("withdrawals", "CardanoTxWithdrawalType", repeated=True, required=False),
2538        12: protobuf.Field("validity_interval_start", "uint64", repeated=False, required=False),
2539        13: protobuf.Field("auxiliary_data", "CardanoTxAuxiliaryDataType", repeated=False, required=False),
2540    }
2541
2542    def __init__(
2543        self,
2544        *,
2545        protocol_magic: "int",
2546        fee: "int",
2547        network_id: "int",
2548        inputs: Optional[Sequence["CardanoTxInputType"]] = None,
2549        outputs: Optional[Sequence["CardanoTxOutputType"]] = None,
2550        certificates: Optional[Sequence["CardanoTxCertificateType"]] = None,
2551        withdrawals: Optional[Sequence["CardanoTxWithdrawalType"]] = None,
2552        ttl: Optional["int"] = None,
2553        validity_interval_start: Optional["int"] = None,
2554        auxiliary_data: Optional["CardanoTxAuxiliaryDataType"] = None,
2555    ) -> None:
2556        self.inputs: Sequence["CardanoTxInputType"] = inputs if inputs is not None else []
2557        self.outputs: Sequence["CardanoTxOutputType"] = outputs if outputs is not None else []
2558        self.certificates: Sequence["CardanoTxCertificateType"] = certificates if certificates is not None else []
2559        self.withdrawals: Sequence["CardanoTxWithdrawalType"] = withdrawals if withdrawals is not None else []
2560        self.protocol_magic = protocol_magic
2561        self.fee = fee
2562        self.network_id = network_id
2563        self.ttl = ttl
2564        self.validity_interval_start = validity_interval_start
2565        self.auxiliary_data = auxiliary_data
2566
2567
2568class CardanoSignedTxChunk(protobuf.MessageType):
2569    MESSAGE_WIRE_TYPE = 311
2570    FIELDS = {
2571        1: protobuf.Field("signed_tx_chunk", "bytes", repeated=False, required=True),
2572    }
2573
2574    def __init__(
2575        self,
2576        *,
2577        signed_tx_chunk: "bytes",
2578    ) -> None:
2579        self.signed_tx_chunk = signed_tx_chunk
2580
2581
2582class CardanoSignedTxChunkAck(protobuf.MessageType):
2583    MESSAGE_WIRE_TYPE = 312
2584
2585
2586class CardanoSignedTx(protobuf.MessageType):
2587    MESSAGE_WIRE_TYPE = 310
2588    FIELDS = {
2589        1: protobuf.Field("tx_hash", "bytes", repeated=False, required=True),
2590        2: protobuf.Field("serialized_tx", "bytes", repeated=False, required=False),
2591    }
2592
2593    def __init__(
2594        self,
2595        *,
2596        tx_hash: "bytes",
2597        serialized_tx: Optional["bytes"] = None,
2598    ) -> None:
2599        self.tx_hash = tx_hash
2600        self.serialized_tx = serialized_tx
2601
2602
2603class CardanoTxInputType(protobuf.MessageType):
2604    MESSAGE_WIRE_TYPE = None
2605    FIELDS = {
2606        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
2607        2: protobuf.Field("prev_hash", "bytes", repeated=False, required=True),
2608        3: protobuf.Field("prev_index", "uint32", repeated=False, required=True),
2609    }
2610
2611    def __init__(
2612        self,
2613        *,
2614        prev_hash: "bytes",
2615        prev_index: "int",
2616        address_n: Optional[Sequence["int"]] = None,
2617    ) -> None:
2618        self.address_n: Sequence["int"] = address_n if address_n is not None else []
2619        self.prev_hash = prev_hash
2620        self.prev_index = prev_index
2621
2622
2623class CardanoTxOutputType(protobuf.MessageType):
2624    MESSAGE_WIRE_TYPE = None
2625    FIELDS = {
2626        1: protobuf.Field("address", "string", repeated=False, required=False),
2627        3: protobuf.Field("amount", "uint64", repeated=False, required=True),
2628        4: protobuf.Field("address_parameters", "CardanoAddressParametersType", repeated=False, required=False),
2629        5: protobuf.Field("token_bundle", "CardanoAssetGroupType", repeated=True, required=False),
2630    }
2631
2632    def __init__(
2633        self,
2634        *,
2635        amount: "int",
2636        token_bundle: Optional[Sequence["CardanoAssetGroupType"]] = None,
2637        address: Optional["str"] = None,
2638        address_parameters: Optional["CardanoAddressParametersType"] = None,
2639    ) -> None:
2640        self.token_bundle: Sequence["CardanoAssetGroupType"] = token_bundle if token_bundle is not None else []
2641        self.amount = amount
2642        self.address = address
2643        self.address_parameters = address_parameters
2644
2645
2646class CardanoAssetGroupType(protobuf.MessageType):
2647    MESSAGE_WIRE_TYPE = None
2648    FIELDS = {
2649        1: protobuf.Field("policy_id", "bytes", repeated=False, required=True),
2650        2: protobuf.Field("tokens", "CardanoTokenType", repeated=True, required=False),
2651    }
2652
2653    def __init__(
2654        self,
2655        *,
2656        policy_id: "bytes",
2657        tokens: Optional[Sequence["CardanoTokenType"]] = None,
2658    ) -> None:
2659        self.tokens: Sequence["CardanoTokenType"] = tokens if tokens is not None else []
2660        self.policy_id = policy_id
2661
2662
2663class CardanoTokenType(protobuf.MessageType):
2664    MESSAGE_WIRE_TYPE = None
2665    FIELDS = {
2666        1: protobuf.Field("asset_name_bytes", "bytes", repeated=False, required=True),
2667        2: protobuf.Field("amount", "uint64", repeated=False, required=True),
2668    }
2669
2670    def __init__(
2671        self,
2672        *,
2673        asset_name_bytes: "bytes",
2674        amount: "int",
2675    ) -> None:
2676        self.asset_name_bytes = asset_name_bytes
2677        self.amount = amount
2678
2679
2680class CardanoPoolOwnerType(protobuf.MessageType):
2681    MESSAGE_WIRE_TYPE = None
2682    FIELDS = {
2683        1: protobuf.Field("staking_key_path", "uint32", repeated=True, required=False),
2684        2: protobuf.Field("staking_key_hash", "bytes", repeated=False, required=False),
2685    }
2686
2687    def __init__(
2688        self,
2689        *,
2690        staking_key_path: Optional[Sequence["int"]] = None,
2691        staking_key_hash: Optional["bytes"] = None,
2692    ) -> None:
2693        self.staking_key_path: Sequence["int"] = staking_key_path if staking_key_path is not None else []
2694        self.staking_key_hash = staking_key_hash
2695
2696
2697class CardanoPoolRelayParametersType(protobuf.MessageType):
2698    MESSAGE_WIRE_TYPE = None
2699    FIELDS = {
2700        1: protobuf.Field("type", "CardanoPoolRelayType", repeated=False, required=True),
2701        2: protobuf.Field("ipv4_address", "bytes", repeated=False, required=False),
2702        3: protobuf.Field("ipv6_address", "bytes", repeated=False, required=False),
2703        4: protobuf.Field("host_name", "string", repeated=False, required=False),
2704        5: protobuf.Field("port", "uint32", repeated=False, required=False),
2705    }
2706
2707    def __init__(
2708        self,
2709        *,
2710        type: "CardanoPoolRelayType",
2711        ipv4_address: Optional["bytes"] = None,
2712        ipv6_address: Optional["bytes"] = None,
2713        host_name: Optional["str"] = None,
2714        port: Optional["int"] = None,
2715    ) -> None:
2716        self.type = type
2717        self.ipv4_address = ipv4_address
2718        self.ipv6_address = ipv6_address
2719        self.host_name = host_name
2720        self.port = port
2721
2722
2723class CardanoTxCertificateType(protobuf.MessageType):
2724    MESSAGE_WIRE_TYPE = None
2725    FIELDS = {
2726        1: protobuf.Field("type", "CardanoCertificateType", repeated=False, required=True),
2727        2: protobuf.Field("path", "uint32", repeated=True, required=False),
2728        3: protobuf.Field("pool", "bytes", repeated=False, required=False),
2729        4: protobuf.Field("pool_parameters", "CardanoPoolParametersType", repeated=False, required=False),
2730    }
2731
2732    def __init__(
2733        self,
2734        *,
2735        type: "CardanoCertificateType",
2736        path: Optional[Sequence["int"]] = None,
2737        pool: Optional["bytes"] = None,
2738        pool_parameters: Optional["CardanoPoolParametersType"] = None,
2739    ) -> None:
2740        self.path: Sequence["int"] = path if path is not None else []
2741        self.type = type
2742        self.pool = pool
2743        self.pool_parameters = pool_parameters
2744
2745
2746class CardanoTxWithdrawalType(protobuf.MessageType):
2747    MESSAGE_WIRE_TYPE = None
2748    FIELDS = {
2749        1: protobuf.Field("path", "uint32", repeated=True, required=False),
2750        2: protobuf.Field("amount", "uint64", repeated=False, required=True),
2751    }
2752
2753    def __init__(
2754        self,
2755        *,
2756        amount: "int",
2757        path: Optional[Sequence["int"]] = None,
2758    ) -> None:
2759        self.path: Sequence["int"] = path if path is not None else []
2760        self.amount = amount
2761
2762
2763class CardanoTxAuxiliaryDataType(protobuf.MessageType):
2764    MESSAGE_WIRE_TYPE = None
2765    FIELDS = {
2766        1: protobuf.Field("blob", "bytes", repeated=False, required=False),
2767        2: protobuf.Field("catalyst_registration_parameters", "CardanoCatalystRegistrationParametersType", repeated=False, required=False),
2768    }
2769
2770    def __init__(
2771        self,
2772        *,
2773        blob: Optional["bytes"] = None,
2774        catalyst_registration_parameters: Optional["CardanoCatalystRegistrationParametersType"] = None,
2775    ) -> None:
2776        self.blob = blob
2777        self.catalyst_registration_parameters = catalyst_registration_parameters
2778
2779
2780class CipherKeyValue(protobuf.MessageType):
2781    MESSAGE_WIRE_TYPE = 23
2782    FIELDS = {
2783        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
2784        2: protobuf.Field("key", "string", repeated=False, required=True),
2785        3: protobuf.Field("value", "bytes", repeated=False, required=True),
2786        4: protobuf.Field("encrypt", "bool", repeated=False, required=False),
2787        5: protobuf.Field("ask_on_encrypt", "bool", repeated=False, required=False),
2788        6: protobuf.Field("ask_on_decrypt", "bool", repeated=False, required=False),
2789        7: protobuf.Field("iv", "bytes", repeated=False, required=False),
2790    }
2791
2792    def __init__(
2793        self,
2794        *,
2795        key: "str",
2796        value: "bytes",
2797        address_n: Optional[Sequence["int"]] = None,
2798        encrypt: Optional["bool"] = None,
2799        ask_on_encrypt: Optional["bool"] = None,
2800        ask_on_decrypt: Optional["bool"] = None,
2801        iv: Optional["bytes"] = None,
2802    ) -> None:
2803        self.address_n: Sequence["int"] = address_n if address_n is not None else []
2804        self.key = key
2805        self.value = value
2806        self.encrypt = encrypt
2807        self.ask_on_encrypt = ask_on_encrypt
2808        self.ask_on_decrypt = ask_on_decrypt
2809        self.iv = iv
2810
2811
2812class CipheredKeyValue(protobuf.MessageType):
2813    MESSAGE_WIRE_TYPE = 48
2814    FIELDS = {
2815        1: protobuf.Field("value", "bytes", repeated=False, required=True),
2816    }
2817
2818    def __init__(
2819        self,
2820        *,
2821        value: "bytes",
2822    ) -> None:
2823        self.value = value
2824
2825
2826class IdentityType(protobuf.MessageType):
2827    MESSAGE_WIRE_TYPE = None
2828    FIELDS = {
2829        1: protobuf.Field("proto", "string", repeated=False, required=False),
2830        2: protobuf.Field("user", "string", repeated=False, required=False),
2831        3: protobuf.Field("host", "string", repeated=False, required=False),
2832        4: protobuf.Field("port", "string", repeated=False, required=False),
2833        5: protobuf.Field("path", "string", repeated=False, required=False),
2834        6: protobuf.Field("index", "uint32", repeated=False, required=False),
2835    }
2836
2837    def __init__(
2838        self,
2839        *,
2840        proto: Optional["str"] = None,
2841        user: Optional["str"] = None,
2842        host: Optional["str"] = None,
2843        port: Optional["str"] = None,
2844        path: Optional["str"] = None,
2845        index: Optional["int"] = 0,
2846    ) -> None:
2847        self.proto = proto
2848        self.user = user
2849        self.host = host
2850        self.port = port
2851        self.path = path
2852        self.index = index
2853
2854
2855class SignIdentity(protobuf.MessageType):
2856    MESSAGE_WIRE_TYPE = 53
2857    FIELDS = {
2858        1: protobuf.Field("identity", "IdentityType", repeated=False, required=True),
2859        2: protobuf.Field("challenge_hidden", "bytes", repeated=False, required=False),
2860        3: protobuf.Field("challenge_visual", "string", repeated=False, required=False),
2861        4: protobuf.Field("ecdsa_curve_name", "string", repeated=False, required=False),
2862    }
2863
2864    def __init__(
2865        self,
2866        *,
2867        identity: "IdentityType",
2868        challenge_hidden: Optional["bytes"] = b'',
2869        challenge_visual: Optional["str"] = '',
2870        ecdsa_curve_name: Optional["str"] = None,
2871    ) -> None:
2872        self.identity = identity
2873        self.challenge_hidden = challenge_hidden
2874        self.challenge_visual = challenge_visual
2875        self.ecdsa_curve_name = ecdsa_curve_name
2876
2877
2878class SignedIdentity(protobuf.MessageType):
2879    MESSAGE_WIRE_TYPE = 54
2880    FIELDS = {
2881        1: protobuf.Field("address", "string", repeated=False, required=False),
2882        2: protobuf.Field("public_key", "bytes", repeated=False, required=True),
2883        3: protobuf.Field("signature", "bytes", repeated=False, required=True),
2884    }
2885
2886    def __init__(
2887        self,
2888        *,
2889        public_key: "bytes",
2890        signature: "bytes",
2891        address: Optional["str"] = None,
2892    ) -> None:
2893        self.public_key = public_key
2894        self.signature = signature
2895        self.address = address
2896
2897
2898class GetECDHSessionKey(protobuf.MessageType):
2899    MESSAGE_WIRE_TYPE = 61
2900    FIELDS = {
2901        1: protobuf.Field("identity", "IdentityType", repeated=False, required=True),
2902        2: protobuf.Field("peer_public_key", "bytes", repeated=False, required=True),
2903        3: protobuf.Field("ecdsa_curve_name", "string", repeated=False, required=False),
2904    }
2905
2906    def __init__(
2907        self,
2908        *,
2909        identity: "IdentityType",
2910        peer_public_key: "bytes",
2911        ecdsa_curve_name: Optional["str"] = None,
2912    ) -> None:
2913        self.identity = identity
2914        self.peer_public_key = peer_public_key
2915        self.ecdsa_curve_name = ecdsa_curve_name
2916
2917
2918class ECDHSessionKey(protobuf.MessageType):
2919    MESSAGE_WIRE_TYPE = 62
2920    FIELDS = {
2921        1: protobuf.Field("session_key", "bytes", repeated=False, required=True),
2922        2: protobuf.Field("public_key", "bytes", repeated=False, required=False),
2923    }
2924
2925    def __init__(
2926        self,
2927        *,
2928        session_key: "bytes",
2929        public_key: Optional["bytes"] = None,
2930    ) -> None:
2931        self.session_key = session_key
2932        self.public_key = public_key
2933
2934
2935class CosiCommit(protobuf.MessageType):
2936    MESSAGE_WIRE_TYPE = 71
2937    FIELDS = {
2938        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
2939        2: protobuf.Field("data", "bytes", repeated=False, required=False),
2940    }
2941
2942    def __init__(
2943        self,
2944        *,
2945        address_n: Optional[Sequence["int"]] = None,
2946        data: Optional["bytes"] = None,
2947    ) -> None:
2948        self.address_n: Sequence["int"] = address_n if address_n is not None else []
2949        self.data = data
2950
2951
2952class CosiCommitment(protobuf.MessageType):
2953    MESSAGE_WIRE_TYPE = 72
2954    FIELDS = {
2955        1: protobuf.Field("commitment", "bytes", repeated=False, required=False),
2956        2: protobuf.Field("pubkey", "bytes", repeated=False, required=False),
2957    }
2958
2959    def __init__(
2960        self,
2961        *,
2962        commitment: Optional["bytes"] = None,
2963        pubkey: Optional["bytes"] = None,
2964    ) -> None:
2965        self.commitment = commitment
2966        self.pubkey = pubkey
2967
2968
2969class CosiSign(protobuf.MessageType):
2970    MESSAGE_WIRE_TYPE = 73
2971    FIELDS = {
2972        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
2973        2: protobuf.Field("data", "bytes", repeated=False, required=False),
2974        3: protobuf.Field("global_commitment", "bytes", repeated=False, required=False),
2975        4: protobuf.Field("global_pubkey", "bytes", repeated=False, required=False),
2976    }
2977
2978    def __init__(
2979        self,
2980        *,
2981        address_n: Optional[Sequence["int"]] = None,
2982        data: Optional["bytes"] = None,
2983        global_commitment: Optional["bytes"] = None,
2984        global_pubkey: Optional["bytes"] = None,
2985    ) -> None:
2986        self.address_n: Sequence["int"] = address_n if address_n is not None else []
2987        self.data = data
2988        self.global_commitment = global_commitment
2989        self.global_pubkey = global_pubkey
2990
2991
2992class CosiSignature(protobuf.MessageType):
2993    MESSAGE_WIRE_TYPE = 74
2994    FIELDS = {
2995        1: protobuf.Field("signature", "bytes", repeated=False, required=True),
2996    }
2997
2998    def __init__(
2999        self,
3000        *,
3001        signature: "bytes",
3002    ) -> None:
3003        self.signature = signature
3004
3005
3006class Initialize(protobuf.MessageType):
3007    MESSAGE_WIRE_TYPE = 0
3008    FIELDS = {
3009        1: protobuf.Field("session_id", "bytes", repeated=False, required=False),
3010        2: protobuf.Field("_skip_passphrase", "bool", repeated=False, required=False),
3011        3: protobuf.Field("derive_cardano", "bool", repeated=False, required=False),
3012    }
3013
3014    def __init__(
3015        self,
3016        *,
3017        session_id: Optional["bytes"] = None,
3018        _skip_passphrase: Optional["bool"] = None,
3019        derive_cardano: Optional["bool"] = None,
3020    ) -> None:
3021        self.session_id = session_id
3022        self._skip_passphrase = _skip_passphrase
3023        self.derive_cardano = derive_cardano
3024
3025
3026class GetFeatures(protobuf.MessageType):
3027    MESSAGE_WIRE_TYPE = 55
3028
3029
3030class Features(protobuf.MessageType):
3031    MESSAGE_WIRE_TYPE = 17
3032    FIELDS = {
3033        1: protobuf.Field("vendor", "string", repeated=False, required=False),
3034        2: protobuf.Field("major_version", "uint32", repeated=False, required=True),
3035        3: protobuf.Field("minor_version", "uint32", repeated=False, required=True),
3036        4: protobuf.Field("patch_version", "uint32", repeated=False, required=True),
3037        5: protobuf.Field("bootloader_mode", "bool", repeated=False, required=False),
3038        6: protobuf.Field("device_id", "string", repeated=False, required=False),
3039        7: protobuf.Field("pin_protection", "bool", repeated=False, required=False),
3040        8: protobuf.Field("passphrase_protection", "bool", repeated=False, required=False),
3041        9: protobuf.Field("language", "string", repeated=False, required=False),
3042        10: protobuf.Field("label", "string", repeated=False, required=False),
3043        12: protobuf.Field("initialized", "bool", repeated=False, required=False),
3044        13: protobuf.Field("revision", "bytes", repeated=False, required=False),
3045        14: protobuf.Field("bootloader_hash", "bytes", repeated=False, required=False),
3046        15: protobuf.Field("imported", "bool", repeated=False, required=False),
3047        16: protobuf.Field("unlocked", "bool", repeated=False, required=False),
3048        17: protobuf.Field("_passphrase_cached", "bool", repeated=False, required=False),
3049        18: protobuf.Field("firmware_present", "bool", repeated=False, required=False),
3050        19: protobuf.Field("needs_backup", "bool", repeated=False, required=False),
3051        20: protobuf.Field("flags", "uint32", repeated=False, required=False),
3052        21: protobuf.Field("model", "string", repeated=False, required=False),
3053        22: protobuf.Field("fw_major", "uint32", repeated=False, required=False),
3054        23: protobuf.Field("fw_minor", "uint32", repeated=False, required=False),
3055        24: protobuf.Field("fw_patch", "uint32", repeated=False, required=False),
3056        25: protobuf.Field("fw_vendor", "string", repeated=False, required=False),
3057        26: protobuf.Field("fw_vendor_keys", "bytes", repeated=False, required=False),
3058        27: protobuf.Field("unfinished_backup", "bool", repeated=False, required=False),
3059        28: protobuf.Field("no_backup", "bool", repeated=False, required=False),
3060        29: protobuf.Field("recovery_mode", "bool", repeated=False, required=False),
3061        30: protobuf.Field("capabilities", "Capability", repeated=True, required=False),
3062        31: protobuf.Field("backup_type", "BackupType", repeated=False, required=False),
3063        32: protobuf.Field("sd_card_present", "bool", repeated=False, required=False),
3064        33: protobuf.Field("sd_protection", "bool", repeated=False, required=False),
3065        34: protobuf.Field("wipe_code_protection", "bool", repeated=False, required=False),
3066        35: protobuf.Field("session_id", "bytes", repeated=False, required=False),
3067        36: protobuf.Field("passphrase_always_on_device", "bool", repeated=False, required=False),
3068        37: protobuf.Field("safety_checks", "SafetyCheckLevel", repeated=False, required=False),
3069        38: protobuf.Field("auto_lock_delay_ms", "uint32", repeated=False, required=False),
3070        39: protobuf.Field("display_rotation", "uint32", repeated=False, required=False),
3071        40: protobuf.Field("experimental_features", "bool", repeated=False, required=False),
3072    }
3073
3074    def __init__(
3075        self,
3076        *,
3077        major_version: "int",
3078        minor_version: "int",
3079        patch_version: "int",
3080        capabilities: Optional[Sequence["Capability"]] = None,
3081        vendor: Optional["str"] = None,
3082        bootloader_mode: Optional["bool"] = None,
3083        device_id: Optional["str"] = None,
3084        pin_protection: Optional["bool"] = None,
3085        passphrase_protection: Optional["bool"] = None,
3086        language: Optional["str"] = None,
3087        label: Optional["str"] = None,
3088        initialized: Optional["bool"] = None,
3089        revision: Optional["bytes"] = None,
3090        bootloader_hash: Optional["bytes"] = None,
3091        imported: Optional["bool"] = None,
3092        unlocked: Optional["bool"] = None,
3093        _passphrase_cached: Optional["bool"] = None,
3094        firmware_present: Optional["bool"] = None,
3095        needs_backup: Optional["bool"] = None,
3096        flags: Optional["int"] = None,
3097        model: Optional["str"] = None,
3098        fw_major: Optional["int"] = None,
3099        fw_minor: Optional["int"] = None,
3100        fw_patch: Optional["int"] = None,
3101        fw_vendor: Optional["str"] = None,
3102        fw_vendor_keys: Optional["bytes"] = None,
3103        unfinished_backup: Optional["bool"] = None,
3104        no_backup: Optional["bool"] = None,
3105        recovery_mode: Optional["bool"] = None,
3106        backup_type: Optional["BackupType"] = None,
3107        sd_card_present: Optional["bool"] = None,
3108        sd_protection: Optional["bool"] = None,
3109        wipe_code_protection: Optional["bool"] = None,
3110        session_id: Optional["bytes"] = None,
3111        passphrase_always_on_device: Optional["bool"] = None,
3112        safety_checks: Optional["SafetyCheckLevel"] = None,
3113        auto_lock_delay_ms: Optional["int"] = None,
3114        display_rotation: Optional["int"] = None,
3115        experimental_features: Optional["bool"] = None,
3116    ) -> None:
3117        self.capabilities: Sequence["Capability"] = capabilities if capabilities is not None else []
3118        self.major_version = major_version
3119        self.minor_version = minor_version
3120        self.patch_version = patch_version
3121        self.vendor = vendor
3122        self.bootloader_mode = bootloader_mode
3123        self.device_id = device_id
3124        self.pin_protection = pin_protection
3125        self.passphrase_protection = passphrase_protection
3126        self.language = language
3127        self.label = label
3128        self.initialized = initialized
3129        self.revision = revision
3130        self.bootloader_hash = bootloader_hash
3131        self.imported = imported
3132        self.unlocked = unlocked
3133        self._passphrase_cached = _passphrase_cached
3134        self.firmware_present = firmware_present
3135        self.needs_backup = needs_backup
3136        self.flags = flags
3137        self.model = model
3138        self.fw_major = fw_major
3139        self.fw_minor = fw_minor
3140        self.fw_patch = fw_patch
3141        self.fw_vendor = fw_vendor
3142        self.fw_vendor_keys = fw_vendor_keys
3143        self.unfinished_backup = unfinished_backup
3144        self.no_backup = no_backup
3145        self.recovery_mode = recovery_mode
3146        self.backup_type = backup_type
3147        self.sd_card_present = sd_card_present
3148        self.sd_protection = sd_protection
3149        self.wipe_code_protection = wipe_code_protection
3150        self.session_id = session_id
3151        self.passphrase_always_on_device = passphrase_always_on_device
3152        self.safety_checks = safety_checks
3153        self.auto_lock_delay_ms = auto_lock_delay_ms
3154        self.display_rotation = display_rotation
3155        self.experimental_features = experimental_features
3156
3157
3158class LockDevice(protobuf.MessageType):
3159    MESSAGE_WIRE_TYPE = 24
3160
3161
3162class EndSession(protobuf.MessageType):
3163    MESSAGE_WIRE_TYPE = 83
3164
3165
3166class ApplySettings(protobuf.MessageType):
3167    MESSAGE_WIRE_TYPE = 25
3168    FIELDS = {
3169        1: protobuf.Field("language", "string", repeated=False, required=False),
3170        2: protobuf.Field("label", "string", repeated=False, required=False),
3171        3: protobuf.Field("use_passphrase", "bool", repeated=False, required=False),
3172        4: protobuf.Field("homescreen", "bytes", repeated=False, required=False),
3173        5: protobuf.Field("_passphrase_source", "uint32", repeated=False, required=False),
3174        6: protobuf.Field("auto_lock_delay_ms", "uint32", repeated=False, required=False),
3175        7: protobuf.Field("display_rotation", "uint32", repeated=False, required=False),
3176        8: protobuf.Field("passphrase_always_on_device", "bool", repeated=False, required=False),
3177        9: protobuf.Field("safety_checks", "SafetyCheckLevel", repeated=False, required=False),
3178        10: protobuf.Field("experimental_features", "bool", repeated=False, required=False),
3179    }
3180
3181    def __init__(
3182        self,
3183        *,
3184        language: Optional["str"] = None,
3185        label: Optional["str"] = None,
3186        use_passphrase: Optional["bool"] = None,
3187        homescreen: Optional["bytes"] = None,
3188        _passphrase_source: Optional["int"] = None,
3189        auto_lock_delay_ms: Optional["int"] = None,
3190        display_rotation: Optional["int"] = None,
3191        passphrase_always_on_device: Optional["bool"] = None,
3192        safety_checks: Optional["SafetyCheckLevel"] = None,
3193        experimental_features: Optional["bool"] = None,
3194    ) -> None:
3195        self.language = language
3196        self.label = label
3197        self.use_passphrase = use_passphrase
3198        self.homescreen = homescreen
3199        self._passphrase_source = _passphrase_source
3200        self.auto_lock_delay_ms = auto_lock_delay_ms
3201        self.display_rotation = display_rotation
3202        self.passphrase_always_on_device = passphrase_always_on_device
3203        self.safety_checks = safety_checks
3204        self.experimental_features = experimental_features
3205
3206
3207class ApplyFlags(protobuf.MessageType):
3208    MESSAGE_WIRE_TYPE = 28
3209    FIELDS = {
3210        1: protobuf.Field("flags", "uint32", repeated=False, required=True),
3211    }
3212
3213    def __init__(
3214        self,
3215        *,
3216        flags: "int",
3217    ) -> None:
3218        self.flags = flags
3219
3220
3221class ChangePin(protobuf.MessageType):
3222    MESSAGE_WIRE_TYPE = 4
3223    FIELDS = {
3224        1: protobuf.Field("remove", "bool", repeated=False, required=False),
3225    }
3226
3227    def __init__(
3228        self,
3229        *,
3230        remove: Optional["bool"] = None,
3231    ) -> None:
3232        self.remove = remove
3233
3234
3235class ChangeWipeCode(protobuf.MessageType):
3236    MESSAGE_WIRE_TYPE = 82
3237    FIELDS = {
3238        1: protobuf.Field("remove", "bool", repeated=False, required=False),
3239    }
3240
3241    def __init__(
3242        self,
3243        *,
3244        remove: Optional["bool"] = None,
3245    ) -> None:
3246        self.remove = remove
3247
3248
3249class SdProtect(protobuf.MessageType):
3250    MESSAGE_WIRE_TYPE = 79
3251    FIELDS = {
3252        1: protobuf.Field("operation", "SdProtectOperationType", repeated=False, required=True),
3253    }
3254
3255    def __init__(
3256        self,
3257        *,
3258        operation: "SdProtectOperationType",
3259    ) -> None:
3260        self.operation = operation
3261
3262
3263class Ping(protobuf.MessageType):
3264    MESSAGE_WIRE_TYPE = 1
3265    FIELDS = {
3266        1: protobuf.Field("message", "string", repeated=False, required=False),
3267        2: protobuf.Field("button_protection", "bool", repeated=False, required=False),
3268    }
3269
3270    def __init__(
3271        self,
3272        *,
3273        message: Optional["str"] = '',
3274        button_protection: Optional["bool"] = None,
3275    ) -> None:
3276        self.message = message
3277        self.button_protection = button_protection
3278
3279
3280class Cancel(protobuf.MessageType):
3281    MESSAGE_WIRE_TYPE = 20
3282
3283
3284class GetEntropy(protobuf.MessageType):
3285    MESSAGE_WIRE_TYPE = 9
3286    FIELDS = {
3287        1: protobuf.Field("size", "uint32", repeated=False, required=True),
3288    }
3289
3290    def __init__(
3291        self,
3292        *,
3293        size: "int",
3294    ) -> None:
3295        self.size = size
3296
3297
3298class Entropy(protobuf.MessageType):
3299    MESSAGE_WIRE_TYPE = 10
3300    FIELDS = {
3301        1: protobuf.Field("entropy", "bytes", repeated=False, required=True),
3302    }
3303
3304    def __init__(
3305        self,
3306        *,
3307        entropy: "bytes",
3308    ) -> None:
3309        self.entropy = entropy
3310
3311
3312class WipeDevice(protobuf.MessageType):
3313    MESSAGE_WIRE_TYPE = 5
3314
3315
3316class LoadDevice(protobuf.MessageType):
3317    MESSAGE_WIRE_TYPE = 13
3318    FIELDS = {
3319        1: protobuf.Field("mnemonics", "string", repeated=True, required=False),
3320        3: protobuf.Field("pin", "string", repeated=False, required=False),
3321        4: protobuf.Field("passphrase_protection", "bool", repeated=False, required=False),
3322        5: protobuf.Field("language", "string", repeated=False, required=False),
3323        6: protobuf.Field("label", "string", repeated=False, required=False),
3324        7: protobuf.Field("skip_checksum", "bool", repeated=False, required=False),
3325        8: protobuf.Field("u2f_counter", "uint32", repeated=False, required=False),
3326        9: protobuf.Field("needs_backup", "bool", repeated=False, required=False),
3327        10: protobuf.Field("no_backup", "bool", repeated=False, required=False),
3328    }
3329
3330    def __init__(
3331        self,
3332        *,
3333        mnemonics: Optional[Sequence["str"]] = None,
3334        pin: Optional["str"] = None,
3335        passphrase_protection: Optional["bool"] = None,
3336        language: Optional["str"] = 'en-US',
3337        label: Optional["str"] = None,
3338        skip_checksum: Optional["bool"] = None,
3339        u2f_counter: Optional["int"] = None,
3340        needs_backup: Optional["bool"] = None,
3341        no_backup: Optional["bool"] = None,
3342    ) -> None:
3343        self.mnemonics: Sequence["str"] = mnemonics if mnemonics is not None else []
3344        self.pin = pin
3345        self.passphrase_protection = passphrase_protection
3346        self.language = language
3347        self.label = label
3348        self.skip_checksum = skip_checksum
3349        self.u2f_counter = u2f_counter
3350        self.needs_backup = needs_backup
3351        self.no_backup = no_backup
3352
3353
3354class ResetDevice(protobuf.MessageType):
3355    MESSAGE_WIRE_TYPE = 14
3356    FIELDS = {
3357        1: protobuf.Field("display_random", "bool", repeated=False, required=False),
3358        2: protobuf.Field("strength", "uint32", repeated=False, required=False),
3359        3: protobuf.Field("passphrase_protection", "bool", repeated=False, required=False),
3360        4: protobuf.Field("pin_protection", "bool", repeated=False, required=False),
3361        5: protobuf.Field("language", "string", repeated=False, required=False),
3362        6: protobuf.Field("label", "string", repeated=False, required=False),
3363        7: protobuf.Field("u2f_counter", "uint32", repeated=False, required=False),
3364        8: protobuf.Field("skip_backup", "bool", repeated=False, required=False),
3365        9: protobuf.Field("no_backup", "bool", repeated=False, required=False),
3366        10: protobuf.Field("backup_type", "BackupType", repeated=False, required=False),
3367    }
3368
3369    def __init__(
3370        self,
3371        *,
3372        display_random: Optional["bool"] = None,
3373        strength: Optional["int"] = 256,
3374        passphrase_protection: Optional["bool"] = None,
3375        pin_protection: Optional["bool"] = None,
3376        language: Optional["str"] = 'en-US',
3377        label: Optional["str"] = None,
3378        u2f_counter: Optional["int"] = None,
3379        skip_backup: Optional["bool"] = None,
3380        no_backup: Optional["bool"] = None,
3381        backup_type: Optional["BackupType"] = BackupType.Bip39,
3382    ) -> None:
3383        self.display_random = display_random
3384        self.strength = strength
3385        self.passphrase_protection = passphrase_protection
3386        self.pin_protection = pin_protection
3387        self.language = language
3388        self.label = label
3389        self.u2f_counter = u2f_counter
3390        self.skip_backup = skip_backup
3391        self.no_backup = no_backup
3392        self.backup_type = backup_type
3393
3394
3395class BackupDevice(protobuf.MessageType):
3396    MESSAGE_WIRE_TYPE = 34
3397
3398
3399class EntropyRequest(protobuf.MessageType):
3400    MESSAGE_WIRE_TYPE = 35
3401
3402
3403class EntropyAck(protobuf.MessageType):
3404    MESSAGE_WIRE_TYPE = 36
3405    FIELDS = {
3406        1: protobuf.Field("entropy", "bytes", repeated=False, required=True),
3407    }
3408
3409    def __init__(
3410        self,
3411        *,
3412        entropy: "bytes",
3413    ) -> None:
3414        self.entropy = entropy
3415
3416
3417class RecoveryDevice(protobuf.MessageType):
3418    MESSAGE_WIRE_TYPE = 45
3419    FIELDS = {
3420        1: protobuf.Field("word_count", "uint32", repeated=False, required=False),
3421        2: protobuf.Field("passphrase_protection", "bool", repeated=False, required=False),
3422        3: protobuf.Field("pin_protection", "bool", repeated=False, required=False),
3423        4: protobuf.Field("language", "string", repeated=False, required=False),
3424        5: protobuf.Field("label", "string", repeated=False, required=False),
3425        6: protobuf.Field("enforce_wordlist", "bool", repeated=False, required=False),
3426        8: protobuf.Field("type", "RecoveryDeviceType", repeated=False, required=False),
3427        9: protobuf.Field("u2f_counter", "uint32", repeated=False, required=False),
3428        10: protobuf.Field("dry_run", "bool", repeated=False, required=False),
3429    }
3430
3431    def __init__(
3432        self,
3433        *,
3434        word_count: Optional["int"] = None,
3435        passphrase_protection: Optional["bool"] = None,
3436        pin_protection: Optional["bool"] = None,
3437        language: Optional["str"] = None,
3438        label: Optional["str"] = None,
3439        enforce_wordlist: Optional["bool"] = None,
3440        type: Optional["RecoveryDeviceType"] = None,
3441        u2f_counter: Optional["int"] = None,
3442        dry_run: Optional["bool"] = None,
3443    ) -> None:
3444        self.word_count = word_count
3445        self.passphrase_protection = passphrase_protection
3446        self.pin_protection = pin_protection
3447        self.language = language
3448        self.label = label
3449        self.enforce_wordlist = enforce_wordlist
3450        self.type = type
3451        self.u2f_counter = u2f_counter
3452        self.dry_run = dry_run
3453
3454
3455class WordRequest(protobuf.MessageType):
3456    MESSAGE_WIRE_TYPE = 46
3457    FIELDS = {
3458        1: protobuf.Field("type", "WordRequestType", repeated=False, required=True),
3459    }
3460
3461    def __init__(
3462        self,
3463        *,
3464        type: "WordRequestType",
3465    ) -> None:
3466        self.type = type
3467
3468
3469class WordAck(protobuf.MessageType):
3470    MESSAGE_WIRE_TYPE = 47
3471    FIELDS = {
3472        1: protobuf.Field("word", "string", repeated=False, required=True),
3473    }
3474
3475    def __init__(
3476        self,
3477        *,
3478        word: "str",
3479    ) -> None:
3480        self.word = word
3481
3482
3483class SetU2FCounter(protobuf.MessageType):
3484    MESSAGE_WIRE_TYPE = 63
3485    FIELDS = {
3486        1: protobuf.Field("u2f_counter", "uint32", repeated=False, required=True),
3487    }
3488
3489    def __init__(
3490        self,
3491        *,
3492        u2f_counter: "int",
3493    ) -> None:
3494        self.u2f_counter = u2f_counter
3495
3496
3497class GetNextU2FCounter(protobuf.MessageType):
3498    MESSAGE_WIRE_TYPE = 80
3499
3500
3501class NextU2FCounter(protobuf.MessageType):
3502    MESSAGE_WIRE_TYPE = 81
3503    FIELDS = {
3504        1: protobuf.Field("u2f_counter", "uint32", repeated=False, required=True),
3505    }
3506
3507    def __init__(
3508        self,
3509        *,
3510        u2f_counter: "int",
3511    ) -> None:
3512        self.u2f_counter = u2f_counter
3513
3514
3515class DoPreauthorized(protobuf.MessageType):
3516    MESSAGE_WIRE_TYPE = 84
3517
3518
3519class PreauthorizedRequest(protobuf.MessageType):
3520    MESSAGE_WIRE_TYPE = 85
3521
3522
3523class CancelAuthorization(protobuf.MessageType):
3524    MESSAGE_WIRE_TYPE = 86
3525
3526
3527class RebootToBootloader(protobuf.MessageType):
3528    MESSAGE_WIRE_TYPE = 87
3529
3530
3531class DebugLinkDecision(protobuf.MessageType):
3532    MESSAGE_WIRE_TYPE = 100
3533    FIELDS = {
3534        1: protobuf.Field("yes_no", "bool", repeated=False, required=False),
3535        2: protobuf.Field("swipe", "DebugSwipeDirection", repeated=False, required=False),
3536        3: protobuf.Field("input", "string", repeated=False, required=False),
3537        4: protobuf.Field("x", "uint32", repeated=False, required=False),
3538        5: protobuf.Field("y", "uint32", repeated=False, required=False),
3539        6: protobuf.Field("wait", "bool", repeated=False, required=False),
3540        7: protobuf.Field("hold_ms", "uint32", repeated=False, required=False),
3541    }
3542
3543    def __init__(
3544        self,
3545        *,
3546        yes_no: Optional["bool"] = None,
3547        swipe: Optional["DebugSwipeDirection"] = None,
3548        input: Optional["str"] = None,
3549        x: Optional["int"] = None,
3550        y: Optional["int"] = None,
3551        wait: Optional["bool"] = None,
3552        hold_ms: Optional["int"] = None,
3553    ) -> None:
3554        self.yes_no = yes_no
3555        self.swipe = swipe
3556        self.input = input
3557        self.x = x
3558        self.y = y
3559        self.wait = wait
3560        self.hold_ms = hold_ms
3561
3562
3563class DebugLinkLayout(protobuf.MessageType):
3564    MESSAGE_WIRE_TYPE = 9001
3565    FIELDS = {
3566        1: protobuf.Field("lines", "string", repeated=True, required=False),
3567    }
3568
3569    def __init__(
3570        self,
3571        *,
3572        lines: Optional[Sequence["str"]] = None,
3573    ) -> None:
3574        self.lines: Sequence["str"] = lines if lines is not None else []
3575
3576
3577class DebugLinkReseedRandom(protobuf.MessageType):
3578    MESSAGE_WIRE_TYPE = 9002
3579    FIELDS = {
3580        1: protobuf.Field("value", "uint32", repeated=False, required=False),
3581    }
3582
3583    def __init__(
3584        self,
3585        *,
3586        value: Optional["int"] = None,
3587    ) -> None:
3588        self.value = value
3589
3590
3591class DebugLinkRecordScreen(protobuf.MessageType):
3592    MESSAGE_WIRE_TYPE = 9003
3593    FIELDS = {
3594        1: protobuf.Field("target_directory", "string", repeated=False, required=False),
3595    }
3596
3597    def __init__(
3598        self,
3599        *,
3600        target_directory: Optional["str"] = None,
3601    ) -> None:
3602        self.target_directory = target_directory
3603
3604
3605class DebugLinkGetState(protobuf.MessageType):
3606    MESSAGE_WIRE_TYPE = 101
3607    FIELDS = {
3608        1: protobuf.Field("wait_word_list", "bool", repeated=False, required=False),
3609        2: protobuf.Field("wait_word_pos", "bool", repeated=False, required=False),
3610        3: protobuf.Field("wait_layout", "bool", repeated=False, required=False),
3611    }
3612
3613    def __init__(
3614        self,
3615        *,
3616        wait_word_list: Optional["bool"] = None,
3617        wait_word_pos: Optional["bool"] = None,
3618        wait_layout: Optional["bool"] = None,
3619    ) -> None:
3620        self.wait_word_list = wait_word_list
3621        self.wait_word_pos = wait_word_pos
3622        self.wait_layout = wait_layout
3623
3624
3625class DebugLinkState(protobuf.MessageType):
3626    MESSAGE_WIRE_TYPE = 102
3627    FIELDS = {
3628        1: protobuf.Field("layout", "bytes", repeated=False, required=False),
3629        2: protobuf.Field("pin", "string", repeated=False, required=False),
3630        3: protobuf.Field("matrix", "string", repeated=False, required=False),
3631        4: protobuf.Field("mnemonic_secret", "bytes", repeated=False, required=False),
3632        5: protobuf.Field("node", "HDNodeType", repeated=False, required=False),
3633        6: protobuf.Field("passphrase_protection", "bool", repeated=False, required=False),
3634        7: protobuf.Field("reset_word", "string", repeated=False, required=False),
3635        8: protobuf.Field("reset_entropy", "bytes", repeated=False, required=False),
3636        9: protobuf.Field("recovery_fake_word", "string", repeated=False, required=False),
3637        10: protobuf.Field("recovery_word_pos", "uint32", repeated=False, required=False),
3638        11: protobuf.Field("reset_word_pos", "uint32", repeated=False, required=False),
3639        12: protobuf.Field("mnemonic_type", "BackupType", repeated=False, required=False),
3640        13: protobuf.Field("layout_lines", "string", repeated=True, required=False),
3641    }
3642
3643    def __init__(
3644        self,
3645        *,
3646        layout_lines: Optional[Sequence["str"]] = None,
3647        layout: Optional["bytes"] = None,
3648        pin: Optional["str"] = None,
3649        matrix: Optional["str"] = None,
3650        mnemonic_secret: Optional["bytes"] = None,
3651        node: Optional["HDNodeType"] = None,
3652        passphrase_protection: Optional["bool"] = None,
3653        reset_word: Optional["str"] = None,
3654        reset_entropy: Optional["bytes"] = None,
3655        recovery_fake_word: Optional["str"] = None,
3656        recovery_word_pos: Optional["int"] = None,
3657        reset_word_pos: Optional["int"] = None,
3658        mnemonic_type: Optional["BackupType"] = None,
3659    ) -> None:
3660        self.layout_lines: Sequence["str"] = layout_lines if layout_lines is not None else []
3661        self.layout = layout
3662        self.pin = pin
3663        self.matrix = matrix
3664        self.mnemonic_secret = mnemonic_secret
3665        self.node = node
3666        self.passphrase_protection = passphrase_protection
3667        self.reset_word = reset_word
3668        self.reset_entropy = reset_entropy
3669        self.recovery_fake_word = recovery_fake_word
3670        self.recovery_word_pos = recovery_word_pos
3671        self.reset_word_pos = reset_word_pos
3672        self.mnemonic_type = mnemonic_type
3673
3674
3675class DebugLinkStop(protobuf.MessageType):
3676    MESSAGE_WIRE_TYPE = 103
3677
3678
3679class DebugLinkLog(protobuf.MessageType):
3680    MESSAGE_WIRE_TYPE = 104
3681    FIELDS = {
3682        1: protobuf.Field("level", "uint32", repeated=False, required=False),
3683        2: protobuf.Field("bucket", "string", repeated=False, required=False),
3684        3: protobuf.Field("text", "string", repeated=False, required=False),
3685    }
3686
3687    def __init__(
3688        self,
3689        *,
3690        level: Optional["int"] = None,
3691        bucket: Optional["str"] = None,
3692        text: Optional["str"] = None,
3693    ) -> None:
3694        self.level = level
3695        self.bucket = bucket
3696        self.text = text
3697
3698
3699class DebugLinkMemoryRead(protobuf.MessageType):
3700    MESSAGE_WIRE_TYPE = 110
3701    FIELDS = {
3702        1: protobuf.Field("address", "uint32", repeated=False, required=False),
3703        2: protobuf.Field("length", "uint32", repeated=False, required=False),
3704    }
3705
3706    def __init__(
3707        self,
3708        *,
3709        address: Optional["int"] = None,
3710        length: Optional["int"] = None,
3711    ) -> None:
3712        self.address = address
3713        self.length = length
3714
3715
3716class DebugLinkMemory(protobuf.MessageType):
3717    MESSAGE_WIRE_TYPE = 111
3718    FIELDS = {
3719        1: protobuf.Field("memory", "bytes", repeated=False, required=False),
3720    }
3721
3722    def __init__(
3723        self,
3724        *,
3725        memory: Optional["bytes"] = None,
3726    ) -> None:
3727        self.memory = memory
3728
3729
3730class DebugLinkMemoryWrite(protobuf.MessageType):
3731    MESSAGE_WIRE_TYPE = 112
3732    FIELDS = {
3733        1: protobuf.Field("address", "uint32", repeated=False, required=False),
3734        2: protobuf.Field("memory", "bytes", repeated=False, required=False),
3735        3: protobuf.Field("flash", "bool", repeated=False, required=False),
3736    }
3737
3738    def __init__(
3739        self,
3740        *,
3741        address: Optional["int"] = None,
3742        memory: Optional["bytes"] = None,
3743        flash: Optional["bool"] = None,
3744    ) -> None:
3745        self.address = address
3746        self.memory = memory
3747        self.flash = flash
3748
3749
3750class DebugLinkFlashErase(protobuf.MessageType):
3751    MESSAGE_WIRE_TYPE = 113
3752    FIELDS = {
3753        1: protobuf.Field("sector", "uint32", repeated=False, required=False),
3754    }
3755
3756    def __init__(
3757        self,
3758        *,
3759        sector: Optional["int"] = None,
3760    ) -> None:
3761        self.sector = sector
3762
3763
3764class DebugLinkEraseSdCard(protobuf.MessageType):
3765    MESSAGE_WIRE_TYPE = 9005
3766    FIELDS = {
3767        1: protobuf.Field("format", "bool", repeated=False, required=False),
3768    }
3769
3770    def __init__(
3771        self,
3772        *,
3773        format: Optional["bool"] = None,
3774    ) -> None:
3775        self.format = format
3776
3777
3778class DebugLinkWatchLayout(protobuf.MessageType):
3779    MESSAGE_WIRE_TYPE = 9006
3780    FIELDS = {
3781        1: protobuf.Field("watch", "bool", repeated=False, required=False),
3782    }
3783
3784    def __init__(
3785        self,
3786        *,
3787        watch: Optional["bool"] = None,
3788    ) -> None:
3789        self.watch = watch
3790
3791
3792class EosGetPublicKey(protobuf.MessageType):
3793    MESSAGE_WIRE_TYPE = 600
3794    FIELDS = {
3795        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
3796        2: protobuf.Field("show_display", "bool", repeated=False, required=False),
3797    }
3798
3799    def __init__(
3800        self,
3801        *,
3802        address_n: Optional[Sequence["int"]] = None,
3803        show_display: Optional["bool"] = None,
3804    ) -> None:
3805        self.address_n: Sequence["int"] = address_n if address_n is not None else []
3806        self.show_display = show_display
3807
3808
3809class EosPublicKey(protobuf.MessageType):
3810    MESSAGE_WIRE_TYPE = 601
3811    FIELDS = {
3812        1: protobuf.Field("wif_public_key", "string", repeated=False, required=True),
3813        2: protobuf.Field("raw_public_key", "bytes", repeated=False, required=True),
3814    }
3815
3816    def __init__(
3817        self,
3818        *,
3819        wif_public_key: "str",
3820        raw_public_key: "bytes",
3821    ) -> None:
3822        self.wif_public_key = wif_public_key
3823        self.raw_public_key = raw_public_key
3824
3825
3826class EosSignTx(protobuf.MessageType):
3827    MESSAGE_WIRE_TYPE = 602
3828    FIELDS = {
3829        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
3830        2: protobuf.Field("chain_id", "bytes", repeated=False, required=False),
3831        3: protobuf.Field("header", "EosTxHeader", repeated=False, required=False),
3832        4: protobuf.Field("num_actions", "uint32", repeated=False, required=False),
3833    }
3834
3835    def __init__(
3836        self,
3837        *,
3838        address_n: Optional[Sequence["int"]] = None,
3839        chain_id: Optional["bytes"] = None,
3840        header: Optional["EosTxHeader"] = None,
3841        num_actions: Optional["int"] = None,
3842    ) -> None:
3843        self.address_n: Sequence["int"] = address_n if address_n is not None else []
3844        self.chain_id = chain_id
3845        self.header = header
3846        self.num_actions = num_actions
3847
3848
3849class EosTxActionRequest(protobuf.MessageType):
3850    MESSAGE_WIRE_TYPE = 603
3851    FIELDS = {
3852        1: protobuf.Field("data_size", "uint32", repeated=False, required=False),
3853    }
3854
3855    def __init__(
3856        self,
3857        *,
3858        data_size: Optional["int"] = None,
3859    ) -> None:
3860        self.data_size = data_size
3861
3862
3863class EosTxActionAck(protobuf.MessageType):
3864    MESSAGE_WIRE_TYPE = 604
3865    FIELDS = {
3866        1: protobuf.Field("common", "EosActionCommon", repeated=False, required=False),
3867        2: protobuf.Field("transfer", "EosActionTransfer", repeated=False, required=False),
3868        3: protobuf.Field("delegate", "EosActionDelegate", repeated=False, required=False),
3869        4: protobuf.Field("undelegate", "EosActionUndelegate", repeated=False, required=False),
3870        5: protobuf.Field("refund", "EosActionRefund", repeated=False, required=False),
3871        6: protobuf.Field("buy_ram", "EosActionBuyRam", repeated=False, required=False),
3872        7: protobuf.Field("buy_ram_bytes", "EosActionBuyRamBytes", repeated=False, required=False),
3873        8: protobuf.Field("sell_ram", "EosActionSellRam", repeated=False, required=False),
3874        9: protobuf.Field("vote_producer", "EosActionVoteProducer", repeated=False, required=False),
3875        10: protobuf.Field("update_auth", "EosActionUpdateAuth", repeated=False, required=False),
3876        11: protobuf.Field("delete_auth", "EosActionDeleteAuth", repeated=False, required=False),
3877        12: protobuf.Field("link_auth", "EosActionLinkAuth", repeated=False, required=False),
3878        13: protobuf.Field("unlink_auth", "EosActionUnlinkAuth", repeated=False, required=False),
3879        14: protobuf.Field("new_account", "EosActionNewAccount", repeated=False, required=False),
3880        15: protobuf.Field("unknown", "EosActionUnknown", repeated=False, required=False),
3881    }
3882
3883    def __init__(
3884        self,
3885        *,
3886        common: Optional["EosActionCommon"] = None,
3887        transfer: Optional["EosActionTransfer"] = None,
3888        delegate: Optional["EosActionDelegate"] = None,
3889        undelegate: Optional["EosActionUndelegate"] = None,
3890        refund: Optional["EosActionRefund"] = None,
3891        buy_ram: Optional["EosActionBuyRam"] = None,
3892        buy_ram_bytes: Optional["EosActionBuyRamBytes"] = None,
3893        sell_ram: Optional["EosActionSellRam"] = None,
3894        vote_producer: Optional["EosActionVoteProducer"] = None,
3895        update_auth: Optional["EosActionUpdateAuth"] = None,
3896        delete_auth: Optional["EosActionDeleteAuth"] = None,
3897        link_auth: Optional["EosActionLinkAuth"] = None,
3898        unlink_auth: Optional["EosActionUnlinkAuth"] = None,
3899        new_account: Optional["EosActionNewAccount"] = None,
3900        unknown: Optional["EosActionUnknown"] = None,
3901    ) -> None:
3902        self.common = common
3903        self.transfer = transfer
3904        self.delegate = delegate
3905        self.undelegate = undelegate
3906        self.refund = refund
3907        self.buy_ram = buy_ram
3908        self.buy_ram_bytes = buy_ram_bytes
3909        self.sell_ram = sell_ram
3910        self.vote_producer = vote_producer
3911        self.update_auth = update_auth
3912        self.delete_auth = delete_auth
3913        self.link_auth = link_auth
3914        self.unlink_auth = unlink_auth
3915        self.new_account = new_account
3916        self.unknown = unknown
3917
3918
3919class EosSignedTx(protobuf.MessageType):
3920    MESSAGE_WIRE_TYPE = 605
3921    FIELDS = {
3922        1: protobuf.Field("signature", "string", repeated=False, required=True),
3923    }
3924
3925    def __init__(
3926        self,
3927        *,
3928        signature: "str",
3929    ) -> None:
3930        self.signature = signature
3931
3932
3933class EosTxHeader(protobuf.MessageType):
3934    MESSAGE_WIRE_TYPE = None
3935    FIELDS = {
3936        1: protobuf.Field("expiration", "uint32", repeated=False, required=True),
3937        2: protobuf.Field("ref_block_num", "uint32", repeated=False, required=True),
3938        3: protobuf.Field("ref_block_prefix", "uint32", repeated=False, required=True),
3939        4: protobuf.Field("max_net_usage_words", "uint32", repeated=False, required=True),
3940        5: protobuf.Field("max_cpu_usage_ms", "uint32", repeated=False, required=True),
3941        6: protobuf.Field("delay_sec", "uint32", repeated=False, required=True),
3942    }
3943
3944    def __init__(
3945        self,
3946        *,
3947        expiration: "int",
3948        ref_block_num: "int",
3949        ref_block_prefix: "int",
3950        max_net_usage_words: "int",
3951        max_cpu_usage_ms: "int",
3952        delay_sec: "int",
3953    ) -> None:
3954        self.expiration = expiration
3955        self.ref_block_num = ref_block_num
3956        self.ref_block_prefix = ref_block_prefix
3957        self.max_net_usage_words = max_net_usage_words
3958        self.max_cpu_usage_ms = max_cpu_usage_ms
3959        self.delay_sec = delay_sec
3960
3961
3962class EosAsset(protobuf.MessageType):
3963    MESSAGE_WIRE_TYPE = None
3964    FIELDS = {
3965        1: protobuf.Field("amount", "sint64", repeated=False, required=False),
3966        2: protobuf.Field("symbol", "uint64", repeated=False, required=False),
3967    }
3968
3969    def __init__(
3970        self,
3971        *,
3972        amount: Optional["int"] = None,
3973        symbol: Optional["int"] = None,
3974    ) -> None:
3975        self.amount = amount
3976        self.symbol = symbol
3977
3978
3979class EosPermissionLevel(protobuf.MessageType):
3980    MESSAGE_WIRE_TYPE = None
3981    FIELDS = {
3982        1: protobuf.Field("actor", "uint64", repeated=False, required=False),
3983        2: protobuf.Field("permission", "uint64", repeated=False, required=False),
3984    }
3985
3986    def __init__(
3987        self,
3988        *,
3989        actor: Optional["int"] = None,
3990        permission: Optional["int"] = None,
3991    ) -> None:
3992        self.actor = actor
3993        self.permission = permission
3994
3995
3996class EosAuthorizationKey(protobuf.MessageType):
3997    MESSAGE_WIRE_TYPE = None
3998    FIELDS = {
3999        1: protobuf.Field("type", "uint32", repeated=False, required=True),
4000        2: protobuf.Field("key", "bytes", repeated=False, required=False),
4001        3: protobuf.Field("address_n", "uint32", repeated=True, required=False),
4002        4: protobuf.Field("weight", "uint32", repeated=False, required=True),
4003    }
4004
4005    def __init__(
4006        self,
4007        *,
4008        type: "int",
4009        weight: "int",
4010        address_n: Optional[Sequence["int"]] = None,
4011        key: Optional["bytes"] = None,
4012    ) -> None:
4013        self.address_n: Sequence["int"] = address_n if address_n is not None else []
4014        self.type = type
4015        self.weight = weight
4016        self.key = key
4017
4018
4019class EosAuthorizationAccount(protobuf.MessageType):
4020    MESSAGE_WIRE_TYPE = None
4021    FIELDS = {
4022        1: protobuf.Field("account", "EosPermissionLevel", repeated=False, required=False),
4023        2: protobuf.Field("weight", "uint32", repeated=False, required=False),
4024    }
4025
4026    def __init__(
4027        self,
4028        *,
4029        account: Optional["EosPermissionLevel"] = None,
4030        weight: Optional["int"] = None,
4031    ) -> None:
4032        self.account = account
4033        self.weight = weight
4034
4035
4036class EosAuthorizationWait(protobuf.MessageType):
4037    MESSAGE_WIRE_TYPE = None
4038    FIELDS = {
4039        1: protobuf.Field("wait_sec", "uint32", repeated=False, required=False),
4040        2: protobuf.Field("weight", "uint32", repeated=False, required=False),
4041    }
4042
4043    def __init__(
4044        self,
4045        *,
4046        wait_sec: Optional["int"] = None,
4047        weight: Optional["int"] = None,
4048    ) -> None:
4049        self.wait_sec = wait_sec
4050        self.weight = weight
4051
4052
4053class EosAuthorization(protobuf.MessageType):
4054    MESSAGE_WIRE_TYPE = None
4055    FIELDS = {
4056        1: protobuf.Field("threshold", "uint32", repeated=False, required=False),
4057        2: protobuf.Field("keys", "EosAuthorizationKey", repeated=True, required=False),
4058        3: protobuf.Field("accounts", "EosAuthorizationAccount", repeated=True, required=False),
4059        4: protobuf.Field("waits", "EosAuthorizationWait", repeated=True, required=False),
4060    }
4061
4062    def __init__(
4063        self,
4064        *,
4065        keys: Optional[Sequence["EosAuthorizationKey"]] = None,
4066        accounts: Optional[Sequence["EosAuthorizationAccount"]] = None,
4067        waits: Optional[Sequence["EosAuthorizationWait"]] = None,
4068        threshold: Optional["int"] = None,
4069    ) -> None:
4070        self.keys: Sequence["EosAuthorizationKey"] = keys if keys is not None else []
4071        self.accounts: Sequence["EosAuthorizationAccount"] = accounts if accounts is not None else []
4072        self.waits: Sequence["EosAuthorizationWait"] = waits if waits is not None else []
4073        self.threshold = threshold
4074
4075
4076class EosActionCommon(protobuf.MessageType):
4077    MESSAGE_WIRE_TYPE = None
4078    FIELDS = {
4079        1: protobuf.Field("account", "uint64", repeated=False, required=False),
4080        2: protobuf.Field("name", "uint64", repeated=False, required=False),
4081        3: protobuf.Field("authorization", "EosPermissionLevel", repeated=True, required=False),
4082    }
4083
4084    def __init__(
4085        self,
4086        *,
4087        authorization: Optional[Sequence["EosPermissionLevel"]] = None,
4088        account: Optional["int"] = None,
4089        name: Optional["int"] = None,
4090    ) -> None:
4091        self.authorization: Sequence["EosPermissionLevel"] = authorization if authorization is not None else []
4092        self.account = account
4093        self.name = name
4094
4095
4096class EosActionTransfer(protobuf.MessageType):
4097    MESSAGE_WIRE_TYPE = None
4098    FIELDS = {
4099        1: protobuf.Field("sender", "uint64", repeated=False, required=False),
4100        2: protobuf.Field("receiver", "uint64", repeated=False, required=False),
4101        3: protobuf.Field("quantity", "EosAsset", repeated=False, required=False),
4102        4: protobuf.Field("memo", "string", repeated=False, required=False),
4103    }
4104
4105    def __init__(
4106        self,
4107        *,
4108        sender: Optional["int"] = None,
4109        receiver: Optional["int"] = None,
4110        quantity: Optional["EosAsset"] = None,
4111        memo: Optional["str"] = None,
4112    ) -> None:
4113        self.sender = sender
4114        self.receiver = receiver
4115        self.quantity = quantity
4116        self.memo = memo
4117
4118
4119class EosActionDelegate(protobuf.MessageType):
4120    MESSAGE_WIRE_TYPE = None
4121    FIELDS = {
4122        1: protobuf.Field("sender", "uint64", repeated=False, required=False),
4123        2: protobuf.Field("receiver", "uint64", repeated=False, required=False),
4124        3: protobuf.Field("net_quantity", "EosAsset", repeated=False, required=False),
4125        4: protobuf.Field("cpu_quantity", "EosAsset", repeated=False, required=False),
4126        5: protobuf.Field("transfer", "bool", repeated=False, required=False),
4127    }
4128
4129    def __init__(
4130        self,
4131        *,
4132        sender: Optional["int"] = None,
4133        receiver: Optional["int"] = None,
4134        net_quantity: Optional["EosAsset"] = None,
4135        cpu_quantity: Optional["EosAsset"] = None,
4136        transfer: Optional["bool"] = None,
4137    ) -> None:
4138        self.sender = sender
4139        self.receiver = receiver
4140        self.net_quantity = net_quantity
4141        self.cpu_quantity = cpu_quantity
4142        self.transfer = transfer
4143
4144
4145class EosActionUndelegate(protobuf.MessageType):
4146    MESSAGE_WIRE_TYPE = None
4147    FIELDS = {
4148        1: protobuf.Field("sender", "uint64", repeated=False, required=False),
4149        2: protobuf.Field("receiver", "uint64", repeated=False, required=False),
4150        3: protobuf.Field("net_quantity", "EosAsset", repeated=False, required=False),
4151        4: protobuf.Field("cpu_quantity", "EosAsset", repeated=False, required=False),
4152    }
4153
4154    def __init__(
4155        self,
4156        *,
4157        sender: Optional["int"] = None,
4158        receiver: Optional["int"] = None,
4159        net_quantity: Optional["EosAsset"] = None,
4160        cpu_quantity: Optional["EosAsset"] = None,
4161    ) -> None:
4162        self.sender = sender
4163        self.receiver = receiver
4164        self.net_quantity = net_quantity
4165        self.cpu_quantity = cpu_quantity
4166
4167
4168class EosActionRefund(protobuf.MessageType):
4169    MESSAGE_WIRE_TYPE = None
4170    FIELDS = {
4171        1: protobuf.Field("owner", "uint64", repeated=False, required=False),
4172    }
4173
4174    def __init__(
4175        self,
4176        *,
4177        owner: Optional["int"] = None,
4178    ) -> None:
4179        self.owner = owner
4180
4181
4182class EosActionBuyRam(protobuf.MessageType):
4183    MESSAGE_WIRE_TYPE = None
4184    FIELDS = {
4185        1: protobuf.Field("payer", "uint64", repeated=False, required=False),
4186        2: protobuf.Field("receiver", "uint64", repeated=False, required=False),
4187        3: protobuf.Field("quantity", "EosAsset", repeated=False, required=False),
4188    }
4189
4190    def __init__(
4191        self,
4192        *,
4193        payer: Optional["int"] = None,
4194        receiver: Optional["int"] = None,
4195        quantity: Optional["EosAsset"] = None,
4196    ) -> None:
4197        self.payer = payer
4198        self.receiver = receiver
4199        self.quantity = quantity
4200
4201
4202class EosActionBuyRamBytes(protobuf.MessageType):
4203    MESSAGE_WIRE_TYPE = None
4204    FIELDS = {
4205        1: protobuf.Field("payer", "uint64", repeated=False, required=False),
4206        2: protobuf.Field("receiver", "uint64", repeated=False, required=False),
4207        3: protobuf.Field("bytes", "uint32", repeated=False, required=False),
4208    }
4209
4210    def __init__(
4211        self,
4212        *,
4213        payer: Optional["int"] = None,
4214        receiver: Optional["int"] = None,
4215        bytes: Optional["int"] = None,
4216    ) -> None:
4217        self.payer = payer
4218        self.receiver = receiver
4219        self.bytes = bytes
4220
4221
4222class EosActionSellRam(protobuf.MessageType):
4223    MESSAGE_WIRE_TYPE = None
4224    FIELDS = {
4225        1: protobuf.Field("account", "uint64", repeated=False, required=False),
4226        2: protobuf.Field("bytes", "uint64", repeated=False, required=False),
4227    }
4228
4229    def __init__(
4230        self,
4231        *,
4232        account: Optional["int"] = None,
4233        bytes: Optional["int"] = None,
4234    ) -> None:
4235        self.account = account
4236        self.bytes = bytes
4237
4238
4239class EosActionVoteProducer(protobuf.MessageType):
4240    MESSAGE_WIRE_TYPE = None
4241    FIELDS = {
4242        1: protobuf.Field("voter", "uint64", repeated=False, required=False),
4243        2: protobuf.Field("proxy", "uint64", repeated=False, required=False),
4244        3: protobuf.Field("producers", "uint64", repeated=True, required=False),
4245    }
4246
4247    def __init__(
4248        self,
4249        *,
4250        producers: Optional[Sequence["int"]] = None,
4251        voter: Optional["int"] = None,
4252        proxy: Optional["int"] = None,
4253    ) -> None:
4254        self.producers: Sequence["int"] = producers if producers is not None else []
4255        self.voter = voter
4256        self.proxy = proxy
4257
4258
4259class EosActionUpdateAuth(protobuf.MessageType):
4260    MESSAGE_WIRE_TYPE = None
4261    FIELDS = {
4262        1: protobuf.Field("account", "uint64", repeated=False, required=False),
4263        2: protobuf.Field("permission", "uint64", repeated=False, required=False),
4264        3: protobuf.Field("parent", "uint64", repeated=False, required=False),
4265        4: protobuf.Field("auth", "EosAuthorization", repeated=False, required=False),
4266    }
4267
4268    def __init__(
4269        self,
4270        *,
4271        account: Optional["int"] = None,
4272        permission: Optional["int"] = None,
4273        parent: Optional["int"] = None,
4274        auth: Optional["EosAuthorization"] = None,
4275    ) -> None:
4276        self.account = account
4277        self.permission = permission
4278        self.parent = parent
4279        self.auth = auth
4280
4281
4282class EosActionDeleteAuth(protobuf.MessageType):
4283    MESSAGE_WIRE_TYPE = None
4284    FIELDS = {
4285        1: protobuf.Field("account", "uint64", repeated=False, required=False),
4286        2: protobuf.Field("permission", "uint64", repeated=False, required=False),
4287    }
4288
4289    def __init__(
4290        self,
4291        *,
4292        account: Optional["int"] = None,
4293        permission: Optional["int"] = None,
4294    ) -> None:
4295        self.account = account
4296        self.permission = permission
4297
4298
4299class EosActionLinkAuth(protobuf.MessageType):
4300    MESSAGE_WIRE_TYPE = None
4301    FIELDS = {
4302        1: protobuf.Field("account", "uint64", repeated=False, required=False),
4303        2: protobuf.Field("code", "uint64", repeated=False, required=False),
4304        3: protobuf.Field("type", "uint64", repeated=False, required=False),
4305        4: protobuf.Field("requirement", "uint64", repeated=False, required=False),
4306    }
4307
4308    def __init__(
4309        self,
4310        *,
4311        account: Optional["int"] = None,
4312        code: Optional["int"] = None,
4313        type: Optional["int"] = None,
4314        requirement: Optional["int"] = None,
4315    ) -> None:
4316        self.account = account
4317        self.code = code
4318        self.type = type
4319        self.requirement = requirement
4320
4321
4322class EosActionUnlinkAuth(protobuf.MessageType):
4323    MESSAGE_WIRE_TYPE = None
4324    FIELDS = {
4325        1: protobuf.Field("account", "uint64", repeated=False, required=False),
4326        2: protobuf.Field("code", "uint64", repeated=False, required=False),
4327        3: protobuf.Field("type", "uint64", repeated=False, required=False),
4328    }
4329
4330    def __init__(
4331        self,
4332        *,
4333        account: Optional["int"] = None,
4334        code: Optional["int"] = None,
4335        type: Optional["int"] = None,
4336    ) -> None:
4337        self.account = account
4338        self.code = code
4339        self.type = type
4340
4341
4342class EosActionNewAccount(protobuf.MessageType):
4343    MESSAGE_WIRE_TYPE = None
4344    FIELDS = {
4345        1: protobuf.Field("creator", "uint64", repeated=False, required=False),
4346        2: protobuf.Field("name", "uint64", repeated=False, required=False),
4347        3: protobuf.Field("owner", "EosAuthorization", repeated=False, required=False),
4348        4: protobuf.Field("active", "EosAuthorization", repeated=False, required=False),
4349    }
4350
4351    def __init__(
4352        self,
4353        *,
4354        creator: Optional["int"] = None,
4355        name: Optional["int"] = None,
4356        owner: Optional["EosAuthorization"] = None,
4357        active: Optional["EosAuthorization"] = None,
4358    ) -> None:
4359        self.creator = creator
4360        self.name = name
4361        self.owner = owner
4362        self.active = active
4363
4364
4365class EosActionUnknown(protobuf.MessageType):
4366    MESSAGE_WIRE_TYPE = None
4367    FIELDS = {
4368        1: protobuf.Field("data_size", "uint32", repeated=False, required=True),
4369        2: protobuf.Field("data_chunk", "bytes", repeated=False, required=False),
4370    }
4371
4372    def __init__(
4373        self,
4374        *,
4375        data_size: "int",
4376        data_chunk: Optional["bytes"] = None,
4377    ) -> None:
4378        self.data_size = data_size
4379        self.data_chunk = data_chunk
4380
4381
4382class EthereumSignTypedData(protobuf.MessageType):
4383    MESSAGE_WIRE_TYPE = 464
4384    FIELDS = {
4385        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
4386        2: protobuf.Field("primary_type", "string", repeated=False, required=True),
4387        3: protobuf.Field("metamask_v4_compat", "bool", repeated=False, required=False),
4388    }
4389
4390    def __init__(
4391        self,
4392        *,
4393        primary_type: "str",
4394        address_n: Optional[Sequence["int"]] = None,
4395        metamask_v4_compat: Optional["bool"] = True,
4396    ) -> None:
4397        self.address_n: Sequence["int"] = address_n if address_n is not None else []
4398        self.primary_type = primary_type
4399        self.metamask_v4_compat = metamask_v4_compat
4400
4401
4402class EthereumTypedDataStructRequest(protobuf.MessageType):
4403    MESSAGE_WIRE_TYPE = 465
4404    FIELDS = {
4405        1: protobuf.Field("name", "string", repeated=False, required=True),
4406    }
4407
4408    def __init__(
4409        self,
4410        *,
4411        name: "str",
4412    ) -> None:
4413        self.name = name
4414
4415
4416class EthereumTypedDataStructAck(protobuf.MessageType):
4417    MESSAGE_WIRE_TYPE = 466
4418    FIELDS = {
4419        1: protobuf.Field("members", "EthereumStructMember", repeated=True, required=False),
4420    }
4421
4422    def __init__(
4423        self,
4424        *,
4425        members: Optional[Sequence["EthereumStructMember"]] = None,
4426    ) -> None:
4427        self.members: Sequence["EthereumStructMember"] = members if members is not None else []
4428
4429
4430class EthereumTypedDataValueRequest(protobuf.MessageType):
4431    MESSAGE_WIRE_TYPE = 467
4432    FIELDS = {
4433        1: protobuf.Field("member_path", "uint32", repeated=True, required=False),
4434    }
4435
4436    def __init__(
4437        self,
4438        *,
4439        member_path: Optional[Sequence["int"]] = None,
4440    ) -> None:
4441        self.member_path: Sequence["int"] = member_path if member_path is not None else []
4442
4443
4444class EthereumTypedDataValueAck(protobuf.MessageType):
4445    MESSAGE_WIRE_TYPE = 468
4446    FIELDS = {
4447        1: protobuf.Field("value", "bytes", repeated=False, required=True),
4448    }
4449
4450    def __init__(
4451        self,
4452        *,
4453        value: "bytes",
4454    ) -> None:
4455        self.value = value
4456
4457
4458class EthereumTypedDataSignature(protobuf.MessageType):
4459    MESSAGE_WIRE_TYPE = 469
4460    FIELDS = {
4461        1: protobuf.Field("signature", "bytes", repeated=False, required=True),
4462        2: protobuf.Field("address", "string", repeated=False, required=True),
4463    }
4464
4465    def __init__(
4466        self,
4467        *,
4468        signature: "bytes",
4469        address: "str",
4470    ) -> None:
4471        self.signature = signature
4472        self.address = address
4473
4474
4475class EthereumStructMember(protobuf.MessageType):
4476    MESSAGE_WIRE_TYPE = None
4477    FIELDS = {
4478        1: protobuf.Field("type", "EthereumFieldType", repeated=False, required=True),
4479        2: protobuf.Field("name", "string", repeated=False, required=True),
4480    }
4481
4482    def __init__(
4483        self,
4484        *,
4485        type: "EthereumFieldType",
4486        name: "str",
4487    ) -> None:
4488        self.type = type
4489        self.name = name
4490
4491
4492class EthereumFieldType(protobuf.MessageType):
4493    MESSAGE_WIRE_TYPE = None
4494    FIELDS = {
4495        1: protobuf.Field("data_type", "EthereumDataType", repeated=False, required=True),
4496        2: protobuf.Field("size", "uint32", repeated=False, required=False),
4497        3: protobuf.Field("entry_type", "EthereumFieldType", repeated=False, required=False),
4498        4: protobuf.Field("struct_name", "string", repeated=False, required=False),
4499    }
4500
4501    def __init__(
4502        self,
4503        *,
4504        data_type: "EthereumDataType",
4505        size: Optional["int"] = None,
4506        entry_type: Optional["EthereumFieldType"] = None,
4507        struct_name: Optional["str"] = None,
4508    ) -> None:
4509        self.data_type = data_type
4510        self.size = size
4511        self.entry_type = entry_type
4512        self.struct_name = struct_name
4513
4514
4515class EthereumGetPublicKey(protobuf.MessageType):
4516    MESSAGE_WIRE_TYPE = 450
4517    FIELDS = {
4518        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
4519        2: protobuf.Field("show_display", "bool", repeated=False, required=False),
4520    }
4521
4522    def __init__(
4523        self,
4524        *,
4525        address_n: Optional[Sequence["int"]] = None,
4526        show_display: Optional["bool"] = None,
4527    ) -> None:
4528        self.address_n: Sequence["int"] = address_n if address_n is not None else []
4529        self.show_display = show_display
4530
4531
4532class EthereumPublicKey(protobuf.MessageType):
4533    MESSAGE_WIRE_TYPE = 451
4534    FIELDS = {
4535        1: protobuf.Field("node", "HDNodeType", repeated=False, required=True),
4536        2: protobuf.Field("xpub", "string", repeated=False, required=True),
4537    }
4538
4539    def __init__(
4540        self,
4541        *,
4542        node: "HDNodeType",
4543        xpub: "str",
4544    ) -> None:
4545        self.node = node
4546        self.xpub = xpub
4547
4548
4549class EthereumGetAddress(protobuf.MessageType):
4550    MESSAGE_WIRE_TYPE = 56
4551    FIELDS = {
4552        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
4553        2: protobuf.Field("show_display", "bool", repeated=False, required=False),
4554    }
4555
4556    def __init__(
4557        self,
4558        *,
4559        address_n: Optional[Sequence["int"]] = None,
4560        show_display: Optional["bool"] = None,
4561    ) -> None:
4562        self.address_n: Sequence["int"] = address_n if address_n is not None else []
4563        self.show_display = show_display
4564
4565
4566class EthereumAddress(protobuf.MessageType):
4567    MESSAGE_WIRE_TYPE = 57
4568    FIELDS = {
4569        1: protobuf.Field("_old_address", "bytes", repeated=False, required=False),
4570        2: protobuf.Field("address", "string", repeated=False, required=False),
4571    }
4572
4573    def __init__(
4574        self,
4575        *,
4576        _old_address: Optional["bytes"] = None,
4577        address: Optional["str"] = None,
4578    ) -> None:
4579        self._old_address = _old_address
4580        self.address = address
4581
4582
4583class EthereumSignTx(protobuf.MessageType):
4584    MESSAGE_WIRE_TYPE = 58
4585    FIELDS = {
4586        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
4587        2: protobuf.Field("nonce", "bytes", repeated=False, required=False),
4588        3: protobuf.Field("gas_price", "bytes", repeated=False, required=True),
4589        4: protobuf.Field("gas_limit", "bytes", repeated=False, required=True),
4590        11: protobuf.Field("to", "string", repeated=False, required=False),
4591        6: protobuf.Field("value", "bytes", repeated=False, required=False),
4592        7: protobuf.Field("data_initial_chunk", "bytes", repeated=False, required=False),
4593        8: protobuf.Field("data_length", "uint32", repeated=False, required=False),
4594        9: protobuf.Field("chain_id", "uint64", repeated=False, required=True),
4595        10: protobuf.Field("tx_type", "uint32", repeated=False, required=False),
4596    }
4597
4598    def __init__(
4599        self,
4600        *,
4601        gas_price: "bytes",
4602        gas_limit: "bytes",
4603        chain_id: "int",
4604        address_n: Optional[Sequence["int"]] = None,
4605        nonce: Optional["bytes"] = b'',
4606        to: Optional["str"] = '',
4607        value: Optional["bytes"] = b'',
4608        data_initial_chunk: Optional["bytes"] = b'',
4609        data_length: Optional["int"] = 0,
4610        tx_type: Optional["int"] = None,
4611    ) -> None:
4612        self.address_n: Sequence["int"] = address_n if address_n is not None else []
4613        self.gas_price = gas_price
4614        self.gas_limit = gas_limit
4615        self.chain_id = chain_id
4616        self.nonce = nonce
4617        self.to = to
4618        self.value = value
4619        self.data_initial_chunk = data_initial_chunk
4620        self.data_length = data_length
4621        self.tx_type = tx_type
4622
4623
4624class EthereumSignTxEIP1559(protobuf.MessageType):
4625    MESSAGE_WIRE_TYPE = 452
4626    FIELDS = {
4627        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
4628        2: protobuf.Field("nonce", "bytes", repeated=False, required=True),
4629        3: protobuf.Field("max_gas_fee", "bytes", repeated=False, required=True),
4630        4: protobuf.Field("max_priority_fee", "bytes", repeated=False, required=True),
4631        5: protobuf.Field("gas_limit", "bytes", repeated=False, required=True),
4632        6: protobuf.Field("to", "string", repeated=False, required=False),
4633        7: protobuf.Field("value", "bytes", repeated=False, required=True),
4634        8: protobuf.Field("data_initial_chunk", "bytes", repeated=False, required=False),
4635        9: protobuf.Field("data_length", "uint32", repeated=False, required=True),
4636        10: protobuf.Field("chain_id", "uint64", repeated=False, required=True),
4637        11: protobuf.Field("access_list", "EthereumAccessList", repeated=True, required=False),
4638    }
4639
4640    def __init__(
4641        self,
4642        *,
4643        nonce: "bytes",
4644        max_gas_fee: "bytes",
4645        max_priority_fee: "bytes",
4646        gas_limit: "bytes",
4647        value: "bytes",
4648        data_length: "int",
4649        chain_id: "int",
4650        address_n: Optional[Sequence["int"]] = None,
4651        access_list: Optional[Sequence["EthereumAccessList"]] = None,
4652        to: Optional["str"] = '',
4653        data_initial_chunk: Optional["bytes"] = b'',
4654    ) -> None:
4655        self.address_n: Sequence["int"] = address_n if address_n is not None else []
4656        self.access_list: Sequence["EthereumAccessList"] = access_list if access_list is not None else []
4657        self.nonce = nonce
4658        self.max_gas_fee = max_gas_fee
4659        self.max_priority_fee = max_priority_fee
4660        self.gas_limit = gas_limit
4661        self.value = value
4662        self.data_length = data_length
4663        self.chain_id = chain_id
4664        self.to = to
4665        self.data_initial_chunk = data_initial_chunk
4666
4667
4668class EthereumTxRequest(protobuf.MessageType):
4669    MESSAGE_WIRE_TYPE = 59
4670    FIELDS = {
4671        1: protobuf.Field("data_length", "uint32", repeated=False, required=False),
4672        2: protobuf.Field("signature_v", "uint32", repeated=False, required=False),
4673        3: protobuf.Field("signature_r", "bytes", repeated=False, required=False),
4674        4: protobuf.Field("signature_s", "bytes", repeated=False, required=False),
4675    }
4676
4677    def __init__(
4678        self,
4679        *,
4680        data_length: Optional["int"] = None,
4681        signature_v: Optional["int"] = None,
4682        signature_r: Optional["bytes"] = None,
4683        signature_s: Optional["bytes"] = None,
4684    ) -> None:
4685        self.data_length = data_length
4686        self.signature_v = signature_v
4687        self.signature_r = signature_r
4688        self.signature_s = signature_s
4689
4690
4691class EthereumTxAck(protobuf.MessageType):
4692    MESSAGE_WIRE_TYPE = 60
4693    FIELDS = {
4694        1: protobuf.Field("data_chunk", "bytes", repeated=False, required=True),
4695    }
4696
4697    def __init__(
4698        self,
4699        *,
4700        data_chunk: "bytes",
4701    ) -> None:
4702        self.data_chunk = data_chunk
4703
4704
4705class EthereumSignMessage(protobuf.MessageType):
4706    MESSAGE_WIRE_TYPE = 64
4707    FIELDS = {
4708        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
4709        2: protobuf.Field("message", "bytes", repeated=False, required=True),
4710    }
4711
4712    def __init__(
4713        self,
4714        *,
4715        message: "bytes",
4716        address_n: Optional[Sequence["int"]] = None,
4717    ) -> None:
4718        self.address_n: Sequence["int"] = address_n if address_n is not None else []
4719        self.message = message
4720
4721
4722class EthereumMessageSignature(protobuf.MessageType):
4723    MESSAGE_WIRE_TYPE = 66
4724    FIELDS = {
4725        2: protobuf.Field("signature", "bytes", repeated=False, required=True),
4726        3: protobuf.Field("address", "string", repeated=False, required=True),
4727    }
4728
4729    def __init__(
4730        self,
4731        *,
4732        signature: "bytes",
4733        address: "str",
4734    ) -> None:
4735        self.signature = signature
4736        self.address = address
4737
4738
4739class EthereumVerifyMessage(protobuf.MessageType):
4740    MESSAGE_WIRE_TYPE = 65
4741    FIELDS = {
4742        2: protobuf.Field("signature", "bytes", repeated=False, required=True),
4743        3: protobuf.Field("message", "bytes", repeated=False, required=True),
4744        4: protobuf.Field("address", "string", repeated=False, required=True),
4745    }
4746
4747    def __init__(
4748        self,
4749        *,
4750        signature: "bytes",
4751        message: "bytes",
4752        address: "str",
4753    ) -> None:
4754        self.signature = signature
4755        self.message = message
4756        self.address = address
4757
4758
4759class EthereumAccessList(protobuf.MessageType):
4760    MESSAGE_WIRE_TYPE = None
4761    FIELDS = {
4762        1: protobuf.Field("address", "string", repeated=False, required=True),
4763        2: protobuf.Field("storage_keys", "bytes", repeated=True, required=False),
4764    }
4765
4766    def __init__(
4767        self,
4768        *,
4769        address: "str",
4770        storage_keys: Optional[Sequence["bytes"]] = None,
4771    ) -> None:
4772        self.storage_keys: Sequence["bytes"] = storage_keys if storage_keys is not None else []
4773        self.address = address
4774
4775
4776class MoneroTransactionSourceEntry(protobuf.MessageType):
4777    MESSAGE_WIRE_TYPE = None
4778    FIELDS = {
4779        1: protobuf.Field("outputs", "MoneroOutputEntry", repeated=True, required=False),
4780        2: protobuf.Field("real_output", "uint64", repeated=False, required=False),
4781        3: protobuf.Field("real_out_tx_key", "bytes", repeated=False, required=False),
4782        4: protobuf.Field("real_out_additional_tx_keys", "bytes", repeated=True, required=False),
4783        5: protobuf.Field("real_output_in_tx_index", "uint64", repeated=False, required=False),
4784        6: protobuf.Field("amount", "uint64", repeated=False, required=False),
4785        7: protobuf.Field("rct", "bool", repeated=False, required=False),
4786        8: protobuf.Field("mask", "bytes", repeated=False, required=False),
4787        9: protobuf.Field("multisig_kLRki", "MoneroMultisigKLRki", repeated=False, required=False),
4788        10: protobuf.Field("subaddr_minor", "uint32", repeated=False, required=False),
4789    }
4790
4791    def __init__(
4792        self,
4793        *,
4794        outputs: Optional[Sequence["MoneroOutputEntry"]] = None,
4795        real_out_additional_tx_keys: Optional[Sequence["bytes"]] = None,
4796        real_output: Optional["int"] = None,
4797        real_out_tx_key: Optional["bytes"] = None,
4798        real_output_in_tx_index: Optional["int"] = None,
4799        amount: Optional["int"] = None,
4800        rct: Optional["bool"] = None,
4801        mask: Optional["bytes"] = None,
4802        multisig_kLRki: Optional["MoneroMultisigKLRki"] = None,
4803        subaddr_minor: Optional["int"] = None,
4804    ) -> None:
4805        self.outputs: Sequence["MoneroOutputEntry"] = outputs if outputs is not None else []
4806        self.real_out_additional_tx_keys: Sequence["bytes"] = real_out_additional_tx_keys if real_out_additional_tx_keys is not None else []
4807        self.real_output = real_output
4808        self.real_out_tx_key = real_out_tx_key
4809        self.real_output_in_tx_index = real_output_in_tx_index
4810        self.amount = amount
4811        self.rct = rct
4812        self.mask = mask
4813        self.multisig_kLRki = multisig_kLRki
4814        self.subaddr_minor = subaddr_minor
4815
4816
4817class MoneroTransactionDestinationEntry(protobuf.MessageType):
4818    MESSAGE_WIRE_TYPE = None
4819    FIELDS = {
4820        1: protobuf.Field("amount", "uint64", repeated=False, required=False),
4821        2: protobuf.Field("addr", "MoneroAccountPublicAddress", repeated=False, required=False),
4822        3: protobuf.Field("is_subaddress", "bool", repeated=False, required=False),
4823        4: protobuf.Field("original", "bytes", repeated=False, required=False),
4824        5: protobuf.Field("is_integrated", "bool", repeated=False, required=False),
4825    }
4826
4827    def __init__(
4828        self,
4829        *,
4830        amount: Optional["int"] = None,
4831        addr: Optional["MoneroAccountPublicAddress"] = None,
4832        is_subaddress: Optional["bool"] = None,
4833        original: Optional["bytes"] = None,
4834        is_integrated: Optional["bool"] = None,
4835    ) -> None:
4836        self.amount = amount
4837        self.addr = addr
4838        self.is_subaddress = is_subaddress
4839        self.original = original
4840        self.is_integrated = is_integrated
4841
4842
4843class MoneroTransactionRsigData(protobuf.MessageType):
4844    MESSAGE_WIRE_TYPE = None
4845    FIELDS = {
4846        1: protobuf.Field("rsig_type", "uint32", repeated=False, required=False),
4847        2: protobuf.Field("offload_type", "uint32", repeated=False, required=False),
4848        3: protobuf.Field("grouping", "uint64", repeated=True, required=False),
4849        4: protobuf.Field("mask", "bytes", repeated=False, required=False),
4850        5: protobuf.Field("rsig", "bytes", repeated=False, required=False),
4851        6: protobuf.Field("rsig_parts", "bytes", repeated=True, required=False),
4852        7: protobuf.Field("bp_version", "uint32", repeated=False, required=False),
4853    }
4854
4855    def __init__(
4856        self,
4857        *,
4858        grouping: Optional[Sequence["int"]] = None,
4859        rsig_parts: Optional[Sequence["bytes"]] = None,
4860        rsig_type: Optional["int"] = None,
4861        offload_type: Optional["int"] = None,
4862        mask: Optional["bytes"] = None,
4863        rsig: Optional["bytes"] = None,
4864        bp_version: Optional["int"] = None,
4865    ) -> None:
4866        self.grouping: Sequence["int"] = grouping if grouping is not None else []
4867        self.rsig_parts: Sequence["bytes"] = rsig_parts if rsig_parts is not None else []
4868        self.rsig_type = rsig_type
4869        self.offload_type = offload_type
4870        self.mask = mask
4871        self.rsig = rsig
4872        self.bp_version = bp_version
4873
4874
4875class MoneroGetAddress(protobuf.MessageType):
4876    MESSAGE_WIRE_TYPE = 540
4877    FIELDS = {
4878        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
4879        2: protobuf.Field("show_display", "bool", repeated=False, required=False),
4880        3: protobuf.Field("network_type", "uint32", repeated=False, required=False),
4881        4: protobuf.Field("account", "uint32", repeated=False, required=False),
4882        5: protobuf.Field("minor", "uint32", repeated=False, required=False),
4883        6: protobuf.Field("payment_id", "bytes", repeated=False, required=False),
4884    }
4885
4886    def __init__(
4887        self,
4888        *,
4889        address_n: Optional[Sequence["int"]] = None,
4890        show_display: Optional["bool"] = None,
4891        network_type: Optional["int"] = None,
4892        account: Optional["int"] = None,
4893        minor: Optional["int"] = None,
4894        payment_id: Optional["bytes"] = None,
4895    ) -> None:
4896        self.address_n: Sequence["int"] = address_n if address_n is not None else []
4897        self.show_display = show_display
4898        self.network_type = network_type
4899        self.account = account
4900        self.minor = minor
4901        self.payment_id = payment_id
4902
4903
4904class MoneroAddress(protobuf.MessageType):
4905    MESSAGE_WIRE_TYPE = 541
4906    FIELDS = {
4907        1: protobuf.Field("address", "bytes", repeated=False, required=False),
4908    }
4909
4910    def __init__(
4911        self,
4912        *,
4913        address: Optional["bytes"] = None,
4914    ) -> None:
4915        self.address = address
4916
4917
4918class MoneroGetWatchKey(protobuf.MessageType):
4919    MESSAGE_WIRE_TYPE = 542
4920    FIELDS = {
4921        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
4922        2: protobuf.Field("network_type", "uint32", repeated=False, required=False),
4923    }
4924
4925    def __init__(
4926        self,
4927        *,
4928        address_n: Optional[Sequence["int"]] = None,
4929        network_type: Optional["int"] = None,
4930    ) -> None:
4931        self.address_n: Sequence["int"] = address_n if address_n is not None else []
4932        self.network_type = network_type
4933
4934
4935class MoneroWatchKey(protobuf.MessageType):
4936    MESSAGE_WIRE_TYPE = 543
4937    FIELDS = {
4938        1: protobuf.Field("watch_key", "bytes", repeated=False, required=False),
4939        2: protobuf.Field("address", "bytes", repeated=False, required=False),
4940    }
4941
4942    def __init__(
4943        self,
4944        *,
4945        watch_key: Optional["bytes"] = None,
4946        address: Optional["bytes"] = None,
4947    ) -> None:
4948        self.watch_key = watch_key
4949        self.address = address
4950
4951
4952class MoneroTransactionInitRequest(protobuf.MessageType):
4953    MESSAGE_WIRE_TYPE = 501
4954    FIELDS = {
4955        1: protobuf.Field("version", "uint32", repeated=False, required=False),
4956        2: protobuf.Field("address_n", "uint32", repeated=True, required=False),
4957        3: protobuf.Field("network_type", "uint32", repeated=False, required=False),
4958        4: protobuf.Field("tsx_data", "MoneroTransactionData", repeated=False, required=False),
4959    }
4960
4961    def __init__(
4962        self,
4963        *,
4964        address_n: Optional[Sequence["int"]] = None,
4965        version: Optional["int"] = None,
4966        network_type: Optional["int"] = None,
4967        tsx_data: Optional["MoneroTransactionData"] = None,
4968    ) -> None:
4969        self.address_n: Sequence["int"] = address_n if address_n is not None else []
4970        self.version = version
4971        self.network_type = network_type
4972        self.tsx_data = tsx_data
4973
4974
4975class MoneroTransactionInitAck(protobuf.MessageType):
4976    MESSAGE_WIRE_TYPE = 502
4977    FIELDS = {
4978        1: protobuf.Field("hmacs", "bytes", repeated=True, required=False),
4979        2: protobuf.Field("rsig_data", "MoneroTransactionRsigData", repeated=False, required=False),
4980    }
4981
4982    def __init__(
4983        self,
4984        *,
4985        hmacs: Optional[Sequence["bytes"]] = None,
4986        rsig_data: Optional["MoneroTransactionRsigData"] = None,
4987    ) -> None:
4988        self.hmacs: Sequence["bytes"] = hmacs if hmacs is not None else []
4989        self.rsig_data = rsig_data
4990
4991
4992class MoneroTransactionSetInputRequest(protobuf.MessageType):
4993    MESSAGE_WIRE_TYPE = 503
4994    FIELDS = {
4995        1: protobuf.Field("src_entr", "MoneroTransactionSourceEntry", repeated=False, required=False),
4996    }
4997
4998    def __init__(
4999        self,
5000        *,
5001        src_entr: Optional["MoneroTransactionSourceEntry"] = None,
5002    ) -> None:
5003        self.src_entr = src_entr
5004
5005
5006class MoneroTransactionSetInputAck(protobuf.MessageType):
5007    MESSAGE_WIRE_TYPE = 504
5008    FIELDS = {
5009        1: protobuf.Field("vini", "bytes", repeated=False, required=False),
5010        2: protobuf.Field("vini_hmac", "bytes", repeated=False, required=False),
5011        3: protobuf.Field("pseudo_out", "bytes", repeated=False, required=False),
5012        4: protobuf.Field("pseudo_out_hmac", "bytes", repeated=False, required=False),
5013        5: protobuf.Field("pseudo_out_alpha", "bytes", repeated=False, required=False),
5014        6: protobuf.Field("spend_key", "bytes", repeated=False, required=False),
5015    }
5016
5017    def __init__(
5018        self,
5019        *,
5020        vini: Optional["bytes"] = None,
5021        vini_hmac: Optional["bytes"] = None,
5022        pseudo_out: Optional["bytes"] = None,
5023        pseudo_out_hmac: Optional["bytes"] = None,
5024        pseudo_out_alpha: Optional["bytes"] = None,
5025        spend_key: Optional["bytes"] = None,
5026    ) -> None:
5027        self.vini = vini
5028        self.vini_hmac = vini_hmac
5029        self.pseudo_out = pseudo_out
5030        self.pseudo_out_hmac = pseudo_out_hmac
5031        self.pseudo_out_alpha = pseudo_out_alpha
5032        self.spend_key = spend_key
5033
5034
5035class MoneroTransactionInputsPermutationRequest(protobuf.MessageType):
5036    MESSAGE_WIRE_TYPE = 505
5037    FIELDS = {
5038        1: protobuf.Field("perm", "uint32", repeated=True, required=False),
5039    }
5040
5041    def __init__(
5042        self,
5043        *,
5044        perm: Optional[Sequence["int"]] = None,
5045    ) -> None:
5046        self.perm: Sequence["int"] = perm if perm is not None else []
5047
5048
5049class MoneroTransactionInputsPermutationAck(protobuf.MessageType):
5050    MESSAGE_WIRE_TYPE = 506
5051
5052
5053class MoneroTransactionInputViniRequest(protobuf.MessageType):
5054    MESSAGE_WIRE_TYPE = 507
5055    FIELDS = {
5056        1: protobuf.Field("src_entr", "MoneroTransactionSourceEntry", repeated=False, required=False),
5057        2: protobuf.Field("vini", "bytes", repeated=False, required=False),
5058        3: protobuf.Field("vini_hmac", "bytes", repeated=False, required=False),
5059        4: protobuf.Field("pseudo_out", "bytes", repeated=False, required=False),
5060        5: protobuf.Field("pseudo_out_hmac", "bytes", repeated=False, required=False),
5061        6: protobuf.Field("orig_idx", "uint32", repeated=False, required=False),
5062    }
5063
5064    def __init__(
5065        self,
5066        *,
5067        src_entr: Optional["MoneroTransactionSourceEntry"] = None,
5068        vini: Optional["bytes"] = None,
5069        vini_hmac: Optional["bytes"] = None,
5070        pseudo_out: Optional["bytes"] = None,
5071        pseudo_out_hmac: Optional["bytes"] = None,
5072        orig_idx: Optional["int"] = None,
5073    ) -> None:
5074        self.src_entr = src_entr
5075        self.vini = vini
5076        self.vini_hmac = vini_hmac
5077        self.pseudo_out = pseudo_out
5078        self.pseudo_out_hmac = pseudo_out_hmac
5079        self.orig_idx = orig_idx
5080
5081
5082class MoneroTransactionInputViniAck(protobuf.MessageType):
5083    MESSAGE_WIRE_TYPE = 508
5084
5085
5086class MoneroTransactionAllInputsSetRequest(protobuf.MessageType):
5087    MESSAGE_WIRE_TYPE = 509
5088
5089
5090class MoneroTransactionAllInputsSetAck(protobuf.MessageType):
5091    MESSAGE_WIRE_TYPE = 510
5092    FIELDS = {
5093        1: protobuf.Field("rsig_data", "MoneroTransactionRsigData", repeated=False, required=False),
5094    }
5095
5096    def __init__(
5097        self,
5098        *,
5099        rsig_data: Optional["MoneroTransactionRsigData"] = None,
5100    ) -> None:
5101        self.rsig_data = rsig_data
5102
5103
5104class MoneroTransactionSetOutputRequest(protobuf.MessageType):
5105    MESSAGE_WIRE_TYPE = 511
5106    FIELDS = {
5107        1: protobuf.Field("dst_entr", "MoneroTransactionDestinationEntry", repeated=False, required=False),
5108        2: protobuf.Field("dst_entr_hmac", "bytes", repeated=False, required=False),
5109        3: protobuf.Field("rsig_data", "MoneroTransactionRsigData", repeated=False, required=False),
5110        4: protobuf.Field("is_offloaded_bp", "bool", repeated=False, required=False),
5111    }
5112
5113    def __init__(
5114        self,
5115        *,
5116        dst_entr: Optional["MoneroTransactionDestinationEntry"] = None,
5117        dst_entr_hmac: Optional["bytes"] = None,
5118        rsig_data: Optional["MoneroTransactionRsigData"] = None,
5119        is_offloaded_bp: Optional["bool"] = None,
5120    ) -> None:
5121        self.dst_entr = dst_entr
5122        self.dst_entr_hmac = dst_entr_hmac
5123        self.rsig_data = rsig_data
5124        self.is_offloaded_bp = is_offloaded_bp
5125
5126
5127class MoneroTransactionSetOutputAck(protobuf.MessageType):
5128    MESSAGE_WIRE_TYPE = 512
5129    FIELDS = {
5130        1: protobuf.Field("tx_out", "bytes", repeated=False, required=False),
5131        2: protobuf.Field("vouti_hmac", "bytes", repeated=False, required=False),
5132        3: protobuf.Field("rsig_data", "MoneroTransactionRsigData", repeated=False, required=False),
5133        4: protobuf.Field("out_pk", "bytes", repeated=False, required=False),
5134        5: protobuf.Field("ecdh_info", "bytes", repeated=False, required=False),
5135    }
5136
5137    def __init__(
5138        self,
5139        *,
5140        tx_out: Optional["bytes"] = None,
5141        vouti_hmac: Optional["bytes"] = None,
5142        rsig_data: Optional["MoneroTransactionRsigData"] = None,
5143        out_pk: Optional["bytes"] = None,
5144        ecdh_info: Optional["bytes"] = None,
5145    ) -> None:
5146        self.tx_out = tx_out
5147        self.vouti_hmac = vouti_hmac
5148        self.rsig_data = rsig_data
5149        self.out_pk = out_pk
5150        self.ecdh_info = ecdh_info
5151
5152
5153class MoneroTransactionAllOutSetRequest(protobuf.MessageType):
5154    MESSAGE_WIRE_TYPE = 513
5155    FIELDS = {
5156        1: protobuf.Field("rsig_data", "MoneroTransactionRsigData", repeated=False, required=False),
5157    }
5158
5159    def __init__(
5160        self,
5161        *,
5162        rsig_data: Optional["MoneroTransactionRsigData"] = None,
5163    ) -> None:
5164        self.rsig_data = rsig_data
5165
5166
5167class MoneroTransactionAllOutSetAck(protobuf.MessageType):
5168    MESSAGE_WIRE_TYPE = 514
5169    FIELDS = {
5170        1: protobuf.Field("extra", "bytes", repeated=False, required=False),
5171        2: protobuf.Field("tx_prefix_hash", "bytes", repeated=False, required=False),
5172        4: protobuf.Field("rv", "MoneroRingCtSig", repeated=False, required=False),
5173        5: protobuf.Field("full_message_hash", "bytes", repeated=False, required=False),
5174    }
5175
5176    def __init__(
5177        self,
5178        *,
5179        extra: Optional["bytes"] = None,
5180        tx_prefix_hash: Optional["bytes"] = None,
5181        rv: Optional["MoneroRingCtSig"] = None,
5182        full_message_hash: Optional["bytes"] = None,
5183    ) -> None:
5184        self.extra = extra
5185        self.tx_prefix_hash = tx_prefix_hash
5186        self.rv = rv
5187        self.full_message_hash = full_message_hash
5188
5189
5190class MoneroTransactionSignInputRequest(protobuf.MessageType):
5191    MESSAGE_WIRE_TYPE = 515
5192    FIELDS = {
5193        1: protobuf.Field("src_entr", "MoneroTransactionSourceEntry", repeated=False, required=False),
5194        2: protobuf.Field("vini", "bytes", repeated=False, required=False),
5195        3: protobuf.Field("vini_hmac", "bytes", repeated=False, required=False),
5196        4: protobuf.Field("pseudo_out", "bytes", repeated=False, required=False),
5197        5: protobuf.Field("pseudo_out_hmac", "bytes", repeated=False, required=False),
5198        6: protobuf.Field("pseudo_out_alpha", "bytes", repeated=False, required=False),
5199        7: protobuf.Field("spend_key", "bytes", repeated=False, required=False),
5200        8: protobuf.Field("orig_idx", "uint32", repeated=False, required=False),
5201    }
5202
5203    def __init__(
5204        self,
5205        *,
5206        src_entr: Optional["MoneroTransactionSourceEntry"] = None,
5207        vini: Optional["bytes"] = None,
5208        vini_hmac: Optional["bytes"] = None,
5209        pseudo_out: Optional["bytes"] = None,
5210        pseudo_out_hmac: Optional["bytes"] = None,
5211        pseudo_out_alpha: Optional["bytes"] = None,
5212        spend_key: Optional["bytes"] = None,
5213        orig_idx: Optional["int"] = None,
5214    ) -> None:
5215        self.src_entr = src_entr
5216        self.vini = vini
5217        self.vini_hmac = vini_hmac
5218        self.pseudo_out = pseudo_out
5219        self.pseudo_out_hmac = pseudo_out_hmac
5220        self.pseudo_out_alpha = pseudo_out_alpha
5221        self.spend_key = spend_key
5222        self.orig_idx = orig_idx
5223
5224
5225class MoneroTransactionSignInputAck(protobuf.MessageType):
5226    MESSAGE_WIRE_TYPE = 516
5227    FIELDS = {
5228        1: protobuf.Field("signature", "bytes", repeated=False, required=False),
5229        2: protobuf.Field("pseudo_out", "bytes", repeated=False, required=False),
5230    }
5231
5232    def __init__(
5233        self,
5234        *,
5235        signature: Optional["bytes"] = None,
5236        pseudo_out: Optional["bytes"] = None,
5237    ) -> None:
5238        self.signature = signature
5239        self.pseudo_out = pseudo_out
5240
5241
5242class MoneroTransactionFinalRequest(protobuf.MessageType):
5243    MESSAGE_WIRE_TYPE = 517
5244
5245
5246class MoneroTransactionFinalAck(protobuf.MessageType):
5247    MESSAGE_WIRE_TYPE = 518
5248    FIELDS = {
5249        1: protobuf.Field("cout_key", "bytes", repeated=False, required=False),
5250        2: protobuf.Field("salt", "bytes", repeated=False, required=False),
5251        3: protobuf.Field("rand_mult", "bytes", repeated=False, required=False),
5252        4: protobuf.Field("tx_enc_keys", "bytes", repeated=False, required=False),
5253        5: protobuf.Field("opening_key", "bytes", repeated=False, required=False),
5254    }
5255
5256    def __init__(
5257        self,
5258        *,
5259        cout_key: Optional["bytes"] = None,
5260        salt: Optional["bytes"] = None,
5261        rand_mult: Optional["bytes"] = None,
5262        tx_enc_keys: Optional["bytes"] = None,
5263        opening_key: Optional["bytes"] = None,
5264    ) -> None:
5265        self.cout_key = cout_key
5266        self.salt = salt
5267        self.rand_mult = rand_mult
5268        self.tx_enc_keys = tx_enc_keys
5269        self.opening_key = opening_key
5270
5271
5272class MoneroKeyImageExportInitRequest(protobuf.MessageType):
5273    MESSAGE_WIRE_TYPE = 530
5274    FIELDS = {
5275        1: protobuf.Field("num", "uint64", repeated=False, required=False),
5276        2: protobuf.Field("hash", "bytes", repeated=False, required=False),
5277        3: protobuf.Field("address_n", "uint32", repeated=True, required=False),
5278        4: protobuf.Field("network_type", "uint32", repeated=False, required=False),
5279        5: protobuf.Field("subs", "MoneroSubAddressIndicesList", repeated=True, required=False),
5280    }
5281
5282    def __init__(
5283        self,
5284        *,
5285        address_n: Optional[Sequence["int"]] = None,
5286        subs: Optional[Sequence["MoneroSubAddressIndicesList"]] = None,
5287        num: Optional["int"] = None,
5288        hash: Optional["bytes"] = None,
5289        network_type: Optional["int"] = None,
5290    ) -> None:
5291        self.address_n: Sequence["int"] = address_n if address_n is not None else []
5292        self.subs: Sequence["MoneroSubAddressIndicesList"] = subs if subs is not None else []
5293        self.num = num
5294        self.hash = hash
5295        self.network_type = network_type
5296
5297
5298class MoneroKeyImageExportInitAck(protobuf.MessageType):
5299    MESSAGE_WIRE_TYPE = 531
5300
5301
5302class MoneroKeyImageSyncStepRequest(protobuf.MessageType):
5303    MESSAGE_WIRE_TYPE = 532
5304    FIELDS = {
5305        1: protobuf.Field("tdis", "MoneroTransferDetails", repeated=True, required=False),
5306    }
5307
5308    def __init__(
5309        self,
5310        *,
5311        tdis: Optional[Sequence["MoneroTransferDetails"]] = None,
5312    ) -> None:
5313        self.tdis: Sequence["MoneroTransferDetails"] = tdis if tdis is not None else []
5314
5315
5316class MoneroKeyImageSyncStepAck(protobuf.MessageType):
5317    MESSAGE_WIRE_TYPE = 533
5318    FIELDS = {
5319        1: protobuf.Field("kis", "MoneroExportedKeyImage", repeated=True, required=False),
5320    }
5321
5322    def __init__(
5323        self,
5324        *,
5325        kis: Optional[Sequence["MoneroExportedKeyImage"]] = None,
5326    ) -> None:
5327        self.kis: Sequence["MoneroExportedKeyImage"] = kis if kis is not None else []
5328
5329
5330class MoneroKeyImageSyncFinalRequest(protobuf.MessageType):
5331    MESSAGE_WIRE_TYPE = 534
5332
5333
5334class MoneroKeyImageSyncFinalAck(protobuf.MessageType):
5335    MESSAGE_WIRE_TYPE = 535
5336    FIELDS = {
5337        1: protobuf.Field("enc_key", "bytes", repeated=False, required=False),
5338    }
5339
5340    def __init__(
5341        self,
5342        *,
5343        enc_key: Optional["bytes"] = None,
5344    ) -> None:
5345        self.enc_key = enc_key
5346
5347
5348class MoneroGetTxKeyRequest(protobuf.MessageType):
5349    MESSAGE_WIRE_TYPE = 550
5350    FIELDS = {
5351        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
5352        2: protobuf.Field("network_type", "uint32", repeated=False, required=False),
5353        3: protobuf.Field("salt1", "bytes", repeated=False, required=False),
5354        4: protobuf.Field("salt2", "bytes", repeated=False, required=False),
5355        5: protobuf.Field("tx_enc_keys", "bytes", repeated=False, required=False),
5356        6: protobuf.Field("tx_prefix_hash", "bytes", repeated=False, required=False),
5357        7: protobuf.Field("reason", "uint32", repeated=False, required=False),
5358        8: protobuf.Field("view_public_key", "bytes", repeated=False, required=False),
5359    }
5360
5361    def __init__(
5362        self,
5363        *,
5364        address_n: Optional[Sequence["int"]] = None,
5365        network_type: Optional["int"] = None,
5366        salt1: Optional["bytes"] = None,
5367        salt2: Optional["bytes"] = None,
5368        tx_enc_keys: Optional["bytes"] = None,
5369        tx_prefix_hash: Optional["bytes"] = None,
5370        reason: Optional["int"] = None,
5371        view_public_key: Optional["bytes"] = None,
5372    ) -> None:
5373        self.address_n: Sequence["int"] = address_n if address_n is not None else []
5374        self.network_type = network_type
5375        self.salt1 = salt1
5376        self.salt2 = salt2
5377        self.tx_enc_keys = tx_enc_keys
5378        self.tx_prefix_hash = tx_prefix_hash
5379        self.reason = reason
5380        self.view_public_key = view_public_key
5381
5382
5383class MoneroGetTxKeyAck(protobuf.MessageType):
5384    MESSAGE_WIRE_TYPE = 551
5385    FIELDS = {
5386        1: protobuf.Field("salt", "bytes", repeated=False, required=False),
5387        2: protobuf.Field("tx_keys", "bytes", repeated=False, required=False),
5388        3: protobuf.Field("tx_derivations", "bytes", repeated=False, required=False),
5389    }
5390
5391    def __init__(
5392        self,
5393        *,
5394        salt: Optional["bytes"] = None,
5395        tx_keys: Optional["bytes"] = None,
5396        tx_derivations: Optional["bytes"] = None,
5397    ) -> None:
5398        self.salt = salt
5399        self.tx_keys = tx_keys
5400        self.tx_derivations = tx_derivations
5401
5402
5403class MoneroLiveRefreshStartRequest(protobuf.MessageType):
5404    MESSAGE_WIRE_TYPE = 552
5405    FIELDS = {
5406        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
5407        2: protobuf.Field("network_type", "uint32", repeated=False, required=False),
5408    }
5409
5410    def __init__(
5411        self,
5412        *,
5413        address_n: Optional[Sequence["int"]] = None,
5414        network_type: Optional["int"] = None,
5415    ) -> None:
5416        self.address_n: Sequence["int"] = address_n if address_n is not None else []
5417        self.network_type = network_type
5418
5419
5420class MoneroLiveRefreshStartAck(protobuf.MessageType):
5421    MESSAGE_WIRE_TYPE = 553
5422
5423
5424class MoneroLiveRefreshStepRequest(protobuf.MessageType):
5425    MESSAGE_WIRE_TYPE = 554
5426    FIELDS = {
5427        1: protobuf.Field("out_key", "bytes", repeated=False, required=False),
5428        2: protobuf.Field("recv_deriv", "bytes", repeated=False, required=False),
5429        3: protobuf.Field("real_out_idx", "uint64", repeated=False, required=False),
5430        4: protobuf.Field("sub_addr_major", "uint32", repeated=False, required=False),
5431        5: protobuf.Field("sub_addr_minor", "uint32", repeated=False, required=False),
5432    }
5433
5434    def __init__(
5435        self,
5436        *,
5437        out_key: Optional["bytes"] = None,
5438        recv_deriv: Optional["bytes"] = None,
5439        real_out_idx: Optional["int"] = None,
5440        sub_addr_major: Optional["int"] = None,
5441        sub_addr_minor: Optional["int"] = None,
5442    ) -> None:
5443        self.out_key = out_key
5444        self.recv_deriv = recv_deriv
5445        self.real_out_idx = real_out_idx
5446        self.sub_addr_major = sub_addr_major
5447        self.sub_addr_minor = sub_addr_minor
5448
5449
5450class MoneroLiveRefreshStepAck(protobuf.MessageType):
5451    MESSAGE_WIRE_TYPE = 555
5452    FIELDS = {
5453        1: protobuf.Field("salt", "bytes", repeated=False, required=False),
5454        2: protobuf.Field("key_image", "bytes", repeated=False, required=False),
5455    }
5456
5457    def __init__(
5458        self,
5459        *,
5460        salt: Optional["bytes"] = None,
5461        key_image: Optional["bytes"] = None,
5462    ) -> None:
5463        self.salt = salt
5464        self.key_image = key_image
5465
5466
5467class MoneroLiveRefreshFinalRequest(protobuf.MessageType):
5468    MESSAGE_WIRE_TYPE = 556
5469
5470
5471class MoneroLiveRefreshFinalAck(protobuf.MessageType):
5472    MESSAGE_WIRE_TYPE = 557
5473
5474
5475class DebugMoneroDiagRequest(protobuf.MessageType):
5476    MESSAGE_WIRE_TYPE = 546
5477    FIELDS = {
5478        1: protobuf.Field("ins", "uint64", repeated=False, required=False),
5479        2: protobuf.Field("p1", "uint64", repeated=False, required=False),
5480        3: protobuf.Field("p2", "uint64", repeated=False, required=False),
5481        4: protobuf.Field("pd", "uint64", repeated=True, required=False),
5482        5: protobuf.Field("data1", "bytes", repeated=False, required=False),
5483        6: protobuf.Field("data2", "bytes", repeated=False, required=False),
5484    }
5485
5486    def __init__(
5487        self,
5488        *,
5489        pd: Optional[Sequence["int"]] = None,
5490        ins: Optional["int"] = None,
5491        p1: Optional["int"] = None,
5492        p2: Optional["int"] = None,
5493        data1: Optional["bytes"] = None,
5494        data2: Optional["bytes"] = None,
5495    ) -> None:
5496        self.pd: Sequence["int"] = pd if pd is not None else []
5497        self.ins = ins
5498        self.p1 = p1
5499        self.p2 = p2
5500        self.data1 = data1
5501        self.data2 = data2
5502
5503
5504class DebugMoneroDiagAck(protobuf.MessageType):
5505    MESSAGE_WIRE_TYPE = 547
5506    FIELDS = {
5507        1: protobuf.Field("ins", "uint64", repeated=False, required=False),
5508        2: protobuf.Field("p1", "uint64", repeated=False, required=False),
5509        3: protobuf.Field("p2", "uint64", repeated=False, required=False),
5510        4: protobuf.Field("pd", "uint64", repeated=True, required=False),
5511        5: protobuf.Field("data1", "bytes", repeated=False, required=False),
5512        6: protobuf.Field("data2", "bytes", repeated=False, required=False),
5513    }
5514
5515    def __init__(
5516        self,
5517        *,
5518        pd: Optional[Sequence["int"]] = None,
5519        ins: Optional["int"] = None,
5520        p1: Optional["int"] = None,
5521        p2: Optional["int"] = None,
5522        data1: Optional["bytes"] = None,
5523        data2: Optional["bytes"] = None,
5524    ) -> None:
5525        self.pd: Sequence["int"] = pd if pd is not None else []
5526        self.ins = ins
5527        self.p1 = p1
5528        self.p2 = p2
5529        self.data1 = data1
5530        self.data2 = data2
5531
5532
5533class MoneroOutputEntry(protobuf.MessageType):
5534    MESSAGE_WIRE_TYPE = None
5535    FIELDS = {
5536        1: protobuf.Field("idx", "uint64", repeated=False, required=False),
5537        2: protobuf.Field("key", "MoneroRctKeyPublic", repeated=False, required=False),
5538    }
5539
5540    def __init__(
5541        self,
5542        *,
5543        idx: Optional["int"] = None,
5544        key: Optional["MoneroRctKeyPublic"] = None,
5545    ) -> None:
5546        self.idx = idx
5547        self.key = key
5548
5549
5550class MoneroMultisigKLRki(protobuf.MessageType):
5551    MESSAGE_WIRE_TYPE = None
5552    FIELDS = {
5553        1: protobuf.Field("K", "bytes", repeated=False, required=False),
5554        2: protobuf.Field("L", "bytes", repeated=False, required=False),
5555        3: protobuf.Field("R", "bytes", repeated=False, required=False),
5556        4: protobuf.Field("ki", "bytes", repeated=False, required=False),
5557    }
5558
5559    def __init__(
5560        self,
5561        *,
5562        K: Optional["bytes"] = None,
5563        L: Optional["bytes"] = None,
5564        R: Optional["bytes"] = None,
5565        ki: Optional["bytes"] = None,
5566    ) -> None:
5567        self.K = K
5568        self.L = L
5569        self.R = R
5570        self.ki = ki
5571
5572
5573class MoneroRctKeyPublic(protobuf.MessageType):
5574    MESSAGE_WIRE_TYPE = None
5575    FIELDS = {
5576        1: protobuf.Field("dest", "bytes", repeated=False, required=False),
5577        2: protobuf.Field("commitment", "bytes", repeated=False, required=False),
5578    }
5579
5580    def __init__(
5581        self,
5582        *,
5583        dest: Optional["bytes"] = None,
5584        commitment: Optional["bytes"] = None,
5585    ) -> None:
5586        self.dest = dest
5587        self.commitment = commitment
5588
5589
5590class MoneroAccountPublicAddress(protobuf.MessageType):
5591    MESSAGE_WIRE_TYPE = None
5592    FIELDS = {
5593        1: protobuf.Field("spend_public_key", "bytes", repeated=False, required=False),
5594        2: protobuf.Field("view_public_key", "bytes", repeated=False, required=False),
5595    }
5596
5597    def __init__(
5598        self,
5599        *,
5600        spend_public_key: Optional["bytes"] = None,
5601        view_public_key: Optional["bytes"] = None,
5602    ) -> None:
5603        self.spend_public_key = spend_public_key
5604        self.view_public_key = view_public_key
5605
5606
5607class MoneroTransactionData(protobuf.MessageType):
5608    MESSAGE_WIRE_TYPE = None
5609    FIELDS = {
5610        1: protobuf.Field("version", "uint32", repeated=False, required=False),
5611        2: protobuf.Field("payment_id", "bytes", repeated=False, required=False),
5612        3: protobuf.Field("unlock_time", "uint64", repeated=False, required=False),
5613        4: protobuf.Field("outputs", "MoneroTransactionDestinationEntry", repeated=True, required=False),
5614        5: protobuf.Field("change_dts", "MoneroTransactionDestinationEntry", repeated=False, required=False),
5615        6: protobuf.Field("num_inputs", "uint32", repeated=False, required=False),
5616        7: protobuf.Field("mixin", "uint32", repeated=False, required=False),
5617        8: protobuf.Field("fee", "uint64", repeated=False, required=False),
5618        9: protobuf.Field("account", "uint32", repeated=False, required=False),
5619        10: protobuf.Field("minor_indices", "uint32", repeated=True, required=False),
5620        11: protobuf.Field("rsig_data", "MoneroTransactionRsigData", repeated=False, required=False),
5621        12: protobuf.Field("integrated_indices", "uint32", repeated=True, required=False),
5622        13: protobuf.Field("client_version", "uint32", repeated=False, required=False),
5623        14: protobuf.Field("hard_fork", "uint32", repeated=False, required=False),
5624        15: protobuf.Field("monero_version", "bytes", repeated=False, required=False),
5625    }
5626
5627    def __init__(
5628        self,
5629        *,
5630        outputs: Optional[Sequence["MoneroTransactionDestinationEntry"]] = None,
5631        minor_indices: Optional[Sequence["int"]] = None,
5632        integrated_indices: Optional[Sequence["int"]] = None,
5633        version: Optional["int"] = None,
5634        payment_id: Optional["bytes"] = None,
5635        unlock_time: Optional["int"] = None,
5636        change_dts: Optional["MoneroTransactionDestinationEntry"] = None,
5637        num_inputs: Optional["int"] = None,
5638        mixin: Optional["int"] = None,
5639        fee: Optional["int"] = None,
5640        account: Optional["int"] = None,
5641        rsig_data: Optional["MoneroTransactionRsigData"] = None,
5642        client_version: Optional["int"] = None,
5643        hard_fork: Optional["int"] = None,
5644        monero_version: Optional["bytes"] = None,
5645    ) -> None:
5646        self.outputs: Sequence["MoneroTransactionDestinationEntry"] = outputs if outputs is not None else []
5647        self.minor_indices: Sequence["int"] = minor_indices if minor_indices is not None else []
5648        self.integrated_indices: Sequence["int"] = integrated_indices if integrated_indices is not None else []
5649        self.version = version
5650        self.payment_id = payment_id
5651        self.unlock_time = unlock_time
5652        self.change_dts = change_dts
5653        self.num_inputs = num_inputs
5654        self.mixin = mixin
5655        self.fee = fee
5656        self.account = account
5657        self.rsig_data = rsig_data
5658        self.client_version = client_version
5659        self.hard_fork = hard_fork
5660        self.monero_version = monero_version
5661
5662
5663class MoneroRingCtSig(protobuf.MessageType):
5664    MESSAGE_WIRE_TYPE = None
5665    FIELDS = {
5666        1: protobuf.Field("txn_fee", "uint64", repeated=False, required=False),
5667        2: protobuf.Field("message", "bytes", repeated=False, required=False),
5668        3: protobuf.Field("rv_type", "uint32", repeated=False, required=False),
5669    }
5670
5671    def __init__(
5672        self,
5673        *,
5674        txn_fee: Optional["int"] = None,
5675        message: Optional["bytes"] = None,
5676        rv_type: Optional["int"] = None,
5677    ) -> None:
5678        self.txn_fee = txn_fee
5679        self.message = message
5680        self.rv_type = rv_type
5681
5682
5683class MoneroSubAddressIndicesList(protobuf.MessageType):
5684    MESSAGE_WIRE_TYPE = None
5685    FIELDS = {
5686        1: protobuf.Field("account", "uint32", repeated=False, required=False),
5687        2: protobuf.Field("minor_indices", "uint32", repeated=True, required=False),
5688    }
5689
5690    def __init__(
5691        self,
5692        *,
5693        minor_indices: Optional[Sequence["int"]] = None,
5694        account: Optional["int"] = None,
5695    ) -> None:
5696        self.minor_indices: Sequence["int"] = minor_indices if minor_indices is not None else []
5697        self.account = account
5698
5699
5700class MoneroTransferDetails(protobuf.MessageType):
5701    MESSAGE_WIRE_TYPE = None
5702    FIELDS = {
5703        1: protobuf.Field("out_key", "bytes", repeated=False, required=False),
5704        2: protobuf.Field("tx_pub_key", "bytes", repeated=False, required=False),
5705        3: protobuf.Field("additional_tx_pub_keys", "bytes", repeated=True, required=False),
5706        4: protobuf.Field("internal_output_index", "uint64", repeated=False, required=False),
5707        5: protobuf.Field("sub_addr_major", "uint32", repeated=False, required=False),
5708        6: protobuf.Field("sub_addr_minor", "uint32", repeated=False, required=False),
5709    }
5710
5711    def __init__(
5712        self,
5713        *,
5714        additional_tx_pub_keys: Optional[Sequence["bytes"]] = None,
5715        out_key: Optional["bytes"] = None,
5716        tx_pub_key: Optional["bytes"] = None,
5717        internal_output_index: Optional["int"] = None,
5718        sub_addr_major: Optional["int"] = None,
5719        sub_addr_minor: Optional["int"] = None,
5720    ) -> None:
5721        self.additional_tx_pub_keys: Sequence["bytes"] = additional_tx_pub_keys if additional_tx_pub_keys is not None else []
5722        self.out_key = out_key
5723        self.tx_pub_key = tx_pub_key
5724        self.internal_output_index = internal_output_index
5725        self.sub_addr_major = sub_addr_major
5726        self.sub_addr_minor = sub_addr_minor
5727
5728
5729class MoneroExportedKeyImage(protobuf.MessageType):
5730    MESSAGE_WIRE_TYPE = None
5731    FIELDS = {
5732        1: protobuf.Field("iv", "bytes", repeated=False, required=False),
5733        3: protobuf.Field("blob", "bytes", repeated=False, required=False),
5734    }
5735
5736    def __init__(
5737        self,
5738        *,
5739        iv: Optional["bytes"] = None,
5740        blob: Optional["bytes"] = None,
5741    ) -> None:
5742        self.iv = iv
5743        self.blob = blob
5744
5745
5746class NEMGetAddress(protobuf.MessageType):
5747    MESSAGE_WIRE_TYPE = 67
5748    FIELDS = {
5749        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
5750        2: protobuf.Field("network", "uint32", repeated=False, required=False),
5751        3: protobuf.Field("show_display", "bool", repeated=False, required=False),
5752    }
5753
5754    def __init__(
5755        self,
5756        *,
5757        address_n: Optional[Sequence["int"]] = None,
5758        network: Optional["int"] = None,
5759        show_display: Optional["bool"] = None,
5760    ) -> None:
5761        self.address_n: Sequence["int"] = address_n if address_n is not None else []
5762        self.network = network
5763        self.show_display = show_display
5764
5765
5766class NEMAddress(protobuf.MessageType):
5767    MESSAGE_WIRE_TYPE = 68
5768    FIELDS = {
5769        1: protobuf.Field("address", "string", repeated=False, required=True),
5770    }
5771
5772    def __init__(
5773        self,
5774        *,
5775        address: "str",
5776    ) -> None:
5777        self.address = address
5778
5779
5780class NEMSignTx(protobuf.MessageType):
5781    MESSAGE_WIRE_TYPE = 69
5782    FIELDS = {
5783        1: protobuf.Field("transaction", "NEMTransactionCommon", repeated=False, required=False),
5784        2: protobuf.Field("multisig", "NEMTransactionCommon", repeated=False, required=False),
5785        3: protobuf.Field("transfer", "NEMTransfer", repeated=False, required=False),
5786        4: protobuf.Field("cosigning", "bool", repeated=False, required=False),
5787        5: protobuf.Field("provision_namespace", "NEMProvisionNamespace", repeated=False, required=False),
5788        6: protobuf.Field("mosaic_creation", "NEMMosaicCreation", repeated=False, required=False),
5789        7: protobuf.Field("supply_change", "NEMMosaicSupplyChange", repeated=False, required=False),
5790        8: protobuf.Field("aggregate_modification", "NEMAggregateModification", repeated=False, required=False),
5791        9: protobuf.Field("importance_transfer", "NEMImportanceTransfer", repeated=False, required=False),
5792    }
5793
5794    def __init__(
5795        self,
5796        *,
5797        transaction: Optional["NEMTransactionCommon"] = None,
5798        multisig: Optional["NEMTransactionCommon"] = None,
5799        transfer: Optional["NEMTransfer"] = None,
5800        cosigning: Optional["bool"] = None,
5801        provision_namespace: Optional["NEMProvisionNamespace"] = None,
5802        mosaic_creation: Optional["NEMMosaicCreation"] = None,
5803        supply_change: Optional["NEMMosaicSupplyChange"] = None,
5804        aggregate_modification: Optional["NEMAggregateModification"] = None,
5805        importance_transfer: Optional["NEMImportanceTransfer"] = None,
5806    ) -> None:
5807        self.transaction = transaction
5808        self.multisig = multisig
5809        self.transfer = transfer
5810        self.cosigning = cosigning
5811        self.provision_namespace = provision_namespace
5812        self.mosaic_creation = mosaic_creation
5813        self.supply_change = supply_change
5814        self.aggregate_modification = aggregate_modification
5815        self.importance_transfer = importance_transfer
5816
5817
5818class NEMSignedTx(protobuf.MessageType):
5819    MESSAGE_WIRE_TYPE = 70
5820    FIELDS = {
5821        1: protobuf.Field("data", "bytes", repeated=False, required=True),
5822        2: protobuf.Field("signature", "bytes", repeated=False, required=True),
5823    }
5824
5825    def __init__(
5826        self,
5827        *,
5828        data: "bytes",
5829        signature: "bytes",
5830    ) -> None:
5831        self.data = data
5832        self.signature = signature
5833
5834
5835class NEMDecryptMessage(protobuf.MessageType):
5836    MESSAGE_WIRE_TYPE = 75
5837    FIELDS = {
5838        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
5839        2: protobuf.Field("network", "uint32", repeated=False, required=False),
5840        3: protobuf.Field("public_key", "bytes", repeated=False, required=False),
5841        4: protobuf.Field("payload", "bytes", repeated=False, required=False),
5842    }
5843
5844    def __init__(
5845        self,
5846        *,
5847        address_n: Optional[Sequence["int"]] = None,
5848        network: Optional["int"] = None,
5849        public_key: Optional["bytes"] = None,
5850        payload: Optional["bytes"] = None,
5851    ) -> None:
5852        self.address_n: Sequence["int"] = address_n if address_n is not None else []
5853        self.network = network
5854        self.public_key = public_key
5855        self.payload = payload
5856
5857
5858class NEMDecryptedMessage(protobuf.MessageType):
5859    MESSAGE_WIRE_TYPE = 76
5860    FIELDS = {
5861        1: protobuf.Field("payload", "bytes", repeated=False, required=True),
5862    }
5863
5864    def __init__(
5865        self,
5866        *,
5867        payload: "bytes",
5868    ) -> None:
5869        self.payload = payload
5870
5871
5872class NEMTransactionCommon(protobuf.MessageType):
5873    MESSAGE_WIRE_TYPE = None
5874    FIELDS = {
5875        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
5876        2: protobuf.Field("network", "uint32", repeated=False, required=False),
5877        3: protobuf.Field("timestamp", "uint32", repeated=False, required=False),
5878        4: protobuf.Field("fee", "uint64", repeated=False, required=False),
5879        5: protobuf.Field("deadline", "uint32", repeated=False, required=False),
5880        6: protobuf.Field("signer", "bytes", repeated=False, required=False),
5881    }
5882
5883    def __init__(
5884        self,
5885        *,
5886        address_n: Optional[Sequence["int"]] = None,
5887        network: Optional["int"] = None,
5888        timestamp: Optional["int"] = None,
5889        fee: Optional["int"] = None,
5890        deadline: Optional["int"] = None,
5891        signer: Optional["bytes"] = None,
5892    ) -> None:
5893        self.address_n: Sequence["int"] = address_n if address_n is not None else []
5894        self.network = network
5895        self.timestamp = timestamp
5896        self.fee = fee
5897        self.deadline = deadline
5898        self.signer = signer
5899
5900
5901class NEMTransfer(protobuf.MessageType):
5902    MESSAGE_WIRE_TYPE = None
5903    FIELDS = {
5904        1: protobuf.Field("recipient", "string", repeated=False, required=False),
5905        2: protobuf.Field("amount", "uint64", repeated=False, required=False),
5906        3: protobuf.Field("payload", "bytes", repeated=False, required=False),
5907        4: protobuf.Field("public_key", "bytes", repeated=False, required=False),
5908        5: protobuf.Field("mosaics", "NEMMosaic", repeated=True, required=False),
5909    }
5910
5911    def __init__(
5912        self,
5913        *,
5914        mosaics: Optional[Sequence["NEMMosaic"]] = None,
5915        recipient: Optional["str"] = None,
5916        amount: Optional["int"] = None,
5917        payload: Optional["bytes"] = None,
5918        public_key: Optional["bytes"] = None,
5919    ) -> None:
5920        self.mosaics: Sequence["NEMMosaic"] = mosaics if mosaics is not None else []
5921        self.recipient = recipient
5922        self.amount = amount
5923        self.payload = payload
5924        self.public_key = public_key
5925
5926
5927class NEMProvisionNamespace(protobuf.MessageType):
5928    MESSAGE_WIRE_TYPE = None
5929    FIELDS = {
5930        1: protobuf.Field("namespace", "string", repeated=False, required=False),
5931        2: protobuf.Field("parent", "string", repeated=False, required=False),
5932        3: protobuf.Field("sink", "string", repeated=False, required=False),
5933        4: protobuf.Field("fee", "uint64", repeated=False, required=False),
5934    }
5935
5936    def __init__(
5937        self,
5938        *,
5939        namespace: Optional["str"] = None,
5940        parent: Optional["str"] = None,
5941        sink: Optional["str"] = None,
5942        fee: Optional["int"] = None,
5943    ) -> None:
5944        self.namespace = namespace
5945        self.parent = parent
5946        self.sink = sink
5947        self.fee = fee
5948
5949
5950class NEMMosaicCreation(protobuf.MessageType):
5951    MESSAGE_WIRE_TYPE = None
5952    FIELDS = {
5953        1: protobuf.Field("definition", "NEMMosaicDefinition", repeated=False, required=False),
5954        2: protobuf.Field("sink", "string", repeated=False, required=False),
5955        3: protobuf.Field("fee", "uint64", repeated=False, required=False),
5956    }
5957
5958    def __init__(
5959        self,
5960        *,
5961        definition: Optional["NEMMosaicDefinition"] = None,
5962        sink: Optional["str"] = None,
5963        fee: Optional["int"] = None,
5964    ) -> None:
5965        self.definition = definition
5966        self.sink = sink
5967        self.fee = fee
5968
5969
5970class NEMMosaicSupplyChange(protobuf.MessageType):
5971    MESSAGE_WIRE_TYPE = None
5972    FIELDS = {
5973        1: protobuf.Field("namespace", "string", repeated=False, required=False),
5974        2: protobuf.Field("mosaic", "string", repeated=False, required=False),
5975        3: protobuf.Field("type", "NEMSupplyChangeType", repeated=False, required=False),
5976        4: protobuf.Field("delta", "uint64", repeated=False, required=False),
5977    }
5978
5979    def __init__(
5980        self,
5981        *,
5982        namespace: Optional["str"] = None,
5983        mosaic: Optional["str"] = None,
5984        type: Optional["NEMSupplyChangeType"] = None,
5985        delta: Optional["int"] = None,
5986    ) -> None:
5987        self.namespace = namespace
5988        self.mosaic = mosaic
5989        self.type = type
5990        self.delta = delta
5991
5992
5993class NEMAggregateModification(protobuf.MessageType):
5994    MESSAGE_WIRE_TYPE = None
5995    FIELDS = {
5996        1: protobuf.Field("modifications", "NEMCosignatoryModification", repeated=True, required=False),
5997        2: protobuf.Field("relative_change", "sint32", repeated=False, required=False),
5998    }
5999
6000    def __init__(
6001        self,
6002        *,
6003        modifications: Optional[Sequence["NEMCosignatoryModification"]] = None,
6004        relative_change: Optional["int"] = None,
6005    ) -> None:
6006        self.modifications: Sequence["NEMCosignatoryModification"] = modifications if modifications is not None else []
6007        self.relative_change = relative_change
6008
6009
6010class NEMImportanceTransfer(protobuf.MessageType):
6011    MESSAGE_WIRE_TYPE = None
6012    FIELDS = {
6013        1: protobuf.Field("mode", "NEMImportanceTransferMode", repeated=False, required=False),
6014        2: protobuf.Field("public_key", "bytes", repeated=False, required=False),
6015    }
6016
6017    def __init__(
6018        self,
6019        *,
6020        mode: Optional["NEMImportanceTransferMode"] = None,
6021        public_key: Optional["bytes"] = None,
6022    ) -> None:
6023        self.mode = mode
6024        self.public_key = public_key
6025
6026
6027class NEMMosaic(protobuf.MessageType):
6028    MESSAGE_WIRE_TYPE = None
6029    FIELDS = {
6030        1: protobuf.Field("namespace", "string", repeated=False, required=False),
6031        2: protobuf.Field("mosaic", "string", repeated=False, required=False),
6032        3: protobuf.Field("quantity", "uint64", repeated=False, required=False),
6033    }
6034
6035    def __init__(
6036        self,
6037        *,
6038        namespace: Optional["str"] = None,
6039        mosaic: Optional["str"] = None,
6040        quantity: Optional["int"] = None,
6041    ) -> None:
6042        self.namespace = namespace
6043        self.mosaic = mosaic
6044        self.quantity = quantity
6045
6046
6047class NEMMosaicDefinition(protobuf.MessageType):
6048    MESSAGE_WIRE_TYPE = None
6049    FIELDS = {
6050        1: protobuf.Field("name", "string", repeated=False, required=False),
6051        2: protobuf.Field("ticker", "string", repeated=False, required=False),
6052        3: protobuf.Field("namespace", "string", repeated=False, required=False),
6053        4: protobuf.Field("mosaic", "string", repeated=False, required=False),
6054        5: protobuf.Field("divisibility", "uint32", repeated=False, required=False),
6055        6: protobuf.Field("levy", "NEMMosaicLevy", repeated=False, required=False),
6056        7: protobuf.Field("fee", "uint64", repeated=False, required=False),
6057        8: protobuf.Field("levy_address", "string", repeated=False, required=False),
6058        9: protobuf.Field("levy_namespace", "string", repeated=False, required=False),
6059        10: protobuf.Field("levy_mosaic", "string", repeated=False, required=False),
6060        11: protobuf.Field("supply", "uint64", repeated=False, required=False),
6061        12: protobuf.Field("mutable_supply", "bool", repeated=False, required=False),
6062        13: protobuf.Field("transferable", "bool", repeated=False, required=False),
6063        14: protobuf.Field("description", "string", repeated=False, required=False),
6064        15: protobuf.Field("networks", "uint32", repeated=True, required=False),
6065    }
6066
6067    def __init__(
6068        self,
6069        *,
6070        networks: Optional[Sequence["int"]] = None,
6071        name: Optional["str"] = None,
6072        ticker: Optional["str"] = None,
6073        namespace: Optional["str"] = None,
6074        mosaic: Optional["str"] = None,
6075        divisibility: Optional["int"] = None,
6076        levy: Optional["NEMMosaicLevy"] = None,
6077        fee: Optional["int"] = None,
6078        levy_address: Optional["str"] = None,
6079        levy_namespace: Optional["str"] = None,
6080        levy_mosaic: Optional["str"] = None,
6081        supply: Optional["int"] = None,
6082        mutable_supply: Optional["bool"] = None,
6083        transferable: Optional["bool"] = None,
6084        description: Optional["str"] = None,
6085    ) -> None:
6086        self.networks: Sequence["int"] = networks if networks is not None else []
6087        self.name = name
6088        self.ticker = ticker
6089        self.namespace = namespace
6090        self.mosaic = mosaic
6091        self.divisibility = divisibility
6092        self.levy = levy
6093        self.fee = fee
6094        self.levy_address = levy_address
6095        self.levy_namespace = levy_namespace
6096        self.levy_mosaic = levy_mosaic
6097        self.supply = supply
6098        self.mutable_supply = mutable_supply
6099        self.transferable = transferable
6100        self.description = description
6101
6102
6103class NEMCosignatoryModification(protobuf.MessageType):
6104    MESSAGE_WIRE_TYPE = None
6105    FIELDS = {
6106        1: protobuf.Field("type", "NEMModificationType", repeated=False, required=False),
6107        2: protobuf.Field("public_key", "bytes", repeated=False, required=False),
6108    }
6109
6110    def __init__(
6111        self,
6112        *,
6113        type: Optional["NEMModificationType"] = None,
6114        public_key: Optional["bytes"] = None,
6115    ) -> None:
6116        self.type = type
6117        self.public_key = public_key
6118
6119
6120class RippleGetAddress(protobuf.MessageType):
6121    MESSAGE_WIRE_TYPE = 400
6122    FIELDS = {
6123        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
6124        2: protobuf.Field("show_display", "bool", repeated=False, required=False),
6125    }
6126
6127    def __init__(
6128        self,
6129        *,
6130        address_n: Optional[Sequence["int"]] = None,
6131        show_display: Optional["bool"] = None,
6132    ) -> None:
6133        self.address_n: Sequence["int"] = address_n if address_n is not None else []
6134        self.show_display = show_display
6135
6136
6137class RippleAddress(protobuf.MessageType):
6138    MESSAGE_WIRE_TYPE = 401
6139    FIELDS = {
6140        1: protobuf.Field("address", "string", repeated=False, required=True),
6141    }
6142
6143    def __init__(
6144        self,
6145        *,
6146        address: "str",
6147    ) -> None:
6148        self.address = address
6149
6150
6151class RippleSignTx(protobuf.MessageType):
6152    MESSAGE_WIRE_TYPE = 402
6153    FIELDS = {
6154        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
6155        2: protobuf.Field("fee", "uint64", repeated=False, required=False),
6156        3: protobuf.Field("flags", "uint32", repeated=False, required=False),
6157        4: protobuf.Field("sequence", "uint32", repeated=False, required=False),
6158        5: protobuf.Field("last_ledger_sequence", "uint32", repeated=False, required=False),
6159        6: protobuf.Field("payment", "RipplePayment", repeated=False, required=False),
6160    }
6161
6162    def __init__(
6163        self,
6164        *,
6165        address_n: Optional[Sequence["int"]] = None,
6166        fee: Optional["int"] = None,
6167        flags: Optional["int"] = None,
6168        sequence: Optional["int"] = None,
6169        last_ledger_sequence: Optional["int"] = None,
6170        payment: Optional["RipplePayment"] = None,
6171    ) -> None:
6172        self.address_n: Sequence["int"] = address_n if address_n is not None else []
6173        self.fee = fee
6174        self.flags = flags
6175        self.sequence = sequence
6176        self.last_ledger_sequence = last_ledger_sequence
6177        self.payment = payment
6178
6179
6180class RippleSignedTx(protobuf.MessageType):
6181    MESSAGE_WIRE_TYPE = 403
6182    FIELDS = {
6183        1: protobuf.Field("signature", "bytes", repeated=False, required=True),
6184        2: protobuf.Field("serialized_tx", "bytes", repeated=False, required=True),
6185    }
6186
6187    def __init__(
6188        self,
6189        *,
6190        signature: "bytes",
6191        serialized_tx: "bytes",
6192    ) -> None:
6193        self.signature = signature
6194        self.serialized_tx = serialized_tx
6195
6196
6197class RipplePayment(protobuf.MessageType):
6198    MESSAGE_WIRE_TYPE = None
6199    FIELDS = {
6200        1: protobuf.Field("amount", "uint64", repeated=False, required=True),
6201        2: protobuf.Field("destination", "string", repeated=False, required=True),
6202        3: protobuf.Field("destination_tag", "uint32", repeated=False, required=False),
6203    }
6204
6205    def __init__(
6206        self,
6207        *,
6208        amount: "int",
6209        destination: "str",
6210        destination_tag: Optional["int"] = None,
6211    ) -> None:
6212        self.amount = amount
6213        self.destination = destination
6214        self.destination_tag = destination_tag
6215
6216
6217class StellarAsset(protobuf.MessageType):
6218    MESSAGE_WIRE_TYPE = None
6219    FIELDS = {
6220        1: protobuf.Field("type", "StellarAssetType", repeated=False, required=True),
6221        2: protobuf.Field("code", "string", repeated=False, required=False),
6222        3: protobuf.Field("issuer", "string", repeated=False, required=False),
6223    }
6224
6225    def __init__(
6226        self,
6227        *,
6228        type: "StellarAssetType",
6229        code: Optional["str"] = None,
6230        issuer: Optional["str"] = None,
6231    ) -> None:
6232        self.type = type
6233        self.code = code
6234        self.issuer = issuer
6235
6236
6237class StellarGetAddress(protobuf.MessageType):
6238    MESSAGE_WIRE_TYPE = 207
6239    FIELDS = {
6240        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
6241        2: protobuf.Field("show_display", "bool", repeated=False, required=False),
6242    }
6243
6244    def __init__(
6245        self,
6246        *,
6247        address_n: Optional[Sequence["int"]] = None,
6248        show_display: Optional["bool"] = None,
6249    ) -> None:
6250        self.address_n: Sequence["int"] = address_n if address_n is not None else []
6251        self.show_display = show_display
6252
6253
6254class StellarAddress(protobuf.MessageType):
6255    MESSAGE_WIRE_TYPE = 208
6256    FIELDS = {
6257        1: protobuf.Field("address", "string", repeated=False, required=True),
6258    }
6259
6260    def __init__(
6261        self,
6262        *,
6263        address: "str",
6264    ) -> None:
6265        self.address = address
6266
6267
6268class StellarSignTx(protobuf.MessageType):
6269    MESSAGE_WIRE_TYPE = 202
6270    FIELDS = {
6271        2: protobuf.Field("address_n", "uint32", repeated=True, required=False),
6272        3: protobuf.Field("network_passphrase", "string", repeated=False, required=True),
6273        4: protobuf.Field("source_account", "string", repeated=False, required=True),
6274        5: protobuf.Field("fee", "uint32", repeated=False, required=True),
6275        6: protobuf.Field("sequence_number", "uint64", repeated=False, required=True),
6276        8: protobuf.Field("timebounds_start", "uint32", repeated=False, required=True),
6277        9: protobuf.Field("timebounds_end", "uint32", repeated=False, required=True),
6278        10: protobuf.Field("memo_type", "StellarMemoType", repeated=False, required=True),
6279        11: protobuf.Field("memo_text", "string", repeated=False, required=False),
6280        12: protobuf.Field("memo_id", "uint64", repeated=False, required=False),
6281        13: protobuf.Field("memo_hash", "bytes", repeated=False, required=False),
6282        14: protobuf.Field("num_operations", "uint32", repeated=False, required=True),
6283    }
6284
6285    def __init__(
6286        self,
6287        *,
6288        network_passphrase: "str",
6289        source_account: "str",
6290        fee: "int",
6291        sequence_number: "int",
6292        timebounds_start: "int",
6293        timebounds_end: "int",
6294        memo_type: "StellarMemoType",
6295        num_operations: "int",
6296        address_n: Optional[Sequence["int"]] = None,
6297        memo_text: Optional["str"] = None,
6298        memo_id: Optional["int"] = None,
6299        memo_hash: Optional["bytes"] = None,
6300    ) -> None:
6301        self.address_n: Sequence["int"] = address_n if address_n is not None else []
6302        self.network_passphrase = network_passphrase
6303        self.source_account = source_account
6304        self.fee = fee
6305        self.sequence_number = sequence_number
6306        self.timebounds_start = timebounds_start
6307        self.timebounds_end = timebounds_end
6308        self.memo_type = memo_type
6309        self.num_operations = num_operations
6310        self.memo_text = memo_text
6311        self.memo_id = memo_id
6312        self.memo_hash = memo_hash
6313
6314
6315class StellarTxOpRequest(protobuf.MessageType):
6316    MESSAGE_WIRE_TYPE = 203
6317
6318
6319class StellarPaymentOp(protobuf.MessageType):
6320    MESSAGE_WIRE_TYPE = 211
6321    FIELDS = {
6322        1: protobuf.Field("source_account", "string", repeated=False, required=False),
6323        2: protobuf.Field("destination_account", "string", repeated=False, required=True),
6324        3: protobuf.Field("asset", "StellarAsset", repeated=False, required=True),
6325        4: protobuf.Field("amount", "sint64", repeated=False, required=True),
6326    }
6327
6328    def __init__(
6329        self,
6330        *,
6331        destination_account: "str",
6332        asset: "StellarAsset",
6333        amount: "int",
6334        source_account: Optional["str"] = None,
6335    ) -> None:
6336        self.destination_account = destination_account
6337        self.asset = asset
6338        self.amount = amount
6339        self.source_account = source_account
6340
6341
6342class StellarCreateAccountOp(protobuf.MessageType):
6343    MESSAGE_WIRE_TYPE = 210
6344    FIELDS = {
6345        1: protobuf.Field("source_account", "string", repeated=False, required=False),
6346        2: protobuf.Field("new_account", "string", repeated=False, required=True),
6347        3: protobuf.Field("starting_balance", "sint64", repeated=False, required=True),
6348    }
6349
6350    def __init__(
6351        self,
6352        *,
6353        new_account: "str",
6354        starting_balance: "int",
6355        source_account: Optional["str"] = None,
6356    ) -> None:
6357        self.new_account = new_account
6358        self.starting_balance = starting_balance
6359        self.source_account = source_account
6360
6361
6362class StellarPathPaymentStrictReceiveOp(protobuf.MessageType):
6363    MESSAGE_WIRE_TYPE = 212
6364    FIELDS = {
6365        1: protobuf.Field("source_account", "string", repeated=False, required=False),
6366        2: protobuf.Field("send_asset", "StellarAsset", repeated=False, required=True),
6367        3: protobuf.Field("send_max", "sint64", repeated=False, required=True),
6368        4: protobuf.Field("destination_account", "string", repeated=False, required=True),
6369        5: protobuf.Field("destination_asset", "StellarAsset", repeated=False, required=True),
6370        6: protobuf.Field("destination_amount", "sint64", repeated=False, required=True),
6371        7: protobuf.Field("paths", "StellarAsset", repeated=True, required=False),
6372    }
6373
6374    def __init__(
6375        self,
6376        *,
6377        send_asset: "StellarAsset",
6378        send_max: "int",
6379        destination_account: "str",
6380        destination_asset: "StellarAsset",
6381        destination_amount: "int",
6382        paths: Optional[Sequence["StellarAsset"]] = None,
6383        source_account: Optional["str"] = None,
6384    ) -> None:
6385        self.paths: Sequence["StellarAsset"] = paths if paths is not None else []
6386        self.send_asset = send_asset
6387        self.send_max = send_max
6388        self.destination_account = destination_account
6389        self.destination_asset = destination_asset
6390        self.destination_amount = destination_amount
6391        self.source_account = source_account
6392
6393
6394class StellarPathPaymentStrictSendOp(protobuf.MessageType):
6395    MESSAGE_WIRE_TYPE = 223
6396    FIELDS = {
6397        1: protobuf.Field("source_account", "string", repeated=False, required=False),
6398        2: protobuf.Field("send_asset", "StellarAsset", repeated=False, required=True),
6399        3: protobuf.Field("send_amount", "sint64", repeated=False, required=True),
6400        4: protobuf.Field("destination_account", "string", repeated=False, required=True),
6401        5: protobuf.Field("destination_asset", "StellarAsset", repeated=False, required=True),
6402        6: protobuf.Field("destination_min", "sint64", repeated=False, required=True),
6403        7: protobuf.Field("paths", "StellarAsset", repeated=True, required=False),
6404    }
6405
6406    def __init__(
6407        self,
6408        *,
6409        send_asset: "StellarAsset",
6410        send_amount: "int",
6411        destination_account: "str",
6412        destination_asset: "StellarAsset",
6413        destination_min: "int",
6414        paths: Optional[Sequence["StellarAsset"]] = None,
6415        source_account: Optional["str"] = None,
6416    ) -> None:
6417        self.paths: Sequence["StellarAsset"] = paths if paths is not None else []
6418        self.send_asset = send_asset
6419        self.send_amount = send_amount
6420        self.destination_account = destination_account
6421        self.destination_asset = destination_asset
6422        self.destination_min = destination_min
6423        self.source_account = source_account
6424
6425
6426class StellarManageSellOfferOp(protobuf.MessageType):
6427    MESSAGE_WIRE_TYPE = 213
6428    FIELDS = {
6429        1: protobuf.Field("source_account", "string", repeated=False, required=False),
6430        2: protobuf.Field("selling_asset", "StellarAsset", repeated=False, required=True),
6431        3: protobuf.Field("buying_asset", "StellarAsset", repeated=False, required=True),
6432        4: protobuf.Field("amount", "sint64", repeated=False, required=True),
6433        5: protobuf.Field("price_n", "uint32", repeated=False, required=True),
6434        6: protobuf.Field("price_d", "uint32", repeated=False, required=True),
6435        7: protobuf.Field("offer_id", "uint64", repeated=False, required=True),
6436    }
6437
6438    def __init__(
6439        self,
6440        *,
6441        selling_asset: "StellarAsset",
6442        buying_asset: "StellarAsset",
6443        amount: "int",
6444        price_n: "int",
6445        price_d: "int",
6446        offer_id: "int",
6447        source_account: Optional["str"] = None,
6448    ) -> None:
6449        self.selling_asset = selling_asset
6450        self.buying_asset = buying_asset
6451        self.amount = amount
6452        self.price_n = price_n
6453        self.price_d = price_d
6454        self.offer_id = offer_id
6455        self.source_account = source_account
6456
6457
6458class StellarManageBuyOfferOp(protobuf.MessageType):
6459    MESSAGE_WIRE_TYPE = 222
6460    FIELDS = {
6461        1: protobuf.Field("source_account", "string", repeated=False, required=False),
6462        2: protobuf.Field("selling_asset", "StellarAsset", repeated=False, required=True),
6463        3: protobuf.Field("buying_asset", "StellarAsset", repeated=False, required=True),
6464        4: protobuf.Field("amount", "sint64", repeated=False, required=True),
6465        5: protobuf.Field("price_n", "uint32", repeated=False, required=True),
6466        6: protobuf.Field("price_d", "uint32", repeated=False, required=True),
6467        7: protobuf.Field("offer_id", "uint64", repeated=False, required=True),
6468    }
6469
6470    def __init__(
6471        self,
6472        *,
6473        selling_asset: "StellarAsset",
6474        buying_asset: "StellarAsset",
6475        amount: "int",
6476        price_n: "int",
6477        price_d: "int",
6478        offer_id: "int",
6479        source_account: Optional["str"] = None,
6480    ) -> None:
6481        self.selling_asset = selling_asset
6482        self.buying_asset = buying_asset
6483        self.amount = amount
6484        self.price_n = price_n
6485        self.price_d = price_d
6486        self.offer_id = offer_id
6487        self.source_account = source_account
6488
6489
6490class StellarCreatePassiveSellOfferOp(protobuf.MessageType):
6491    MESSAGE_WIRE_TYPE = 214
6492    FIELDS = {
6493        1: protobuf.Field("source_account", "string", repeated=False, required=False),
6494        2: protobuf.Field("selling_asset", "StellarAsset", repeated=False, required=True),
6495        3: protobuf.Field("buying_asset", "StellarAsset", repeated=False, required=True),
6496        4: protobuf.Field("amount", "sint64", repeated=False, required=True),
6497        5: protobuf.Field("price_n", "uint32", repeated=False, required=True),
6498        6: protobuf.Field("price_d", "uint32", repeated=False, required=True),
6499    }
6500
6501    def __init__(
6502        self,
6503        *,
6504        selling_asset: "StellarAsset",
6505        buying_asset: "StellarAsset",
6506        amount: "int",
6507        price_n: "int",
6508        price_d: "int",
6509        source_account: Optional["str"] = None,
6510    ) -> None:
6511        self.selling_asset = selling_asset
6512        self.buying_asset = buying_asset
6513        self.amount = amount
6514        self.price_n = price_n
6515        self.price_d = price_d
6516        self.source_account = source_account
6517
6518
6519class StellarSetOptionsOp(protobuf.MessageType):
6520    MESSAGE_WIRE_TYPE = 215
6521    FIELDS = {
6522        1: protobuf.Field("source_account", "string", repeated=False, required=False),
6523        2: protobuf.Field("inflation_destination_account", "string", repeated=False, required=False),
6524        3: protobuf.Field("clear_flags", "uint32", repeated=False, required=False),
6525        4: protobuf.Field("set_flags", "uint32", repeated=False, required=False),
6526        5: protobuf.Field("master_weight", "uint32", repeated=False, required=False),
6527        6: protobuf.Field("low_threshold", "uint32", repeated=False, required=False),
6528        7: protobuf.Field("medium_threshold", "uint32", repeated=False, required=False),
6529        8: protobuf.Field("high_threshold", "uint32", repeated=False, required=False),
6530        9: protobuf.Field("home_domain", "string", repeated=False, required=False),
6531        10: protobuf.Field("signer_type", "StellarSignerType", repeated=False, required=False),
6532        11: protobuf.Field("signer_key", "bytes", repeated=False, required=False),
6533        12: protobuf.Field("signer_weight", "uint32", repeated=False, required=False),
6534    }
6535
6536    def __init__(
6537        self,
6538        *,
6539        source_account: Optional["str"] = None,
6540        inflation_destination_account: Optional["str"] = None,
6541        clear_flags: Optional["int"] = None,
6542        set_flags: Optional["int"] = None,
6543        master_weight: Optional["int"] = None,
6544        low_threshold: Optional["int"] = None,
6545        medium_threshold: Optional["int"] = None,
6546        high_threshold: Optional["int"] = None,
6547        home_domain: Optional["str"] = None,
6548        signer_type: Optional["StellarSignerType"] = None,
6549        signer_key: Optional["bytes"] = None,
6550        signer_weight: Optional["int"] = None,
6551    ) -> None:
6552        self.source_account = source_account
6553        self.inflation_destination_account = inflation_destination_account
6554        self.clear_flags = clear_flags
6555        self.set_flags = set_flags
6556        self.master_weight = master_weight
6557        self.low_threshold = low_threshold
6558        self.medium_threshold = medium_threshold
6559        self.high_threshold = high_threshold
6560        self.home_domain = home_domain
6561        self.signer_type = signer_type
6562        self.signer_key = signer_key
6563        self.signer_weight = signer_weight
6564
6565
6566class StellarChangeTrustOp(protobuf.MessageType):
6567    MESSAGE_WIRE_TYPE = 216
6568    FIELDS = {
6569        1: protobuf.Field("source_account", "string", repeated=False, required=False),
6570        2: protobuf.Field("asset", "StellarAsset", repeated=False, required=True),
6571        3: protobuf.Field("limit", "uint64", repeated=False, required=True),
6572    }
6573
6574    def __init__(
6575        self,
6576        *,
6577        asset: "StellarAsset",
6578        limit: "int",
6579        source_account: Optional["str"] = None,
6580    ) -> None:
6581        self.asset = asset
6582        self.limit = limit
6583        self.source_account = source_account
6584
6585
6586class StellarAllowTrustOp(protobuf.MessageType):
6587    MESSAGE_WIRE_TYPE = 217
6588    FIELDS = {
6589        1: protobuf.Field("source_account", "string", repeated=False, required=False),
6590        2: protobuf.Field("trusted_account", "string", repeated=False, required=True),
6591        3: protobuf.Field("asset_type", "StellarAssetType", repeated=False, required=True),
6592        4: protobuf.Field("asset_code", "string", repeated=False, required=False),
6593        5: protobuf.Field("is_authorized", "bool", repeated=False, required=True),
6594    }
6595
6596    def __init__(
6597        self,
6598        *,
6599        trusted_account: "str",
6600        asset_type: "StellarAssetType",
6601        is_authorized: "bool",
6602        source_account: Optional["str"] = None,
6603        asset_code: Optional["str"] = None,
6604    ) -> None:
6605        self.trusted_account = trusted_account
6606        self.asset_type = asset_type
6607        self.is_authorized = is_authorized
6608        self.source_account = source_account
6609        self.asset_code = asset_code
6610
6611
6612class StellarAccountMergeOp(protobuf.MessageType):
6613    MESSAGE_WIRE_TYPE = 218
6614    FIELDS = {
6615        1: protobuf.Field("source_account", "string", repeated=False, required=False),
6616        2: protobuf.Field("destination_account", "string", repeated=False, required=True),
6617    }
6618
6619    def __init__(
6620        self,
6621        *,
6622        destination_account: "str",
6623        source_account: Optional["str"] = None,
6624    ) -> None:
6625        self.destination_account = destination_account
6626        self.source_account = source_account
6627
6628
6629class StellarManageDataOp(protobuf.MessageType):
6630    MESSAGE_WIRE_TYPE = 220
6631    FIELDS = {
6632        1: protobuf.Field("source_account", "string", repeated=False, required=False),
6633        2: protobuf.Field("key", "string", repeated=False, required=True),
6634        3: protobuf.Field("value", "bytes", repeated=False, required=False),
6635    }
6636
6637    def __init__(
6638        self,
6639        *,
6640        key: "str",
6641        source_account: Optional["str"] = None,
6642        value: Optional["bytes"] = None,
6643    ) -> None:
6644        self.key = key
6645        self.source_account = source_account
6646        self.value = value
6647
6648
6649class StellarBumpSequenceOp(protobuf.MessageType):
6650    MESSAGE_WIRE_TYPE = 221
6651    FIELDS = {
6652        1: protobuf.Field("source_account", "string", repeated=False, required=False),
6653        2: protobuf.Field("bump_to", "uint64", repeated=False, required=True),
6654    }
6655
6656    def __init__(
6657        self,
6658        *,
6659        bump_to: "int",
6660        source_account: Optional["str"] = None,
6661    ) -> None:
6662        self.bump_to = bump_to
6663        self.source_account = source_account
6664
6665
6666class StellarSignedTx(protobuf.MessageType):
6667    MESSAGE_WIRE_TYPE = 230
6668    FIELDS = {
6669        1: protobuf.Field("public_key", "bytes", repeated=False, required=True),
6670        2: protobuf.Field("signature", "bytes", repeated=False, required=True),
6671    }
6672
6673    def __init__(
6674        self,
6675        *,
6676        public_key: "bytes",
6677        signature: "bytes",
6678    ) -> None:
6679        self.public_key = public_key
6680        self.signature = signature
6681
6682
6683class TezosGetAddress(protobuf.MessageType):
6684    MESSAGE_WIRE_TYPE = 150
6685    FIELDS = {
6686        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
6687        2: protobuf.Field("show_display", "bool", repeated=False, required=False),
6688    }
6689
6690    def __init__(
6691        self,
6692        *,
6693        address_n: Optional[Sequence["int"]] = None,
6694        show_display: Optional["bool"] = None,
6695    ) -> None:
6696        self.address_n: Sequence["int"] = address_n if address_n is not None else []
6697        self.show_display = show_display
6698
6699
6700class TezosAddress(protobuf.MessageType):
6701    MESSAGE_WIRE_TYPE = 151
6702    FIELDS = {
6703        1: protobuf.Field("address", "string", repeated=False, required=True),
6704    }
6705
6706    def __init__(
6707        self,
6708        *,
6709        address: "str",
6710    ) -> None:
6711        self.address = address
6712
6713
6714class TezosGetPublicKey(protobuf.MessageType):
6715    MESSAGE_WIRE_TYPE = 154
6716    FIELDS = {
6717        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
6718        2: protobuf.Field("show_display", "bool", repeated=False, required=False),
6719    }
6720
6721    def __init__(
6722        self,
6723        *,
6724        address_n: Optional[Sequence["int"]] = None,
6725        show_display: Optional["bool"] = None,
6726    ) -> None:
6727        self.address_n: Sequence["int"] = address_n if address_n is not None else []
6728        self.show_display = show_display
6729
6730
6731class TezosPublicKey(protobuf.MessageType):
6732    MESSAGE_WIRE_TYPE = 155
6733    FIELDS = {
6734        1: protobuf.Field("public_key", "string", repeated=False, required=True),
6735    }
6736
6737    def __init__(
6738        self,
6739        *,
6740        public_key: "str",
6741    ) -> None:
6742        self.public_key = public_key
6743
6744
6745class TezosSignTx(protobuf.MessageType):
6746    MESSAGE_WIRE_TYPE = 152
6747    FIELDS = {
6748        1: protobuf.Field("address_n", "uint32", repeated=True, required=False),
6749        2: protobuf.Field("branch", "bytes", repeated=False, required=True),
6750        3: protobuf.Field("reveal", "TezosRevealOp", repeated=False, required=False),
6751        4: protobuf.Field("transaction", "TezosTransactionOp", repeated=False, required=False),
6752        5: protobuf.Field("origination", "TezosOriginationOp", repeated=False, required=False),
6753        6: protobuf.Field("delegation", "TezosDelegationOp", repeated=False, required=False),
6754        7: protobuf.Field("proposal", "TezosProposalOp", repeated=False, required=False),
6755        8: protobuf.Field("ballot", "TezosBallotOp", repeated=False, required=False),
6756    }
6757
6758    def __init__(
6759        self,
6760        *,
6761        branch: "bytes",
6762        address_n: Optional[Sequence["int"]] = None,
6763        reveal: Optional["TezosRevealOp"] = None,
6764        transaction: Optional["TezosTransactionOp"] = None,
6765        origination: Optional["TezosOriginationOp"] = None,
6766        delegation: Optional["TezosDelegationOp"] = None,
6767        proposal: Optional["TezosProposalOp"] = None,
6768        ballot: Optional["TezosBallotOp"] = None,
6769    ) -> None:
6770        self.address_n: Sequence["int"] = address_n if address_n is not None else []
6771        self.branch = branch
6772        self.reveal = reveal
6773        self.transaction = transaction
6774        self.origination = origination
6775        self.delegation = delegation
6776        self.proposal = proposal
6777        self.ballot = ballot
6778
6779
6780class TezosSignedTx(protobuf.MessageType):
6781    MESSAGE_WIRE_TYPE = 153
6782    FIELDS = {
6783        1: protobuf.Field("signature", "string", repeated=False, required=True),
6784        2: protobuf.Field("sig_op_contents", "bytes", repeated=False, required=True),
6785        3: protobuf.Field("operation_hash", "string", repeated=False, required=True),
6786    }
6787
6788    def __init__(
6789        self,
6790        *,
6791        signature: "str",
6792        sig_op_contents: "bytes",
6793        operation_hash: "str",
6794    ) -> None:
6795        self.signature = signature
6796        self.sig_op_contents = sig_op_contents
6797        self.operation_hash = operation_hash
6798
6799
6800class TezosContractID(protobuf.MessageType):
6801    MESSAGE_WIRE_TYPE = None
6802    FIELDS = {
6803        1: protobuf.Field("tag", "TezosContractType", repeated=False, required=True),
6804        2: protobuf.Field("hash", "bytes", repeated=False, required=True),
6805    }
6806
6807    def __init__(
6808        self,
6809        *,
6810        tag: "TezosContractType",
6811        hash: "bytes",
6812    ) -> None:
6813        self.tag = tag
6814        self.hash = hash
6815
6816
6817class TezosRevealOp(protobuf.MessageType):
6818    MESSAGE_WIRE_TYPE = None
6819    FIELDS = {
6820        7: protobuf.Field("source", "bytes", repeated=False, required=True),
6821        2: protobuf.Field("fee", "uint64", repeated=False, required=True),
6822        3: protobuf.Field("counter", "uint64", repeated=False, required=True),
6823        4: protobuf.Field("gas_limit", "uint64", repeated=False, required=True),
6824        5: protobuf.Field("storage_limit", "uint64", repeated=False, required=True),
6825        6: protobuf.Field("public_key", "bytes", repeated=False, required=True),
6826    }
6827
6828    def __init__(
6829        self,
6830        *,
6831        source: "bytes",
6832        fee: "int",
6833        counter: "int",
6834        gas_limit: "int",
6835        storage_limit: "int",
6836        public_key: "bytes",
6837    ) -> None:
6838        self.source = source
6839        self.fee = fee
6840        self.counter = counter
6841        self.gas_limit = gas_limit
6842        self.storage_limit = storage_limit
6843        self.public_key = public_key
6844
6845
6846class TezosTransactionOp(protobuf.MessageType):
6847    MESSAGE_WIRE_TYPE = None
6848    FIELDS = {
6849        9: protobuf.Field("source", "bytes", repeated=False, required=True),
6850        2: protobuf.Field("fee", "uint64", repeated=False, required=True),
6851        3: protobuf.Field("counter", "uint64", repeated=False, required=True),
6852        4: protobuf.Field("gas_limit", "uint64", repeated=False, required=True),
6853        5: protobuf.Field("storage_limit", "uint64", repeated=False, required=True),
6854        6: protobuf.Field("amount", "uint64", repeated=False, required=True),
6855        7: protobuf.Field("destination", "TezosContractID", repeated=False, required=True),
6856        8: protobuf.Field("parameters", "bytes", repeated=False, required=False),
6857        10: protobuf.Field("parameters_manager", "TezosParametersManager", repeated=False, required=False),
6858    }
6859
6860    def __init__(
6861        self,
6862        *,
6863        source: "bytes",
6864        fee: "int",
6865        counter: "int",
6866        gas_limit: "int",
6867        storage_limit: "int",
6868        amount: "int",
6869        destination: "TezosContractID",
6870        parameters: Optional["bytes"] = None,
6871        parameters_manager: Optional["TezosParametersManager"] = None,
6872    ) -> None:
6873        self.source = source
6874        self.fee = fee
6875        self.counter = counter
6876        self.gas_limit = gas_limit
6877        self.storage_limit = storage_limit
6878        self.amount = amount
6879        self.destination = destination
6880        self.parameters = parameters
6881        self.parameters_manager = parameters_manager
6882
6883
6884class TezosOriginationOp(protobuf.MessageType):
6885    MESSAGE_WIRE_TYPE = None
6886    FIELDS = {
6887        12: protobuf.Field("source", "bytes", repeated=False, required=True),
6888        2: protobuf.Field("fee", "uint64", repeated=False, required=True),
6889        3: protobuf.Field("counter", "uint64", repeated=False, required=True),
6890        4: protobuf.Field("gas_limit", "uint64", repeated=False, required=True),
6891        5: protobuf.Field("storage_limit", "uint64", repeated=False, required=True),
6892        6: protobuf.Field("manager_pubkey", "bytes", repeated=False, required=False),
6893        7: protobuf.Field("balance", "uint64", repeated=False, required=True),
6894        8: protobuf.Field("spendable", "bool", repeated=False, required=False),
6895        9: protobuf.Field("delegatable", "bool", repeated=False, required=False),
6896        10: protobuf.Field("delegate", "bytes", repeated=False, required=False),
6897        11: protobuf.Field("script", "bytes", repeated=False, required=True),
6898    }
6899
6900    def __init__(
6901        self,
6902        *,
6903        source: "bytes",
6904        fee: "int",
6905        counter: "int",
6906        gas_limit: "int",
6907        storage_limit: "int",
6908        balance: "int",
6909        script: "bytes",
6910        manager_pubkey: Optional["bytes"] = None,
6911        spendable: Optional["bool"] = None,
6912        delegatable: Optional["bool"] = None,
6913        delegate: Optional["bytes"] = None,
6914    ) -> None:
6915        self.source = source
6916        self.fee = fee
6917        self.counter = counter
6918        self.gas_limit = gas_limit
6919        self.storage_limit = storage_limit
6920        self.balance = balance
6921        self.script = script
6922        self.manager_pubkey = manager_pubkey
6923        self.spendable = spendable
6924        self.delegatable = delegatable
6925        self.delegate = delegate
6926
6927
6928class TezosDelegationOp(protobuf.MessageType):
6929    MESSAGE_WIRE_TYPE = None
6930    FIELDS = {
6931        7: protobuf.Field("source", "bytes", repeated=False, required=True),
6932        2: protobuf.Field("fee", "uint64", repeated=False, required=True),
6933        3: protobuf.Field("counter", "uint64", repeated=False, required=True),
6934        4: protobuf.Field("gas_limit", "uint64", repeated=False, required=True),
6935        5: protobuf.Field("storage_limit", "uint64", repeated=False, required=True),
6936        6: protobuf.Field("delegate", "bytes", repeated=False, required=True),
6937    }
6938
6939    def __init__(
6940        self,
6941        *,
6942        source: "bytes",
6943        fee: "int",
6944        counter: "int",
6945        gas_limit: "int",
6946        storage_limit: "int",
6947        delegate: "bytes",
6948    ) -> None:
6949        self.source = source
6950        self.fee = fee
6951        self.counter = counter
6952        self.gas_limit = gas_limit
6953        self.storage_limit = storage_limit
6954        self.delegate = delegate
6955
6956
6957class TezosProposalOp(protobuf.MessageType):
6958    MESSAGE_WIRE_TYPE = None
6959    FIELDS = {
6960        1: protobuf.Field("source", "bytes", repeated=False, required=False),
6961        2: protobuf.Field("period", "uint64", repeated=False, required=False),
6962        4: protobuf.Field("proposals", "bytes", repeated=True, required=False),
6963    }
6964
6965    def __init__(
6966        self,
6967        *,
6968        proposals: Optional[Sequence["bytes"]] = None,
6969        source: Optional["bytes"] = None,
6970        period: Optional["int"] = None,
6971    ) -> None:
6972        self.proposals: Sequence["bytes"] = proposals if proposals is not None else []
6973        self.source = source
6974        self.period = period
6975
6976
6977class TezosBallotOp(protobuf.MessageType):
6978    MESSAGE_WIRE_TYPE = None
6979    FIELDS = {
6980        1: protobuf.Field("source", "bytes", repeated=False, required=False),
6981        2: protobuf.Field("period", "uint64", repeated=False, required=False),
6982        3: protobuf.Field("proposal", "bytes", repeated=False, required=False),
6983        4: protobuf.Field("ballot", "TezosBallotType", repeated=False, required=False),
6984    }
6985
6986    def __init__(
6987        self,
6988        *,
6989        source: Optional["bytes"] = None,
6990        period: Optional["int"] = None,
6991        proposal: Optional["bytes"] = None,
6992        ballot: Optional["TezosBallotType"] = None,
6993    ) -> None:
6994        self.source = source
6995        self.period = period
6996        self.proposal = proposal
6997        self.ballot = ballot
6998
6999
7000class TezosParametersManager(protobuf.MessageType):
7001    MESSAGE_WIRE_TYPE = None
7002    FIELDS = {
7003        1: protobuf.Field("set_delegate", "bytes", repeated=False, required=False),
7004        2: protobuf.Field("cancel_delegate", "bool", repeated=False, required=False),
7005        3: protobuf.Field("transfer", "TezosManagerTransfer", repeated=False, required=False),
7006    }
7007
7008    def __init__(
7009        self,
7010        *,
7011        set_delegate: Optional["bytes"] = None,
7012        cancel_delegate: Optional["bool"] = None,
7013        transfer: Optional["TezosManagerTransfer"] = None,
7014    ) -> None:
7015        self.set_delegate = set_delegate
7016        self.cancel_delegate = cancel_delegate
7017        self.transfer = transfer
7018
7019
7020class TezosManagerTransfer(protobuf.MessageType):
7021    MESSAGE_WIRE_TYPE = None
7022    FIELDS = {
7023        1: protobuf.Field("destination", "TezosContractID", repeated=False, required=False),
7024        2: protobuf.Field("amount", "uint64", repeated=False, required=False),
7025    }
7026
7027    def __init__(
7028        self,
7029        *,
7030        destination: Optional["TezosContractID"] = None,
7031        amount: Optional["int"] = None,
7032    ) -> None:
7033        self.destination = destination
7034        self.amount = amount
7035
7036
7037class WebAuthnListResidentCredentials(protobuf.MessageType):
7038    MESSAGE_WIRE_TYPE = 800
7039
7040
7041class WebAuthnAddResidentCredential(protobuf.MessageType):
7042    MESSAGE_WIRE_TYPE = 802
7043    FIELDS = {
7044        1: protobuf.Field("credential_id", "bytes", repeated=False, required=False),
7045    }
7046
7047    def __init__(
7048        self,
7049        *,
7050        credential_id: Optional["bytes"] = None,
7051    ) -> None:
7052        self.credential_id = credential_id
7053
7054
7055class WebAuthnRemoveResidentCredential(protobuf.MessageType):
7056    MESSAGE_WIRE_TYPE = 803
7057    FIELDS = {
7058        1: protobuf.Field("index", "uint32", repeated=False, required=False),
7059    }
7060
7061    def __init__(
7062        self,
7063        *,
7064        index: Optional["int"] = None,
7065    ) -> None:
7066        self.index = index
7067
7068
7069class WebAuthnCredentials(protobuf.MessageType):
7070    MESSAGE_WIRE_TYPE = 801
7071    FIELDS = {
7072        1: protobuf.Field("credentials", "WebAuthnCredential", repeated=True, required=False),
7073    }
7074
7075    def __init__(
7076        self,
7077        *,
7078        credentials: Optional[Sequence["WebAuthnCredential"]] = None,
7079    ) -> None:
7080        self.credentials: Sequence["WebAuthnCredential"] = credentials if credentials is not None else []
7081
7082
7083class WebAuthnCredential(protobuf.MessageType):
7084    MESSAGE_WIRE_TYPE = None
7085    FIELDS = {
7086        1: protobuf.Field("index", "uint32", repeated=False, required=False),
7087        2: protobuf.Field("id", "bytes", repeated=False, required=False),
7088        3: protobuf.Field("rp_id", "string", repeated=False, required=False),
7089        4: protobuf.Field("rp_name", "string", repeated=False, required=False),
7090        5: protobuf.Field("user_id", "bytes", repeated=False, required=False),
7091        6: protobuf.Field("user_name", "string", repeated=False, required=False),
7092        7: protobuf.Field("user_display_name", "string", repeated=False, required=False),
7093        8: protobuf.Field("creation_time", "uint32", repeated=False, required=False),
7094        9: protobuf.Field("hmac_secret", "bool", repeated=False, required=False),
7095        10: protobuf.Field("use_sign_count", "bool", repeated=False, required=False),
7096        11: protobuf.Field("algorithm", "sint32", repeated=False, required=False),
7097        12: protobuf.Field("curve", "sint32", repeated=False, required=False),
7098    }
7099
7100    def __init__(
7101        self,
7102        *,
7103        index: Optional["int"] = None,
7104        id: Optional["bytes"] = None,
7105        rp_id: Optional["str"] = None,
7106        rp_name: Optional["str"] = None,
7107        user_id: Optional["bytes"] = None,
7108        user_name: Optional["str"] = None,
7109        user_display_name: Optional["str"] = None,
7110        creation_time: Optional["int"] = None,
7111        hmac_secret: Optional["bool"] = None,
7112        use_sign_count: Optional["bool"] = None,
7113        algorithm: Optional["int"] = None,
7114        curve: Optional["int"] = None,
7115    ) -> None:
7116        self.index = index
7117        self.id = id
7118        self.rp_id = rp_id
7119        self.rp_name = rp_name
7120        self.user_id = user_id
7121        self.user_name = user_name
7122        self.user_display_name = user_display_name
7123        self.creation_time = creation_time
7124        self.hmac_secret = hmac_secret
7125        self.use_sign_count = use_sign_count
7126        self.algorithm = algorithm
7127        self.curve = curve
7128