keepkey / keepkey-desktop

KeepKey Desktop Application
https://keepkey.com
GNU General Public License v3.0
6 stars 5 forks source link

Wallet connect leads to loss of GUI #667

Open nuke-web3 opened 5 months ago

nuke-web3 commented 5 months ago

Attempting to use https://ethdenverapply.tokenproof.xyz/ with https://www.keepkey.com/dapps via wallet connect leads to the desktop application having a full black screen as soon as the wc code is pasted into the connection prompt of the app. Both when accessed in the app and a seporate browser.

There is nothing in the stdout logs I can see that indicates an error, as soon as the wc code is provided, a KEYRING EVENT KeepKey ..... TRANSPORT EVENT occurs indicating that wallet connect seems to be receiving data to start an approval (I am able to connect to other dapps like uniswap fine)

Happy to provide more info as needed, but I would ask someone does attempt to connect to that dapp to see if it's just me :sweat_smile:

nuke-web3 commented 5 months ago

So I tired the connect from what appears to be the shapeshift interface, not the desktop app, and it does connect as expected:

image

Unclear what the issue is with the top right login that makes the wc fail. Or why both are presented...

BitHighlander commented 5 months ago

Ah, yes, aware of some funkyness in our wallet-connect, will be fixing soon

nuke-web3 commented 4 months ago

New issue: I can use the same wallet connect method but then fail to login with signed message:

TRANSPORT EVENT {
  date: undefined,
  message_type: 'ETHEREUMGETADDRESS',
  message_enum: 56,
  message: {
    addressNList: [ 2147483692, 2147483708, 2147483648, 0, 0 ],
    showDisplay: false
  },
  proto: {
    addressNList: [ 2147483692, 2147483708, 2147483648, 0, 0 ],
    showDisplay: false
  },
  from_wallet: false
}
writeDevice: digit
readDevice: digit
KEYRING EVENT KeepKey 
TRANSPORT EVENT {
  date: undefined,
  message_type: 'ETHEREUMADDRESS',
  message_enum: 57,
  message: {
    address: '...',
    addressStr: '...'
  },
  proto: {
    address: '...',
    addressStr: '...'
  },
  from_wallet: true
}
body:  {
  address: '...',
  message: 'large hex'
}
account:  { addressNList: [ 2147483692, 2147483708, 2147483648, 0, 0 ] }
KEYRING EVENT KeepKey 
TRANSPORT EVENT {
  date: undefined,
  message_type: 'ETHEREUMSIGNMESSAGE',
  message_enum: 108,
  message: {
    addressNList: [ 2147483692, 2147483708, 2147483648, 0, 0 ],
    message: 'about 1500 chars'
  },
  proto: {
    addressNList: [ 2147483692, 2147483708, 2147483648, 0, 0 ],
    message: 'about 1500 chars'
  },
  from_wallet: false
}
writeDevice: about 2300 digits
readDevice: ...
KEYRING EVENT KeepKey
TRANSPORT EVENT {
  date: undefined,
  message_type: 'FAILURE',
  message_enum: 3,
  message: { code: 1, message: 'Could not parse protocol buffer message' },
  proto: { code: 1, message: 'Could not parse protocol buffer message' },
  from_wallet: true
}
KEYRING EVENT KeepKey FAILURE
TRANSPORT EVENT {
  date: undefined,
  message_type: 'FAILURE',
  message_enum: 3,
  message: { code: 1, message: 'Could not parse protocol buffer message' },
  from_wallet: true,
  proto: undefined
}

Perhaps the message to sign is too big?

tokenproof.xyz wants you to sign in with your Ethereum account: 0x... Welcome to tokenproof. Signing is the only way we can truly know that you are the owner of the wallet you are connecting. Signing is a safe, gas-less transaction that does not in any way give tokenproof permission to perform any transactions with your wallet. URI: https://tokenproof.xyz/enrollment Version: 1 Chain ID: 137 Nonce: ... Issued At: 2024-02-13T18:32:22.418Z Request ID: ...

Also see the chain ID of 137, this is polygon I belive and what I am trying to use (ETHDenver signup). In this instance do I need to authorize explicitly in the connection account selection model Eth mainnet to sign? Trying to give access to multiple networks yields the same errors.