fix(trezor,activation): add PrivateKeyPolicy to AuthOptions#75
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the WalkthroughThe changes introduce support for a Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant ActivationManager
participant AuthOptions
participant ActivationStrategyFactory
participant Activator
participant Protocol
User->>ActivationManager: activateAssets()
ActivationManager->>AuthOptions: get privKeyPolicy
ActivationManager->>ActivationStrategyFactory: createStrategy(client, privKeyPolicy)
ActivationStrategyFactory->>Activator: construct with privKeyPolicy
ActivationManager->>Activator: activate()
Activator->>Protocol: defaultActivationParams(privKeyPolicy)
Protocol-->>Activator: ActivationParams with privKeyPolicy
Activator-->>ActivationManager: Activation result
ActivationManager-->>User: Activation status
Suggested labels
Suggested reviewers
Poem
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
|
Visit the preview URL for this PR (updated for commit 2e21ecc): https://komodo-defi-sdk--pr75-hotfix-trezor-privke-ssv0dwf7.web.app (expires Fri, 13 Jun 2025 11:47:51 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 7f9f5ac39928f333b6e8fcefb7138575e24ed347 |
69e4f9e to
3fab8c3
Compare
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (8)
packages/komodo_defi_sdk/lib/src/activation/activation_manager.dart(3 hunks)packages/komodo_defi_sdk/lib/src/activation/base_strategies/activation_strategy_factory.dart(1 hunks)packages/komodo_defi_sdk/lib/src/activation/protocol_strategies/qtum_activation_strategy.dart(3 hunks)packages/komodo_defi_sdk/lib/src/activation/protocol_strategies/utxo_activation_strategy.dart(4 hunks)packages/komodo_defi_types/lib/src/auth/auth_options.dart(1 hunks)packages/komodo_defi_types/lib/src/coin_classes/protocol_class.dart(4 hunks)packages/komodo_defi_types/lib/src/protocols/erc20/erc20_protocol.dart(1 hunks)packages/komodo_defi_types/lib/src/protocols/utxo/utxo_protocol.dart(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: setup
🔇 Additional comments (21)
packages/komodo_defi_types/lib/src/protocols/utxo/utxo_protocol.dart (1)
31-37: LGTM! Good integration of PrivateKeyPolicy parameter.The addition of the optional
privKeyPolicyparameter with a sensible default value is well-implemented. The parameter is properly propagated through thecopyWithmethod call.Note that the existing TODO comment (lines 25-30) is particularly relevant to this PR's objectives, as it specifically mentions Trezor activation parameter configuration needs.
packages/komodo_defi_sdk/lib/src/activation/base_strategies/activation_strategy_factory.dart (3)
1-1: Import addition is appropriate.The new import for
komodo_defi_rpc_methodsis necessary to access thePrivateKeyPolicytype.
7-10: Method signature update is well-designed.The addition of the
PrivateKeyPolicy privKeyPolicyparameter to the factory method enables dynamic configuration based on user authentication settings.
16-16: Selective parameter passing is correct.Only
UtxoActivationStrategyandQtumActivationStrategyconstructors receive theprivKeyPolicyparameter, which is appropriate as other activation strategies (ERC20, Tendermint, etc.) likely don't require this configuration.Also applies to: 20-20
packages/komodo_defi_sdk/lib/src/activation/activation_manager.dart (5)
6-6: Import addition is necessary.The new import for
komodo_defi_rpc_methodsis required to access thePrivateKeyPolicytype.
21-21: Constructor simplification is appropriate.Removing the static
_activatorinitialization aligns with the new dynamic creation pattern.
100-110: Dynamic privKeyPolicy retrieval is well-implemented.The approach of retrieving the current user's
privKeyPolicyfrom authentication options ensures that each activation uses the most up-to-date user settings. The fallback toPrivateKeyPolicy.contextPrivKeyprovides a sensible default.
107-110: Dynamic activator creation improves flexibility.Creating a new activator instance per activation with the current user's
privKeyPolicyis a significant architectural improvement over the previous static approach. This ensures that changes to user authentication settings are immediately reflected in activation behavior.
112-115: Activator usage is consistent.The call to
activator.activate()maintains the same interface while benefiting from the dynamic configuration.packages/komodo_defi_sdk/lib/src/activation/protocol_strategies/qtum_activation_strategy.dart (4)
1-1: Import addition is necessary.The new import for
komodo_defi_rpc_methodsis required to access thePrivateKeyPolicytype.
6-8: Constructor update is well-implemented.The addition of the
privKeyPolicyparameter to the constructor and its storage as a final field follows good Dart practices and maintains consistency with the activation strategy pattern.
40-42: Parameter propagation is correct.Passing the stored
privKeyPolicyto thedefaultActivationParamsmethod ensures that the QTUM activation uses the appropriate private key policy configuration.
108-108: Return type annotation simplification is a minor improvement.The change from a more verbose named record type annotation to the standard Dart record syntax is a cosmetic improvement that doesn't affect functionality.
packages/komodo_defi_types/lib/src/protocols/erc20/erc20_protocol.dart (1)
34-43: Well-structured separation of concerns.Good approach to separate token handling into a dedicated method while keeping the default activation params focused on the private key policy.
packages/komodo_defi_types/lib/src/auth/auth_options.dart (3)
10-10: Good default value choice.Using
PrivateKeyPolicy.contextPrivKeyas the default is a sensible choice for backward compatibility.
37-38: Properly integrated into equality comparison.The
privKeyPolicyfield is correctly added to thepropsgetter for proper equality comparison.
18-20:Details
✅ Verification successful
Verify the PrivateKeyPolicy enum structure.
The JSON parsing assumes that
PrivateKeyPolicy.trezorexists and that the enum has anidproperty for serialization. Ensure these properties are correctly defined in the enum.
🏁 Script executed:
#!/bin/bash # Verify PrivateKeyPolicy enum definition and properties ast-grep --pattern 'enum PrivateKeyPolicy { $$$ }' # Also search for the enum definition more broadly rg -A 10 "enum PrivateKeyPolicy"Length of output: 1558
PrivateKeyPolicy enum validated
The
PrivateKeyPolicyenum inkomodo_defi_rpc_methodsdefines both thetrezorcase and aString get idaccessor, so the JSON parsing (priv_key_policy == 'Trezor') and subsequent serialization via.idwill work as expected. No changes required.packages/komodo_defi_types/lib/src/coin_classes/protocol_class.dart (1)
139-144: Excellent base implementation for PrivateKeyPolicy support.The method correctly accepts the
privKeyPolicyparameter with a sensible default and applies it usinggenericCopyWith. This provides a solid foundation for subclasses to inherit or override.packages/komodo_defi_sdk/lib/src/activation/protocol_strategies/utxo_activation_strategy.dart (3)
6-8: Clean integration of PrivateKeyPolicy parameter.The constructor properly accepts and stores the
privKeyPolicyparameter, enabling its use throughout the activation strategy.
38-42: Consistent policy application in progress reporting.Good practice to include the
privKeyPolicywhen generating activation params for progress details, ensuring consistency throughout the activation flow.
61-61: Proper policy propagation to RPC call.The
privKeyPolicyis correctly passed to thedefaultActivationParamsmethod for the actual RPC activation call, ensuring the policy is applied where it matters most.
of has type annotations Co-authored-by: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com>
commit 0303d39 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Fri Aug 1 15:52:14 2025 +0200 chore: switch KDF to `dev` Switch KDF to `dev` to allow usage of unreleased changes (particularly related to fees/priorities) commit 1fae456 Author: Francois <takenagain@users.noreply.github.com> Date: Fri Aug 1 17:46:34 2025 +0200 fix(market-data-price): try fetch current price from komodo price repository first before cex repository (#167) * fix(market-data-manager): default to KomodoPriceRepository Binance CexRepository supports a limited number of symbols and no longer lists KMD price history after the delisting * refactor(market-data-manager): deduplicate and clarify intent * refactor(review): remove zero check and add log statements also simplify the priceIfKnown function commit f8064f2 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Fri Aug 1 15:50:09 2025 +0200 fix(types): comprehensive bip39 validation commit 60e5f2e Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Wed Jul 30 21:18:06 2025 +0200 feat: offline private key export (#160) * feat(hd): integrate hd privkey export * chore: roll KDF * chore: enable tendermint hd support * refactor(rpc): Misc rpc class formats/fixes * feat: private keys + fixed Tendermint * refactor(sdk): implement co-ordinated activation manager * fix: invalid path error Possible fix for paths containing special characters on Windows. * fix: remove unnecessary activation logging * chore(pr): apply formatting and fixes to PR Apply Dart formatting and fixes to all files modified in this PR. * feat(example): integrate private key export to example app * chore: roll KDF * chore: roll KDF * feat: fee estimation * fix(build): make re-build failure stand out * chore: roll KDF Roll KDF for optimisation for key export time. * feat(tx): further progress on fee/priority integration * chore: roll KDF fro `v2.6.1` TODO: Change from CI builds to GitHub release when artefacts are available. * fix(api): disable fee/priority features Disable fee/priority features because they are not included in the pending KDF release. They should be included in the following release (likely `2.7.0`) * fix: Temporarily disable fee/priority features Temporarily disable fee/priority features until the feature is available in the API (KDF) * feat: add memo support protocol value * fix: resolve incorrect `unban_pubkeys` parsing * fix: resolve regression in legacy withdrawal manager * feat(security): Include failed activations in privkey export * docs(build): expand asset build failure explination * fix: tweak private key type json to match class properties * fix(RPC): fix new address generation types * chore: bump version tags * fix: apply Claude PR review suggestions commit 834b83f Merge: 1526a23 a41f81f Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Wed Jul 30 20:12:37 2025 +0200 Merge pull request #165 from KomodoPlatform/migrate/dragon_logs_flutter feat: migrate dragon_logs_flutter to monorepo packages commit a41f81f Merge: 1526a23 a6a9a6e Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Wed Jul 30 18:19:07 2025 +0200 Merge commit 'a6a9a6ef4a308f95be1fafbb018449f198d8b4db' as 'packages/dragon_logs' commit a6a9a6e Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Wed Jul 30 18:19:07 2025 +0200 Squashed 'packages/dragon_logs/' content from commit 399ef1d1 git-subtree-dir: packages/dragon_logs git-subtree-split: 399ef1d17034029155b63b6bc1d9ab0a5a0fbb04 commit 1526a23 Merge: dc093db acda1d9 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon Jul 28 21:10:37 2025 +0200 Merge branch 'codex/implement-pubkey-unbanning-feature' into dev commit acda1d9 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon Jul 28 21:07:58 2025 +0200 fix(ui): resolve stale asset balance widget commit dc093db Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Mon Jul 28 20:18:02 2025 +0200 feat(pubkeys): add unbanning support (#161) * feat(pubkeys): add unbanning support * Update packages/komodo_defi_rpc_methods/lib/src/rpc_methods/wallet/unban_pubkeys.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix(types): export missing RPC types --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> commit 7d7e888 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon Jul 28 20:14:54 2025 +0200 fix(types): export missing RPC types commit 9621aa2 Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Mon Jul 28 20:00:48 2025 +0200 Update packages/komodo_defi_rpc_methods/lib/src/rpc_methods/wallet/unban_pubkeys.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> commit 4a3d9c8 Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Mon Jul 28 18:33:47 2025 +0200 feat(pubkeys): add unbanning support commit b18af0b Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Sun Jul 27 16:59:11 2025 +0200 feat(ui): add hero support for coin icons (#159) * feat(ui): add hero support for asset icons * fix(ui): Hero Tag Ignored in AssetLogo Placeholder * fix: Move Hero widget outside Opacity widget for proper animation continuity - Fix AssetLogo.placeholder to pass heroTag parameter to _AssetLogoPlaceholder - Move Hero widget outside Opacity widget in AssetIcon to prevent animation interference - Ensures Hero animations work correctly for both asset icons and placeholder logos - Maintains visual continuity by placing Hero widgets as outermost components commit c2d985a Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Fri Jul 25 15:20:29 2025 +0200 feat(fees): integrate fee management (#152) * feat(fees): add fee management support * docs(sdk): Document withdrawal manager Document withdrawal manager and implement PR review comments. * docs(sdk): Add documentation for fee manager commit e1a63e2 Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Fri Jul 25 11:15:26 2025 +0200 feat(activation): disable tx history when using external strategy (#151) * feat(activation): disable kdf tx history when using external strategy * docs: clarify mm2 history helper (#154) commit 74d8eff Author: Francois <takenagain@users.noreply.github.com> Date: Thu Jul 24 18:30:54 2025 +0200 Revert "fix(activation): track activation status to avoid duplicate activation requests (#80)" (#153) This reverts commit abd3de0. commit 7eefbd8 Author: dragonhound <35845239+smk762@users.noreply.github.com> Date: Mon Jul 21 20:24:39 2025 +0800 adds `max_connected: 1` to utxo activation (#148) commit b8ff967 Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Mon Jul 21 14:24:16 2025 +0200 Revert "feat(rpc): support max_connected on activation (#149)" (#150) This reverts commit eac2b8f. commit eac2b8f Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Mon Jul 21 13:11:54 2025 +0200 feat(rpc): support max_connected on activation (#149) * feat(rpc): support max_connected on activation * fix: limit max connections to 1 commit bb57e87 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Sun Jul 20 00:15:49 2025 +0200 fix(build): update config format commit 6534d47 Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Sun Jul 20 00:04:09 2025 +0200 feat(wallet_build_transformer): add flexible CDN support (#144) commit abd3de0 Author: Francois <takenagain@users.noreply.github.com> Date: Thu Jul 17 18:54:01 2025 +0200 fix(activation): track activation status to avoid duplicate activation requests (#80) * Track activation streams to avoid duplicate requests * fix activation stream propagation * fix(activation): provide historical states to late stream subscribers * fix(activation): use asset lookup in parent grouping using the asset itself as a placeholder led to assertion errors being thrown if the child asset is activated individually. commit 9351c22 Author: Francois <takenagain@users.noreply.github.com> Date: Wed Jul 16 19:55:00 2025 +0200 feat(ui): allow customizing SourceAddressField header (#135) * feat(ui): make source address field customizable * refactor: remove content override from SourceAddressField commit a521a80 Author: Francois <takenagain@users.noreply.github.com> Date: Wed Jul 16 14:37:28 2025 +0200 fix(withdraw): revert temporary IBC channel type changes (#136) #63 commit a44acf3 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon Jul 14 16:14:45 2025 +0200 fix(ui): make Divided button min width commit aa51985 Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Mon Jul 7 17:15:04 2025 +0200 feat: protect SDK after disposal (#116) * feat: prevent SDK reuse after disposal * refactor(sdk): promote dispose helper (#127) commit 9cf9e37 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Jul 7 15:08:29 2025 +0200 chore: roll KDF version to commit fbab8ec for branch main (#124) * chore: roll KDF version to commit fbab8ec for branch main * chore: update binaries * chore: roll coins assets --------- Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com> Co-authored-by: CharlVS <77973576+CharlVS@users.noreply.github.com> commit ce68c7a Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Sat Jul 5 19:24:33 2025 +0200 feat(seed): update seed node format (#87) * feat(seed): update seed node format with netid * Update packages/komodo_defi_types/lib/src/seed_node/seed_node.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat(core): use constant netid in seed node filtering (#111) * fix: add missing imports/exports --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> commit d7b6ede Author: Francois <takenagain@users.noreply.github.com> Date: Sat Jul 5 18:37:15 2025 +0200 feat(pubkey): add streamed new address API with Trezor confirmations (#123) * feat(pubkey): add streamed new address API with Trezor confirmations (#117) * Implement streamed new address state with confirmations * refactor: remove unused imports and make polling interval configurable * refactor: move confirm address details to types (#120) * refactor: move confirm address details to types * refactor: fix warnings * feat(example): use streamed address creation (#119) * Use streamed address generation * refactor: add cancel action and use normal stream rather than broadcast * chore: add json conversion support to `NewAddressState` * fix(asset-filter): exclude BCH and yield address creation error states * refactor: add task description parser and try cancel task if user cancel commit d6d83c6 Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Fri Jul 4 18:30:50 2025 +0200 fix(local_auth): ensure kdf running before wallet deletion (#118) commit cda8498 Author: Francois <takenagain@users.noreply.github.com> Date: Thu Jul 3 20:44:32 2025 +0200 feat(ui): add helper constructors for AssetLogo from legacy ticker and AssetId (#109) * feat(ui): add AssetLogo constructors * fix: correct protocol overlay for child assets (#115) * fix(example): use parent protocol for child assets in trailing icon * feat(ui): add placeholder asset logo used in legacy maker and taker forms in KW * feat(ui): add asset exists helper functions used in KW fiat onramp form * refactor: clarify doc comments and rename constructors * fix(assets): tendermint token parent parsing logic - place tendermint before tendermint token - replace subclass check with canBeParentOf * refactor(asset-logo): use theme `disabledColor` in place of Opacity --------- Co-authored-by: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> commit 3dc37d0 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Thu Jul 3 19:16:58 2025 +0200 add(ui): enhance TrendPercentageText Enhance `TrendPercentageText` with expanded use cases and automatic animations. commit c5c30d4 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Wed Jul 2 18:45:02 2025 +0200 fix: resolve bug with dispose logic TODO(@CharlVS): Consider separating the KDF-related concerns of dispose into a separate method named terminate(). This helps differentiate between KDF resource clean-up and UI resource clean-up commit 9d63c56 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Wed Jul 2 15:34:14 2025 +0200 add(auth): auth stream method with initial value commit 81ba643 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Wed Jul 2 11:09:33 2025 +0200 fix: stop KDF when disposed commit c8f27a7 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Wed Jul 2 10:33:27 2025 +0200 fix: SIA support Disable SIA as it is not yet supported. The SIA activation strategy will be merged soon, but this depends on a specific branch of KDF and will likely still be very long before it is available in a public release of KDF. commit a02c4a2 Author: Francois <takenagain@users.noreply.github.com> Date: Wed Jul 2 09:48:09 2025 +0200 fix(trezor): improve trezor error handling (#110) * chore(deps): bump logging version to 1.3.0 as in komodo-wallet * fix(trezor): sign out of existing wallet if initialisation fails fixes the following scenarios - trezor device not found - trezor device not selected and other edge cases that may cause trezor init or auth to fail, ensuring that the user already exists error is not thrown * feat(trezor): add priv_key_policy to tendermint, erc20, and zhtlc params * fix(trezor): yield error states rather than exceptions in streams * feat(activation,rpc): task-based eth activation * feat(asset-manager): asset filter strategy based on current wallet (#107) * feat(asset-manager): asset filter strategy based on current wallet * featasset-manager): limit trezor asset filter to utxo and qtum only * refactor: add error response check and evm subclasses set coderabbitai suggestions * feat: add name-based filter strategy (#108) * refactor: update authOptions references to use walletId * refactor(asset-filter): rename `name` to `strategyId` * ci(example): re-enable dry build run commit 8a1daea Author: Francois <takenagain@users.noreply.github.com> Date: Wed Jul 2 09:45:18 2025 +0200 feat(ui): adjust error display layout for narrow screens (#114) * chore(deps): bump logging version to 1.3.0 as in komodo-wallet * fix(trezor): sign out of existing wallet if initialisation fails fixes the following scenarios - trezor device not found - trezor device not selected and other edge cases that may cause trezor init or auth to fail, ensuring that the user already exists error is not thrown * feat(trezor): add priv_key_policy to tendermint, erc20, and zhtlc params * fix(trezor): yield error states rather than exceptions in streams * feat(activation,rpc): task-based eth activation * feat(asset-manager): asset filter strategy based on current wallet (#107) * feat(asset-manager): asset filter strategy based on current wallet * featasset-manager): limit trezor asset filter to utxo and qtum only * refactor: add error response check and evm subclasses set coderabbitai suggestions * feat: add name-based filter strategy (#108) * refactor: update authOptions references to use walletId * refactor(asset-filter): rename `name` to `strategyId` * refactor: extract show details button * Refactor error display components * refactor: convert toggle to stateless widget * feat(ui): add toggle for icon and expose breakpoint * fix(ui): button interactivity no-op when showDetailsOverride is true Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * refactor: remove unnecessary spread operator --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> commit 5f7da9e Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon Jun 30 15:34:29 2025 +0200 ci: skip melos init Disabled melos generation due to circular dependency issues caused by komodo_defi_rpc_methods and komodo_defi_types packages. This will be revisited in the. The app should already have the necessary generated files committed to the repository. If this is not the case, we have bigger issues. commit f6f5820 Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Mon Jun 30 15:25:59 2025 +0200 add: Wallet deletion example and fix global error parsing flaw (#99) * feat(auth): add wallet deletion * feat(example): add wallet deletion * add: wallet deletion for Trezor wallets * chore: re-generate melos * refactor: fix flaw in response error parsing Fix flaw in response error parsing where the custom error parser function would never be called because of the inheritence structure. * feat(example): move delete wallet action (#104) commit fafc707 Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Mon Jun 30 14:57:00 2025 +0200 feat(asset): add message signing support flag (#105) commit 3701f49 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon Jun 30 14:41:23 2025 +0200 fix: kdf hashes commit a2face7 Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Mon Jun 30 14:16:56 2025 +0200 chore(kdf): update build config to latest staging (#103) commit 41fb498 Author: Francois <takenagain@users.noreply.github.com> Date: Mon Jun 30 11:45:18 2025 +0200 chore(deps): bump komodo-defi-framework to a25aea614 (#102) latest staging with hotfix for trezor coin activation commit 7dfe68b Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Fri Jun 27 14:58:42 2025 +0200 chore: roll KDF (#100) commit e5d022b Author: Francois <takenagain@users.noreply.github.com> Date: Thu Jun 26 16:41:13 2025 +0200 fix(pubkey-strategy): use new PrivateKeyPolicy constructors for checks (#97) commit 24d09fd Author: Francois <takenagain@users.noreply.github.com> Date: Wed Jun 25 16:08:18 2025 +0200 fix(activation): eth PrivateKeyPolicy enum breaking changes (#96) * fix(rpc,activation): breaking EVM private key policy enum change * fix(activation-params): use pascal case for to and from json * test(example): add asset activation integration test * test(example): run in zone to catch microtask and uncaught exceptions * fix(auth): merge issues and update privkeypolicy comparisons * docs: expand doc comments and remove runzonedguarded commit 2a50691 Author: Francois <takenagain@users.noreply.github.com> Date: Tue Jun 24 18:52:35 2025 +0200 feat(sdk): add trezor support via RPC and SDK wrappers (#77) * fix(trezor,activation): add PrivateKeyPolicy to AuthOptions and beyond * feat(rpc): add trezor init task RPCs * feat(sdk): trezor manager for init and user input requests * feat(rpc): add task-based address generation RPCs * feat(rpc): add trezor pubkey strategy with task-based address creation * WIP: trezor login option in SDK example * refactor(example): trezor auth mixin and remove previous trezor ui code * fix(trezor): device info parsing and example auth state transitions * refactor(trezor): add auth listener & implement coderabbitai suggestions * fix(example): auth restoration and listener order * fix(trezor): workaround for trezor-specifc scan issue funded addresses not being scanned for fresh trezor logins (maybe not believed to be a "fresh" wallet)? * fix(rpc): get new address task status response parsing * refactor(trezor): move authentication and initialization logic to SDK (#81) This is a concept solution that moves the Trezor initialization and authentication flow from the example BLoC to the SDK KomodoDefiAuth class & package. Two issues that make integrating the trezor login flow with the current SDK difficult: - Trezor login is a multi-step process that uses task-based RPCs, so Stream-based versions of the signin and register methods are required. - Async user inputs (i.e. passphrase or pin) need to be sent to trezor as part of login process. Solution implemented in this PR: - Add stream-based signInStream and registerStream functions to KomodoDefiAuth with a new Authentication state/status class. - Alternative (breaking): modify the existing functions to return Stream - Add input methods for passphrase and pin to KomodoDefiAuth - Alternative 1: Ask user for passphrase before starting trezor sign-in and pass it through the existing wallet password field. - Alternative 2: SDK consumers use device-specific managers (e.g. sdk.trezor.sendPassphrase). Commits: * Use TrezorWalletManager in example bloc * refactor(trezor,auth): move trezor auth into komodo_defi_local_auth * refactor: implement coderabbitai suggestions * refactor(trezor): migrate auth options and state models to freezed (#90) * migrate models to freezed * fix(types): revert changes to seed_node and auth_options commit b863ccb Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Tue Jun 24 17:40:41 2025 +0200 fix(auth): allow custom seeds for legacy wallets (#95) commit 3e9f73c Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon Jun 23 15:32:19 2025 +0200 chore: re-generate melos configs commit 1a4ec66 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon Jun 23 15:31:36 2025 +0200 fix: remove obsolete coins transformer Remove ETH coins config transformer which was temporarily required because of a breaking ETH change in KDF. commit 58acbc2 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon Jun 23 15:21:36 2025 +0200 bug: fix missing pubkey equality operators commit d05c13b Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon Jun 23 15:19:50 2025 +0200 chore: update KDF to release preview version commit fdeb713 Author: dragonhound <35845239+smk762@users.noreply.github.com> Date: Wed Jun 18 20:38:33 2025 +0800 removes BCH from _filteredCoins (#83) commit a36357e Author: Francois <takenagain@users.noreply.github.com> Date: Wed Jun 18 14:38:12 2025 +0200 feat(ui): add AssetLogo widget (#78) * Use AssetLogo in example and tweak imports * style: match the styling with the existing komodo-wallet implementation commit 8990c9c Author: DeckerSU <support@decker.su> Date: Wed Jun 18 14:37:22 2025 +0200 fix KDF not found warnings in _tryRenameFile of FetchDefiApiStep (#76) If the KDF binaries were already renamed from `mm2` to `kdf`—i.e., if the target folder already contained `kdf.exe` or `libkdf.a` after the last successful rename from `*mm2*`—the warning `KDF not found at` would still appear, which was a bit confusing. Now, if the folder already contains the renamed binary, the warning no longer appears. commit 55176e1 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon Jun 16 01:02:04 2025 +0200 fix: revert ETH coins config migration transformer commit 7d438bd Author: Francois <takenagain@users.noreply.github.com> Date: Sun Jun 15 17:31:26 2025 +0200 fix(kdf): enable p2p in noAuth mode (#86) * fix(kdf): enable p2p in noAuth mode * refactor(kdf): use SeedNodeService to get seednodes for noAuth commit 4038b86 Author: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Sun Jun 15 02:15:36 2025 +0200 chore: refresh KDF checksums commit aa8148b Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Sun Jun 15 00:17:09 2025 +0200 feat: add configurable seed node system with remote fetching (#85) * feat: add custom seed nodes - Add custom seed nodes to accommodate breaking KDF changes. - Upgrade KDF for latest seed node changes. * feat: add configurable seed node system with remote fetching Implement a comprehensive seed node configuration system that fetches seed nodes from the Komodo Platform repository with automatic fallback to hardcoded defaults. ### New Features: - Add SeedNode and SeedNodeContact types for type-safe configuration - Implement SeedNodeUpdater for fetching remote seed nodes - Add SeedNodeService with automatic fallback mechanism - Add SeedNodeValidator with enhanced P2P configuration validation - Export seed node service from komodo_defi_framework ### Configuration Updates: - Update build_config.json to include seed-nodes.json mapping - Add seed_nodes.json to gitignore for dynamic assets - Change API branch from 'dev' to 'alt-main' - Update all platform binary checksums and commit hashes ### Framework Integration: - Add automatic seed node fetching to KdfStartupConfig - Integrate SeedNodeService into auth service for wallet creation - Fix trading protocol parameter name (trading_proto_v2 -> use_trading_proto_v2) - Improve boolean validation in SeedNodeValidator ### Documentation: - Add comprehensive SEED_NODES_GUIDE.md with usage examples - Include example code for seed node functionality - Add complete test coverage for new types and services ### Dependencies: - Add komodo_coin_updates dependency to komodo_defi_framework - Export seed node types from komodo_defi_types - Update pubspec.lock files across packages The seed node system ensures applications always have access to current seed nodes while maintaining backwards compatibility through fallback mechanisms. This addresses the upcoming requirement in v2.5.0-beta where seed nodes will be mandatory unless P2P is disabled. Breaking changes: None - all changes are additive with sensible defaults. * chore: PR cleanup commit 2768355 Author: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Date: Tue Jun 10 16:34:01 2025 +0200 chore(android): downgrade Java compatibility from 21 to 17 (#79) Co-authored-by: DeckerSU <deckersu@protonmail.com> commit f63bebb Author: Francois <takenagain@users.noreply.github.com> Date: Fri Jun 6 13:46:17 2025 +0200 fix(trezor,activation): add PrivateKeyPolicy to AuthOptions (#75) * fix(trezor,activation): add PrivateKeyPolicy to AuthOptions and beyond * refactor(types): replace `.from` with `.of` of has type annotations Co-authored-by: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> --------- Co-authored-by: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> commit 040c040 Author: dragonhound <35845239+smk762@users.noreply.github.com> Date: Fri Jun 6 19:20:28 2025 +0800 Update/ethscan v2 (#71) * update etherscan-proxy to v2 * add distinct token url paths
Passes the
PrivateKeyPolicyviaAuthOptionsto ensure that coin activation uses Trezor private key policy (current default is local device context-based).Summary by CodeRabbit
New Features
Improvements
Bug Fixes