Inside this repository you will find code that help you check some ledger corner cases.
| device name | secure element | MCU | eth app | can login to platform |
|---|---|---|---|---|
| dev nano 2 (nikola) | 1.4.2 | 1.5 | 1.1.8 | no |
| tomek private | 1.5.5 | 1.7 | 1.1.9 | yes |
not sure if any of those are distinct from each other smth to check
- initial request for pin
- app screen
- app screen blocked
- app screen blocked request for pin
- ethereum app
- ethereum app blocked
- ethereum app blocked request for pin
TransportStatusError
message: "Ledger device: Condition of use not satisfied (denied by the user?) (0x6985)"
name: "TransportStatusError"
stack: "" <- removed
statusCode: 27013
statusText: "CONDITIONS_OF_USE_NOT_SATISFIED"
TransportStatusError
message: "Ledger device: Invalid data received (0x6a80)"
name: "TransportStatusError"
stack: "" <- removed
statusCode: 27264
statusText: "INCORRECT_DATA"
id: "U2F_5"
message: "Failed to sign with Ledger device: U2F TIMEOUT"
name: "TransportError"
originalError: Error: Sign failed at makeError (webpack:///./node_modules/u2f-api/lib/u2f-api.js?:102:14) at cbChrome (webpack:///./node_modules/u2f-api/lib/u2f-api.js?:277:14) at u2f.responseHandler_ (webpack:///./node_modules/u2f-api/lib/google-u2f-api.js?:343:3) at eval (webpack:///./node_modules/u2f-api/lib/google-u2f-api.js?:212:7)
metaData:
code: 5
type: "TIMEOUT"
message: "Sign failed"
stack: "" <- removed
stack: "" <- removed
You will get this error if you try to call eth.getAddress, web3.getAccounts, web3.sendTransaction. What's interesting if you would try to call eth.signTransaction or eth.signPersonalMessage you will be prompted to unlock device and will get a timeout.
message: "Ledger device: UNKNOWN_ERROR (0x6804)"
name: "TransportStatusError"
stack: "" <- removed
statusCode: 26628
statusText: "UNKNOWN_ERROR"
- Timeout is 30s and cannot be changed.
- It works with Firefox you have to enable in
security.webauth.u2fflag. You can access it throughabout:config. - If app is waiting for user action (approval / recjetion) you can create another actions and those would be put in queue. That might have some UI implications as we have be careful not to send double tx's.
- create timeinterval with get config