Comments (2)
This sounds like an issue I solved for my Nano (the currency) app. The underlying problem here is that the Chrome U2F extension has a hard-coded timeout of 31 seconds (if memory serves). When it hasn't received an answer from the dongle during that time it will kill the request.
There is a way to allow for longer requests, but it requires support from the app running on the Ledger device. The trick is to return the BUSY U2F status code before the 31 second hard-timeout. That will force the U2F extension to retry the request. But this also means that the Ledger app needs to be able to map the 2nd incoming request to the 1st one that's still ongoing (or that recently finished).
I guess the best way would be to just document this in setExchangeTimeout
and warn ledger.js users that most apps out there don't handle timeouts of more than 30 seconds well.
Here are the relevant Nano [currency] app code snippets that allow for longer requests:
- Returning the BUSY status code - roosmaa/blue-app-nano/src/main.c#L40-L53
- Triggering a timeout before the 31 second force-kill - roosmaa/blue-app-nano/src/main.c#L125-L133
- Mapping the request back to the ongoing one - roosmaa/blue-app-nano/src/nano.c#L46-L65
from ledgerjs.
it will be more and more recommended to use WebUSB/WebHID over U2F.
from ledgerjs.
Related Issues (20)
- Typos in @ledgerhq/hw-app-algorand HOT 1
- Add Jarvis Stable tokens HOT 1
- Example of resolveTransaction on hw-app-eth/README.md incorrect HOT 1
- TransportError: Txn version not supported - Polkadot - Nano S Ledger
- Large bundle size due to @ledgerhq/cryptoassets dependency
- getWalletPublicKey with {verify:true} throws UNKNOWN_ERROR for non-standard paths
- CACHE GOLD token appears as delisted
- Error on signTransaction from @ledgerhq/hw-app-eth for Binance Smart Chain HOT 4
- signP2SHTransaction large fee vulnerability
- signP2SHTransaction TransportStatusError: Ledger device: Internal error, please report (0x6f00) HOT 1
- Mumbai Polygon not working
- Error when installing dependencies HOT 1
- BTT (NEW) Not Supported - Balance always shows 0
- Connection to the Ledger Nano S works locally but not on deployed version HOT 2
- Bump rxjs to v7
- [error][macOS][M1][Electron][hid]
- Question about using @ledgerhq/hw-transport-mocker
- suicide pin absent HOT 2
- TransportNodeHID throwing error
- Steal my ape HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ledgerjs.