From 0807ba6dc21950b5f6e9fb5299a42942c131fb01 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Mon, 18 Jan 2021 16:11:22 +0100 Subject: [PATCH 1/5] [DDW-543] Update bignumber.js from v5 to v9 Implemented all breaking changes: https://github.com/MikeMcl/bignumber.js/blob/master/CHANGELOG.md --- package.json | 2 +- source/renderer/app/api/api.js | 4 ++-- .../Step2ConfirmationDialog.js | 2 +- .../app/components/wallet/WalletSendForm.js | 2 +- source/renderer/app/stores/StakingStore.js | 2 +- source/renderer/app/utils/formatters.js | 22 +++++++++---------- source/renderer/app/utils/transaction.js | 4 ++-- tests/transactions/e2e/steps/transactions.js | 2 +- .../e2e/steps/transfer-funds-wizard.js | 2 +- yarn.lock | 6 ++--- 10 files changed, 24 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index 55ef3eca99..53e3a06cd4 100644 --- a/package.json +++ b/package.json @@ -174,7 +174,7 @@ "dependencies": { "@cardano-foundation/ledgerjs-hw-app-cardano": "2.1.0", "aes-js": "3.1.2", - "bignumber.js": "5.0.0", + "bignumber.js": "9.0.1", "bip39": "2.3.0", "blake2b": "2.1.3", "blakejs": "1.1.0", diff --git a/source/renderer/app/api/api.js b/source/renderer/app/api/api.js index 4c5b0328ee..1c1a7af6a0 100644 --- a/source/renderer/app/api/api.js +++ b/source/renderer/app/api/api.js @@ -562,7 +562,7 @@ export default class AdaApi { const withdrawal = new BigNumber(w.amount.quantity).dividedBy( LOVELACES_PER_ADA ); - withdrawals = withdrawals.add(withdrawal); + withdrawals = withdrawals.plus(withdrawal); }); }); return { withdrawals }; @@ -1691,7 +1691,7 @@ export default class AdaApi { MIN_REWARDS_REDEMPTION_RECEIVER_BALANCE ); // Amount is set to either wallet's balance in case balance is less than 3 ADA or 1 ADA in order to avoid min UTXO affecting transaction fees calculation - const amount = walletBalance.lessThan( + const amount = walletBalance.isLessThan( minRewardsReceiverBalance.times( MIN_REWARDS_REDEMPTION_RECEIVER_BALANCE * 3 ) diff --git a/source/renderer/app/components/staking/redeem-itn-rewards/Step2ConfirmationDialog.js b/source/renderer/app/components/staking/redeem-itn-rewards/Step2ConfirmationDialog.js index 3029d373a8..3a2413ff7d 100644 --- a/source/renderer/app/components/staking/redeem-itn-rewards/Step2ConfirmationDialog.js +++ b/source/renderer/app/components/staking/redeem-itn-rewards/Step2ConfirmationDialog.js @@ -156,7 +156,7 @@ export default class Step2ConfirmationDialog extends Component { MIN_REWARDS_REDEMPTION_RECEIVER_BALANCE ); const differenceBetweenAmountAndFee = amount.minus(transactionFees); - const calculatedTransactionFees = differenceBetweenAmountAndFee.lessThan( + const calculatedTransactionFees = differenceBetweenAmountAndFee.isLessThan( minRewardsReceiverBalance ) ? amount diff --git a/source/renderer/app/components/wallet/WalletSendForm.js b/source/renderer/app/components/wallet/WalletSendForm.js index 7cda63534b..f759a214aa 100755 --- a/source/renderer/app/components/wallet/WalletSendForm.js +++ b/source/renderer/app/components/wallet/WalletSendForm.js @@ -356,7 +356,7 @@ export default class WalletSendForm extends Component { let total = null; if (isTransactionFeeCalculated) { fees = transactionFee.toFormat(currencyMaxFractionalDigits); - total = amount.add(transactionFee).toFormat(currencyMaxFractionalDigits); + total = amount.plus(transactionFee).toFormat(currencyMaxFractionalDigits); } const buttonClasses = classnames(['primary', styles.nextButton]); diff --git a/source/renderer/app/stores/StakingStore.js b/source/renderer/app/stores/StakingStore.js index 41d26a4d98..6f09d45a1b 100644 --- a/source/renderer/app/stores/StakingStore.js +++ b/source/renderer/app/stores/StakingStore.js @@ -693,7 +693,7 @@ export default class StakingStore extends Store { syncState, } = inputWallet; const { withdrawals } = this.stores.transactions; - const reward = rewards.add(withdrawals[walletId]); + const reward = rewards.plus(withdrawals[walletId]); const syncingProgress = get(syncState, 'progress.quantity', ''); return { wallet, reward, isRestoring, syncingProgress }; }; diff --git a/source/renderer/app/utils/formatters.js b/source/renderer/app/utils/formatters.js index bc31bf11c8..6751a7ffd6 100644 --- a/source/renderer/app/utils/formatters.js +++ b/source/renderer/app/utils/formatters.js @@ -41,31 +41,31 @@ export const shortNumber = (value: number | BigNumber): string => { let formattedAmount = ''; if (amount.isZero()) { formattedAmount = '0'; - } else if (amount.lessThan(1000)) { - formattedAmount = `${amount.round( + } else if (amount.isLessThan(1000)) { + formattedAmount = `${amount.decimalPlaces( DECIMAL_PLACES_IN_ADA, BigNumber.ROUND_DOWN )}`; - } else if (amount.lessThan(1000000)) { + } else if (amount.isLessThan(1000000)) { formattedAmount = `${amount .dividedBy(1000) - .round(1, BigNumber.ROUND_DOWN)}K`; - } else if (amount.lessThan(1000000000)) { + .decimalPlaces(1, BigNumber.ROUND_DOWN)}K`; + } else if (amount.isLessThan(1000000000)) { formattedAmount = `${amount .dividedBy(1000000) - .round(1, BigNumber.ROUND_DOWN)}M`; - } else if (amount.lessThan(1000000000000)) { + .decimalPlaces(1, BigNumber.ROUND_DOWN)}M`; + } else if (amount.isLessThan(1000000000000)) { formattedAmount = `${amount .dividedBy(1000000000) - .round(1, BigNumber.ROUND_DOWN)}B`; - } else if (amount.lessThan(1000000000000000)) { + .decimalPlaces(1, BigNumber.ROUND_DOWN)}B`; + } else if (amount.isLessThan(1000000000000000)) { formattedAmount = `${amount .dividedBy(1000000000000) - .round(1, BigNumber.ROUND_DOWN)}T`; + .decimalPlaces(1, BigNumber.ROUND_DOWN)}T`; } else { formattedAmount = `${amount .dividedBy(1000000000000000) - .round(1, BigNumber.ROUND_DOWN)}Q`; + .decimalPlaces(1, BigNumber.ROUND_DOWN)}Q`; } return formattedAmount; }; diff --git a/source/renderer/app/utils/transaction.js b/source/renderer/app/utils/transaction.js index 6387874c1b..cc008a52a5 100644 --- a/source/renderer/app/utils/transaction.js +++ b/source/renderer/app/utils/transaction.js @@ -85,10 +85,10 @@ export const isTransactionAmountInFilterRange = ( ? new BigNumber(0) : new BigNumber(toAmount); const compareFrom = fromAmount - ? amount.absoluteValue().greaterThanOrEqualTo(min) + ? amount.absoluteValue().isGreaterThanOrEqualTo(min) : true; const compareTo = toAmount - ? amount.absoluteValue().lessThanOrEqualTo(max) + ? amount.absoluteValue().isLessThanOrEqualTo(max) : true; return compareFrom && compareTo; diff --git a/tests/transactions/e2e/steps/transactions.js b/tests/transactions/e2e/steps/transactions.js index 944b5f6f96..869f3fde08 100644 --- a/tests/transactions/e2e/steps/transactions.js +++ b/tests/transactions/e2e/steps/transactions.js @@ -234,7 +234,7 @@ Then(/^the latest transaction should show:$/, async function(table) { // NOTE: we use "add()" as this is outgoing transaction and amount is a negative value! const transactionAmount = new BigNumber(transactionAmounts[0]); const transactionAmountWithoutFees = transactionAmount - .add(this.fees) + .plus(this.fees) .toFormat(DECIMAL_PLACES_IN_ADA); expect(expectedData.amountWithoutFees).to.equal(transactionAmountWithoutFees); }); diff --git a/tests/wallets/e2e/steps/transfer-funds-wizard.js b/tests/wallets/e2e/steps/transfer-funds-wizard.js index a20ac37114..003b7dae29 100644 --- a/tests/wallets/e2e/steps/transfer-funds-wizard.js +++ b/tests/wallets/e2e/steps/transfer-funds-wizard.js @@ -95,7 +95,7 @@ Then(/^I should see increased rewards wallet balance and 0 ADA in Daedalus Balan async function() { const rewardsSelector = '.SidebarWalletsMenu_wallets button:nth-child(1) .SidebarWalletMenuItem_info'; const balanceSelector = '.SidebarWalletsMenu_wallets button:nth-child(2) .SidebarWalletMenuItem_info'; - const transferSumWithoutFees = this.rewardsWalletAmount.add(this.balanceWalletAmount); + const transferSumWithoutFees = this.rewardsWalletAmount.plus(this.balanceWalletAmount); const transferSumWithFees = transferSumWithoutFees.minus(this.transferFee); const initialRewardsFormattedAmount = formattedWalletAmount(this.rewardsWalletAmount, true, false); const initialBallanceFormattedAmount = formattedWalletAmount(this.balanceWalletAmount, true, false); diff --git a/yarn.lock b/yarn.lock index 1c16f6723e..d89bf93886 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3326,9 +3326,9 @@ bigi@^1.1.0, bigi@^1.4.0, bigi@^1.4.1: version "1.4.2" resolved "https://registry.yarnpkg.com/bigi/-/bigi-1.4.2.tgz#9c665a95f88b8b08fc05cfd731f561859d725825" -bignumber.js@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-5.0.0.tgz#fbce63f09776b3000a83185badcde525daf34833" +bignumber.js@9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" bignumber.js@^9.0.0: version "9.0.1" From 417fcf25f041a71a1bb6616c438509ae7ede7cd5 Mon Sep 17 00:00:00 2001 From: Nikola Glumac Date: Thu, 21 Jan 2021 08:54:29 +0100 Subject: [PATCH 2/5] [DDW-543] Adds CHANGELOG entry --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f2d417413..a9bbec41f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ Changelog ========= +## vNext + +### Chores + +- Updated `bignumber.js` package ([PR 2305](https://github.com/input-output-hk/daedalus/pull/2305)) + ## 3.2.0-FC1 ### Features From c79b6776cddae043d759b3e41cf568594e151ead Mon Sep 17 00:00:00 2001 From: Yakov Karavelov Date: Thu, 21 Jan 2021 03:47:07 -0800 Subject: [PATCH 3/5] [DDW-536] Service agreement can be skipped by accessing to Settings (#2304) * [DDW-536]: Disable certain menu items on terms of use page * [DDW-536]: Update changelog * [DDW-536]: Disable certain menus on initial settings screen as well * [DDW-536]: Fix terms of use page menu handling * [DDW-536]: Handle menu items based on terms of use acceptance status of profile store * [DDW-536]: Rename variables and functions for disabling menu items * [DDW-536]: Update menu items initialization * [DDW-536] Updates CHANGELOG * [DDW-536]: Remove unnecessary channel for disabling menu items * [DDW-536] Updates CHANGELOG * [DDW-536] Updates comment * [DDW-536]: Handle navigation enabling properly when rebuilding app menu Co-authored-by: Nikola Glumac --- CHANGELOG.md | 6 ++++++ source/common/ipc/api.js | 13 ++++++++++++- source/main/index.js | 18 +++++++++++++++++- .../enableApplicationMenuNavigationChannel.js | 13 +++++++++++++ source/main/menus/osx.js | 9 +++++---- source/main/menus/win-linux.js | 9 +++++---- source/main/utils/buildAppMenus.js | 9 ++++++--- .../containers/profile/InitialSettingsPage.js | 7 ++++++- .../settings/categories/GeneralSettingsPage.js | 7 ++++++- .../enableApplicationMenuNavigationChannel.js | 13 +++++++++++++ source/renderer/app/stores/ProfileStore.js | 9 +++++++-- 11 files changed, 96 insertions(+), 17 deletions(-) create mode 100644 source/main/ipc/enableApplicationMenuNavigationChannel.js create mode 100644 source/renderer/app/ipc/enableApplicationMenuNavigationChannel.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f2d417413..feb18c5e7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ Changelog ========= +## vNext + +### Chores + +- Disabled application menu navigation before the "Terms of use" have been accepted ([PR 2304](https://github.com/input-output-hk/daedalus/pull/2304)) + ## 3.2.0-FC1 ### Features diff --git a/source/common/ipc/api.js b/source/common/ipc/api.js index c03b899ac3..98b9f2378c 100644 --- a/source/common/ipc/api.js +++ b/source/common/ipc/api.js @@ -177,7 +177,10 @@ export type SubmitBugReportRequestMainResponse = void; * Channel to rebuild the electron application menu after the language setting changes */ export const REBUILD_APP_MENU_CHANNEL = 'REBUILD_APP_MENU_CHANNEL'; -export type RebuildAppMenuRendererRequest = { isUpdateAvailable: boolean }; +export type RebuildAppMenuRendererRequest = { + isUpdateAvailable: boolean, + isNavigationEnabled: boolean, +}; export type RebuildAppMenuMainResponse = void; /** @@ -295,6 +298,14 @@ export const GENERATE_WALLET_MIGRATION_REPORT_CHANNEL = export type GenerateWalletMigrationReportRendererRequest = WalletMigrationReportData; export type GenerateWalletMigrationReportMainResponse = void; +/** + * Channel for enabling application menu navigation + */ +export const ENABLE_APPLICATION_MENU_NAVIGATION_CHANNEL = + 'ENABLE_APPLICATION_MENU_NAVIGATION_CHANNEL'; +export type EnableApplicationMenuNavigationRendererRequest = void; +export type EnableApplicationMenuNavigationMainResponse = void; + /** * Channel for generating wallet migration report */ diff --git a/source/main/index.js b/source/main/index.js index 0edc4a8680..6826650256 100644 --- a/source/main/index.js +++ b/source/main/index.js @@ -37,6 +37,7 @@ import type { CheckDiskSpaceResponse } from '../common/types/no-disk-space.types import { logUsedVersion } from './utils/logUsedVersion'; import { setStateSnapshotLogChannel } from './ipc/set-log-state-snapshot'; import { generateWalletMigrationReportChannel } from './ipc/generateWalletMigrationReportChannel'; +import { enableApplicationMenuNavigationChannel } from './ipc/enableApplicationMenuNavigationChannel'; import { pauseActiveDownloads } from './ipc/downloadManagerChannel'; // import { isHardwareWalletSupportEnabled, isLedgerEnabled } from '../renderer/app/config/hardwareWalletsConfig'; @@ -202,7 +203,21 @@ const onAppReady = async () => { await safeExit(); }); - buildAppMenus(mainWindow, cardanoNode, locale, { isUpdateAvailable: false }); + buildAppMenus(mainWindow, cardanoNode, locale, { + isUpdateAvailable: false, + isNavigationEnabled: false, + }); + + await enableApplicationMenuNavigationChannel.onReceive( + () => + new Promise((resolve) => { + buildAppMenus(mainWindow, cardanoNode, locale, { + isUpdateAvailable: false, + isNavigationEnabled: true, + }); + resolve(); + }) + ); await rebuildApplicationMenu.onReceive( (data) => @@ -210,6 +225,7 @@ const onAppReady = async () => { locale = getLocale(network); buildAppMenus(mainWindow, cardanoNode, locale, { isUpdateAvailable: data.isUpdateAvailable, + isNavigationEnabled: data.isNavigationEnabled, }); mainWindow.updateTitle(locale); resolve(); diff --git a/source/main/ipc/enableApplicationMenuNavigationChannel.js b/source/main/ipc/enableApplicationMenuNavigationChannel.js new file mode 100644 index 0000000000..4bf790e972 --- /dev/null +++ b/source/main/ipc/enableApplicationMenuNavigationChannel.js @@ -0,0 +1,13 @@ +// @flow +import { MainIpcChannel } from './lib/MainIpcChannel'; +import { ENABLE_APPLICATION_MENU_NAVIGATION_CHANNEL } from '../../common/ipc/api'; +import type { + EnableApplicationMenuNavigationMainResponse, + EnableApplicationMenuNavigationRendererRequest, +} from '../../common/ipc/api'; + +export const enableApplicationMenuNavigationChannel: // IpcChannel +MainIpcChannel< + EnableApplicationMenuNavigationRendererRequest, + EnableApplicationMenuNavigationMainResponse +> = new MainIpcChannel(ENABLE_APPLICATION_MENU_NAVIGATION_CHANNEL); diff --git a/source/main/menus/osx.js b/source/main/menus/osx.js index 6817e8b3f6..db2a1d554c 100644 --- a/source/main/menus/osx.js +++ b/source/main/menus/osx.js @@ -19,6 +19,7 @@ export const osxMenu = ( translations: {}, locale: string, isUpdateAvailable: boolean, + isNavigationEnabled: boolean, translation: Function = getTranslation(translations, id) ) => [ { @@ -29,7 +30,7 @@ export const osxMenu = ( click() { actions.openAboutDialog(); }, - enabled: !isUpdateAvailable, + enabled: !isUpdateAvailable && isNavigationEnabled, }, { type: 'separator' }, { @@ -38,7 +39,7 @@ export const osxMenu = ( click() { actions.openSettingsPage(); }, - enabled: !isUpdateAvailable, + enabled: !isUpdateAvailable && isNavigationEnabled, }, { label: translation('daedalus.walletSettings'), @@ -46,7 +47,7 @@ export const osxMenu = ( click() { actions.openWalletSettingsPage(); }, - enabled: !isUpdateAvailable, + enabled: !isUpdateAvailable && isNavigationEnabled, }, { type: 'separator' }, { @@ -190,7 +191,7 @@ export const osxMenu = ( click() { actions.openDaedalusDiagnosticsDialog(); }, - enabled: !isUpdateAvailable, + enabled: !isUpdateAvailable && isNavigationEnabled, }, ]), }, diff --git a/source/main/menus/win-linux.js b/source/main/menus/win-linux.js index e6954eeda2..ebbca67db5 100644 --- a/source/main/menus/win-linux.js +++ b/source/main/menus/win-linux.js @@ -19,6 +19,7 @@ export const winLinuxMenu = ( translations: {}, locale: string, isUpdateAvailable: boolean, + isNavigationEnabled: boolean, translation: Function = getTranslation(translations, id) ) => [ { @@ -29,7 +30,7 @@ export const winLinuxMenu = ( click() { actions.openAboutDialog(); }, - enabled: !isUpdateAvailable, + enabled: !isUpdateAvailable && isNavigationEnabled, }, { label: translation('daedalus.close'), @@ -97,7 +98,7 @@ export const winLinuxMenu = ( click() { actions.openSettingsPage(); }, - enabled: !isUpdateAvailable, + enabled: !isUpdateAvailable && isNavigationEnabled, }, { label: translation('daedalus.walletSettings'), @@ -105,7 +106,7 @@ export const winLinuxMenu = ( click() { actions.openWalletSettingsPage(); }, - enabled: !isUpdateAvailable, + enabled: !isUpdateAvailable && isNavigationEnabled, }, { type: 'separator', @@ -201,7 +202,7 @@ export const winLinuxMenu = ( click() { actions.openDaedalusDiagnosticsDialog(); }, - enabled: !isUpdateAvailable, + enabled: !isUpdateAvailable && isNavigationEnabled, }, ]), }, diff --git a/source/main/utils/buildAppMenus.js b/source/main/utils/buildAppMenus.js index 055477e4ca..8b7a23ce9a 100644 --- a/source/main/utils/buildAppMenus.js +++ b/source/main/utils/buildAppMenus.js @@ -16,11 +16,12 @@ export const buildAppMenus = async ( locale: string, data: { isUpdateAvailable: boolean, + isNavigationEnabled: boolean, } ) => { const { ABOUT, DAEDALUS_DIAGNOSTICS } = DIALOGS; const { SETTINGS, WALLET_SETTINGS } = PAGES; - const { isUpdateAvailable } = data; + const { isUpdateAvailable, isNavigationEnabled } = data; const { isMacOS, isBlankScreenFixActive } = environment; const translations = require(`../locales/${locale}`); @@ -106,7 +107,8 @@ export const buildAppMenus = async ( menuActions, translations, locale, - isUpdateAvailable + isUpdateAvailable, + isNavigationEnabled ) ); Menu.setApplicationMenu(menu); @@ -118,7 +120,8 @@ export const buildAppMenus = async ( menuActions, translations, locale, - isUpdateAvailable + isUpdateAvailable, + isNavigationEnabled ) ); mainWindow.setMenu(menu); diff --git a/source/renderer/app/containers/profile/InitialSettingsPage.js b/source/renderer/app/containers/profile/InitialSettingsPage.js index 1db67991d2..cab493c7e6 100644 --- a/source/renderer/app/containers/profile/InitialSettingsPage.js +++ b/source/renderer/app/containers/profile/InitialSettingsPage.js @@ -23,8 +23,13 @@ export default class InitialSettingsPage extends Component { const { updateUserLocalSetting } = actions.profile; updateUserLocalSetting.trigger({ param, value }); const { isUpdateAvailable } = stores.appUpdate; + const { areTermsOfUseAccepted: isNavigationEnabled } = stores.profile; + if (param === 'locale') { - await rebuildApplicationMenu.send({ isUpdateAvailable }); + await rebuildApplicationMenu.send({ + isUpdateAvailable, + isNavigationEnabled, + }); } }; diff --git a/source/renderer/app/containers/settings/categories/GeneralSettingsPage.js b/source/renderer/app/containers/settings/categories/GeneralSettingsPage.js index bd5387e7e3..82abd5c216 100644 --- a/source/renderer/app/containers/settings/categories/GeneralSettingsPage.js +++ b/source/renderer/app/containers/settings/categories/GeneralSettingsPage.js @@ -13,10 +13,15 @@ export default class GeneralSettingsPage extends Component { handleSelectItem = async (param: string, value: string) => { const { actions, stores } = this.props; const { isUpdateAvailable } = stores.appUpdate; + const { areTermsOfUseAccepted: isNavigationEnabled } = stores.profile; const { updateUserLocalSetting } = actions.profile; + updateUserLocalSetting.trigger({ param, value }); if (param === 'locale') { - await rebuildApplicationMenu.send({ isUpdateAvailable }); + await rebuildApplicationMenu.send({ + isUpdateAvailable, + isNavigationEnabled, + }); } }; diff --git a/source/renderer/app/ipc/enableApplicationMenuNavigationChannel.js b/source/renderer/app/ipc/enableApplicationMenuNavigationChannel.js new file mode 100644 index 0000000000..2373f8ce40 --- /dev/null +++ b/source/renderer/app/ipc/enableApplicationMenuNavigationChannel.js @@ -0,0 +1,13 @@ +// @flow +import { ENABLE_APPLICATION_MENU_NAVIGATION_CHANNEL } from '../../../common/ipc/api'; +import type { + EnableApplicationMenuNavigationMainResponse, + EnableApplicationMenuNavigationRendererRequest, +} from '../../../common/ipc/api'; +import { RendererIpcChannel } from './lib/RendererIpcChannel'; + +export const enableApplicationMenuNavigationChannel: // IpcChannel +RendererIpcChannel< + EnableApplicationMenuNavigationMainResponse, + EnableApplicationMenuNavigationRendererRequest +> = new RendererIpcChannel(ENABLE_APPLICATION_MENU_NAVIGATION_CHANNEL); diff --git a/source/renderer/app/stores/ProfileStore.js b/source/renderer/app/stores/ProfileStore.js index d1c6200a83..dac935fa04 100644 --- a/source/renderer/app/stores/ProfileStore.js +++ b/source/renderer/app/stores/ProfileStore.js @@ -14,6 +14,7 @@ import { logger } from '../utils/logging'; import { setStateSnapshotLogChannel } from '../ipc/setStateSnapshotLogChannel'; import { getDesktopDirectoryPathChannel } from '../ipc/getDesktopDirectoryPathChannel'; import { getSystemLocaleChannel } from '../ipc/getSystemLocaleChannel'; +import { enableApplicationMenuNavigationChannel } from '../ipc/enableApplicationMenuNavigationChannel'; import { LOCALES } from '../../../common/types/locales.types'; import { compressLogsChannel, @@ -302,10 +303,14 @@ export default class ProfileStore extends Store { _acceptTermsOfUse = async () => { await this.setTermsOfUseAcceptanceRequest.execute(); await this.getTermsOfUseAcceptanceRequest.execute(); + await enableApplicationMenuNavigationChannel.send(); }; - _getTermsOfUseAcceptance = () => { - this.getTermsOfUseAcceptanceRequest.execute(); + _getTermsOfUseAcceptance = async () => { + await this.getTermsOfUseAcceptanceRequest.execute(); + if (this.getTermsOfUseAcceptanceRequest.result) { + await enableApplicationMenuNavigationChannel.send(); + } }; _acceptDataLayerMigration = async () => { From a0f0b757ec21c80a1f538bd4c74db69be3d316d3 Mon Sep 17 00:00:00 2001 From: Nikola Glumac Date: Thu, 21 Jan 2021 14:32:58 +0100 Subject: [PATCH 4/5] [DDW-543] Inlcude bignumber.js in installers --- installers/common/MacInstaller.hs | 1 + yarn2nix.nix | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/installers/common/MacInstaller.hs b/installers/common/MacInstaller.hs index 7851c083ff..af17638bd5 100644 --- a/installers/common/MacInstaller.hs +++ b/installers/common/MacInstaller.hs @@ -279,6 +279,7 @@ buildElectronApp darwinConfig@DarwinConfig{dcAppName, dcAppNameApp} installerCon , "cross-fetch" , "trezor-connect" , "js-chain-libs-node" + , "bignumber.js" ] mapM_ (\lib -> do cptree ("../node_modules" lib) ((fromText pathtoapp) "Contents/Resources/app/node_modules" lib) diff --git a/yarn2nix.nix b/yarn2nix.nix index 7e3b51e86f..bcf1b147e9 100644 --- a/yarn2nix.nix +++ b/yarn2nix.nix @@ -121,7 +121,7 @@ yarn2nix.mkYarnPackage { rm -rf $out/resources/app/{installers,launcher-config.yaml,gulpfile.js,home} mkdir -pv $out/resources/app/node_modules - cp -rv $node_modules/{\@babel,regenerator-runtime,node-fetch,\@trezor,runtypes,parse-uri,randombytes,safe-buffer,bip66,pushdata-bitcoin,bitcoin-ops,typeforce,varuint-bitcoin,bigi,create-hash,merkle-lib,blake2b,nanoassert,blake2b-wasm,bs58check,bs58,base-x,create-hmac,ecurve,wif,ms,keccak,trezor-link,semver-compare,protobufjs-old-fixed-webpack,bytebuffer-old-fixed-webpack,long,object.values,define-properties,object-keys,has,function-bind,es-abstract,has-symbols,json-stable-stringify,tiny-worker,hd-wallet,cashaddrjs,big-integer,queue,inherits,bchaddrjs,cross-fetch,trezor-connect,js-chain-libs-node} $out/resources/app/node_modules + cp -rv $node_modules/{\@babel,regenerator-runtime,node-fetch,\@trezor,runtypes,parse-uri,randombytes,safe-buffer,bip66,pushdata-bitcoin,bitcoin-ops,typeforce,varuint-bitcoin,bigi,create-hash,merkle-lib,blake2b,nanoassert,blake2b-wasm,bs58check,bs58,base-x,create-hmac,ecurve,wif,ms,keccak,trezor-link,semver-compare,protobufjs-old-fixed-webpack,bytebuffer-old-fixed-webpack,long,object.values,define-properties,object-keys,has,function-bind,es-abstract,has-symbols,json-stable-stringify,tiny-worker,hd-wallet,cashaddrjs,big-integer,queue,inherits,bchaddrjs,cross-fetch,trezor-connect,js-chain-libs-node,bignumber.js} $out/resources/app/node_modules cd $out/resources/app/ unzip ${./nix/windows-usb-libs.zip} @@ -164,7 +164,7 @@ yarn2nix.mkYarnPackage { mkdir -p $out/share/fonts ln -sv $out/share/daedalus/renderer/assets $out/share/fonts/daedalus mkdir -pv $out/share/daedalus/node_modules - cp -rv $node_modules/{\@babel,regenerator-runtime,node-fetch,\@trezor,runtypes,parse-uri,randombytes,safe-buffer,bip66,pushdata-bitcoin,bitcoin-ops,typeforce,varuint-bitcoin,bigi,create-hash,merkle-lib,blake2b,nanoassert,blake2b-wasm,bs58check,bs58,base-x,create-hmac,ecurve,wif,ms,keccak,trezor-link,semver-compare,protobufjs-old-fixed-webpack,bytebuffer-old-fixed-webpack,long,object.values,define-properties,object-keys,has,function-bind,es-abstract,has-symbols,json-stable-stringify,tiny-worker,hd-wallet,cashaddrjs,big-integer,queue,inherits,bchaddrjs,cross-fetch,trezor-connect,js-chain-libs-node} $out/share/daedalus/node_modules/ + cp -rv $node_modules/{\@babel,regenerator-runtime,node-fetch,\@trezor,runtypes,parse-uri,randombytes,safe-buffer,bip66,pushdata-bitcoin,bitcoin-ops,typeforce,varuint-bitcoin,bigi,create-hash,merkle-lib,blake2b,nanoassert,blake2b-wasm,bs58check,bs58,base-x,create-hmac,ecurve,wif,ms,keccak,trezor-link,semver-compare,protobufjs-old-fixed-webpack,bytebuffer-old-fixed-webpack,long,object.values,define-properties,object-keys,has,function-bind,es-abstract,has-symbols,json-stable-stringify,tiny-worker,hd-wallet,cashaddrjs,big-integer,queue,inherits,bchaddrjs,cross-fetch,trezor-connect,js-chain-libs-node,bignumber.js} $out/share/daedalus/node_modules/ find $out $NIX_BUILD_TOP -name '*.node' mkdir -pv $out/share/daedalus/build From 6fcec5468faf0914a85f6041dfa05f324f060d61 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 22 Jan 2021 11:01:42 +0100 Subject: [PATCH 5/5] [DDW-543] Fix bignumber issues on stake pools page --- .../DelegationStepsChooseWalletDialog.js | 2 +- .../staking/dialogs/DelegationSetupWizardDialogContainer.js | 2 +- source/renderer/app/utils/transaction.js | 2 +- source/renderer/app/utils/walletsForStakePoolsRanking.js | 2 +- tests/transactions/e2e/steps/transactions.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/source/renderer/app/components/staking/delegation-setup-wizard/DelegationStepsChooseWalletDialog.js b/source/renderer/app/components/staking/delegation-setup-wizard/DelegationStepsChooseWalletDialog.js index bf7bb4e95a..a3199e1478 100644 --- a/source/renderer/app/components/staking/delegation-setup-wizard/DelegationStepsChooseWalletDialog.js +++ b/source/renderer/app/components/staking/delegation-setup-wizard/DelegationStepsChooseWalletDialog.js @@ -151,7 +151,7 @@ export default class DelegationStepsChooseWalletDialog extends Component< // Wallet is restoring if (isRestoring) errorMessage = messages.errorRestoringWallet; // Wallet only has Reward balance - else if (!amount.isZero() && amount.equals(reward)) + else if (!amount.isZero() && amount.isEqualTo(reward)) errorMessage = messages.errorMinDelegationFundsRewardsOnly; // Wallet balance < min delegation funds else errorMessage = messages.errorMinDelegationFunds; diff --git a/source/renderer/app/containers/staking/dialogs/DelegationSetupWizardDialogContainer.js b/source/renderer/app/containers/staking/dialogs/DelegationSetupWizardDialogContainer.js index fe1ea0a06a..da6dbb0dc5 100644 --- a/source/renderer/app/containers/staking/dialogs/DelegationSetupWizardDialogContainer.js +++ b/source/renderer/app/containers/staking/dialogs/DelegationSetupWizardDialogContainer.js @@ -68,7 +68,7 @@ export default class DelegationSetupWizardDialogContainer extends Component< ) => walletAmount && walletAmount.gte(new BigNumber(MIN_DELEGATION_FUNDS)) && - !walletAmount.equals(walletReward); + !walletAmount.isEqualTo(walletReward); get selectedWalletId() { return get( diff --git a/source/renderer/app/utils/transaction.js b/source/renderer/app/utils/transaction.js index cc008a52a5..bcea6930e9 100644 --- a/source/renderer/app/utils/transaction.js +++ b/source/renderer/app/utils/transaction.js @@ -268,7 +268,7 @@ export const validateFilterForm = (values: { if ( fromAmount && toAmount && - new BigNumber(fromAmount).greaterThan(new BigNumber(toAmount)) + new BigNumber(fromAmount).isGreaterThan(new BigNumber(toAmount)) ) { invalidFields.toAmount = true; } diff --git a/source/renderer/app/utils/walletsForStakePoolsRanking.js b/source/renderer/app/utils/walletsForStakePoolsRanking.js index 6a5debb161..0bd5b60cf5 100644 --- a/source/renderer/app/utils/walletsForStakePoolsRanking.js +++ b/source/renderer/app/utils/walletsForStakePoolsRanking.js @@ -6,7 +6,7 @@ import { MIN_DELEGATION_FUNDS } from '../config/stakingConfig'; export const getFilteredWallets = (wallets: Array): Array => { return wallets.filter( (w: Wallet) => - w.amount.greaterThanOrEqualTo(new BigNumber(MIN_DELEGATION_FUNDS)) && + w.amount.isGreaterThanOrEqualTo(new BigNumber(MIN_DELEGATION_FUNDS)) && !w.isLegacy ); }; diff --git a/tests/transactions/e2e/steps/transactions.js b/tests/transactions/e2e/steps/transactions.js index 869f3fde08..dedb408c12 100644 --- a/tests/transactions/e2e/steps/transactions.js +++ b/tests/transactions/e2e/steps/transactions.js @@ -123,7 +123,7 @@ When(/^the transaction fees are calculated$/, async function() { '.AmountInputSkin_fees' ); const transactionFeeAmount = new BigNumber(transactionFeeText.substr(2, 8)); - return transactionFeeAmount.greaterThan(0) ? transactionFeeAmount : false; + return transactionFeeAmount.isGreaterThan(0) ? transactionFeeAmount : false; }); });