OneKeyHQ / OneKeyHQ/firmware-pro

Signing Using Forge with Trezor Compatibility Fails

Open
#415 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C
Stars
32
Forks
20
PR merge metrics
No merged PRs in 30d

Description

Describe the bug
Signing transaction using OneKey Pro's trazor compatibility and Foundry script call fails with unexpected interaction request: Button

It seems there may be a compatibility issue between OneKey firmware and the signer-trezor crate (used by Foundry), particularly around multi-step interactive signing flows.

Firmware version and revision
OneKey Pro, FW 4.19.0, Bluetooth 2.3.3, Bootloader 2.8.3

Desktop/smartphone setup (please complete the following information):

  • Wallet software: Foundry Suite (forge, cast) 1.4.4-stable
  • OS: macOS ARM
  • Browser N/A

To Reproduce
Steps to reproduce the behavior:

  1. Run forge script with trezor support forge script ** --trezor using their latest stable version
  2. The wallet shows two prompts on-device; first passes, second fails after approval.

Expected behavior
The transaction should be signed and sent using forge script.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Originally this issue has been reported to Foundry and Trezor but both indicated it is likely not on their side.

https://github.com/foundry-rs/foundry/issues/13490
https://github.com/trezor/trezor-firmware/issues/6485

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure with forge script ** --trezor on the reported OneKey Pro firmware and record the two device prompts. Read the linked Foundry issue #13490 and Trezor issue #6485 for compatibility findings. Done means the second approval completes and the transaction is signed and sent.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, rust
Domain
blockchain, embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.