Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error attempting to authorize contract for MANA #160

Closed
iamkubi opened this issue Mar 23, 2018 · 7 comments
Closed

Error attempting to authorize contract for MANA #160

iamkubi opened this issue Mar 23, 2018 · 7 comments

Comments

@iamkubi
Copy link

iamkubi commented Mar 23, 2018

Attempting to authorize the marketplace contract for MANA using a Ledger. Running Chrome 64.0.3282.186.

{type: "[Failure] Approve MANA", error: "To get multiple accounts your derivation path must follow pattern 44'/60|61'/x'/n ", @@redux-saga/SAGA_ACTION: true}

I do have some ETH and tokens on a different address on the Ledger, but I've moved MANA and ETH onto the default address (that shows up in the market settings). My MANA balance shows up properly in the top right of the market.

My derivation path is m/44'/60'/0' for Ledger (ETH).

There is no indication of an error displayed on the page, just in the console.

@iamkubi
Copy link
Author

iamkubi commented Mar 23, 2018

I was (I think) able to fix this by selecting the derivation path for Metamask, which adds the account specification to the derivation path used by Ledger (ETH).

It did not, however, display in a usable way. My Ledger brought up a prompt for me to sign a transaction, but I didn't get any indication on the website of what this transaction was. Since the Ledger told me it was for 0 ETH + Data I went ahead and signed the transaction. Unfortunately this resulted in a different error.

{type: "[Failure] Approve MANA", error: "Sign failed", @@redux-saga/SAGA_ACTION: true}

This seemed to happen when I waited long enough to actually read the details of the transaction on my Ledger. It takes about 15 seconds for it to scroll through all the information, and by that time apparently the website times out.

I retried the transaction and confirmed immediately (although for all I know it could have contained all my ETH). I now get a message on the settings page saying:
The transaction is waiting to be confirmed. To see your transaction history, visit your activity page.

After refreshing about 60 seconds later the message changes to indicate I have successfully authorized for MANA.

@abarmat
Copy link
Member

abarmat commented Mar 23, 2018

@iamkubi the issue about "To get multiple accounts your derivation path must follow pattern 44'/60|61'/x'/n " happens when a wrong derivation path is set for the Ledger.

Right now when using the Ledger the confirmation message happens on the device directly for security reasons. We will explore if we can increase the timeout so you have time to read the transactions details from the Ledger.

Thank you for the feedback.

@iamkubi
Copy link
Author

iamkubi commented Mar 23, 2018

I had the correct and default derivation path set though, I selected Ledger (ETH) from the dropdown. I believe the actual issue is that when accessing the Ledger from the account discovery it tries to enumerate any address on the device that has a transaction history. Since I have multiple addresses on the device it gives an error because of the multiple accounts, and I believe the part about the derivation path is actually incorrect.

I believe this to be true, because when I select the derivation path for Metamask it works properly. The Metamask derivation path is actually the same as the Ledger derivation path, except for instead of using the account discovery it uses the Change discovery for the external chain, which then tries to enumerate every address on that account.

The derivation path for the Ledger that does not work is:
m/44'/60'/0'
The derivation path that does work for the Ledger is:
m/44'/60'/0'/0

The Ledger interface that is used by the Marketplace populates the derivation path automatically, so I'm quite positive that the derivation path was not incorrect.

@abarmat
Copy link
Member

abarmat commented Mar 27, 2018

@iamkubi we are not doing an automatic selection of the derivation path in the UI. We are just listing it in a default order and then keeps the first or the one selected by the user. I have a Ledger myself and I find that it works with the first option, if I choose the second it fails with your same error though in MyEtherWallet works with the second derivation path. Thank you we'll take a look.

@iamkubi
Copy link
Author

iamkubi commented Mar 28, 2018

Sorry, I didn't mean to say automatic detection. What I intended to say is that I'm using the pre-populated values in the dropdown. So if I select the "Ledger (ETH)" option from the drop down it says the derivation path should be m/44'/60'/0' and populates that in the box. If I choose the Metamask option from the drop down it says the derivation path should be m/44'/60'/0'/0.

I do have multiple accounts on my Ledger, so it's possible that this works as intended if you only have a single account. Regardless, I can guarantee that my derivation path was not set incorrectly because I used the pre-populated values from the drop down box.

@abarmat
Copy link
Member

abarmat commented Mar 28, 2018

On your Ledger what's the derivation path that is working now for you when you select from the dropdown? m/44'/60'/0' or m/44'/60'/0'/0

For my Ledger is the last one but in MyEtherWallet is the first one. We'll take a look at that as it doesn't look consistent.

@abarmat
Copy link
Member

abarmat commented Apr 1, 2018

We support the default account in Ledger devices at this moment. We have fixed the dropdown problem and wrong derivation path for the Ledger.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants