Skip to content

Commit

Permalink
Merge branch 'feature/ddw-1180-resync-wallet' of github.com:input-out…
Browse files Browse the repository at this point in the history
…put-hk/daedalus into feature/ddw-1180-resync-wallet
  • Loading branch information
Tomislav Horaček committed Jan 17, 2020
2 parents d89a009 + 832aa2b commit 0df6bc0
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 1 deletion.
1 change: 1 addition & 0 deletions source/renderer/app/actions/wallet-settings-actions.js
Expand Up @@ -22,4 +22,5 @@ export default class WalletSettingsActions {
exportToFile: Action<WalletExportToFileParams> = new Action();
startWalletUtxoPolling: Action<any> = new Action();
stopWalletUtxoPolling: Action<any> = new Action();
forceWalletResync: Action<{ walletId: string }> = new Action();
}
22 changes: 21 additions & 1 deletion source/renderer/app/api/api.js
Expand Up @@ -49,6 +49,7 @@ import { restoreWallet } from './wallets/requests/restoreWallet';
import { restoreLegacyWallet } from './wallets/requests/restoreLegacyWallet';
import { restoreByronWallet } from './wallets/requests/restoreByronWallet';
import { updateWallet } from './wallets/requests/updateWallet';
import { forceWalletResync } from './wallets/requests/forceWalletResync';
import { getWalletUtxos } from './wallets/requests/getWalletUtxos';
import { getWallet } from './wallets/requests/getWallet';
import { getWalletIdAndBalance } from './wallets/requests/getWalletIdAndBalance';
Expand Down Expand Up @@ -136,7 +137,7 @@ import type {
GetWalletRecoveryPhraseFromCertificateRequest,
ImportWalletFromKeyRequest,
ImportWalletFromFileRequest,
UpdateWalletRequest,
ForceWalletResyncRequest,
GetWalletUtxosRequest,
GetWalletRequest,
GetWalletIdAndBalanceRequest,
Expand All @@ -145,6 +146,7 @@ import type {
TransferFundsCalculateFeeResponse,
TransferFundsRequest,
TransferFundsResponse,
UpdateWalletRequest,
} from './wallets/types';

// News Types
Expand Down Expand Up @@ -1253,6 +1255,24 @@ export default class AdaApi {
}
};

forceWalletResync = async (
request: ForceWalletResyncRequest
): Promise<void> => {
const { walletId } = request;
Logger.debug('AdaApi::forceWalletResync called', {
walletId,
});
try {
const response = await forceWalletResync(this.config, {
walletId,
});
Logger.debug('AdaApi::forceWalletResync success', { response });
} catch (error) {
Logger.error('AdaApi::forceWalletResync error', { error });
throw new GenericApiError();
}
};

transferFundsCalculateFee = async (
request: TransferFundsCalculateFeeRequest
): Promise<BigNumber> => {
Expand Down
24 changes: 24 additions & 0 deletions source/renderer/app/api/wallets/requests/forceWalletResync.js
@@ -0,0 +1,24 @@
// @flow
import type { RequestConfig } from '../../common/types';
import { request } from '../../utils/request';

export type ForceWalletResyncParams = {
walletId: string,
};

export const forceWalletResync = (
config: RequestConfig,
{ walletId }: ForceWalletResyncParams
): Promise<*> =>
request(
{
method: 'PUT',
path: `/v2/wallets/${walletId}/tip`,
...config,
},
{},
{
slot_number: 0,
epoch_number: 0,
}
);
5 changes: 5 additions & 0 deletions source/renderer/app/api/wallets/types.js
Expand Up @@ -178,6 +178,11 @@ export type UpdateWalletRequest = {
walletId: string,
name: string,
};

export type ForceWalletResyncRequest = {
walletId: string,
};

export type ImportWalletFromKeyRequest = {
filePath: string,
spendingPassword: string,
Expand Down
10 changes: 10 additions & 0 deletions source/renderer/app/stores/WalletSettingsStore.js
Expand Up @@ -21,6 +21,9 @@ export default class WalletSettingsStore extends Store {
@observable getWalletUtxosRequest: Request<WalletUtxos> = new Request(
this.api.ada.getWalletUtxos
);
@observable forceWalletResyncRequest: Request<void> = new Request(
this.api.ada.forceWalletResync
);

@observable walletFieldBeingEdited = null;
@observable lastUpdatedWalletField = null;
Expand Down Expand Up @@ -54,6 +57,7 @@ export default class WalletSettingsStore extends Store {
walletSettingsActions.stopWalletUtxoPolling.listen(
this._stopWalletUtxoPolling
);
walletSettingsActions.forceWalletResync.listen(this._forceWalletResync);

sidebarActions.walletSelected.listen(this._onWalletSelected);
}
Expand Down Expand Up @@ -161,4 +165,10 @@ export default class WalletSettingsStore extends Store {
@action _onWalletSelected = () => {
this._updateWalletUtxos(null);
};

@action _forceWalletResync = async ({ walletId }: { walletId: string }) => {
await this.forceWalletResyncRequest.execute({ walletId });
this.forceWalletResyncRequest.reset();
this.stores.wallets.refreshWalletsData();
};
}

0 comments on commit 0df6bc0

Please sign in to comment.