Kayos
9439f5a227
feat(wallet): transaction builder, UTXO selection, and status poller (Task 4)
## What's new
### API module additions
- ProtocolParameters: data class for fee calculation params
- PaymentRequest: transaction request model
- SignedTransaction: signed transaction result model
- TransactionBuilder: interface for building/signing transactions
- PaymentStatusPoller: interface for polling tx confirmation
### CardanoClient updates
- Added getProtocolParameters() to interface
- Implemented in KoiosCardanoClient with retry logic
### Implementation
- DefaultTransactionBuilder: builds and signs transactions using cardano-client-lib
- Largest-first UTXO selection
- Fee calculation via protocol parameters
- Min UTXO validation (1 ADA minimum)
- Secure key handling (zeroed after use)
- DefaultPaymentStatusPoller: polls Koios for tx confirmation
- 10s polling interval, 60 attempts max (~10 minutes)
- Emits TxStatus.PENDING -> CONFIRMED/FAILED flow
### Test module
- FakeTransactionBuilder: configurable success/failure responses
- FakePaymentStatusPoller: configurable status sequences
- Updated FakeCardanoClient with getProtocolParameters()
### Unit tests
- TransactionBuilderTest: UTXO selection, fee calculation, error handling
- PaymentStatusPollerTest: polling behavior, error recovery