🚀 Feature - Trezor 지갑 추가, 서명 가능하도록 기능 추가
📝 Description
구현 방식 설계 및 테스트 중...
이 과정에서 SubTask와 중간 결과물, 예상 시간, Due Date가 결정될 예정입니다.
Bitbox 구현이 완료되면 많은 코드들을 재활용할 수 있을 것으로 판단됩니다.
안드로이드만 사용 가능 - HID
HID가 담당하는 것
connect
write 64-byte packet
read 64-byte packet
disconnect
Bitbox 코드 재사용 vs 재사용 불가 범위
재사용 가능:
HidTransport
USB 권한 처리
device scan/open/close
endpoint read/write
64-byte read/write loop
새로 구현 필요:
Trezor packet framing
Trezor .proto Dart generation
Trezor message type mapping
Trezor client state machine
Trezor Bitcoin signing flow
남은 작업의 핵심
- Trezor의 .proto 파일을 Dart 코드로 생성
- TrezorClient 구현 (Initialize, Features, GetPublicKey, SignTx 등)
- Trezor의 서명 플로우(TxRequest ↔ TxAck) 구현
iOS - 블루투스로 통신
1. 재사용 가능성이 높은 부분:
Flutter App
↓
BLE Transport
↓
read / write
↓
device connection lifecycle
BitBox iOS BLE 연동에서 만든 아래 코드는 재사용 가능성이 큽니다.
재사용 가능:
- BLE 스캔
- 기기 필터링 구조
- 연결 / 재연결 처리
- MTU / characteristic read-write 처리
- notify 구독
- timeout / retry 처리
- Flutter ↔ iOS native bridge
- 연결 상태 UI
- 권한 요청 UI
- background/foreground lifecycle 처리
2. 일부 수정해서 재사용 가능한 부분
BitBox와 Trezor는 둘 다 BLE를 써도, GATT service / characteristic UUID가 다를 가능성이 높습니다.
수정 필요:
- BLE service UUID
- characteristic UUID
- packet size
- write type
- notify response parsing
- pairing/bonding 방식
- 기기 검색 조건
- 모델명 / firmware version 판별
BleTransport 인터페이스는 재사용하되, 실제 구현은 분리하기
abstract class HardwareBleTransport {
Future<void> connect();
Future<void> write(Uint8List data);
Stream<Uint8List> get messages;
Future<void> disconnect();
}
class BitBoxBleTransport implements HardwareBleTransport {}
class TrezorBleTransport implements HardwareBleTransport {}
3. 새로 개발해야 하는 부분
BLE Transport 재사용 가능
Trezor THP 신규 개발 필요
Trezor protobuf 신규 개발 필요
Trezor signing flow 신규 개발 필요
✅ To Do List
UI/UX는 아래 작업 과정 중 논의하면서 확정하겠습니다
📚Etc
특이사항
🚀 Feature - Trezor 지갑 추가, 서명 가능하도록 기능 추가
📝 Description
구현 방식 설계 및 테스트 중...
이 과정에서 SubTask와 중간 결과물, 예상 시간, Due Date가 결정될 예정입니다.
Bitbox 구현이 완료되면 많은 코드들을 재활용할 수 있을 것으로 판단됩니다.
안드로이드만 사용 가능 - HID
HID가 담당하는 것
connect
write 64-byte packet
read 64-byte packet
disconnect
Bitbox 코드 재사용 vs 재사용 불가 범위
재사용 가능:
HidTransport
USB 권한 처리
device scan/open/close
endpoint read/write
64-byte read/write loop
새로 구현 필요:
Trezor packet framing
Trezor .proto Dart generation
Trezor message type mapping
Trezor client state machine
Trezor Bitcoin signing flow
남은 작업의 핵심
iOS - 블루투스로 통신
1. 재사용 가능성이 높은 부분:
BitBox iOS BLE 연동에서 만든 아래 코드는 재사용 가능성이 큽니다.
재사용 가능:
2. 일부 수정해서 재사용 가능한 부분
BitBox와 Trezor는 둘 다 BLE를 써도, GATT service / characteristic UUID가 다를 가능성이 높습니다.
수정 필요:
BleTransport 인터페이스는 재사용하되, 실제 구현은 분리하기
3. 새로 개발해야 하는 부분
BLE Transport 재사용 가능
Trezor THP 신규 개발 필요
Trezor protobuf 신규 개발 필요
Trezor signing flow 신규 개발 필요
✅ To Do List
UI/UX는 아래 작업 과정 중 논의하면서 확정하겠습니다
📚Etc
특이사항