Skip to content

Commit

Permalink
[DDW-491] Merges-in latest develop branch and fix conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
Tomislav Horaček committed Jan 25, 2021
2 parents 21f2e95 + 092b42b commit e8e1cd3
Show file tree
Hide file tree
Showing 26 changed files with 128 additions and 49 deletions.
7 changes: 6 additions & 1 deletion CHANGELOG.md
Expand Up @@ -5,7 +5,12 @@ Changelog

### Features

- Added address verification for for "Ledger" hardware wallet devices ([PR 2282](https://github.com/input-output-hk/daedalus/pull/2282))
- Added address verification for "Ledger" hardware wallet devices ([PR 2282](https://github.com/input-output-hk/daedalus/pull/2282))

### Chores

- Updated `bignumber.js` package ([PR 2305](https://github.com/input-output-hk/daedalus/pull/2305))
- 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

Expand Down
1 change: 1 addition & 0 deletions installers/common/MacInstaller.hs
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -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",
Expand Down
13 changes: 12 additions & 1 deletion source/common/ipc/api.js
Expand Up @@ -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;

/**
Expand Down Expand Up @@ -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
*/
Expand Down
18 changes: 17 additions & 1 deletion source/main/index.js
Expand Up @@ -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';

Expand Down Expand Up @@ -202,14 +203,29 @@ 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) =>
new Promise((resolve) => {
locale = getLocale(network);
buildAppMenus(mainWindow, cardanoNode, locale, {
isUpdateAvailable: data.isUpdateAvailable,
isNavigationEnabled: data.isNavigationEnabled,
});
mainWindow.updateTitle(locale);
resolve();
Expand Down
13 changes: 13 additions & 0 deletions 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<Incoming, Outgoing>
MainIpcChannel<
EnableApplicationMenuNavigationRendererRequest,
EnableApplicationMenuNavigationMainResponse
> = new MainIpcChannel(ENABLE_APPLICATION_MENU_NAVIGATION_CHANNEL);
9 changes: 5 additions & 4 deletions source/main/menus/osx.js
Expand Up @@ -19,6 +19,7 @@ export const osxMenu = (
translations: {},
locale: string,
isUpdateAvailable: boolean,
isNavigationEnabled: boolean,
translation: Function = getTranslation(translations, id)
) => [
{
Expand All @@ -29,7 +30,7 @@ export const osxMenu = (
click() {
actions.openAboutDialog();
},
enabled: !isUpdateAvailable,
enabled: !isUpdateAvailable && isNavigationEnabled,
},
{ type: 'separator' },
{
Expand All @@ -38,15 +39,15 @@ export const osxMenu = (
click() {
actions.openSettingsPage();
},
enabled: !isUpdateAvailable,
enabled: !isUpdateAvailable && isNavigationEnabled,
},
{
label: translation('daedalus.walletSettings'),
accelerator: 'Command+;',
click() {
actions.openWalletSettingsPage();
},
enabled: !isUpdateAvailable,
enabled: !isUpdateAvailable && isNavigationEnabled,
},
{ type: 'separator' },
{
Expand Down Expand Up @@ -190,7 +191,7 @@ export const osxMenu = (
click() {
actions.openDaedalusDiagnosticsDialog();
},
enabled: !isUpdateAvailable,
enabled: !isUpdateAvailable && isNavigationEnabled,
},
]),
},
Expand Down
9 changes: 5 additions & 4 deletions source/main/menus/win-linux.js
Expand Up @@ -19,6 +19,7 @@ export const winLinuxMenu = (
translations: {},
locale: string,
isUpdateAvailable: boolean,
isNavigationEnabled: boolean,
translation: Function = getTranslation(translations, id)
) => [
{
Expand All @@ -29,7 +30,7 @@ export const winLinuxMenu = (
click() {
actions.openAboutDialog();
},
enabled: !isUpdateAvailable,
enabled: !isUpdateAvailable && isNavigationEnabled,
},
{
label: translation('daedalus.close'),
Expand Down Expand Up @@ -97,15 +98,15 @@ export const winLinuxMenu = (
click() {
actions.openSettingsPage();
},
enabled: !isUpdateAvailable,
enabled: !isUpdateAvailable && isNavigationEnabled,
},
{
label: translation('daedalus.walletSettings'),
accelerator: 'Alt+Ctrl+S',
click() {
actions.openWalletSettingsPage();
},
enabled: !isUpdateAvailable,
enabled: !isUpdateAvailable && isNavigationEnabled,
},
{
type: 'separator',
Expand Down Expand Up @@ -201,7 +202,7 @@ export const winLinuxMenu = (
click() {
actions.openDaedalusDiagnosticsDialog();
},
enabled: !isUpdateAvailable,
enabled: !isUpdateAvailable && isNavigationEnabled,
},
]),
},
Expand Down
9 changes: 6 additions & 3 deletions source/main/utils/buildAppMenus.js
Expand Up @@ -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}`);
Expand Down Expand Up @@ -106,7 +107,8 @@ export const buildAppMenus = async (
menuActions,
translations,
locale,
isUpdateAvailable
isUpdateAvailable,
isNavigationEnabled
)
);
Menu.setApplicationMenu(menu);
Expand All @@ -118,7 +120,8 @@ export const buildAppMenus = async (
menuActions,
translations,
locale,
isUpdateAvailable
isUpdateAvailable,
isNavigationEnabled
)
);
mainWindow.setMenu(menu);
Expand Down
4 changes: 2 additions & 2 deletions source/renderer/app/api/api.js
Expand Up @@ -570,7 +570,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 };
Expand Down Expand Up @@ -1699,7 +1699,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
)
Expand Down
Expand Up @@ -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;
Expand Down
Expand Up @@ -156,7 +156,7 @@ export default class Step2ConfirmationDialog extends Component<Props> {
MIN_REWARDS_REDEMPTION_RECEIVER_BALANCE
);
const differenceBetweenAmountAndFee = amount.minus(transactionFees);
const calculatedTransactionFees = differenceBetweenAmountAndFee.lessThan(
const calculatedTransactionFees = differenceBetweenAmountAndFee.isLessThan(
minRewardsReceiverBalance
)
? amount
Expand Down
2 changes: 1 addition & 1 deletion source/renderer/app/components/wallet/WalletSendForm.js
Expand Up @@ -356,7 +356,7 @@ export default class WalletSendForm extends Component<Props, State> {
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]);
Expand Down
Expand Up @@ -23,8 +23,13 @@ export default class InitialSettingsPage extends Component<InjectedProps> {
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,
});
}
};

Expand Down
Expand Up @@ -13,10 +13,15 @@ export default class GeneralSettingsPage extends Component<InjectedProps> {
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,
});
}
};

Expand Down
Expand Up @@ -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(
Expand Down
13 changes: 13 additions & 0 deletions 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<Incoming, Outgoing>
RendererIpcChannel<
EnableApplicationMenuNavigationMainResponse,
EnableApplicationMenuNavigationRendererRequest
> = new RendererIpcChannel(ENABLE_APPLICATION_MENU_NAVIGATION_CHANNEL);
9 changes: 7 additions & 2 deletions source/renderer/app/stores/ProfileStore.js
Expand Up @@ -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,
Expand Down Expand Up @@ -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 () => {
Expand Down
2 changes: 1 addition & 1 deletion source/renderer/app/stores/StakingStore.js
Expand Up @@ -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 };
};
Expand Down

0 comments on commit e8e1cd3

Please sign in to comment.