From e9616e7289fc3408a6551c85fb2d70a20788508a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Tue, 31 Oct 2017 14:31:11 -0300 Subject: [PATCH] receive view --- .../add/create-wallet/create-wallet.html | 2 +- src/pages/add/create-wallet/create-wallet.ts | 4 +- src/pages/home/home.ts | 1 - src/pages/receive/receive.ts | 52 +++++++++++++++---- src/providers/profile/profile.ts | 6 +-- src/providers/wallet/wallet.ts | 6 ++- 6 files changed, 52 insertions(+), 19 deletions(-) diff --git a/src/pages/add/create-wallet/create-wallet.html b/src/pages/add/create-wallet/create-wallet.html index d4f3189dd..93c918e32 100644 --- a/src/pages/add/create-wallet/create-wallet.html +++ b/src/pages/add/create-wallet/create-wallet.html @@ -87,7 +87,7 @@ Testnet - + diff --git a/src/pages/add/create-wallet/create-wallet.ts b/src/pages/add/create-wallet/create-wallet.ts index 8ef3754ec..979276f10 100644 --- a/src/pages/add/create-wallet/create-wallet.ts +++ b/src/pages/add/create-wallet/create-wallet.ts @@ -76,7 +76,7 @@ export class CreateWalletPage implements OnInit { confirmPassword: [''], recoveryPhraseBackedUp: [''], derivationPath: [''], - testnet: [''], + testnetEnabled: [''], singleAddress: [''], }); @@ -162,9 +162,7 @@ export class CreateWalletPage implements OnInit { coin: this.formData.coin }; - console.log(opts); this.profileProvider.createWallet(opts).then((wallet) => { - console.log(wallet); this.navCtrl.setRoot(HomePage); this.navCtrl.popToRoot(); }); diff --git a/src/pages/home/home.ts b/src/pages/home/home.ts index 1649baa0f..f2fcefe17 100644 --- a/src/pages/home/home.ts +++ b/src/pages/home/home.ts @@ -23,7 +23,6 @@ export class HomePage { ) { this.checkUpdate(); this.wallets = this.profileProvider.getWallets(); - console.log(this.wallets); this.updateAllWallets(); } diff --git a/src/pages/receive/receive.ts b/src/pages/receive/receive.ts index 8c01ad718..867e5dc01 100644 --- a/src/pages/receive/receive.ts +++ b/src/pages/receive/receive.ts @@ -1,6 +1,10 @@ import { Component } from '@angular/core'; import { NavController, NavParams } from 'ionic-angular'; import { AmountPage } from '../send/amount/amount'; +import { WalletProvider } from '../../providers/wallet/wallet'; +import { ProfileProvider } from '../../providers/profile/profile'; + +import * as _ from 'lodash'; @Component({ selector: 'page-receive', @@ -11,27 +15,57 @@ export class ReceivePage { public protocolHandler: string; public address: string; public qrAddress: string; + public wallets: any; + public wallet: any; - constructor(public navCtrl: NavController, public navParams: NavParams) { - this.protocolHandler = "bitcoin"; - this.address = "1FgGP9dKqtWC1Q9xGhPYVmAeyezeZCFjhf"; + constructor( + private navCtrl: NavController, + private navParams: NavParams, + private profileProvider: ProfileProvider, + private walletProvider: WalletProvider + ) { + this.wallets = this.profileProvider.getWallets(); this.updateQrAddress(); } ionViewDidLoad() { console.log('ionViewDidLoad ReceivePage'); + this.onSelect(this.checkSelectedWallet(this.wallet, this.wallets)); } - requestSpecificAmount() { - this.navCtrl.push(AmountPage, {address: this.address, sending: false}); + private onSelect(wallet: any): any { + this.wallet = wallet; + this.setProtocolHandler(); + this.setAddress(); } - setAddress() { - this.address = this.address === "1FgGP9dKqtWC1Q9xGhPYVmAeyezeZCFjhf" ? "1RTes3reeRTs1Q9xGhPYVmQFrdUyCr3EsX" : "1FgGP9dKqtWC1Q9xGhPYVmAeyezeZCFjhf"; - this.updateQrAddress(); + private setProtocolHandler(): void { + this.protocolHandler = this.walletProvider.getProtocolHandler(this.wallet); } - updateQrAddress () { + private checkSelectedWallet(wallet: any, wallets: any): any { + if (!wallet) return wallets[0]; + let w = _.find(wallets, (w: any) => { + return w.id == wallet.id; + }); + if (!w) return wallets[0]; + return wallet; + } + + public requestSpecificAmount(): void { + this.navCtrl.push(AmountPage, { address: this.address, sending: false }); + } + + private setAddress(newAddr?: boolean): void { + this.walletProvider.getAddress(this.wallet, newAddr).then((addr) => { + this.address = addr; + this.updateQrAddress(); + }).catch((err) => { + console.log(err); + }); + } + + private updateQrAddress(): void { this.qrAddress = this.protocolHandler + ":" + this.address; } diff --git a/src/providers/profile/profile.ts b/src/providers/profile/profile.ts index 6a037c374..4e735ac27 100644 --- a/src/providers/profile/profile.ts +++ b/src/providers/profile/profile.ts @@ -71,7 +71,7 @@ export class ProfileProvider { private needsBackup(wallet: any): Promise { return new Promise((resolve, reject) => { if (!this.requiresBackup(wallet)) { - return reject(false); + return resolve(false); } this.persistenceProvider.getBackupFlag(wallet.credentials.walletId).then((val: string) => { @@ -218,13 +218,13 @@ export class ProfileProvider { } return resolve(); }).catch((err: any) => { - return reject(err); + console.log(err); }); }); } public setLastKnownBalance(wid: string, balance: number): void { - this.persistenceProvider.setBalanceCache(wid, { balance: balance, updatedOn: Math.floor(Date.now() / 1000), }); + this.persistenceProvider.setBalanceCache(wid, { balance: balance, updatedOn: Math.floor(Date.now() / 1000) }); } private runValidation(wallet: any, delay?: number, retryDelay?: number) { diff --git a/src/providers/wallet/wallet.ts b/src/providers/wallet/wallet.ts index cd07e78a9..26794dbc7 100644 --- a/src/providers/wallet/wallet.ts +++ b/src/providers/wallet/wallet.ts @@ -223,6 +223,8 @@ export class WalletProvider { cache.alternativeBalanceAvailable = true; cache.isRateAvailable = true; + }).catch((err) => { + console.log(err); }); }; @@ -290,7 +292,7 @@ export class WalletProvider { resolve(status); }).catch((err) => { return reject(err); - });; + }); }); } @@ -309,7 +311,7 @@ export class WalletProvider { }); } - private getAddress(wallet: any, forceNew: boolean): Promise { + public getAddress(wallet: any, forceNew: boolean): Promise { return new Promise((resolve, reject) => { this.persistenceProvider.getLastAddress(wallet.id).then((addr) => { if (!forceNew && addr) return resolve(addr);