mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-21 23:18:13 +00:00
common/protob: Add AuthorizeCoinJoin message.
This commit is contained in:
parent
59002118c0
commit
bbab13f6e7
@ -298,3 +298,18 @@ message OwnershipProof {
|
||||
required bytes ownership_proof = 1; // SLIP-0019 proof of ownership
|
||||
required bytes signature = 2; // signature of the proof
|
||||
}
|
||||
|
||||
/**
|
||||
* Request: Ask device to prompt the user to authorize a CoinJoin transaction
|
||||
* @start
|
||||
* @next Success
|
||||
* @next Failure
|
||||
*/
|
||||
message AuthorizeCoinJoin {
|
||||
required string coordinator = 1; // coordinator identifier to approve as a prefix in commitment data (max. 18 ASCII characters)
|
||||
required uint64 max_total_fee = 2; // maximum total fees
|
||||
optional uint32 fee_per_anonymity = 3; // fee per anonymity set in units of 10^-9 percent
|
||||
repeated uint32 address_n = 4; // prefix of the BIP-32 path leading to the account (m / purpose' / coin_type' / account')
|
||||
optional string coin_name = 5 [default='Bitcoin']; // coin to use
|
||||
optional InputScriptType script_type = 6 [default=SPENDADDRESS]; // used to distinguish between various address formats (non-segwit, segwit, etc.)
|
||||
}
|
||||
|
@ -91,6 +91,7 @@ enum MessageType {
|
||||
MessageType_OwnershipId = 44 [(wire_out) = true];
|
||||
MessageType_GetOwnershipProof = 49 [(wire_in) = true];
|
||||
MessageType_OwnershipProof = 50 [(wire_out) = true];
|
||||
MessageType_AuthorizeCoinJoin = 51 [(wire_in) = true];
|
||||
|
||||
// Crypto
|
||||
MessageType_CipherKeyValue = 23 [(wire_in) = true];
|
||||
|
42
core/src/trezor/messages/AuthorizeCoinJoin.py
Normal file
42
core/src/trezor/messages/AuthorizeCoinJoin.py
Normal file
@ -0,0 +1,42 @@
|
||||
# Automatically generated by pb2py
|
||||
# fmt: off
|
||||
import protobuf as p
|
||||
|
||||
if __debug__:
|
||||
try:
|
||||
from typing import Dict, List # noqa: F401
|
||||
from typing_extensions import Literal # noqa: F401
|
||||
EnumTypeInputScriptType = Literal[0, 1, 2, 3, 4]
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
|
||||
class AuthorizeCoinJoin(p.MessageType):
|
||||
MESSAGE_WIRE_TYPE = 51
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
coordinator: str = None,
|
||||
max_total_fee: int = None,
|
||||
fee_per_anonymity: int = None,
|
||||
address_n: List[int] = None,
|
||||
coin_name: str = None,
|
||||
script_type: EnumTypeInputScriptType = None,
|
||||
) -> None:
|
||||
self.coordinator = coordinator
|
||||
self.max_total_fee = max_total_fee
|
||||
self.fee_per_anonymity = fee_per_anonymity
|
||||
self.address_n = address_n if address_n is not None else []
|
||||
self.coin_name = coin_name
|
||||
self.script_type = script_type
|
||||
|
||||
@classmethod
|
||||
def get_fields(cls) -> Dict:
|
||||
return {
|
||||
1: ('coordinator', p.UnicodeType, 0), # required
|
||||
2: ('max_total_fee', p.UVarintType, 0), # required
|
||||
3: ('fee_per_anonymity', p.UVarintType, 0),
|
||||
4: ('address_n', p.UVarintType, p.FLAG_REPEATED),
|
||||
5: ('coin_name', p.UnicodeType, 0), # default=Bitcoin
|
||||
6: ('script_type', p.EnumType("InputScriptType", (0, 1, 2, 3, 4)), 0), # default=SPENDADDRESS
|
||||
}
|
@ -59,6 +59,7 @@ GetOwnershipId = 43 # type: Literal[43]
|
||||
OwnershipId = 44 # type: Literal[44]
|
||||
GetOwnershipProof = 49 # type: Literal[49]
|
||||
OwnershipProof = 50 # type: Literal[50]
|
||||
AuthorizeCoinJoin = 51 # type: Literal[51]
|
||||
CipherKeyValue = 23 # type: Literal[23]
|
||||
CipheredKeyValue = 48 # type: Literal[48]
|
||||
SignIdentity = 53 # type: Literal[53]
|
||||
|
@ -4,7 +4,7 @@ endif
|
||||
|
||||
SKIPPED_MESSAGES := Binance Cardano DebugMonero Eos Monero Ontology Ripple SdProtect Tezos WebAuthn \
|
||||
DebugLinkRecordScreen DebugLinkReseedRandom DebugLinkShowText DebugLinkEraseSdCard DebugLinkWatchLayout \
|
||||
GetOwnershipProof OwnershipProof GetOwnershipId OwnershipId
|
||||
GetOwnershipProof OwnershipProof GetOwnershipId OwnershipId AuthorizeCoinJoin
|
||||
|
||||
ifeq ($(BITCOIN_ONLY), 1)
|
||||
SKIPPED_MESSAGES += Ethereum Lisk NEM Stellar
|
||||
|
@ -50,7 +50,7 @@ MultisigRedeemScriptType.signatures max_count:15 max_siz
|
||||
MultisigRedeemScriptType.nodes max_count:15
|
||||
MultisigRedeemScriptType.address_n max_count:8
|
||||
|
||||
HDNodePathType.address_n max_count:8
|
||||
HDNodePathType.address_n max_count:8
|
||||
|
||||
GetOwnershipProof.address_n max_count:8
|
||||
GetOwnershipProof.coin_name max_size:21
|
||||
@ -64,3 +64,7 @@ GetOwnershipId.address_n max_count:8
|
||||
GetOwnershipId.coin_name max_size:21
|
||||
|
||||
OwnershipId.ownership_id max_size:32
|
||||
|
||||
AuthorizeCoinJoin.coordinator max_size:18
|
||||
AuthorizeCoinJoin.address_n max_count:8
|
||||
AuthorizeCoinJoin.coin_name max_size:21
|
||||
|
42
python/src/trezorlib/messages/AuthorizeCoinJoin.py
Normal file
42
python/src/trezorlib/messages/AuthorizeCoinJoin.py
Normal file
@ -0,0 +1,42 @@
|
||||
# Automatically generated by pb2py
|
||||
# fmt: off
|
||||
from .. import protobuf as p
|
||||
|
||||
if __debug__:
|
||||
try:
|
||||
from typing import Dict, List # noqa: F401
|
||||
from typing_extensions import Literal # noqa: F401
|
||||
EnumTypeInputScriptType = Literal[0, 1, 2, 3, 4]
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
|
||||
class AuthorizeCoinJoin(p.MessageType):
|
||||
MESSAGE_WIRE_TYPE = 51
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
coordinator: str = None,
|
||||
max_total_fee: int = None,
|
||||
fee_per_anonymity: int = None,
|
||||
address_n: List[int] = None,
|
||||
coin_name: str = None,
|
||||
script_type: EnumTypeInputScriptType = None,
|
||||
) -> None:
|
||||
self.coordinator = coordinator
|
||||
self.max_total_fee = max_total_fee
|
||||
self.fee_per_anonymity = fee_per_anonymity
|
||||
self.address_n = address_n if address_n is not None else []
|
||||
self.coin_name = coin_name
|
||||
self.script_type = script_type
|
||||
|
||||
@classmethod
|
||||
def get_fields(cls) -> Dict:
|
||||
return {
|
||||
1: ('coordinator', p.UnicodeType, 0), # required
|
||||
2: ('max_total_fee', p.UVarintType, 0), # required
|
||||
3: ('fee_per_anonymity', p.UVarintType, 0),
|
||||
4: ('address_n', p.UVarintType, p.FLAG_REPEATED),
|
||||
5: ('coin_name', p.UnicodeType, 0), # default=Bitcoin
|
||||
6: ('script_type', p.EnumType("InputScriptType", (0, 1, 2, 3, 4)), 0), # default=SPENDADDRESS
|
||||
}
|
@ -57,6 +57,7 @@ GetOwnershipId = 43 # type: Literal[43]
|
||||
OwnershipId = 44 # type: Literal[44]
|
||||
GetOwnershipProof = 49 # type: Literal[49]
|
||||
OwnershipProof = 50 # type: Literal[50]
|
||||
AuthorizeCoinJoin = 51 # type: Literal[51]
|
||||
CipherKeyValue = 23 # type: Literal[23]
|
||||
CipheredKeyValue = 48 # type: Literal[48]
|
||||
SignIdentity = 53 # type: Literal[53]
|
||||
|
@ -4,6 +4,7 @@
|
||||
from .Address import Address
|
||||
from .ApplyFlags import ApplyFlags
|
||||
from .ApplySettings import ApplySettings
|
||||
from .AuthorizeCoinJoin import AuthorizeCoinJoin
|
||||
from .BackupDevice import BackupDevice
|
||||
from .BinanceAddress import BinanceAddress
|
||||
from .BinanceCancelMsg import BinanceCancelMsg
|
||||
|
Loading…
Reference in New Issue
Block a user