Open dtrammell opened 2 years ago
This is dependent on the device you have created the wallet with. Can you check the type of the device? You can even change the type after the fact.
This wallet has 6 devices and it provides no USB method for any of them. They are Trezor T, Trezor One, Ledger, Coldcard, KeepKey, and Cabo Vault. I have used these devices with this wallet before, just on a different computer and instance of Specter Desktop. This is a new computer and new installation of Specter where I have imported the wallet using the backup JSON file.
So, can you check the type of your devices?
If it's the wrong type, you should have a workaround and we seem to have a bug in the import mechanism. If it's not the wrong type, i'm still clueless why this happens.
Ah! I misunderstood what you were asking me to check. This indeed appears to be the problem. All of the imported devices are of type "Other". After updating the devices to the correct type, the problem has been resolved. Sounds like there is a bug in the import mechanism.
I checked it and i agree that this is not so optimal:
I have been trying to fix this issue in https://github.com/relativisticelectron/specter-desktop/tree/add`device`type but I am running into inconsistent namings, that make it extremely confusing and error prone. I am however hesitant to make anything more consitent because it would break backwards-compatibility of imports:
label
alias
label
and name
What is the difference between label
, name
, alias
and what would be a way to make this more consistent?
EDIT: I think the device/wallet export/import code needs cleanup.. e.g.
EDIT2
I would suggest to put a specter version in https://github.com/cryptoadvance/specter-desktop/blob/40357018e539ccd09089801fbb0fb574e1e334f8/src/cryptoadvance/specter/wallet.py#L882 and all other exports. That allows to write migration functions that kick in only if needed (this worked very well for me in the past).
Thank you for your work here. It's difficult for me to dive in all the details you collected here.
What is the difference between label, name, alias and what would be a way to make this more consistent? I haven't been involved into the decisions about any of these conventions but i'm happy and definitely think we should make them more consistent. I don't think
label
was a good choice.name
andalias
made some sense for wallets (if a wallet already exists with that name on the core-node) but i have no idea why devices need an alias.
In general, i think we should tidy that up here. The specter-version inside the backupo-jsons is a good step for that. But we also need to tidy up the internal representation (although they are often quite identical). For that, i have a (pretty underused) Migration Framework which i did at some point in time. It's not very well documented yet but in short:
migration_0002.py
in util/migrations
v1.10.3
migration_data.json
.
If you dig into this further, i'd love to write the foundation of a first migration-test for this.
I'm using a brand new Specter installation on a brand new Windows 11 laptop. I have verified that the computer can see my hardware USB signing device and so can Specter. When I go to sign a transaction, the Sign Over USB option is missing from the list of signing options.
Specter Version: v1.9.2
Windows: Edition Windows 11 Home Version 21H2 OS build 22000.652 Experience Windows Feature Experience Pack 1000.22000.652.0