I have a 3 owners multisig that has 2 confirmations as threshhold
I have already one confirmation done programatically, by proposing a transaction using the apiKit.proposeTransaction
method. I see this transaction waiting to be confirmed by another owner in order to be executed.
What I want to do is to add a confirmation to that transaction using my Ledger device.
From my understanding, what needs to be signed is the safeTxHash
that's shown in the UI.
I am using the @ledgerhq/hw-app-eth
and @ledgerhq/hw-transport-webhid
in order to interact with my Ledger device.
First question I have is:
- What needs to be signed is indeed the
safeTxHash
?
I think the above is true and I am using the eth.signPersonalMessage()
to sign that safeTxHash.
However, after the signature is computed (I actually approved the signature from my Ledger device), the derived public address from that signature is not the one from my Ledger. I get the following error after doing this call
apiKit.confirmTransaction(safeTxHash, signature);
Error 👇
"signature": [ "Signer=0x___ is not an owner. Current owners=['0xd...', '0xa...', '0x1...']" ]
The derived public address from the signature I sent to the apiKit, is not the one expected.
I believe that the issue needs to be in the signing process... Any ideas on how to do this?
In essence, what I need is to be able to add a confirmation to a multisig transaction using a Ledger device.
Thanks in advance!