From bfe60df9cc1b446d8ae9fdbb70676189320d04b9 Mon Sep 17 00:00:00 2001 From: tcar Date: Wed, 21 Aug 2024 11:24:01 +0200 Subject: [PATCH 1/3] return error; Signed-off-by: tcar --- chains/btc/executor/executor.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/chains/btc/executor/executor.go b/chains/btc/executor/executor.go index cbe6b01e..7970fe34 100644 --- a/chains/btc/executor/executor.go +++ b/chains/btc/executor/executor.go @@ -304,6 +304,7 @@ func (e *Executor) outputs(tx *wire.MsgTx, proposals []*BtcTransferProposal) (ui cid, err := e.uploader.Upload(dataToUpload) if err != nil { log.Error().Err(err).Msg("Error occured while uploading metadata to ipfs") + return 0, err } // Store the CID in OP_RETURN @@ -311,6 +312,7 @@ func (e *Executor) outputs(tx *wire.MsgTx, proposals []*BtcTransferProposal) (ui opReturnScript, err := txscript.NullDataScript(opReturnData) if err != nil { log.Error().Err(err).Msg("Error occured while constructiong OP_RETURN data") + return 0, err } opReturnOut := wire.NewTxOut(0, opReturnScript) From d9ee533446e4a6071d5371bb3871ad091f2f8953 Mon Sep 17 00:00:00 2001 From: tcar Date: Wed, 21 Aug 2024 12:41:11 +0200 Subject: [PATCH 2/3] use signatureHash instead of sesionID; Signed-off-by: tcar --- tss/frost/signing/signing.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tss/frost/signing/signing.go b/tss/frost/signing/signing.go index 40699999..a0f346ba 100644 --- a/tss/frost/signing/signing.go +++ b/tss/frost/signing/signing.go @@ -84,7 +84,7 @@ func NewSigning( Host: host, Communication: comm, Peers: key.Peers, - SID: sessionID, + SID: string(msg[:]), Log: log.With().Str("SessionID", sessionID).Str("messageID", messageID).Str("Process", "signing").Logger(), Cancel: func() {}, Done: make(chan bool), @@ -195,12 +195,11 @@ func (s *Signing) processEndMessage(ctx context.Context) error { select { case <-s.Done: { - s.Log.Info().Msg("Successfully generated signature") - result, err := s.Handler.Result() if err != nil { return err } + s.Log.Info().Msg("Successfully generated signature") signature, _ := result.(taproot.Signature) s.resultChn <- Signature{ From be3375b30032bd4e29344d16dfe09f0079545794 Mon Sep 17 00:00:00 2001 From: tcar Date: Wed, 21 Aug 2024 12:48:22 +0200 Subject: [PATCH 3/3] use signingHash for sessionID; Signed-off-by: tcar --- chains/btc/executor/executor.go | 2 +- tss/frost/signing/signing.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/chains/btc/executor/executor.go b/chains/btc/executor/executor.go index 7970fe34..10378d3b 100644 --- a/chains/btc/executor/executor.go +++ b/chains/btc/executor/executor.go @@ -165,8 +165,8 @@ func (e *Executor) executeResourceProps(props []*BtcTransferProposal, resource c // we need to sign each input individually tssProcesses := make([]tss.TssProcess, len(tx.TxIn)) for i := range tx.TxIn { - sessionID := fmt.Sprintf("%s-%d", sessionID, i) signingHash, err := txscript.CalcTaprootSignatureHash(sigHashes, txscript.SigHashDefault, tx, i, prevOutputFetcher) + sessionID := hex.EncodeToString(signingHash) if err != nil { return err } diff --git a/tss/frost/signing/signing.go b/tss/frost/signing/signing.go index a0f346ba..1395efa4 100644 --- a/tss/frost/signing/signing.go +++ b/tss/frost/signing/signing.go @@ -84,7 +84,7 @@ func NewSigning( Host: host, Communication: comm, Peers: key.Peers, - SID: string(msg[:]), + SID: sessionID, Log: log.With().Str("SessionID", sessionID).Str("messageID", messageID).Str("Process", "signing").Logger(), Cancel: func() {}, Done: make(chan bool),