After connecting and entering my passphrase the right address is returned and connected.
I am proceeding to initiate a transaction on ETH, the transaction (call) prints correctly and I sign.
But the returned signature and address (from in the tx) is not the address I was using to connect. So the transaction fails on the node as that address is unfunded. Also, that wrong address is changing every time I am trying this. Did not happen before my last firmware update (I might have skipped a couple).
cheers
I can provide the code of the implementation (am dev)
Well, it does not match any address (as I said, it is changing every time I am trying to sign) and I would hope it is using the same address as the one I am connected with. (so using the right passphrase)
It’s a raw signature in the form of (v, r, s), where v is the parity bit and r, s are hex encoded scalars of the ECDSA signature. You need to take these three values and RLP-encode them together with the rest of the transaction data, in order to get a valid transaction packet (see e.g. here).
They are not “address” and “signature”, indeed, they have a wrong length for the address.
Even so, these should always be the same given the same transaction, but perhaps you’re updating the transaction (different nonce or so), so
If that’s not it, then I can’t advise, because “address and signature is different every time” is impossible. We’d have to look into possibilities like (a) your Trezor being broken, (b) you have faulty RAM corrupting your data, (c) you have a virus that happens to corrupt the data, and similar weird magics.