mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-27 01:48:17 +00:00
bb1c638d3b
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
84 lines
4.4 KiB
Plaintext
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
|