mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-02-17 01:52:02 +00:00
signing: Document Decred signing
This commit is contained in:
parent
057ec1227d
commit
d63e294c0b
@ -122,7 +122,10 @@ Phase1 - check inputs, previous transactions, and outputs
|
||||
foreach I (idx1):
|
||||
Request I STAGE_REQUEST_1_INPUT
|
||||
Add I to segwit hash_prevouts, hash_sequence
|
||||
Add I to Decred hash_prefix
|
||||
Add I to TransactionChecksum (prevout and type)
|
||||
if (Decred)
|
||||
Return I
|
||||
If not segwit, Calculate amount of I:
|
||||
Request prevhash I, META STAGE_REQUEST_2_PREV_META
|
||||
foreach prevhash I (idx2):
|
||||
@ -134,7 +137,10 @@ foreach I (idx1):
|
||||
Calculate hash of streamed tx, compare to prevhash I
|
||||
foreach O (idx1):
|
||||
Request O STAGE_REQUEST_3_OUTPUT
|
||||
Add O to Decred hash_prefix
|
||||
Add O to TransactionChecksum
|
||||
if (Decred)
|
||||
Return O
|
||||
Display output
|
||||
Ask for confirmation
|
||||
|
||||
@ -144,6 +150,9 @@ Ask for confirmation
|
||||
Phase2: sign inputs, check that nothing changed
|
||||
===============================================
|
||||
|
||||
if (Decred)
|
||||
Skip to STAGE_REQUEST_DECRED_WITNESS
|
||||
|
||||
foreach I (idx1): // input to sign
|
||||
if (idx1 is segwit)
|
||||
Request I STAGE_REQUEST_SEGWIT_INPUT
|
||||
@ -153,8 +162,8 @@ foreach I (idx1): // input to sign
|
||||
foreach I (idx2):
|
||||
Request I STAGE_REQUEST_4_INPUT
|
||||
If idx1 == idx2
|
||||
Remember key for signing
|
||||
Fill scriptsig
|
||||
Remember key for signing
|
||||
Add I to StreamTransactionSign
|
||||
Add I to TransactionChecksum
|
||||
foreach O (idx2):
|
||||
@ -182,6 +191,17 @@ foreach I (idx1): // input to sign
|
||||
Check amount
|
||||
Sign segwit prevhash, sequence, amount, outputs
|
||||
Return witness
|
||||
|
||||
Phase3: sign Decred inputs
|
||||
==========================
|
||||
|
||||
foreach I (idx1): // input to sign STAGE_REQUEST_DECRED_WITNESS
|
||||
Request I
|
||||
Fill scriptSig
|
||||
Compute hash_witness
|
||||
|
||||
Sign (hash_type || hash_prefix || hash_witness)
|
||||
Return witness
|
||||
*/
|
||||
|
||||
void send_req_1_input(void)
|
||||
|
Loading…
Reference in New Issue
Block a user