copay-crown
Version:
A Secure Crown Wallet
503 lines (479 loc) • 19.3 kB
text/typescript
import { DecimalPipe } from '@angular/common';
import { HttpClient, HttpClientModule } from '@angular/common/http';
import { ErrorHandler, NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { File } from '@ionic-native/file';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
/* Native modules */
import { AndroidFingerprintAuth } from '@ionic-native/android-fingerprint-auth';
import { Clipboard } from '@ionic-native/clipboard';
import { FCM } from '@ionic-native/fcm';
import { QRScanner } from '@ionic-native/qr-scanner';
import { SocialSharing } from '@ionic-native/social-sharing';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';
import { Toast } from '@ionic-native/toast';
import { TouchID } from '@ionic-native/touch-id';
/* Modules */
import { TranslatePoHttpLoader } from '@biesbjerg/ngx-translate-po-http-loader';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { Level, NgLoggerModule } from '@nsalaun/ng-logger';
import { MomentModule } from 'angular2-moment';
import { NgxQRCodeModule } from 'ngx-qrcode2';
/* Copay App */
import { CopayApp } from './app.component';
/* Pages */
import { AddPage } from '../pages/add/add';
import { CopayersPage } from '../pages/add/copayers/copayers';
import { CreateWalletPage } from '../pages/add/create-wallet/create-wallet';
import { ImportWalletPage } from '../pages/add/import-wallet/import-wallet';
import { JoinWalletPage } from '../pages/add/join-wallet/join-wallet';
import { BackupGamePage } from '../pages/backup/backup-game/backup-game';
import { BackupWarningPage } from '../pages/backup/backup-warning/backup-warning';
import { FeedbackCompletePage } from '../pages/feedback/feedback-complete/feedback-complete';
import { FeedbackPage } from '../pages/feedback/feedback/feedback';
import { SendFeedbackPage } from '../pages/feedback/send-feedback/send-feedback';
import { FinishModalPage } from '../pages/finish/finish';
import { IncomingDataMenuPage } from '../pages/incoming-data-menu/incoming-data-menu';
import { BackupRequestPage } from '../pages/onboarding/backup-request/backup-request';
import { CollectEmailPage } from '../pages/onboarding/collect-email/collect-email';
import { DisclaimerPage } from '../pages/onboarding/disclaimer/disclaimer';
import { OnboardingPage } from '../pages/onboarding/onboarding';
import { TourPage } from '../pages/onboarding/tour/tour';
import { PaperWalletPage } from '../pages/paper-wallet/paper-wallet';
import { PayProPage } from '../pages/paypro/paypro';
import { FeeWarningPage } from '../pages/send/fee-warning/fee-warning';
import { BitcoinCashPage } from '../pages/settings/bitcoin-cash/bitcoin-cash';
import { TabsPage } from '../pages/tabs/tabs';
import { TxDetailsPage } from '../pages/tx-details/tx-details';
import { TxpDetailsPage } from '../pages/txp-details/txp-details';
import { WalletBalancePage } from '../pages/wallet-details/wallet-balance/wallet-balance';
import { WalletDetailsPage } from '../pages/wallet-details/wallet-details';
// Integrations: Amazon
import { AmazonPage } from '../pages/integrations/amazon/amazon';
import { AmazonCardDetailsPage } from '../pages/integrations/amazon/amazon-card-details/amazon-card-details';
import { BuyAmazonPage } from '../pages/integrations/amazon/buy-amazon/buy-amazon';
// Integrations: Coinbase
import { BuyCoinbasePage } from '../pages/integrations/coinbase/buy-coinbase/buy-coinbase';
import { CoinbasePage } from '../pages/integrations/coinbase/coinbase';
import { CoinbaseSettingsPage } from '../pages/integrations/coinbase/coinbase-settings/coinbase-settings';
import { CoinbaseTxDetailsPage } from '../pages/integrations/coinbase/coinbase-tx-details/coinbase-tx-details';
import { SellCoinbasePage } from '../pages/integrations/coinbase/sell-coinbase/sell-coinbase';
// Integrations: Glidera
import { BuyGlideraPage } from '../pages/integrations/glidera/buy-glidera/buy-glidera';
import { GlideraPage } from '../pages/integrations/glidera/glidera';
import { GlideraSettingsPage } from '../pages/integrations/glidera/glidera-settings/glidera-settings';
import { GlideraTxDetailsPage } from '../pages/integrations/glidera/glidera-tx-details/glidera-tx-details';
import { SellGlideraPage } from '../pages/integrations/glidera/sell-glidera/sell-glidera';
// Integrations: Mercado Libre
import { BuyMercadoLibrePage } from '../pages/integrations/mercado-libre/buy-mercado-libre/buy-mercado-libre';
import { MercadoLibrePage } from '../pages/integrations/mercado-libre/mercado-libre';
import { MercadoLibreCardDetailsPage } from '../pages/integrations/mercado-libre/mercado-libre-card-details/mercado-libre-card-details';
// Integrations: ShapeShift
import { ShapeshiftPage } from '../pages/integrations/shapeshift/shapeshift';
import { ShapeshiftConfirmPage } from '../pages/integrations/shapeshift/shapeshift-confirm/shapeshift-confirm';
import { ShapeshiftDetailsPage } from '../pages/integrations/shapeshift/shapeshift-details/shapeshift-details';
import { ShapeshiftShiftPage } from '../pages/integrations/shapeshift/shapeshift-shift/shapeshift-shift';
// Integrations: BitPayCard
import { BitPayCardPage } from '../pages/integrations/bitpay-card/bitpay-card';
import { BitPayCardIntroPage } from '../pages/integrations/bitpay-card/bitpay-card-intro/bitpay-card-intro';
import { BitPayCardTopUpPage } from '../pages/integrations/bitpay-card/bitpay-card-topup/bitpay-card-topup';
import { BitPaySettingsPage } from '../pages/integrations/bitpay-card/bitpay-settings/bitpay-settings';
/*Includes */
import { CardItemPage } from '../pages/includes/card-item/card-item';
import { FeedbackCardPage } from '../pages/includes/feedback-card/feedback-card';
import { GravatarPage } from '../pages/includes/gravatar/gravatar';
import { TxpPage } from '../pages/includes/txp/txp';
import { WalletActivityPage } from '../pages/includes/wallet-activity/wallet-activity';
import { WalletItemPage } from '../pages/includes/wallet-item/wallet-item';
import { WalletSelectorPage } from '../pages/includes/wallet-selector/wallet-selector';
/* Tabs */
import { HomePage } from '../pages/home/home';
import { ReceivePage } from '../pages/receive/receive';
import { ScanPage } from '../pages/scan/scan';
import { SendPage } from '../pages/send/send';
import { SettingsPage } from '../pages/settings/settings';
/* Home */
import { ActivityPage } from '../pages/home/activity/activity';
import { ProposalsPage } from '../pages/home/proposals/proposals';
/* Settings */
import { FingerprintModalPage } from '../pages/fingerprint/fingerprint';
import { PinModalPage } from '../pages/pin/pin';
import { AboutPage } from '../pages/settings/about/about';
import { SessionLogPage } from '../pages/settings/about/session-log/session-log';
import { TermsOfUsePage } from '../pages/settings/about/terms-of-use/terms-of-use';
import { AddressbookAddPage } from '../pages/settings/addressbook/add/add';
import { AddressbookPage } from '../pages/settings/addressbook/addressbook';
import { AddressbookViewPage } from '../pages/settings/addressbook/view/view';
import { AdvancedPage } from '../pages/settings/advanced/advanced';
import { AltCurrencyPage } from '../pages/settings/alt-currency/alt-currency';
import { EnabledServicesPage } from '../pages/settings/enabled-services/enabled-services';
import { FeePolicyPage } from '../pages/settings/fee-policy/fee-policy';
import { LanguagePage } from '../pages/settings/language/language';
import { LockPage } from '../pages/settings/lock/lock';
import { NotificationsPage } from '../pages/settings/notifications/notifications';
/* Wallet Settings */
import { WalletColorPage } from '../pages/settings/wallet-settings/wallet-color/wallet-color';
import { WalletNamePage } from '../pages/settings/wallet-settings/wallet-name/wallet-name';
import { WalletSettingsPage } from '../pages/settings/wallet-settings/wallet-settings';
/* Wallet Advanced Settings */
import { AllAddressesPage } from '../pages/settings/wallet-settings/wallet-settings-advanced/wallet-addresses/all-addresses/all-addresses';
import { WalletAddressesPage } from '../pages/settings/wallet-settings/wallet-settings-advanced/wallet-addresses/wallet-addresses';
import { WalletDeletePage } from '../pages/settings/wallet-settings/wallet-settings-advanced/wallet-delete/wallet-delete';
import { WalletExportPage } from '../pages/settings/wallet-settings/wallet-settings-advanced/wallet-export/wallet-export';
import { WalletExtendedPrivateKeyPage } from '../pages/settings/wallet-settings/wallet-settings-advanced/wallet-information/wallet-extended-private-key/wallet-extended-private-key';
import { WalletInformationPage } from '../pages/settings/wallet-settings/wallet-settings-advanced/wallet-information/wallet-information';
import { WalletServiceUrlPage } from '../pages/settings/wallet-settings/wallet-settings-advanced/wallet-service-url/wallet-service-url';
import { WalletSettingsAdvancedPage } from '../pages/settings/wallet-settings/wallet-settings-advanced/wallet-settings-advanced';
import { WalletTransactionHistoryPage } from '../pages/settings/wallet-settings/wallet-settings-advanced/wallet-transaction-history/wallet-transaction-history';
/* Send */
import { AmountPage } from '../pages/send/amount/amount';
import { ChooseFeeLevelPage } from '../pages/send/choose-fee-level/choose-fee-level';
import { ConfirmPage } from '../pages/send/confirm/confirm';
/* Receive */
import { CustomAmountPage } from '../pages/receive/custom-amount/custom-amount';
/* Pipes */
import { FiatToUnitPipe } from '../pipes/fiatToUnit';
import { KeysPipe } from '../pipes/keys';
import { OrderByPipe } from '../pipes/order-by';
import { SatToFiatPipe } from '../pipes/satToFiat';
import { SatToUnitPipe } from '../pipes/satToUnit';
/* Providers */
import { AddressBookProvider } from '../providers/address-book/address-book';
import { AddressProvider } from '../providers/address/address';
import { AmazonProvider } from '../providers/amazon/amazon';
import { AppIdentityProvider } from '../providers/app-identity/app-identity';
import { AppProvider } from '../providers/app/app';
import { BackupProvider } from '../providers/backup/backup';
import { BitPayAccountProvider } from '../providers/bitpay-account/bitpay-account';
import { BitPayCardProvider } from '../providers/bitpay-card/bitpay-card';
import { BitPayProvider } from '../providers/bitpay/bitpay';
import { BwcErrorProvider } from '../providers/bwc-error/bwc-error';
import { BwcProvider } from '../providers/bwc/bwc';
import { CoinbaseProvider } from '../providers/coinbase/coinbase';
import { ConfigProvider } from '../providers/config/config';
import { DerivationPathHelperProvider } from '../providers/derivation-path-helper/derivation-path-helper';
import { EmailNotificationsProvider } from '../providers/email-notifications/email-notifications';
import { ExternalLinkProvider } from '../providers/external-link/external-link';
import { FeeProvider } from '../providers/fee/fee';
import { FeedbackProvider } from '../providers/feedback/feedback';
import { FilterProvider } from '../providers/filter/filter';
import { GlideraProvider } from '../providers/glidera/glidera';
import { HomeIntegrationsProvider } from '../providers/home-integrations/home-integrations';
import { IncomingDataProvider } from '../providers/incoming-data/incoming-data';
import { LanguageProvider } from '../providers/language/language';
import { Logger } from '../providers/logger/logger';
import { MercadoLibreProvider } from '../providers/mercado-libre/mercado-libre';
import { NodeWebkitProvider } from '../providers/node-webkit/node-webkit';
import { OnGoingProcessProvider } from '../providers/on-going-process/on-going-process';
import { PayproProvider } from '../providers/paypro/paypro';
import { PersistenceProvider } from '../providers/persistence/persistence';
import { PlatformProvider } from '../providers/platform/platform';
import { PopupProvider } from '../providers/popup/popup';
import { ProfileProvider } from '../providers/profile/profile';
import { PushNotificationsProvider } from '../providers/push-notifications/push-notifications';
import { RateProvider } from '../providers/rate/rate';
import { ReleaseProvider } from '../providers/release/release';
import { ScanProvider } from '../providers/scan/scan';
import { ShapeshiftProvider } from '../providers/shapeshift/shapeshift';
import { TimeProvider } from '../providers/time/time';
import { TouchIdProvider } from '../providers/touchid/touchid';
import { TxConfirmNotificationProvider } from '../providers/tx-confirm-notification/tx-confirm-notification';
import { TxFormatProvider } from '../providers/tx-format/tx-format';
import { WalletProvider } from '../providers/wallet/wallet';
/* Directives */
import { CopyToClipboard } from '../directives/copy-to-clipboard/copy-to-clipboard';
import { LongPress } from '../directives/long-press/long-press';
import { NoLowFee } from '../directives/no-low-fee/no-low-fee'
export function createTranslateLoader(http: HttpClient) {
return new TranslatePoHttpLoader(http, 'assets/i18n', '.po');
}
@NgModule({
declarations: [
/* Pages */
ActivityPage,
AddPage,
AmazonCardDetailsPage,
AmazonPage,
AmountPage,
AddressbookPage,
AddressbookAddPage,
AddressbookViewPage,
AboutPage,
AdvancedPage,
AllAddressesPage,
AltCurrencyPage,
BackupRequestPage,
BitcoinCashPage,
BitPayCardIntroPage,
BitPayCardPage,
BitPaySettingsPage,
BitPayCardTopUpPage,
BuyAmazonPage,
BuyCoinbasePage,
BuyGlideraPage,
BuyMercadoLibrePage,
ChooseFeeLevelPage,
CreateWalletPage,
CoinbasePage,
CoinbaseTxDetailsPage,
CopayersPage,
EnabledServicesPage,
FeedbackCardPage,
FeedbackPage,
FeedbackCompletePage,
IncomingDataMenuPage,
ImportWalletPage,
JoinWalletPage,
BackupWarningPage,
BackupGamePage,
ConfirmPage,
CustomAmountPage,
CopayApp,
DisclaimerPage,
CollectEmailPage,
FeeWarningPage,
GlideraPage,
GravatarPage,
FingerprintModalPage,
HomePage,
LanguagePage,
LockPage,
MercadoLibrePage,
OnboardingPage,
PaperWalletPage,
PayProPage,
GlideraTxDetailsPage,
PinModalPage,
ProposalsPage,
ReceivePage,
ScanPage,
SendPage,
SettingsPage,
SellCoinbasePage,
SellGlideraPage,
GlideraSettingsPage,
CoinbaseSettingsPage,
ShapeshiftConfirmPage,
ShapeshiftDetailsPage,
ShapeshiftPage,
ShapeshiftShiftPage,
TermsOfUsePage,
MercadoLibreCardDetailsPage,
NotificationsPage,
FeePolicyPage,
SessionLogPage,
SendFeedbackPage,
FinishModalPage,
TourPage,
TabsPage,
TxpDetailsPage,
TxDetailsPage,
TxpPage,
WalletSettingsPage,
WalletSettingsAdvancedPage,
WalletNamePage,
WalletColorPage,
WalletInformationPage,
WalletAddressesPage,
WalletExportPage,
WalletServiceUrlPage,
WalletTransactionHistoryPage,
WalletDeletePage,
WalletExtendedPrivateKeyPage,
WalletDetailsPage,
WalletBalancePage,
WalletItemPage,
WalletActivityPage,
WalletSelectorPage,
CardItemPage,
/* Directives */
CopyToClipboard,
LongPress,
NoLowFee,
/* Pipes */
SatToUnitPipe,
SatToFiatPipe,
FiatToUnitPipe,
KeysPipe,
OrderByPipe
],
imports: [
IonicModule.forRoot(CopayApp, {
tabsHideOnSubPages: true,
tabsPlacement: 'bottom'
}),
BrowserModule,
HttpClientModule,
NgLoggerModule.forRoot(Level.LOG),
MomentModule,
NgxQRCodeModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: createTranslateLoader,
deps: [HttpClient]
}
}),
],
bootstrap: [IonicApp],
entryComponents: [
/* Pages */
ActivityPage,
AddPage,
AmazonCardDetailsPage,
AmazonPage,
AmountPage,
AddressbookPage,
AddressbookAddPage,
AddressbookViewPage,
AboutPage,
AdvancedPage,
AllAddressesPage,
AltCurrencyPage,
BackupRequestPage,
BitcoinCashPage,
BitPayCardIntroPage,
BitPayCardPage,
BitPaySettingsPage,
BitPayCardTopUpPage,
BuyAmazonPage,
BuyCoinbasePage,
BuyGlideraPage,
BuyMercadoLibrePage,
ChooseFeeLevelPage,
CreateWalletPage,
CoinbasePage,
CoinbaseTxDetailsPage,
CopayersPage,
EnabledServicesPage,
FeedbackCardPage,
FeedbackPage,
FeedbackCompletePage,
IncomingDataMenuPage,
ImportWalletPage,
JoinWalletPage,
BackupWarningPage,
BackupGamePage,
ConfirmPage,
CustomAmountPage,
CopayApp,
DisclaimerPage,
CollectEmailPage,
FeeWarningPage,
GlideraPage,
GravatarPage,
FingerprintModalPage,
HomePage,
LanguagePage,
LockPage,
MercadoLibrePage,
OnboardingPage,
PaperWalletPage,
PayProPage,
GlideraTxDetailsPage,
PinModalPage,
ProposalsPage,
ReceivePage,
ScanPage,
SendPage,
SettingsPage,
SellCoinbasePage,
SellGlideraPage,
GlideraSettingsPage,
CoinbaseSettingsPage,
ShapeshiftConfirmPage,
ShapeshiftDetailsPage,
ShapeshiftPage,
ShapeshiftShiftPage,
TermsOfUsePage,
MercadoLibreCardDetailsPage,
NotificationsPage,
FeePolicyPage,
SessionLogPage,
SendFeedbackPage,
FinishModalPage,
TourPage,
TabsPage,
TxpDetailsPage,
TxDetailsPage,
TxpPage,
WalletSettingsPage,
WalletSettingsAdvancedPage,
WalletNamePage,
WalletColorPage,
WalletInformationPage,
WalletAddressesPage,
WalletExportPage,
WalletServiceUrlPage,
WalletTransactionHistoryPage,
WalletDeletePage,
WalletExtendedPrivateKeyPage,
WalletDetailsPage,
WalletBalancePage,
WalletItemPage,
WalletActivityPage,
WalletSelectorPage,
CardItemPage
],
providers: [
AddressProvider,
AddressBookProvider,
AndroidFingerprintAuth,
AppProvider,
AppIdentityProvider,
AmazonProvider,
BackupProvider,
BitPayProvider,
BitPayCardProvider,
BitPayAccountProvider,
BwcProvider,
BwcErrorProvider,
ConfigProvider,
CoinbaseProvider,
Clipboard,
DerivationPathHelperProvider,
ExternalLinkProvider,
FeedbackProvider,
FCM,
HomeIntegrationsProvider,
FeeProvider,
GlideraProvider,
IncomingDataProvider,
LanguageProvider,
Logger,
MercadoLibreProvider,
NodeWebkitProvider,
OnGoingProcessProvider,
PayproProvider,
PlatformProvider,
ProfileProvider,
PopupProvider,
QRScanner,
PushNotificationsProvider,
RateProvider,
ReleaseProvider,
ShapeshiftProvider,
StatusBar,
SplashScreen,
ScanProvider,
SocialSharing,
Toast,
TouchID,
TimeProvider,
TouchIdProvider,
TxConfirmNotificationProvider,
FilterProvider,
TxFormatProvider,
WalletProvider,
EmailNotificationsProvider,
DecimalPipe,
PersistenceProvider,
File,
{
provide: ErrorHandler,
useClass: IonicErrorHandler
}
]
})
export class AppModule { }