-
Notifications
You must be signed in to change notification settings - Fork 4
chore(release): prepare next release from dev #205
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
* update etherscan-proxy to v2 * add distinct token url paths
* 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>
Co-authored-by: DeckerSU <deckersu@protonmail.com>
* 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
* fix(kdf): enable p2p in noAuth mode * refactor(kdf): use SeedNodeService to get seednodes for noAuth
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.
* Use AssetLogo in example and tweak imports * style: match the styling with the existing komodo-wallet implementation
Remove ETH coins config transformer which was temporarily required because of a breaking ETH change in KDF.
* 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
* 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
latest staging with hotfix for trezor coin activation
* 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)
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.
* 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>
* 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
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.
…mprove logging - Use stdout/stderr for CLI output to satisfy lints - Add dart:io import where needed - Route Logger output and usage text to stdout/stderr
- komodo_defi_types@0.3.2+1 - komodo_wallet_cli@0.4.0+1 - komodo_ui@0.3.0+3 - komodo_defi_sdk@0.4.0+3 - komodo_defi_rpc_methods@0.3.1+1 - komodo_defi_local_auth@0.3.1+2 - komodo_defi_framework@0.3.1+2 - komodo_coins@0.3.1+2 - komodo_coin_updates@1.1.1 - komodo_cex_market_data@0.0.3+1
…rences\n\n- Use assets/transformer_invoker.txt instead of dotfile\n- Update pubspec and READMEs\n- Remove special .gitignore unignore
- Add CoinSubClass.tokenStandardSuffix (exhaustive switch) - Add AssetId.displayName (parent-only) using tokenStandardSuffix - No suffix for child assets; no changes to ids or balances Refs: KomodoPlatform/komodo-wallet#2988 (comment)
…ion (#215) * feat(cex-market-data): add coinpaprika API fallback support * feat(cex-market-data): integrate coinpaprika into sparklines & strategies * refactor(cex-market-data): use index_generator for barrel files * test(cex-market-data): refactor out fixtures and helpers * refactor(cex-market-data): add doc comments, update tests, explicit utc
* fix(auth): store bip39 compatibility regardless of wallet type previous behaviour of throwing if HD wallet seed is not bip39 compatible * build(kdf): bump dev commit hash to ea91c0d pre-emptive avoidance of build errors as dev builds are pruned regularly * refactor(auth): simplify HD bip39 verification
…ase for custom token import (#220) * fix(custom-token-import): add custom token refresh notifier * fix(custom-token-import): use raw config instead of tojson methods * fix(asset-icon): use lowercase for custom icon identifiers * fix(custom-token-import): clear custom tokens on refresh, fix refresh filter check * refactor(asset-manager): use .of for type safety * fix(coin-subclasses): fallback to checking ticker and token suffix Enum values are a mix of ticker, formatted, and token suffix values,
* use token contract, not swap contract * convert to mixedcase before `get_token_info` * fix(custom-token-import): build parent->child relationships when loading * fix(etherscan-transaction-history): use ETH URL for tokens token-specific URLs are returning 404s * fix(runtime-coin-updates): build parent->child relationships from hive * revert: etherscan transaction base endpoint change to ethUrl * feat(refresh-notifier): add notify and wait function to interface * fix(runtime-coin-updates): sort assets by coin before returning some of the conversion operations likely change the order of the original list and keys, which caused a segfault on linux --------- Co-authored-by: Francois <takenagain@users.noreply.github.com>
…of the global cache (#224) * fix(binance-repo): use coin-specific fiat currency list for supports * feat(binance-repo): add alternative USD stablecoin mappings allows for binance requests for assets without explicit USDT support * refactor(binance): remove unused fiat cache and address nitpicks
* perf(logs): reduce market metrics log verbosity and duplication * refactor(market-metrics): add toUtc to startAt and remove duplicate log * test(runtime-coin-updates): update coinsubclass to smarchain for KMD * chore: resolve merge issue * test(binance): remove legacy FRAX from the required USD mappings
* feat: Add external logger support to KomodoDefiSdk This commit introduces the ability to pass an external logger function to the KomodoDefiSdk, allowing for custom logging of framework messages. Co-authored-by: charl <charl@vanstaden.info> * Refactor: Manage SDK logger subscription internally Co-authored-by: charl <charl@vanstaden.info> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* Enhance ZHTLC activation with improved config parsing and RPC methods Co-authored-by: charl <charl@vanstaden.info> * feat(zhtlc): integrate ZHTLC types and task RPCs per KDF API * dragon_logs: remove tracked ignored files and add .gitignore files * Integrate and verify ZHTLC in komodo_defi_sdk (#196) * Refactor ZHTLC activation strategy with stream-based task handling Co-authored-by: charl <charl@vanstaden.info> * Refactor activation steps to use strongly-typed ActivationStep enum Co-authored-by: charl <charl@vanstaden.info> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> * chore: run code generators * chore(git): delete previously tracked igored files * Fix ERC20 and ZHTLC activation params serialization and method calls (#212) Co-authored-by: Cursor Agent <cursoragent@cursor.com> * fix: misc fixes * docs(activation): add activation params refactoring plan Clean base/subclass separation, canonical serialization + encoder strategy, user configuration + persistence, BLoC timeout, SDK integration via AssetId extension and resolveActivationParams, and migration steps. No backwards compatibility required. * docs(sdk): activation refactoring v2 * feat(activation,zhtlc,sdk,rpc)!: extract ZHTLC fields to ZhtlcActivationParams; add ActivationConfigService; unify priv_key_policy serialization; normalize toRpcParams; formatting fixes * Checkpoint before follow-up message Co-authored-by: charl <charl@vanstaden.info> * Fix: Remove unused import statement Co-authored-by: charl <charl@vanstaden.info> * feat: Add support for electrum_servers in Zhtlc activation Co-authored-by: charl <charl@vanstaden.info> * feat: initialize Firebase hosting for SDK example and playground - Add Firebase hosting configuration for packages/komodo_defi_sdk/example - Configure to use kdf-sdk hosting site on komodo-defi-sdk project - Set up hosting target mapping - Add Firebase hosting configuration for playground - Configure to use default hosting site on komodo-playground project - Update GitHub Actions workflows to use target parameter for SDK example - Update .gitignore to allow Firebase config files in example and playground * fix: update z-coin activation strategy and example UI - Update zhtlc_activation_strategy for improved activation handling - Add activation config service enhancements - Update logged_in_view_widget with improved UI for instance management - Export additional SDK functionality in public API * docs(firebase): reorganize Firebase deployment scripts and documentation - Move Firebase scripts to .github/scripts/firebase/ directory - Rename scripts for clarity: - setup-firebase-secrets.sh → setup-github-secrets.sh - verify-firebase-secrets.sh → verify-github-secrets.sh - Move documentation to docs/firebase/ directory - Rename documentation file to firebase-deployment-setup.md - Update script paths in documentation - Add README for scripts directory * fix: remove global singleton registration of ActivationConfigService - Remove global GetIt.I registration to prevent conflicts between multiple SDK instances - Pass ActivationConfigService through constructor chain instead of global resolution - Update ZhtlcActivationStrategy to accept service via constructor - Update ActivationStrategyFactory and ActivationManager to propagate the service - Prevent memory leaks and use-after-dispose issues when SDK instances are disposed This ensures each SDK instance maintains its own isolated ActivationConfigService, fixing issues where only the first SDK's service would be globally registered. * fix(activation): register ActivationConfigService during bootstrap - Ensure service is available before ActivationManager to fix ZHTLC/Z-coin activation flow\n- Remove duplicate registration from KomodoDefiSdk.init\n- Example: use instance sdk instead of context.read for ZHTLC prompt * docs(tech-debt): add Activation & ZHTLC tech-debt report and refine sections * feat(komodo_defi_sdk): add HiveActivationConfigRepository and integrate in activation flow; update bootstrap, activation service, and example widget * fix: resolve external logging callback flaws and memory leak - Fix native callback memory leak by disposing _kdfOperations in KomodoDefiFramework - Remove debug-only conditional logging in bootstrap.dart - Fix potential double subscription in komodo_defi_sdk.dart - Add comprehensive error handling to log stream listeners - Replace empty catch blocks with proper error handling - Add safe logging helpers to prevent callback exceptions from crashing - Ensure log streams continue operating even after callback errors * refactor(withdrawals): inject LegacyWithdrawalManager and use for Tendermint flows - add _legacyManager constructor param and field - delegate Tendermint preview/withdraw to injected manager - minor formatting and watch() simplifications * fix(kdf-ops): use conditional imports for platform-specific imports i.e. dart:ffi * fix(activation-params): include other RPC server keys * fix(activation-config-repository): register adapter type * feat(zhtlc): add desktop zcash params downloader (#228) * feat(sdk): add zhltc params file downloader * feat(sdk-example): integrate zcash downloader for desktop * chore: remove groth from default params download list * test(komodo-defi-sdk): fix failing zcash unit tests * refactor: clean up imports, tests, and dialog date conversion * feat(zhtlc): add mobile config params downloader * feat(zhtlc): web lightwallet server URLs workaround * fix(zhtlc): align orderbook RPC with KDF schema, and add id pagination support (#229) * feat(zhtlc-tx): add from_id pagination support from RPC docs * fix(orderbook-v2): use v2 fields and types * fix(source-address-field): use consistent text theme to fix visibility * fix(order-address): change address data to optional for shielded ops * fix(json-utils): convert int to string in traverse as it's lossless * test(sdk): fix missing type in zcash mock classes * fix(address-select-input): use consistent text theme to fix visibility * feat(zhtlc): estimate activation percentage based on block height (#230) * feat(zhtlc): estimate activation percentage based on block height * refactor(review): remove unnecessary casts, states, and configurable polling * fix(config-transform): only replace lightwalletservers if wss is not empty * Fix ZHTLC activation issues and improve resilience Co-authored-by: charl <charl@vanstaden.info> --------- Co-authored-by: Charl (Nitride) <77973576+CharlVS@users.noreply.github.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: charl <charl@vanstaden.info>
Visit the preview URL for this PR (updated for commit 04e1587): https://komodo-playground--pr205-dev-tccqs8xt.web.app (expires Thu, 23 Oct 2025 15:55:30 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 2bfedd77fdea45b25ba7c784416e81f177aa5c47 |
Visit the preview URL for this PR (updated for commit 04e1587): https://kdf-sdk--pr205-dev-dwrknf2x.web.app (expires Thu, 23 Oct 2025 15:55:02 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 9c1b6e6c010cf0b965c455ba7a69c4aedafa8a1d |
…#232) * fix(sdk): close subscriptions on auth state changes reactivating existing subscriptions causes a bunch of side effects alongside assets active in the background that are not always present in the currently signed in wallet (consuming unnecessary resources etc. alongside a memory leak possibility) * test(sdk): update and expand pubkey and balance unit test coverage * refactor(review): add custom exception, improve logging, and update docs * chore: update generated indexes and freezed models
…/PubkeyInfo (#231) * feat(message-signing): add AddressPath type and refactor to use Asset/PubkeyInfo - Add AddressPath class for HD wallet address path handling - Supports both derivation path and component-based formats - Immutable with proper equality and JSON serialization - Documented with API reference links - Refactor SignMessageRequest to use AddressPath - Simplified from 4 optional parameters to single AddressPath - Better type safety and API compliance - Maintains full HD and non-HD wallet support - Update MessageSigningManager to use high-level types - Replace String coin parameter with Asset type - Replace individual derivation params with PubkeyInfo - Automatic conversion from PubkeyInfo to AddressPath - Use asset.id.id for correct coin identifier - Update example and namespace implementations - Remove deprecated individual HD parameters - Add comprehensive documentation and examples - Ensure consistent API across RPC and SDK layers This provides a cleaner, more type-safe API that better abstracts the underlying RPC complexity while maintaining full compatibility with the Komodo DeFi Framework message signing endpoints. * refactor(coin-updates): remove unused interface and sort exports - Remove custom_token_storage_interface.dart (unused) - Alphabetically sort exports in _coins_config_index.dart * refactor(address-path): migrate to freezed for better immutability - Replace manual immutability implementation with freezed - Use union types for derivationPath and components constructors - Leverage freezed's when/maybeWhen for type-safe pattern matching - Maintain custom fromJson/toJson for API compatibility - Reduce boilerplate: ~40 lines vs ~135 lines manually - Keep all existing APIs and behavior unchanged Benefits: - Automatic copyWith, equality, hashCode, toString generation - Type-safe exhaustive pattern matching with when/maybeWhen - Better maintainability and less error-prone - Consistent with freezed usage across the codebase
- Updated branch from main to hotfix-remove-memorydb-size-metric - Updated commit hash to 476262f0d3390e24cfe672d5e15a78a46397dbfa - Updated checksums for all platform binaries (web, ios, macos, windows, android-armv7, android-aarch64, linux)
…pport; update staging checksums (#237) * extends upi config update to accomodate Decker's nebula * Auto-commit pending changes before rebase - PR synchronize * Update main branch, resolve short commit SHAs, and fix URL resolution Co-authored-by: charl <charl@vanstaden.info> * Resolve merge conflict: keep KDF staging commit and branch in build_config.json * fix(build): fix incorrect source URL path * komodo_wallet_cli: add default-on strict mode; enforce exact-commit artifacts; --[no-]strict flag; update usage examples * cli/build: support branch-based Nebula mirror + robust href resolution - update_api_config.dart: resolve mirror links using full href; inspect branch and base listings; normalize href path for pattern checks - dev_builds_artefact_downloader: resolve links via href; search branch/base listings; ignore wallet artifacts; use Uri.path for matching - build_config.json: update staging branch checksums after Nebula fetch - docs: clarify Nebula usage and branch-based listings Also includes minor logging improvements and no breaking refactors. * macos: optionally thin universal KDF binaries to active arch in Release builds; re-sign artifacts * chore(macos): commit native generated files * chore: commit pending changes --------- Co-authored-by: smk762 <smk@komodoplatform.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Update api_commit_hash to 4c4df1326bcad6aa25ab837cad4fc84147e15084 and refresh valid_zip_sha256_checksums for web, iOS, macOS, Windows, Android (armv7, aarch64), and Linux.
TODO
Note
Migrates repo to a pub workspace with newer SDKs and tooling, adds seed-node/P2P configuration and Firebase hosting to the playground, and updates platform/project settings and plugins.
workspace
with updated namekomodo_defi_sdk_flutter_workspace
; bump SDK constraints to Dart>=3.9
/ Flutter>=3.35
.melos
and add bootstrap/generation scripts.disableP2p
,iAmSeed
,isBootstrapNode
,seedNodes
) and pass toKdfStartupConfig
.playground/firebase.json
).dispose()
overrides in server native/stub.10.15
; bump CocoaPods platform and adjust pods.Written by Cursor Bugbot for commit 04e1587. This will update automatically on new commits. Configure here.