-
Notifications
You must be signed in to change notification settings - Fork 216
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
chore: sync dev
from private to public repository
#2509
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 Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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 (
|
* CI self-hosted config test #1 * Fix incorrect duplicated job ID * CI test #2 * CI Test #3 Results of test #2: integration tests work when using GitHub-hosted Actions latest ubuntu * CI Test #4 * Test unit/integration tests on hosted runner Test unit/integration tests on the hosted runner to determine if the cause of the failing tests is related to differences between self-hosted and hosted environment. * Update CI conditional statements of self-hosted runners Update CI conditional statements that referenced variables only applicable to self-hosted runners. Change to the equivalent for hosted runners. * Remove very_good_analysis linting dependency Flutter is not fetching dependencies for sub-packages in the `packages` directory, so the very_good_analysis files are missing until `flutter pub get` is ran for each package * Add composite actions for asset generation and build validation * Remove chromedriver from unit tests workflow * Add missing `shell` property to the `generate-assets` action Also remove the default value, and unset the environment variable if it does not exist * Delete the `build/` directory between builds to clear AssetManifest.bin Rebuilds do not appear to consistently update AssetManifest.bin, even if there are new assets generated between builds (icons, coin configs) * Add code coverage report as artefact upload Temporary until link with 3rd-party sources like CodeCov is setup * Only fail the coverage step if the report does not exist The flutter test command failing or passing should not affect the test coverage step success/failure * Fix profit/loss unit tests Binance closing price introduces some variability in the calculated profit/loss that has to be accounted for. The margin of error can be reduced by improved price and timestamp matching, but this should suffice for now * Fix code coverage generation action I forgot the spaces in the bash condition :(. It should be "if [ ... ]; then" * Revert to using `strings` before `grep` to be platform independent macOS handles binary files differently to Linux, meaning that `grep -i ...` works with binary files on Linux systems, but not macOS * Remove trailing spaces in zip generation command Trailing spaces after the backslash in a multi-line command causes it to fail with "command not found" * Prefix artefact with runner name & move coverage step to end of ui tests * Update job names and add descriptions * Switch build_transformer over to the new sdk repo * Remove old build_transformer package * Revert changes to web/src/index.html * Add index.html to .gitignore * Move webpack JS files out of web/src * Revert changes to index.html once more :( * Untrack index.html & update build transformer package * Use default GITHUB_TOKEN to make authenticated requests * Add test case for failing binance requests * demo data generator: check if coin is supported before fetching * Add validation step for build_config.json * Fix silently failing asset manifest validation check * Add json validity checks for coin configs * Update commit sha of build transformer package * Use abstract repository class in generate demo data * Install Chrome alongside chromedriver on linux for UI tests * Skip generate demo test data unit tests * Bump build transformer to dev branch * Switch UI and unit test workflows back to self-hosted runners * Restrict coverage report to linux-based runners * Improve npm build cross-platform compatibility '&&' is invalid in Windows PowerShell. ';' works on Windows, macOS, and Linux * Move Flutter and NodeJS installation to composite action * Add github token to UI and unit test steps Seeing 403 responses on self-hosted runners * Fix UI integration tests on self-hosted macos * Export logs for safaridriver in workflows Use the --diagnose flag when starting safaridriver * Fix failing restore wallet integration test * Add verbose flag to integration test runner * Fix issues with pumpAndSettle timeout Add pumpNFrames and use that instead. This is based on the recommendation in the docs: https://api.flutter.dev/flutter/flutter_test/WidgetTester/pumpAndSettle.html * Fix missing balance overview and back button * Fix wallet & wallet manager integration tests * Fix maker & taker integration tests * Fix misc integration tests * Fix analyse warnings and remove support page test * Pin chromedriver to the self-hosted runner version 116.0.5845.96 with path /opt/google/chrome/chrome * Use mock binance repository for unit testing Using the live Binance endpoints resulted in some variance of the closing price & final calculation that caused the unit tests to fail on occasion. * Add note about the possibility of 403 error --------- Co-authored-by: CharlVS <[email protected]> Co-authored-by: Francois <[email protected]>
* add enable test coins to settings * test coins hide if toggled off in settings
…uilds (#163) * Update Flutter to 3.24.3 (stable) Only web build works with this configuration * Bump Flutter version in workflows to `3.24.x` * Remove `desktop_webview_window` dependency * Switch to in-app webview in popup-window * Upgrade `file_picker` to 8.1.2 to fix ios&macos build error win32 v5 removes references to deprecated APIs, which jonataslaw/get_cli#263 * Upgrade `url_launcher` to 6.3.0 to fix iOS build error * Skip web defi fetch step if target is iOS * Bump CI Flutter version to `3.24.x`
* router fix uri query parameters were lost at parse * router add dexroute parameters * router dex state notifyListeners for new fields * router dex process order_type param * router dex clean params without notifying * router dex maker process ticker and amount params * router dex fix typo * dex TakerSetSellCoin event add setOnlyIfNotSet * router dex maker consumes only their own params * router dex allow order_type being maker by default * router dex taker process from/to currencies * dex repository waitOrderbookAvailability function * router dex form wait for orderbooks before process * router dex taker process from_amount * router dex code cleanup * mobile/widget layout taker form dropdown position * maker form parse error check
* change extension to `.gz` on native platforms * add single-file zip archive support credit for zip.dart goes to gpt-4o
* Update Flutter to 3.24.3 (stable) Only web build works with this configuration * Bump Flutter version in workflows to `3.24.x` * Remove `desktop_webview_window` dependency * Switch to in-app webview in popup-window * Upgrade `file_picker` to 8.1.2 to fix ios&macos build error win32 v5 removes references to deprecated APIs, which jonataslaw/get_cli#263 * Upgrade `url_launcher` to 6.3.0 to fix iOS build error * Skip web defi fetch step if target is iOS * Bump CI Flutter version to `3.24.x` * Fix mobile coin details buttons layout - Also fix Bitrefill button in preparation for cross-platform fiat onramp in a similar fashion * Add fullscreen in-app-webview for native platforms * Close the browser if redirected to web app This is a failure condition for the `checkout_status_redirect.html` page * Move payment status events to BLoC The async onConsole/onMessage callback used by the `flutter_inappwebview` package is incompatible with the previous watcher implementation. * Migrate bitrefill provider & watcher to package:web * refactor fullscreen webview to webview dialog * add fiat onramp html page fixes issues with reading `onmessage` and `window.console` from an iframe or another window * apply patch to `web_support.js` to fix web callbacks from pichillilorenzo/flutter_inappwebview#2058 * migrate remaining fiat & bitrefill html references to package:web * WIP: add initial fiat onramp bloc implementation * fix arb merge issue: add arb to currency class * fix type conversion bugs and add more error logging add stacktrace to logs when in kDebug mode * replace onCheckoutComplete callback with BlocListener * improve form state management and add default payment methods list for initial user input * fix cross-platform compilation with conditional imports package:web and js_interop only work on web, so use conditional exports * fix cocoapods build warnings * use url instead of proxy page on native platforms only web requires the proxy page because of CORS restrictions. onConsole, and onMessage works on native platforms * fix hive runtime init exception `Hive.initFlutter` failed on macOS and appears to be a web-specific function that produces an exception on native platforms * add error parsing for banxa order creation * localize fiat error and popup messages * fix status message parsing in wrapper html page * move getCoinAddress to coins bloc * update testing and setup docs add example launch.json and iOS crash logs location add notes about linux setup * fix fiat amount injecting decimals removed unnecessary string `error` field, since the status fields suffice * fix onramp error on linux & banxa parsing bug * fix fiat form overlapping issues on mobile - use autoscrolltext, expand, and align - fix fiat icon errors when scrolling quickly - fix webview platform check * fix flutter analyze warnings * add fiat onramp form integration test * bump build transformer package commit * improve status parsing on native platforms - parsing errors from escaped json strings on Windows - re-enable banxa order status watching * fix coins bloc and Hive init race condition on macos Runtime updates Hive boxes have to be initialised on native platforms before coins bloc executes, which was not happening consistently across all platforms * move confirmation prompt behind conditional import `web` and `js_interop` package imports do not compile on native platforms, so they have to be hidden behind conditional imports to allow for cross-platform support
* kdf show_priv_key api * display private keys * private keys QR code dialog * private keys list title * private key dialog width * private key share instead of copy * Revert "private key share instead of copy" This reverts commit a623444ea75e4d074419bcc9689585ca819beceb. * private key clipboard warning
* Fallback to remote images CDN for missing coin icons * Add coin icon fallback for all references to icons Add coin icon fallback for other widgets referencing the local image icons. Now all coin icons in the app share the same widget. * Prevent flicker for fallback coin icons Prevent flicker for fallback coin icons by caching the status of the existence on the CDN. * Further coin icon fallback bug fixes
… created (#184) * fix trading bot tab order * fix trading bot history onclick event * show estimate trade volume while creating new order
* add system clock repository with fallback urls * add directly connected peers rpc as fallback * improve utc parsing and request exception handling * revert changes to build_config
* add komodo_defi_sdk to dependencies update required dependencies, and fix build errors * WIP: replace mm2 classes with defi sdk * replace kdf rpc status checks with isSignedIn The new SDK abstracts away the KDF functionality behind an authentication class, so the previous status checks are not possible, and the isSignedIn is the closest alternative without removing the logic entirely (possibly breaking change) * bump kdf version * load coin assets from sdk package komodo_defi_framework package already downloads the configs and icons, so load them from the external package instead of redownloading and loading the same assets twice * ci: update paths in validate action * replace dynamic index.html with static version the drawbacks of bundling with webpack outweighed the negligible size reduction in the kdf wasm files, so it was dropped in favour of a static index.html in the sdk * fix failing unit tests caused by the `rational` and `decimal` package updates * update docs remove nodejs, api update script, and add fvm as flutter installation alternative * fix breaking changes to rpc method return types sdk returns different types which have to be accounted for, sometimes on a per-rpc basis * fix validation warnings * WIP: fix integration tests temporarily disable suspended assets test. The `coins_config.json` is no longer editable as it is obtained from an external package, so alternative means of invalidating the electrum URLs for an asset are required * re-enable suspended assets test on chrome * block electrum urls in chrome for suspended assets test * update logs location in ui-tests workflow * fix taker order integration test * change from sdk to komodo_defi_framework * fix debug utils & withdraw test * remove driver start step from ui test workflow browser driver startup is now handled by integration test runner * improve driver management & fix `test_withdraw` test add and refactor integration test utility functions * add pub get flag flutter drive runs `flutter pub get` before each test by default, which slows down the current implementation, which runs each set of tests independently * add profile mode step to ui-tests-on-pr * add verbose logging to integration tests steps some errors, like pumpAndSettle timeouts, do not produce useful stacktraces, so adding print statements is necessary unless we run the integration tests in debug mode (not recommended) * fix cex_prices integration test * fix theme switching on web * fix nft and trezor RPC call type errors type conversions missed during initial migration, but caught by integration tests * migrate web file_loader to js_interop and package:web * change file loader to conditional import structure js_interop causes builds to fail once again * fix seed file upload & add keep-running flag safaridriver logs do not include console logs, so we have to keep the browser window open to read console logs in the event of failure * fix intermittent test failures * bump sdk version & add debug statements * increase flutter drive timeout & remove tests.dart group structure is better suited to the new integration_test format rather than flutter_drive. `await app.main` fails after the second test when in the same group * fix merge error * fix validation warnings & flaky dex taker test * add port option & fix flaky dex ui test steps * tests: add longer wait after taker/maker confirmation button click * fix misc integration test errors when switching theme * fix trading bot order count in tab bar * fix analyze warnings and increase tab refresh rate * restore missing error check throw exception if error response is received from API. Market maker bot was failing to start/stop after this was removed as part of the sdk integration * fix trading bot & dex order list onClick events * fix merge issues & trade bot empty list check list null = empty * fix best orders and connected peers parsing v2 uses orderaddress object for address field instead of string
Add coin icon fallback for other widgets referencing the local image icons. Now all coin icons in the app share the same widget. Fallback to remote images CDN for missing coin icons Further coin icon fallback bug fixes Prevent flicker for fallback coin icons Prevent flicker for fallback coin icons by caching the status of the existence on the CDN.
* fix zero balance issue by fallback to my_balance * update kdf wasm version * Remove undefined KDF build configs * deploy preview on PR to main * max_taker_vol fallback to my_balance * ci branches add release/* * max_taker_vol balance parse rational --------- Co-authored-by: CharlVS <[email protected]> Co-authored-by: Francois <[email protected]>
* add support for map in hd balance response * bump kdf release hash and wasm checksum
* add komodo_defi_sdk to dependencies update required dependencies, and fix build errors * WIP: replace mm2 classes with defi sdk * replace kdf rpc status checks with isSignedIn The new SDK abstracts away the KDF functionality behind an authentication class, so the previous status checks are not possible, and the isSignedIn is the closest alternative without removing the logic entirely (possibly breaking change) * bump kdf version * load coin assets from sdk package komodo_defi_framework package already downloads the configs and icons, so load them from the external package instead of redownloading and loading the same assets twice * ci: update paths in validate action * replace dynamic index.html with static version the drawbacks of bundling with webpack outweighed the negligible size reduction in the kdf wasm files, so it was dropped in favour of a static index.html in the sdk * fix failing unit tests caused by the `rational` and `decimal` package updates * update docs remove nodejs, api update script, and add fvm as flutter installation alternative * fix breaking changes to rpc method return types sdk returns different types which have to be accounted for, sometimes on a per-rpc basis * fix validation warnings * WIP: fix integration tests temporarily disable suspended assets test. The `coins_config.json` is no longer editable as it is obtained from an external package, so alternative means of invalidating the electrum URLs for an asset are required * re-enable suspended assets test on chrome * block electrum urls in chrome for suspended assets test * update logs location in ui-tests workflow * fix taker order integration test * coin addresses bloc init * coin addresses init list in coin details * coin addresses separate status for creation * create addresses cleanup * change from sdk to komodo_defi_framework * coin addresses realistic fake address * coin addresses hide middle part of the address * fix debug utils & withdraw test * remove driver start step from ui test workflow browser driver startup is now handled by integration test runner * coin addresses improve ui * coin addresses special exception type * coin addresses copy button functionality * coin addresses swap address tag * coin addresses bloc hide zero balance * coin addresses styling and hide 0 balance * improve driver management & fix `test_withdraw` test add and refactor integration test utility functions * add pub get flag flutter drive runs `flutter pub get` before each test by default, which slows down the current implementation, which runs each set of tests independently * add profile mode step to ui-tests-on-pr * add verbose logging to integration tests steps some errors, like pumpAndSettle timeouts, do not produce useful stacktraces, so adding print statements is necessary unless we run the integration tests in debug mode (not recommended) * coin addresses extract widget to file * coin addresses QR code * coin addresses extract widgets * coin addresses mobile view init * coin addresses extract widgets * coin addresses improve mobile view layout * coin addresses slightly larger swap address text * coin addresses improve QR dialog * coin addresses localize texts with existing keys * coin addresses localize texts * coin addresses localize texts * coin addresses polish * fix cex_prices integration test * fix theme switching on web * fix nft and trezor RPC call type errors type conversions missed during initial migration, but caught by integration tests * migrate web file_loader to js_interop and package:web * change file loader to conditional import structure js_interop causes builds to fail once again * fix seed file upload & add keep-running flag safaridriver logs do not include console logs, so we have to keep the browser window open to read console logs in the event of failure * fix intermittent test failures * bump sdk version & add debug statements * increase flutter drive timeout & remove tests.dart group structure is better suited to the new integration_test format rather than flutter_drive. `await app.main` fails after the second test when in the same group * fix merge error * fix validation warnings & flaky dex taker test * add port option & fix flaky dex ui test steps * tests: add longer wait after taker/maker confirmation button click * fix misc integration test errors when switching theme * fix trading bot order count in tab bar * fix analyze warnings and increase tab refresh rate * restore missing error check throw exception if error response is received from API. Market maker bot was failing to start/stop after this was removed as part of the sdk integration * fix trading bot & dex order list onClick events * fix merge issues & trade bot empty list check list null = empty * fix best orders and connected peers parsing v2 uses orderaddress object for address field instead of string * replace auth methods with KomodoDefiSdk * fix global variable initialization order and async issues Migrating away from the global variables in blocs.dart will involve a considerable number of code changes, so leaving as-is for now * use sdk in current wallet "bloc" default values used for hasBackup * move global bloc variables to repositoryprovider async sdk/kdf initialization does not work with the current global variable structure, so moved the global repositories to repositoryprovider * revert breaking wallet restore and import changes * skip orders, and swaps RPCs when not logged in also bump kdf sdk version * fix login to existing wallet and remove onlogout deactivate * catch and log uncaught (or async) errors * sdk txs disable tests and mock repository * sdk txs cex market data charts * sdk txs transactions import change * fix onlogout balance clearing throw exceptions with stacktraces * sdk txs use the new sdk Transaction model * sdk txs use the new sdk Transaction model * sdk txs use the new sdk Transaction model * sdk txs use the new sdk Transaction model * sdk txs change types import * tests: use faucet for doc/marty if balance is insufficient * fix maker form auth state listener * sdk txs fee coin * fix validation warnings and remove gha timeout at step * sdk txs fetch from sdk * coin details hide addresses if tx is selected * sdk txs always show transactions if filled * fix transactions missing one row during loading * sdk txs getSdkAsset temp helper function * sdk access added to CoinsRepo * sdk replace max_maker_vol with sdk * sdk getSdkPubkeys helper function * add wallet metadata and disable unsupported features - add `has_backup` and `WalletType` metadata fields to KdfUser - disable delete wallet feature - * sdk addresses port * replace current wallet stream with auth bloc * rename coins "bloc" and move more repos to DI * use new asset class for trezor coin activation trezor activation responds to 'UserActionRequired' events, which are not propagated through asset manager * migrate coins manager from legacy coins bloc to repository and new coins bloc * migrate legacy coins bloc to coins repostory * remove runtime coin updates `KomodoCoins` fetches coins from github cdn at runtime, so runtime updates are no longer necessary * remove coin activation rpc models and migrate legacy coins bloc refs * add activated coins metadata * refactor: migrate fiat bloc from legacy coins bloc * migrate remaining legacy coins bloc references to coins repo * migrate current wallet references to auth bloc * fix swap page validation issues * fix market metrics and transaction history loading * fix trading bot validation errors coins bloc emits not refreshing the widgets at the bottom of the tree * fix bridge page missing protocols * fix coin activation error handling * fix merge issues * fix timestamp in unit test transaction generation * sdk show pubkey addresses for all coins * sdk addresses active swap address tag * sdk addresses display balance * sdk addresses polish balance display * fix view seed and re-login flow * fix coin activation via coins manager activating coins were only displayed on the next balance refresh instead of immediately after activation * add parent coin to conversion * sdk addresses hide zero balances checkbox * sdk addresses reload after create * sdk remove coin addresses repository * fix portfolio growth concurrent modification * fix coin details tab controller error * sdk getSdkAsset use findAssetsByTicker * sdk addresses max 3 empty addresses * sdk addresses split variables * sdk txs add address * sdk txs add address mobile * sdk txs load 200 * fix sporadic activation in coins list * add legacy wallet migration * sdk asset getPubkeys * sdk use assetsFromTicker * pubspec upgrade * coin details history -> lastTransactions * coin details transactions better spacing * coin details polish transactions section * upgrade to flutter 3.27.0 * coin details redesign tx history section * coin details redesign tx history section mobile * fix new validation warnings from flutter upgrade * fix trezor login login does not work in debug mode because of an assert statement in the SDK * bump flutter version in workflows * fix macos and ios builds * decouple balance fetching & coin activation * sdk addresses use CantCreateNewAddressReason * coin details remove createAddressAllowed field * sdk localize CantCreateNewAddressReason texts * trim unused methods from coin model * fix coin balances persisting to another wallet login * fix initial trezor coin activation list * fix trezor coin add asset page * call faucet on all addresses should implement a more robust solution to HD wallet support for faucet * improve login activated coins metadata storing * upgrade sdk --------- Co-authored-by: Francois <[email protected]>
e45e70f
to
600976c
Compare
Visit the preview URL for this PR (updated for commit 600976c): https://walletrc--pull-2509-merge-nps8k6zv.web.app (expires Fri, 17 Jan 2025 12:50:24 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: f66a4ff03faa546f12f0ae5a841bd9eff2714dcc |
No description provided.