From 9aed51ee96aefef29ef1cf11b0ce821b996ce08e Mon Sep 17 00:00:00 2001
From: anshuldoshi <anshuldoshi@bitgo.com>
Date: Wed, 28 Sep 2022 13:10:55 -0400
Subject: [PATCH] fix(sdk-coin-eth): fix convert signature share to/from

Ticket: bg-58807
---
 modules/bitgo/test/v2/unit/tss/ecdsa.ts       |  6 +++---
 modules/sdk-core/src/bitgo/tss/ecdsa/ecdsa.ts | 10 +++++++---
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/modules/bitgo/test/v2/unit/tss/ecdsa.ts b/modules/bitgo/test/v2/unit/tss/ecdsa.ts
index 34ead62fb8..1c3660529c 100644
--- a/modules/bitgo/test/v2/unit/tss/ecdsa.ts
+++ b/modules/bitgo/test/v2/unit/tss/ecdsa.ts
@@ -604,11 +604,11 @@ describe('Ecdsa tss helper functions tests', function () {
 
       it('should successfully convert signature share to signature share record', function () {
         const share = {
-          to: SignatureShareType.USER,
-          from: SignatureShareType.BITGO,
+          to: SignatureShareType.BITGO,
+          from: SignatureShareType.USER,
           share: `${mockSShareFromUser.R}${ECDSAMethods.delimeter}${mockSShareFromUser.s}${ECDSAMethods.delimeter}${mockSShareFromUser.y}`,
         } as SignatureShareRecord;
-        const signatureShare = ECDSAMethods.convertSignatureShare(mockSShareFromUser, ECDSAMethods.getParticipantIndex('bitgo'));
+        const signatureShare = ECDSAMethods.convertSignatureShare(mockSShareFromUser, ECDSAMethods.getParticipantIndex('user'), ECDSAMethods.getParticipantIndex('bitgo'));
         signatureShare.from.should.equal(share.from);
         signatureShare.to.should.equal(share.to);
         signatureShare.share.should.equal(share.share);
diff --git a/modules/sdk-core/src/bitgo/tss/ecdsa/ecdsa.ts b/modules/sdk-core/src/bitgo/tss/ecdsa/ecdsa.ts
index 7222201756..ef9e02342b 100644
--- a/modules/sdk-core/src/bitgo/tss/ecdsa/ecdsa.ts
+++ b/modules/sdk-core/src/bitgo/tss/ecdsa/ecdsa.ts
@@ -223,7 +223,7 @@ export async function sendShareToBitgo(
       break;
     case SendShareType.SShare:
       const sShare = share as SShare;
-      signatureShare = convertSignatureShare(sShare, 3);
+      signatureShare = convertSignatureShare(sShare, 1, 3);
       await sendSignatureShare(bitgo, walletId, txRequestId, signatureShare, requestType, signerShare, 'ecdsa');
       responseFromBitgo = sShare;
       break;
@@ -573,9 +573,13 @@ export function parseCombinedSignature(share: SignatureShareRecord): Signature {
  * @param share - Signature share
  * @returns signature share record
  */
-export function convertSignatureShare(share: SignatureShare, senderIndex: number): SignatureShareRecord {
+export function convertSignatureShare(
+  share: SignatureShare,
+  senderIndex: number,
+  recipientIndex: number
+): SignatureShareRecord {
   return {
-    to: getParticipantFromIndex(share.i),
+    to: getParticipantFromIndex(recipientIndex),
     from: getParticipantFromIndex(senderIndex),
     share: `${share.R}${delimeter}${share.s}${delimeter}${share.y}`,
   };