From bb1c638d3b35964203b418dc7b75d3283d44cdaf Mon Sep 17 00:00:00 2001 From: Alexis Hernandez Date: Fri, 2 Apr 2021 07:28:40 -0700 Subject: [PATCH] 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 --- legacy/firmware/protob/messages-bitcoin.options | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/firmware/protob/messages-bitcoin.options b/legacy/firmware/protob/messages-bitcoin.options index 815e25633..1b3a2d6bc 100644 --- a/legacy/firmware/protob/messages-bitcoin.options +++ b/legacy/firmware/protob/messages-bitcoin.options @@ -38,7 +38,7 @@ TxInputType.orig_hash max_size:32 TxOutputType.address max_size:130 TxOutputType.address_n max_count:8 -TxOutputType.op_return_data max_size:80 +TxOutputType.op_return_data max_size:150 TxOutputType.orig_hash max_size:32 TxOutputBinType.script_pubkey max_size:520 @@ -65,7 +65,7 @@ TxInput.orig_hash max_size:32 TxOutput.address max_size:130 TxOutput.address_n max_count:8 -TxOutput.op_return_data max_size:80 +TxOutput.op_return_data max_size:150 TxOutput.orig_hash max_size:32 PrevInput.prev_hash max_size:32