Zondax / ledger-filecoin

Filecoin app for Ledger Nano S and X
Apache License 2.0
26 stars 17 forks source link

Some user cannot sign FIl+ datacap Approvals #111

Closed fabriziogianni7 closed 2 years ago

fabriziogianni7 commented 2 years ago

Description

reference to this slack message

trying to understand why some addresses cannot sign the approval message for Fil+ datacap. I got the error Data is invalid: unexpected method that’s the object:

{
From: f1bjdcjxha3ldcstw5zmvkyu3r2p5x2bsm745kgsi, 
GasFeeCap: 0, 
GasLimit: 0, 
GasPremium: 0, 
Method: 3, 
Nonce: 24, 
Params: ggJYIIR0sI2+0lBBYhgWLCsS32kkFZG1ziEo8bcU8x+oSwX3, 
To: f01403225, 
Value: 0
}

it fails only for some notaries, for others is working fine. Looking to this repo ---> the Approve method is 3, as in the object.

Additional context

To grant datacap in Fil+ program, we create a msig containing all the notaries (approvers) this msig has a certain amount of datacap notaries can grant to clients to grant datacap, notaries of the same msig need to propose and approve a transaction, so, 2 signatures are needed. to propose and approve transactions we use this methods (2 and 3) you can see here for example a github issue where a notary proposed a datacap allocation transaction after this, another notary with the address f13k5zr6ovc2gjmg3lvd43ladbydhovpylcvbflpa tried to sign with no luck. if you go to the proposal message and check the “To’” address you’ll see that f13k5zr6ovc2gjmg3lvd43ladbydhovpylcvbflpa is included in the multisig. to send the transaction, we map the multisig methods this way:

 3: {
      name: 'approve',
      input: {
        id: 'int',
        hash: {
          type: 'hash',
          input: {
            from: 'address',
            to: 'address',
            value: 'bigint',
            method: 'int',
            params: 'buffer',
          },
        },
      },
    },
    2: {
      name: 'propose',
      input: {
        to: 'address',
        value: 'bigint',
        method: 'int',
        params: 'buffer',
      },
    },

and then sign and send the transaction

we use this method of our library to approve a pending transaction --> https://github.com/keyko-io/filecoin-verifier-tools/blob/a5556414301206185c3dd13a4af34f568bd22429/api/api.js#L235 (let me know if you got access)

they can sign proposal: this is a proposal from f13k5zr6ovc2gjmg3lvd43ladbydhovpylcvbflpa went correctly through but fails to sign approvals.

looking in filfox this address was able to sign approval message like in this case

:link: zboto Link

neogeweb3 commented 2 years ago

I have the exact same issue. Notary address: f13k5zr6ovc2gjmg3lvd43ladbydhovpylcvbflpa

fabriziogianni7 commented 2 years ago

the object:

{
    "Version": 0,
    "To": "t01027",
    "From": "t1y6grz7kkjs5wyvg4mp5jqjl3unqt7t5ktqlrf2q",
    "Nonce": 1,
    "Value": "0",
    "GasLimit": 6481525,
    "GasFeeCap": "100706",
    "GasPremium": "99652",
    "Method": 3,
    "Params": "ggBYIGwH52jV2+1v/r+OwbwUW0Wi0CuyG3Idc5ePd1ipEiGf",
    "CID": {
        "/": "bafy2bzaced52awz5kvktv4otstdbrajyj3p7jusx23f4h3jii3x43wzxcs7cc"
    }
}
neogeweb3 commented 2 years ago

Object CID: {/: 'bafy2bzaceavqhia7mo2wjcfpvzsfoifhxkzbgpwo3pwfttolozdnunl7lyq4y'} From: "f13k5zr6ovc2gjmg3lvd43ladbydhovpylcvbflpa" GasFeeCap: "891501623" GasLimit: 10155868 GasPremium: "99014" Method: 4 Nonce: 75 Params: "glgxA7ZoDlkHE6hD16ME3JeYC8AeQ1RlUdUAMuOceTyKTfqwtTgAexl0SC/c8kUZCQ70uEcAAQAAAAAA" To: "f06" Value: "0" Version: 0

fabriziogianni7 commented 2 years ago

@rllola @ftheirs hey guys do you have any update maybe? :D

ftheirs commented 2 years ago

Hi @fabriziogianni7! Could you tell me which device are you using and also which version of the app? I tried to reproduce this error with the latest version and I haven't received that error. Actually, the transaction was processed just fine!

neogeweb3 commented 2 years ago

Ledger nano s with filecoin v0.22.2

ftheirs commented 2 years ago

Using 0.22.2, I was able to reproduce this issue but it's solved the 0.22.5 I see that Ledger hasn't published the last version yet. You might want to use Zondax release in the meantime.

You might want to install it: https://github.com/Zondax/ledger-filecoin/releases/tag/v0.22.5

Steps to install:

Let me know if you were able to solve this, so I can close the issue 😄

neogeweb3 commented 2 years ago

I will give it a shot tomorrow, thanks in advance.

fabriziogianni7 commented 2 years ago

@ftheirs Looks working now! I'll forward this issue comment to all the notaries using fil+. let's see if it works also for them. Finger crossed! thank you so much

neogeweb3 commented 2 years ago

It works for me too! Thanks for the help, folks! @ftheirs @fabriziogianni7