1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-18 13:38:12 +00:00
trezor-firmware/legacy/firmware/protob/messages-bitcoin.options
Alexis Hernandez bb1c638d3b legacy: Update op_return max size to 150 bytes
The goal is to allow Trezor 1 to create TPoS contracts for Stakenet.

Last year, Stakenet introduced a hard-fork [1] to change the way TPoS contracts
are created, instead of a custom signature method, now it works with the
output from the signMessage method, while this works for Trezor T, it doesn't
work for Trezor 1 due to the 80 bytes limit on the OP_RETURN output while
Stakenet allows up to 150 bytes [2], in a gitter discussion [3] we concluded that
the change should be fine.

The hard-fork was introduced because we couldn't got our TPoS contracts PR accepted [4],
the OP_RETURN still contains the same data, its just stored in a different way:
- The TPoS address, where the coins to stake are stored, and where rewards are received.
- The merchant address, where the merchant receives its commission.
- The contract commission.
- The TPoS collateral signature (this is what uses the signMessage now).

At last, there is an example transaction creating a TPoS contract [5].

[1]: https://github.com/X9Developers/XSN/pull/154
[2]: https://github.com/X9Developers/XSN/blob/master/src/script/standard.h#L34
[3]: https://gitter.im/trezor/community?at=6064c41e940f1d555e2ea670
[4]: https://github.com/trezor/trezor-firmware/pull/140
[5]: https://xsnexplorer.io/transactions/858feb31097501cf68d698cde104cf778ec51ff3668e943404b549a5dd2f5792
2021-04-06 10:15:59 +02:00

84 lines
4.4 KiB
Plaintext

GetPublicKey.address_n max_count:8
GetPublicKey.ecdsa_curve_name max_size:32
GetPublicKey.coin_name max_size:21
PublicKey.xpub max_size:113
GetAddress.address_n max_count:8
GetAddress.coin_name max_size:21
Address.address max_size:130
SignTx.coin_name max_size:21
SignMessage.address_n max_count:8
SignMessage.message max_size:1024
SignMessage.coin_name max_size:21
VerifyMessage.address max_size:130
VerifyMessage.signature max_size:65
VerifyMessage.message max_size:1024
VerifyMessage.coin_name max_size:21
MessageSignature.address max_size:130
MessageSignature.signature max_size:65
TransactionType.inputs max_count:1
TransactionType.bin_outputs max_count:1
TransactionType.outputs max_count:1
TransactionType.extra_data max_size:1024
TxInputType.address_n max_count:8
TxInputType.prev_hash max_size:32
TxInputType.script_sig max_size:1650
TxInputType.witness max_size:109
TxInputType.ownership_proof max_size:171
TxInputType.commitment_data max_size:32
TxInputType.orig_hash max_size:32
TxOutputType.address max_size:130
TxOutputType.address_n max_count:8
TxOutputType.op_return_data max_size:150
TxOutputType.orig_hash max_size:32
TxOutputBinType.script_pubkey max_size:520
TxRequestDetailsType.tx_hash max_size:32
TxRequestSerializedType.signature max_size:73
TxRequestSerializedType.serialized_tx max_size:2048
MultisigRedeemScriptType.pubkeys max_count:15
MultisigRedeemScriptType.signatures max_count:15 max_size:73
MultisigRedeemScriptType.nodes max_count:15
MultisigRedeemScriptType.address_n max_count:8
HDNodePathType.address_n max_count:8
TxInput.address_n max_count:8
TxInput.prev_hash max_size:32
TxInput.script_sig max_size:1650
TxInput.witness max_size:109
TxInput.ownership_proof max_size:171
TxInput.commitment_data max_size:32
TxInput.orig_hash max_size:32
TxOutput.address max_size:130
TxOutput.address_n max_count:8
TxOutput.op_return_data max_size:150
TxOutput.orig_hash max_size:32
PrevInput.prev_hash max_size:32
PrevInput.script_sig max_size:1650
PrevOutput.script_pubkey max_size:520
TxAckPrevExtraDataWrapper.extra_data_chunk type:FT_IGNORE
# Unused messages.
AuthorizeCoinJoin skip_message:true
GetOwnershipId skip_message:true
OwnershipId skip_message:true
GetOwnershipProof skip_message:true
OwnershipProof skip_message:true