From 8b6278bce8ebc8d309cb9cd608faaa681a1ca70b Mon Sep 17 00:00:00 2001 From: Nazar Usov Date: Wed, 18 Sep 2024 15:08:51 +0300 Subject: [PATCH] Build html --- html/main.js | 6 +++--- html/main.js.map | 2 +- html_source/src/main.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/html/main.js b/html/main.js index 0539ad9d..d78f2b29 100644 --- a/html/main.js +++ b/html/main.js @@ -25081,7 +25081,7 @@ class PaginationService { return offset; } calcPages(data) { - var _a; + var _a, _b; if (data.total_history_items && data && data.history) { this.variables.currentWallet.totalPages = Math.ceil(data.total_history_items / this.variables.count); this.variables.currentWallet.totalPages > this.variables.maxPages @@ -25091,7 +25091,7 @@ class PaginationService { .map((value, index) => value + index)); } else if (this.variables.currentWallet.restore) { - this.variables.currentWallet.totalPages = Math.ceil(((_a = data.history.length) !== null && _a !== void 0 ? _a : 0) / this.variables.count); + this.variables.currentWallet.totalPages = Math.ceil(((_b = (_a = data.history) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) / this.variables.count); this.variables.currentWallet.totalPages > this.variables.maxPages ? (this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index)) : (this.variables.currentWallet.pages = new Array(this.variables.currentWallet.totalPages) @@ -25321,7 +25321,7 @@ __webpack_require__.r(__webpack_exports__); -const buildTime = '2024-09-18T09:21:23.110Z'; +const buildTime = '2024-09-18T12:08:28.621Z'; if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.production) { (0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.enableProdMode)(); } diff --git a/html/main.js.map b/html/main.js.map index 1836807d..56cace59 100644 --- a/html/main.js.map +++ b/html/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/api/models/wallet.model.ts","./src/app/api/services/backend.service.ts","./src/app/api/services/wrap-info.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/layouts/full-layout/full-layout.component.ts","./src/app/layouts/full-layout/full-layout.module.ts","./src/app/layouts/sidebar/sidebar.component.ts","./src/app/layouts/sidebar/sidebar.module.ts","./src/app/layouts/with-sidebar-layout/with-sidebar-layout.component.ts","./src/app/layouts/with-sidebar-layout/with-sidebar-layout.component.html","./src/app/layouts/with-sidebar-layout/with-sidebar-layout.module.ts","./src/app/pages/add-wallet/add-wallet.component.ts","./src/app/pages/add-wallet/add-wallet.component.html","./src/app/pages/assign-alias/assign-alias.component.ts","./src/app/pages/auth/auth-routing.module.ts","./src/app/pages/auth/auth.module.ts","./src/app/pages/auth/login/login.component.ts","./src/app/pages/auth/login/login.component.html","./src/app/pages/auth/no-wallet/no-wallet.component.ts","./src/app/pages/auth/no-wallet/no-wallet.component.html","./src/app/pages/create-wallet/create-wallet.component.ts","./src/app/pages/deeplink/deeplink.component.ts","./src/app/pages/deeplink/deeplink.module.ts","./src/app/pages/deeplink/modals/deeplink-modal/deeplink-modal.component.ts","./src/app/pages/deeplink/modals/deeplink-modal/deeplink-modal.module.ts","./src/app/pages/deeplink/modals/sync-modal/sync-modal.component.ts","./src/app/pages/deeplink/modals/sync-modal/sync-modal.module.ts","./src/app/pages/edit-alias/edit-alias.component.ts","./src/app/pages/export-import/export-import.component.ts","./src/app/pages/open-wallet/open-wallet.component.ts","./src/app/pages/pages-routing.module.ts","./src/app/pages/pages.module.ts","./src/app/pages/paths.ts","./src/app/pages/restore-wallet/restore-wallet.component.ts","./src/app/pages/restore-wallet/restore-wallet.component.html","./src/app/pages/seed-phrase/seed-phrase.component.ts","./src/app/pages/settings/settings.component.ts","./src/app/pages/settings/settings.component.html","./src/app/pages/transfer-alias/transfer-alias.component.ts","./src/app/pages/wallet-details/wallet-details.component.ts","./src/app/pages/wallet/tabs/assets/assets.component.ts","./src/app/pages/wallet/tabs/custom-assets/modals/burn-custom-asset/burn-custom-asset.component.ts","./src/app/pages/wallet/tabs/custom-assets/modals/burn-custom-asset/burn-custom-asset.component.html","./src/app/pages/wallet/tabs/custom-assets/modals/confirm-create-custom-asset/confirm-create-custom-asset.component.ts","./src/app/pages/wallet/tabs/custom-assets/modals/confirm-create-custom-asset/confirm-create-custom-asset.component.html","./src/app/pages/wallet/tabs/custom-assets/modals/emit-custom-asset/emit-custom-asset.component.ts","./src/app/pages/wallet/tabs/custom-assets/modals/emit-custom-asset/emit-custom-asset.component.html","./src/app/pages/wallet/tabs/custom-assets/modals/transaction-details-for-custom-assets/transaction-details-for-custom-assets.component.ts","./src/app/pages/wallet/tabs/custom-assets/modals/transaction-details-for-custom-assets/transaction-details-for-custom-assets.component.html","./src/app/pages/wallet/tabs/custom-assets/modals/update-custom-asset/update-custom-asset.component.ts","./src/app/pages/wallet/tabs/custom-assets/modals/update-custom-asset/update-custom-asset.component.html","./src/app/pages/wallet/tabs/custom-assets/pages/create-new-asset/create-new-asset.component.ts","./src/app/pages/wallet/tabs/custom-assets/pages/create-new-asset/create-new-asset.component.html","./src/app/pages/wallet/tabs/custom-assets/pages/custom-assets/custom-assets.component.ts","./src/app/pages/wallet/tabs/custom-assets/pages/custom-assets/custom-assets.component.html","./src/app/pages/wallet/tabs/history/history.component.ts","./src/app/pages/wallet/tabs/history/history.component.html","./src/app/pages/wallet/tabs/receive/receive.component.ts","./src/app/pages/wallet/tabs/send/modals/send-details-modal/send-details-modal.component.ts","./src/app/pages/wallet/tabs/send/modals/send-details-modal/send-details-modal.component.html","./src/app/pages/wallet/tabs/send/modals/send-modal/send-modal.component.ts","./src/app/pages/wallet/tabs/send/modals/send-modal/send-modal.component.html","./src/app/pages/wallet/tabs/send/modals/wallet-modals.module.ts","./src/app/pages/wallet/tabs/send/send.component.ts","./src/app/pages/wallet/tabs/send/send.component.html","./src/app/pages/wallet/tabs/staking/staking.component.ts","./src/app/pages/wallet/tabs/staking/staking.component.html","./src/app/pages/wallet/tabs/swap/modals/swap-confirm-master-password/swap-confirm-master-password.component.ts","./src/app/pages/wallet/tabs/swap/modals/swap-confirm-master-password/swap-confirm-master-password.component.html","./src/app/pages/wallet/tabs/swap/modals/swap-details/swap-details.component.ts","./src/app/pages/wallet/tabs/swap/modals/swap-details/swap-details.component.html","./src/app/pages/wallet/tabs/swap/pages/confirm-swap/confirm-swap.component.ts","./src/app/pages/wallet/tabs/swap/pages/confirm-swap/confirm-swap.component.html","./src/app/pages/wallet/tabs/swap/pages/create-swap/create-swap.component.ts","./src/app/pages/wallet/tabs/swap/pages/create-swap/create-swap.component.html","./src/app/pages/wallet/tabs/swap/pages/swap-proposal-hex/swap-proposal-hex.component.ts","./src/app/pages/wallet/tabs/swap/pages/swap-proposal-hex/swap-proposal-hex.component.html","./src/app/pages/wallet/tabs/swap/pages/swap/swap.component.ts","./src/app/pages/wallet/tabs/swap/pages/swap/swap.component.html","./src/app/pages/wallet/tabs/swap/parts/guards/swap-proposal-hex.guard.ts","./src/app/pages/wallet/wallet-routing.module.ts","./src/app/pages/wallet/wallet.module.ts","./src/app/pages/wallet/wallet/modals/add-custom-token/add-custom-token.component.ts","./src/app/pages/wallet/wallet/modals/add-custom-token/add-custom-token.component.html","./src/app/pages/wallet/wallet/modals/export-history-modal/export-history-modal.component.ts","./src/app/pages/wallet/wallet/modals/export-history-modal/export-history-modal.component.html","./src/app/pages/wallet/wallet/modals/export-history-modal/export-history-modal.module.ts","./src/app/pages/wallet/wallet/modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component.ts","./src/app/pages/wallet/wallet/modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component.html","./src/app/pages/wallet/wallet/modals/success-sweep-bare-outs/success-sweep-bare-outs.component.ts","./src/app/pages/wallet/wallet/modals/success-sweep-bare-outs/success-sweep-bare-outs.component.html","./src/app/pages/wallet/wallet/wallet.component.ts","./src/app/parts/components/back-button/back-button.component.ts","./src/app/parts/components/back-button/back-button.component.html","./src/app/parts/components/breadcrumbs/breadcrumbs.component.ts","./src/app/parts/components/breadcrumbs/breadcrumbs.component.html","./src/app/parts/components/checkbox.component.ts","./src/app/parts/components/copy-button.component.ts","./src/app/parts/components/loader.component.ts","./src/app/parts/components/register-context-templates.component.ts","./src/app/parts/components/staking-switch.component.ts","./src/app/parts/components/switch.component.ts","./src/app/parts/components/synchronization-status.component.ts","./src/app/parts/components/transaction-details.component.ts","./src/app/parts/components/transaction-status/transaction-status.component.ts","./src/app/parts/components/transaction-status/transaction-status.component.html","./src/app/parts/components/wallet-card.component.ts","./src/app/parts/data/assets.ts","./src/app/parts/data/constants.ts","./src/app/parts/data/scale-items.ts","./src/app/parts/directives/autofocus.directive.ts","./src/app/parts/directives/back-button/back-button.directive.ts","./src/app/parts/directives/back-button/back-button.module.ts","./src/app/parts/directives/default-img/default-img.directive.ts","./src/app/parts/directives/default-img/default-img.module.ts","./src/app/parts/directives/default-img/index.ts","./src/app/parts/directives/disable-price-fetch/disable-price-fetch.directive.ts","./src/app/parts/directives/disable-price-fetch/disable-price-fetch.module.ts","./src/app/parts/directives/disable-price-fetch/index.ts","./src/app/parts/directives/index.ts","./src/app/parts/directives/input-disable-selection/index.ts","./src/app/parts/directives/input-disable-selection/input-disable-selection.directive.ts","./src/app/parts/directives/input-disable-selection/input-disable-selection.module.ts","./src/app/parts/directives/input-validate/index.ts","./src/app/parts/directives/input-validate/input-validate.directive.ts","./src/app/parts/directives/input-validate/input-validate.module.ts","./src/app/parts/directives/lower-case.directive.ts","./src/app/parts/directives/tooltip/index.ts","./src/app/parts/directives/tooltip/tooltip.directive.ts","./src/app/parts/directives/tooltip/tooltip.module.ts","./src/app/parts/directives/visibility-balance.directive.ts","./src/app/parts/functions/get-amount-items.ts","./src/app/parts/functions/has-own-property.ts","./src/app/parts/functions/identify-transaction.ts","./src/app/parts/functions/int-to-money.ts","./src/app/parts/functions/money-to-int.ts","./src/app/parts/modals/asset-details/asset-details.component.ts","./src/app/parts/modals/asset-details/asset-details.component.html","./src/app/parts/modals/confirm-modal/confirm-modal.component.ts","./src/app/parts/modals/confirm-modal/confirm-modal.component.html","./src/app/parts/modals/confirm-modal/confirm-modal.module.ts","./src/app/parts/modals/modal-container/modal-container.component.ts","./src/app/parts/modals/modal-container/modal-container.component.html","./src/app/parts/modals/open-wallet-modal/open-wallet-modal.component.ts","./src/app/parts/pipes/contract-status-messages-pipe/contract-status-messages-pipe.module.ts","./src/app/parts/pipes/contract-status-messages-pipe/contract-status-messages.pipe.ts","./src/app/parts/pipes/contract-status-messages-pipe/index.ts","./src/app/parts/pipes/contract-time-left-pipe/contract-time-left-pipe.module.ts","./src/app/parts/pipes/contract-time-left-pipe/contract-time-left.pipe.ts","./src/app/parts/pipes/contract-time-left-pipe/index.ts","./src/app/parts/pipes/get-amount-items.pipe.ts","./src/app/parts/pipes/get-asset-info.pipe.ts","./src/app/parts/pipes/history-type-messages-pipe/history-type-messages-pipe.module.ts","./src/app/parts/pipes/history-type-messages-pipe/history-type-messages.pipe.ts","./src/app/parts/pipes/history-type-messages-pipe/index.ts","./src/app/parts/pipes/index.ts","./src/app/parts/pipes/int-to-money-pipe/index.ts","./src/app/parts/pipes/int-to-money-pipe/int-to-money-pipe.module.ts","./src/app/parts/pipes/int-to-money-pipe/int-to-money.pipe.ts","./src/app/parts/pipes/is-available-alias-name-pipe/index.ts","./src/app/parts/pipes/is-available-alias-name-pipe/is-available-alias-name-pipe.module.ts","./src/app/parts/pipes/is-available-alias-name-pipe/is-available-alias-name.pipe.ts","./src/app/parts/pipes/is-visible-control-error.pipe.ts","./src/app/parts/pipes/is-visible-fee.pipe.ts","./src/app/parts/pipes/money-to-int-pipe/index.ts","./src/app/parts/pipes/money-to-int-pipe/money-to-int-pipe.module.ts","./src/app/parts/pipes/money-to-int-pipe/money-to-int.pipe.ts","./src/app/parts/pipes/safe-html-pipe/index.ts","./src/app/parts/pipes/safe-html-pipe/safe-html-pipe.module.ts","./src/app/parts/pipes/safe-html-pipe/safe-html.pipe.ts","./src/app/parts/pipes/short-string.pipe.ts","./src/app/parts/services/back.service.ts","./src/app/parts/services/modal.service.ts","./src/app/parts/services/variables.service.ts","./src/app/parts/services/wallets.service.ts","./src/app/parts/services/zano-loaders.service.ts","./src/app/parts/utils/MIME-types.ts","./src/app/parts/utils/generate-random-string.ts","./src/app/parts/utils/zano-errors.ts","./src/app/parts/utils/zano-validators.ts","./src/app/store/pagination/pagination.service.ts","./src/app/store/pagination/pagination.store.ts","./src/app/store/store.ts","./src/assets/material-zano-icons/index.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { Contracts } from './contract.model';\nimport { Transaction, Transactions } from './transaction.model';\nimport { BigNumber } from 'bignumber.js';\nimport { AssetBalance, AssetInfo, AssetBalances, AssetsInfoWhitelist } from './assets.model';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Alias } from '@api/models/alias.model';\nimport { SendMoneyFormParams } from '@api/models/send-money.model';\nimport { MIXIN } from '@parts/data/constants';\nimport { zanoAssetInfo } from '@parts/data/assets';\n\nexport const defaultSendMoneyParams: SendMoneyFormParams = {\n asset_id: zanoAssetInfo.asset_id,\n wallet_id: undefined,\n address: '',\n amount: undefined,\n isAmountUSD: false,\n comment: '',\n mixin: MIXIN,\n fee: '0.01',\n push_payer: true,\n hide_receiver: false,\n};\n\nconst defaultAssetsInfoWhitelist = { global_whitelist: [], local_whitelist: [], own_assets: [] };\n\nexport class Wallet {\n open_from_exist: boolean;\n\n updated = false;\n\n wallet_id: number;\n\n name: string;\n\n pass: string;\n\n path: string;\n\n address: string;\n\n private _balances$: BehaviorSubject = new BehaviorSubject([]);\n\n private _assetsInfoWhitelist: AssetsInfoWhitelist = defaultAssetsInfoWhitelist;\n\n set assetsInfoWhitelist(value: AssetsInfoWhitelist) {\n this._assetsInfoWhitelist = value ?? defaultAssetsInfoWhitelist;\n }\n\n get assetsInfoWhitelist() {\n return this._assetsInfoWhitelist;\n }\n\n get allAssetsInfoWhitelist(): AssetInfo[] {\n const { global_whitelist = [], local_whitelist = [], own_assets = [] } = this._assetsInfoWhitelist;\n return [...global_whitelist, ...local_whitelist, ...own_assets];\n }\n\n get isEmptyAssetsInfoWhitelist(): boolean {\n return !this.allAssetsInfoWhitelist.length;\n }\n\n get allAssetsInfo(): AssetInfo[] {\n return [zanoAssetInfo, ...this.allAssetsInfoWhitelist];\n }\n\n get balances$(): Observable {\n return this._balances$.asObservable();\n }\n\n get balances(): AssetBalances {\n return this._balances$.value;\n }\n\n set balances(value: AssetBalances | null | undefined) {\n const sortedAssets: AssetBalances = [];\n if (value) {\n const assets = [...value];\n const indexZano = assets.findIndex(({ asset_info: { ticker } }) => ticker === 'ZANO');\n if (indexZano >= 0) {\n const assetZano = assets.splice(indexZano, 1)[0];\n sortedAssets.push(assetZano);\n }\n const sortedAssetsByBalance = assets.sort((a, b) => new BigNumber(b.total).minus(new BigNumber(a.total)).toNumber());\n sortedAssets.push(...sortedAssetsByBalance);\n }\n this._balances$.next(sortedAssets);\n }\n\n get isEmptyBalances(): boolean {\n if (!this.balances) {\n return true;\n }\n\n for (const asset of this.balances) {\n const value = asset.total || 0;\n const isEmpty = !Boolean(new BigNumber(value).toNumber());\n\n if (!isEmpty) {\n return false;\n }\n }\n\n return true;\n }\n\n mined_total: number;\n\n tracking_hey: string;\n\n is_auditable: boolean;\n\n is_watch_only: boolean;\n\n exclude_mining_txs: boolean;\n\n alias_available: boolean;\n\n has_bare_unspent_outputs = false;\n\n alias?: Partial;\n\n wakeAlias?: boolean;\n\n staking?: boolean;\n\n new_messages?: number;\n\n new_contracts?: number;\n\n history: Transactions = [];\n\n total_history_item?: number;\n\n pages = [];\n\n totalPages: number;\n\n currentPage: number;\n\n excluded_history: Transactions = [];\n\n contracts: Contracts = [];\n\n progress?: number;\n\n loaded?: boolean;\n\n restore?: boolean;\n\n sendMoneyParams: SendMoneyFormParams | null = null;\n\n constructor(id, name, pass, path, address, balances, unlocked_balance, mined = 0, tracking = '') {\n this.wallet_id = id;\n this.name = name;\n this.pass = pass;\n this.path = path;\n this.address = address;\n this.balances = balances;\n this.mined_total = mined;\n this.tracking_hey = tracking;\n\n this.alias = {};\n this.staking = false;\n this.new_messages = 0;\n this.new_contracts = 0;\n\n this.history = [];\n this.excluded_history = [];\n\n this.progress = 0;\n this.loaded = false;\n }\n\n getBalanceByAssetId(value: string): AssetBalance | undefined {\n return this.balances.find(({ asset_info: { asset_id } }) => asset_id === value);\n }\n\n getAssetInfoByAssetId(value: string): AssetInfo | undefined {\n return this.allAssetsInfo.find(({ asset_id }) => asset_id === value);\n }\n\n getBalanceByTicker(searchTicker: string): AssetBalance | undefined {\n return this.balances.find(({ asset_info: { ticker } }) => ticker === searchTicker);\n }\n\n getMoneyEquivalentForZano(equivalent): string {\n const balanceZano = this.getBalanceByTicker('ZANO')?.total || 0;\n return new BigNumber(balanceZano).multipliedBy(equivalent).toFixed(0);\n }\n\n prepareHistory(items: Transaction[]): void {\n for (let i = 0; i < items.length; i++) {\n if (\n (items[i].tx_type === 7 && items[i].subtransfers?.find(({ is_income }) => is_income)) ||\n (items[i].tx_type === 11 && items[i].subtransfers?.find(({ is_income }) => is_income))\n ) {\n let exists = false;\n for (let j = 0; j < this.excluded_history.length; j++) {\n if (this.excluded_history[j].tx_hash === items[i].tx_hash) {\n exists = true;\n if (this.excluded_history[j].height !== items[i].height) {\n this.excluded_history[j] = items[i];\n }\n break;\n }\n }\n if (!exists) {\n this.excluded_history.push(items[i]);\n }\n } else {\n let exists = false;\n for (let j = 0; j < this.history.length; j++) {\n if (this.history[j].tx_hash === items[i].tx_hash) {\n exists = true;\n if (this.history[j].height !== items[i].height) {\n this.history[j] = items[i];\n }\n break;\n }\n }\n if (!exists) {\n if (this.history.length > 0 && items[i].timestamp >= this.history[0].timestamp) {\n this.history.unshift(items[i]);\n } else {\n this.history.push(items[i]);\n }\n }\n }\n }\n }\n\n removeFromHistory(hash: string): void {\n for (let i = 0; i < this.history.length; i++) {\n if (this.history[i].tx_hash === hash) {\n this.history.splice(i, 1);\n break;\n }\n }\n }\n}\n\nexport interface DeeplinkParams {\n action?: 'send' | string;\n address?: string;\n amount?: string;\n my_deposit?: string;\n seller_deposit?: string;\n seller_address?: string;\n hide_sender?: string;\n hide_receiver?: string;\n title?: string;\n description?: string;\n category?: string;\n price?: string;\n img_url?: string;\n url?: string;\n contact?: string;\n comment?: string;\n comments?: string;\n mixins?: string;\n fee?: string;\n}\n\nexport interface PushOffer {\n wallet_id: number;\n od: {\n ap: string;\n at: string;\n cat: string;\n cnt: string;\n com: string;\n do: string;\n et: number;\n fee: BigNumber;\n lci: string;\n lco: string;\n ot: number;\n pt: string;\n t: string;\n url: string;\n };\n}\n\nexport interface ResponseGetWalletInfo {\n address: string;\n balances: AssetBalances;\n is_auditable: boolean;\n is_watch_only: boolean;\n mined_total: number;\n path: string;\n view_sec_key: string;\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { MoneyToIntPipe } from '@parts/pipes/money-to-int-pipe/money-to-int.pipe';\nimport JSONBigNumber from 'json-bignumber';\nimport { BigNumber } from 'bignumber.js';\nimport { ResponseGetWalletInfo } from '../models/wallet.model';\nimport {\n AssetInfo,\n ParamsAddCustomAssetId,\n ParamsRemoveCustomAssetId,\n ResponseAddCustomAssetId,\n ResponseRemoveCustomAssetId,\n} from '@api/models/assets.model';\nimport { Alias } from '@api/models/alias.model';\nimport { SendMoneyParams } from '@api/models/send-money.model';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\n\nexport interface PramsObj {\n [key: string]: any;\n}\n\nexport type PramsArray = (string | PramsObj)[];\n\nexport type Params = string | PramsObj | PramsArray;\n\nexport enum ParamsType {\n array = 'array',\n object = 'object',\n string = 'string',\n}\n\nexport const getParamsType = (value: Params): ParamsType | null => {\n if (!value) {\n return null;\n }\n const array: false | ParamsType.array = Array.isArray(value) && ParamsType.array;\n const object: false | ParamsType = Object.keys(ParamsType).includes(typeof value) && ParamsType[typeof value];\n return array || object || null;\n};\n\nexport type ConvertersObjectForTypes = {\n [key in ParamsType]: (value: Params) => string | string[];\n};\n\nexport const convertersObjectForTypes: ConvertersObjectForTypes = {\n [ParamsType.string]: (value: string): string => value,\n [ParamsType.object]: (value: PramsObj): string => JSONBigNumber.stringify(value),\n [ParamsType.array]: (value: PramsArray): string[] =>\n value.map(v => {\n return typeof v === ParamsType.string ? (v as string) : JSONBigNumber.stringify(v);\n }),\n};\n\nexport const convertorParams = (value: Params): string | string[] => {\n const type: ParamsType = getParamsType(value);\n return convertersObjectForTypes[type](value);\n};\n\nexport interface ResponseAsyncTransfer {\n error_code: string | 'NOT_ENOUGH_MONEY' | 'OK';\n response_data: {\n success: boolean;\n tx_blob_size: number;\n tx_hash: string;\n };\n}\n\nexport interface AsyncCommandResults {\n job_id: number;\n response: T;\n}\n\nexport enum StatusCurrentActionState {\n STATE_SENDING = 'STATE_SENDING',\n STATE_SENT_SUCCESS = 'STATE_SENT_SUCCESS',\n STATE_SEND_FAILED = 'STATE_SEND_FAILED',\n STATE_INITIALIZING = 'STATE_INITIALIZING',\n STATE_DOWNLOADING_CONSENSUS = 'STATE_DOWNLOADING_CONSENSUS',\n STATE_MAKING_TUNNEL_A = 'STATE_MAKING_TUNNEL_A',\n STATE_MAKING_TUNNEL_B = 'STATE_MAKING_TUNNEL_B',\n STATE_CREATING_STREAM = 'STATE_CREATING_STREAM',\n STATE_FAILED = 'STATE_FAILED',\n STATE_SUCCESS = 'STATE_SUCCESS',\n}\n\nexport interface CurrentActionState {\n status: StatusCurrentActionState;\n wallet_id: number;\n}\n\nexport enum Commands {\n money_transfer_cancel = 'money_transfer_cancel',\n handle_deeplink_click = 'handle_deeplink_click',\n money_transfer = 'money_transfer',\n update_daemon_state = 'update_daemon_state',\n wallet_sync_progress = 'wallet_sync_progress',\n update_wallet_status = 'update_wallet_status',\n quit_requested = 'quit_requested',\n on_core_event = 'on_core_event',\n get_wallet_info = 'get_wallet_info',\n remove_custom_asset_id = 'remove_custom_asset_id',\n add_custom_asset_id = 'add_custom_asset_id',\n get_options = 'get_options',\n handle_current_action_state = 'handle_current_action_state',\n set_enable_tor = 'set_enable_tor',\n dispatch_async_call_result = 'dispatch_async_call_result',\n async_call = 'async_call',\n async_call_2a = 'async_call_2a',\n set_log_level = 'set_log_level',\n get_network_type = 'get_network_type',\n get_version = 'get_version',\n get_tx_pool_info = 'get_tx_pool_info',\n get_recent_transfers = 'get_recent_transfers',\n resync_wallet = 'resync_wallet',\n get_alias_coast = 'get_alias_coast',\n get_alias_info_by_address = 'get_alias_info_by_address',\n get_alias_info_by_name = 'get_alias_info_by_name',\n get_all_aliases = 'get_all_aliases',\n request_alias_update = 'request_alias_update',\n webkit_launched_script = 'webkit_launched_script',\n on_request_quit = 'on_request_quit',\n get_app_data = 'get_app_data',\n store_app_data = 'store_app_data',\n get_secure_app_data = 'get_secure_app_data',\n set_master_password = 'set_master_password',\n check_master_password = 'check_master_password',\n get_is_disabled_notifications = 'get_is_disabled_notifications',\n set_is_disabled_notifications = 'set_is_disabled_notifications',\n store_secure_app_data = 'store_secure_app_data',\n drop_secure_app_data = 'drop_secure_app_data',\n have_secure_app_data = 'have_secure_app_data',\n show_savefile_dialog = 'show_savefile_dialog',\n show_openfile_dialog = 'show_openfile_dialog',\n store_to_file = 'store_to_file',\n load_from_file = 'load_from_file',\n push_offer = 'push_offer',\n generate_wallet = 'generate_wallet',\n export_wallet_history = 'export_wallet_history',\n open_wallet = 'open_wallet',\n close_wallet = 'close_wallet',\n get_smart_wallet_info = 'get_smart_wallet_info',\n get_seed_phrase_info = 'get_seed_phrase_info',\n run_wallet = 'run_wallet',\n is_valid_restore_wallet_text = 'is_valid_restore_wallet_text',\n restore_wallet = 'restore_wallet',\n transfer = 'transfer',\n validate_address = 'validate_address',\n set_clipboard = 'set_clipboard',\n get_clipboard = 'get_clipboard',\n create_proposal = 'create_proposal',\n get_contracts = 'get_contracts',\n accept_proposal = 'accept_proposal',\n release_contract = 'release_contract',\n request_cancel_contract = 'request_cancel_contract',\n accept_cancel_contract = 'accept_cancel_contract',\n get_mining_history = 'get_mining_history',\n start_pos_mining = 'start_pos_mining',\n stop_pos_mining = 'stop_pos_mining',\n open_url_in_browser = 'open_url_in_browser',\n start_backend = 'start_backend',\n get_default_fee = 'get_default_fee',\n set_localization_strings = 'set_localization_strings',\n request_alias_registration = 'request_alias_registration',\n call_rpc = 'call_rpc',\n call_wallet_rpc = 'call_wallet_rpc',\n setup_jwt_wallet_rpc = 'setup_jwt_wallet_rpc',\n show_notification = 'show_notification',\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BackendService {\n dispatchAsyncCallResult$ = new Subject();\n\n handleCurrentActionState$ = new Subject();\n\n backendObject: any;\n\n backendLoaded = false;\n\n constructor(\n private translate: TranslateService,\n private variablesService: VariablesService,\n private modalService: ModalService,\n private moneyToIntPipe: MoneyToIntPipe,\n private ngZone: NgZone\n ) {}\n\n static bigNumberParser(key, val): any {\n if (\n val?.constructor?.name === 'BigNumber' &&\n [\n 'balance',\n 'unlocked_balance',\n 'amount',\n 'fee',\n 'b_fee',\n 'to_pay',\n 'a_pledge',\n 'b_pledge',\n 'coast',\n 'a',\n 'total',\n 'unlocked',\n 'current_supply',\n 'total_max_supply',\n ].indexOf(key) === -1\n ) {\n return val.toNumber();\n }\n if (key === 'rcv' || key === 'spn') {\n for (let i = 0; i < val.length; i++) {\n val[i] = new BigNumber(val[i]);\n }\n }\n return val;\n }\n\n static Debug(type, message): void {\n switch (type) {\n case 0:\n console.error(message);\n break;\n case 1:\n console.warn(message);\n break;\n case 2:\n console.log(message);\n break;\n default:\n console.log(message);\n break;\n }\n }\n\n eventSubscribe(command: Commands, callback): void {\n if (command === Commands.on_core_event) {\n this.backendObject[command].connect(callback);\n } else {\n this.backendObject[command].connect(str => {\n callback(JSONBigNumber.parse(str, BackendService.bigNumberParser));\n });\n }\n }\n\n initService(): Observable {\n return new Observable(observer => {\n if (!this.backendLoaded) {\n this.backendLoaded = true;\n (window).QWebChannel((window).qt.webChannelTransport, channel => {\n this.backendObject = channel.objects.mediator_object;\n observer.next('backendObject loaded');\n });\n } else {\n observer.error('backend not loaded');\n if (!this.backendObject) {\n observer.error('backendObject not loaded');\n }\n }\n });\n }\n\n webkitLaunchedScript(): void {\n this.runCommand(Commands.webkit_launched_script);\n }\n\n quitRequest(): void {\n this.runCommand(Commands.on_request_quit);\n }\n\n getAppData(callback): void {\n this.runCommand(Commands.get_app_data, {}, callback);\n }\n\n storeAppData(callback?): void {\n if (this.variablesService.wallets.length > 0) {\n this.variablesService.settings.wallets = [];\n this.variablesService.wallets.forEach(wallet => {\n this.variablesService.settings.wallets.push({\n name: wallet.name,\n path: wallet.path,\n });\n });\n }\n this.runCommand(Commands.store_app_data, this.variablesService.settings, callback);\n }\n\n getSecureAppData(pass, callback): void {\n this.runCommand(Commands.get_secure_app_data, pass, callback);\n }\n\n setMasterPassword(pass, callback): void {\n this.runCommand(Commands.set_master_password, pass, callback);\n }\n\n checkMasterPassword(pass, callback): void {\n this.runCommand(Commands.check_master_password, pass, callback);\n }\n\n getIsDisabledNotifications(callback): void {\n const params = {};\n this.runCommand(Commands.get_is_disabled_notifications, params, callback);\n }\n\n setIsDisabledNotifications(state): void {\n this.runCommand(Commands.set_is_disabled_notifications, state);\n }\n\n storeSecureAppData(callback?): void {\n const wallets = [];\n const contacts = [];\n this.variablesService.wallets.forEach(wallet => {\n wallets.push({\n name: wallet.name,\n pass: wallet.pass,\n path: wallet.path,\n staking: wallet.staking,\n });\n });\n this.variablesService.contacts.forEach(contact => {\n contacts.push({\n name: contact.name,\n address: contact.address,\n notes: contact.notes,\n });\n });\n const data = { wallets: wallets, contacts: contacts };\n this.backendObject[Commands.store_secure_app_data](JSON.stringify(data), this.variablesService.appPass, dataStore => {\n this.backendCallback(dataStore, {}, callback, Commands.store_secure_app_data);\n });\n }\n\n dropSecureAppData(callback?): void {\n this.backendObject[Commands.drop_secure_app_data](dataStore => {\n this.backendCallback(dataStore, {}, callback, Commands.drop_secure_app_data);\n });\n }\n\n haveSecureAppData(callback): void {\n this.runCommand(Commands.have_secure_app_data, {}, callback);\n }\n\n saveFileDialog(caption, fileMask, default_path, callback): void {\n const dir = default_path ? default_path : '/';\n const params = {\n caption: caption,\n filemask: fileMask,\n default_dir: dir,\n };\n this.runCommand(Commands.show_savefile_dialog, params, callback);\n }\n\n openFileDialog(caption, filemask, default_path, callback): void {\n const default_dir = default_path ? default_path : '/';\n const params = {\n caption,\n filemask,\n default_dir,\n };\n this.runCommand(Commands.show_openfile_dialog, params, callback);\n }\n\n storeFile(path, buff): void {\n this.backendObject[Commands.store_to_file](path, buff);\n }\n\n loadFile(path, callback): void {\n this.runCommand(Commands.load_from_file, path, callback);\n }\n\n push_offer(params, callback): void {\n this.runCommand(Commands.push_offer, params, callback);\n }\n\n generateWallet(path, pass, callback): void {\n const params = {\n path: path,\n pass: pass,\n };\n this.runCommand(Commands.generate_wallet, params, callback);\n }\n\n exportWalletHistory(json_string): void {\n this.runCommand(Commands.export_wallet_history, json_string);\n }\n\n openWallet(path, pass, txs_to_return, testEmpty, callback): void {\n const params = {\n path: path,\n pass: pass,\n txs_to_return: txs_to_return,\n };\n params['testEmpty'] = !!testEmpty;\n this.runCommand(Commands.open_wallet, params, callback);\n }\n\n closeWallet(wallet_id, callback?): void {\n this.runCommand(Commands.close_wallet, { wallet_id: +wallet_id }, callback);\n }\n\n getSmartWalletInfo({ wallet_id, seed_password }, callback): void {\n this.runCommand(Commands.get_smart_wallet_info, { wallet_id: +wallet_id, seed_password }, callback);\n }\n\n getSeedPhraseInfo(param, callback): void {\n this.runCommand(Commands.get_seed_phrase_info, param, callback);\n }\n\n runWallet(wallet_id, callback?): void {\n this.runCommand(Commands.run_wallet, { wallet_id: +wallet_id }, callback);\n }\n\n isValidRestoreWalletText(param, callback): void {\n this.runCommand(Commands.is_valid_restore_wallet_text, param, callback);\n }\n\n restoreWallet(path, pass, seed_phrase, seed_pass, callback): void {\n const params = {\n seed_phrase: seed_phrase,\n path: path,\n pass: pass,\n seed_pass,\n };\n this.runCommand(Commands.restore_wallet, params, callback);\n }\n\n sendMoney({ wallet_id, address, amount, fee, mixin, comment, hide_receiver, push_payer, asset_id }: SendMoneyParams, callback): void {\n const params = {\n wallet_id,\n destinations: [\n {\n address,\n amount,\n ...(asset_id && { asset_id }),\n },\n ],\n mixin_count: mixin ?? 0,\n lock_time: 0,\n fee: this.moneyToIntPipe.transform(fee),\n comment: comment,\n push_payer,\n hide_receiver\n };\n\n this.asyncCall(Commands.transfer, params, callback);\n }\n\n setupJwtWalletRpc(value: { zanoCompation: boolean; secret: string }): void {\n const { secret } = value;\n\n this.runCommand(Commands.setup_jwt_wallet_rpc, secret, () => {\n this.variablesService.settings.zanoCompanionForm = value;\n this.storeAppData();\n });\n }\n\n validateAddress(address, callback): void {\n this.runCommand(Commands.validate_address, address, callback);\n }\n\n setClipboard(str, callback?): void {\n this.runCommand(Commands.set_clipboard, str, callback);\n }\n\n getClipboard(callback): void {\n this.runCommand(Commands.get_clipboard, {}, callback);\n }\n\n createProposal(wallet_id, title, comment, a_addr, b_addr, to_pay, a_pledge, b_pledge, time, payment_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n details: {\n t: title,\n c: comment,\n a_addr: a_addr,\n b_addr: b_addr,\n to_pay: this.moneyToIntPipe.transform(to_pay),\n a_pledge: this.moneyToIntPipe.transform(a_pledge),\n b_pledge: this.moneyToIntPipe.transform(b_pledge),\n },\n payment_id: payment_id,\n expiration_period: parseInt(time, 10) * 60 * 60,\n fee: this.variablesService.default_fee_big,\n b_fee: this.variablesService.default_fee_big,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.create_proposal, params, callback);\n }\n\n getContracts(wallet_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.get_contracts, params, callback);\n }\n\n acceptProposal(wallet_id, contract_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.accept_proposal, params, callback);\n }\n\n releaseProposal(wallet_id, contract_id, release_type, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n release_type: release_type, // \"normal\" or \"burn\"\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.release_contract, params, callback);\n }\n\n requestCancelContract(wallet_id, contract_id, time, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n fee: this.variablesService.default_fee_big,\n expiration_period: parseInt(time, 10) * 60 * 60,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.request_cancel_contract, params, callback);\n }\n\n acceptCancelContract(wallet_id, contract_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.accept_cancel_contract, params, callback);\n }\n\n getMiningHistory(wallet_id, callback): void {\n this.runCommand(Commands.get_mining_history, { wallet_id: parseInt(wallet_id, 10) }, callback);\n }\n\n startPosMining(wallet_id, callback?): void {\n this.runCommand(Commands.start_pos_mining, { wallet_id: parseInt(wallet_id, 10) }, callback);\n }\n\n stopPosMining(wallet_id, callback?): void {\n this.runCommand(Commands.stop_pos_mining, { wallet_id: parseInt(wallet_id, 10) }, callback);\n }\n\n openUrlInBrowser(url, callback?): void {\n this.runCommand(Commands.open_url_in_browser, url, callback);\n }\n\n start_backend(node, host, port, callback): void {\n const params = {\n configure_for_remote_node: node,\n remote_node_host: host,\n remote_node_port: parseInt(port, 10),\n };\n this.runCommand(Commands.start_backend, params, callback);\n }\n\n getDefaultFee(callback): void {\n this.runCommand(Commands.get_default_fee, {}, callback);\n }\n\n setBackendLocalization(stringsArray, title, callback?): void {\n const params = {\n strings: stringsArray,\n language_title: title,\n };\n this.runCommand(Commands.set_localization_strings, params, callback);\n }\n\n registerAlias(wallet_id, alias, address, fee, comment, reward, callback): void {\n const params = {\n wallet_id: wallet_id,\n alias: {\n alias: alias,\n address: address,\n tracking_key: '',\n comment: comment,\n },\n fee: this.moneyToIntPipe.transform(fee),\n reward: this.moneyToIntPipe.transform(reward),\n };\n this.runCommand(Commands.request_alias_registration, params, callback);\n }\n\n updateAlias(wallet_id, alias, fee, callback): void {\n const params = {\n wallet_id: wallet_id,\n alias: {\n alias: alias.name.replace('@', ''),\n address: alias.address,\n tracking_key: '',\n comment: alias.comment,\n },\n fee: this.moneyToIntPipe.transform(fee),\n };\n this.runCommand(Commands.request_alias_update, params, callback);\n }\n\n getAllAliases(callback): void {\n this.runCommand(Commands.get_all_aliases, {}, callback);\n }\n\n getAliasInfoByName(value, callback): void {\n this.runCommand(Commands.get_alias_info_by_name, value, callback);\n }\n\n getAliasByAddress(value, callback): void {\n this.runCommand(Commands.get_alias_info_by_address, value, callback);\n }\n\n getAliasCoast(alias, callback): void {\n this.runCommand(Commands.get_alias_coast, { v: alias }, callback);\n }\n\n resyncWallet(id): void {\n this.runCommand(Commands.resync_wallet, { wallet_id: id });\n }\n\n getWalletAlias(address): Partial {\n if (address !== null && this.variablesService.daemon_state === 2) {\n if (this.variablesService.aliasesChecked[address] == null) {\n this.variablesService.aliasesChecked[address] = {};\n if (this.variablesService.aliases.length) {\n for (let i = 0, length = this.variablesService.aliases.length; i < length; i++) {\n if (i in this.variablesService.aliases && this.variablesService.aliases[i]['address'] === address) {\n this.variablesService.aliasesChecked[address]['name'] = this.variablesService.aliases[i].name;\n this.variablesService.aliasesChecked[address]['address'] = this.variablesService.aliases[i].address;\n this.variablesService.aliasesChecked[address]['comment'] = this.variablesService.aliases[i].comment;\n return this.variablesService.aliasesChecked[address];\n }\n }\n }\n this.getAliasByAddress(address, (status, data) => {\n if (status) {\n this.variablesService.aliasesChecked[data.address]['name'] = '@' + data.alias;\n this.variablesService.aliasesChecked[data.address]['address'] = data.address;\n this.variablesService.aliasesChecked[data.address]['comment'] = data.comment;\n }\n });\n }\n return this.variablesService.aliasesChecked[address];\n }\n return {};\n }\n\n getContactAlias(): void {\n if (this.variablesService.contacts.length > 0 && this.variablesService.daemon_state === 2) {\n this.variablesService.contacts.map(contact => {\n this.getAliasByAddress(contact.address, (status, data) => {\n if (status) {\n if (data.alias) {\n contact.alias = '@' + data.alias;\n }\n } else {\n contact.alias = null;\n }\n });\n });\n }\n }\n\n getRecentTransfers(id, offset, count, exclude_mining_txs, callback): void {\n const params = {\n wallet_id: id,\n offset: offset,\n count: count,\n exclude_mining_txs: exclude_mining_txs,\n };\n this.runCommand(Commands.get_recent_transfers, params, callback);\n }\n\n getPoolInfo(callback): void {\n this.runCommand(Commands.get_tx_pool_info, {}, callback);\n }\n\n getVersion(callback): void {\n this.runCommand(Commands.get_version, {}, (status, version, errorVersion) => {\n this.runCommand(Commands.get_network_type, {}, (status_network, type, errorType) => {\n callback(version, type, errorVersion ?? errorType);\n });\n });\n }\n\n setLogLevel(level): void {\n this.runCommand(Commands.set_log_level, { v: level });\n }\n\n asyncCall(command: string, params: PramsObj, callback?: (job_id?: number) => void | any): void {\n this.runCommand(Commands.async_call, [command, params], (status, { job_id }: { job_id: number }) => {\n callback(job_id);\n });\n }\n\n asyncCall2a(command: string, wallet_id: number, params: PramsObj, callback?: (job_id?: number) => void | any): void {\n this.runCommand(\n Commands.async_call_2a,\n [command, wallet_id, params],\n (\n status,\n {\n job_id,\n }: {\n job_id: number;\n }\n ) => {\n callback(job_id);\n }\n );\n }\n\n dispatchAsyncCallResult(): void {\n this.backendObject[Commands.dispatch_async_call_result].connect((job_id: string, json_resp: string) => {\n const asyncCommandResults: AsyncCommandResults = {\n job_id: +job_id,\n response: JSON.parse(json_resp),\n };\n console.group(`----------- ${Commands.dispatch_async_call_result} -----------`);\n console.log(asyncCommandResults);\n console.groupEnd();\n this.ngZone.run(() => setTimeout(() => this.dispatchAsyncCallResult$.next(asyncCommandResults), 250));\n });\n }\n\n handleCurrentActionState(): void {\n this.backendObject[Commands.handle_current_action_state].connect((response: string) => {\n const currentActionState: CurrentActionState = JSON.parse(response);\n this.ngZone.run(() => this.handleCurrentActionState$.next(currentActionState));\n });\n }\n\n setEnableTor(value: boolean): void {\n this.runCommand(Commands.set_enable_tor, <{ v: boolean }>{\n v: value,\n });\n }\n\n show_notification(title: string, message: string, callback?: () => void): void {\n this.runCommand(Commands.show_notification, [title, message], callback);\n }\n\n getOptions(): any {\n this.runCommand(\n Commands.get_options,\n {},\n (\n status,\n {\n disable_price_fetch,\n use_debug_mode,\n rpc_port,\n }: { disable_price_fetch: boolean; use_debug_mode: boolean; rpc_port: number }\n ) => {\n this.variablesService.disable_price_fetch$.next(disable_price_fetch);\n this.variablesService.use_debug_mode$.next(use_debug_mode);\n this.variablesService.rpc_port = rpc_port;\n }\n );\n }\n\n addCustomAssetId(\n params: ParamsAddCustomAssetId,\n callback: (\n status: boolean,\n response_data: ResponseAddCustomAssetId,\n res_error_code?: {\n error_code: 'FAILED' | string;\n response_data: {\n asset_descriptor: Partial;\n status: 'FAILED' | string;\n };\n }\n ) => void\n ): void {\n this.runCommand(Commands.add_custom_asset_id, params, callback);\n }\n\n removeCustomAssetId(\n params: ParamsRemoveCustomAssetId,\n callback?: (status: boolean, response_data: ResponseRemoveCustomAssetId) => void\n ): void {\n this.runCommand(Commands.remove_custom_asset_id, params, callback);\n }\n\n getWalletInfo(wallet_id, callback?: (status: boolean, response_data: ResponseGetWalletInfo) => void): void {\n this.runCommand(Commands.get_wallet_info, { wallet_id }, callback);\n }\n\n // Use for call rpc-api https://docs.zano.org/docs/build/rpc-api\n call_rpc(params: Partial, callback?: (status: boolean, response_data: any) => void): void {\n this.runCommand(Commands.call_rpc, params, callback);\n }\n\n call_wallet_rpc(\n params: [wallet_id: number, params: Partial],\n callback?: (status: boolean, response_data: any) => void\n ): void {\n this.runCommand(Commands.call_wallet_rpc, params, callback);\n }\n\n private informerRun(error: string, params, command: string): void {\n let error_translate = '';\n switch (error) {\n case 'NOT_ENOUGH_MONEY':\n error_translate = 'ERRORS.NOT_ENOUGH_MONEY';\n // error_translate = 'ERRORS.NO_MONEY'; maybe that one?\n if (command === 'cancel_offer') {\n error_translate = this.translate.instant('ERRORS.NO_MONEY_REMOVE_OFFER', {\n fee: this.variablesService.default_fee,\n currency: this.variablesService.defaultTicker,\n });\n }\n break;\n case 'CORE_BUSY':\n error_translate = 'ERRORS.CORE_BUSY';\n break;\n case 'BUSY':\n error_translate = 'ERRORS.DAEMON_BUSY';\n break;\n case 'OVERFLOW':\n if (command !== 'get_all_aliases') {\n error_translate = '';\n }\n break;\n case 'NOT_ENOUGH_OUTPUTS_FOR_MIXING':\n error_translate = 'ERRORS.NOT_ENOUGH_OUTPUTS_TO_MIX';\n break;\n case 'TX_IS_TOO_BIG':\n error_translate = 'ERRORS.TRANSACTION_IS_TO_BIG';\n break;\n case 'DISCONNECTED':\n error_translate = 'ERRORS.TRANSFER_ATTEMPT';\n break;\n case 'ACCESS_DENIED':\n error_translate = 'ERRORS.ACCESS_DENIED';\n break;\n case 'TX_REJECTED':\n // if (command === 'request_alias_registration') {\n // error_translate = 'INFORMER.ALIAS_IN_REGISTER';\n // } else {\n error_translate = 'ERRORS.TRANSACTION_ERROR';\n // }\n break;\n case 'INTERNAL_ERROR':\n error_translate = 'ERRORS.TRANSACTION_ERROR';\n break;\n case 'BAD_ARG':\n error_translate = 'ERRORS.BAD_ARG';\n break;\n case 'WALLET_WRONG_ID':\n error_translate = 'ERRORS.WALLET_WRONG_ID';\n break;\n case 'WALLET_WATCH_ONLY_NOT_SUPPORTED':\n error_translate = 'ERRORS.WALLET_WATCH_ONLY_NOT_SUPPORTED';\n break;\n // case 'WRONG_PASSWORD':\n // params = JSON.parse(params);\n // if (!params.testEmpty) {\n // error_translate = 'ERRORS.WRONG_PASSWORD';\n // }\n // break;\n case 'FILE_RESTORED':\n if (command === 'open_wallet') {\n error_translate = 'ERRORS.FILE_RESTORED';\n }\n break;\n case 'FILE_NOT_FOUND':\n if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') {\n error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND');\n params = JSON.parse(params);\n if (params.path) {\n error_translate += ': ' + params.path;\n }\n }\n break;\n case 'NOT_FOUND':\n if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') {\n error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND');\n params = JSON.parse(params);\n if (params.path) {\n error_translate += ': ' + params.path;\n }\n }\n break;\n case 'CANCELED':\n case '':\n break;\n case 'FAIL':\n if (\n command === 'create_proposal' ||\n command === 'accept_proposal' ||\n command === 'release_contract' ||\n command === 'request_cancel_contract' ||\n command === 'accept_cancel_contract'\n ) {\n error_translate = ' ';\n }\n break;\n case 'ALREADY_EXISTS':\n error_translate = 'ERRORS.FILE_EXIST';\n break;\n case 'FAILED':\n BackendService.Debug(0, `Error: (${error}) was triggered by command: ${command}`);\n break;\n default:\n error_translate = '';\n }\n if (error.indexOf('FAIL:failed to save file') > -1) {\n error_translate = 'ERRORS.FILE_NOT_SAVED';\n }\n if (error.indexOf('FAILED:failed to open binary wallet file for saving') > -1 && command === 'generate_wallet') {\n error_translate = '';\n }\n\n if (error_translate !== '') {\n this.modalService.prepareModal('error', error_translate);\n }\n }\n\n private commandDebug(command: Commands, params: Params, result: any): void {\n BackendService.Debug(2, '----------------- ' + command + ' -----------------');\n const debug = {\n _send_params: params,\n _result: result,\n };\n BackendService.Debug(2, debug);\n try {\n BackendService.Debug(2, JSONBigNumber.parse(result, BackendService.bigNumberParser));\n } catch (e) {\n BackendService.Debug(2, { response_data: result, error_code: 'OK' });\n }\n }\n\n private backendCallback(resultStr, params, callback, command: Commands): any {\n let Result = resultStr;\n if (command !== Commands.get_clipboard) {\n if (!resultStr || resultStr === '') {\n Result = {};\n } else {\n try {\n Result = JSONBigNumber.parse(resultStr, BackendService.bigNumberParser);\n } catch (e) {\n Result = { response_data: resultStr, error_code: 'OK' };\n }\n }\n } else {\n Result = {\n error_code: 'OK',\n response_data: Result,\n };\n }\n\n const core_busy = Result.error_code === 'CORE_BUSY';\n const Status = Result.error_code === 'OK' || Result.error_code === 'TRUE';\n\n if (!Status && Status !== undefined && Result.error_code !== undefined) {\n BackendService.Debug(1, 'API error for command: \"' + command + '\". Error code: ' + Result.error_code);\n }\n const data = typeof Result === 'object' && 'response_data' in Result ? Result.response_data : Result;\n\n let res_error_code = false;\n if (\n typeof Result === 'object' &&\n 'error_code' in Result &&\n Result.error_code !== 'OK' &&\n Result.error_code !== 'TRUE' &&\n Result.error_code !== 'FALSE' &&\n Result.error_code !== 'WRAP'\n ) {\n if (core_busy) {\n setTimeout(() => {\n // this is will avoid update data when user\n // on other wallet after CORE_BUSY (blink of data)\n if (command !== Commands.get_recent_transfers) {\n this.runCommand(command, params, callback);\n } else {\n const current_wallet_id = this.variablesService.currentWallet.wallet_id;\n if (current_wallet_id === params.wallet_id) {\n this.runCommand(command, params, callback);\n }\n }\n }, 50);\n } else {\n this.informerRun(Result.error_code, params, command);\n res_error_code = Result.error_code;\n }\n }\n\n if (!core_busy) {\n if (typeof callback === 'function') {\n callback(Status, data, res_error_code);\n } else {\n return data;\n }\n }\n }\n\n private runCommand(command: Commands, params?: Params, callback?): any {\n if (!this.backendObject) {\n return;\n }\n\n if (command === Commands.get_recent_transfers) {\n this.variablesService.get_recent_transfers = true;\n }\n\n const Action = this.backendObject[command];\n\n if (!Action) {\n BackendService.Debug(0, 'Run Command Error! Command \"' + command + '\" don\\'t found in backendObject');\n return;\n }\n\n const type: ParamsType = getParamsType(params);\n params = params && convertorParams(params);\n\n if (type === ParamsType.array) {\n Action(...(params as string[]), resultStr => {\n this.commandDebug(command, params, resultStr);\n return this.backendCallback(resultStr, params, callback, command);\n });\n return;\n }\n\n if (command === Commands.get_recent_transfers) {\n this.variablesService.get_recent_transfers = false;\n }\n Action(params, resultStr => {\n this.commandDebug(command, params, resultStr);\n return this.backendCallback(resultStr, params, callback, command);\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { WrapInfo } from '@api/models/wrap-info';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WrapInfoService {\n private httpClient = inject(HttpClient);\n\n getWrapInfo(): Observable {\n return this.httpClient.get('https://wrapped.zano.org/api2/get_wrap_info');\n }\n}\n","import { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\n\n@NgModule({\n imports: [RouterModule.forRoot([], { relativeLinkResolution: 'legacy' })],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { Component, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BackendService, Commands } from '@api/services/backend.service';\nimport { Router } from '@angular/router';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { IntToMoneyPipe } from '@parts/pipes';\nimport { BigNumber } from 'bignumber.js';\nimport { ModalService } from '@parts/services/modal.service';\nimport { StateKeys, Store } from '@store/store';\nimport { Subject, take } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { paths, pathsChildrenAuth } from './pages/paths';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { ZanoLoadersService } from '@parts/services/zano-loaders.service';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-root',\n template: `\n \n\n
\n

\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\n

\n

\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\n

\n

\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\n

\n
\n
\n\n
\n

\n {{ zanoLoadersService.getMessage('fullScreen') | async | translate }}\n

\n
\n
\n\n \n\n \n `,\n})\nexport class AppComponent implements OnInit, OnDestroy {\n intervalUpdatePriceState;\n\n intervalUpdateContractsState;\n\n expMedTsEvent;\n\n onQuitRequest = false;\n\n firstOnlineState = false;\n\n translateUsed = false;\n\n needOpenWallets = [];\n\n currentScreenSize: string;\n\n displayNameMap = new Map([\n [Breakpoints.XSmall, 'XSmall'],\n [Breakpoints.Small, 'Small'],\n [Breakpoints.Medium, 'Medium'],\n [Breakpoints.Large, 'Large'],\n [Breakpoints.XLarge, 'XLarge'],\n ]);\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n public translate: TranslateService,\n private http: HttpClient,\n private renderer: Renderer2,\n private backendService: BackendService,\n private router: Router,\n private ngZone: NgZone,\n private intToMoneyPipe: IntToMoneyPipe,\n private modalService: ModalService,\n private store: Store,\n private dialog: Dialog,\n private matDialog: MatDialog,\n public zanoLoadersService: ZanoLoadersService,\n private _breakpointObserver: BreakpointObserver\n ) {\n translate.addLangs(['en', 'fr', 'de', 'it', 'pt']);\n translate.setDefaultLang('en');\n translate\n .use('en')\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: () => {\n this.translateUsed = true;\n },\n });\n\n this._setResponseClasses();\n }\n\n private _setResponseClasses(): void {\n this._breakpointObserver\n .observe([\n Breakpoints.XSmall, // XSmall\t(max-width: 599.98px)\n Breakpoints.Small, // Small\t(min-width: 600px) and (max-width: 959.98px)\n Breakpoints.Medium, // Medium\t(min-width: 960px) and (max-width: 1279.98px)\n Breakpoints.Large, // Large\t(min-width: 1280px) and (max-width: 1919.98px)\n Breakpoints.XLarge, // XLarge\t(min-width: 1920px)\n ])\n .pipe(takeUntil(this.destroy$))\n .subscribe(result => {\n for (const query of Object.keys(result.breakpoints)) {\n if (result.breakpoints[query]) {\n this.currentScreenSize = this.displayNameMap.get(query) ?? 'Unknown';\n\n document.body.classList.remove(...this.displayNameMap.values());\n document.body.classList.add(this.currentScreenSize);\n }\n }\n });\n }\n\n setBackendLocalization(): void {\n if (this.translateUsed) {\n const stringsArray = [\n this.translate.instant('BACKEND_LOCALIZATION.QUIT'),\n this.translate.instant('BACKEND_LOCALIZATION.IS_RECEIVED'),\n this.translate.instant('BACKEND_LOCALIZATION.IS_CONFIRMED'),\n this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_UNCONFIRMED'),\n this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_CONFIRMED'),\n this.translate.instant('BACKEND_LOCALIZATION.MINED'),\n this.translate.instant('BACKEND_LOCALIZATION.LOCKED'),\n this.translate.instant('BACKEND_LOCALIZATION.IS_MINIMIZE'),\n this.translate.instant('BACKEND_LOCALIZATION.RESTORE'),\n this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_SHOW'),\n this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_MINIMIZE'),\n ];\n this.backendService.setBackendLocalization(stringsArray, this.variablesService.settings.language);\n } else {\n console.warn('wait translate use');\n setTimeout(() => {\n this.setBackendLocalization();\n }, 10000);\n }\n }\n\n ngOnInit(): void {\n this.backendService.initService().subscribe({\n next: initMessage => {\n console.log('Init message: ', initMessage);\n this.backendService.webkitLaunchedScript();\n\n this.backendService.start_backend(false, '127.0.0.1', 11512, (st2, dd2) => {\n console.log(st2, dd2);\n });\n\n this.backendService.eventSubscribe(Commands.quit_requested, async () => {\n if (this.onQuitRequest) {\n return;\n }\n\n // await this.ngZone.run(async () => {\n // await this.router.navigate(['/']);\n // });\n\n this.dialog.closeAll();\n this.matDialog.closeAll();\n\n this.needOpenWallets = [];\n this.variablesService.daemon_state = 5;\n\n const saveFunction = (): void => {\n this.backendService.storeAppData((): void => {\n const recursionCloseWallets = (): void => {\n if (this.variablesService.wallets.length > 0) {\n const lastIndex = this.variablesService.wallets.length - 1;\n this.backendService.closeWallet(this.variablesService.wallets[lastIndex].wallet_id, () => {\n this.variablesService.wallets.splice(lastIndex, 1);\n recursionCloseWallets();\n });\n } else {\n this.ngZone.run(() => {\n this.backendService.quitRequest();\n });\n }\n };\n recursionCloseWallets();\n });\n };\n if (this.variablesService.appPass) {\n this.backendService.storeSecureAppData(saveFunction);\n } else {\n saveFunction();\n }\n\n this.onQuitRequest = true;\n });\n\n this.backendService.eventSubscribe(Commands.update_wallet_status, data => {\n console.log('----------------- update_wallet_status -----------------');\n console.log(data);\n\n const wallet_state = data.wallet_state;\n const is_mining = data.is_mining;\n const wallet = this.variablesService.getWallet(data.wallet_id);\n // 1-synch, 2-ready, 3 - error\n if (wallet) {\n this.ngZone.run(() => {\n wallet.loaded = false;\n wallet.staking = is_mining;\n if (wallet_state === 2) {\n // ready\n wallet.loaded = true;\n }\n if (wallet_state === 3) {\n // error\n // wallet.error = true;\n }\n wallet.balances = data.balances;\n wallet.mined_total = data.minied_total;\n wallet.alias_available = data.is_alias_operations_available;\n wallet.has_bare_unspent_outputs = data.has_bare_unspent_outputs;\n });\n }\n });\n\n this.backendService.eventSubscribe(Commands.wallet_sync_progress, data => {\n console.log('----------------- wallet_sync_progress -----------------');\n console.log(data);\n const wallet = this.variablesService.getWallet(data.wallet_id);\n if (wallet) {\n this.ngZone.run(() => {\n wallet.progress = data.progress < 0 ? 0 : data.progress > 100 ? 100 : data.progress;\n if (!this.variablesService.sync_started) {\n this.variablesService.sync_started = true;\n this.variablesService.sync_wallets[wallet.wallet_id] = true;\n }\n this.addToStore(wallet, true); // subscribe on data\n if (wallet.progress === 0) {\n wallet.loaded = false;\n } else if (wallet.progress === 100) {\n wallet.loaded = true;\n this.addToStore(wallet, false);\n this.variablesService.sync_started = false;\n this.variablesService.sync_wallets[wallet.wallet_id] = false;\n }\n });\n }\n });\n\n this.backendService.eventSubscribe(Commands.update_daemon_state, data => {\n console.log('----------------- update_daemon_state -----------------');\n console.log('DAEMON:' + data.daemon_network_state);\n console.log(data);\n // this.variablesService.exp_med_ts = data['expiration_median_timestamp'] + 600 + 1;\n this.variablesService.setExpMedTs(data['expiration_median_timestamp'] + 600 + 1);\n this.variablesService.net_time_delta_median = data.net_time_delta_median;\n this.variablesService.last_build_available = data.last_build_available;\n this.variablesService.last_build_displaymode = data.last_build_displaymode;\n this.variablesService.setHeightApp(data.height);\n this.variablesService.setHeightMax(data.max_net_seen_height);\n\n this.variablesService.setDownloadedBytes(data.downloaded_bytes);\n this.variablesService.setTotalBytes(data.download_total_data_size);\n\n this.backendService.getContactAlias();\n this.ngZone.run(() => {\n const daemon_state: number = data['daemon_network_state'];\n this.variablesService.daemon_state = daemon_state;\n this.variablesService.daemon_state$.next(daemon_state);\n\n if (data['daemon_network_state'] === 1) {\n const max = data['max_net_seen_height'] - data['synchronization_start_height'];\n const current = data.height - data['synchronization_start_height'];\n const return_val = Math.floor(((current * 100) / max) * 100) / 100;\n if (max === 0 || return_val < 0) {\n this.variablesService.sync.progress_value = 0;\n this.variablesService.sync.progress_value_text = '0.00';\n this.variablesService.sync.blocks.current = 0;\n this.variablesService.sync.blocks.max = 0;\n } else if (return_val >= 100) {\n this.variablesService.sync.progress_value = 100;\n this.variablesService.sync.progress_value_text = '99.99';\n this.variablesService.sync.blocks.current = current;\n this.variablesService.sync.blocks.max = max;\n } else {\n this.variablesService.sync.progress_value = return_val;\n this.variablesService.sync.progress_value_text = return_val.toFixed(2);\n this.variablesService.sync.blocks.current = current;\n this.variablesService.sync.blocks.max = max;\n }\n }\n\n if (data['daemon_network_state'] === 6) {\n const max = data['download_total_data_size'];\n const current = data['downloaded_bytes'];\n const return_val = Math.floor((current / max) * 100);\n if (max === 0 || return_val < 0) {\n this.variablesService.download.progress_value = 0;\n this.variablesService.download.progress_value_text = '0.00';\n } else if (return_val >= 100) {\n this.variablesService.download.progress_value = 100;\n this.variablesService.download.progress_value_text = '99.99';\n } else {\n this.variablesService.download.progress_value = return_val;\n this.variablesService.download.progress_value_text = return_val.toFixed(2);\n }\n }\n });\n if (!this.firstOnlineState && data['daemon_network_state'] === 2) {\n this.getAliases();\n this.backendService.getContactAlias();\n this.backendService.getDefaultFee((status_fee, data_fee) => {\n this.variablesService.default_fee_big = new BigNumber(data_fee);\n this.variablesService.default_fee = this.intToMoneyPipe.transform(data_fee);\n });\n this.firstOnlineState = true;\n }\n });\n\n this.backendService.eventSubscribe(Commands.money_transfer, data => {\n console.log('----------------- money_transfer -----------------');\n console.log(data);\n\n if (!data.ti) {\n return;\n }\n\n const wallet_id = data.wallet_id;\n const tr_info = data.ti;\n\n const wallet = this.variablesService.getWallet(wallet_id);\n if (wallet) {\n if (wallet.history.length > 40) {\n wallet.history.splice(40, 1);\n }\n this.ngZone.run(() => {\n wallet.balances = data.balances;\n\n if (tr_info.tx_type === 6) {\n this.variablesService.setRefreshStacking(wallet_id);\n }\n\n let tr_exists = wallet.excluded_history.some(elem => elem.tx_hash === tr_info.tx_hash);\n tr_exists = !tr_exists ? wallet.history.some(elem => elem.tx_hash === tr_info.tx_hash) : tr_exists;\n\n if (wallet.currentPage === 1) {\n wallet.prepareHistory([tr_info]);\n if (wallet.restore) {\n wallet.total_history_item = wallet.history.length;\n wallet.totalPages = Math.ceil(wallet.total_history_item / this.variablesService.count);\n wallet.totalPages > this.variablesService.maxPages\n ? (wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (wallet.pages = new Array(wallet.totalPages).fill(1).map((value, index) => value + index));\n }\n }\n\n if (hasOwnProperty(tr_info, 'contract')) {\n const exp_med_ts = this.variablesService.exp_med_ts;\n const height_app = this.variablesService.height_app;\n const contract = tr_info.contract[0];\n if (tr_exists) {\n for (let i = 0; i < wallet.contracts.length; i++) {\n if (\n wallet.contracts[i].contract_id === contract.contract_id &&\n wallet.contracts[i].is_a === contract.is_a\n ) {\n wallet.contracts[i].cancel_expiration_time = contract.cancel_expiration_time;\n wallet.contracts[i].expiration_time = contract.expiration_time;\n wallet.contracts[i].height = contract.height;\n wallet.contracts[i].timestamp = contract.timestamp;\n break;\n }\n }\n // $rootScope.getContractsRecount();\n return;\n }\n\n if (contract.state === 1 && contract.expiration_time < exp_med_ts) {\n contract.state = 110;\n } else if (contract.state === 5 && contract.cancel_expiration_time < exp_med_ts) {\n contract.state = 130;\n } else if (contract.state === 1) {\n const searchResult2 = this.variablesService.settings.notViewedContracts.find(\n elem =>\n elem.state === 110 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id\n );\n if (searchResult2) {\n if (searchResult2.time === contract.expiration_time) {\n contract.state = 110;\n } else {\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\n if (\n this.variablesService.settings.notViewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.notViewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.notViewedContracts.splice(j, 1);\n break;\n }\n }\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\n if (\n this.variablesService.settings.viewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.viewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.viewedContracts.splice(j, 1);\n break;\n }\n }\n }\n }\n } else if (contract.state === 2 && (contract.height === 0 || height_app - contract.height < 10)) {\n contract.state = 201;\n } else if (contract.state === 2) {\n const searchResult3 = this.variablesService.settings.viewedContracts.some(\n elem =>\n elem.state === 120 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id\n );\n if (searchResult3) {\n contract.state = 120;\n }\n } else if (contract.state === 5) {\n const searchResult4 = this.variablesService.settings.notViewedContracts.find(\n elem =>\n elem.state === 130 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id\n );\n if (searchResult4) {\n if (searchResult4.time === contract.cancel_expiration_time) {\n contract.state = 130;\n } else {\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\n if (\n this.variablesService.settings.notViewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.notViewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.notViewedContracts.splice(j, 1);\n break;\n }\n }\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\n if (\n this.variablesService.settings.viewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.viewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.viewedContracts.splice(j, 1);\n break;\n }\n }\n }\n }\n } else if (contract.state === 6 && (contract.height === 0 || height_app - contract.height < 10)) {\n contract.state = 601;\n }\n\n const searchResult = this.variablesService.settings.viewedContracts.some(\n elem =>\n elem.state === contract.state &&\n elem.is_a === contract.is_a &&\n elem.contract_id === contract.contract_id\n );\n contract.is_new = !searchResult;\n\n let findContract = false;\n for (let i = 0; i < wallet.contracts.length; i++) {\n if (\n wallet.contracts[i].contract_id === contract.contract_id &&\n wallet.contracts[i].is_a === contract.is_a\n ) {\n for (const prop in contract) {\n if (hasOwnProperty(contract, prop)) {\n wallet.contracts[i][prop] = contract[prop];\n }\n }\n findContract = true;\n break;\n }\n }\n if (findContract === false) {\n wallet.contracts.push(contract);\n }\n // wallet.recountNewContracts();\n }\n });\n }\n });\n\n this.backendService.backendObject[Commands.handle_deeplink_click].connect(data => {\n console.log('----------------- handle_deeplink_click -----------------');\n console.log(data);\n this.ngZone.run(() => {\n if (data) {\n this.variablesService.deeplink$.next(data);\n }\n });\n });\n\n this.backendService.eventSubscribe(Commands.money_transfer_cancel, data => {\n console.log('----------------- money_transfer_cancel -----------------');\n console.log(data);\n\n if (!data.ti) {\n return;\n }\n\n const wallet_id = data.wallet_id;\n const tr_info = data.ti;\n const wallet = this.variablesService.getWallet(wallet_id);\n\n if (wallet) {\n if (hasOwnProperty(tr_info, 'contract')) {\n for (let i = 0; i < wallet.contracts.length; i++) {\n if (\n wallet.contracts[i].contract_id === tr_info.contract[0].contract_id &&\n wallet.contracts[i].is_a === tr_info.contract[0].is_a\n ) {\n if (wallet.contracts[i].state === 1 || wallet.contracts[i].state === 110) {\n wallet.contracts[i].is_new = true;\n wallet.contracts[i].state = 140;\n // wallet.recountNewContracts();\n }\n break;\n }\n }\n }\n\n wallet.removeFromHistory(tr_info.tx_hash);\n\n let error_tr = '';\n switch (tr_info.tx_type) {\n case 0:\n error_tr =\n this.translate.instant('ERRORS.TX_TYPE_NORMAL') +\n '
' +\n tr_info.tx_hash +\n '
' +\n wallet.name +\n '
' +\n wallet.address +\n '
' +\n this.translate.instant('ERRORS.TX_TYPE_NORMAL_TO') +\n ' ' +\n this.intToMoneyPipe.transform(tr_info.amount) +\n ' ' +\n this.translate.instant('ERRORS.TX_TYPE_NORMAL_END');\n break;\n case 1:\n // this.translate.instant('ERRORS.TX_TYPE_PUSH_OFFER');\n break;\n case 2:\n // this.translate.instant('ERRORS.TX_TYPE_UPDATE_OFFER');\n break;\n case 3:\n // this.translate.instant('ERRORS.TX_TYPE_CANCEL_OFFER');\n break;\n case 4:\n error_tr =\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS') +\n '
' +\n tr_info.tx_hash +\n '
' +\n wallet.name +\n '
' +\n wallet.address +\n '
' +\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END');\n break;\n case 5:\n error_tr =\n this.translate.instant('ERRORS.TX_TYPE_UPDATE_ALIAS') +\n '
' +\n tr_info.tx_hash +\n '
' +\n wallet.name +\n '
' +\n wallet.address +\n '
' +\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END');\n break;\n case 6:\n error_tr = this.translate.instant('ERRORS.TX_TYPE_COIN_BASE');\n break;\n }\n if (error_tr) {\n this.modalService.prepareModal('error', error_tr);\n }\n }\n });\n\n this.backendService.eventSubscribe(Commands.on_core_event, data => {\n console.log('----------------- on_core_event -----------------');\n console.log(data);\n\n data = JSON.parse(data);\n\n if (data.events != null) {\n for (let i = 0, length = data.events.length; i < length; i++) {\n switch (data.events[i].method) {\n case 'CORE_EVENT_BLOCK_ADDED':\n break;\n case 'CORE_EVENT_ADD_ALIAS':\n if (this.variablesService.aliasesChecked[data.events[i].details.address] != null) {\n this.variablesService.aliasesChecked[data.events[i].details.address]['name'] =\n '@' + data.events[i].details.alias;\n this.variablesService.aliasesChecked[data.events[i].details.address]['address'] =\n data.events[i].details.address;\n this.variablesService.aliasesChecked[data.events[i].details.address]['comment'] =\n data.events[i].details.comment;\n }\n if (this.variablesService.enableAliasSearch) {\n const newAlias = {\n name: '@' + data.events[i].details.alias,\n address: data.events[i].details.address,\n comment: data.events[i].details.comment,\n };\n this.variablesService.aliases = this.variablesService.aliases.concat(newAlias);\n this.variablesService.changeAliases();\n }\n break;\n case 'CORE_EVENT_UPDATE_ALIAS':\n for (const address in this.variablesService.aliasesChecked) {\n if (hasOwnProperty(this.variablesService.aliasesChecked, address)) {\n if (this.variablesService.aliasesChecked[address].name === '@' + data.events[i].details.alias) {\n if (\n this.variablesService.aliasesChecked[address].address !==\n data.events[i].details.details.address\n ) {\n delete this.variablesService.aliasesChecked[address]['name'];\n delete this.variablesService.aliasesChecked[address]['address'];\n delete this.variablesService.aliasesChecked[address]['comment'];\n } else {\n this.variablesService.aliasesChecked[address].comment =\n data.events[i].details.details.comment;\n }\n break;\n }\n }\n }\n if (this.variablesService.aliasesChecked[data.events[i].details.details.address] != null) {\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['name'] =\n '@' + data.events[i].details.alias;\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['address'] =\n data.events[i].details.details.address;\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['comment'] =\n data.events[i].details.details.comment;\n }\n if (this.variablesService.enableAliasSearch) {\n const CurrentAlias = this.variablesService.aliases.find(\n element => element.name === '@' + data.events[i].details.alias\n );\n if (CurrentAlias) {\n CurrentAlias.address = data.events[i].details.details.address;\n CurrentAlias.comment = data.events[i].details.details.comment;\n }\n }\n this.variablesService.changeAliases();\n break;\n default:\n break;\n }\n }\n }\n });\n\n this.intervalUpdateContractsState = setInterval(() => {\n this.variablesService.wallets.forEach(wallet => {\n wallet.contracts.forEach(contract => {\n if (\n contract.state === 201 &&\n contract.height !== 0 &&\n this.variablesService.height_app - contract.height >= 10\n ) {\n contract.state = 2;\n contract.is_new = true;\n console.warn('need check state in contracts');\n } else if (\n contract.state === 601 &&\n contract.height !== 0 &&\n this.variablesService.height_app - contract.height >= 10\n ) {\n contract.state = 6;\n contract.is_new = true;\n }\n });\n });\n }, 30000);\n\n this.expMedTsEvent = this.variablesService.getExpMedTsEvent.subscribe({\n next: (newTimestamp: number) => {\n this.variablesService.wallets.forEach(wallet => {\n wallet.contracts.forEach(contract => {\n if (contract.state === 1 && contract.expiration_time <= newTimestamp) {\n contract.state = 110;\n contract.is_new = true;\n } else if (contract.state === 5 && contract.cancel_expiration_time <= newTimestamp) {\n contract.state = 130;\n contract.is_new = true;\n }\n });\n });\n },\n });\n\n this.backendService.getAppData((status, data) => {\n if (data && Object.keys(data).length > 0) {\n for (const key in data) {\n if (hasOwnProperty(data, key) && hasOwnProperty(this.variablesService.settings, key)) {\n this.variablesService.settings[key] = data[key];\n }\n }\n\n const { isDarkTheme$, visibilityBalance$, settings } = this.variablesService;\n\n isDarkTheme$.next(settings.isDarkTheme);\n visibilityBalance$.next(settings.visibilityBalance);\n // TODO: Delete this line after return appUseTor\n settings.appUseTor = false;\n if (hasOwnProperty(settings, 'scale') && ['8px', '10px', '12px', '14px'].indexOf(settings.scale) !== -1) {\n this.renderer.setStyle(document.documentElement, 'font-size', settings.scale);\n } else {\n settings.scale = '10px';\n this.renderer.setStyle(document.documentElement, 'font-size', settings.scale);\n }\n\n this.renderer.setAttribute(document.documentElement, 'class', settings.isDarkTheme ? 'dark' : 'light');\n }\n this.translate.use(this.variablesService.settings.language);\n this.setBackendLocalization();\n\n this.backendService.setLogLevel(this.variablesService.settings.appLog);\n this.backendService.setEnableTor(this.variablesService.settings.appUseTor);\n\n if (!this.variablesService.settings.wallets || this.variablesService.settings.wallets.length === 0) {\n this.ngZone.run(() => {\n this.router.navigate([`${paths.auth}/${pathsChildrenAuth.noWallet}`]).then();\n });\n return;\n }\n\n if (this.router.url !== '/login') {\n this.backendService.haveSecureAppData(statusPass => {\n console.log('--------- haveSecureAppData ----------', statusPass);\n if (statusPass) {\n this.ngZone.run(() => {\n this.router.navigate(['/login'], {\n queryParams: { type: 'auth' },\n });\n });\n } else {\n if (Object.keys(data).length !== 0) {\n this.needOpenWallets = JSON.parse(JSON.stringify(this.variablesService.settings.wallets));\n this.ngZone.run(() => {\n this.variablesService.appLogin = true;\n this.router.navigate(['/']);\n });\n } else {\n this.ngZone.run(() => {\n this.router.navigate(['/login'], {\n queryParams: { type: 'reg' },\n });\n });\n }\n }\n });\n }\n });\n\n this.backendService.dispatchAsyncCallResult();\n\n this.backendService.handleCurrentActionState();\n\n this.getVersion();\n\n setTimeout(() => {\n this.backendService.getOptions();\n this.getInfo();\n this._getZanoCurrentSupply();\n }, 10 * 1000);\n },\n error: error => {\n console.log(error);\n },\n });\n\n this.variablesService.disable_price_fetch$.pipe(takeUntil(this.destroy$)).subscribe({\n next: disable_price_fetch => {\n const updateTime = 10 * 60 * 1000;\n if (!disable_price_fetch) {\n this.updateMoneyEquivalent();\n this.intervalUpdatePriceState = setInterval(() => {\n this.updateMoneyEquivalent();\n }, updateTime);\n } else {\n if (this.intervalUpdatePriceState) {\n clearInterval(this.intervalUpdatePriceState);\n }\n }\n },\n });\n\n this.variablesService.isDarkTheme$.pipe(takeUntil(this.destroy$)).subscribe({\n next: isDarkTheme => {\n this.renderer.setAttribute(document.documentElement, 'class', isDarkTheme ? 'dark' : 'light');\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n if (this.intervalUpdateContractsState) {\n clearInterval(this.intervalUpdateContractsState);\n }\n if (this.intervalUpdatePriceState) {\n clearInterval(this.intervalUpdatePriceState);\n }\n this.expMedTsEvent.unsubscribe();\n }\n\n updateMoneyEquivalent(): void {\n this.http\n .get('https://explorer.zano.org/api/price?asset=zano')\n .pipe(take(1))\n .subscribe({\n next: ({ data, success }: { data: { zano: { usd: number; usd_24h_change: number } }; success: boolean }): void => {\n if (success) {\n this.variablesService.zanoMoneyEquivalent = data['zano']['usd'];\n this.variablesService.zanoMoneyEquivalentPercent = data['zano']['usd_24h_change'];\n }\n },\n error: error => {\n console.warn('api.coingecko.com price error: ', error);\n },\n });\n\n this.variablesService.isDarkTheme$.pipe(takeUntil(this.destroy$)).subscribe({\n next: isDarkTheme => {\n this.renderer.setAttribute(document.documentElement, 'class', isDarkTheme ? 'dark' : 'light');\n },\n });\n }\n\n getAliases(): void {\n this.backendService.getAllAliases((status, data, error) => {\n console.warn(error);\n\n if (error === 'CORE_BUSY') {\n window.setTimeout(() => {\n this.getAliases();\n }, 10000);\n } else if (error === 'OVERFLOW') {\n this.variablesService.aliases = [];\n this.variablesService.enableAliasSearch = false;\n this.variablesService.wallets.forEach(wallet => {\n wallet.alias = this.backendService.getWalletAlias(wallet.address);\n });\n } else {\n this.variablesService.enableAliasSearch = true;\n if (data.aliases && data.aliases.length) {\n this.variablesService.aliases = [];\n data.aliases.forEach(alias => {\n const newAlias = {\n name: '@' + alias.alias,\n address: alias.address,\n comment: alias.comment,\n };\n this.variablesService.aliases.push(newAlias);\n });\n this.variablesService.wallets.forEach(wallet => {\n wallet.alias = this.backendService.getWalletAlias(wallet.address);\n });\n this.variablesService.aliases = this.variablesService.aliases.sort((a, b) => {\n if (a.name.length > b.name.length) {\n return 1;\n }\n if (a.name.length < b.name.length) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n if (a.name < b.name) {\n return -1;\n }\n return 0;\n });\n this.variablesService.changeAliases();\n }\n }\n });\n }\n\n addToStore(wallet, boolean): void {\n const value = this.store.state.sync;\n if (value && value.length > 0) {\n const sync = value.filter(item => item.wallet_id === wallet.wallet_id);\n if (sync && sync.length > 0) {\n const result = value.map(item => {\n if (item.wallet_id === wallet.wallet_id) {\n return { sync: boolean, wallet_id: wallet.wallet_id };\n } else {\n return item;\n }\n });\n this.store.set(StateKeys.sync, result);\n } else {\n value.push({ sync: boolean, wallet_id: wallet.wallet_id });\n this.store.set(StateKeys.sync, value);\n }\n } else {\n this.store.set(StateKeys.sync, [{ sync: boolean, wallet_id: wallet.wallet_id }]);\n }\n }\n\n getVersion(): void {\n this.backendService.getVersion((version, type, error) => {\n this.ngZone.run(() => {\n if (!error) {\n console.log('----------------- version -----------------', version);\n console.log('----------------- type -----------------', type);\n this.variablesService.testnet = type === 'testnet';\n this.variablesService.networkType = type;\n }\n });\n });\n }\n\n getInfo(): void {\n const updateTime = 60 * 1000;\n const getInfo = () => {\n const params = {\n jsonrpc: '2.0',\n method: 'getinfo',\n };\n\n this.backendService.call_rpc(params, (status, response_data) => {\n this.variablesService.info$.next(response_data.result);\n });\n };\n getInfo();\n setInterval(getInfo, updateTime);\n }\n\n private _getZanoCurrentSupply(): void {\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'getinfo',\n params: {\n flags: 1024,\n },\n };\n\n this.backendService.call_rpc(params, (status, response_data) => {\n this.ngZone.run(() => {\n this.variablesService.zano_current_supply = response_data?.['result']?.['total_coins'] ?? 'Unknown';\n });\n });\n }\n}\n","import { inject, NgModule } from '@angular/core';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { PagesModule } from './pages/pages.module';\nimport { CommonModule } from '@angular/common';\nimport { TranslateLoader, TranslateModule, TranslateModuleConfig } from '@ngx-translate/core';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { BrowserModule, DomSanitizer } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ChartModule, HIGHCHARTS_MODULES } from 'angular-highcharts';\nimport * as highcharts from 'highcharts';\nimport exporting from 'highcharts/modules/exporting.src';\nimport { MoneyToIntPipeModule } from '@parts/pipes';\nimport { OpenWalletModalComponent } from '@parts/modals/open-wallet-modal/open-wallet-modal.component';\nimport { FlexModule } from '@angular/flex-layout';\nimport { FormsModule } from '@angular/forms';\nimport { RegisterContextTemplatesComponent } from '@parts/components/register-context-templates.component';\nimport { DEFAULT_DIALOG_CONFIG, DialogConfig } from '@angular/cdk/dialog';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { materialZanoIcons } from '../assets/material-zano-icons';\nimport { MAT_DIALOG_DEFAULT_OPTIONS, MatDialogConfig, MatDialogModule } from '@angular/material/dialog';\n\nexport function highchartsFactory(): any[] {\n highcharts.setOptions({\n time: {\n useUTC: false,\n },\n });\n\n return [exporting];\n}\n\nexport const provideHighchartsFactory = {\n provide: HIGHCHARTS_MODULES,\n useFactory: highchartsFactory,\n};\n\nexport function HttpLoaderFactory(httpClient: HttpClient): TranslateHttpLoader {\n return new TranslateHttpLoader(httpClient, './assets/i18n/', '.json');\n}\n\nexport const translateModuleConfig: TranslateModuleConfig = {\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n};\n\n@NgModule({\n declarations: [AppComponent, OpenWalletModalComponent],\n imports: [\n CommonModule,\n BrowserModule,\n BrowserAnimationsModule,\n HttpClientModule,\n TranslateModule.forRoot(translateModuleConfig),\n AppRoutingModule,\n PagesModule,\n ChartModule,\n MoneyToIntPipeModule,\n FlexModule,\n FormsModule,\n MatDialogModule,\n RegisterContextTemplatesComponent,\n ],\n providers: [\n provideHighchartsFactory,\n {\n provide: DEFAULT_DIALOG_CONFIG,\n useValue: {\n width: '95vw',\n maxWidth: '54rem',\n maxHeight: '90vh',\n hasBackdrop: true,\n disableClose: true,\n },\n },\n {\n provide: MAT_DIALOG_DEFAULT_OPTIONS,\n useValue: {\n width: '95vw',\n maxWidth: '54rem',\n maxHeight: '90vh',\n panelClass: 'zano-mat-dialog',\n hasBackdrop: true,\n disableClose: true,\n },\n },\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {\n private _matIconRegistry: MatIconRegistry = inject(MatIconRegistry);\n private _sanitizer: DomSanitizer = inject(DomSanitizer);\n\n constructor() {\n this.registerIcons(materialZanoIcons);\n }\n\n registerIcons(icons: Array): void {\n icons.forEach((icon: string) => {\n this._matIconRegistry.addSvgIcon(\n icon,\n this._sanitizer.bypassSecurityTrustResourceUrl(`assets/material-zano-icons/${icon}.svg`)\n );\n });\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-full-layout',\n template: `\n
\n \n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class FullLayoutComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FullLayoutComponent } from './full-layout.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterOutlet } from '@angular/router';\n\n@NgModule({\n declarations: [FullLayoutComponent],\n imports: [CommonModule, RouterOutlet, FlexLayoutModule],\n exports: [FullLayoutComponent],\n})\nexport class FullLayoutModule {}\n","import { Component, NgZone, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Wallet } from '@api/models/wallet.model';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { ZanoLoadersService } from '@parts/services/zano-loaders.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-sidebar',\n template: `\n
\n
\n \"zano-logo\"\n
\n
\n\n
\n
\n \n
\n\n
\n \n \n {{ 'SIDEBAR.ADD_NEW' | translate }}\n \n\n \n \n {{ 'SIDEBAR.SETTINGS' | translate }}\n \n\n \n \n \n {{ 'SIDEBAR.LOG_OUT' | translate }}\n \n \n\n \n \n \n
\n
\n\n
\n \n
\n\n \n `,\n styleUrls: ['./sidebar.component.scss'],\n})\nexport class SidebarComponent implements OnDestroy {\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private walletsService: WalletsService,\n private route: ActivatedRoute,\n private router: Router,\n private ngZone: NgZone,\n private _matDialog: MatDialog,\n private backend: BackendService,\n public zanoLoadersService: ZanoLoadersService\n ) {}\n\n get zanoLogo(): string {\n const {\n settings: { isDarkTheme },\n } = this.variablesService;\n return isDarkTheme ? 'assets/icons/blue/zano-logo.svg' : 'assets/icons/blue/light-zano-logo.svg';\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n toggleDarkTheme(): void {\n const { settings, isDarkTheme$ } = this.variablesService;\n const isDarkTheme: boolean = !settings.isDarkTheme;\n this.variablesService.settings.isDarkTheme = isDarkTheme;\n isDarkTheme$.next(isDarkTheme);\n\n this.backend.storeAppData();\n }\n\n goMainPage(): void {\n if (this.route.snapshot.queryParams && this.route.snapshot.queryParams.prevUrl === 'login') {\n this.ngZone.run(() => {\n this.router.navigate(['/'], { queryParams: { prevUrl: 'login' } });\n });\n } else {\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n }\n }\n\n selectWallet(id: number): void {\n this.ngZone.run(() => {\n this.variablesService.setCurrentWallet(id);\n this.router.navigate(['/wallet/assets']);\n });\n }\n\n drop(event: CdkDragDrop): void {\n moveItemInArray(this.variablesService.wallets, event.previousIndex, event.currentIndex);\n }\n\n beforeClose(wallet_id): void {\n const config: MatDialogConfig = {\n data: {\n title: 'WALLET.CONFIRM.MESSAGE',\n message: 'WALLET.CONFIRM.TITLE',\n },\n };\n\n this._matDialog\n .open(ConfirmModalComponent, config)\n .afterClosed()\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: confirmed => confirmed && this.closeWallet(wallet_id),\n });\n }\n\n closeWallet(wallet_id): void {\n this.walletsService.closeWallet(wallet_id);\n }\n\n logOut(): void {\n this.zanoLoadersService.open('fullScreen', 'SIDEBAR.SYNCHRONIZATION.LOGGING_OUT');\n\n setTimeout(() => {\n this.variablesService.stopCountdown();\n this.variablesService.appLogin = false;\n this.variablesService.appPass = '';\n this.ngZone.run(() => {\n this.router.navigate(['/login'], { queryParams: { type: 'auth' } }).then(() => {\n this.zanoLoadersService.close('fullScreen');\n });\n });\n }, 500);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SidebarComponent } from './sidebar.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { RouterModule } from '@angular/router';\nimport { DisablePriceFetchModule, TooltipModule } from '@parts/directives';\nimport { ConfirmModalModule } from '@parts/modals/confirm-modal/confirm-modal.module';\nimport { DeeplinkModule } from '../../pages/deeplink/deeplink.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { IntToMoneyPipeModule } from '@parts/pipes';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\nimport { SynchronizationStatusComponent } from '@parts/components/synchronization-status.component';\nimport { WalletCardComponent } from '@parts/components/wallet-card.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [SidebarComponent],\n imports: [\n CommonModule,\n RouterModule,\n DragDropModule,\n TooltipModule,\n TranslateModule,\n DisablePriceFetchModule,\n ConfirmModalModule,\n SynchronizationStatusComponent,\n DeeplinkModule,\n StakingSwitchComponent,\n FlexLayoutModule,\n IntToMoneyPipeModule,\n WalletCardComponent,\n MatIconModule,\n ],\n exports: [SidebarComponent],\n})\nexport class SidebarModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-with-sidebar-layout',\n templateUrl: './with-sidebar-layout.component.html',\n styleUrls: ['./with-sidebar-layout.component.scss'],\n})\nexport class WithSidebarLayoutComponent {}\n","\n\n
\n \n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WithSidebarLayoutComponent } from './with-sidebar-layout.component';\nimport { SidebarModule } from '../sidebar/sidebar.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterOutlet } from '@angular/router';\n\n@NgModule({\n declarations: [WithSidebarLayoutComponent],\n imports: [CommonModule, RouterOutlet, FlexLayoutModule, SidebarModule],\n exports: [WithSidebarLayoutComponent],\n})\nexport class WithSidebarLayoutModule {}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CREATE_NEW_WALLET_HELP_PAGE } from '@parts/data/constants';\nimport { filePathWalletValidator } from '@parts/utils/zano-validators';\nimport { ModalService } from '@parts/services/modal.service';\n\n@Component({\n selector: 'app-add-wallet',\n templateUrl: './add-wallet.component.html',\n styleUrls: ['./add-wallet.component.scss'],\n})\nexport class AddWalletComponent {\n private translateService = inject(TranslateService);\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private modalService: ModalService,\n private backendService: BackendService,\n private ngZone: NgZone\n ) {}\n\n openWallet(): void {\n const caption = this.translateService.instant('MAIN.CHOOSE_PATH');\n const default_path = this.variablesService.settings.default_path;\n this.backendService.openFileDialog(caption, '*', default_path, async (file_status, file_data) => {\n if (!file_status) {\n if (file_data['error_code'] !== 'CANCELED') {\n this.modalService.prepareModal('error', file_data['error_code']);\n }\n return;\n }\n const positionLastSlash = file_data.path.lastIndexOf('/');\n const new_default_path = file_data.path.slice(0, positionLastSlash);\n const error = filePathWalletValidator(file_data.path);\n\n if (error) {\n const text = this.translateService.instant(error.errorText);\n this.modalService.prepareModal('error', text);\n return;\n }\n\n this.variablesService.settings.default_path = new_default_path;\n await this.ngZone.run(async () => {\n await this.router.navigate(['/open'], {\n queryParams: { path: file_data.path },\n });\n });\n });\n }\n\n openInBrowser(): void {\n this.backendService.openUrlInBrowser(CREATE_NEW_WALLET_HELP_PAGE);\n }\n}\n","
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n
\n
\n
\n

{{ 'MAIN.TITLE' | translate }}

\n\n \n\n \n\n \n\n \n \n {{ 'MAIN.HELP' | translate }}\n

\n
\n
\n
\n
\n
\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { IntToMoneyPipe } from '@parts/pipes/int-to-money-pipe/int-to-money.pipe';\nimport BigNumber from 'bignumber.js';\nimport { Subject } from 'rxjs';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpAliasName } from '@parts/utils/zano-validators';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-assign-alias',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ASSIGN_ALIAS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n {{ 'ASSIGN_ALIAS.NAME.LABEL' | translate }}\n \n
\n \n
\n \n 6 &&\n assignForm.get('name').value.length <= 25\n \"\n >\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_WRONG' | translate }}\n
\n
25\">\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_LENGTH' | translate }}\n
\n
\n
\n
\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_EXISTS' | translate }}\n
\n
\n
\n
\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\n
\n
\n
\n\n
\n \n {{ 'ASSIGN_ALIAS.COMMENT.LABEL' | translate }}\n \n \n \n
= variablesService.maxCommentLength\" class=\"error\">\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n\n

\n {{\n 'ASSIGN_ALIAS.COST'\n | translate\n : {\n value: alias.price | intToMoney,\n currency: variablesService.defaultTicker\n }\n }}\n

\n\n \n {{ 'ASSIGN_ALIAS.BUTTON_ASSIGN' | translate }}\n \n \n
\n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class AssignAliasComponent implements OnInit, OnDestroy {\n wallet: Wallet;\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.ASSIGN_ALIAS',\n },\n ];\n\n fb = inject(FormBuilder);\n\n assignForm = this.fb.group({\n name: this.fb.nonNullable.control('', [Validators.required, Validators.pattern(regExpAliasName)]),\n comment: this.fb.nonNullable.control('', [Validators.maxLength(this.variablesService.maxCommentLength)]),\n });\n\n alias = {\n name: '',\n fee: this.variablesService.default_fee,\n price: new BigNumber(0),\n reward: '0',\n rewardOriginal: '0',\n comment: '',\n exists: false,\n };\n\n canRegister = false;\n\n notEnoughMoney = false;\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private ngZone: NgZone,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private intToMoney: IntToMoneyPipe\n ) {}\n\n ngOnInit(): void {\n this.wallet = this.variablesService.currentWallet;\n this.assignForm\n .get('name')\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe({\n next: value => {\n this.canRegister = false;\n this.alias.exists = false;\n const newName = value.toLowerCase().replace('@', '');\n if (\n !(this.assignForm.controls['name'].errors && hasOwnProperty(this.assignForm.controls['name'].errors, 'pattern')) &&\n newName.length >= 6 &&\n newName.length <= 25\n ) {\n this.backend.getAliasInfoByName(newName, status => {\n this.ngZone.run(() => {\n this.alias.exists = status;\n });\n if (!status) {\n this.alias.price = new BigNumber(0);\n this.backend.getAliasCoast(newName, (statusPrice, dataPrice) => {\n this.ngZone.run(() => {\n if (statusPrice) {\n this.alias.price = BigNumber.sum(dataPrice['coast'], this.variablesService.default_fee_big);\n }\n const unlocked_balance = new BigNumber(this.wallet.getBalanceByTicker('ZANO')?.unlocked || 0);\n this.notEnoughMoney = this.alias.price.isGreaterThan(unlocked_balance);\n this.alias.reward = this.intToMoney.transform(this.alias.price);\n this.alias.rewardOriginal = this.intToMoney.transform(dataPrice['coast']);\n this.canRegister = !this.notEnoughMoney;\n });\n });\n } else {\n this.notEnoughMoney = false;\n this.alias.reward = '0';\n this.alias.rewardOriginal = '0';\n }\n });\n } else {\n this.notEnoughMoney = false;\n this.alias.reward = '0';\n this.alias.rewardOriginal = '0';\n }\n this.alias.name = newName;\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n assignAlias(): void {\n const alias = this.backend.getWalletAlias(this.wallet.address);\n if (hasOwnProperty(alias, 'name')) {\n this.modalService.prepareModal('info', 'ASSIGN_ALIAS.ONE_ALIAS');\n } else {\n this.alias.comment = this.assignForm.get('comment').value;\n this.backend.registerAlias(\n this.wallet.wallet_id,\n this.alias.name,\n this.wallet.address,\n this.alias.fee,\n this.alias.comment,\n this.alias.rewardOriginal,\n async status => {\n if (status) {\n this.wallet.wakeAlias = true;\n this.modalService.prepareModal('info', 'ASSIGN_ALIAS.REQUEST_ADD_REG');\n await this.ngZone.run(async () => {\n await this.router.navigate(['/wallet/']);\n });\n }\n }\n );\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { paths, pathsChildrenAuth } from '../paths';\nimport { NoWalletComponent } from './no-wallet/no-wallet.component';\nimport { FullLayoutComponent } from '../../layouts/full-layout/full-layout.component';\n\nconst routes: Routes = [\n {\n path: paths.auth,\n component: FullLayoutComponent,\n children: [\n {\n path: pathsChildrenAuth.noWallet,\n component: NoWalletComponent,\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AuthRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AuthRoutingModule } from './auth-routing.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { NoWalletComponent } from './no-wallet/no-wallet.component';\nimport { SynchronizationStatusComponent } from '@parts/components/synchronization-status.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [NoWalletComponent],\n imports: [CommonModule, AuthRoutingModule, TranslateModule, FlexLayoutModule, SynchronizationStatusComponent, MatIconModule],\n})\nexport class AuthModule {}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss'],\n})\nexport class LoginComponent implements OnInit, OnDestroy {\n submitLoading$ = new BehaviorSubject(false);\n\n resetLoading$ = new BehaviorSubject(false);\n\n fb = inject(FormBuilder);\n\n get zanoLogo(): string {\n const {\n settings: { isDarkTheme },\n } = this.variablesService;\n return isDarkTheme ? 'assets/icons/blue/zano-logo.svg' : 'assets/icons/blue/light-zano-logo.svg';\n }\n\n regForm = this.fb.group(\n {\n password: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n confirmation: this.fb.nonNullable.control(''),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirmation')],\n }\n );\n\n authForm = this.fb.group({\n password: this.fb.nonNullable.control(''),\n });\n\n type = 'reg';\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n public walletsService: WalletsService,\n private route: ActivatedRoute,\n private router: Router,\n private backend: BackendService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe({\n next: params => {\n if (params.type) {\n this.type = params.type;\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onSubmitCreatePass(): void {\n if (this.regForm.valid) {\n this.variablesService.appPass = this.regForm.get('password').value; // the pass what was written in input of login form by user\n\n this.backend.setMasterPassword({ pass: this.variablesService.appPass }, (status, data) => {\n if (status) {\n this.backend.storeSecureAppData({\n pass: this.variablesService.appPass,\n });\n this.variablesService.appLogin = true;\n this.variablesService.dataIsLoaded = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n } else {\n console.log(data['error_code']);\n }\n });\n }\n }\n\n onSkipCreatePass(): void {\n this.ngZone.run(() => {\n this.variablesService.appPass = '';\n this.variablesService.appLogin = true;\n this.router.navigate(['/']);\n });\n }\n\n resetJwtWalletRpc(): void {\n this.backend.setupJwtWalletRpc({ secret: '', zanoCompation: false });\n }\n\n dropSecureAppData(): void {\n this.resetLoading$.next(true);\n\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n this.resetJwtWalletRpc();\n this.closeAllWallets();\n this.backend.dropSecureAppData(() => {\n this.ngZone.run(() => {\n this.resetLoading$.next(false);\n this.onSkipCreatePass();\n });\n\n });\n this.variablesService.contacts = [];\n }, 500);\n }\n\n onSubmitAuthPass(): void {\n this.submitLoading$.next(true);\n\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n if (this.authForm.valid) {\n this.variablesService.appPass = this.authForm.get('password').value;\n if (this.variablesService.dataIsLoaded) {\n this.backend.checkMasterPassword({ pass: this.variablesService.appPass }, status => {\n if (status) {\n this.variablesService.appLogin = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/'], {\n queryParams: { prevUrl: 'login' },\n });\n });\n } else {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.setAuthPassError({ wrong_password: true });\n });\n }\n });\n } else {\n this.getData(this.variablesService.appPass);\n }\n } else {\n this.submitLoading$.next(false);\n }\n }, 500);\n }\n\n getData(appPass): void {\n this.backend.getSecureAppData({ pass: appPass }, (status, data) => {\n if (!data.error_code) {\n this.setAuthPassError(null);\n this.variablesService.appLogin = true;\n this.variablesService.dataIsLoaded = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.variablesService.appPass = appPass;\n const isEmptyObject = Object.keys(data).length === 0 && data.constructor === Object;\n\n if (this.variablesService.wallets.length > 0) {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/wallet/']);\n });\n return;\n }\n if (hasOwnProperty(data, 'contracts')) {\n if (Object.keys(data['contacts']).length !== 0) {\n data['contacts'].map(contact => {\n this.variablesService.contacts.push(contact);\n });\n }\n }\n if (hasOwnProperty(data, 'wallets')) {\n if (Object.keys(data['wallets']).length !== 0) {\n this.getWalletData(data['wallets']);\n } else {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/']);\n });\n }\n }\n if (!hasOwnProperty(data, 'wallets') && !hasOwnProperty(data, 'contracts')) {\n if (data.length !== 0 && !isEmptyObject) {\n this.getWalletData(data);\n } else {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/']);\n });\n }\n }\n\n if (this.variablesService.settings.zanoCompanionForm.zanoCompation) {\n this.backend.setupJwtWalletRpc(this.variablesService.settings.zanoCompanionForm);\n }\n }\n\n if (data.error_code === 'WRONG_PASSWORD') {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.setAuthPassError({ wrong_password: true });\n });\n }\n });\n }\n\n getWalletData(walletData): void {\n let openWallets = 0;\n let runWallets = 0;\n walletData.forEach((wallet, wallet_index) => {\n this.backend.openWallet(wallet.path, wallet.pass, this.variablesService.count, true, (open_status, open_data, open_error) => {\n if (open_status || open_error === 'FILE_RESTORED') {\n openWallets++;\n this.ngZone.run(() => {\n const new_wallet = new Wallet(\n open_data.wallet_id,\n wallet.name,\n wallet.pass,\n open_data['wi'].path,\n open_data['wi'].address,\n open_data['wi'].balance,\n open_data['wi'].unlocked_balance,\n open_data['wi'].mined_total,\n open_data['wi'].tracking_hey\n );\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\n if (wallet.staking) {\n new_wallet.staking = true;\n this.backend.startPosMining(new_wallet.wallet_id);\n } else {\n new_wallet.staking = false;\n }\n new_wallet.is_auditable = open_data['wi'].is_auditable;\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\n new_wallet.currentPage = 1;\n new_wallet.exclude_mining_txs = false;\n if (open_data.recent_history && open_data.recent_history.history) {\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\n new_wallet.totalPages = Math.ceil(open_data.recent_history.total_history_items / this.variablesService.count);\n new_wallet.totalPages > this.variablesService.maxPages\n ? (new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index));\n new_wallet.prepareHistory(open_data.recent_history.history);\n } else {\n new_wallet.total_history_item = 0;\n new_wallet.pages = new Array(1).fill(1);\n new_wallet.totalPages = 1;\n }\n this.walletsService.addWallet(new_wallet);\n if (this.variablesService.wallets.length === 1) {\n this.router.navigate(['/wallet/']);\n }\n });\n this.backend.runWallet(open_data.wallet_id, run_status => {\n if (run_status) {\n runWallets++;\n } else {\n if (wallet_index === walletData.length - 1 && runWallets === 0) {\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n }\n }\n });\n } else {\n if (wallet_index === walletData.length - 1 && openWallets === 0) {\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n }\n }\n });\n });\n this.submitLoading$.next(false);\n }\n\n closeAllWallets(): void {\n this.variablesService.wallets.forEach(({ wallet_id }) => this.closeWallet(wallet_id));\n }\n\n closeWallet(wallet_id) {\n this.backend.closeWallet(wallet_id, () => {\n for (let i = this.variablesService.wallets.length - 1; i >= 0; i--) {\n this.variablesService.wallets.splice(i, 1);\n this.backend.storeSecureAppData();\n }\n });\n }\n\n private setAuthPassError(errors: ValidationErrors | null): void {\n this.authForm.controls['password'].setErrors(errors);\n }\n}\n","
\n
\n \n\n
\n
\n
\n \n \n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n
\n\n
\n \n \n \n
\n {{ 'LOGIN.FORM_ERRORS.MISMATCH' | translate }}\n
\n
\n
\n
\n\n \n {{ 'LOGIN.BUTTON_NEXT' | translate }}\n \n\n \n {{ 'LOGIN.BUTTON_SKIP' | translate }}\n \n \n\n
\n
\n
\n \n \n \n
\n {{ 'LOGIN.FORM_ERRORS.INVALID_PASS' | translate }}\n
\n
\n
\n
\n\n \n\n \n \n \n\n \n\n\n\n \n\n","import { Component, NgZone } from '@angular/core';\nimport { CREATE_NEW_WALLET_HELP_PAGE } from '@parts/data/constants';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-no-wallet',\n templateUrl: './no-wallet.component.html',\n styleUrls: ['./no-wallet.component.scss'],\n})\nexport class NoWalletComponent {\n get zanoLogo(): string {\n const {\n settings: { isDarkTheme },\n } = this.variablesService;\n return isDarkTheme ? 'assets/icons/blue/zano-logo.svg' : 'assets/icons/blue/light-zano-logo.svg';\n }\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private ngZone: NgZone,\n private translate: TranslateService\n ) {}\n\n openWallet(): void {\n this.backend.openFileDialog(\n this.translate.instant('MAIN.CHOOSE_PATH'),\n '*',\n this.variablesService.settings.default_path,\n (file_status, file_data) => {\n if (file_status) {\n this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/'));\n this.ngZone.run(() => {\n this.router\n .navigate(['/open'], {\n queryParams: { path: file_data.path },\n })\n .then();\n });\n } else {\n console.log(file_data['error_code']);\n }\n }\n );\n }\n\n openInBrowser(): void {\n this.backend.openUrlInBrowser(CREATE_NEW_WALLET_HELP_PAGE);\n }\n}\n","
\n
\n \n\n

{{ 'MAIN.TITLE' | translate }}

\n\n \n\n \n\n \n\n

\n \n {{ 'MAIN.HELP' | translate }}\n

\n
\n\n \n
\n","import { Component, inject, NgZone } from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Router } from '@angular/router';\nimport { Wallet } from '@api/models/wallet.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'app-create-wallet',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n \n
\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
variablesService.maxWalletNameLength\" class=\"error\">\n {{ 'CREATE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n\n
\n \n \n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n
\n\n
\n \n 0\"\n [readonly]=\"createForm.controls.path.valid\"\n class=\"form__field--input\"\n formControlName=\"confirm\"\n id=\"confirm-wallet-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n 0\n \"\n class=\"error\"\n >\n {{ 'CREATE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\n
\n
\n\n \n\n \n {{ 'CREATE_WALLET.BUTTON_SELECT' | translate }}\n \n\n \n \n
\n \n \n\n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class CreateWalletComponent {\n variablesService = inject(VariablesService);\n\n loading$ = new BehaviorSubject(false);\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.CREATE_WALLET',\n },\n ];\n\n walletsService = inject(WalletsService);\n\n fb = inject(NonNullableFormBuilder);\n\n createForm = this.fb.group(\n {\n name: this.fb.control('', [Validators.required, ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons)]),\n password: this.fb.control('', Validators.pattern(regExpPassword)),\n confirm: this.fb.control(''),\n path: this.fb.control('', Validators.required),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirm')],\n }\n );\n\n private router = inject(Router);\n\n private backend = inject(BackendService);\n\n private modalService = inject(ModalService);\n\n private ngZone = inject(NgZone);\n\n private translate = inject(TranslateService);\n\n get savedWalletName(): string {\n const path = this.createForm.get('path').value;\n return path.substr(path.lastIndexOf('/') + 1, path.length - 1);\n }\n\n createWallet(): void {\n this.loading$.next(true);\n\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n const { path: selectedPath, password, name } = this.createForm.getRawValue();\n this.backend.generateWallet(selectedPath, password, async (generate_status, generate_data, errorCode) => {\n if (generate_status) {\n const { wallet_id } = generate_data;\n const { path, address, balance, unlocked_balance, mined_total, tracking_hey } = generate_data['wi'];\n const wallet = new Wallet(\n wallet_id,\n name,\n password,\n path,\n address,\n balance,\n unlocked_balance,\n mined_total,\n tracking_hey\n );\n wallet.alias = this.backend.getWalletAlias(address);\n wallet.total_history_item = 0;\n wallet.pages = new Array(1).fill(1);\n wallet.totalPages = 1;\n wallet.currentPage = 1;\n this.walletsService.addWallet(wallet);\n await this.backend.runWallet(wallet_id, async (run_status, run_data) => {\n if (run_status) {\n await this.ngZone.run(async () => {\n if (this.variablesService.appPass) {\n this.backend.storeSecureAppData();\n }\n this.variablesService.setCurrentWallet(wallet_id);\n this.loading$.next(false);\n await this.router.navigate(['/seed-phrase'], { queryParams: { wallet_id } });\n });\n } else {\n console.log(run_data['error_code']);\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n }\n });\n } else {\n const errorTranslationKey =\n errorCode === 'ALREADY_EXISTS' ? 'CREATE_WALLET.ERROR_CANNOT_SAVE_TOP' : 'CREATE_WALLET.ERROR_CANNOT_SAVE_SYSTEM';\n this.modalService.prepareModal('error', errorTranslationKey);\n\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n }\n });\n }, 500);\n }\n\n selectWalletLocation(): void {\n const caption = this.translate.instant('CREATE_WALLET.TITLE_SAVE');\n const fileMask = '*';\n const { default_path } = this.variablesService.settings;\n this.backend.saveFileDialog(caption, fileMask, default_path, (file_status, file_data) => {\n if (file_status) {\n this.ngZone.run(() => {\n const { path } = file_data;\n this.createForm.get('path').patchValue(path);\n this.variablesService.settings.default_path = path.substr(0, path.lastIndexOf('/'));\n });\n }\n });\n }\n}\n","import { delay, takeUntil } from 'rxjs/operators';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\n\n@Component({\n selector: 'app-deeplink',\n template: `\n \n \n\n \n \n `,\n styles: [],\n})\nexport class DeeplinkComponent implements OnInit, OnDestroy {\n deeplink$ = new BehaviorSubject(null);\n\n private destroy$ = new Subject();\n\n constructor(public variablesService: VariablesService) {}\n\n ngOnInit(): void {\n this.variablesService.deeplink$.pipe(delay(200), takeUntil(this.destroy$)).subscribe({\n next: data => {\n this.deeplink$.next(data);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DeeplinkModalModule } from './modals/deeplink-modal/deeplink-modal.module';\nimport { DeeplinkComponent } from './deeplink.component';\nimport { SyncModalModule } from './modals/sync-modal/sync-modal.module';\n\n@NgModule({\n declarations: [DeeplinkComponent],\n imports: [CommonModule, DeeplinkModalModule, SyncModalModule],\n exports: [DeeplinkComponent, DeeplinkModalModule, SyncModalModule],\n})\nexport class DeeplinkModule {}\n","import { Component, HostBinding, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { DeeplinkParams, PushOffer, Wallet } from '@api/models/wallet.model';\nimport { BigNumber } from 'bignumber.js';\nimport { MIXIN } from '@parts/data/constants';\nimport { Subject } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'app-deeplink-modal',\n template: `\n
\n 1 && !secondStep\">\n
\n
\n \n \n \n {{ item.name }}\n \n \n {{ item.name }}\n \n \n
\n
\n\n
\n \n \n
\n
\n\n \n

Creating a marketplace offer

\n
\n
\n
\n
\n {{ 'Offer title' | translate }}\n
\n
{{ actionData.title }}
\n
\n\n
\n\n
\n
\n {{ 'Description' | translate }}\n
\n
{{ actionData.description }}
\n
\n\n
\n\n
\n
\n {{ 'Category' | translate }}\n
\n
{{ actionData.category }}
\n
\n\n
\n\n
\n
\n {{ 'Price' | translate }}\n
\n
\n {{ actionData.price }}\n {{ this.variablesService.defaultTicker }}\n
\n
\n\n
\n\n
\n
\n {{ 'Preview url' | translate }}\n
\n
{{ actionData.url || actionData.img_url }}
\n
\n\n
\n\n
\n
\n {{ 'Contacts' | translate }}\n
\n
{{ actionData.contact }}
\n
\n\n
\n\n
\n
\n {{ 'Comments' | translate }}\n
\n
\n {{ actionData.comment || actionData.comments }}\n
\n
\n\n
\n\n \n \n \n \n \n \n\n \n\n
\n
\n {{ 'Transaction fee' | translate }}\n
\n
\n {{ actionData.price * (actionData.fee || this.variablesService.default_fee) }}\n {{ this.variablesService.defaultTicker }}\n
\n
\n
\n
\n\n
\n \n \n
\n
\n\n \n

Operation successful

\n\n
\n
\n
\n
\n {{ 'Operation hash' | translate }}\n
\n \n {{ marketplaceConfirmHash }}\n \n
\n
\n
\n
\n\n
\n \n
\n \n\n \n

Your wallets have not loaded yet. Try this action a little later.

\n\n
\n \n
\n
\n \n `,\n styleUrls: ['./deeplink-modal.component.scss'],\n})\nexport class DeeplinkModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n secondStep = false;\n\n walletToPayId = 0;\n\n nextStepInterval;\n\n marketplaceModalShow = true;\n\n copyAnimation = false;\n\n marketplaceConfirmHash: any = null;\n\n actionData: DeeplinkParams = {};\n\n defaultMixin = MIXIN;\n\n walletsToPay: Array = [];\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private _router: Router,\n private backend: BackendService,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {\n this.walletsToPay = this.variablesService.wallets.filter(wallet => !wallet.is_watch_only || !wallet.is_auditable);\n }\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n\n this.variablesService.deeplink$.pipe(takeUntil(this.destroy$)).subscribe({\n next: deeplink => {\n this.actionData = {};\n\n if (deeplink) {\n if (this.walletsToPay.length === 0) {\n this.canselAction();\n return;\n }\n this.actionData = this.parseDeeplink(deeplink);\n if (this.walletsToPay.length === 1) {\n this.walletToPayId = this.walletsToPay[0].wallet_id;\n const { daemon_state, sync_started } = this.variablesService;\n\n if (daemon_state === 2 && sync_started === false) {\n this.nextStep();\n } else {\n this.nextStepInterval = setInterval(() => {\n if (daemon_state === 2 && sync_started === false) {\n this.nextStep();\n clearInterval(this.nextStepInterval);\n }\n }, 1500);\n }\n }\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.variablesService.deeplink$.next(null);\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n parseDeeplink(deeplink): DeeplinkParams {\n const quotesRex = new RegExp(/'|\"|”|%E2%80%9D|%22/g);\n const spaceSymbolRex = new RegExp(/%20/g);\n const newObj = {};\n\n const newString = deeplink.substr(5); // delete zano:;\n newString.split('&').forEach(str => {\n const [key, value] = str.split('=');\n newObj[key] = value.replace(quotesRex, '').replace(spaceSymbolRex, ' ').trim();\n });\n return newObj;\n }\n\n canselAction(): void {\n this.variablesService.deeplink$.next(null);\n this.variablesService.sendActionData$.next({});\n this.actionData = {};\n this.secondStep = false;\n }\n\n marketplaceSend(): void {\n const offerObject: PushOffer = {\n wallet_id: this.walletToPayId,\n od: {\n ap: this.actionData.price || '',\n at: '1',\n cat: this.actionData.category || '',\n cnt: this.actionData.contact || '',\n com: this.actionData.comment || this.actionData.comments || '',\n do: this.actionData.description || '',\n et: 10,\n fee: new BigNumber('' + (+this.actionData.fee || +this.variablesService.default_fee) * 1000000000000),\n lci: '',\n lco: 'World Wide',\n ot: 1,\n pt: 'Credit cards, BTC, ZANO, ETH',\n t: this.actionData.title || '',\n url: this.actionData.url || this.actionData.img_url || '',\n },\n };\n this.backend.push_offer(offerObject, (status, data) => {\n this.ngZone.run(() => {\n if (data.success) {\n this.marketplaceModalShow = false;\n this.marketplaceConfirmHash = data.tx_hash;\n } else {\n this.canselAction();\n }\n });\n });\n }\n\n copyHash(): void {\n this.backend.setClipboard(this.marketplaceConfirmHash);\n this.copyAnimation = true;\n setTimeout(() => (this.copyAnimation = false), 2000);\n }\n\n nextStep(): void {\n if (this.actionData.action === 'send') {\n this.variablesService.sendActionData$.next(this.actionData);\n this.variablesService.deeplink$.next(null);\n this.variablesService.setCurrentWallet(this.walletToPayId);\n this._router.navigate(['/wallet/send']).then();\n this.secondStep = false;\n } else if (this.actionData.action === 'escrow') {\n this.variablesService.sendActionData$.next(this.actionData);\n this.variablesService.deeplink$.next(null);\n this.variablesService.setCurrentWallet(this.walletToPayId);\n this._router.navigate(['/wallet/contracts/purchase']).then();\n this.secondStep = false;\n } else {\n this.secondStep = true;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DeeplinkModalComponent } from './deeplink-modal.component';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [DeeplinkModalComponent],\n imports: [CommonModule, NgSelectModule, FormsModule, FlexLayoutModule, TranslateModule, MatIconModule],\n exports: [DeeplinkModalComponent],\n})\nexport class DeeplinkModalModule {}\n","import { Component, HostBinding, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\n\n@Component({\n selector: 'app-sync-modal',\n template: `\n
\n
\n

This action is not available during synchronization...

\n \n
\n
\n `,\n styleUrls: ['./sync-modal.component.scss'],\n})\nexport class SyncModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n constructor(private renderer: Renderer2, public variablesService: VariablesService) {}\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n canselAction(): void {\n this.variablesService.deeplink$.next(null);\n this.variablesService.sendActionData$.next({});\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SyncModalComponent } from './sync-modal.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\n@NgModule({\n declarations: [SyncModalComponent],\n imports: [CommonModule, FlexLayoutModule],\n exports: [SyncModalComponent],\n})\nexport class SyncModalModule {}\n","import { Component, NgZone, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BigNumber } from 'bignumber.js';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-edit-alias',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.EDIT_ALIAS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n
\n\n
\n \n \n \n
0 && notEnoughMoney\" class=\"error\">\n {{ 'EDIT_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\n
\n
= variablesService.maxCommentLength\" class=\"error\">\n {{ 'EDIT_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n\n
\n {{\n 'EDIT_ALIAS.COST'\n | translate\n : {\n value: variablesService.default_fee,\n currency: variablesService.defaultTicker\n }\n }}\n
\n\n variablesService.maxCommentLength\n \"\n class=\"primary big w-100\"\n type=\"button\"\n >\n {{ 'EDIT_ALIAS.BUTTON_EDIT' | translate }}\n \n \n
\n
\n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class EditAliasComponent implements OnInit {\n wallet: Wallet;\n\n alias: any;\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.EDIT_ALIAS',\n },\n ];\n\n oldAliasComment: string;\n\n notEnoughMoney: boolean;\n\n requestProcessing = false;\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.wallet = this.variablesService.currentWallet;\n const alias = this.backend.getWalletAlias(this.wallet.address);\n this.alias = {\n name: alias.name,\n address: alias.address,\n comment: alias.comment,\n };\n this.oldAliasComment = alias.comment;\n const balance = new BigNumber(this.wallet.getBalanceByTicker('ZANO')?.unlocked || 0);\n this.notEnoughMoney = balance.isLessThan(this.variablesService.default_fee_big);\n }\n\n updateAlias(): void {\n if (\n this.requestProcessing ||\n this.notEnoughMoney ||\n this.oldAliasComment === this.alias.comment ||\n this.alias.comment.length > this.variablesService.maxCommentLength\n ) {\n return;\n }\n this.requestProcessing = true;\n this.backend.updateAlias(this.wallet.wallet_id, this.alias, this.variablesService.default_fee, status => {\n if (status) {\n this.modalService.prepareModal('success', '');\n this.wallet.alias['comment'] = this.alias.comment;\n this.ngZone.run(() => {\n this.router.navigate(['/wallet/']);\n });\n }\n this.requestProcessing = false;\n });\n }\n}\n","import { Component, NgZone } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Contact } from '@api/models/contact.model';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Papa } from 'ngx-papaparse';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-export-import',\n template: `\n
\n
\n
\n \n

{{ 'CONTACTS.IMPORT_EXPORT' | translate }}

\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n }\n\n .head {\n justify-content: flex-end;\n }\n\n .contacts-title {\n font-size: 1.7rem;\n margin-bottom: 1rem;\n }\n\n .btn-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0 -0.5rem;\n padding: 1.5rem 0;\n }\n\n .btn-wrapper button {\n flex: 1 0 auto;\n margin: 0 0.5rem;\n }\n `,\n ],\n})\nexport class ExportImportComponent {\n constructor(\n private variablesService: VariablesService,\n private backend: BackendService,\n private modalService: ModalService,\n private papa: Papa,\n private translate: TranslateService,\n private router: Router,\n private ngZone: NgZone\n ) {}\n\n import(): void {\n this.backend.openFileDialog('', '*', this.variablesService.settings.default_path, (file_status, file_data) => {\n if (file_status) {\n this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/'));\n if (this.isValid(file_data.path)) {\n this.backend.loadFile(file_data.path, (status, data) => {\n if (!status) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_IMPORT_EMPTY');\n } else {\n const options = {\n header: true,\n };\n const elements = this.papa.parse(data, options);\n const isArray = Array.isArray(elements.data);\n if (isArray && elements.data.length !== 0 && elements.errors.length === 0) {\n if (this.variablesService.contacts.length === 0) {\n elements.data.forEach(element => {\n this.variablesService.contacts.push(element);\n });\n } else {\n elements.data.forEach(element => {\n const indexName = this.variablesService.contacts.findIndex(\n contact => contact.name === element.name\n );\n const indexAddress = this.variablesService.contacts.findIndex(\n contact => contact.address === element.address\n );\n if (indexAddress === -1 && indexName === -1) {\n this.variablesService.contacts.push(element);\n }\n if (indexName !== -1 && indexAddress === -1) {\n this.variablesService.contacts.push({\n name: `${(element.name as string) || '---'} ${\n this.translate.instant('CONTACTS.COPY') as string\n }`,\n address: element.address,\n notes: element.notes,\n });\n }\n });\n }\n this.backend.getContactAlias();\n this.ngZone.run(() => {\n this.router.navigate(['/contacts']);\n });\n }\n if (elements.errors.length > 0) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_IMPORT');\n console.log(elements.errors);\n }\n }\n });\n } else {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_TYPE_FILE');\n }\n }\n });\n }\n\n export(): void {\n const contacts: Array = [];\n this.variablesService.contacts.forEach(contact => {\n delete contact.alias;\n contacts.push(contact);\n });\n\n this.backend.saveFileDialog('', '*', this.variablesService.settings.default_path, (file_status, file_data) => {\n if (this.variablesService.contacts.length === 0 && !(file_data.error_code === 'CANCELED')) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_EMPTY_LIST');\n }\n const path = this.isValid(file_data.path) ? file_data.path : `${(file_data.path as string) || 'base-name'}.csv`;\n if (file_status && this.isValid(path) && this.variablesService.contacts.length > 0) {\n this.backend.storeFile(path, this.papa.unparse(contacts));\n }\n if (!(file_data.error_code === 'CANCELED') && !this.isValid(path)) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_EXPORT');\n }\n });\n }\n\n isValid(file): boolean {\n return file.endsWith('.csv');\n }\n}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Wallet } from '@api/models/wallet.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { notFileZanoWallet, wrongPassword } from '@parts/utils/zano-errors';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-open-wallet',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.OPEN_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n \n
\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n {{ 'OPEN_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n
\n\n
\n \n \n \n
\n {{ openWalletForm.controls.password.errors['wrongPassword'].errorText | translate }}\n
\n
\n
\n \n \n
\n \n \n\n \n `,\n})\nexport class OpenWalletComponent implements OnInit, OnDestroy {\n loading$ = new BehaviorSubject(false);\n\n fb = inject(NonNullableFormBuilder);\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.OPEN_WALLET',\n },\n ];\n\n openWalletForm = this.fb.group({\n name: this.fb.control('', [\n Validators.required,\n Validators.maxLength(this.variablesService.maxWalletNameLength),\n ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons),\n ]),\n password: this.fb.control('', [Validators.pattern(regExpPassword)]),\n filePath: this.fb.control('', Validators.required),\n });\n\n private destroy$ = new Subject();\n\n constructor(\n public walletsService: WalletsService,\n public variablesService: VariablesService,\n private route: ActivatedRoute,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private ngZone: NgZone,\n private translate: TranslateService\n ) {}\n\n ngOnInit(): void {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe({\n next: params => {\n if (!params.path) {\n return;\n }\n\n this.openWalletForm.controls.filePath.patchValue(params.path);\n\n let filename = '';\n if (params.path.lastIndexOf('.') === -1) {\n filename = params.path.substr(params.path.lastIndexOf('/') + 1);\n } else {\n filename = params.path.substr(\n params.path.lastIndexOf('/') + 1,\n params.path.lastIndexOf('.') - 1 - params.path.lastIndexOf('/')\n );\n }\n if (filename.length > 25) {\n filename = filename.slice(0, 25);\n }\n this.openWalletForm.controls.name.patchValue(filename);\n this.openWalletForm.controls.name.markAsTouched();\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n openWallet(): void {\n this.loading$.next(true);\n\n if (this.openWalletForm.valid) {\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n const { filePath, password, name } = this.openWalletForm.getRawValue();\n const { count: txs_to_return } = this.variablesService;\n this.backend.openWallet(\n filePath,\n password,\n txs_to_return,\n false,\n (openStatus, openData, errorCode: 'WRONG_PASSWORD' | 'FILE_NOT_FOUND' | 'INVALID_FILE' | 'ALREADY_EXISTS' | string) => {\n console.log('openData', openData);\n if (errorCode === 'WRONG_PASSWORD') {\n this.ngZone.run(() => {\n this.openWalletForm.controls.password.setErrors({\n wrongPassword,\n });\n this.loading$.next(false);\n });\n return;\n }\n\n let errorText = errorCode;\n\n if (errorCode === 'FILE_NOT_FOUND') {\n errorText = this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1');\n errorText += ':
' + filePath;\n errorText += this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2');\n }\n\n if (errorCode === 'INVALID_FILE') {\n errorText = this.translate.instant(notFileZanoWallet.errorText);\n }\n\n if (['INVALID_FILE', 'FILE_NOT_FOUND'].includes(errorCode)) {\n this.modalService.prepareModal('error', errorText);\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n return;\n }\n\n if (openStatus || errorCode === 'FILE_RESTORED') {\n let exists = false;\n this.variablesService.wallets.forEach(wallet => {\n if (wallet.address === openData['wi'].address) {\n exists = true;\n }\n });\n\n if (exists) {\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\n this.backend.closeWallet(openData.wallet_id, () => {\n this.ngZone.run(() => {\n this.loading$.next(false);\n this.router.navigate(['/']);\n });\n });\n } else {\n const new_wallet = new Wallet(\n openData.wallet_id,\n name,\n password,\n openData['wi'].path,\n openData['wi'].address,\n openData['wi'].balance,\n openData['wi'].unlocked_balance,\n openData['wi'].mined_total,\n openData['wi'].tracking_hey\n );\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\n new_wallet.currentPage = 1;\n new_wallet.open_from_exist = true;\n new_wallet.exclude_mining_txs = false;\n new_wallet.is_auditable = openData['wi'].is_auditable;\n new_wallet.is_watch_only = openData['wi'].is_watch_only;\n if (openData.recent_history && openData.recent_history.history) {\n new_wallet.total_history_item = openData.recent_history.total_history_items;\n new_wallet.totalPages = Math.ceil(\n openData.recent_history.total_history_items / this.variablesService.count\n );\n new_wallet.totalPages > this.variablesService.maxPages\n ? (new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (new_wallet.pages = new Array(new_wallet.totalPages)\n .fill(1)\n .map((value, index) => value + index));\n new_wallet.prepareHistory(openData.recent_history.history);\n } else {\n new_wallet.total_history_item = 0;\n new_wallet.pages = new Array(1).fill(1);\n new_wallet.totalPages = 1;\n }\n this.walletsService.addWallet(new_wallet);\n this.backend.runWallet(openData.wallet_id, (run_status, run_data) => {\n if (run_status) {\n if (this.variablesService.appPass) {\n this.backend.storeSecureAppData();\n }\n this.ngZone.run(() => {\n this.variablesService.setCurrentWallet(openData.wallet_id);\n this.router.navigate(['/wallet/']);\n this.loading$.next(false);\n });\n } else {\n console.log(run_data['error_code']);\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n }\n });\n }\n }\n }\n );\n }, 500);\n } else {\n this.loading$.next(false);\n }\n }\n}\n","import { RouterModule, Routes } from '@angular/router';\nimport { paths } from './paths';\nimport { WithSidebarLayoutComponent } from '../layouts/with-sidebar-layout/with-sidebar-layout.component';\nimport { AddWalletComponent } from './add-wallet/add-wallet.component';\nimport { WalletDetailsComponent } from './wallet-details/wallet-details.component';\nimport { FullLayoutComponent } from '../layouts/full-layout/full-layout.component';\nimport { LoginComponent } from './auth/login/login.component';\nimport { CreateWalletComponent } from './create-wallet/create-wallet.component';\nimport { OpenWalletComponent } from './open-wallet/open-wallet.component';\nimport { RestoreWalletComponent } from './restore-wallet/restore-wallet.component';\nimport { SeedPhraseComponent } from './seed-phrase/seed-phrase.component';\nimport { AssignAliasComponent } from './assign-alias/assign-alias.component';\nimport { EditAliasComponent } from './edit-alias/edit-alias.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { DeeplinkComponent } from './deeplink/deeplink.component';\nimport { NgModule } from '@angular/core';\nimport { ExportImportComponent } from './export-import/export-import.component';\nimport { TransferAliasComponent } from './transfer-alias/transfer-alias.component';\n\nconst routes: Routes = [\n {\n path: paths.addWallet,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: AddWalletComponent,\n },\n ],\n },\n {\n path: paths.details,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: WalletDetailsComponent,\n },\n ],\n },\n {\n path: paths.login,\n component: FullLayoutComponent,\n children: [\n {\n path: '',\n component: LoginComponent,\n },\n ],\n },\n {\n path: paths.create,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: CreateWalletComponent,\n },\n ],\n },\n {\n path: paths.open,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: OpenWalletComponent,\n },\n ],\n },\n {\n path: paths.restore,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: RestoreWalletComponent,\n },\n ],\n },\n {\n path: paths.seedPhrase,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: SeedPhraseComponent,\n },\n ],\n },\n {\n path: paths.assignAlias,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: AssignAliasComponent,\n },\n ],\n },\n {\n path: paths.editAlias,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: EditAliasComponent,\n },\n ],\n },\n {\n path: paths.transferAlias,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: TransferAliasComponent,\n },\n ],\n },\n {\n path: paths.settings,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: SettingsComponent,\n },\n ],\n },\n {\n path: paths.import,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: ExportImportComponent,\n },\n ],\n },\n {\n path: paths.deeplink,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: DeeplinkComponent,\n },\n ],\n },\n {\n path: '',\n redirectTo: paths.addWallet,\n pathMatch: 'full',\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class PagesRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AuthModule } from './auth/auth.module';\nimport { WalletModule } from './wallet/wallet.module';\nimport { PagesRoutingModule } from './pages-routing.module';\nimport { LoginComponent } from './auth/login/login.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { AddWalletComponent } from './add-wallet/add-wallet.component';\nimport { CreateWalletComponent } from './create-wallet/create-wallet.component';\nimport { OpenWalletComponent } from './open-wallet/open-wallet.component';\nimport { RestoreWalletComponent } from './restore-wallet/restore-wallet.component';\nimport { SeedPhraseComponent } from './seed-phrase/seed-phrase.component';\nimport { AssignAliasComponent } from './assign-alias/assign-alias.component';\nimport { EditAliasComponent } from './edit-alias/edit-alias.component';\nimport { ModalContainerComponent } from '@parts/modals/modal-container/modal-container.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { DefaultImgModule, DisablePriceFetchModule } from '@parts/directives';\nimport { TooltipModule } from '@parts/directives/tooltip/tooltip.module';\nimport { ConfirmModalModule } from '@parts/modals/confirm-modal/confirm-modal.module';\nimport { DeeplinkModule } from './deeplink/deeplink.module';\nimport { FullLayoutModule } from '../layouts/full-layout/full-layout.module';\nimport { WithSidebarLayoutModule } from '../layouts/with-sidebar-layout/with-sidebar-layout.module';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { TransferAliasComponent } from './transfer-alias/transfer-alias.component';\nimport {\n ContractStatusMessagesPipeModule,\n ContractTimeLeftPipeModule,\n HistoryTypeMessagesPipeModule,\n IntToMoneyPipeModule,\n IsAvailableAliasNamePipeModule,\n MoneyToIntPipeModule,\n SafeHtmlPipeModule,\n ShortStringPipe,\n} from '@parts/pipes';\nimport { InputValidateModule } from '@parts/directives/input-validate';\nimport { InputDisableSelectionModule } from '@parts/directives/input-disable-selection';\nimport { CheckboxComponent } from '@parts/components/checkbox.component';\nimport { CopyButtonComponent } from '@parts/components/copy-button.component';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\nimport { SwitchComponent } from '@parts/components/switch.component';\nimport { SynchronizationStatusComponent } from '@parts/components/synchronization-status.component';\nimport { LoaderComponent } from '@parts/components/loader.component';\nimport { AutoFocusDirective } from '@parts/directives/autofocus.directive';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BackButtonComponent } from '@parts/components/back-button/back-button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { IsVisibleControlErrorPipe } from '@parts/pipes/is-visible-control-error.pipe';\n\n@NgModule({\n declarations: [\n LoginComponent,\n SettingsComponent,\n AddWalletComponent,\n CreateWalletComponent,\n OpenWalletComponent,\n RestoreWalletComponent,\n SeedPhraseComponent,\n AssignAliasComponent,\n EditAliasComponent,\n TransferAliasComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n PagesRoutingModule,\n AuthModule,\n WalletModule,\n NgSelectModule,\n TranslateModule.forChild(),\n FlexLayoutModule,\n DisablePriceFetchModule,\n TooltipModule,\n ConfirmModalModule,\n DeeplinkModule,\n FullLayoutModule,\n WithSidebarLayoutModule,\n OverlayModule,\n DefaultImgModule,\n ContractStatusMessagesPipeModule,\n ContractTimeLeftPipeModule,\n HistoryTypeMessagesPipeModule,\n IntToMoneyPipeModule,\n IsAvailableAliasNamePipeModule,\n MoneyToIntPipeModule,\n SafeHtmlPipeModule,\n ShortStringPipe,\n InputValidateModule,\n InputDisableSelectionModule,\n CheckboxComponent,\n CopyButtonComponent,\n StakingSwitchComponent,\n SwitchComponent,\n SynchronizationStatusComponent,\n LoaderComponent,\n AutoFocusDirective,\n BreadcrumbsComponent,\n BackButtonComponent,\n MatIconModule,\n IsVisibleControlErrorPipe,\n ],\n})\nexport class PagesModule {}\n","export enum paths {\n auth = 'auth',\n addWallet = 'add-wallet',\n login = 'login',\n wallet = 'wallet',\n create = 'create',\n open = 'open',\n restore = 'restore',\n seedPhrase = 'seed-phrase',\n details = 'details',\n assignAlias = 'assign-alias',\n editAlias = 'edit-alias',\n transferAlias = 'transfer-alias',\n settings = 'settings',\n import = 'import',\n deeplink = 'deeplink',\n}\n\nexport enum pathsChildrenAuth {\n noWallet = 'no-wallet',\n}\n\nexport enum pathsChildrenWallet {\n assets = 'assets',\n send = 'send',\n receive = 'receive',\n history = 'history',\n contracts = 'contracts',\n staking = 'staking',\n}\n\nexport enum pathsChildrenContracts {\n purchase = 'purchase',\n}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { debounceTime, startWith, takeUntil } from 'rxjs/operators';\nimport { combineLatest, Subject } from 'rxjs';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\ninterface SeedPhraseInfo {\n address: string;\n hash_sum_matched: boolean;\n require_password: boolean;\n syntax_correct: boolean;\n tracking: boolean;\n}\n\n@Component({\n selector: 'app-restore-wallet',\n templateUrl: './restore-wallet.component.html',\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class RestoreWalletComponent implements OnInit, OnDestroy {\n public readonly breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.RESTORE_WALLET',\n },\n ];\n\n public selectedLocationWalletName: string;\n\n public selectedLocationWalletPath: string;\n\n public seedPhraseInfo: SeedPhraseInfo = null;\n\n public readonly walletsService: WalletsService = inject(WalletsService);\n\n public readonly variablesService: VariablesService = inject(VariablesService);\n\n private readonly _fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n public readonly form = this._fb.group(\n {\n name: this._fb.control('', [\n Validators.required,\n Validators.maxLength(this.variablesService.maxWalletNameLength),\n ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons),\n ]),\n seedPhrase: this._fb.control('', Validators.required),\n password: this._fb.control('', Validators.pattern(regExpPassword)),\n confirm: this._fb.control(''),\n seedPassword: this._fb.control('', Validators.pattern(regExpPassword)),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirm')],\n }\n );\n\n private _destroy$: Subject = new Subject();\n\n private readonly _router: Router = inject(Router);\n\n private readonly _backend: BackendService = inject(BackendService);\n\n private readonly _modalService: ModalService = inject(ModalService);\n\n private readonly _ngZone: NgZone = inject(NgZone);\n\n private readonly _translate: TranslateService = inject(TranslateService);\n\n private submitting: boolean = false;\n\n get isDisabledCreatedWallet(): boolean {\n return this.form.invalid || !this.selectedLocationWalletPath || this.submitting;\n }\n\n get invalidSeedPhraseInfo(): boolean {\n if (!this.seedPhraseInfo) {\n return true;\n }\n\n const { syntax_correct, require_password, hash_sum_matched } = this.seedPhraseInfo;\n return (!syntax_correct || !require_password || !hash_sum_matched) && (!syntax_correct || require_password);\n }\n\n ngOnInit(): void {\n const {\n controls: { seedPassword, seedPhrase },\n } = this.form;\n\n const obs1 = seedPhrase.valueChanges;\n const obs2 = seedPassword.valueChanges.pipe(startWith(seedPassword.value));\n\n combineLatest([obs1, obs2])\n .pipe(debounceTime(500), takeUntil(this._destroy$))\n .subscribe({\n next: ([seed_phrase, seed_password]) => {\n const params = { seed_phrase, seed_password };\n\n this._backend.getSeedPhraseInfo(params, (status, data) => {\n this._ngZone.run(() => {\n if (!status) {\n this.seedPhraseInfo = undefined;\n return;\n }\n\n this.seedPhraseInfo = data;\n });\n });\n\n this._backend.isValidRestoreWalletText(params, (_, data) => {\n this._ngZone.run(() => {\n const control = this.form.get('seedPhrase');\n if (data !== 'TRUE') {\n control.setErrors({ password_seed_phrase_not_valid: true });\n } else {\n control.updateValueAndValidity({ emitEvent: false });\n }\n });\n });\n },\n });\n }\n\n ngOnDestroy(): void {\n this.variablesService.opening_wallet = null;\n\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n restore(): void {\n this.submitting = true;\n const { name, password, seedPhrase, seedPassword } = this.form.getRawValue();\n this._backend.restoreWallet(this.selectedLocationWalletPath, password, seedPhrase, seedPassword, (status, data) => {\n this._ngZone.run(() => {\n if (status) {\n const { wallet_id } = data;\n const { path, address, balance, unlocked_balance, mined_total, tracking_hey, is_auditable, is_watch_only } = data['wi'];\n const wallet: Wallet = new Wallet(\n wallet_id,\n name,\n password,\n path,\n address,\n balance,\n unlocked_balance,\n mined_total,\n tracking_hey\n );\n wallet.is_auditable = is_auditable;\n wallet.is_watch_only = is_watch_only;\n\n wallet.restore = true;\n\n wallet.alias = this._backend.getWalletAlias(wallet.address);\n\n wallet.currentPage = 1;\n wallet.pages = new Array(1).fill(1);\n wallet.totalPages = 1;\n wallet.total_history_item = 0;\n\n if (data.recent_history && data.recent_history.history) {\n wallet.totalPages = Math.ceil(data.recent_history.total_history_items / this.variablesService.count);\n wallet.totalPages > this.variablesService.maxPages\n ? (wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (wallet.pages = new Array(wallet.totalPages).fill(1).map((value, index) => value + index));\n wallet.prepareHistory(data.recent_history.history);\n }\n\n this.variablesService.opening_wallet = wallet;\n\n this._runWallet();\n } else {\n this._modalService.prepareModal('error', 'RESTORE_WALLET.NOT_CORRECT_FILE_OR_PASSWORD');\n this.submitting = false;\n }\n });\n });\n }\n\n selectLocation(): void {\n const caption = this._translate.instant('RESTORE_WALLET.CHOOSE_PATH');\n const fileMask = '*';\n const {\n settings: { default_path },\n } = this.variablesService;\n\n this._backend.saveFileDialog(caption, fileMask, default_path, (status, data) => {\n this._ngZone.run(() => {\n if (status) {\n const startWalletName = data.path.lastIndexOf('/') + 1;\n const endWalletName = data.path.length - 1;\n this.selectedLocationWalletName = data.path.substr(startWalletName, endWalletName);\n this.selectedLocationWalletPath = data.path;\n\n this.variablesService.settings.default_path = data.path.substr(0, data.path.lastIndexOf('/'));\n }\n });\n });\n }\n\n private _runWallet(): void {\n const { opening_wallet, wallets, appPass } = this.variablesService;\n const { wallet_id, address } = opening_wallet;\n\n // Add flag when wallet was restored form seed\n this.variablesService.after_sync_request[wallet_id] = true;\n\n const exists: boolean = wallets.some((wallet: Wallet): boolean => wallet.address === address);\n\n if (exists) {\n this.variablesService.opening_wallet = null;\n\n this._modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\n\n this._backend.closeWallet(wallet_id, () => {\n this._ngZone.run(() => {\n this._router.navigate(['/']);\n });\n });\n\n return;\n }\n\n this.walletsService.addWallet(opening_wallet);\n\n this._backend.runWallet(wallet_id, (status, data) => {\n this._ngZone.run(() => {\n if (status) {\n if (appPass) {\n this._backend.storeSecureAppData();\n }\n\n this.variablesService.setCurrentWallet(wallet_id);\n this.variablesService.opening_wallet = null;\n\n this._router.navigate(['/wallet/']);\n } else {\n this._modalService.prepareModal('error', data['error_code']);\n this.submitting = false;\n console.error(data['error_code']);\n }\n });\n });\n }\n}\n","
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n \n
\n \n \n \n
\n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
\n
\n\n \n
\n \n \n \n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n
\n
\n\n \n
\n \n \n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\n
\n
\n\n \n
\n \n \n \n \n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.KEY_REQUIRED' | translate }}\n
\n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.PASSWORD_SEED_PHRASE_INCORRECT' | translate }}\n
\n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.SEED_PHRASE_IS_NO_VALID' | translate }}\n
\n
\n \n
\n\n \n \n \n
\n \n \n \n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.INCORRECT_PASSWORD' | translate }}\n
\n
\n
\n {{ 'RESTORE_WALLET.OK' | translate }}\n
\n
\n
\n
\n\n \n\n \n \n
\n
\n\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-seed-phrase',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n
\n \n \n \n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
= variablesService.maxWalletNameLength\">\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
\n\n
\n \n \n
\n \n\n \n
\n
\n \n \n
\n\n
\n \n 0\"\n class=\"form__field--input\"\n formControlName=\"confirmPassword\"\n id=\"confirm-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n \n
0\">\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\n
\n
\n
\n\n \n\n

\n \n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\n

\n \n \n\n \n
\n
\n
\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\n
\n
\n \n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }}\n \n \n 0\"\n class=\"status color-aqua\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n >\n {{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }}\n \n \n
\n
\n \n \n \n
\n {{ index + 1 }}\n
\n {{ word }}\n
\n \n
\n
\n
\n \n
\n

0\" class=\"text-align-center\">\n \n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\n

\n
\n
\n \n \n \n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class SeedPhraseComponent implements OnInit, OnDestroy {\n seedPhrase = '';\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.SAVE_PHRASE',\n },\n ];\n\n showSeed = false;\n\n wallet_id: number;\n\n wallet!: Wallet;\n\n seedPhraseCopied = false;\n\n progressWidth = '66%';\n\n fb = inject(FormBuilder);\n\n detailsForm = this.fb.group({\n name: this.fb.nonNullable.control('', [ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons)]),\n path: this.fb.nonNullable.control(''),\n });\n\n seedPhraseForm = this.fb.group(\n {\n password: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n confirmPassword: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirmPassword')],\n }\n );\n\n private destroy$ = new Subject();\n\n constructor(\n public walletsService: WalletsService,\n public variablesService: VariablesService,\n private route: ActivatedRoute,\n private backend: BackendService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.showSeed = false;\n this.getWallet();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n copySeedPhrase(): void {\n this.backend.setClipboard(this.seedPhrase, () => {\n this.ngZone.run(() => {\n setTimeout(() => {\n this.seedPhraseCopied = false;\n }, 4000);\n this.seedPhraseCopied = true;\n });\n });\n }\n\n showSeedPhrase(): void {\n this.showSeed = true;\n this.progressWidth = '100%';\n }\n\n onSubmitSeed(): void {\n if (this.seedPhraseForm.valid) {\n this.showSeedPhrase();\n const wallet_id = this.wallet_id;\n const seed_password = this.seedPhraseForm.controls.password.value;\n this.backend.getSmartWalletInfo({ wallet_id, seed_password }, (status, data) => {\n if (hasOwnProperty(data, 'seed_phrase')) {\n this.ngZone.run(() => {\n this.seedPhrase = data['seed_phrase'].trim();\n });\n }\n });\n }\n }\n\n private setWalletInfoNamePath(): void {\n this.detailsForm.get('name').setValue(this.wallet.name);\n this.detailsForm.get('path').setValue(this.wallet.path);\n }\n\n private getWallet(): void {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe({\n next: params => {\n if (params.wallet_id) {\n this.wallet_id = +params.wallet_id;\n this.wallet = this.walletsService.getWalletById(this.wallet_id);\n if (this.wallet) {\n this.setWalletInfoNamePath();\n }\n }\n },\n });\n }\n}\n","import { Component, inject, NgZone, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { scaleItems } from '@parts/data/scale-items';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { generateRandomString } from '@parts/utils/generate-random-string';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'app-settings',\n templateUrl: './settings.component.html',\n styleUrls: [`./settings.component.scss`],\n})\nexport class SettingsComponent implements OnInit {\n ifSaved = false;\n\n isSecretWasCopied: boolean = false;\n\n secretWasCopiedTimeout;\n\n scale: string;\n\n appUseTor: boolean;\n\n fb = inject(FormBuilder);\n\n changeForm = this.fb.group(\n {\n password: this.fb.nonNullable.control('', Validators.compose([Validators.pattern(regExpPassword)])),\n new_password: this.fb.nonNullable.control('', Validators.compose([Validators.required, Validators.pattern(regExpPassword)])),\n new_confirmation: this.fb.nonNullable.control(''),\n appPass: this.fb.nonNullable.control(this.variablesService.appPass ?? ''),\n },\n {\n validators: [\n ZanoValidators.formMatch('new_password', 'new_confirmation'),\n ZanoValidators.formMatch('password', 'appPass', 'pass_mismatch'),\n ],\n }\n );\n\n zanoCompanionForm: FormGroup<{\n zanoCompation: FormControl;\n secret: FormControl;\n }> = this.fb.group({\n zanoCompation: this.fb.nonNullable.control({ value: false, disabled: !this.variablesService.hasAppPass }),\n secret: this.fb.nonNullable.control(\n { value: '', disabled: false },\n {\n validators: Validators.compose([]),\n }\n ),\n });\n\n public currentNotificationsState;\n\n languagesOptions = [\n {\n name: 'en',\n language: 'SETTINGS.LANGUAGE.EN',\n },\n {\n name: 'fr',\n language: 'SETTINGS.LANGUAGE.FR',\n },\n {\n name: 'de',\n language: 'SETTINGS.LANGUAGE.DE',\n },\n {\n name: 'id',\n language: 'SETTINGS.LANGUAGE.ID',\n },\n {\n name: 'it',\n language: 'SETTINGS.LANGUAGE.IT',\n },\n {\n name: 'pt',\n language: 'SETTINGS.LANGUAGE.PT',\n },\n ];\n\n appLockOptions = [\n {\n time: 5,\n translationKey: 'SETTINGS.APP_LOCK.TIME1',\n },\n {\n time: 15,\n translationKey: 'SETTINGS.APP_LOCK.TIME2',\n },\n {\n time: 60,\n translationKey: 'SETTINGS.APP_LOCK.TIME3',\n },\n {\n time: 0,\n translationKey: 'SETTINGS.APP_LOCK.TIME4',\n },\n ];\n\n appScaleOptions = scaleItems;\n\n appLogOptions = [\n {\n id: -1,\n },\n {\n id: 0,\n },\n {\n id: 1,\n },\n {\n id: 2,\n },\n {\n id: 3,\n },\n {\n id: 4,\n },\n ];\n\n currentBuild = '';\n\n appPass: any;\n\n constructor(\n public translate: TranslateService,\n public variablesService: VariablesService,\n private renderer: Renderer2,\n public backend: BackendService,\n private ngZone: NgZone\n ) {\n this.scale = this.variablesService.settings.scale;\n this.appUseTor = this.variablesService.settings.appUseTor;\n this.zanoCompanionForm.setValue(this.variablesService.settings.zanoCompanionForm, { emitEvent: false });\n\n this.backend.getOptions();\n }\n\n ngOnInit(): void {\n this.backend.getVersion((version, type, error) => {\n this.ngZone.run(() => {\n if (!error) {\n this.currentBuild = version;\n this.variablesService.testnet = false;\n if (type === 'testnet') {\n this.currentBuild += ' TESTNET';\n this.variablesService.testnet = true;\n }\n this.variablesService.networkType = type;\n } else {\n this.currentBuild = 'There was an error getting the build version';\n }\n });\n });\n\n this.backend.getIsDisabledNotifications(state => {\n this.currentNotificationsState = state;\n });\n\n this.zanoCompanionForm.valueChanges.pipe(debounceTime(200)).subscribe({\n next: () => {\n const value = this.zanoCompanionForm.getRawValue();\n const { zanoCompation, secret } = value;\n\n if (zanoCompation && !secret) {\n this.generateSecret();\n return;\n }\n\n if (!zanoCompation && secret) {\n this.zanoCompanionForm.controls.secret.patchValue('');\n return;\n }\n\n if ((zanoCompation && secret) || (!zanoCompation && !secret)) {\n this.backend.setupJwtWalletRpc(value);\n return;\n }\n },\n });\n }\n\n copySecret(): void {\n const { secret } = this.zanoCompanionForm.getRawValue();\n\n this.backend.setClipboard(secret);\n\n this.isSecretWasCopied = true;\n this.secretWasCopiedTimeout = setTimeout(() => {\n this.isSecretWasCopied = false;\n clearTimeout(this.secretWasCopiedTimeout);\n }, 3000);\n }\n\n private generateSecret(): void {\n this.zanoCompanionForm.get('secret').setValue(generateRandomString(40));\n }\n\n regenerateSecret(): void {\n this.generateSecret();\n }\n\n setScale(): void {\n this.scale = this.variablesService.settings.scale;\n this.renderer.setStyle(document.documentElement, 'font-size', this.scale);\n this.backend.storeAppData();\n }\n\n onSubmitChangePass(): void {\n if (this.changeForm.valid) {\n this.variablesService.appPass = this.changeForm.get('new_password').value;\n\n this.backend.setMasterPassword({ pass: this.variablesService.appPass }, (status, data) => {\n if (status) {\n this.backend.storeSecureAppData({\n pass: this.variablesService.appPass,\n });\n this.variablesService.appLogin = true;\n this.variablesService.dataIsLoaded = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.ngZone.run(() => {\n this.zanoCompanionForm.controls.zanoCompation.enable({ emitEvent: false });\n this.onSave();\n });\n } else {\n console.log(data['error_code']);\n }\n });\n\n this.changeForm.reset();\n }\n }\n\n toggleNotifications(): void {\n if (!this.currentNotificationsState) {\n this.backend.setIsDisabledNotifications('true');\n this.currentNotificationsState = true;\n } else {\n this.backend.setIsDisabledNotifications('false');\n this.currentNotificationsState = false;\n }\n }\n\n toggleUseTor(): void {\n this.appUseTor = !this.appUseTor;\n this.variablesService.settings.appUseTor = this.appUseTor;\n this.backend.setEnableTor(this.appUseTor);\n this.backend.storeAppData();\n }\n\n onSave(): void {\n this.ifSaved = true;\n setTimeout(() => {\n this.ifSaved = false;\n }, 3000);\n }\n\n onLockChange(): void {\n this.variablesService.restartCountdown();\n }\n\n onLogChange(): void {\n this.backend.setLogLevel(this.variablesService.settings.appLog);\n this.backend.storeAppData();\n }\n\n onLanguageChange(): void {\n this.translate.use(this.variablesService.settings.language);\n this.backend.storeAppData();\n }\n\n showPrice(): void {\n this.variablesService.visibilityBalance$.next(!this.variablesService.visibilityBalance$.value);\n this.backend.storeAppData();\n }\n\n toggleDarkTheme(): void {\n const { settings, isDarkTheme$ } = this.variablesService;\n const isDarkTheme: boolean = !settings.isDarkTheme;\n this.variablesService.settings.isDarkTheme = isDarkTheme;\n isDarkTheme$.next(isDarkTheme);\n\n this.backend.storeAppData();\n }\n}\n","
\n
\n
\n \n

{{ 'SETTINGS.TITLE' | translate }}

\n
\n
\n
\n\n
\n
\n
\n
\n \n \n \n {{ item.language | translate }}\n \n \n {{ item.language | translate }}\n \n \n
\n\n
\n \n \n \n {{ item.translationKey | translate }}\n \n \n {{ item.translationKey | translate }}\n \n \n
\n\n
\n \n \n \n {{ item.name | translate }}\n \n \n {{ item.name | translate }}\n \n \n
\n\n
\n \n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n \n \n
\n \n
\n
\n \n \n\n \n\n \n\n
\n {{ 'SETTINGS.SECRET_WAS_COPIED' | translate }}\n
\n
\n\n
\n \n \n
\n
\n
\n
\n\n
\n

\n {{ 'SETTINGS.MASTER_PASSWORD.TITLE' | translate }}\n

\n\n
\n
\n \n 0\n \"\n class=\"form__field--input\"\n formControlName=\"password\"\n id=\"old-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_OLD' | translate }}\"\n type=\"password\"\n />\n 0\n \"\n class=\"error\"\n >\n {{ 'SETTINGS.FORM_ERRORS.CURRENT_PASS_NOT_MATCH' | translate }}\n
\n
\n\n
\n \n \n \n
\n {{ 'ERRORS.WRONG_PASSWORD_MUST_BE' | translate }} a-zA-Z0-9_.*|~!?@#$%^&+{}()<>:;\"'-=,/[]*$\n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n
\n\n
\n \n 0\n \"\n class=\"form__field--input\"\n formControlName=\"new_confirmation\"\n id=\"confirm-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n 0\n \"\n class=\"error\"\n >\n {{ 'SETTINGS.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\n
\n
\n
\n\n
\n \n {{\n 'SETTINGS.SETTINGS_SAVED' | translate\n }}\n
\n \n\n

\n Build version: {{ currentBuild }}\n

\n
\n \n \n\n","import { Component, NgZone, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport BigNumber from 'bignumber.js';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-transfer-alias',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.TRANSFER_ALIAS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n 0 &&\n (transferAddressAlias ||\n !transferAddressValid ||\n (transferAddressValid && !permissionSend) ||\n notEnoughMoney)\n \"\n class=\"form__field--input\"\n id=\"alias-transfer\"\n name=\"alias-transfer\"\n placeholder=\"{{ 'TRANSFER_ALIAS.ADDRESS.PLACEHOLDER' | translate }}\"\n type=\"text\"\n />\n 0 &&\n (transferAddressAlias ||\n !transferAddressValid ||\n (transferAddressValid && !permissionSend) ||\n notEnoughMoney)\n \"\n class=\"error\"\n >\n
\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.WRONG_ADDRESS' | translate }}\n
\n
\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.ALIAS_EXISTS' | translate }}\n
\n
\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\n
\n
\n
\n\n
\n {{\n 'TRANSFER_ALIAS.COST'\n | translate\n : {\n value: variablesService.default_fee,\n currency: variablesService.defaultTicker\n }\n }}\n
\n\n \n {{ 'TRANSFER_ALIAS.BUTTON_TRANSFER' | translate }}\n \n \n
\n
\n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class TransferAliasComponent implements OnInit {\n wallet: Wallet;\n\n alias: any;\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.TRANSFER_ALIAS',\n },\n ];\n\n transferAddress = '';\n\n transferAddressValid: boolean;\n\n transferAddressAlias: boolean;\n\n permissionSend: boolean;\n\n notEnoughMoney: boolean;\n\n requestProcessing = false;\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.wallet = this.variablesService.currentWallet;\n const alias = this.backend.getWalletAlias(this.wallet.address);\n this.alias = {\n name: alias.name,\n address: alias.address,\n comment: alias.comment,\n tracking_key: alias.tracking_key,\n };\n const unlocked_balance = new BigNumber(this.wallet.getBalanceByTicker('ZANO')?.unlocked || 0);\n this.notEnoughMoney = unlocked_balance.isLessThan(this.variablesService.default_fee_big);\n }\n\n changeAddress(): void {\n this.backend.validateAddress(this.transferAddress, status => {\n this.transferAddressValid = status;\n if (status) {\n this.backend.getPoolInfo((statusPool, dataPool) => {\n if (hasOwnProperty(dataPool, 'aliases_que') && dataPool.aliases_que.length) {\n this.setStatus(!dataPool.aliases_que.some(el => el.address === this.transferAddress));\n } else {\n this.setStatus(status);\n }\n });\n } else {\n this.setStatus(false);\n }\n });\n }\n\n setStatus(statusSet): void {\n this.permissionSend = statusSet;\n if (statusSet) {\n this.backend.getAliasByAddress(this.transferAddress, status => {\n this.ngZone.run(() => {\n if (status) {\n this.transferAddressAlias = true;\n this.permissionSend = false;\n } else {\n this.transferAddressAlias = false;\n }\n });\n });\n } else {\n this.ngZone.run(() => {\n this.transferAddressAlias = false;\n });\n }\n }\n\n transferAlias(): void {\n if (this.requestProcessing || !this.permissionSend || !this.transferAddressValid || this.notEnoughMoney) {\n return;\n }\n this.requestProcessing = true;\n const newAlias = {\n name: this.alias.name,\n address: this.transferAddress,\n comment: this.alias.comment,\n tracking_key: this.alias.tracking_key,\n };\n this.backend.updateAlias(this.wallet.wallet_id, newAlias, this.variablesService.default_fee, (status, data) => {\n if (status && hasOwnProperty(data, 'success') && data.success) {\n this.modalService.prepareModal('info', 'TRANSFER_ALIAS.REQUEST_SEND_REG');\n this.ngZone.run(() => {\n this.router.navigate(['/wallet/']);\n });\n }\n this.requestProcessing = false;\n });\n }\n}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Router } from '@angular/router';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-wallet-details',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.WALLET_DETAILS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n
\n \n \n \n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
= variablesService.maxWalletNameLength\">\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
\n
\n \n

Saved!

\n
\n
\n \n \n
\n \n\n \n \n \n
\n \n \n
\n\n
\n \n 0\n \"\n class=\"form__field--input\"\n formControlName=\"confirmPassword\"\n id=\"confirm-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n \n 0\n \"\n >\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\n
\n
\n
\n\n \n\n

\n \n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\n

\n \n \n\n \n
\n
\n
\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\n
\n
\n \n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }}\n \n \n 0\"\n class=\"status color-aqua\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n >\n {{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }}\n \n \n
\n
\n \n \n \n
\n {{ index + 1 }}\n
\n {{ word }}\n
\n \n
\n
\n \n

0\" class=\"text-align-center\">\n \n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\n

\n
\n \n \n \n \n \n \n \n `,\n})\nexport class WalletDetailsComponent {\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.WALLET_DETAILS',\n },\n ];\n\n seedPhrase = '';\n\n showSeed = false;\n\n seedPhraseCopied = false;\n\n ifSaved = false;\n\n fb = inject(NonNullableFormBuilder);\n\n detailsForm = this.fb.group({\n name: this.fb.control('', [Validators.required, ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons)]),\n path: this.fb.control(''),\n });\n\n passwordSeedPhraseForm = this.fb.group(\n {\n password: this.fb.control('', Validators.pattern(regExpPassword)),\n confirmPassword: this.fb.control('', Validators.pattern(regExpPassword)),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirmPassword')],\n }\n );\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private ngZone: NgZone\n ) {\n const { currentWallet } = this.variablesService;\n const { name, path } = currentWallet;\n this.detailsForm.patchValue(\n {\n name,\n path,\n },\n {\n emitEvent: false,\n }\n );\n }\n\n beforeSubmitPasswordSeedPhrase(): void {\n if (this.passwordSeedPhraseForm.invalid) {\n this.passwordSeedPhraseForm.updateValueAndValidity();\n this.passwordSeedPhraseForm.markAllAsTouched();\n return;\n }\n\n this.submitPasswordSeedPhrase();\n }\n\n submitPasswordSeedPhrase(): void {\n const { wallet_id } = this.variablesService.currentWallet;\n const { password: seed_password } = this.passwordSeedPhraseForm.getRawValue();\n this.backend.getSmartWalletInfo({ wallet_id, seed_password }, (status, data) => {\n if (hasOwnProperty(data, 'seed_phrase')) {\n this.ngZone.run(() => {\n this.showSeed = true;\n this.seedPhrase = data['seed_phrase'].trim();\n });\n }\n });\n }\n\n beforeSubmitDetails(): void {\n if (this.detailsForm.invalid) {\n this.detailsForm.updateValueAndValidity();\n this.detailsForm.markAllAsTouched();\n return;\n }\n\n this.submitDetails();\n }\n\n submitDetails(): void {\n const getRawValue = this.detailsForm.getRawValue();\n const { name } = getRawValue;\n this.variablesService.currentWallet.name = name;\n this.detailsForm.reset(getRawValue);\n this.refreshDetailsFormValidators();\n this.ifSaved = true;\n setTimeout(() => {\n this.ifSaved = false;\n }, 3000);\n }\n\n copySeedPhrase(): void {\n this.backend.setClipboard(this.seedPhrase, () => {\n this.ngZone.run(() => {\n setTimeout(() => {\n this.seedPhraseCopied = false;\n }, 4000);\n this.seedPhraseCopied = true;\n });\n });\n }\n\n private refreshDetailsFormValidators(): void {\n const walletNamesForComparisons = this.variablesService.walletNamesForComparisons;\n const validatorsForName = [Validators.required, ZanoValidators.duplicate(walletNamesForComparisons)];\n this.detailsForm.controls.name.clearValidators();\n this.detailsForm.controls.name.setValidators(validatorsForName);\n this.detailsForm.controls.name.updateValueAndValidity();\n }\n}\n","import { Component, inject, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Subject } from 'rxjs';\nimport { AssetBalance, ParamsRemoveCustomAssetId } from '@api/models/assets.model';\nimport { PaginatePipeArgs } from 'ngx-pagination';\nimport { takeUntil } from 'rxjs/operators';\nimport { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { AssetDetailsComponent } from '@parts/modals/asset-details/asset-details.component';\nimport { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { BackendService } from '@api/services/backend.service';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BigNumber } from 'bignumber.js';\nimport { LOCKED_BALANCE_HELP_PAGE } from '@parts/data/constants';\nimport { IntToMoneyPipe } from '@parts/pipes';\nimport { TranslateService } from '@ngx-translate/core';\nimport { defaultImgSrc, zanoAssetInfo } from '@parts/data/assets';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-assets',\n template: `\n
\n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n
\n
\n {{ 'ASSETS.TABLE.LABELS.NAME' | translate }}\n
\n
\n
\n {{ 'ASSETS.TABLE.LABELS.BALANCE' | translate }}\n
\n
\n
\n {{ 'ASSETS.TABLE.LABELS.VALUE' | translate }}\n
\n
\n
\n {{ 'ASSETS.TABLE.LABELS.PRICE' | translate }}\n
\n
\n
 
\n
\n
\n \n {{ asset.asset_info.full_name }}\n
\n
\n
\n \n {{ asset.total | intToMoney : asset.asset_info.decimal_point }}\n {{ asset.asset_info.ticker }}\n \n
\n
\n
\n {{\n (asset.total | intToMoney : asset.asset_info.decimal_point) *\n variablesService.zanoMoneyEquivalent | currency : 'USD'\n }}\n
\n
\n
\n {{ variablesService.zanoMoneyEquivalent | currency : 'USD' }}\n 0\"\n [class.color-red]=\"variablesService.zanoMoneyEquivalentPercent < 0\"\n >\n {{ variablesService.zanoMoneyEquivalentPercent | number : '1.2-2' }}\n %\n \n
\n
\n
\n \n \n \n
\n
\n
\n\n \n \n\n
\n \n {{ page.label }}\n \n
\n {{ page.label }}\n
\n
\n\n \n \n
\n\n \n
    \n
  • \n \n
  • \n\n \n
  • \n \n
  • \n\n \n
  • \n \n
  • \n
    \n \n\n \n
  • \n \n
  • \n
    \n
\n \n `,\n})\nexport class AssetsComponent implements OnInit, OnDestroy {\n currentPage = 1;\n\n itemsPerPage = 10;\n\n paginationId = 'pagination-assets-id';\n zanoAssetInfo = zanoAssetInfo;\n defaultImgSrc = defaultImgSrc;\n triggerOrigin!: CdkOverlayOrigin;\n currentAsset!: AssetBalance;\n isOpenDropDownMenu = false;\n private destroy$ = new Subject();\n private readonly _matDialog: MatDialog = inject(MatDialog);\n\n constructor(\n public variablesService: VariablesService,\n private backendService: BackendService,\n private walletsService: WalletsService,\n private dialog: Dialog,\n private intToMoneyPipe: IntToMoneyPipe,\n private translate: TranslateService\n ) {}\n\n get paginatePipeArgs(): PaginatePipeArgs {\n return {\n id: this.paginationId,\n itemsPerPage: this.itemsPerPage,\n currentPage: this.currentPage,\n };\n }\n\n get isShowPagination(): boolean {\n const { currentWallet } = this.variablesService;\n if (currentWallet) {\n const { balances } = currentWallet;\n return (balances?.length || 0) > this.itemsPerPage;\n }\n return false;\n }\n\n ngOnInit(): void {\n this.listenChangeWallet();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n toggleDropDownMenu(trigger: CdkOverlayOrigin, asset: AssetBalance): void {\n this.isOpenDropDownMenu = !this.isOpenDropDownMenu;\n this.triggerOrigin = trigger;\n this.currentAsset = asset;\n }\n\n trackByAssets(index: number, { asset_info: { asset_id } }: AssetBalance): number | string {\n return asset_id || index;\n }\n\n trackByPages(index: number): number | string {\n return index;\n }\n\n assetDetails(): void {\n const config: MatDialogConfig = {\n data: {\n assetInfo: this.currentAsset.asset_info,\n },\n };\n this._matDialog.open(AssetDetailsComponent, config);\n }\n\n beforeRemoveAsset(): void {\n if (!this.currentAsset) {\n return;\n }\n const { full_name } = this.currentAsset.asset_info;\n const config: MatDialogConfig = {\n data: {\n title: `Do you want delete \"${full_name}\"`,\n },\n };\n\n this._matDialog\n .open(ConfirmModalComponent, config)\n .afterClosed().pipe(takeUntil(this.destroy$))\n .subscribe({\n next: confirmed => confirmed && this.removeAsset(),\n });\n }\n\n removeAsset(): void {\n const { wallet_id, sendMoneyParams } = this.variablesService.currentWallet;\n const { asset_id } = this.currentAsset.asset_info;\n const params: ParamsRemoveCustomAssetId = {\n wallet_id,\n asset_id,\n };\n this.backendService.removeCustomAssetId(params, () => {\n this.walletsService.updateWalletInfo(wallet_id);\n this.currentAsset = undefined;\n\n if (sendMoneyParams) {\n this.walletsService.currentWallet.sendMoneyParams.asset_id = zanoAssetInfo.asset_id;\n }\n });\n }\n\n getBalanceTooltip(balance: AssetBalance): HTMLDivElement {\n const tooltip = document.createElement('div');\n const scrollWrapper = document.createElement('div');\n const visibilityBalance = this.variablesService.visibilityBalance$.value;\n\n if (!balance) {\n return null;\n }\n\n scrollWrapper.classList.add('balance-scroll-list');\n [balance].forEach(({ unlocked, total, asset_info: { ticker, decimal_point } }: AssetBalance) => {\n const available = document.createElement('span');\n available.setAttribute('class', 'available');\n available.innerText = `${this.translate.instant('WALLET.AVAILABLE_BALANCE')} `;\n const availableB = document.createElement('b');\n availableB.innerText = visibilityBalance\n ? `${this.intToMoneyPipe.transform(unlocked, decimal_point)} ${ticker || '---'}`\n : '******';\n available.appendChild(availableB);\n scrollWrapper.appendChild(available);\n\n const locked = document.createElement('span');\n locked.setAttribute('class', 'locked');\n locked.innerText = `${this.translate.instant('WALLET.LOCKED_BALANCE')} `;\n const lockedB = document.createElement('b');\n lockedB.innerText = visibilityBalance\n ? `${this.intToMoneyPipe.transform(new BigNumber(total).minus(unlocked), decimal_point)} ${ticker || '---'}`\n : '******';\n locked.appendChild(lockedB);\n scrollWrapper.appendChild(locked);\n });\n tooltip.appendChild(scrollWrapper);\n const link = document.createElement('span');\n link.setAttribute('class', 'link');\n link.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE_LINK');\n link.addEventListener('click', () => {\n this.backendService.openUrlInBrowser(LOCKED_BALANCE_HELP_PAGE);\n });\n tooltip.appendChild(link);\n return tooltip;\n }\n\n private listenChangeWallet(): void {\n this.variablesService.currentWalletChangedEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.currentPage = 0;\n },\n });\n }\n}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { NonNullableFormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { AssetBalance, AssetInfo } from '@api/models/assets.model';\nimport BigNumber from 'bignumber.js';\nimport { intToMoney } from '@parts/functions/int-to-money';\nimport { insuficcientFunds } from '@parts/utils/zano-errors';\nimport { BackendService } from '@api/services/backend.service';\nimport { moneyToInt } from '@parts/functions/money-to-int';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-burn-custom-asset',\n templateUrl: './burn-custom-asset.component.html',\n styleUrls: ['./burn-custom-asset.component.scss'],\n})\nexport class BurnCustomAssetComponent {\n public readonly variablesService: VariablesService = inject(VariablesService);\n\n public readonly data: { assetInfo: AssetInfo } = inject(MAT_DIALOG_DATA);\n\n public readonly matDialogRef: MatDialogRef = inject(MatDialogRef);\n\n private readonly _fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n public readonly form = this._fb.group({\n amount: this._fb.control('', [\n Validators.required,\n (control): ValidationErrors | null => {\n const { value: amount } = control;\n const {\n assetInfo: { asset_id },\n } = this.data;\n const { currentWallet, maximum_value } = this.variablesService;\n const prepared_amount = new BigNumber(amount);\n const assetBalance: AssetBalance | undefined = currentWallet.getBalanceByAssetId(asset_id);\n\n if (!assetBalance) {\n return {\n asset_not_found: true,\n };\n }\n\n const {\n unlocked,\n asset_info: { decimal_point },\n } = assetBalance;\n\n const maximum_amount_by_decimal_point = intToMoney(maximum_value, decimal_point);\n if (prepared_amount.isGreaterThan(maximum_amount_by_decimal_point)) {\n return { greater_than_maximum_amount: { max: maximum_amount_by_decimal_point } };\n }\n\n const preparedUnlocked = intToMoney(unlocked, decimal_point);\n return prepared_amount.isGreaterThan(preparedUnlocked) ? { insuficcientFunds } : null;\n },\n ]),\n });\n\n private readonly _backendService: BackendService = inject(BackendService);\n\n private readonly _ngZone: NgZone = inject(NgZone);\n\n public submit(): void {\n const { amount } = this.form.getRawValue();\n const {\n currentWallet: { wallet_id },\n } = this.variablesService;\n const {\n assetInfo: { asset_id, decimal_point },\n } = this.data;\n\n const params = {\n burn_amount: moneyToInt(amount, decimal_point).toString(),\n asset_id,\n };\n\n this._backendService.asyncCall2a(\n 'call_wallet_rpc',\n wallet_id,\n {\n jsonrpc: '2.0',\n id: 0,\n method: 'burn_asset',\n params,\n },\n (job_id: number): void => {\n this._ngZone.run(() => {\n this.matDialogRef.close(job_id);\n });\n }\n );\n }\n}\n","
\n

\n {{ 'Burn' | translate }}\n

\n\n \n
\n \n\n \n\n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ form.controls.amount.errors['insuficcientFunds'].errorText | translate }}\n
\n
\n {{ 'ERRORS.ASSET_NOT_FOUND' | translate }}\n
\n
\n {{ 'ERRORS.MAX' | translate : { max: form.controls.amount.errors['greater_than_maximum_amount'].max } }}\n
\n
\n
\n
\n\n \n
\n \n \n
\n
\n
\n","import { Component, inject } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { NonNullableFormBuilder } from '@angular/forms';\nimport { ZanoValidators } from '@parts/utils/zano-validators';\nimport { DeployAssetParams } from '@api/models/custom-asstest.model';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-confirm-create-custom-asset',\n templateUrl: './confirm-create-custom-asset.component.html',\n styleUrls: ['./confirm-create-custom-asset.component.scss'],\n})\nexport class ConfirmCreateCustomAssetComponent {\n public readonly variablesService: VariablesService = inject(VariablesService);\n\n public readonly data: { asset_descriptor: DeployAssetParams['asset_descriptor'] } = inject(MAT_DIALOG_DATA);\n\n private readonly fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n public readonly confirmForm = this.fb.group(\n {\n password: this.fb.control(''),\n appPass: this.fb.control(this.variablesService.appPass || ''),\n },\n { validators: [ZanoValidators.formMatch('password', 'appPass', 'passwordNotMatch')] }\n );\n}\n","
\n

\n {{ 'CONFIRM_CREATE_CUSTOM_ASSET.TITLE' | translate }}\n

\n\n \n
\n
\n
\n {{ 'CONFIRM_CREATE_CUSTOM_ASSET.TABLE.LABEL1' | translate }}\n
\n
\n {{ data.asset_descriptor.ticker }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_CREATE_CUSTOM_ASSET.TABLE.LABEL2' | translate }}\n
\n
\n {{ data.asset_descriptor.full_name }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_CREATE_CUSTOM_ASSET.TABLE.LABEL3' | translate }}\n
\n
\n {{ data.asset_descriptor.total_max_supply | intToMoney : data.asset_descriptor.decimal_point }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_CREATE_CUSTOM_ASSET.TABLE.LABEL4' | translate }}\n
\n
\n {{ data.asset_descriptor.current_supply | intToMoney : data.asset_descriptor.decimal_point }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_CREATE_CUSTOM_ASSET.TABLE.LABEL5' | translate }}\n
\n
\n {{ data.asset_descriptor.decimal_point }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_CREATE_CUSTOM_ASSET.TABLE.LABEL6' | translate }}\n
\n
\n {{ data.asset_descriptor.meta_info }}\n
\n
\n
\n\n
\n \n \n
\n
\n {{ 'LOGIN.FORM_ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n {{ 'LOGIN.FORM_ERRORS.PASS_REQUIRED' | translate }}\n
\n
\n
\n
\n\n \n
\n \n \n
\n
\n
\n","import { Component, inject, NgZone } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { NonNullableFormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { AssetInfo } from '@api/models/assets.model';\nimport { EmitParams } from '@api/models/custom-asstest.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { intToMoney } from '@parts/functions/int-to-money';\nimport BigNumber from 'bignumber.js';\nimport { moneyToInt } from '@parts/functions/money-to-int';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-emit-custom-asset',\n templateUrl: './emit-custom-asset.component.html',\n styleUrls: ['./emit-custom-asset.component.scss'],\n})\nexport class EmitCustomAssetComponent {\n public readonly variablesService: VariablesService = inject(VariablesService);\n\n public readonly data: { assetInfo: AssetInfo } = inject(MAT_DIALOG_DATA);\n\n public readonly matDialogRef: MatDialogRef = inject(MatDialogRef);\n\n private readonly _backendService: BackendService = inject(BackendService);\n\n private readonly _fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n public readonly form = this._fb.group({\n amount: this._fb.control('', [\n Validators.required,\n (control): ValidationErrors | null => {\n const {\n assetInfo: { total_max_supply, current_supply, decimal_point },\n } = this.data;\n const { value: amount } = control;\n\n const prepared_total_max_supply: BigNumber = new BigNumber(intToMoney(total_max_supply, decimal_point));\n const prepared_current_supply: BigNumber = new BigNumber(intToMoney(current_supply, decimal_point));\n if (prepared_current_supply.plus(amount).isGreaterThan(prepared_total_max_supply)) {\n return { greater_than_total_max_supply: { max: prepared_total_max_supply.toString() } };\n }\n return null;\n },\n ]),\n });\n\n private _ngZone: NgZone = inject(NgZone);\n\n public submit(): void {\n const {\n currentWallet: { wallet_id, address },\n } = this.variablesService;\n const {\n assetInfo: { asset_id, decimal_point },\n } = this.data;\n const { amount } = this.form.getRawValue();\n const params: EmitParams = {\n asset_id,\n destinations: [\n {\n address,\n amount: moneyToInt(amount, decimal_point).toString(),\n asset_id: '0000000000000000000000000000000000000000000000000000000000000000',\n },\n ],\n };\n\n this._backendService.asyncCall2a(\n 'call_wallet_rpc',\n wallet_id,\n {\n jsonrpc: '2.0',\n id: 0,\n method: 'emit_asset',\n params,\n },\n async (job_id: number): Promise => {\n this._ngZone.run(() => {\n this.matDialogRef.close(job_id);\n });\n }\n );\n }\n}\n","
\n

\n {{ 'Emit' | translate }}\n

\n\n \n
\n \n \n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ 'ERRORS.GREATER_THAN_TOTAL_MAX_SUPPLY' | translate }}\n
\n
\n
\n
\n\n \n
\n \n \n
\n
\n
\n","import { Component, ElementRef, inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { AsyncCommandResults, BackendService } from '@api/services/backend.service';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { BLOCK_EXPLORER_TN_TX_URL_PREFIX, BLOCK_EXPLORER_TX_URL_PREFIX } from '@parts/data/constants';\nimport { VariablesService } from '@parts/services/variables.service';\n\n@Component({\n selector: 'app-transaction-details-for-custom-assets',\n templateUrl: './transaction-details-for-custom-assets.component.html',\n styleUrls: ['./transaction-details-for-custom-assets.component.scss'],\n})\nexport class TransactionDetailsForCustomAssetsComponent implements OnInit, OnDestroy {\n public status: 'loading' | 'success' | 'error' = 'loading';\n\n public data: { job_id: number } = inject(MAT_DIALOG_DATA);\n\n public details: { new_asset_id: string; result_tx: string };\n\n public error: any;\n\n @ViewChild('elDetailsList', { static: true }) elDetailsList: ElementRef;\n\n public isShowDetailsState: boolean = false;\n\n public variablesService: VariablesService = inject(VariablesService);\n\n private _backendService: BackendService = inject(BackendService);\n\n private _destroy$: Subject = new Subject();\n\n ngOnInit(): void {\n this._backendService.dispatchAsyncCallResult$\n .pipe(\n filter(Boolean),\n filter(({ job_id }: AsyncCommandResults) => this.data.job_id === job_id),\n takeUntil(this._destroy$)\n )\n .subscribe({\n next: ({ response }) => {\n if (response.error) {\n this.status = 'error';\n this.error = response.error;\n } else {\n this.status = 'success';\n this.details = response.result;\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n toggleDetails(): void {\n this.isShowDetailsState = !this.isShowDetailsState;\n setTimeout(() => this.scrollToBottomDetailsList(), 100);\n }\n\n private scrollToBottomDetailsList(): void {\n if (this.elDetailsList) {\n const { nativeElement } = this.elDetailsList;\n nativeElement.scrollTop = nativeElement.scrollHeight;\n }\n }\n\n openInBrowser(hash: string): void {\n this._backendService.openUrlInBrowser(\n (this.variablesService.testnet ? BLOCK_EXPLORER_TN_TX_URL_PREFIX : BLOCK_EXPLORER_TX_URL_PREFIX) + hash\n );\n }\n}\n","

\n {{ 'SEND_DETAILS_MODAL.TITLE1' | translate }}\n

\n\n\n
\n
\n \"success\"\n
\n\n
\n \"failed\"\n
\n\n
\n\n

\n {{\n {\n success: 'TOR_LIB_STATE.STATE_SENT_SUCCESS',\n error: 'TOR_LIB_STATE.STATE_SEND_FAILED',\n loading: 'Loading...'\n }[status] | translate\n }}\n

\n
\n\n
\n \n

\n {{ 'SEND_DETAILS_MODAL.TITLE2' | translate }}\n

\n \n
\n \n
    \n \n \n
  • \n \n New asset id: {{ new_asset_id || '---' }}\n \n \n \n
  • \n
    \n \n
  • \n \n Result tx: {{ result_tx }}\n \n \n \n
  • \n
    \n
    \n \n
  • \n \n Error: {{ error.message || 'Ops... Unknown error...' }}\n \n
  • \n
    \n
\n \n \n
\n\n\n
\n \n
\n
\n","import { Component, inject, NgZone } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { NonNullableFormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { AssetInfo } from '@api/models/assets.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { UpdateAssetParams } from '@api/models/custom-asstest.model';\nimport { regExpHex } from '@parts/utils/zano-validators';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-update-custom-asset',\n templateUrl: './update-custom-asset.component.html',\n styleUrls: ['./update-custom-asset.component.scss'],\n})\nexport class UpdateCustomAssetComponent {\n public readonly variablesService: VariablesService = inject(VariablesService);\n public readonly data: { assetInfo: AssetInfo } = inject(MAT_DIALOG_DATA);\n public readonly matDialogRef: MatDialogRef = inject(MatDialogRef);\n private readonly _backendService: BackendService = inject(BackendService);\n private readonly fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n private _ngZone: NgZone = inject(NgZone);\n public readonly form = this.fb.group({\n owner: this.fb.control('', [\n Validators.required,\n (control): ValidationErrors | null => {\n if (control.value.length === 64) {\n if (!regExpHex.test(control.value)) {\n return { hex_not_valid: true };\n } else {\n return null;\n }\n }\n\n if (control.value) {\n this._backendService.validateAddress(control.value, (status, data) => {\n this._ngZone.run(() => {\n if (status === false) {\n control.setErrors(Object.assign({ address_not_valid: true }, control.errors));\n } else {\n if (control.hasError('address_not_valid')) {\n delete control.errors['address_not_valid'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n }\n });\n });\n return control.hasError('address_not_valid') ? { address_not_valid: true } : null;\n }\n\n return null;\n },\n ]),\n });\n\n public submit(): void {\n const { wallet_id } = this.variablesService.currentWallet;\n const { asset_id } = this.data.assetInfo;\n const { owner } = this.form.getRawValue();\n const params: UpdateAssetParams = {\n asset_id,\n asset_descriptor: {\n owner,\n },\n };\n\n this._backendService.asyncCall2a(\n 'call_wallet_rpc',\n wallet_id,\n {\n jsonrpc: '2.0',\n id: 0,\n method: 'update_asset',\n params,\n },\n async (job_id: number): Promise => {\n this._ngZone.run(() => {\n this.matDialogRef.close(job_id);\n });\n }\n );\n }\n}\n","
\n

\n {{ 'Update asset' | translate }}\n

\n \n
\n \n \n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ 'ERRORS.HEX_NOT_VALID' | translate }}\n
\n
\n {{ 'ERRORS.ADDRESS_NOT_VALID' | translate }}\n
\n
\n
\n
\n\n \n
\n \n \n
\n
\n
\n","import { Component, inject, NgZone } from '@angular/core';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { AbstractControl, FormControl, FormGroup, NonNullableFormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { ConfirmCreateCustomAssetComponent } from '../../modals/confirm-create-custom-asset/confirm-create-custom-asset.component';\nimport { AssetDescriptor, DeployAssetParams, Destinations } from '@api/models/custom-asstest.model';\nimport { filter, take } from 'rxjs/operators';\nimport { BackendService } from '@api/services/backend.service';\nimport { Router } from '@angular/router';\nimport { BigNumber } from 'bignumber.js';\nimport { intToMoney } from '@parts/functions/int-to-money';\nimport { moneyToInt } from '@parts/functions/money-to-int';\nimport { TransactionDetailsForCustomAssetsComponent } from '../../modals/transaction-details-for-custom-assets/transaction-details-for-custom-assets.component';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\ntype CreateNewAssetFrom = FormGroup<{\n ticker: FormControl;\n full_name: FormControl;\n total_max_supply: FormControl;\n current_supply: FormControl;\n decimal_point: FormControl;\n meta_info: FormControl;\n hidden_supply: FormControl;\n}>;\n\n@Component({\n selector: 'app-create-new-asset',\n templateUrl: './create-new-asset.component.html',\n styleUrls: ['./create-new-asset.component.scss'],\n})\nexport class CreateNewAssetComponent {\n public readonly breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/custom-assets',\n title: 'CREATE_NEW_ASSETS.BREADCRUMBS.BREADCRUMB1',\n },\n {\n title: 'CREATE_NEW_ASSETS.BREADCRUMBS.BREADCRUMB2',\n },\n ];\n\n public readonly variablesService: VariablesService = inject(VariablesService);\n\n private readonly _backendService: BackendService = inject(BackendService);\n\n private readonly _fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n public form: CreateNewAssetFrom = this._fb.group(\n {\n ticker: this._fb.control(undefined, [Validators.required, Validators.minLength(2), Validators.maxLength(30)]),\n full_name: this._fb.control(undefined, [Validators.required, Validators.minLength(2), Validators.maxLength(150)]),\n total_max_supply: this._fb.control(undefined, [Validators.required]),\n current_supply: this._fb.control(undefined, [Validators.required]),\n decimal_point: this._fb.control('12', [Validators.required, Validators.min(0), Validators.max(18)]),\n meta_info: this._fb.control('', [Validators.maxLength(255)]),\n hidden_supply: this._fb.control(false),\n },\n {\n validators: [\n (control: AbstractControl) => {\n const error = {\n current_supply: 'ERRORS.CANNOT_BE_GREATER_THAN_TOTAL_MAX_SUPPLY',\n };\n const total_max_supply = new BigNumber(control.get('total_max_supply').value);\n const current_supply = new BigNumber(control.get('current_supply').value);\n\n if (total_max_supply.isLessThan(current_supply)) {\n return error;\n }\n\n return null;\n },\n (control: AbstractControl): ValidationErrors => {\n const { maximum_value } = this.variablesService;\n const { value: decimal_point } = control.get('decimal_point');\n const { value: total_max_supply } = control.get('total_max_supply');\n\n const prepared_total_max_supply = new BigNumber(total_max_supply);\n const max = new BigNumber(intToMoney(maximum_value, +decimal_point || 0));\n const error = { greater_than_max: { max: max.toString() } };\n\n if (prepared_total_max_supply.isGreaterThan(max)) {\n return error;\n }\n\n return null;\n },\n ],\n }\n );\n\n private readonly _router: Router = inject(Router);\n\n private readonly _matDialog: MatDialog = inject(MatDialog);\n\n private readonly _ngZone: NgZone = inject(NgZone);\n\n details(job_id: number): void {\n const config: MatDialogConfig = {\n data: {\n job_id,\n },\n disableClose: true,\n };\n this._matDialog\n .open(TransactionDetailsForCustomAssetsComponent, config)\n .afterClosed()\n .pipe(filter(Boolean), take(1))\n .subscribe({\n next: async () => {\n await this._ngZone.run(async () => {\n await this._router.navigate(['/wallet/custom-assets']);\n });\n },\n });\n }\n\n submit(): void {\n const { address, wallet_id } = this.variablesService.currentWallet;\n const { ticker, full_name, meta_info, hidden_supply, current_supply, total_max_supply, decimal_point } = this.form.getRawValue();\n\n let countDestination = 1;\n let destinationAmount: string = moneyToInt(current_supply, decimal_point).toString();\n const halfDestinationAmount: string = new BigNumber(destinationAmount).div(2).toString();\n\n if (\n !halfDestinationAmount.includes('.') &&\n new BigNumber(halfDestinationAmount).plus(halfDestinationAmount).eq(destinationAmount)\n ) {\n countDestination = 2;\n destinationAmount = halfDestinationAmount;\n }\n\n const asset_descriptor: AssetDescriptor = {\n ticker,\n full_name,\n meta_info,\n hidden_supply,\n decimal_point: new BigNumber(decimal_point).toNumber(),\n total_max_supply: moneyToInt(total_max_supply, decimal_point).toString(),\n };\n const destinations: Destinations = [];\n\n for (let i = 0; i < countDestination; i++) {\n destinations.push({\n address,\n amount: destinationAmount,\n asset_id: '0000000000000000000000000000000000000000000000000000000000000000',\n });\n }\n\n const params: DeployAssetParams = {\n asset_descriptor,\n destinations,\n };\n\n const config: MatDialogConfig = {\n disableClose: true,\n data: {\n asset_descriptor: {\n ...asset_descriptor,\n current_supply: moneyToInt(current_supply, decimal_point).toString(),\n },\n },\n };\n this._matDialog\n .open(ConfirmCreateCustomAssetComponent, config)\n .afterClosed()\n .pipe(filter(Boolean), take(1))\n .subscribe({\n next: () => {\n this._backendService.asyncCall2a(\n 'call_wallet_rpc',\n wallet_id,\n {\n jsonrpc: '2.0',\n id: 0,\n method: 'deploy_asset',\n params,\n },\n async (job_id: number): Promise => {\n this._ngZone.run(() => this.details(job_id));\n }\n );\n },\n });\n }\n}\n","
\n \n\n
\n \n
\n
\n \n \n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n\n
\n {{ 'ERRORS.MIN_LENGTH' | translate : { requiredLength: err.requiredLength } }}\n
\n\n
\n {{ 'ERRORS.MAX_LENGTH' | translate : { requiredLength: err.requiredLength } }}\n
\n
\n
\n\n
\n \n \n \n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n\n
\n {{ 'ERRORS.MIN_LENGTH' | translate : { requiredLength: err.requiredLength } }}\n
\n\n
\n {{ 'ERRORS.MAX_LENGTH' | translate : { requiredLength: err.requiredLength } }}\n
\n
\n
\n
\n\n \n
\n
\n \n \n \n \n {{ 'ERRORS.REQUIRED' | translate }}\n \n
\n\n
\n {{ 'ERRORS.TO_BIG_TOTAL_SUPPLY' | translate }}\n {{ 'ERRORS.MAX' | translate : { max: form.errors['greater_than_max'].max } }}\n
\n
\n\n \n
\n \n \n \n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n
\n {{ form.errors['current_supply'] | translate }}\n
\n \n \n\n \n
\n \n \n \n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n\n
\n {{ 'ERRORS.MIN' | translate : { min: error.min } }}\n
\n\n
\n {{ 'ERRORS.MAX' | translate : { max: error.max } }}\n
\n
\n \n\n \n
\n \n \n\n \n
\n {{ 'ERRORS.MAX_LENGTH' | translate : { requiredLength: err.requiredLength } }}\n
\n
\n \n\n \n \n\n","import { Component, inject, OnInit } from '@angular/core';\nimport { PaginatePipeArgs } from 'ngx-pagination';\nimport { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';\nimport { AssetInfo } from '@api/models/assets.model';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { AssetDetailsComponent } from '@parts/modals/asset-details/asset-details.component';\nimport { UpdateCustomAssetComponent } from '../../modals/update-custom-asset/update-custom-asset.component';\nimport { BurnCustomAssetComponent } from '../../modals/burn-custom-asset/burn-custom-asset.component';\nimport { EmitCustomAssetComponent } from '../../modals/emit-custom-asset/emit-custom-asset.component';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { TransactionDetailsForCustomAssetsComponent } from '../../modals/transaction-details-for-custom-assets/transaction-details-for-custom-assets.component';\nimport { Observable, take } from 'rxjs';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-custom-assets',\n templateUrl: './custom-assets.component.html',\n styleUrls: ['./custom-assets.component.scss'],\n})\nexport class CustomAssetsComponent implements OnInit {\n paginationId: string = 'pagination-custom-assets-id';\n\n triggerOrigin: CdkOverlayOrigin | undefined;\n\n currentAssetInfo: AssetInfo | undefined;\n\n isOpenDropDownMenu: boolean = false;\n\n connectedOverlayPositions: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 30,\n },\n ];\n paginateArgs: PaginatePipeArgs = {\n id: this.paginationId,\n itemsPerPage: 10,\n currentPage: 1,\n };\n\n public variablesService: VariablesService = inject(VariablesService);\n\n private readonly _matDialog: MatDialog = inject(MatDialog);\n\n private readonly _walletsService: WalletsService = inject(WalletsService);\n\n get assets(): AssetInfo[] {\n return this._walletsService.currentWallet?.assetsInfoWhitelist?.own_assets ?? [];\n }\n\n get isShowPagination(): boolean {\n const { currentWallet } = this.variablesService;\n if (!currentWallet) {\n return false;\n }\n const {\n assetsInfoWhitelist: { own_assets },\n } = currentWallet;\n return own_assets?.length > this.paginateArgs.itemsPerPage;\n }\n\n ngOnInit(): void {\n this._loadAssets();\n }\n\n toggleDropDownMenu(trigger: CdkOverlayOrigin, asset: AssetInfo): void {\n this.isOpenDropDownMenu = !this.isOpenDropDownMenu;\n this.triggerOrigin = trigger;\n this.currentAssetInfo = asset;\n }\n\n closeDropDownMenu(): void {\n this.isOpenDropDownMenu = false;\n }\n\n trackByAssets(index: number): number | string {\n return index;\n }\n\n trackByPages(index: number): number | string {\n return index;\n }\n\n openDialog(type: 'assetDetails' | 'emit' | 'burn' | 'update'): void {\n const config: MatDialogConfig = {\n data: {\n assetInfo: this.currentAssetInfo,\n },\n };\n\n let closed: Observable;\n\n switch (type) {\n case 'assetDetails': {\n this._matDialog.open(AssetDetailsComponent, config);\n return;\n }\n case 'emit': {\n closed = this._matDialog\n .open(EmitCustomAssetComponent, config)\n .afterClosed();\n break;\n }\n case 'burn': {\n closed = this._matDialog\n .open(BurnCustomAssetComponent, config)\n .afterClosed();\n break;\n }\n case 'update': {\n closed = this._matDialog\n .open(UpdateCustomAssetComponent, config)\n .afterClosed();\n break;\n }\n }\n\n closed\n .pipe(\n filter(job_id => typeof job_id === 'number'),\n switchMap(job_id => {\n const config: MatDialogConfig = {\n data: {\n job_id,\n },\n };\n return this._matDialog\n .open(TransactionDetailsForCustomAssetsComponent, config)\n .afterClosed();\n }),\n filter(Boolean),\n take(1)\n )\n .subscribe({\n next: () => this._loadAssets(),\n });\n }\n\n private _loadAssets(): void {\n const {\n currentWallet: { wallet_id },\n } = this._walletsService;\n this._walletsService.loadAssetsWhitelist(wallet_id);\n }\n}\n","
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n {{ 'CUSTOM_ASSETS.TABLE.LABELS.LABEL1' | translate }}\n
\n
\n
\n {{ 'CUSTOM_ASSETS.TABLE.LABELS.LABEL2' | translate }}\n
\n
\n
\n {{ 'CUSTOM_ASSETS.TABLE.LABELS.LABEL3' | translate }}\n
\n
\n
\n {{ 'CUSTOM_ASSETS.TABLE.LABELS.LABEL4' | translate }}\n
\n
\n
\n {{ 'CUSTOM_ASSETS.TABLE.LABELS.LABEL5' | translate }}\n
\n
\n
\n {{ 'CUSTOM_ASSETS.TABLE.LABELS.LABEL6' | translate }}\n
\n
\n
 
\n
\n {{ asset.asset_id | zanoShortString }}\n {{ asset.ticker }}{{ asset.full_name }}{{ asset.total_max_supply | intToMoney : asset.decimal_point }}{{ asset.current_supply | intToMoney : asset.decimal_point }}{{ asset.decimal_point }}\n
\n \n \n \n
\n
\n\n {{\n 'CUSTOM_ASSETS.BUTTONS.BUTTON1' | translate\n }}\n
\n\n \n \n\n
\n \n {{ page.label }}\n \n
\n {{ page.label }}\n
\n
\n\n \n \n
\n\n \n

{{ 'CUSTOM_ASSETS.TEXT.EMPTY' | translate }}

\n {{\n 'CUSTOM_ASSETS.BUTTONS.BUTTON1' | translate\n }}\n
\n
\n\n\n
    \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
\n\n","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { PaginationService } from '@store/pagination/pagination.service';\nimport { PaginationStore } from '@store/pagination/pagination.store';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport { collapseOnLeaveAnimation, expandOnEnterAnimation } from 'angular-animations';\nimport { ZanoAssetInfo, zanoAssetInfo } from '@parts/data/assets';\n\n@Component({\n selector: 'app-history',\n templateUrl: './history.component.html',\n styleUrls: ['./history.component.scss'],\n animations: [expandOnEnterAnimation(), collapseOnLeaveAnimation()],\n})\nexport class HistoryComponent implements OnInit, OnDestroy {\n public zanoAssetInfo: ZanoAssetInfo = zanoAssetInfo;\n\n public opened_transaction_details: string | undefined;\n\n public stop_paginate: boolean = false;\n\n public mining: boolean = false;\n\n public wallet: Wallet;\n\n private _destroy$: Subject = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private _pagination: PaginationService,\n private _backendService: BackendService,\n private _ngZone: NgZone,\n private _paginationStore: PaginationStore\n ) {}\n\n get currentWallet(): Wallet {\n return this.variablesService.currentWallet;\n }\n\n ngOnInit(): void {\n this.init();\n\n this.variablesService.currentWalletChangedEvent.pipe(filter(Boolean), takeUntil(this._destroy$)).subscribe({\n next: (wallet: Wallet) => {\n this.getRecentTransfers();\n this.mining = wallet.exclude_mining_txs;\n },\n });\n }\n\n ngOnDestroy(): void {\n this.opened_transaction_details = undefined;\n\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n init(): void {\n let restore = false;\n if (hasOwnProperty(this.variablesService.after_sync_request, String(this.variablesService.currentWallet.wallet_id))) {\n restore = this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id];\n }\n if (!this.variablesService.sync_started && restore && this.variablesService.currentWallet.wallet_id) {\n this.wallet = this.variablesService.getNotLoadedWallet();\n if (this.wallet) {\n this.tick();\n }\n // if this is was restore wallet, and it was selected on moment when sync completed\n this.getRecentTransfers();\n this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id] = false;\n }\n let after_sync_request = false;\n if (hasOwnProperty(this.variablesService.after_sync_request, String(this.variablesService.currentWallet.wallet_id))) {\n after_sync_request = this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id];\n }\n if (after_sync_request && !this.variablesService.sync_started) {\n // if user click on the wallet at the first time after restore.\n this.getRecentTransfers();\n }\n\n if (hasOwnProperty(this.variablesService.stop_paginate, String(this.variablesService.currentWallet.wallet_id))) {\n this.stop_paginate = this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id];\n } else {\n this.stop_paginate = false;\n }\n // this will hide pagination a bit earlier\n this.wallet = this.variablesService.getNotLoadedWallet();\n if (this.wallet) {\n this.tick();\n }\n }\n\n resetPaginationValues(): void {\n this._ngZone.run(() => {\n const total_history_item = this.variablesService.currentWallet.total_history_item;\n const count = this.variablesService.count;\n this.variablesService.currentWallet.totalPages = Math.ceil(total_history_item / count);\n this.variablesService.currentWallet.exclude_mining_txs = this.mining;\n this.variablesService.currentWallet.currentPage = 1;\n\n if (!this.variablesService.currentWallet.totalPages) {\n this.variablesService.currentWallet.totalPages = 1;\n }\n this.variablesService.currentWallet.totalPages > this.variablesService.maxPages\n ? (this.variablesService.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (this.variablesService.currentWallet.pages = new Array(this.variablesService.currentWallet.totalPages)\n .fill(1)\n .map((value, index) => value + index));\n });\n }\n\n setPage(pageNumber: number): void {\n // this is will allow pagination for wallets that was open from existed wallets'\n if (pageNumber === this.variablesService.currentWallet.currentPage) {\n return;\n }\n if (this.variablesService.currentWallet.open_from_exist && !this.variablesService.currentWallet.updated) {\n this.variablesService.get_recent_transfers = false;\n this.variablesService.currentWallet.updated = true;\n }\n // if not running get_recent_transfers callback\n if (!this.variablesService.get_recent_transfers) {\n this.variablesService.currentWallet.currentPage = pageNumber;\n }\n if (!this.variablesService.get_recent_transfers) {\n this.getRecentTransfers();\n }\n }\n\n toggleMiningTransactions(): void {\n if (!this.variablesService.sync_started && !this.wallet) {\n const value = this._paginationStore.value;\n if (!value) {\n this._paginationStore.setPage(1, 0, this.variablesService.currentWallet.wallet_id); // add back page for the first page\n } else {\n const pages = value.filter(item => item.walletID === this.variablesService.currentWallet.wallet_id);\n if (pages.length === 0) {\n this._paginationStore.setPage(1, 0, this.variablesService.currentWallet.wallet_id); // add back page for the first page\n }\n }\n this.mining = !this.mining;\n this.resetPaginationValues();\n this.getRecentTransfers();\n }\n }\n\n getRecentTransfers(): void {\n const offset = this._pagination.getOffset(this.variablesService.currentWallet.wallet_id);\n const value = this._paginationStore.value;\n const pages = value ? value.filter(item => item.walletID === this.variablesService.currentWallet.wallet_id) : [];\n this._backendService.getRecentTransfers(\n this.variablesService.currentWallet.wallet_id,\n offset,\n this.variablesService.count,\n this.variablesService.currentWallet.exclude_mining_txs,\n (status, data) => {\n const isForward = this._paginationStore.isForward(pages, this.variablesService.currentWallet.currentPage);\n if (this.mining && isForward && pages && pages.length === 1) {\n this.variablesService.currentWallet.currentPage = 1; // set init page after navigation back\n }\n\n const history = data && data.history;\n this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id] =\n (history && history.length < this.variablesService.count) || !history;\n this.stop_paginate = this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id];\n if (!this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id]) {\n const page = this.variablesService.currentWallet.currentPage + 1;\n if (isForward && this.mining && history && history.length === this.variablesService.count) {\n this._paginationStore.setPage(page, data.last_item_index, this.variablesService.currentWallet.wallet_id); // add back page for current page\n }\n }\n\n this._pagination.calcPages(data);\n this._pagination.prepareHistory(data, status);\n\n this._ngZone.run(() => {\n this.variablesService.get_recent_transfers = false;\n if (hasOwnProperty(this.variablesService.after_sync_request, String(this.variablesService.currentWallet.wallet_id))) {\n // this is will complete get_recent_transfers request\n // this will switch of\n this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id] = false;\n }\n });\n }\n );\n }\n\n tick(): void {\n const walletInterval = setInterval(() => {\n this.wallet = this.variablesService.getNotLoadedWallet();\n if (!this.wallet) {\n clearInterval(walletInterval);\n }\n }, 1000);\n }\n\n toggleTransactionDetails(tx_hash: string): void {\n if (tx_hash === this.opened_transaction_details) {\n this.opened_transaction_details = undefined;\n } else {\n this.opened_transaction_details = tx_hash;\n }\n }\n}\n","
\n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n 0\"\n >\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n\n
\n\n \n \n \n\n \n \n \n
\n
{{ 'HISTORY.STATUS' | translate }}
\n
\n
{{ 'HISTORY.AMOUNT' | translate }}
\n
\n
{{ 'HISTORY.FEE' | translate }}
\n
\n
{{ 'HISTORY.ADDRESS' | translate }}
\n
\n
{{ 'HISTORY.DATE' | translate }}
\n
\n \n \n \n
\n
{{ item.amount }}
\n {{ item.ticker }}\n
\n
\n
\n
\n \n \n \n\n {{ transaction.fee | intToMoney }}\n {{ variablesService.defaultTicker }}\n \n\n \n {{ 'HISTORY.NO_FEE' | translate }}\n \n \n
\n
\n \n \n
\n \n {{ transaction | historyTypeMessages }}\n \n
\n
\n\n \n \n \n {{ transaction.remote_addresses[0] | zanoShortString }}\n \n \n \n
\n \n \n = 1 && alias.length <= 5\"\n [class.mb-0_5]=\"transaction.remote_aliases.length >= 2\"\n [class.mr-0_5]=\"transaction.remote_aliases.length >= 2\"\n class=\"alias\"\n fxLayout=\"row inline\"\n >\n {{ '@' + alias }}\n
\n
\n
\n \n
\n \n\n \n {{ 'HISTORY.HIDDEN' | translate }}\n \n \n
\n
\n {{ transaction.timestamp * 1000 | date : 'dd-MM-yyyy HH:mm' }}\n
\n
\n \n
\n
\n\n
\n
\n
\n \n \n \n\n \n \n {{ page }}\n \n \n\n \n \n {{ variablesService.currentWallet.currentPage }}\n \n \n\n \n \n \n
\n
\n Hide mining transactions\n \n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport QRCode from 'qrcode';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { RCV_ADDR_QR_SCALE } from '@parts/data/constants';\n\n@Component({\n selector: 'app-receive',\n template: `\n
\n
\n \"qr-code\"\n
\n\n \n {{ variablesService.currentWallet.address | zanoShortString : 9 : 9 }}\n \n
\n \n `,\n styles: [\n `\n :host {\n width: 100%;\n }\n `,\n ],\n})\nexport class ReceiveComponent implements OnInit {\n qrImageSrc: string;\n\n constructor(public variablesService: VariablesService) {}\n\n ngOnInit(): void {\n QRCode.toDataURL(this.variablesService.currentWallet.address, {\n width: 200 * RCV_ADDR_QR_SCALE,\n height: 200 * RCV_ADDR_QR_SCALE,\n })\n .then(url => {\n this.qrImageSrc = url;\n })\n .catch(err => {\n console.error(err);\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {\n AsyncCommandResults,\n BackendService,\n CurrentActionState,\n ResponseAsyncTransfer,\n StatusCurrentActionState,\n} from '@api/services/backend.service';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { BLOCK_EXPLORER_TN_TX_URL_PREFIX, BLOCK_EXPLORER_TX_URL_PREFIX } from '@parts/data/constants';\n\nconst successfulStatuses: string[] = [\n StatusCurrentActionState.STATE_SENDING,\n StatusCurrentActionState.STATE_SENT_SUCCESS,\n StatusCurrentActionState.STATE_INITIALIZING,\n StatusCurrentActionState.STATE_DOWNLOADING_CONSENSUS,\n StatusCurrentActionState.STATE_MAKING_TUNNEL_A,\n StatusCurrentActionState.STATE_MAKING_TUNNEL_B,\n StatusCurrentActionState.STATE_CREATING_STREAM,\n StatusCurrentActionState.STATE_SUCCESS,\n];\n\nconst failedStatuses: string[] = [StatusCurrentActionState.STATE_SEND_FAILED, StatusCurrentActionState.STATE_FAILED];\n\n@Component({\n selector: 'app-send-details-modal',\n templateUrl: './send-details-modal.component.html',\n styleUrls: ['./send-details-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SendDetailsModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n @Input() job_id: number;\n\n @Output() eventClose = new EventEmitter();\n\n @ViewChild('elDetailsList', { static: true }) elDetailsList: ElementRef;\n\n responseData$ = new BehaviorSubject(null);\n\n stateDetails$ = new BehaviorSubject(false);\n\n currentActionState$ = new BehaviorSubject(null);\n\n currentActionStates$ = new BehaviorSubject([]);\n\n success = false;\n\n private destroy$: Subject = new Subject();\n\n constructor(private backendService: BackendService, private variablesService: VariablesService, private renderer: Renderer2) {}\n\n get currentActionState(): CurrentActionState {\n return this.currentActionState$.value;\n }\n\n get currentActionStates(): CurrentActionState[] {\n return this.currentActionStates$.value;\n }\n\n get isSentSuccess(): boolean {\n return this.currentActionState && this.currentActionState.status === StatusCurrentActionState.STATE_SENT_SUCCESS;\n }\n\n get isSentFailed(): boolean {\n return this.currentActionState && this.currentActionState.status === StatusCurrentActionState.STATE_SEND_FAILED;\n }\n\n get isDetailsNotEmpty(): boolean {\n return !!(this.responseData$.value || this.currentActionStates$.value.length > 0);\n }\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n const {\n currentWallet: { wallet_id },\n settings: { appUseTor },\n } = this.variablesService;\n\n if (appUseTor) {\n this.backendService.handleCurrentActionState$.pipe(filter(Boolean), takeUntil(this.destroy$)).subscribe({\n next: (currentActionState: CurrentActionState) => {\n this.currentActionState$.next(currentActionState);\n this.currentActionStates$.next([...this.currentActionStates, currentActionState]);\n },\n });\n } else {\n const actionState: CurrentActionState = {\n status: StatusCurrentActionState.STATE_INITIALIZING,\n wallet_id,\n };\n this.currentActionState$.next(actionState);\n this.currentActionStates$.next([...this.currentActionStates, actionState]);\n }\n\n this.backendService.dispatchAsyncCallResult$\n .pipe(\n filter(Boolean),\n filter(({ job_id, response }: AsyncCommandResults) => this.job_id === job_id && !!response),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: ({ response }: AsyncCommandResults) => {\n const { response_data } = response;\n const success = response_data?.success ?? false;\n this.success = success;\n\n const actionState: CurrentActionState = {\n status: success ? StatusCurrentActionState.STATE_SENT_SUCCESS : StatusCurrentActionState.STATE_SEND_FAILED,\n wallet_id,\n };\n this.currentActionState$.next(actionState);\n this.currentActionStates$.next([...this.currentActionStates, actionState]);\n\n this.responseData$.next(response);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n toggleDetails(): void {\n this.stateDetails$.next(!this.stateDetails$.value);\n setTimeout(() => this.scrollToBottomDetailsList(), 100);\n }\n\n trackBy(index: number): number {\n return index;\n }\n\n isSuccess(action: CurrentActionState): boolean {\n return successfulStatuses.includes(action && action.status);\n }\n\n isFailed(action: CurrentActionState): boolean {\n return failedStatuses.includes(action && action.status);\n }\n\n private scrollToBottomDetailsList(): void {\n if (this.elDetailsList) {\n const { nativeElement } = this.elDetailsList;\n nativeElement.scrollTop = nativeElement.scrollHeight;\n }\n }\n\n openInBrowser(hash: string): void {\n this.backendService.openUrlInBrowser(\n (this.variablesService.testnet ? BLOCK_EXPLORER_TN_TX_URL_PREFIX : BLOCK_EXPLORER_TX_URL_PREFIX) + hash\n );\n }\n}\n","
\n
\n

\n {{ 'SEND_DETAILS_MODAL.TITLE1' | translate }}\n

\n\n
\n
\n
\n \"success\"\n
\n\n
\n \"failed\"\n
\n\n
\n\n

\n {{\n (currentActionState ? 'TOR_LIB_STATE' + '.' + currentActionState.status : 'TOR_LIB_STATE.STATE_INITIALIZING')\n | translate\n }}\n {{ !isSentSuccess && !isSentFailed ? '...' : '' }}\n

\n\n \n \n \n
\n\n
\n \n

\n {{ 'SEND_DETAILS_MODAL.TITLE2' | translate }}\n

\n \n
\n \n
    \n \n {{ 'TOR_LIB_STATE' + '.' + action?.status | translate\n }}{{ last && !isSentSuccess && !isSentFailed ? '...' : '' }}\n \n \"success\"\n\n \"failed\"\n \n\n \n \n\n \n \n \n\n \n
  • \n \n tx id: {{ data.response_data.tx_hash || '---' }}\n \n \n \n
  • \n
  • \n
    \n tx size:\n {{ data.response_data.tx_blob_size }}\n bytes\n
    \n
  • \n
  • \n \n
  • \n
    \n
\n
\n
\n
\n
\n \n
\n \n\n\n\n \n \n

{{ prefix }} {{ 'SEND.ERROR_CODES' + '.' + error_code | translate }}

\n
\n \n \n

{{ prefix }} {{ error_code }}

\n
\n
\n
\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n} from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { SendMoneyFormParams } from '@api/models/send-money.model';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ZanoValidators } from '@parts/utils/zano-validators';\nimport { BigNumber } from 'bignumber.js';\nimport { AssetBalance, PriceInfo } from '@api/models/assets.model';\n\n@Component({\n selector: 'app-send-modal',\n templateUrl: './send-modal.component.html',\n styleUrls: ['./send-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SendModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n @Input() sendMoneyParams: SendMoneyFormParams;\n\n @Input() priceInfo: PriceInfo;\n\n @Output() confirmed: EventEmitter = new EventEmitter();\n\n get amount(): string {\n const { amount, isAmountUSD, asset_id } = this.sendMoneyParams;\n const convertedAmountUSD = (): string => {\n let usd = 0;\n\n if (typeof this.priceInfo.data === 'object') {\n const { data } = this.priceInfo;\n usd = data.usd;\n }\n\n let decimal_point = 0;\n\n const { currentWallet } = this.variablesService;\n const asset: AssetBalance | undefined = currentWallet.getBalanceByAssetId(asset_id);\n\n if (asset) {\n const { asset_info } = asset;\n decimal_point = asset_info.decimal_point;\n }\n\n const convertedAmount = new BigNumber(amount || 0).dividedBy(usd || 0).decimalPlaces(decimal_point);\n\n return convertedAmount.toString();\n };\n\n return isAmountUSD ? convertedAmountUSD() : amount;\n }\n\n cdr = inject(ChangeDetectorRef);\n\n fb = inject(NonNullableFormBuilder);\n\n confirmForm = this.fb.group({\n password: this.fb.control(''),\n appPass: this.fb.control(''),\n });\n\n constructor(public variablesService: VariablesService, private renderer: Renderer2) {}\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n const { appPass } = this.variablesService;\n if (appPass) {\n this.confirmForm.controls.appPass.patchValue(appPass, {\n emitEvent: false,\n });\n this.confirmForm.setValidators([ZanoValidators.formMatch('password', 'appPass', 'passwordNotMatch')]);\n this.confirmForm.controls.password.setValidators([Validators.required]);\n this.confirmForm.updateValueAndValidity();\n }\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n beforeSubmit(): void {\n if (this.confirmForm.invalid) {\n this.confirmForm.markAsTouched();\n this.confirmForm.updateValueAndValidity();\n this.cdr.detectChanges();\n return;\n }\n\n this.submit();\n }\n\n submit(): void {\n this.confirmed.emit(true);\n }\n\n onClose(): void {\n this.confirmed.emit(false);\n }\n}\n","
\n
\n
\n

\n {{ 'CONFIRM.TITLE' | translate }}\n

\n\n
\n
\n
\n
\n {{ 'CONFIRM.MESSAGE.SEND' | translate }}\n
\n
\n {{ amount }}\n {{ (sendMoneyParams.asset_id | getAssetInfo)?.ticker || '***' }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM.MESSAGE.FROM' | translate }}\n
\n
\n {{ variablesService.currentWallet.address }}\n
\n
\n\n \n
\n\n
\n
\n {{ 'CONFIRM.MESSAGE.TO' | translate }}\n
\n
{{ sendMoneyParams.address }}
\n
\n
\n\n \n
\n\n
\n
\n {{ 'CONFIRM.MESSAGE.COMMENT' | translate }}\n
\n
{{ sendMoneyParams.comment }}
\n
\n
\n
\n\n
\n \n \n
\n
\n {{ 'LOGIN.FORM_ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n {{ 'LOGIN.FORM_ERRORS.PASS_REQUIRED' | translate }}\n
\n
\n
\n
\n\n
\n \n \n
\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SendModalComponent } from './send-modal/send-modal.component';\nimport { SendDetailsModalComponent } from './send-details-modal/send-details-modal.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { GetAssetInfoPipe } from '@parts/pipes';\nimport { CopyButtonComponent } from '@parts/components/copy-button.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [SendModalComponent, SendDetailsModalComponent],\n imports: [CommonModule, TranslateModule, FlexLayoutModule, ReactiveFormsModule, GetAssetInfoPipe, CopyButtonComponent, MatIconModule],\n exports: [SendModalComponent, SendDetailsModalComponent],\n})\nexport class WalletModalsModule {}\n","import { Component, inject, NgZone, OnDestroy } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, NonNullableFormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BigNumber } from 'bignumber.js';\nimport { MIXIN } from '@parts/data/constants';\nimport { catchError, debounceTime, distinctUntilChanged, map, retry, startWith, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { BehaviorSubject, combineLatest, merge, Observable, of, Subject } from 'rxjs';\nimport { AssetBalance, PriceInfo } from '@api/models/assets.model';\nimport { regExpAliasName } from '@parts/utils/zano-validators';\nimport { insuficcientFunds } from '@parts/utils/zano-errors';\nimport { DeeplinkParams, defaultSendMoneyParams } from '@api/models/wallet.model';\nimport { WrapInfo } from '@api/models/wrap-info';\nimport { WrapInfoService } from '@api/services/wrap-info.service';\nimport { SendMoneyFormParams } from '@api/models/send-money.model';\nimport { defaultImgSrc, ZanoAssetInfo, zanoAssetInfo } from '@parts/data/assets';\nimport { moneyToInt } from '@parts/functions/money-to-int';\nimport { intToMoney } from '@parts/functions/int-to-money';\nimport { TranslateService } from '@ngx-translate/core';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { HttpClient } from '@angular/common/http';\n\ninterface AmountInputParams {\n decimalPoint: number;\n inputTicker: string;\n hintTicker: string;\n hintAmount: string;\n reverseDisabled: boolean;\n}\n\n@Component({\n selector: 'app-send',\n templateUrl: 'send.component.html',\n styles: [\n `\n :host {\n width: 100%;\n }\n `,\n ],\n})\nexport class SendComponent implements OnDestroy {\n job_id: number;\n\n isSendModalState: boolean = false;\n\n isSendDetailsModalState: boolean = false;\n\n wrapInfo: WrapInfo;\n\n loadingWrapInfo$: BehaviorSubject = new BehaviorSubject(true);\n\n isVisibleWrapInfoState$: BehaviorSubject = new BehaviorSubject(false);\n\n aliasAddress: string;\n\n isVisibleAdditionalOptionsState: boolean = false;\n\n variablesService: VariablesService = inject(VariablesService);\n\n wrapInfoService: WrapInfoService = inject(WrapInfoService);\n\n assetItems$: Observable<(AssetBalance & { disabled: boolean })[]> = combineLatest([\n this.variablesService.currentWallet.balances$,\n this.isVisibleWrapInfoState$,\n ]).pipe(\n map(([balances, disabled]) => {\n const items: (AssetBalance & { disabled: boolean })[] = [];\n\n balances.forEach((balance: AssetBalance) => {\n const {\n asset_info: { asset_id },\n } = balance;\n\n if (asset_id === zanoAssetInfo.asset_id) {\n return items.push({ ...balance, disabled: false });\n }\n\n return items.push({ ...balance, disabled });\n });\n\n return items;\n })\n );\n\n lowerCaseDisabled$: BehaviorSubject = new BehaviorSubject(true);\n\n form: FormGroup<{\n wallet_id: FormControl;\n address: FormControl;\n amount: FormControl;\n isAmountUSD: FormControl;\n comment: FormControl;\n asset_id: FormControl;\n mixin: FormControl;\n fee: FormControl;\n push_payer: FormControl;\n hide_receiver: FormControl;\n }>;\n\n addressItems$: Observable;\n\n loadingAddressItems$: BehaviorSubject = new BehaviorSubject(true);\n\n amountInputParams: AmountInputParams = {\n decimalPoint: 0,\n inputTicker: '',\n hintTicker: '',\n hintAmount: '',\n reverseDisabled: false,\n };\n\n errorMessages: { [key: string]: string | undefined } = {\n address: undefined,\n fee: undefined,\n amount: undefined,\n };\n public readonly zanoAssetInfo: ZanoAssetInfo = zanoAssetInfo;\n public priceInfo: PriceInfo = { success: false, data: 'Asset not found' };\n private _priceInfo$: Subject = new Subject();\n private _fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n private _httpClient: HttpClient = inject(HttpClient);\n private _destroy$: Subject = new Subject();\n private _backendService: BackendService = inject(BackendService);\n private _ngZone: NgZone = inject(NgZone);\n private _translateService: TranslateService = inject(TranslateService);\n private _walletsService: WalletsService = inject(WalletsService);\n private _openedWalletItems: string[] = this._walletsService.wallets.map(({ address, alias }) => alias?.name ?? address);\n private _aliasItems: string[] = this.variablesService.aliases.map(({ name }) => name);\n\n constructor() {\n this._getWrapInfo();\n\n this._createForm();\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n updateAddressErrorMessage(): void {\n const {\n controls: { address },\n } = this.form;\n let message: string | undefined;\n\n switch (true) {\n case address.hasError('address_not_valid'): {\n message = 'SEND.FORM_ERRORS.ADDRESS_NOT_VALID';\n break;\n }\n case address.hasError('alias_not_found'): {\n message = 'SEND.FORM_ERRORS.ALIAS_NOT_FOUND';\n break;\n }\n case address.hasError('alias_not_valid'): {\n message = 'SEND.FORM_ERRORS.ALIAS_NOT_VALID';\n break;\n }\n case address.hasError('required'): {\n message = 'ERRORS.REQUIRED';\n break;\n }\n }\n this.errorMessages['address'] = message;\n }\n\n updateAmountErrorMessage(): void {\n const {\n controls: { amount },\n } = this.form;\n let message: string | undefined;\n\n switch (true) {\n case amount.hasError('zero'): {\n message = 'SEND.FORM_ERRORS.AMOUNT_ZERO';\n break;\n }\n case amount.hasError('great_than_unwraped_coins'): {\n message = 'SEND.FORM_ERRORS.GREAT_THAN_UNWRAPPED_COINS';\n break;\n }\n case amount.hasError('less_than_zano_needed'): {\n message = 'SEND.FORM_ERRORS.LESS_THAN_ZANO_NEEDED';\n break;\n }\n case amount.hasError('wrap_info_null'): {\n message = 'SEND.FORM_ERRORS.WRAP_INFO_NULL';\n break;\n }\n case amount.hasError('required'): {\n message = 'ERRORS.REQUIRED';\n break;\n }\n case this.form.hasError('insuficcientFunds'): {\n message = this.form.errors['insuficcientFunds'].errorText;\n break;\n }\n case this.form.hasError('greater_than_maximum_amount'): {\n message = this._translateService.instant('ERRORS.MAX', { max: this.form.errors['greater_than_maximum_amount'].max });\n break;\n }\n case this.form.hasError('asset_not_found'): {\n message = 'ERRORS.ASSET_NOT_FOUND';\n break;\n }\n }\n\n this.errorMessages['amount'] = message;\n }\n\n updateFeeErrorMessage(): void {\n const {\n controls: { fee },\n } = this.form;\n let message: string | undefined;\n\n switch (true) {\n case fee.hasError('less_min'): {\n const { default_fee } = this.variablesService;\n message = this._translateService.instant('SEND.FORM_ERRORS.FEE_MINIMUM', { fee: default_fee });\n break;\n }\n case fee.hasError('required'): {\n message = 'SEND.FORM_ERRORS.FEE_REQUIRED';\n break;\n }\n case fee.hasError('greater_than_max_amount'): {\n const { maximum_value } = this.variablesService;\n const { decimal_point } = zanoAssetInfo;\n const max = intToMoney(maximum_value, decimal_point);\n message = this._translateService.instant('ERRORS.MAX', { max });\n break;\n }\n }\n\n this.errorMessages['fee'] = message;\n }\n\n getSrcByAsset({ asset_info: { asset_id } }: AssetBalance): string {\n switch (asset_id) {\n case zanoAssetInfo.asset_id: {\n return zanoAssetInfo.logo;\n }\n default: {\n return defaultImgSrc;\n }\n }\n }\n\n isVisibleError(control: AbstractControl): boolean {\n return control.invalid && (control.dirty || control.touched);\n }\n\n beforeSubmit(): void {\n this.isSendModalState = true;\n }\n\n handleConfirmed(confirmed: boolean): void {\n this.isSendModalState = false;\n if (confirmed) {\n this.submit();\n }\n }\n\n submit(): void {\n let sendMoneyParams = this.form.getRawValue();\n\n const { address, asset_id, isAmountUSD, hide_receiver } = sendMoneyParams;\n let { amount } = sendMoneyParams;\n\n const { currentWallet } = this.variablesService;\n const asset: AssetBalance | undefined = currentWallet.getBalanceByAssetId(asset_id);\n\n if (asset) {\n const convertedAmountUSD = (): string => {\n let usd = 0;\n\n if (typeof this.priceInfo.data === 'object') {\n const { data } = this.priceInfo;\n usd = data.usd;\n }\n\n let decimal_point = 0;\n\n if (asset) {\n const { asset_info } = asset;\n decimal_point = asset_info.decimal_point;\n }\n\n const convertedAmount = new BigNumber(amount || 0).dividedBy(usd || 0).decimalPlaces(decimal_point);\n\n return convertedAmount.toString();\n };\n\n amount = isAmountUSD ? convertedAmountUSD() : amount;\n\n sendMoneyParams = {\n ...sendMoneyParams,\n amount,\n };\n } else {\n this.form.controls.asset_id.setErrors({\n asset_not_found: true,\n });\n return;\n }\n\n if (address.indexOf('@') === 0) {\n const aliasName = address;\n const { aliases } = this.variablesService;\n const alias = aliases.find(({ name }) => name === aliasName);\n\n if (!alias) {\n this.form.controls.address.setErrors({\n alias_not_found: true,\n });\n return;\n }\n\n sendMoneyParams = {\n ...sendMoneyParams,\n address: alias.address,\n };\n }\n\n // Remove unused param\n delete sendMoneyParams.isAmountUSD;\n\n sendMoneyParams = {\n ...sendMoneyParams,\n // Need to send \"true\" if the value is \"false\" and \"false\" if the value is \"true\"\n hide_receiver: !hide_receiver\n };\n\n this._backendService.sendMoney(sendMoneyParams, (job_id: number) => {\n this._ngZone.run(() => {\n this.job_id = job_id;\n this.isSendDetailsModalState = true;\n this.variablesService.currentWallet.sendMoneyParams = null;\n });\n });\n }\n\n getReceivedValue(): number | BigNumber {\n const {\n controls: {\n amount: { value: amount },\n isAmountUSD: { value: isAmountUSD },\n asset_id: { value: asset_id },\n },\n } = this.form;\n\n const convertedAmountUSD = (): string => {\n let usd = 0;\n\n if (typeof this.priceInfo.data === 'object') {\n const { data } = this.priceInfo;\n usd = data.usd;\n }\n\n let decimal_point = 0;\n const { currentWallet } = this.variablesService;\n const asset: AssetBalance | undefined = currentWallet.getBalanceByAssetId(asset_id);\n\n if (asset) {\n const { asset_info } = asset;\n decimal_point = asset_info.decimal_point;\n }\n\n const convertedAmount = new BigNumber(amount || 0).dividedBy(usd || 0).decimalPlaces(decimal_point);\n\n return convertedAmount.toString();\n };\n const preparedAmount: BigNumber = moneyToInt(isAmountUSD ? convertedAmountUSD() : amount || '0');\n\n const {\n tx_cost: { zano_needed_for_erc20 },\n } = this.wrapInfo;\n const needed: BigNumber = new BigNumber(zano_needed_for_erc20);\n\n if (preparedAmount && needed) {\n return preparedAmount.minus(needed);\n }\n return 0;\n }\n\n handeCloseSendDetailsModal(success: boolean): void {\n this.isSendDetailsModalState = false;\n this.job_id = null;\n\n if (success) {\n const { currentWallet } = this.variablesService;\n const { wallet_id } = currentWallet;\n currentWallet.sendMoneyParams = null;\n\n this.form.reset({ ...defaultSendMoneyParams, wallet_id }, { emitEvent: false });\n }\n }\n\n pasteListenAddressField(event: ClipboardEvent): void {\n event.preventDefault();\n const {\n controls: { address },\n } = this.form;\n const { clipboardData } = event;\n let value: string = clipboardData.getData('Text') ?? '';\n this.lowerCaseDisabled$.next(value.indexOf('@') !== 0);\n\n if (value.indexOf('@') === 0) {\n value = value.toLowerCase();\n }\n\n address.patchValue(value);\n }\n\n trackByFn(index: number, value: string): number | string {\n return value ?? index;\n }\n\n toggleAmountUSD(): void {\n const { isAmountUSD } = this.form.getRawValue();\n this.form.controls.isAmountUSD.patchValue(!isAmountUSD);\n }\n\n private _createForm(): void {\n const { currentWallet, default_fee, maxCommentLength, maximum_value } = this.variablesService;\n\n let params: SendMoneyFormParams;\n\n if (currentWallet.sendMoneyParams) {\n params = currentWallet.sendMoneyParams;\n } else {\n params = {\n ...defaultSendMoneyParams,\n wallet_id: currentWallet.wallet_id,\n fee: default_fee,\n };\n }\n\n if (currentWallet.is_auditable && !currentWallet.is_watch_only) {\n params.hide_receiver = true;\n }\n\n if (currentWallet.is_auditable) {\n params.mixin = 0;\n }\n\n const state = history.state || {};\n const history_asset: AssetBalance = state['asset'];\n\n if (history_asset) {\n const {\n asset_info: { asset_id, decimal_point },\n } = history_asset;\n params.asset_id = asset_id;\n if (params.amount) {\n params.amount = intToMoney(moneyToInt(params.amount, decimal_point), decimal_point);\n }\n }\n\n this.form = this._fb.group(\n {\n wallet_id: this._fb.control(params.wallet_id, {\n validators: [Validators.required],\n }),\n address: this._fb.control(params.address, {\n validators: [\n Validators.required,\n (control: AbstractControl): ValidationErrors | null => {\n this.aliasAddress = '';\n this.isVisibleWrapInfoState$.next(false);\n if (control.value) {\n if (control.value.indexOf('@') !== 0) {\n this._backendService.validateAddress(control.value, (valid_status, data) => {\n this._ngZone.run(() => {\n this.isVisibleWrapInfoState$.next(data.error_code === 'WRAP');\n if (data.error_code === 'WRAP') {\n this.form.controls.asset_id.patchValue(zanoAssetInfo.asset_id);\n }\n\n if (valid_status === false && !this.isVisibleWrapInfoState$.value) {\n control.setErrors(Object.assign({ address_not_valid: true }, control.errors));\n } else {\n if (control.hasError('address_not_valid')) {\n delete control.errors['address_not_valid'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n }\n });\n });\n return control.hasError('address_not_valid') ? { address_not_valid: true } : null;\n } else {\n if (!regExpAliasName.test(control.value)) {\n return { alias_not_valid: true };\n } else {\n this._backendService.getAliasInfoByName(\n control.value.replace('@', ''),\n (alias_status, alias_data) => {\n this._ngZone.run(() => {\n this.aliasAddress = alias_data.address;\n if (alias_status) {\n if (control.hasError('alias_not_found')) {\n delete control.errors['alias_not_found'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n } else {\n control.setErrors(Object.assign({ alias_not_found: true }, control.errors));\n }\n });\n }\n );\n }\n return control.hasError('alias_not_found') ? { alias_not_found: true } : null;\n }\n }\n return null;\n },\n ],\n }),\n amount: this._fb.control(params.amount, {\n validators: [\n Validators.required,\n ({ value }: AbstractControl): ValidationErrors | null => {\n const isZero: boolean = new BigNumber(value).eq(0);\n\n if (isZero) {\n return { zero: true };\n }\n\n return null;\n },\n ],\n }),\n isAmountUSD: this._fb.control(params.isAmountUSD),\n comment: this._fb.control(params.comment, {\n validators: [Validators.maxLength(maxCommentLength)],\n }),\n asset_id: this._fb.control(params.asset_id, {\n validators: [Validators.required],\n }),\n mixin: this._fb.control(\n { value: params.mixin, disabled: currentWallet.is_auditable },\n {\n validators: [Validators.required, Validators.min(0), Validators.max(1000)],\n }\n ),\n fee: this._fb.control(params.fee, {\n validators: [\n Validators.required,\n (control: AbstractControl): ValidationErrors | null => {\n const max: BigNumber = new BigNumber(intToMoney(maximum_value, zanoAssetInfo.decimal_point));\n const amount: BigNumber = new BigNumber(control.value);\n return amount.isGreaterThan(max) ? { greater_than_max_amount: { max: max.toString() } } : null;\n },\n ({ value }: FormControl): ValidationErrors | null => {\n if (new BigNumber(value).isLessThan(default_fee)) {\n return { less_min: true };\n }\n return null;\n },\n ],\n }),\n push_payer: this._fb.control(params.push_payer),\n hide_receiver: this._fb.control({\n value: params.hide_receiver,\n disabled: currentWallet.is_auditable && !currentWallet.is_watch_only,\n }),\n },\n {\n validators: [\n (form: FormGroup): ValidationErrors | null => {\n const asset_id = form.controls.asset_id.value;\n const isAmountUSD = form.controls.isAmountUSD.value;\n\n const convertedAmountUSD = (): BigNumber => {\n let usd = 0;\n if (typeof this.priceInfo.data === 'object') {\n const { data } = this.priceInfo;\n usd = data.usd;\n }\n return new BigNumber(form.controls.amount.value).dividedBy(usd);\n };\n\n const amount: BigNumber = isAmountUSD ? convertedAmountUSD() : new BigNumber(form.controls.amount.value);\n\n const assetBalance: AssetBalance | undefined = currentWallet.getBalanceByAssetId(asset_id);\n\n if (this.isVisibleWrapInfoState$.value) {\n let error = null;\n\n if (!this.wrapInfo) {\n error = { wrap_info_null: true };\n }\n\n if (amount.isGreaterThan(intToMoney(new BigNumber(this.wrapInfo.unwraped_coins_left)))) {\n error = { great_than_unwraped_coins: true };\n }\n\n if (amount.isLessThan(intToMoney(new BigNumber(this.wrapInfo.tx_cost.zano_needed_for_erc20)))) {\n error = { less_than_zano_needed: true };\n }\n\n if (error) {\n form.controls.amount.setErrors(error);\n }\n }\n\n if (!assetBalance) {\n return {\n asset_not_found: true,\n };\n }\n\n const {\n unlocked,\n asset_info: { decimal_point },\n } = assetBalance;\n\n const maximum_amount_by_decimal_point = intToMoney(this.variablesService.maximum_value, decimal_point);\n if (amount.isGreaterThan(maximum_amount_by_decimal_point)) {\n return { greater_than_maximum_amount: { max: maximum_amount_by_decimal_point } };\n }\n\n const preparedUnlocked = intToMoney(unlocked, decimal_point);\n return amount.isGreaterThan(preparedUnlocked) ? { insuficcientFunds } : null;\n },\n ],\n }\n );\n\n this._listenSendActionData();\n\n this._saveSendMoneyParams();\n\n this._formListeners();\n\n if (currentWallet.sendMoneyParams) {\n this.form.markAllAsTouched();\n this.form.updateValueAndValidity();\n this._updateErrorMessages();\n }\n }\n\n private _formListeners(): void {\n const { currentWallet } = this.variablesService;\n const { controls } = this.form;\n\n combineLatest([\n controls.asset_id.valueChanges.pipe(startWith(controls.asset_id.value)),\n controls.isAmountUSD.valueChanges.pipe(startWith(controls.isAmountUSD.value), distinctUntilChanged()),\n controls.amount.valueChanges.pipe(startWith(controls.amount.value)),\n this._priceInfo$,\n ])\n .pipe(\n map(([asset_id, isAmountUSD, amount, priceInfo]) => {\n const { decimal_point, ticker } = currentWallet.getBalanceByAssetId(asset_id)?.asset_info ?? {};\n\n const params: AmountInputParams = {\n decimalPoint: decimal_point,\n inputTicker: ticker,\n hintTicker: 'USD',\n hintAmount: '0',\n reverseDisabled: false,\n };\n\n const { success } = priceInfo;\n\n if (success) {\n const { data } = priceInfo;\n\n let usd = 0;\n\n if (typeof data === 'object') {\n usd = data.usd;\n }\n\n if (isAmountUSD) {\n params.decimalPoint = 2;\n params.inputTicker = 'USD';\n params.hintTicker = ticker;\n params.hintAmount = `~ ${new BigNumber(+amount ?? 0).dividedBy(usd ?? 0).decimalPlaces(decimal_point)}`;\n } else {\n params.decimalPoint = decimal_point;\n params.inputTicker = ticker;\n params.hintTicker = 'USD';\n params.hintAmount = `~ ${new BigNumber(usd ?? 0).multipliedBy(+amount ?? 0).decimalPlaces(2)}`;\n }\n } else {\n params.reverseDisabled = true;\n controls.isAmountUSD.patchValue(false);\n }\n\n return params;\n })\n )\n .pipe(takeUntil(this._destroy$))\n .subscribe({\n next: params => {\n this.amountInputParams = params;\n },\n });\n\n controls.asset_id.valueChanges\n .pipe(\n startWith(controls.asset_id.value),\n switchMap(asset_id => {\n const default$ = of({\n success: false,\n data: 'Asset not found',\n });\n const price$ = this._httpClient.get(`https://explorer.zano.org/api/price?asset_id=${asset_id}`).pipe(\n retry(5),\n catchError((err: Error) => {\n return default$;\n })\n );\n return zanoAssetInfo.asset_id === asset_id ? price$ : default$;\n }),\n takeUntil(this._destroy$)\n )\n .subscribe({\n next: (value: PriceInfo) => {\n this.priceInfo = value;\n this._priceInfo$.next(value);\n\n this.form.controls.amount.updateValueAndValidity({ emitEvent: false });\n },\n });\n\n merge(controls.address.statusChanges, controls.address.valueChanges)\n .pipe(takeUntil(this._destroy$))\n .subscribe((): void => this.updateAddressErrorMessage());\n\n merge(controls.amount.statusChanges, controls.amount.valueChanges, this.form.statusChanges, this.form.valueChanges)\n .pipe(takeUntil(this._destroy$))\n .subscribe((): void => this.updateAmountErrorMessage());\n\n merge(controls.fee.statusChanges, controls.fee.valueChanges)\n .pipe(takeUntil(this._destroy$))\n .subscribe((): void => this.updateFeeErrorMessage());\n\n this.addressItems$ = controls.address.valueChanges.pipe(\n startWith(controls.address.value),\n tap(value => {\n const condition = value[0] === '@';\n this.lowerCaseDisabled$.next(!condition);\n this.loadingAddressItems$.next(condition);\n }),\n debounceTime(250),\n map(value => {\n if (!value?.length) {\n return this._openedWalletItems;\n }\n if (value[0] === '@') {\n return this._aliasItems.filter(name => {\n return name.includes(value);\n });\n }\n return [];\n }),\n tap(() => this.loadingAddressItems$.next(false))\n );\n }\n\n private _updateErrorMessages(): void {\n this.updateAddressErrorMessage();\n this.updateAmountErrorMessage();\n this.updateFeeErrorMessage();\n }\n\n private _saveSendMoneyParams(): void {\n const { valueChanges } = this.form;\n const { currentWallet } = this.variablesService;\n valueChanges.pipe(debounceTime(200), takeUntil(this._destroy$)).subscribe({\n next: (): void => {\n currentWallet.sendMoneyParams = this.form.getRawValue();\n },\n });\n }\n\n private _getWrapInfo(): void {\n this.wrapInfoService\n .getWrapInfo()\n .pipe(\n tap(() => this.loadingWrapInfo$.next(true)),\n retry(5),\n takeUntil(this._destroy$)\n )\n .subscribe({\n next: (wrapInfo: WrapInfo) => {\n this.wrapInfo = wrapInfo;\n this.loadingWrapInfo$.next(false);\n },\n error: () => {\n this.loadingWrapInfo$.next(false);\n },\n complete: () => {\n this.loadingWrapInfo$.next(false);\n },\n });\n }\n\n private _listenSendActionData(): void {\n this.variablesService.sendActionData$.pipe(takeUntil(this._destroy$)).subscribe({\n next: (value: DeeplinkParams) => {\n if (value && value.action === 'send') {\n const { address, amount, comment, comments, mixins, fee, hide_sender, hide_receiver } = value;\n this.isVisibleAdditionalOptionsState = true;\n this.form.patchValue({\n address,\n amount: amount || null,\n comment: comment || comments || '',\n mixin: +mixins || MIXIN,\n asset_id: zanoAssetInfo.asset_id,\n fee: fee || this.variablesService.default_fee,\n push_payer: hide_sender === 'false',\n hide_receiver: hide_receiver === 'false',\n });\n this.variablesService.sendActionData$.next({});\n }\n },\n });\n }\n}\n","
\n
\n
\n \n \n
\n \n\n \n\n \n \n \n \n\n \n Not found aliases \n \n\n \n \n \n \n = 2 && item.length <= 6,\n 'pl-1': item.length > 6\n }\"\n class=\"alias\"\n >\n {{ item }}\n
\n \n \n \n {{ item | zanoShortString }}\n \n \n \n \n\n
\n {{ errorMessages['address'] | translate }}\n
\n\n
\n {{ aliasAddress | zanoShortString }}\n
\n
\n \n\n \n
\n \n\n \n\n \n\n \n
\n {{ amountInputParams.inputTicker }}\n
\n
\n\n
{{ amountInputParams.hintAmount }}\n {{ amountInputParams.hintTicker }}\n
\n\n \n
\n {{ message | translate }}\n
\n
\n
\n \n\n \n
\n \n \n
\n
\n {{ 'SEND.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n
\n\n \n \n
\n
\n {{ 'SEND.WRAP.TITLE' | translate }}\n \n
\n
\n {{ 'SEND.WRAP.MAIN_TEXT' | translate }}\n
\n
{{ 'SEND.WRAP.ESTIMATE' | translate }}
\n \n \n \n \n \n \n \n \n \n \n
{{ 'SEND.WRAP.WILL_RECEIVE' | translate }}\n {{ getReceivedValue() | intToMoney }}\n {{ 'SEND.WRAP.wZANO' | translate }}\n -
{{ 'SEND.WRAP.FEE' | translate }}\n {{ wrapInfo?.tx_cost?.zano_needed_for_erc20 | intToMoney : zanoAssetInfo.decimal_point }}\n {{ 'SEND.WRAP.ZANO' | translate }}\n ({{ '$' + wrapInfo.tx_cost?.usd_needed_for_erc20 }})\n
\n
\n
\n\n \n
\n \n \n \n \n {{ asset.asset_info.full_name ?? '***' }}\n \n ({{ asset.total | intToMoney : asset.asset_info.decimal_point }} {{ asset.asset_info.ticker }})\n \n \n \n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ 'ERRORS.MAX_DECIMAL_POINT' | translate : { max: form.errors['max_decimal_point'].max } }}\n
\n
\n
\n\n \n
\n \n {{ 'SEND.DETAILS' | translate }}\n \n \n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
\n \n \n
\n {{ errorMessages['fee'] | translate }}\n
\n
\n \n\n \n \n\n \n \n
\n
\n\n \n \n\n\n\n\n\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Chart } from 'angular-highcharts';\nimport { BackendService } from '@api/services/backend.service';\nimport { IntToMoneyPipe } from '@parts/pipes/int-to-money-pipe/int-to-money.pipe';\nimport { BigNumber } from 'bignumber.js';\nimport { combineLatest, skip, Subject, Subscription } from 'rxjs';\nimport * as Highcharts from 'highcharts';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { NonNullableFormBuilder } from '@angular/forms';\n\ntype TPeriod = '1 week' | '2 week' | '1 month' | '3 month' | '6 month' | '1 year' | 'All';\n\ntype TGroup = 'day' | 'week' | 'month';\n\ninterface IPeriodItem {\n title: string;\n value: TPeriod;\n}\n\ninterface IGroupItem {\n title: string;\n value: TGroup;\n}\n\nconst periodItems: IPeriodItem[] = [\n {\n title: 'STAKING.PERIOD.WEEK1',\n value: '1 week',\n },\n {\n title: 'STAKING.PERIOD.WEEK2',\n value: '2 week',\n },\n {\n title: 'STAKING.PERIOD.MONTH1',\n value: '1 month',\n },\n {\n title: 'STAKING.PERIOD.MONTH3',\n value: '3 month',\n },\n {\n title: 'STAKING.PERIOD.MONTH6',\n value: '6 month',\n },\n {\n title: 'STAKING.PERIOD.YEAR',\n value: '1 year',\n },\n {\n title: 'STAKING.PERIOD.ALL',\n value: 'All',\n },\n];\n\nconst groupItems: IGroupItem[] = [\n {\n title: 'STAKING.GROUP.DAY',\n value: 'day',\n },\n {\n title: 'STAKING.GROUP.WEEK',\n value: 'week',\n },\n {\n title: 'STAKING.GROUP.MONTH',\n value: 'month',\n },\n];\n\n@Component({\n selector: 'app-staking',\n templateUrl: './staking.component.html',\n styles: [\n `\n :host {\n width: 100%;\n height: auto;\n }\n `,\n ],\n})\nexport class StakingComponent implements OnInit, OnDestroy {\n public chart: Chart;\n\n public total: BigNumber = new BigNumber(0);\n\n public pending = {\n list: [],\n total: new BigNumber(0),\n };\n\n public themeChangesSubscription: Subscription;\n\n public readonly variablesService: VariablesService = inject(VariablesService);\n\n get isShowStagingSwitch(): boolean {\n const {\n currentWallet: { is_watch_only, is_auditable },\n } = this.variablesService;\n const condition1: boolean = !is_auditable && !is_watch_only;\n const condition2: boolean = is_auditable && !is_watch_only;\n return condition1 || condition2;\n }\n\n get isShowPointerDetails(): boolean {\n const { date, amount } = this.pointDetails;\n return date !== null && amount !== null;\n }\n\n public periodItems: IPeriodItem[] = periodItems;\n\n public groupItems: IGroupItem[] = groupItems;\n\n private readonly _fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n public readonly filtersForm = this._fb.group({\n group: this._fb.control('day'),\n period: this._fb.control('All'),\n });\n\n public pointDetails: { date: string; amount: any } = {\n date: null,\n amount: null,\n };\n\n public originalData = [];\n\n private readonly _destroy$: Subject = new Subject();\n\n private readonly _backendService: BackendService = inject(BackendService);\n\n private readonly _ngZone: NgZone = inject(NgZone);\n\n private readonly _intToMoneyPipe: IntToMoneyPipe = inject(IntToMoneyPipe);\n\n ngOnInit(): void {\n const { settings } = this.variablesService;\n\n const savedStakingFilters = settings.filters.stakingFilters;\n\n if (savedStakingFilters) {\n this.filtersForm.patchValue(savedStakingFilters);\n }\n\n this.getMiningHistory();\n\n this.variablesService.getHeightAppEvent.pipe(takeUntil(this._destroy$)).subscribe({\n next: (newHeight: number) => {\n if (!this.pending.total.isZero()) {\n const pendingCount = this.pending.list.length;\n for (let i = pendingCount - 1; i >= 0; i--) {\n if (newHeight - this.pending.list[i].h >= 10) {\n this.pending.list.splice(i, 1);\n }\n }\n if (pendingCount !== this.pending.list.length) {\n this.pending.total = new BigNumber(0);\n for (let i = 0; i < this.pending.list.length; i++) {\n this.pending.total = this.pending.total.plus(this.pending.list[i].a);\n }\n }\n }\n },\n });\n\n this.variablesService.daemon_state$.pipe(filter((daemon_state: number) => daemon_state === 3), skip(1)).subscribe({\n next: () => {\n this.getMiningHistory();\n this.changePeriod();\n }\n });\n\n this.filtersForm.valueChanges.pipe(takeUntil(this._destroy$)).subscribe({\n next: () => {\n settings.filters.stakingFilters = this.filtersForm.getRawValue();\n this.changePeriod();\n },\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n drawChart(data): void {\n this.chart = new Chart({\n title: { text: '' },\n credits: { enabled: false },\n exporting: { enabled: false },\n legend: { enabled: false },\n chart: {\n type: 'line',\n backgroundColor: 'transparent',\n height: null,\n events: {\n load: (): void => {\n this.changePeriod();\n },\n },\n },\n\n yAxis: {\n min: 0,\n tickAmount: 5,\n title: {\n text: '',\n },\n gridLineColor: '#2b3644',\n gridLineWidth: 2,\n lineColor: '#2b3644',\n lineWidth: 2,\n tickWidth: 2,\n tickLength: 120,\n tickColor: '#2b3644',\n labels: {\n y: -8,\n align: 'left',\n x: -120,\n style: {\n color: '#e0e0e0',\n fontSize: '13px',\n },\n format: '{value} ' + this.variablesService.defaultTicker,\n },\n },\n\n xAxis: {\n type: 'datetime',\n gridLineColor: '#2b3644',\n lineColor: '#2b3644',\n lineWidth: 2,\n tickWidth: 2,\n tickLength: 10,\n tickColor: '#2b3644',\n labels: {\n style: {\n color: '#e0e0e0',\n fontSize: '13px',\n },\n },\n minPadding: 0,\n maxPadding: 0,\n minRange: 86400000, // tickInterval: 86400000,\n minTickInterval: 3600000,\n },\n\n tooltip: {\n enabled: false,\n },\n\n plotOptions: {\n area: {\n fillColor: {\n linearGradient: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 1,\n },\n stops: [\n [0, 'rgba(124,181,236,0.2)'],\n [1, 'rgba(124,181,236,0)'],\n ],\n },\n marker: {\n enabled: false,\n radius: 2,\n },\n lineWidth: 2,\n threshold: null,\n },\n\n series: {\n point: {\n events: {\n mouseOver: (obj): void => {\n this.pointDetails.date = obj.target['x'];\n this.pointDetails.amount = obj.target['y'];\n },\n },\n },\n events: {\n mouseOut: (): void => {\n this.pointDetails.date = null;\n this.pointDetails.amount = null;\n },\n },\n },\n },\n series: [\n {\n type: 'area',\n data: data,\n },\n ],\n });\n }\n\n getMiningHistory(): void {\n if (this.variablesService.currentWallet.loaded) {\n this._backendService.getMiningHistory(this.variablesService.currentWallet.wallet_id, (status, data) => {\n this.total = new BigNumber(0);\n this.pending.list = [];\n this.pending.total = new BigNumber(0);\n this.originalData = [];\n if (data.mined_entries) {\n data.mined_entries.forEach((item, key) => {\n if (item.t.toString().length === 10) {\n data.mined_entries[key].t = new Date(item.t * 1000).setUTCMilliseconds(0);\n }\n });\n data.mined_entries.forEach(item => {\n this.total = this.total.plus(item.a);\n if (this.variablesService.height_app - item.h < 10) {\n this.pending.list.push(item);\n this.pending.total = this.pending.total.plus(item.a);\n }\n this.originalData.push([parseInt(item.t, 10), parseFloat(this._intToMoneyPipe.transform(item.a))]);\n });\n this.originalData = this.originalData.sort(function (a, b) {\n return a[0] - b[0];\n });\n }\n this._ngZone.run(() => {\n this.drawChart([]);\n\n this.themeChangesSubscription?.unsubscribe();\n this.themeChangesSubscription = combineLatest([this.chart.ref$, this.variablesService.isDarkTheme$])\n .pipe(takeUntil(this._destroy$))\n .subscribe({\n next: ([ref, isDarkTheme]) => {\n let option: Highcharts.Options = {};\n\n if (isDarkTheme) {\n option = {\n ...option,\n plotOptions: {\n area: {\n fillColor: {\n linearGradient: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 1,\n },\n stops: [\n [0, 'rgba(124,181,236,0.2)'],\n [1, 'rgba(124,181,236,0)'],\n ],\n },\n marker: {\n enabled: false,\n radius: 2,\n },\n lineWidth: 2,\n threshold: null,\n },\n },\n yAxis: {\n gridLineColor: '#2b3644',\n lineColor: '#2b3644',\n tickColor: '#2b3644',\n labels: {\n style: {\n color: '#e0e0e0',\n },\n },\n },\n xAxis: {\n gridLineColor: '#2b3644',\n lineColor: '#2b3644',\n tickColor: '#2b3644',\n labels: {\n style: {\n color: '#e0e0e0',\n },\n },\n },\n };\n } else {\n option = {\n ...option,\n plotOptions: {\n area: {\n color: '#1F8FEB',\n marker: {\n enabled: false,\n radius: 2,\n },\n lineWidth: 2,\n threshold: null,\n },\n },\n yAxis: {\n gridLineColor: '#1F8FEB20',\n lineColor: '#1F8FEB20',\n tickColor: '#1F8FEB20',\n labels: {\n style: {\n color: '#0C0C3A',\n },\n },\n },\n xAxis: {\n gridLineColor: '#1F8FEB20',\n lineColor: '#1F8FEB20',\n tickColor: '#1F8FEB20',\n labels: {\n style: {\n color: '#0C0C3A',\n },\n },\n },\n };\n }\n\n ref.update(option, true);\n },\n });\n });\n });\n }\n }\n\n changePeriod(): void {\n if (!this.chart) {\n return;\n }\n\n const d = new Date();\n let min = null;\n const newData = [];\n\n const { group, period } = this.filtersForm.getRawValue();\n\n const makeGroupTime = (value: TGroup, date): number => {\n if (value === 'day') {\n return date.setHours(0, 0, 0, 0);\n } else if (value === 'week') {\n return new Date(date.setDate(date.getDate() - date.getDay())).setHours(0, 0, 0, 0);\n } else {\n return new Date(date.setDate(1)).setHours(0, 0, 0, 0);\n }\n };\n\n if (period === '1 week') {\n this.originalData.forEach(item => {\n const time = makeGroupTime(group, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 7, 0, 0, 0, 0);\n } else if (period === '2 week') {\n this.originalData.forEach(item => {\n const time = makeGroupTime(group, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 14, 0, 0, 0, 0);\n } else if (period === '1 month') {\n this.originalData.forEach(item => {\n const time = makeGroupTime(group, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth() - 1, d.getDate(), 0, 0, 0, 0);\n } else if (period === '3 month') {\n this.originalData.forEach(item => {\n const time = makeGroupTime(group, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth() - 3, d.getDate(), 0, 0, 0, 0);\n } else if (period === '6 month') {\n this.originalData.forEach(item => {\n const time = makeGroupTime(group, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth() - 6, d.getDate(), 0, 0, 0, 0);\n } else if (period === '1 year') {\n this.originalData.forEach(item => {\n const time = makeGroupTime(group, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear() - 1, d.getMonth(), d.getDate(), 0, 0, 0, 0);\n } else {\n this.originalData.forEach(item => {\n const time = makeGroupTime(group, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n }\n\n this.chart.ref?.xAxis[0].setExtremes(min, null);\n }\n}\n","
\n
\n
\n
\n \n
\n \n
\n {{ 'STAKING.TITLE' | translate }}\n
\n\n
\n \n \n
\n
\n \n
\n {{ 'STAKING.TITLE_PENDING' | translate }}\n :\n
\n
\n
\n {{ pending.total | intToMoney }}\n
\n {{ variablesService.defaultTicker }}\n
\n
\n \n
\n {{ 'STAKING.TITLE_TOTAL' | translate }}\n :\n
\n
\n
\n {{ total | intToMoney }}\n
\n {{ variablesService.defaultTicker }}\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{ pointDetails.date | date : 'EEEE, MMMM d, y' }}\n {{ pointDetails.amount }}\n
\n
\n {{ variablesService.defaultTicker }}\n
\n
\n
\n
\n\n \n \n Sort by {{ (item.title | translate | lowercase) + 's' }}\n \n \n {{ item.title | translate }}\n \n \n
\n \n \n
\n
\n
\n
\n
\n {{ pointDetails.date | date : 'EEEE, MMMM d, y' }}\n {{ pointDetails.amount }}\n
\n
\n {{ variablesService.defaultTicker }}\n
\n
\n
\n
\n \n \n\n
\n
\n
\n\n
\n \n \n {{ item.title | translate }}\n \n \n
\n \n\n","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FlexModule } from '@angular/flex-layout';\nimport { GetAssetInfoPipe, IntToMoneyPipeModule } from '@parts/pipes';\nimport { NonNullableFormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ZanoValidators } from '@parts/utils/zano-validators';\nimport { ProposalDetails } from '@api/models/swap.model';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-swap-confirm-master-password',\n standalone: true,\n imports: [CommonModule, FlexModule, ReactiveFormsModule, TranslateModule, IntToMoneyPipeModule, GetAssetInfoPipe, MatDialogModule],\n templateUrl: './swap-confirm-master-password.component.html',\n styleUrls: ['./swap-confirm-master-password.component.scss'],\n})\nexport class SwapConfirmMasterPasswordComponent {\n variablesService: VariablesService = inject(VariablesService);\n\n fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n confirmForm = this.fb.group(\n {\n password: this.fb.control(''),\n appPass: this.fb.control(this.variablesService.appPass || ''),\n },\n { validators: [ZanoValidators.formMatch('password', 'appPass', 'passwordNotMatch')] }\n );\n\n data: { proposalDetails: ProposalDetails } = inject(MAT_DIALOG_DATA);\n}\n","
\n

\n {{ 'CONFIRM.TITLE' | translate }}\n

\n\n \n
\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL1' | translate }}\n
\n
\n \n {{ item.amount | intToMoney : (item.asset_id | getAssetInfo)?.decimal_point }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '***' }}\n
\n
\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL2' | translate }}\n
\n
\n \n {{ item.amount | intToMoney }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '***' }}\n
\n
\n
\n
\n
\n\n
\n \n \n
\n
\n {{ 'LOGIN.FORM_ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n {{ 'LOGIN.FORM_ERRORS.PASS_REQUIRED' | translate }}\n
\n
\n
\n
\n\n \n
\n \n \n
\n
\n
\n","import { Component, ElementRef, inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { Subject } from 'rxjs';\nimport { BLOCK_EXPLORER_TN_TX_URL_PREFIX, BLOCK_EXPLORER_TX_URL_PREFIX } from '@parts/data/constants';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexLayoutModule, FlexModule } from '@angular/flex-layout';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CopyButtonComponent } from '@parts/components/copy-button.component';\n\n@Component({\n selector: 'app-swap-details',\n templateUrl: './swap-details.component.html',\n styleUrls: ['./swap-details.component.scss'],\n standalone: true,\n imports: [CommonModule, MatDialogModule, TranslateModule, FlexModule, MatIconModule, FlexLayoutModule, CopyButtonComponent],\n})\nexport class SwapDetailsComponent implements OnInit, OnDestroy {\n public status: 'loading' | 'success' | 'error' = 'loading';\n\n // public data: { job_id: number } = inject(MAT_DIALOG_DATA);\n\n public data: { response: any } = inject(MAT_DIALOG_DATA);\n\n public details: { result_tx_id: string };\n\n public error: any;\n\n @ViewChild('elDetailsList', { static: true }) elDetailsList: ElementRef;\n\n public isShowDetailsState: boolean = false;\n\n public variablesService: VariablesService = inject(VariablesService);\n\n private _backendService: BackendService = inject(BackendService);\n\n private _destroy$: Subject = new Subject();\n\n ngOnInit(): void {\n // this._backendService.dispatchAsyncCallResult$\n // .pipe(\n // filter(Boolean),\n // filter(({ job_id }: AsyncCommandResults) => this.data.job_id === job_id),\n // takeUntil(this._destroy$)\n // )\n // .subscribe({\n // next: ({ response }) => {\n // if (response.error) {\n // this.status = 'error';\n // this.error = response.error;\n // } else {\n // this.status = 'success';\n // this.details = response.result;\n // }\n // },\n // });\n\n const { response } = this.data;\n if (response.error) {\n this.status = 'error';\n this.error = response.error;\n } else {\n this.status = 'success';\n this.details = response.result;\n }\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n toggleDetails(): void {\n this.isShowDetailsState = !this.isShowDetailsState;\n setTimeout(() => this.scrollToBottomDetailsList(), 100);\n }\n\n private scrollToBottomDetailsList(): void {\n if (this.elDetailsList) {\n const { nativeElement } = this.elDetailsList;\n nativeElement.scrollTop = nativeElement.scrollHeight;\n }\n }\n\n openInBrowser(hash: string): void {\n this._backendService.openUrlInBrowser(\n (this.variablesService.testnet ? BLOCK_EXPLORER_TN_TX_URL_PREFIX : BLOCK_EXPLORER_TX_URL_PREFIX) + hash\n );\n }\n}\n","

\n {{ 'SEND_DETAILS_MODAL.TITLE1' | translate }}\n

\n\n\n
\n
\n \"success\"\n
\n\n
\n \"failed\"\n
\n\n
\n\n

\n {{\n {\n success: 'TOR_LIB_STATE.STATE_SENT_SUCCESS',\n error: 'TOR_LIB_STATE.STATE_SEND_FAILED',\n loading: 'Loading...'\n }[status] | translate\n }}\n

\n
\n\n
\n \n

\n {{ 'SEND_DETAILS_MODAL.TITLE2' | translate }}\n

\n \n
\n \n
    \n \n \n
  • \n \n Result tx: {{ result_tx_id }}\n \n \n \n
  • \n
    \n
    \n \n
  • \n \n Error: {{ error.message || 'Ops... Unknown error...' }}\n \n
  • \n
    \n
\n \n \n
\n\n\n
\n \n
\n
\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { Router, RouterLinkWithHref } from '@angular/router';\nimport { InputValidateModule } from '@parts/directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NonNullableFormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, take, takeUntil } from 'rxjs/operators';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { IntToMoneyPipeModule } from '@parts/pipes';\nimport { SwapConfirmMasterPasswordComponent } from '../../modals/swap-confirm-master-password/swap-confirm-master-password.component';\nimport { ProposalDetails } from '@api/models/swap.model';\nimport { GetAssetInfoPipe } from '@parts/pipes/get-asset-info.pipe';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { SwapDetailsComponent } from '../../modals/swap-details/swap-details.component';\n\n@Component({\n selector: 'app-confirm-swap',\n standalone: true,\n imports: [\n CommonModule,\n BreadcrumbsComponent,\n RouterLinkWithHref,\n InputValidateModule,\n TranslateModule,\n ReactiveFormsModule,\n IntToMoneyPipeModule,\n GetAssetInfoPipe,\n ],\n templateUrl: './confirm-swap.component.html',\n styleUrls: ['./confirm-swap.component.scss'],\n})\nexport class ConfirmSwapComponent implements OnInit, OnDestroy {\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/swap',\n title: 'CONFIRM_SWAP.BREADCRUMBS.ITEM1',\n },\n {\n title: 'CONFIRM_SWAP.BREADCRUMBS.ITEM2',\n },\n ];\n\n errorRpc: { code: number; message: string } | undefined;\n\n variablesService = inject(VariablesService);\n\n fb = inject(NonNullableFormBuilder);\n\n form = this.fb.group({\n hex_raw_proposal: this.fb.control('', [Validators.required]),\n });\n\n proposalDetails: ProposalDetails | undefined;\n\n hex_raw_proposal: string | undefined;\n\n private backendService: BackendService = inject(BackendService);\n\n private router: Router = inject(Router);\n\n private ngZone: NgZone = inject(NgZone);\n\n private _matDialog: MatDialog = inject(MatDialog);\n\n private destroy$ = new Subject();\n\n ngOnInit(): void {\n this.form.controls.hex_raw_proposal.valueChanges\n .pipe(distinctUntilChanged(), debounceTime(500), takeUntil(this.destroy$))\n .subscribe({\n next: (hex_raw_proposal: string) => {\n this.hex_raw_proposal = hex_raw_proposal;\n this.getProposalDetails(hex_raw_proposal);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n swapConfirmMasterPasswordDialog(): void {\n const proposalDetails = this.proposalDetails;\n const config: MatDialogConfig = {\n data: {\n proposalDetails,\n },\n disableClose: true,\n };\n this._matDialog\n .open(SwapConfirmMasterPasswordComponent, config)\n .afterClosed()\n .pipe(filter(Boolean), take(1))\n .subscribe({\n next: () => this.acceptProposal(),\n });\n }\n\n acceptProposal(): void {\n if (!this.hex_raw_proposal) {\n return;\n }\n const { wallet_id } = this.variablesService.currentWallet;\n const hex_raw_proposal = this.hex_raw_proposal;\n\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'ionic_swap_accept_proposal',\n params: { hex_raw_proposal },\n };\n this.backendService.call_wallet_rpc([wallet_id, params], (status, response) => {\n this.ngZone.run(() => {\n const config: MatDialogConfig = {\n data: {\n response,\n },\n disableClose: true,\n };\n this._matDialog\n .open(SwapDetailsComponent, config)\n .afterClosed()\n .pipe(filter(Boolean), take(1))\n .subscribe({\n next: () => this.router.navigate(['/wallet/history']),\n });\n });\n });\n }\n\n private getProposalDetails(hex_raw_proposal: string): void {\n const { wallet_id } = this.variablesService.currentWallet;\n\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'ionic_swap_get_proposal_info',\n params: { hex_raw_proposal },\n };\n\n this.backendService.call_wallet_rpc([wallet_id, params], (status, response_data) => {\n this.ngZone.run(() => {\n const proposal = response_data?.result?.['proposal'];\n if (proposal) {\n this.proposalDetails = proposal;\n this.errorRpc = undefined;\n } else {\n this.proposalDetails = undefined;\n this.errorRpc = response_data.error;\n }\n });\n });\n }\n}\n","
\n \n\n
\n
\n \n \n
\n\n
\n \n
\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL1' | translate }}\n
\n\n
\n

\n {{ item.amount | intToMoney : (item.asset_id | getAssetInfo)?.decimal_point }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '***' }}\n

\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL2' | translate }}\n
\n
\n

\n {{ item.amount | intToMoney : (item.asset_id | getAssetInfo)?.decimal_point }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '***' }}\n

\n
\n
\n
\n
\n\n
\n \n\n \n {{ 'CONFIRM_SWAP.FORM.BUTTONS.BUTTON2' | translate }}\n \n
\n\n
\n {{ 'ERRORS.INVALID_PROPOSAL' | translate }}\n
\n
\n
\n","import { ChangeDetectorRef, Component, inject, NgZone, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router, RouterLinkWithHref } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { DefaultImgModule, InputValidateModule, LowerCaseDirective } from '@parts/directives';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { IntToMoneyPipeModule, MoneyToIntPipeModule, ShortStringPipe } from '@parts/pipes';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { AssetBalance, AssetInfo } from '@api/models/assets.model';\nimport { defaultImgSrc, zanoAssetInfo } from '@parts/data/assets';\nimport { regExpAliasName } from '@parts/utils/zano-validators';\nimport { BackendService } from '@api/services/backend.service';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { debounceTime, map, startWith, tap } from 'rxjs/operators';\nimport { BigNumber } from 'bignumber.js';\nimport { assetHasNotBeenAddedToWallet, insuficcientFunds } from '@parts/utils/zano-errors';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { LoaderComponent } from '@parts/components/loader.component';\nimport { Wallet } from '@api/models/wallet.model';\nimport { intToMoney } from '@parts/functions/int-to-money';\nimport { moneyToInt } from '@parts/functions/money-to-int';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatOptionModule } from '@angular/material/core';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-create-swap',\n standalone: true,\n imports: [\n CommonModule,\n RouterLinkWithHref,\n TranslateModule,\n BreadcrumbsComponent,\n InputValidateModule,\n ReactiveFormsModule,\n DefaultImgModule,\n NgSelectModule,\n LowerCaseDirective,\n ShortStringPipe,\n FormsModule,\n IntToMoneyPipeModule,\n MoneyToIntPipeModule,\n LoaderComponent,\n MatAutocompleteModule,\n MatOptionModule,\n MatIconModule,\n ],\n templateUrl: './create-swap.component.html',\n styleUrls: ['./create-swap.component.scss'],\n})\nexport class CreateSwapComponent implements OnDestroy {\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/swap',\n title: 'CREATE_SWAP.BREADCRUMBS.ITEM1',\n },\n {\n title: 'CREATE_SWAP.BREADCRUMBS.ITEM2',\n },\n ];\n\n variablesService: VariablesService = inject(VariablesService);\n\n fb: FormBuilder = inject(FormBuilder);\n\n aliasAddress: string;\n\n loading$: BehaviorSubject = new BehaviorSubject(false);\n\n lowerCaseDisabled$: BehaviorSubject = new BehaviorSubject(true);\n\n errorRpc: { code: number; message: string } = null;\n\n currentWallet: Wallet = this.variablesService.currentWallet;\n\n allAssetsInfo: AssetInfo[] = this.currentWallet.allAssetsInfo;\n\n sendingAssetsInfo$: Observable;\n\n sendingDecimalPoint$: Observable;\n\n receivingAssetsInfo$: Observable;\n\n receivingDecimalPoint$: Observable;\n\n form: FormGroup<{\n sending: FormGroup<{\n amount: FormControl;\n asset_id: FormControl;\n }>;\n receiving: FormGroup<{\n amount: FormControl;\n asset_id: FormControl;\n }>;\n receiverAddress: FormControl;\n }>;\n\n errorMessages: { [key: string]: string | undefined } = {\n receiverAddress: undefined,\n };\n\n addressItems$: Observable;\n\n loadingAddressItems$: BehaviorSubject = new BehaviorSubject(true);\n\n private _cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n private _walletsService: WalletsService = inject(WalletsService);\n\n private _openedWalletItems: string[] = this._walletsService.wallets.map(({ address, alias }) => alias?.name ?? address);\n\n private _aliasItems: string[] = this.variablesService.aliases.map(({ name }) => name);\n\n private _backendService: BackendService = inject(BackendService);\n\n private _ngZone: NgZone = inject(NgZone);\n\n private _router = inject(Router);\n\n private _destroy$ = new Subject();\n\n constructor() {\n this._createForm();\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n getSrcByAssetInfo({ asset_id }: AssetInfo): string {\n switch (asset_id) {\n case zanoAssetInfo.asset_id: {\n return zanoAssetInfo.logo;\n }\n default: {\n return defaultImgSrc;\n }\n }\n }\n\n isVisibleErrorByControl(control: AbstractControl): boolean {\n return control.invalid && (control.dirty || control.touched);\n }\n\n isVisibleErrorByForm(form: FormGroup): boolean {\n return form.invalid && (form.dirty || form.touched);\n }\n\n reverse(): void {\n const { sending, receiving } = this.form.getRawValue();\n\n const markAllAsTouched = () => {\n this.form.controls.sending.markAllAsTouched();\n this.form.controls.receiving.markAllAsTouched();\n };\n\n markAllAsTouched();\n\n this.form.patchValue({\n sending: receiving,\n receiving: sending,\n });\n this.form.controls.sending.controls.amount.updateValueAndValidity();\n this.form.controls.receiving.controls.amount.updateValueAndValidity();\n }\n\n updateReceiverAddressErrorMessage(): void {\n const {\n controls: { receiverAddress },\n } = this.form;\n let message: string | undefined;\n\n switch (true) {\n case receiverAddress.hasError('address_not_valid'): {\n message = 'SEND.FORM_ERRORS.ADDRESS_NOT_VALID';\n break;\n }\n case receiverAddress.hasError('alias_not_found'): {\n message = 'SEND.FORM_ERRORS.ALIAS_NOT_FOUND';\n break;\n }\n case receiverAddress.hasError('alias_not_valid'): {\n message = 'SEND.FORM_ERRORS.ALIAS_NOT_VALID';\n break;\n }\n case receiverAddress.hasError('required'): {\n message = 'ERRORS.REQUIRED';\n break;\n }\n }\n this.errorMessages['receiverAddress'] = message;\n }\n\n pasteListenReceiverAddressField(event: ClipboardEvent): void {\n event.preventDefault();\n const {\n controls: { receiverAddress },\n } = this.form;\n const { clipboardData } = event;\n let value: string = clipboardData.getData('Text') ?? '';\n this.lowerCaseDisabled$.next(value.indexOf('@') !== 0);\n\n if (value.indexOf('@') === 0) {\n value = value.toLowerCase();\n }\n\n receiverAddress.patchValue(value);\n }\n\n trackByFn(index: number, value: string): number | string {\n return value ?? index;\n }\n\n beforeSubmit(): void {\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n this.form.updateValueAndValidity();\n return;\n }\n this.submit();\n }\n\n submit(): void {\n this.loading$.next(true);\n const { sending, receiving, receiverAddress } = this.form.getRawValue();\n const { wallet_id } = this.variablesService.currentWallet;\n const { default_fee_big } = this.variablesService;\n\n const { currentWallet } = this.variablesService;\n\n const sendingAsset: AssetInfo | undefined = currentWallet.getAssetInfoByAssetId(sending.asset_id);\n const receivingAsset: AssetInfo | undefined = currentWallet.getAssetInfoByAssetId(receiving.asset_id);\n\n if (!sendingAsset) {\n this.form.controls.sending.controls.asset_id.setErrors({\n alias_not_found: true,\n });\n return;\n }\n\n if (!receivingAsset) {\n this.form.controls.receiving.controls.asset_id.setErrors({\n alias_not_found: true,\n });\n return;\n }\n\n const params2: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'ionic_swap_generate_proposal',\n params: {\n proposal: {\n to_finalizer: [\n {\n asset_id: sending.asset_id,\n amount: moneyToInt(sending.amount, sendingAsset.decimal_point),\n },\n ],\n to_initiator: [\n {\n asset_id: receiving.asset_id,\n amount: moneyToInt(receiving.amount, receivingAsset.decimal_point),\n },\n ],\n mixins: 10,\n fee_paid_by_a: default_fee_big,\n expiration_time: 0,\n },\n },\n };\n\n if (receiverAddress.indexOf('@') === 0) {\n const aliasName = receiverAddress;\n const { aliases } = this.variablesService;\n const alias = aliases.find(({ name }) => name === aliasName);\n\n if (!alias) {\n this.form.controls.receiverAddress.setErrors({\n alias_not_found: true,\n });\n return;\n }\n\n params2.params['destination_address'] = alias.address;\n } else {\n params2.params['destination_address'] = receiverAddress;\n }\n\n this._backendService.call_wallet_rpc([wallet_id, params2], (status, response_data) => {\n if (response_data?.result) {\n this._ngZone.run(() => {\n this._router\n .navigateByUrl('/wallet/swap-proposal-hex', {\n state: {\n hex_raw_proposal: response_data.result['hex_raw_proposal'],\n },\n })\n .then();\n });\n } else {\n this._ngZone.run(() => {\n this.errorRpc = response_data.error;\n this.loading$.next(false);\n });\n }\n });\n }\n\n private _formListeners(): void {\n this.sendingAssetsInfo$ = this.form.controls.receiving.controls.asset_id.valueChanges.pipe(\n startWith(this.form.controls.receiving.controls.asset_id.value),\n map(asset_id => this.allAssetsInfo.filter(v => v.asset_id !== asset_id))\n );\n this.receivingAssetsInfo$ = this.form.controls.sending.controls.asset_id.valueChanges.pipe(\n startWith(this.form.controls.sending.controls.asset_id.value),\n map(asset_id => this.allAssetsInfo.filter(v => v.asset_id !== asset_id))\n );\n\n const { currentWallet } = this.variablesService;\n\n this.sendingDecimalPoint$ = this.form.controls.sending.controls.asset_id.valueChanges.pipe(\n startWith(this.form.controls.sending.controls.asset_id.value),\n map((asset_id: string) => {\n return currentWallet.getBalanceByAssetId(asset_id)?.asset_info.decimal_point ?? 0;\n })\n );\n\n this.receivingDecimalPoint$ = this.form.controls.receiving.controls.asset_id.valueChanges.pipe(\n startWith(this.form.controls.receiving.controls.asset_id.value),\n map((asset_id: string) => {\n return currentWallet.getBalanceByAssetId(asset_id)?.asset_info.decimal_point ?? 0;\n })\n );\n\n this.addressItems$ = this.form.controls.receiverAddress.valueChanges.pipe(\n startWith(this.form.controls.receiverAddress.value),\n tap(value => {\n const condition = value[0] === '@';\n this.lowerCaseDisabled$.next(!condition);\n this.loadingAddressItems$.next(condition);\n }),\n debounceTime(250),\n map(value => {\n if (!value?.length) {\n return this._openedWalletItems;\n }\n if (value[0] === '@') {\n return this._aliasItems.filter(name => {\n return name.includes(value);\n });\n }\n return [];\n }),\n tap(() => this.loadingAddressItems$.next(false))\n );\n }\n\n private _createForm(): void {\n this.form = this.fb.group(\n {\n sending: this.fb.group(\n {\n amount: this.fb.control(null, {\n validators: [\n Validators.required,\n ({ value }: FormControl): ValidationErrors | null => {\n const amount: BigNumber = new BigNumber(value);\n\n if (amount.eq(0)) {\n return { zero: true };\n }\n\n return null;\n },\n ],\n }),\n asset_id: this.fb.control(zanoAssetInfo.asset_id, [Validators.required]),\n },\n {\n validators: [\n (form: FormGroup): ValidationErrors | null => {\n const { value: asset_id } = form.get('asset_id');\n const { value: amount } = form.get('amount');\n const preparedAmount = new BigNumber(amount);\n\n const { maximum_value } = this.variablesService;\n if (!asset_id) {\n return null;\n }\n\n const asset: AssetBalance | undefined = this.variablesService.currentWallet.balances?.find(\n v => v.asset_info.asset_id === asset_id\n );\n if (asset) {\n const {\n asset_info: { decimal_point },\n unlocked,\n } = asset;\n const maximum_amount_by_decimal_point = intToMoney(maximum_value, decimal_point);\n if (preparedAmount.isGreaterThan(maximum_amount_by_decimal_point)) {\n return { greater_than_maximum_amount: { max: maximum_amount_by_decimal_point } };\n }\n\n const preparedUnlocked = intToMoney(unlocked, decimal_point);\n return preparedAmount.isGreaterThan(preparedUnlocked) ? { insuficcientFunds } : null;\n } else {\n return { assetHasNotBeenAddedToWallet };\n }\n },\n ],\n }\n ),\n receiving: this.fb.group(\n {\n amount: this.fb.control(\n {\n value: null,\n disabled: this.currentWallet.isEmptyAssetsInfoWhitelist,\n },\n [\n Validators.required,\n (control: FormControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n\n if (control.value === 0) {\n return { zero: true };\n }\n return null;\n },\n ]\n ),\n asset_id: this.fb.control(\n {\n value: this.currentWallet.isEmptyAssetsInfoWhitelist\n ? null\n : this.allAssetsInfo[1].asset_id ?? zanoAssetInfo.asset_id,\n disabled: this.currentWallet.isEmptyAssetsInfoWhitelist,\n },\n [Validators.required]\n ),\n },\n {\n validators: [\n (form: FormGroup): ValidationErrors | null => {\n const asset_id = form.controls.asset_id.value;\n const amount = new BigNumber(form.controls.amount.value);\n if (!asset_id) {\n return null;\n }\n\n const asset: AssetBalance | undefined = this.variablesService.currentWallet.balances?.find(\n v => v.asset_info.asset_id === asset_id\n );\n if (asset) {\n const {\n asset_info: { decimal_point },\n } = asset;\n const maximum_amount_by_decimal_point = intToMoney(this.variablesService.maximum_value, decimal_point);\n if (amount.isGreaterThan(maximum_amount_by_decimal_point)) {\n return { greater_than_maximum_amount: { max: maximum_amount_by_decimal_point } };\n }\n return null;\n } else {\n return { assetHasNotBeenAddedToWallet };\n }\n },\n ],\n }\n ),\n receiverAddress: this.fb.control('', [\n Validators.required,\n (control: FormControl): ValidationErrors | null => {\n this.aliasAddress = '';\n if (control.value) {\n if (control.value.indexOf('@') !== 0) {\n this._backendService.validateAddress(control.value, (valid_status, data) => {\n this._ngZone.run(() => {\n if (valid_status === false) {\n control.setErrors(Object.assign({ address_not_valid: true }, control.errors));\n } else {\n if (control.hasError('address_not_valid')) {\n delete control.errors['address_not_valid'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n }\n this._cdr.markForCheck();\n this._cdr.detectChanges();\n });\n });\n return control.hasError('address_not_valid') ? { address_not_valid: true } : null;\n } else {\n if (!regExpAliasName.test(control.value)) {\n return { alias_not_valid: true };\n } else {\n this._backendService.getAliasInfoByName(control.value.replace('@', ''), (alias_status, alias_data) => {\n this._ngZone.run(() => {\n this.aliasAddress = alias_data.address;\n if (alias_status) {\n if (control.hasError('alias_not_found')) {\n delete control.errors['alias_not_found'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n } else {\n control.setErrors(Object.assign({ alias_not_found: true }, control.errors));\n }\n this._cdr.markForCheck();\n this._cdr.detectChanges();\n });\n });\n }\n return control.hasError('alias_not_found') ? { alias_not_found: true } : null;\n }\n }\n return null;\n },\n ]),\n },\n {\n validators: [\n (control: AbstractControl): ValidationErrors | null => {\n const condition = control.get('sending').get('asset_id').value === control.get('receiving').get('asset_id').value;\n if (condition) {\n control.get('receiving').get('asset_id').setErrors({ sameAssetsId: true });\n } else {\n control.get('receiving').get('asset_id').setErrors(null);\n }\n return null;\n },\n ],\n }\n );\n\n this._setSendingAssetIdFromHistoryState();\n\n this._formListeners();\n }\n\n private _setSendingAssetIdFromHistoryState(): void {\n const state = history.state || {};\n const history_asset: AssetBalance = state['asset'];\n if (history_asset) {\n const { asset_info: { asset_id } } = history_asset;\n this.form.patchValue({\n sending: {\n asset_id,\n },\n });\n }\n }\n}\n","
\n \n\n
\n \n
\n
\n \n \n \n \n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\n \n \n {{ 'ERRORS.REQUIRED' | translate }}\n \n \n {{ 'ERRORS.MAX' | translate : { max: form.controls.sending.errors['greater_than_maximum_amount'].max } }}\n \n \n {{ form.controls.sending.errors['insuficcientFunds'].errorText | translate }}\n \n
\n {{ form.controls.sending.errors['assetHasNotBeenAddedToWallet'].errorText | translate }}\n
\n
\n
\n\n
\n \n \n \n \n {{ assetInfo.full_name || '---' }}\n \n \n
\n
\n \n\n
\n \n
\n\n \n
\n
\n \n \n \n \n {{ 'ERRORS.REQUIRED' | translate }}\n \n \n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\n \n \n {{ 'ERRORS.MAX' | translate : { max: form.controls.receiving.errors['greater_than_maximum_amount'].max } }}\n \n \n {{ form.controls.receiving.errors['assetHasNotBeenAddedToWallet'].errorText | translate }}\n \n
\n
\n\n
\n \n \n \n \n {{ assetInfo.full_name || '---' }}\n \n \n \n \n {{ 'CREATE_SWAP.FORM.ERRORS.ERROR1' | translate }}\n \n
\n \n \n \n\n \n \n \n\n \n\n \n \n \n \n\n \n Not found aliases \n \n\n \n \n \n \n = 2 && item.length <= 6,\n 'pl-1': item.length > 6\n }\"\n class=\"alias\"\n >\n {{ item }}\n \n \n \n \n {{ item | zanoShortString }}\n \n \n \n \n\n
\n {{ errorMessages['receiverAddress'] | translate }}\n
\n\n
\n {{ aliasAddress | zanoShortString }}\n
\n \n \n\n
\n \n {{ 'CREATE_SWAP.FORM.BUTTONS.BUTTON2' | translate }}\n
\n\n
\n {{ 'ERRORS.INVALID_PROPOSAL' | translate }}\n
\n \n\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { RouterLinkWithHref } from '@angular/router';\nimport { InputValidateModule } from '@parts/directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { IDeactivateComponent } from '@parts/interfaces/deactivete-component.interface';\nimport { Observable } from 'rxjs';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-swap-proposal-hex',\n standalone: true,\n imports: [\n CommonModule,\n BreadcrumbsComponent,\n RouterLinkWithHref,\n InputValidateModule,\n TranslateModule,\n ReactiveFormsModule,\n MatIconModule,\n ],\n templateUrl: './swap-proposal-hex.component.html',\n styleUrls: ['./swap-proposal-hex.component.scss'],\n})\nexport class SwapProposalHexComponent implements OnInit, IDeactivateComponent {\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/swap',\n title: 'SWAP_PROPOSAL_HEX.BREADCRUMBS.ITEM1',\n },\n {\n title: 'SWAP_PROPOSAL_HEX.BREADCRUMBS.ITEM2',\n },\n ];\n\n copyAnimation = false;\n\n copyAnimationTimeout: any;\n\n fb = inject(FormBuilder);\n\n form = this.fb.group({\n hex_raw_proposal: this.fb.control('', [Validators.required]),\n });\n\n private readonly backendService: BackendService = inject(BackendService);\n\n private readonly _matDialog: MatDialog = inject(MatDialog);\n\n ngOnInit(): void {\n this.setSwapProposalHexFromHistoryState();\n }\n\n copy(): void {\n const { hex_raw_proposal } = this.form.getRawValue();\n this.backendService.setClipboard(hex_raw_proposal);\n this.copyAnimation = true;\n this.copyAnimationTimeout = setTimeout(() => {\n this.copyAnimation = false;\n clearTimeout(this.copyAnimationTimeout);\n }, 2000);\n }\n\n canExit(): Observable | Promise | boolean {\n const config: MatDialogConfig = {\n disableClose: true,\n data: {\n title: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.TITLE',\n message: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.MESSAGE',\n buttons: {\n submit: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.BUTTONS.SUBMIT',\n close: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.BUTTONS.CLOSE',\n },\n },\n };\n const dialogRef = this._matDialog\n .open(ConfirmModalComponent, config);\n return dialogRef.afterClosed();\n }\n\n private setSwapProposalHexFromHistoryState(): void {\n const historyState = history.state || {};\n const hex_raw_proposal = historyState['hex_raw_proposal'];\n if (hex_raw_proposal) {\n this.form.controls.hex_raw_proposal.patchValue(hex_raw_proposal, { emitEvent: false });\n }\n }\n}\n","
\n \n\n
\n
\n \n \n
\n\n
\n \n\n \n {{ 'SWAP_PROPOSAL_HEX.FORM.BUTTONS.BUTTON2' | translate }}\n \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FlexModule } from '@angular/flex-layout';\nimport { RouterLinkWithHref } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-swap',\n standalone: true,\n imports: [CommonModule, FlexModule, RouterLinkWithHref, TranslateModule],\n templateUrl: './swap.component.html',\n styleUrls: ['./swap.component.scss'],\n})\nexport class SwapComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { IDeactivateComponent } from '@parts/interfaces/deactivete-component.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SwapProposalHexGuard implements CanDeactivate {\n canDeactivate(\n component: IDeactivateComponent,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot\n ): Observable | Promise | boolean | UrlTree {\n return component.canExit ? component.canExit() : true;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { WalletComponent } from './wallet/wallet.component';\nimport { paths, pathsChildrenWallet } from '../paths';\nimport { SendComponent } from './tabs/send/send.component';\nimport { ReceiveComponent } from './tabs/receive/receive.component';\nimport { HistoryComponent } from './tabs/history/history.component';\nimport { StakingComponent } from './tabs/staking/staking.component';\nimport { AssetsComponent } from './tabs/assets/assets.component';\nimport { WithSidebarLayoutComponent } from '../../layouts/with-sidebar-layout/with-sidebar-layout.component';\nimport { ConfirmSwapComponent } from './tabs/swap/pages/confirm-swap/confirm-swap.component';\nimport { SwapComponent } from './tabs/swap/pages/swap/swap.component';\nimport { CreateSwapComponent } from './tabs/swap/pages/create-swap/create-swap.component';\nimport { SwapProposalHexComponent } from './tabs/swap/pages/swap-proposal-hex/swap-proposal-hex.component';\nimport { SwapProposalHexGuard } from './tabs/swap/parts/guards/swap-proposal-hex.guard';\nimport { CustomAssetsComponent } from './tabs/custom-assets/pages/custom-assets/custom-assets.component';\nimport { CreateNewAssetComponent } from './tabs/custom-assets/pages/create-new-asset/create-new-asset.component';\n\nconst routes: Routes = [\n {\n path: paths.wallet,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: WalletComponent,\n children: [\n {\n path: pathsChildrenWallet.assets,\n component: AssetsComponent,\n },\n {\n path: pathsChildrenWallet.send,\n component: SendComponent,\n },\n {\n path: pathsChildrenWallet.receive,\n component: ReceiveComponent,\n },\n {\n path: pathsChildrenWallet.history,\n component: HistoryComponent,\n },\n {\n path: pathsChildrenWallet.staking,\n component: StakingComponent,\n },\n {\n path: 'swap',\n component: SwapComponent,\n },\n {\n path: 'create-swap',\n component: CreateSwapComponent,\n },\n {\n path: 'swap-proposal-hex',\n component: SwapProposalHexComponent,\n canDeactivate: [SwapProposalHexGuard],\n },\n {\n path: 'confirm-swap',\n component: ConfirmSwapComponent,\n },\n {\n path: 'custom-assets',\n component: CustomAssetsComponent,\n },\n {\n path: 'create-new-asset',\n component: CreateNewAssetComponent,\n },\n {\n path: '',\n redirectTo: pathsChildrenWallet.assets,\n pathMatch: 'full',\n },\n ],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class WalletRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WalletRoutingModule } from './wallet-routing.module';\nimport { AssetsComponent } from './tabs/assets/assets.component';\nimport { WalletComponent } from './wallet/wallet.component';\nimport { FlexLayoutModule, FlexModule } from '@angular/flex-layout';\nimport { TooltipModule } from '@parts/directives/tooltip/tooltip.module';\nimport {\n ContractStatusMessagesPipeModule,\n HistoryTypeMessagesPipeModule,\n IntToMoneyPipeModule,\n IsAvailableAliasNamePipeModule,\n ShortStringPipe,\n} from '@parts/pipes';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfirmModalModule } from '@parts/modals/confirm-modal/confirm-modal.module';\nimport { ExportHistoryModalModule } from './wallet/modals/export-history-modal/export-history-modal.module';\nimport { WalletDetailsComponent } from '../wallet-details/wallet-details.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { DefaultImgModule, InputValidateModule, LowerCaseDirective } from '@parts/directives';\nimport { NgxPaginationModule } from 'ngx-pagination';\nimport { HistoryComponent } from './tabs/history/history.component';\nimport { StakingComponent } from './tabs/staking/staking.component';\nimport { ChartModule } from 'angular-highcharts';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { ReceiveComponent } from './tabs/receive/receive.component';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { SendComponent } from './tabs/send/send.component';\nimport { ExportImportComponent } from '../export-import/export-import.component';\nimport { CheckboxComponent } from '@parts/components/checkbox.component';\nimport { CopyButtonComponent } from '@parts/components/copy-button.component';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\nimport { SwitchComponent } from '@parts/components/switch.component';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BackButtonComponent } from '@parts/components/back-button/back-button.component';\nimport { WalletModalsModule } from './tabs/send/modals/wallet-modals.module';\nimport { GetAssetInfoPipe } from '@parts/pipes/get-asset-info.pipe';\nimport { MigrateWalletToZarcanumComponent } from './wallet/modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component';\nimport { SuccessSweepBareOutsComponent } from './wallet/modals/success-sweep-bare-outs/success-sweep-bare-outs.component';\nimport { GetAmountItemsPipe } from '@parts/pipes/get-amount-items.pipe';\nimport { TransactionStatusComponent } from '@parts/components/transaction-status/transaction-status.component';\nimport { IsVisibleFeePipe } from '@parts/pipes/is-visible-fee.pipe';\nimport { CustomAssetsComponent } from './tabs/custom-assets/pages/custom-assets/custom-assets.component';\nimport { CreateNewAssetComponent } from './tabs/custom-assets/pages/create-new-asset/create-new-asset.component';\nimport { ConfirmCreateCustomAssetComponent } from './tabs/custom-assets/modals/confirm-create-custom-asset/confirm-create-custom-asset.component';\nimport { UpdateCustomAssetComponent } from './tabs/custom-assets/modals/update-custom-asset/update-custom-asset.component';\nimport { EmitCustomAssetComponent } from './tabs/custom-assets/modals/emit-custom-asset/emit-custom-asset.component';\nimport { BurnCustomAssetComponent } from './tabs/custom-assets/modals/burn-custom-asset/burn-custom-asset.component';\nimport { TransactionDetailsForCustomAssetsComponent } from './tabs/custom-assets/modals/transaction-details-for-custom-assets/transaction-details-for-custom-assets.component';\nimport { TransactionDetailsComponent } from '@parts/components/transaction-details.component';\nimport { VisibilityBalanceDirective } from '@parts/directives/visibility-balance.directive';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { LoaderComponent } from '@parts/components/loader.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AssetDetailsComponent } from '@parts/modals/asset-details/asset-details.component';\nimport { MatDialogModule } from '@angular/material/dialog';\n\n@NgModule({\n declarations: [\n WalletComponent,\n AssetsComponent,\n WalletDetailsComponent,\n HistoryComponent,\n StakingComponent,\n ReceiveComponent,\n ExportImportComponent,\n SendComponent,\n MigrateWalletToZarcanumComponent,\n SuccessSweepBareOutsComponent,\n CustomAssetsComponent,\n CreateNewAssetComponent,\n ConfirmCreateCustomAssetComponent,\n UpdateCustomAssetComponent,\n EmitCustomAssetComponent,\n BurnCustomAssetComponent,\n TransactionDetailsForCustomAssetsComponent\n ],\n imports: [\n CommonModule,\n WalletRoutingModule,\n FlexModule,\n TooltipModule,\n ShortStringPipe,\n TranslateModule,\n IsAvailableAliasNamePipeModule,\n ConfirmModalModule,\n ExportHistoryModalModule,\n ReactiveFormsModule,\n OverlayModule,\n DefaultImgModule,\n NgxPaginationModule,\n SwitchComponent,\n ChartModule,\n NgSelectModule,\n FormsModule,\n FlexLayoutModule,\n StakingSwitchComponent,\n DialogModule,\n IntToMoneyPipeModule,\n ContractStatusMessagesPipeModule,\n HistoryTypeMessagesPipeModule,\n InputValidateModule,\n CheckboxComponent,\n AssetDetailsComponent,\n CopyButtonComponent,\n LowerCaseDirective,\n BreadcrumbsComponent,\n BackButtonComponent,\n WalletModalsModule,\n GetAssetInfoPipe,\n GetAmountItemsPipe,\n TransactionStatusComponent,\n IsVisibleFeePipe,\n TransactionDetailsComponent,\n VisibilityBalanceDirective,\n MatAutocompleteModule,\n LoaderComponent,\n MatInputModule,\n MatIconModule,\n MatDialogModule,\n ],\n})\nexport class WalletModule {}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { FormControl, NonNullableFormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ZanoValidators } from '@parts/utils/zano-validators';\nimport { BackendService } from '@api/services/backend.service';\nimport { AssetBalance, ParamsAddCustomAssetId } from '@api/models/assets.model';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { wrongAssetId } from '@parts/utils/zano-errors';\nimport { CommonModule } from '@angular/common';\nimport { FlexModule } from '@angular/flex-layout';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LoaderComponent } from '@parts/components/loader.component';\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-add-custom-token',\n standalone: true,\n templateUrl: './add-custom-token.component.html',\n styleUrls: ['./add-custom-token.component.scss'],\n imports: [CommonModule, FlexModule, TranslateModule, ReactiveFormsModule, LoaderComponent, MatDialogModule],\n})\nexport class AddCustomTokenComponent {\n loading: boolean = false;\n\n private fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n formGroup = this.fb.group<{ asset_id: FormControl }>({\n asset_id: this.fb.control('', Validators.compose([Validators.required, ZanoValidators.hash, Validators.maxLength(64)])),\n });\n\n public variablesService: VariablesService = inject(VariablesService);\n\n public backendService: BackendService = inject(BackendService);\n\n private walletsService: WalletsService = inject(WalletsService);\n\n private ngZone: NgZone = inject(NgZone);\n\n private matDialogRef: MatDialogRef = inject(MatDialogRef);\n\n beforeSubmit(): void {\n if (this.formGroup.invalid) {\n this.formGroup.markAsTouched();\n this.formGroup.updateValueAndValidity();\n return;\n }\n\n this.submit();\n }\n\n submit(): void {\n this.loading = true;\n const { asset_id } = this.formGroup.getRawValue();\n const { wallet_id } = this.variablesService.currentWallet;\n const params: ParamsAddCustomAssetId = {\n asset_id,\n wallet_id,\n };\n this.backendService.addCustomAssetId(params, (status, { asset_descriptor }) => {\n this.ngZone.run(() => {\n if (status) {\n const asset: AssetBalance = {\n asset_info: {\n ...asset_descriptor,\n asset_id,\n },\n awaiting_in: 0,\n awaiting_out: 0,\n total: 0,\n unlocked: 0,\n };\n this.walletsService.updateWalletInfo(wallet_id);\n this.matDialogRef.close(asset);\n } else {\n this.formGroup.controls.asset_id.setErrors({\n wrongAssetId,\n });\n this.loading = false;\n }\n });\n });\n }\n}\n","
\n

\n {{ 'WALLET.MODAL_WHITELIST_ASSET.TITLE' | translate }}\n

\n\n \n
\n \n \n \n
\n {{ 'WALLET.MODAL_WHITELIST_ASSET.FORM_ERRORS.ERROR1' | translate }}\n
\n
\n {{ formGroup.get('asset_id').errors['wrongAssetId'].errorText | translate }}\n
\n
\n
\n
\n\n \n
\n \n \n
\n
\n
\n","import { Component, inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-export-history-modal',\n templateUrl: './export-history-modal.component.html',\n styleUrls: ['./export-history-modal.component.scss'],\n})\nexport class ExportHistoryModalComponent {\n posFilterIsOn: boolean = true;\n\n exportData = {\n wallet_id: 0,\n include_pos_transactions: false,\n path: 'C:\\\\some_file.txt',\n format: 'json',\n };\n\n exportFormats = [\n {\n format: 'json',\n formatName: 'JSON',\n },\n {\n format: 'text',\n formatName: 'Text',\n },\n {\n format: 'csv',\n formatName: 'CSV',\n },\n ];\n\n currentFormat: string = this.exportFormats[0].format;\n\n private backend: BackendService = inject(BackendService);\n\n public variablesService: VariablesService = inject(VariablesService);\n\n private translate: TranslateService = inject(TranslateService);\n\n private matDialogRef: MatDialogRef = inject(MatDialogRef);\n\n confirmExport(): void {\n this.exportData.format = `${this.currentFormat}`;\n this.exportData.wallet_id = this.variablesService.currentWallet.wallet_id;\n this.exportData.include_pos_transactions = this.posFilterIsOn;\n\n this.backend.saveFileDialog(\n this.translate.instant('EXPORT_HISTORY.SAVED_FILE'),\n `${this.exportData.format}`,\n this.variablesService.settings.default_path,\n (file_status, file_data) => {\n if (this.exportData.format === 'text') {\n this.exportData.path = file_data.path + '.txt';\n } else {\n this.exportData.path = file_data.path + `.${this.exportData.format}`;\n }\n if (file_status) {\n this.backend.exportWalletHistory(JSON.stringify(this.exportData));\n this.matDialogRef.close();\n }\n }\n );\n }\n}\n","
\n

\n {{ 'EXPORT_HISTORY.TITLE' | translate }}\n

\n\n \n
\n \n \n \n {{ item.formatName }}\n \n \n {{ item.formatName }}\n \n \n
\n\n
\n {{ 'EXPORT_HISTORY.FILTER' | translate }}\n \n
\n
\n\n \n
\n \n \n
\n
\n
\n\n","import { NgModule } from '@angular/core';\nimport { ExportHistoryModalComponent } from './export-history-modal.component';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexModule } from '@angular/flex-layout';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { FormsModule } from '@angular/forms';\nimport { CheckboxComponent } from '@parts/components/checkbox.component';\nimport { SwitchComponent } from '@parts/components/switch.component';\nimport { MatDialogModule } from '@angular/material/dialog';\n\n@NgModule({\n declarations: [ExportHistoryModalComponent],\n exports: [ExportHistoryModalComponent],\n imports: [CommonModule, TranslateModule, FlexModule, SwitchComponent, CheckboxComponent, NgSelectModule, FormsModule, MatDialogModule],\n})\nexport class ExportHistoryModalModule {}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { GetBareOutsStats, SweepBareOuts } from '@api/models/rpc.models';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { ModalService } from '@parts/services/modal.service';\nimport { SuccessSweepBareOutsComponent } from '../success-sweep-bare-outs/success-sweep-bare-outs.component';\nimport { ZARCANUM_MIGRATION } from '@parts/data/constants';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-migrate-wallet-to-zarcanum',\n templateUrl: './migrate-wallet-to-zarcanum.component.html',\n styleUrls: ['./migrate-wallet-to-zarcanum.component.scss'],\n})\nexport class MigrateWalletToZarcanumComponent {\n readonly data: GetBareOutsStats = inject(MAT_DIALOG_DATA);\n\n private readonly _matDialog: MatDialog = inject(MatDialog);\n\n private readonly _matDialogRef: MatDialogRef = inject(MatDialogRef);\n\n private readonly _backendService: BackendService = inject(BackendService);\n\n private readonly _variableService: VariablesService = inject(VariablesService);\n\n private readonly _modalService: ModalService = inject(ModalService);\n\n private readonly _ngZone: NgZone = inject(NgZone);\n\n migrate(): void {\n const {\n currentWallet: { wallet_id },\n } = this._variableService;\n\n const params: ParamsCallRpc = { id: 0, jsonrpc: '2.0', method: 'sweep_bare_outs', params: {} };\n this._backendService.call_wallet_rpc([wallet_id, params], (status, response_data) => {\n this._ngZone.run(() => {\n if (response_data?.result) {\n const data = response_data.result;\n\n const config: MatDialogConfig = {\n data,\n };\n\n this._matDialog.open(SuccessSweepBareOutsComponent, config);\n } else {\n const message = response_data.error;\n this._modalService.prepareModal('error', message);\n }\n\n this._matDialogRef.close();\n });\n });\n }\n\n openZarcanumMigration(): void {\n this._backendService.openUrlInBrowser(ZARCANUM_MIGRATION);\n }\n}\n","

\n {{ 'MIGRATE_WALLET_TO_ZARCANUM.TITLE' | translate }}\n

\n\n\n
\n

\n {{\n 'MIGRATE_WALLET_TO_ZARCANUM.TEXT1'\n | translate\n : {\n total_bare_outs: data.total_bare_outs,\n total_amount: data.total_amount | intToMoney\n }\n }}\n

\n

\n \n {{ 'MIGRATE_WALLET_TO_ZARCANUM.LINK1' | translate }}\n

\n
\n

\n {{\n 'MIGRATE_WALLET_TO_ZARCANUM.TEXT2'\n | translate\n : {\n txs_count: data.txs_count,\n expected_total_fee: data.expected_total_fee | intToMoney\n }\n }}\n

\n
\n
\n\n\n
\n \n
\n
\n","import { Component, inject } from '@angular/core';\nimport { SweepBareOuts } from '@api/models/rpc.models';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-success-sweep-bare-outs',\n templateUrl: './success-sweep-bare-outs.component.html',\n styleUrls: ['./success-sweep-bare-outs.component.scss'],\n})\nexport class SuccessSweepBareOutsComponent {\n readonly data: SweepBareOuts = inject(MAT_DIALOG_DATA);\n\n stateDetails: boolean = false;\n\n toggleDetails(): void {\n this.stateDetails = !this.stateDetails;\n }\n}\n","

\n {{ 'SEND_DETAILS_MODAL.TITLE1' | translate }}\n

\n\n\n
\n
\n \"success\"\n
\n\n

\n {{ 'TOR_LIB_STATE.STATE_SENT_SUCCESS' | translate }}\n

\n
\n\n
\n \n

\n {{ 'SEND_DETAILS_MODAL.TITLE2' | translate }}\n

\n \n
\n \n
    \n
  • \n

    \n {{\n 'SUCCESS_SWEEP_BARE_OUTS.DETAILS'\n | translate\n : {\n txs_sent: data.txs_sent,\n bare_outs_swept: data.bare_outs_swept,\n amount_swept: data.amount_swept | intToMoney,\n fee_spent: data.fee_spent | intToMoney\n }\n }}\n

    \n
  • \n
\n \n \n
\n\n\n
\n \n
\n
\n","import { Component, HostListener, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BackendService, Commands } from '@api/services/backend.service';\nimport { Observable, Subject, take } from 'rxjs';\nimport { StateKeys, Store, Sync } from '@store/store';\nimport { distinctUntilChanged, filter, map, takeUntil } from 'rxjs/operators';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\nimport { ExportHistoryModalComponent } from './modals/export-history-modal/export-history-modal.component';\nimport { AddCustomTokenComponent } from './modals/add-custom-token/add-custom-token.component';\nimport { AssetBalance } from '@api/models/assets.model';\nimport { AssetDetailsComponent } from '@parts/modals/asset-details/asset-details.component';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, RouterEvent } from '@angular/router';\nimport { ZARCANUM_MIGRATION } from '@parts/data/constants';\nimport { MigrateWalletToZarcanumComponent } from './modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component';\nimport { ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { ModalService } from '@parts/services/modal.service';\nimport { GetBareOutsStats } from '@api/models/rpc.models';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\ninterface Tab {\n id: string;\n title: string;\n icon: string;\n link: string;\n disabled: boolean;\n hidden: boolean;\n indicator?: boolean;\n}\n\ntype TabNameKeys = 'assets' | 'history' | 'send' | 'receive' | 'swap' | 'staking' | 'custom-assets';\n\nconst objTabs: { [key in TabNameKeys]: Tab } = {\n assets: {\n id: 'assets',\n title: 'WALLET.TABS.ASSETS',\n icon: 'zano-balance',\n link: '/assets',\n disabled: false,\n hidden: false,\n },\n history: {\n id: 'history',\n title: 'WALLET.TABS.HISTORY',\n icon: 'zano-history',\n link: '/history',\n disabled: false,\n hidden: false,\n },\n send: {\n id: 'send',\n title: 'WALLET.TABS.SEND',\n icon: 'zano-send',\n link: '/send',\n disabled: false,\n hidden: false,\n },\n receive: {\n id: 'receive',\n title: 'WALLET.TABS.RECEIVE',\n icon: 'zano-receive',\n link: '/receive',\n disabled: false,\n hidden: false,\n },\n swap: {\n id: 'swap',\n title: 'Swap',\n icon: 'zano-swap',\n link: '/swap',\n disabled: false,\n hidden: true,\n },\n // TODO: https://github.com/hyle-team/zano/issues/374\n // contract: {\n // title: 'WALLET.TABS.CONTRACTS',\n // icon: 'document',\n // link: '/contracts',\n // disabled: false,\n // hidden: false\n // },\n staking: {\n id: 'staking',\n title: 'WALLET.TABS.STAKING',\n icon: 'zano-staking',\n link: '/staking',\n indicator: false,\n disabled: false,\n hidden: false,\n },\n 'custom-assets': {\n id: 'custom-assets',\n title: 'WALLET.TABS.CONTROL_ASSETS',\n icon: 'zano-custom-asset',\n link: '/custom-assets',\n indicator: false,\n disabled: false,\n hidden: false,\n },\n};\n\n@Component({\n selector: 'app-wallet',\n template: `\n
\n
\n
\n
\n

\n {{ variablesService.currentWallet.address | zanoShortString }}\n

\n\n \n \n\n \n \n \n \n\n \n
\n {{ variablesService.currentWallet.alias.name }}\n
\n\n \n \n \n \n \n\n \n \n \n \n \n \n
\n
\n
\n \n \n
\n
\n \n\n
\n

{{ 'WALLET.MIGRATE.TEXT1' | translate }}

\n \n \n {{ 'WALLET.MIGRATE.BUTTON1' | translate }}\n

\n
\n
\n
\n
\n
\n
\n \n \n \n
\n \n \n \n
\n
\n \n\n \n
\n
    \n
  • \n \n \n {{ 'WALLET_DETAILS.WALLET_OPTIONS' | translate }}\n \n
  • \n \n
  • \n \n \n {{ 'WALLET_DETAILS.WHITELIST_ASSET' | translate }}\n \n
  • \n
    \n
  • \n \n \n {{ 'EXPORT_HISTORY.EXPORT_BUTTON' | translate }}\n \n
  • \n \n
  • \n \n \n {{ 'WALLET_DETAILS.RESYNC_WALLET_BUTTON' | translate }}\n \n
  • \n
    \n
  • \n \n \n {{ 'WALLET_DETAILS.BUTTON_REMOVE' | translate }}\n \n
  • \n
\n
\n \n\n
\n
\n \n \n \n \n {{ tab.title | translate }}\n {{ variablesService.currentWallet.new_contracts }}\n \n \n \n
\n
\n \n\n
\n
\n

\n {{ 'Loading...' | translate }}\n

\n
\n
\n
\n
\n
\n `,\n})\nexport class WalletComponent implements OnInit, OnDestroy {\n settingsButtonInterval;\n\n private breakpointObserver: BreakpointObserver = inject(BreakpointObserver);\n\n isViewTabName$: Observable = this.breakpointObserver.observe(['(min-width: 1400px)']).pipe(map(({ matches }) => matches));\n\n settingsButtonDisabled = true;\n\n walletLoaded = false;\n\n openDropdown: boolean;\n\n walletSyncVisible = false;\n\n tabs: Tab[] = [];\n\n private destroy$ = new Subject();\n\n loader = true;\n\n private readonly _matDialog: MatDialog = inject(MatDialog);\n\n constructor(\n private backend: BackendService,\n public variablesService: VariablesService,\n private ngZone: NgZone,\n private store: Store,\n private dialog: Dialog,\n private modalService: ModalService,\n private walletsService: WalletsService,\n private router: Router\n ) {\n\n if (!this.variablesService.currentWallet && this.variablesService.wallets.length > 0) {\n this.variablesService.setCurrentWallet(0);\n }\n this.walletLoaded = this.variablesService.currentWallet.loaded;\n\n this.variablesService.currentWalletChangedEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: (wallet: Wallet) => {\n this.createTabs(wallet);\n const disabled = !wallet.loaded;\n this.setDisabledTabs(['send', 'swap', 'staking', 'custom-assets'], disabled);\n\n this.variablesService.is_hardfok_active$.pipe(take(1)).subscribe({\n next: value => {\n const hidden = !value;\n this.setHiddenTabs(['swap'], hidden);\n },\n });\n },\n });\n\n this.variablesService.is_hardfok_active$.pipe(takeUntil(this.destroy$)).subscribe({\n next: value => {\n const hidden = !value;\n this.setHiddenTabs(['swap'], hidden);\n },\n });\n\n this.router.events.pipe(takeUntil(this.destroy$)).subscribe((e: RouterEvent) => {\n this.navigationInterceptor(e);\n });\n }\n\n navigationInterceptor(event: RouterEvent): void {\n if (event instanceof NavigationStart) {\n this.loader = true;\n }\n if (event instanceof NavigationEnd) {\n setTimeout(() => {\n this.loader = false;\n }, 500);\n }\n if (event instanceof NavigationCancel) {\n setTimeout(() => {\n this.loader = false;\n }, 500);\n }\n if (event instanceof NavigationError) {\n setTimeout(() => {\n this.loader = false;\n }, 500);\n }\n }\n\n createTabs({ is_auditable, is_watch_only }: Wallet): void {\n const conditionForHiding: boolean = !is_auditable || !is_watch_only;\n const tabs: Array = [];\n\n tabs.push(objTabs.assets);\n tabs.push(objTabs.history);\n\n if (conditionForHiding) {\n tabs.push(objTabs.send);\n }\n\n tabs.push(objTabs.receive);\n\n if (conditionForHiding) {\n tabs.push(objTabs.swap);\n }\n\n tabs.push(objTabs.staking);\n\n if (conditionForHiding) {\n tabs.push(objTabs['custom-assets']);\n }\n\n this.tabs = tabs;\n }\n\n @HostListener('document:keydown.shift', ['$event.key'])\n onKeyPressed(): void {\n if (!this.openDropdown) {\n this.walletSyncVisible = true;\n }\n }\n\n @HostListener('document:keyup.shift', ['$event.key'])\n onKeyUpPressed(): void {\n if (!this.openDropdown) {\n this.walletSyncVisible = false;\n }\n }\n\n ngOnInit(): void {\n this.settingsButtonInterval = setInterval(() => {\n // tslint:disable-next-line:triple-equals\n if (this.variablesService.daemon_state == 2 || this.walletLoaded) {\n this.settingsButtonDisabled = false;\n clearInterval(this.settingsButtonInterval);\n }\n }, 1000);\n this.store\n .select(StateKeys.sync)\n .pipe(filter(Boolean), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe({\n next: (value: any) => {\n const data = value.filter((item: Sync) => item.wallet_id === this.variablesService.currentWallet.wallet_id)[0];\n if (data && !data.sync) {\n let in_progress;\n const values = this.store.state.sync;\n if (values && values.length > 0) {\n in_progress = values.filter(item => item.sync);\n this.variablesService.sync_started = !!(in_progress && in_progress.length);\n if (!in_progress) {\n this.variablesService.sync_started = false;\n this.variablesService.sync_wallets[data.wallet_id] = false;\n }\n } else {\n this.variablesService.sync_started = false;\n this.variablesService.sync_wallets[data.wallet_id] = false;\n }\n }\n },\n });\n if (hasOwnProperty(this.variablesService.currentWallet.alias, 'name')) {\n this.variablesService.currentWallet.wakeAlias = false;\n }\n this.variablesService.getAliasChangedEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n if (hasOwnProperty(this.variablesService.currentWallet.alias, 'name')) {\n this.variablesService.currentWallet.wakeAlias = false;\n }\n },\n });\n this.updateWalletStatus();\n }\n\n toggleMenuDropdown(): void {\n if (!this.openDropdown) {\n this.openDropdown = true;\n } else {\n this.openDropdown = false;\n this.walletSyncVisible = false;\n }\n }\n\n resyncCurrentWallet(wallet_id: number): void {\n this.backend.resyncWallet(wallet_id);\n }\n\n close(wallet_id: number): void {\n const config: MatDialogConfig = {\n data: {\n title: 'WALLET.CONFIRM.MESSAGE',\n message: 'WALLET.CONFIRM.TITLE',\n },\n };\n\n this._matDialog\n .open(ConfirmModalComponent, config)\n .afterClosed().pipe(filter(Boolean), takeUntil(this.destroy$))\n .subscribe({\n next: () => {\n this.walletsService.closeWallet(wallet_id);\n },\n });\n }\n\n addCustomToken(): void {\n this._matDialog\n .open(AddCustomTokenComponent)\n .afterClosed().pipe(\n filter(response_data => Boolean(response_data)),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: asset => {\n const config: MatDialogConfig = {\n data: {\n assetInfo: asset.asset_info,\n title: 'You added new asset',\n },\n };\n this.ngZone.run(() => {\n this._matDialog.open(AssetDetailsComponent, config);\n });\n },\n });\n }\n\n exportHistory(): void {\n this._matDialog.open(ExportHistoryModalComponent);\n }\n\n openZarcanumMigration(): void {\n this.backend.openUrlInBrowser(ZARCANUM_MIGRATION);\n }\n\n openMigrateWalletToZarcanum(): void {\n const {\n currentWallet: { wallet_id },\n } = this.variablesService;\n const params: ParamsCallRpc = {\n id: 0,\n jsonrpc: '2.0',\n method: 'get_bare_outs_stats',\n params: {},\n };\n this.backend.call_wallet_rpc([wallet_id, params], (status, response_data) => {\n this.ngZone.run(() => {\n if (response_data?.result) {\n const data = response_data.result;\n\n const config: MatDialogConfig = {\n data,\n disableClose: false\n };\n this._matDialog.open(MigrateWalletToZarcanumComponent, config);\n } else {\n const message = response_data.error;\n this.modalService.prepareModal('error', message);\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n updateWalletStatus(): void {\n this.backend.eventSubscribe(Commands.wallet_sync_progress, data => {\n const wallet_id = data.wallet_id;\n if (wallet_id === this.variablesService.currentWallet.wallet_id) {\n this.ngZone.run(() => {\n this.walletLoaded = false;\n });\n }\n });\n this.backend.eventSubscribe(Commands.update_wallet_status, data => {\n const wallet_state = data.wallet_state;\n const wallet_id = data.wallet_id;\n this.ngZone.run(() => {\n if (wallet_id !== this.variablesService.currentWallet.wallet_id) {\n return;\n }\n\n if (wallet_state === 2) {\n this.walletLoaded = true;\n this.setDisabledTabs(['send', 'swap', 'staking', 'custom-assets'], false);\n } else {\n this.walletLoaded = false;\n this.setDisabledTabs(['send', 'swap', 'staking', 'custom-assets'], true);\n }\n });\n });\n }\n\n setHiddenTabs(ids: string[], hidden: boolean): void {\n this.tabs.forEach(tab => {\n if (ids.includes(tab.id)) {\n tab.hidden = hidden;\n }\n });\n }\n\n setDisabledTabs(ids: string[], disabled: boolean): void {\n this.tabs.forEach(tab => {\n if (ids.includes(tab.id)) {\n tab.disabled = disabled;\n }\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BackButtonModule } from '@parts/directives/back-button/back-button.module';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-back-button',\n standalone: true,\n imports: [CommonModule, BackButtonModule, MatIconModule],\n templateUrl: './back-button.component.html',\n styleUrls: ['./back-button.component.scss'],\n})\nexport class BackButtonComponent {}\n","\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-breadcrumbs',\n standalone: true,\n imports: [CommonModule, RouterLinkWithHref, TranslateModule, RouterLink],\n templateUrl: './breadcrumbs.component.html',\n styleUrls: ['./breadcrumbs.component.scss'],\n})\nexport class BreadcrumbsComponent {\n @Input() items: BreadcrumbItems = [];\n}\n","
\n
\n \n {{ item.title | translate }}\n \n\n \n {{ item.title | translate }}\n \n
\n
\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-checkbox',\n template: `\n
\n \n \n
\n `,\n styles: [\n `\n :host {\n display: inline-flex;\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [CommonModule],\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() value = false;\n\n @Input() label = '';\n\n @Input() id = 'id-' + Math.random();\n\n @Input() disabled = false;\n\n @Input() readonly = false;\n\n @Output() emitChange = new EventEmitter();\n\n onChange!: (value: boolean) => void;\n\n onTouched!: () => void;\n\n handlerChange({ target }: Event): void {\n const { checked } = target as HTMLInputElement;\n this.value = checked;\n this.emitChange.emit(checked);\n if (this.onChange) {\n this.onChange(checked);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '../services/variables.service';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-copy-button',\n template: `\n \n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, MatIconModule],\n})\nexport class CopyButtonComponent {\n @Input() value: string;\n\n @Input() size: 'small' | 'big' = 'small';\n\n copyAnimation = false;\n\n copyAnimationTimeout;\n\n constructor(private backend: BackendService, public variablesService: VariablesService) {}\n\n copy(): void {\n this.backend.setClipboard(this.value || '');\n this.copyAnimation = true;\n this.copyAnimationTimeout = window.setTimeout(() => {\n this.copyAnimation = false;\n clearTimeout(this.copyAnimationTimeout);\n }, 2000);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { NgSwitch, NgSwitchCase, NgSwitchDefault } from '@angular/common';\n\ntype LoaderType = 'circle' | 'circle-2' | 'circle-3' | 'dots' | 'dots-2' | 'pulse';\n\n@Component({\n selector: 'zano-loader',\n standalone: true,\n template: `\n \n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n
\n `,\n styles: [\n `\n /* Loader 1 */\n .loader-1 {\n height: 32px;\n width: 32px;\n -webkit-animation: loader-1-1 4.8s linear infinite;\n animation: loader-1-1 4.8s linear infinite;\n }\n\n @-webkit-keyframes loader-1-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-1-1 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-1 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n clip: rect(0, 32px, 32px, 16px);\n -webkit-animation: loader-1-2 1.2s linear infinite;\n animation: loader-1-2 1.2s linear infinite;\n }\n\n @-webkit-keyframes loader-1-2 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(220deg);\n }\n }\n\n @keyframes loader-1-2 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(220deg);\n }\n }\n\n .loader-1 span::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n clip: rect(0, 32px, 32px, 16px);\n border: 3px solid currentColor;\n border-radius: 50%;\n -webkit-animation: loader-1-3 1.2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-1-3 1.2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-1-3 {\n 0% {\n -webkit-transform: rotate(-140deg);\n }\n 50% {\n -webkit-transform: rotate(-160deg);\n }\n 100% {\n -webkit-transform: rotate(140deg);\n }\n }\n\n @keyframes loader-1-3 {\n 0% {\n transform: rotate(-140deg);\n }\n 50% {\n transform: rotate(-160deg);\n }\n 100% {\n transform: rotate(140deg);\n }\n }\n\n /* Loader 2 */\n .loader-2 {\n display: block;\n height: 32px;\n width: 32px;\n -webkit-animation: loader-2-1 3s linear infinite;\n animation: loader-2-1 3s linear infinite;\n }\n\n @-webkit-keyframes loader-2-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-2-1 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-2 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n clip: rect(16px, 32px, 32px, 0);\n -webkit-animation: loader-2-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-2-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-2-2 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-2-2 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-2 span::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 3px solid transparent;\n border-top: 3px solid currentColor;\n border-radius: 50%;\n -webkit-animation: loader-2-3 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-2-3 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-2-3 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-2-3 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-2 span::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 3px solid rgba(255, 255, 255, 0.5);\n border-radius: 50%;\n }\n\n /* Loader 3 */\n .loader-3 {\n display: block;\n height: 32px;\n width: 32px;\n }\n\n .loader-3 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n }\n\n .loader-3 span::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 3px solid currentColor;\n border-bottom: 3px solid transparent;\n border-radius: 50%;\n -webkit-animation: loader-3-1 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-3-1 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-3-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 40% {\n -webkit-transform: rotate(180deg);\n }\n 60% {\n -webkit-transform: rotate(180deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-3-1 {\n 0% {\n transform: rotate(0deg);\n }\n 40% {\n transform: rotate(180deg);\n }\n 60% {\n transform: rotate(180deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-3 span::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 6px;\n height: 6px;\n background: currentColor;\n border-radius: 50%;\n -webkit-animation: loader-3-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-3-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-3-2 {\n 0% {\n -webkit-transform: translate3d(0, -32px, 0) scale(0, 2);\n opacity: 0;\n }\n 50% {\n -webkit-transform: translate3d(0, 0, 0) scale(1.25, 1.25);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translate3d(0, 8px, 0) scale(0, 0);\n opacity: 0;\n }\n }\n\n @keyframes loader-3-2 {\n 0% {\n transform: translate3d(0, -32px, 0) scale(0, 2);\n opacity: 0;\n }\n 50% {\n transform: translate3d(0, 0, 0) scale(1.25, 1.25);\n opacity: 1;\n }\n 100% {\n transform: translate3d(0, 8px, 0) scale(0, 0);\n opacity: 0;\n }\n }\n\n /* Loader 4 */\n .loader-4 {\n height: 32px;\n width: 32px;\n }\n\n .loader-4::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 12px;\n height: 12px;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n background: currentColor;\n border-radius: 50%;\n -webkit-animation: loader-4-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-1 {\n 0% {\n -webkit-transform: scale(0);\n opacity: 0;\n }\n 50% {\n -webkit-transform: scale(1);\n opacity: 1;\n }\n 100% {\n -webkit-transform: scale(0);\n opacity: 0;\n }\n }\n\n @keyframes loader-4-1 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1);\n opacity: 1;\n }\n 100% {\n transform: scale(0);\n opacity: 0;\n }\n }\n\n .loader-4 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n -webkit-animation: loader-4-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-2 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 50% {\n -webkit-transform: rotate(180deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-4-2 {\n 0% {\n transform: rotate(0deg);\n }\n 50% {\n transform: rotate(180deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-4 span::before,\n .loader-4 span::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 12px;\n width: 12px;\n background: currentColor;\n border-radius: 50%;\n -webkit-animation: loader-4-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-3 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(-16px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-4-3 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(-16px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-4 span::after {\n -webkit-animation: loader-4-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-4 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(16px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-4-4 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(16px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n /* Loader 5 */\n .loader-5 {\n height: 32px;\n width: 32px;\n -webkit-animation: loader-5-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-5-1 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-5::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: auto;\n margin: auto;\n width: 8px;\n height: 8px;\n background: currentColor;\n border-radius: 50%;\n -webkit-animation: loader-5-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-2 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(24px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-2 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(24px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-5::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: auto;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 8px;\n height: 8px;\n background: currentColor;\n border-radius: 50%;\n -webkit-animation: loader-5-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-3 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(-24px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-3 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(-24px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-5 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n }\n\n .loader-5 span::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: auto;\n right: 0;\n margin: auto;\n width: 8px;\n height: 8px;\n background: currentColor;\n border-radius: 50%;\n -webkit-animation: loader-5-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-4 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(0, 24px, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-4 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(0, 24px, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-5 span::after {\n content: '';\n display: block;\n position: absolute;\n top: auto;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 8px;\n height: 8px;\n background: currentColor;\n border-radius: 50%;\n -webkit-animation: loader-5-5 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-5 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-5 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(0, -24px, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-5 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(0, -24px, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n /* Loader 6 */\n .loader-6 {\n height: 32px;\n width: 32px;\n }\n\n .loader-6 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n }\n\n .loader-6 span::before,\n .loader-6 span::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 2px solid currentColor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: loader-6-1 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) infinite;\n animation: loader-6-1 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) infinite;\n }\n\n @-webkit-keyframes loader-6-1 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1.5);\n opacity: 0;\n }\n }\n\n @keyframes loader-6-1 {\n 0% {\n transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1.5);\n opacity: 0;\n }\n }\n\n .loader-6 span::after {\n -webkit-animation: loader-6-2 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) 0.25s infinite;\n animation: loader-6-2 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) 0.25s infinite;\n }\n\n @-webkit-keyframes loader-6-2 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n opacity: 0;\n }\n }\n\n @keyframes loader-6-2 {\n 0% {\n transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n opacity: 0;\n }\n }\n `,\n ],\n imports: [NgSwitch, NgSwitchCase, NgSwitchDefault],\n})\nexport class LoaderComponent {\n @Input()\n type: LoaderType = 'circle';\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ContextMenuComponent, ContextMenuModule, ContextMenuService } from '@perfectmemory/ngx-contextmenu';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-register-context-templates',\n template: ` \n {{ 'CONTEXT_MENU.COPY' | translate }}\n {{ 'CONTEXT_MENU.PASTE' | translate }}\n {{ 'CONTEXT_MENU.SELECT' | translate }}\n \n \n {{ 'CONTEXT_MENU.COPY' | translate }}\n \n\n \n {{ 'CONTEXT_MENU.PASTE' | translate }}\n {{ 'CONTEXT_MENU.SELECT' | translate }}\n `,\n standalone: true,\n imports: [CommonModule, ContextMenuModule, TranslateModule],\n providers: [ContextMenuService],\n})\nexport class RegisterContextTemplatesComponent implements OnInit {\n @ViewChild('allContextMenu', { static: true })\n public allContextMenu: ContextMenuComponent;\n\n @ViewChild('onlyCopyContextMenu', { static: true })\n public onlyCopyContextMenu: ContextMenuComponent;\n\n @ViewChild('pasteSelectContextMenu', { static: true })\n public pasteSelectContextMenu: ContextMenuComponent;\n\n constructor(public variablesService: VariablesService, private backendService: BackendService) {}\n\n ngOnInit(): void {\n this.variablesService.allContextMenu = this.allContextMenu;\n this.variablesService.onlyCopyContextMenu = this.onlyCopyContextMenu;\n this.variablesService.pasteSelectContextMenu = this.pasteSelectContextMenu;\n }\n\n contextMenuCopy(target): void {\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\n const start = target['contextSelectionStart'] ? 'contextSelectionStart' : 'selectionStart';\n const end = target['contextSelectionEnd'] ? 'contextSelectionEnd' : 'selectionEnd';\n const canUseSelection = target[start] || target[start] === '0';\n const SelectedText = canUseSelection ? target['value'].substring(target[start], target[end]) : target['value'];\n this.backendService.setClipboard(String(SelectedText));\n }\n }\n\n contextMenuOnlyCopy(text): void {\n if (text) {\n this.backendService.setClipboard(String(text));\n }\n }\n\n contextMenuPaste(target): void {\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\n this.backendService.getClipboard((status, clipboard) => {\n clipboard = String(clipboard);\n if (typeof clipboard !== 'string' || clipboard.length) {\n const start = target['contextSelectionStart'] ? 'contextSelectionStart' : 'selectionStart';\n const end = target['contextSelectionEnd'] ? 'contextSelectionEnd' : 'selectionEnd';\n const _pre = target['value'].substring(0, target[start]);\n const _aft = target['value'].substring(target[end], target['value'].length);\n let text = _pre + clipboard + _aft;\n const cursorPosition = (_pre + clipboard).length;\n if (target['maxLength'] && parseInt(target['maxLength'], 10) > 0) {\n text = text.substr(0, parseInt(target['maxLength'], 10));\n }\n target['value'] = text;\n target.setSelectionRange(cursorPosition, cursorPosition);\n target.dispatchEvent(new Event('input'));\n target['focus']();\n }\n });\n }\n }\n\n contextMenuSelect(target): void {\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\n target['focus']();\n setTimeout(() => {\n target['select']();\n });\n }\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '../services/variables.service';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-staking-switch',\n template: `\n
\n \n
\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule],\n})\nexport class StakingSwitchComponent {\n @Input() wallet_id: number;\n\n @Input() staking: boolean;\n\n @Output() stakingChange = new EventEmitter();\n\n constructor(private backendService: BackendService, private variablesService: VariablesService) {}\n\n toggleStaking(): void {\n const wallet = this.variablesService.getWallet(this.wallet_id);\n if (wallet && wallet.loaded) {\n this.stakingChange.emit(!this.staking);\n if (!this.staking) {\n this.backendService.startPosMining(this.wallet_id);\n } else {\n this.backendService.stopPosMining(this.wallet_id);\n }\n }\n }\n}\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-switch',\n template: `\n \n \n \n `,\n styles: [\n `\n :host {\n display: inline-flex;\n }\n `,\n ],\n standalone: true,\n imports: [CommonModule],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n },\n ],\n})\nexport class SwitchComponent implements ControlValueAccessor {\n @Input() value = false;\n\n @Input() disabled = false;\n\n @Output() emitChange = new EventEmitter();\n\n onTouched!: () => void;\n\n onChange!: (value: boolean) => void;\n\n toggle(): void {\n if (!this.disabled) {\n this.value = !this.value;\n this.emitChange.emit(this.value);\n if (this.onChange) {\n this.onChange(this.value);\n }\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n }\n}\n","import { Component } from '@angular/core';\nimport { VariablesService } from '../services/variables.service';\nimport { DOWNLOADS_PAGE_URL } from '@parts/data/constants';\nimport { BackendService } from '@api/services/backend.service';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from '@parts/directives';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-synchronization-status',\n template: `\n \n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.OFFLINE' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.SYNCING' | translate }}\n {{ variablesService.sync.progress_value_text }}%\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.ONLINE' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.DOWNLOADING' | translate }}\n {{ variablesService.download.progress_value_text }}%\n
\n\n \n
\n
\n
\n
\n
\n
\n\n
\n
\n\n

\n \n {{ variablesService.sync.blocks.current }}\n \n /{{ variablesService.sync.blocks.max }} Blocks\n

\n
\n\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n \n \n
\n {{ 'SIDEBAR.UPDATE.STANDARD' | translate }}\n
\n \n
\n\n \n
\n {{ 'SIDEBAR.UPDATE.IMPORTANT' | translate }}\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\n
\n \n
\n\n \n
\n {{ 'SIDEBAR.UPDATE.CRITICAL' | translate }}\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\n
\n \n
\n \n\n
\n
\n {{ 'SIDEBAR.UPDATE.TIME' | translate }}\n
\n \n
\n \n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, TranslateModule, TooltipModule, MatIconModule],\n})\nexport class SynchronizationStatusComponent {\n constructor(public variablesService: VariablesService, private backend: BackendService) {}\n\n getUpdate(): void {\n this.backend.openUrlInBrowser(DOWNLOADS_PAGE_URL);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Transaction } from '@api/models/transaction.model';\nimport { VariablesService } from '../services/variables.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { BLOCK_EXPLORER_TN_TX_URL_PREFIX, BLOCK_EXPLORER_TX_URL_PREFIX } from '../data/constants';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from '@parts/directives';\n\n@Component({\n selector: 'app-transaction-details',\n template: `\n \n \n \n \n \n {{ transaction.tx_hash }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ transaction.payment_id }}\n \n \n \n \n \n {{ transaction.comment }}\n \n \n \n
{{ 'HISTORY.DETAILS.ID' | translate }}{{ 'HISTORY.DETAILS.SIZE' | translate }}\n {{ 'HISTORY.DETAILS.SIZE_VALUE' | translate : { value: transaction.tx_blob_size } }}\n
{{ 'Asset ID' | translate }}\n \n

\n {{ asset_id }}\n

\n
\n
{{ 'HISTORY.DETAILS.CONFIRMATION' | translate }}\n {{ transaction.height === 0 ? 0 : variablesService.height_app - transaction.height }}\n
{{ 'HISTORY.DETAILS.HEIGHT' | translate }}{{ transaction.height }}
{{ 'HISTORY.DETAILS.PAYMENT_ID' | translate }}
{{ 'HISTORY.DETAILS.COMMENT' | translate }}
\n `,\n styles: [\n `\n :host {\n display: block;\n padding: 2rem 0;\n }\n table tbody tr {\n background: none;\n }\n\n table tbody tr td {\n padding: 1rem 2rem;\n }\n `,\n ],\n standalone: true,\n imports: [CommonModule, TranslateModule, TooltipModule],\n})\nexport class TransactionDetailsComponent {\n @Input() transaction: Transaction;\n\n constructor(public variablesService: VariablesService, private backendService: BackendService) {}\n\n getAllUniqAssetId(transaction: Transaction): Set {\n const { employed_entries } = transaction;\n const { receive = [], spent = [] } = employed_entries;\n return new Set([...receive, ...spent].map(({ asset_id }) => asset_id));\n }\n\n openInBrowser(hash: string): void {\n this.backendService.openUrlInBrowser(\n (this.variablesService.testnet ? BLOCK_EXPLORER_TN_TX_URL_PREFIX : BLOCK_EXPLORER_TX_URL_PREFIX) + hash\n );\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subtransfer, Subtransfers, Transaction } from '@api/models/transaction.model';\nimport { zanoAssetInfo } from '@parts/data/assets';\nimport { isFinalizator, isInitiator, isSwapTransaction } from '@parts/functions/identify-transaction';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { TooltipModule } from '@parts/directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexModule } from '@angular/flex-layout';\n\n@Component({\n selector: 'app-transaction-status',\n standalone: true,\n imports: [CommonModule, TooltipModule, TranslateModule, FlexModule],\n templateUrl: './transaction-status.component.html',\n styleUrls: ['./transaction-status.component.scss'],\n})\nexport class TransactionStatusComponent {\n @Input() transaction: Transaction;\n\n constructor(public variablesService: VariablesService) {}\n\n isVisibleStatusBySubtransfer(subtransfer: Subtransfer, transaction: Transaction): boolean {\n const { amount, asset_id, is_income } = subtransfer;\n const { fee, subtransfers } = transaction;\n\n if (subtransfers.length === 1 && asset_id === zanoAssetInfo.asset_id && is_income === false && amount.eq(fee)) {\n return true;\n }\n\n if (asset_id === zanoAssetInfo.asset_id && isSwapTransaction(transaction) && isFinalizator(transaction)) {\n return true;\n }\n\n return !(asset_id === zanoAssetInfo.asset_id && is_income === false && amount.eq(fee));\n }\n\n isIncome(subtransfer: Subtransfer, transaction: Transaction): boolean {\n const { amount, asset_id, is_income } = subtransfer;\n const { fee } = transaction;\n\n // Case: When the amount is less than the fee\n const condition1 = asset_id === zanoAssetInfo.asset_id;\n const condition2 = amount.isLessThan(fee);\n const condition3 = !is_income;\n\n if (condition1 && condition2 && condition3) {\n return true;\n }\n // ---------------------------------------------\n\n return is_income;\n }\n\n getHeight(item): number {\n const { height_app } = this.variablesService;\n if ((height_app - item.height >= 10 && item.height !== 0) || (item.is_mining === true && item.height === 0)) {\n return 10;\n } else {\n if (item.height === 0 || height_app - item.height < 0) {\n return 0;\n } else {\n return height_app - item.height;\n }\n }\n }\n\n strokeSize(item): number {\n const rem = this.variablesService.settings.scale;\n if ((this.variablesService.height_app - item.height >= 10 && item.height !== 0) || (item.is_mining === true && item.height === 0)) {\n return 0;\n } else {\n if (item.height === 0 || this.variablesService.height_app - item.height < 0) {\n return 4.5 * parseInt(rem, 10);\n } else {\n return (\n 4.5 * parseInt(rem, 10) - ((4.5 * parseInt(rem, 10)) / 100) * ((this.variablesService.height_app - item.height) * 10)\n );\n }\n }\n }\n\n isLocked(item: Transaction): boolean {\n if (item.unlock_time > 500000000 && item.unlock_time > new Date().getTime() / 1000) {\n return true;\n }\n return item.unlock_time < 500000000 && item.unlock_time > this.variablesService.height_max;\n }\n\n time(item: Transaction): number {\n const now = new Date().getTime();\n return now + (item.unlock_time - this.variablesService.height_max) * 60 * 1000;\n }\n\n hasZano(subtransfers: Subtransfers): boolean {\n return Boolean(subtransfers.find(({ asset_id }) => asset_id === zanoAssetInfo.asset_id));\n }\n\n isInitiator(transaction: Transaction): boolean {\n return isInitiator(transaction);\n }\n}\n","\n
\n \"\"\n\n {{ 'HISTORY.RECEIVED' | translate }}\n
\n
\n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \"status\"/\n \n {{ (isIncome(subtransfer, transaction) ? 'HISTORY.RECEIVED' : 'HISTORY.SEND') | translate }}\n\n \n \n \n \n 0)\n \"\n [delay]=\"500\"\n class=\"icon lock-transaction mr-1\"\n placement=\"bottom-left\"\n tooltip=\"{{ 'HISTORY.LOCK_TOOLTIP' | translate : { date: time(transaction) | date : 'MM.dd.yy' } }}\"\n tooltipClass=\"table-tooltip\"\n >\n \n 500000000\">\n 0)\n \"\n [delay]=\"500\"\n class=\"icon lock-transaction mr-1\"\n placement=\"bottom-left\"\n tooltip=\"{{\n 'HISTORY.LOCK_TOOLTIP'\n | translate\n : {\n date: transaction.unlock_time * 1000 | date : 'MM.dd.yy'\n }\n }}\"\n tooltipClass=\"table-tooltip\"\n >\n \n \n \n 0)\n \"\n class=\"icon unlock-transaction mr-1\"\n >\n \n \n \n \n \n\n\n\n
\n \"\"\n\n {{ 'HISTORY.RECEIVED' | translate }}\n
\n
\n","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { Wallet } from '@api/models/wallet.model';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BigNumber } from 'bignumber.js';\nimport { LOCKED_BALANCE_HELP_PAGE } from '@parts/data/constants';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { IntToMoneyPipe, IntToMoneyPipeModule } from '@parts/pipes';\nimport { BackendService } from '@api/services/backend.service';\nimport { CommonModule } from '@angular/common';\nimport { DisablePriceFetchModule, TooltipModule } from '@parts/directives';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\nimport { VisibilityBalanceDirective } from '@parts/directives/visibility-balance.directive';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-wallet-card',\n template: `\n
\n
\n
\n
\n \n {{ wallet.new_contracts }}\n \n\n \n {{ !wallet.alias['name'] ? wallet.name : wallet.alias['name'] }}\n \n
\n
\n
\n \n \n \n
\n
\n\n

\n \n \n {{\n wallet.getMoneyEquivalentForZano(variablesService.zanoMoneyEquivalent) | intToMoney | currency : 'USD' || '---'\n }}\n \n {{ variablesService.zanoMoneyEquivalentPercent | number : '1.2-2' }}%\n \n \n \n

\n\n \n
\n {{ 'SIDEBAR.ACCOUNT.STAKING' | translate }}\n \n
\n
\n\n
\n
\n
\n
\n
{{ wallet.progress }}%
\n
\n
\n `,\n standalone: true,\n imports: [\n CommonModule,\n TooltipModule,\n TranslateModule,\n IntToMoneyPipeModule,\n StakingSwitchComponent,\n DisablePriceFetchModule,\n VisibilityBalanceDirective,\n MatIconModule,\n ],\n})\nexport class WalletCardComponent {\n @HostBinding('class') classAttr = 'wallet';\n\n @Input() wallet: Wallet;\n\n @Output() eventClose = new EventEmitter();\n\n constructor(\n public variablesService: VariablesService,\n private intToMoneyPipe: IntToMoneyPipe,\n private translate: TranslateService,\n private backend: BackendService\n ) {}\n\n getBalancesTooltip(): HTMLDivElement {\n const tooltip = document.createElement('div');\n const scrollWrapper = document.createElement('div');\n if (!this.wallet || !this.wallet.balances) {\n return null;\n }\n const { balances } = this.wallet;\n\n scrollWrapper.classList.add('balance-scroll-list');\n balances.forEach(({ unlocked, total, asset_info: { ticker } }) => {\n const available = document.createElement('span');\n available.setAttribute('class', 'available');\n available.innerText = `${this.translate.instant('WALLET.AVAILABLE_BALANCE')} `;\n const availableB = document.createElement('b');\n availableB.innerText = `${this.intToMoneyPipe.transform(unlocked)} ${ticker || '---'}`;\n available.appendChild(availableB);\n scrollWrapper.appendChild(available);\n\n const locked = document.createElement('span');\n locked.setAttribute('class', 'locked');\n locked.innerText = `${this.translate.instant('WALLET.LOCKED_BALANCE')} `;\n const lockedB = document.createElement('b');\n lockedB.innerText = `${this.intToMoneyPipe.transform(new BigNumber(total).minus(unlocked))} ${ticker || '---'}`;\n locked.appendChild(lockedB);\n scrollWrapper.appendChild(locked);\n });\n tooltip.appendChild(scrollWrapper);\n const link = document.createElement('span');\n link.setAttribute('class', 'link');\n link.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE_LINK');\n link.addEventListener('click', () => {\n this.backend.openUrlInBrowser(LOCKED_BALANCE_HELP_PAGE);\n });\n tooltip.appendChild(link);\n return tooltip;\n }\n}\n","import { AssetInfo } from '@api/models/assets.model';\n\nexport type ZanoAssetInfo = AssetInfo & { logo: string; price_url: string };\n\nexport const zanoAssetInfo: ZanoAssetInfo = {\n asset_id: 'd6329b5b1f7c0805b5c345f4957554002a2f557845f64d7645dae0e051a6498a',\n current_supply: 0,\n decimal_point: 12,\n full_name: 'Zano',\n logo: 'assets/currency-icons/zano.svg',\n meta_info: '',\n owner: '0000000000000000000000000000000000000000000000000000000000000000',\n price_url: 'https://explorer.zano.org/api/price?asset=zano',\n ticker: 'ZANO',\n total_max_supply: 0,\n};\n\nexport const defaultImgSrc = 'assets/currency-icons/custom_token.svg';\n","export const MIXIN = 15; // default mixin value\nexport const RCV_ADDR_QR_SCALE = 1.5; // scale factor for QR code\n\nexport const AUDITABLE_WALLET_HELP_PAGE = 'docs.zano.org/docs/use/auditable-wallets-faq';\nexport const CREATE_NEW_WALLET_HELP_PAGE = 'docs.zano.org/docs/use/wallets/gui-wallet';\nexport const LOCKED_BALANCE_HELP_PAGE = 'docs.zano.org/docs/use/locked-balance';\nexport const DOWNLOADS_PAGE_URL = 'zano.org/downloads';\nexport const ZARCANUM_MIGRATION = 'docs.zano.org/docs/use/zarcanum-migration/';\n\nexport const BLOCK_EXPLORER_TX_URL_PREFIX = 'explorer.zano.org/transaction/';\nexport const BLOCK_EXPLORER_TN_TX_URL_PREFIX = 'testnet-explorer.zano.org/transaction/';\n","import { ScaleItems } from '@api/models/scale.model';\n\nexport const scaleItems: ScaleItems = [\n {\n value: '8px',\n name: 'SETTINGS.SCALE.75',\n },\n {\n value: '10px',\n name: 'SETTINGS.SCALE.100',\n },\n {\n value: '12px',\n name: 'SETTINGS.SCALE.125',\n },\n {\n value: '14px',\n name: 'SETTINGS.SCALE.150',\n },\n];\n","import { AfterViewInit, Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[appAutofocus]',\n standalone: true,\n})\nexport class AutoFocusDirective implements AfterViewInit {\n constructor(private elementRef: ElementRef) {}\n\n ngAfterViewInit() {\n setTimeout(() => this.elementRef.nativeElement.focus());\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { NavigationService } from '@parts/services/back.service';\n\n@Directive({\n selector: '[appBackButton]',\n})\nexport class BackButtonDirective {\n constructor(private navigationService: NavigationService) {}\n\n @HostListener('click')\n onClick(): void {\n this.navigationService.back();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BackButtonDirective } from './back-button.directive';\n\n@NgModule({\n declarations: [BackButtonDirective],\n exports: [BackButtonDirective],\n imports: [CommonModule],\n})\nexport class BackButtonModule {}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[appDefaultImg]',\n})\nexport class DefaultImgDirective {\n @Input() defaultImgSrc!: string | null | undefined;\n @Input() defaultImgAlt: string | null | undefined;\n\n constructor(private elementRef: ElementRef) {}\n\n @HostListener('error')\n handlerOnError(): void {\n const elementImg: HTMLImageElement = this.elementRef.nativeElement;\n elementImg.onerror = null;\n elementImg.src = this.defaultImgSrc || '---';\n elementImg.alt = this.defaultImgAlt || '---';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DefaultImgDirective } from './default-img.directive';\n\n@NgModule({\n declarations: [DefaultImgDirective],\n exports: [DefaultImgDirective],\n imports: [CommonModule],\n})\nexport class DefaultImgModule {}\n","export * from './default-img.module';\n","import { Directive, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { Subject } from 'rxjs';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\n\n@Directive({\n selector: '[appDisablePriceFetch]',\n})\nexport class DisablePriceFetchDirective implements OnDestroy {\n private destroy$: Subject = new Subject();\n\n constructor(\n private _variablesService: VariablesService,\n private _templateRef: TemplateRef,\n private _viewContainer: ViewContainerRef\n ) {\n this._variablesService.disable_price_fetch$.pipe(distinctUntilChanged(), takeUntil(this.destroy$)).subscribe({\n next: (disable_price_fetch: boolean) => {\n this._viewContainer.clear();\n if (!disable_price_fetch) {\n this._viewContainer.createEmbeddedView(this._templateRef);\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DisablePriceFetchDirective } from './disable-price-fetch.directive';\n\n@NgModule({\n declarations: [DisablePriceFetchDirective],\n imports: [CommonModule],\n exports: [DisablePriceFetchDirective],\n})\nexport class DisablePriceFetchModule {}\n","export * from './disable-price-fetch.directive';\nexport * from './disable-price-fetch.module';\n","export * from './default-img';\nexport * from './disable-price-fetch';\nexport * from './input-disable-selection';\nexport * from './input-validate';\nexport * from './tooltip';\nexport * from './lower-case.directive';\n","export * from './input-disable-selection.module';\nexport * from './input-disable-selection.directive';\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line\n selector: 'input',\n})\nexport class InputDisableSelectionDirective {\n @HostListener('mousedown', ['$event'])\n handleInput(event: Event): void {\n if ((event.target).readOnly) {\n event.preventDefault();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputDisableSelectionDirective } from '@parts/directives/input-disable-selection/input-disable-selection.directive';\n\n@NgModule({\n declarations: [InputDisableSelectionDirective],\n exports: [InputDisableSelectionDirective],\n imports: [CommonModule],\n})\nexport class InputDisableSelectionModule {}\n","export * from './input-validate.module';\nexport * from './input-validate.directive';\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { BigNumber } from 'bignumber.js';\n\n@Directive({\n selector: '[appInputValidate]',\n})\nexport class InputValidateDirective {\n constructor(private el: ElementRef, private variablesService: VariablesService) {}\n\n @Input('appInputValidate')\n public type: 'money' | 'integer';\n\n private _decimalPoint: number = this.variablesService.decimal_point;\n\n @Input('decimalPoint')\n public set decimalPoint(value: number) {\n this._decimalPoint = value;\n this._formatValue();\n }\n\n @HostListener('input', ['$event'])\n handleInput(): void {\n this._formatValue();\n }\n\n private _formatValue(): void {\n switch (this.type) {\n case 'money': {\n return this._money();\n }\n case 'integer': {\n return this._integer();\n }\n }\n }\n\n private _prepareToMoney(value: string): string {\n let currentValue = value;\n // eslint-disable-next-line\n const OnlyD = /[^\\d\\.]/g;\n const _has_error = currentValue.match(OnlyD);\n if (_has_error && _has_error.length) {\n currentValue = currentValue.replace(',', '.').replace(OnlyD, '');\n }\n const _double_separator = currentValue.match(/\\./g);\n if (_double_separator && _double_separator.length > 1) {\n currentValue = currentValue.substr(0, currentValue.lastIndexOf('.'));\n }\n\n if (currentValue.length > 1 && currentValue.indexOf('.') !== 1 && currentValue.indexOf('0') === 0) {\n currentValue = new BigNumber(currentValue).toString();\n }\n\n if (currentValue.indexOf('.') === 0) {\n currentValue = '0' + currentValue;\n }\n const _zero_fill = currentValue.split('.');\n if (_zero_fill[0].length > 20) {\n _zero_fill[0] = _zero_fill[0].substr(0, 20);\n }\n\n if (1 in _zero_fill && _zero_fill[1].length) {\n _zero_fill[1] = _zero_fill[1].substr(0, this._decimalPoint);\n }\n return this._decimalPoint ? _zero_fill.join('.') : _zero_fill[0];\n }\n\n private _money(): void {\n const value: string = this.el.nativeElement.value;\n const originalValue: string = value;\n const preparedValue: string = this._prepareToMoney(value);\n\n if (preparedValue !== originalValue) {\n this._setValue(preparedValue);\n }\n }\n\n private _integer(): void {\n let preparedValue = this.el.nativeElement.value;\n const originalValue = preparedValue;\n const OnlyD = /\\D/g;\n const _has_error = preparedValue.match(OnlyD);\n if (_has_error && _has_error.length) {\n preparedValue = preparedValue.replace(OnlyD, '');\n }\n if (preparedValue !== originalValue) {\n this._setValue(preparedValue);\n }\n }\n\n private _setValue(value: string): void {\n this.el.nativeElement.value = value;\n const cursorPosition = this.el.nativeElement.selectionEnd;\n this.el.nativeElement.setSelectionRange(cursorPosition, cursorPosition);\n this.el.nativeElement.dispatchEvent(new Event('input'));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputValidateDirective } from '@parts/directives/input-validate/input-validate.directive';\n\n@NgModule({\n declarations: [InputValidateDirective],\n exports: [InputValidateDirective],\n imports: [CommonModule],\n})\nexport class InputValidateModule {}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: 'input[lowerCase]:not([upperCase]),textarea[lowerCase]:not([upperCase])',\n standalone: true,\n})\nexport class LowerCaseDirective {\n @Input() lowerCaseValue: string;\n\n @Input() lowerCaseDisabled = false;\n\n private getCaret(el) {\n return {\n start: el.selectionStart,\n end: el.selectionEnd,\n };\n }\n\n private setCaret(el, start, end) {\n el.selectionStart = start;\n el.selectionEnd = end;\n\n el.focus();\n }\n\n private dispatchEvent(el, eventType) {\n const event = document.createEvent('Event');\n event.initEvent(eventType, false, false);\n el.dispatchEvent(event);\n }\n\n private convertValue(el, value) {\n el.value = value.toLowerCase();\n\n this.dispatchEvent(el, 'input');\n }\n\n @HostListener('blur', ['$event.target', '$event.target.value'])\n onBlur(el: any, value: string): void {\n if (this.lowerCaseDisabled) {\n return;\n }\n if (\n (!this.lowerCaseValue || 'blur' === this.lowerCaseValue) &&\n 'function' === typeof value.toLowerCase &&\n value.toLowerCase() !== value\n ) {\n this.convertValue(el, value);\n this.dispatchEvent(el, 'blur'); // in case updateOn is set to blur\n }\n }\n\n @HostListener('input', ['$event.target', '$event.target.value'])\n onInput(el: any, value: string): void {\n if (this.lowerCaseDisabled) {\n return;\n }\n if (!this.lowerCaseValue && 'function' === typeof value.toLowerCase && value.toLowerCase() !== value) {\n let { start, end } = this.getCaret(el);\n\n if (value[0] === ' ' && start === 1 && end === 1) {\n start = 0;\n end = 0;\n }\n\n this.convertValue(el, value);\n\n this.setCaret(el, start, end);\n }\n }\n}\n","export * from './tooltip.directive';\nexport * from './tooltip.module';\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n SecurityContext,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Directive({\n // eslint-disable-next-line\n selector: '[tooltip]',\n})\nexport class TooltipDirective implements OnDestroy {\n @HostBinding('style.cursor') cursor;\n\n @Input('tooltip') tooltipInner: any;\n\n @Input() placement: string;\n\n @Input() tooltipClass: string;\n\n @Input() timeout = 0;\n\n @Input() timeDelay = 0;\n\n @Input() delay = 0;\n\n @Input() showWhenNoOverflow = true;\n\n @Output() eventHide = new EventEmitter();\n\n tooltip: HTMLElement;\n\n removeTooltipTimeout;\n\n removeTooltipTimeoutInner;\n\n removeTooltipTimeDelay;\n\n private enter: (event: MouseEvent) => void;\n\n private leave: (event: MouseEvent) => void;\n\n constructor(private el: ElementRef, private renderer: Renderer2, private sanitizer: DomSanitizer) {}\n\n @HostListener('mouseenter') onMouseEnter(): void {\n if (!this.tooltipInner) {\n return;\n }\n if (\n this.showWhenNoOverflow ||\n (!this.showWhenNoOverflow && this.el.nativeElement.offsetWidth < this.el.nativeElement.scrollWidth)\n ) {\n this.cursor = 'pointer';\n if (!this.tooltip) {\n if (this.timeDelay !== 0) {\n this.removeTooltipTimeDelay = setTimeout(() => {\n this.show();\n }, this.timeDelay);\n } else {\n this.show();\n }\n } else {\n this.cancelHide();\n }\n }\n }\n\n @HostListener('mouseleave') onMouseLeave(): void {\n clearTimeout(this.removeTooltipTimeDelay);\n if (this.tooltip) {\n this.hide();\n }\n }\n\n show(): void {\n this.create();\n this.placement = this.placement === null ? 'top' : this.placement;\n this.setPosition(this.placement);\n }\n\n hide(): void {\n this.removeTooltipTimeout = setTimeout(() => {\n this.renderer.setStyle(this.tooltip, 'opacity', '0');\n this.removeTooltipTimeoutInner = setTimeout(() => {\n this.renderer.removeChild(document.body, this.tooltip);\n this.tooltip.removeEventListener('mouseenter', this.enter);\n this.tooltip.removeEventListener('mouseleave', this.leave);\n this.tooltip = null;\n this.eventHide.emit(true);\n }, this.delay);\n }, this.timeout);\n }\n\n cancelHide(): void {\n clearTimeout(this.removeTooltipTimeout);\n clearTimeout(this.removeTooltipTimeoutInner);\n this.renderer.setStyle(this.tooltip, 'opacity', '1');\n }\n\n create(): void {\n this.tooltip = this.renderer.createElement('div');\n let innerBlock = this.renderer.createElement('div');\n if (typeof this.tooltipInner === 'string') {\n innerBlock.innerText = this.sanitizer.sanitize(SecurityContext.HTML, this.tooltipInner);\n } else {\n if (this.tooltipInner) {\n innerBlock = this.tooltipInner;\n }\n }\n this.renderer.addClass(innerBlock, 'tooltip-inner');\n this.renderer.addClass(innerBlock, 'scrolled-content');\n this.renderer.appendChild(this.tooltip, innerBlock);\n this.renderer.appendChild(document.body, this.tooltip);\n\n this.enter = (): void => {\n this.cancelHide();\n };\n this.tooltip.addEventListener('mouseenter', this.enter);\n this.leave = (): void => {\n if (this.tooltip) {\n this.hide();\n }\n };\n this.tooltip.addEventListener('mouseleave', this.leave);\n\n this.renderer.setStyle(document.body, 'position', 'relative');\n this.renderer.setStyle(this.tooltip, 'position', 'absolute');\n if (this.tooltipClass !== null) {\n const classes = this.tooltipClass?.split(' ') ?? [];\n for (let i = 0; i < classes.length; i++) {\n this.renderer.addClass(this.tooltip, classes[i]);\n }\n }\n this.renderer.setStyle(this.tooltip, 'opacity', '0');\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.delay}ms`);\n window.setTimeout(() => {\n return this.tooltip && this.renderer.setStyle(this.tooltip, 'opacity', '1');\n }, 0);\n }\n\n setPosition(placement): void {\n const hostPos = this.el.nativeElement.getBoundingClientRect();\n this.renderer.addClass(this.tooltip, 'ng-tooltip-' + placement);\n const topExit =\n hostPos.top - this.tooltip.getBoundingClientRect().height - parseInt(getComputedStyle(this.tooltip).marginTop, 10) < 0;\n const bottomExit =\n window.innerHeight <\n hostPos.bottom + this.tooltip.getBoundingClientRect().height + parseInt(getComputedStyle(this.tooltip).marginTop, 10);\n\n switch (placement) {\n case 'top':\n if (topExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('bottom');\n return;\n } else {\n this.renderer.setStyle(\n this.tooltip,\n 'left',\n hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px'\n );\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\n this.checkSides();\n }\n break;\n case 'top-left':\n if (topExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('bottom-left');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\n this.checkSides();\n }\n break;\n case 'top-right':\n if (topExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('bottom-right');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\n this.checkSides();\n }\n break;\n case 'bottom':\n if (bottomExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('top');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\n this.renderer.setStyle(\n this.tooltip,\n 'left',\n hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px'\n );\n this.checkSides();\n }\n break;\n case 'bottom-left':\n if (bottomExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('top-left');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px');\n this.checkSides();\n }\n break;\n case 'bottom-right':\n if (bottomExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('top-right');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px');\n this.checkSides();\n }\n break;\n case 'left':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\n this.renderer.setStyle(\n this.tooltip,\n 'top',\n hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px'\n );\n break;\n case 'left-top':\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\n break;\n case 'left-bottom':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px');\n break;\n case 'right':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\n this.renderer.setStyle(\n this.tooltip,\n 'top',\n hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px'\n );\n break;\n case 'right-top':\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\n break;\n case 'right-bottom':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px');\n break;\n }\n }\n\n checkSides(): void {\n if (this.tooltip.getBoundingClientRect().left < 0) {\n this.renderer.setStyle(this.tooltip, 'left', 0);\n }\n if (this.tooltip.getBoundingClientRect().right > window.innerWidth) {\n this.renderer.setStyle(this.tooltip, 'left', window.innerWidth - this.tooltip.getBoundingClientRect().width + 'px');\n }\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.removeTooltipTimeout);\n clearTimeout(this.removeTooltipTimeoutInner);\n clearTimeout(this.removeTooltipTimeDelay);\n if (this.tooltip) {\n this.renderer.removeChild(document.body, this.tooltip);\n this.tooltip = null;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n declarations: [TooltipDirective],\n imports: [CommonModule],\n exports: [TooltipDirective],\n})\nexport class TooltipModule {}\n","import { Component, Directive, inject, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { VariablesService } from '../services/variables.service';\n\n@Component({\n selector: 'app-hidden',\n template: `******`,\n standalone: true,\n})\nclass HiddenComponent {}\n\n@Directive({\n selector: '[appVisibilityBalance]',\n standalone: true,\n})\nexport class VisibilityBalanceDirective implements OnInit, OnDestroy {\n private _variablesService: VariablesService = inject(VariablesService);\n private _templateRef: TemplateRef = inject(TemplateRef);\n private _viewContainer: ViewContainerRef = inject(ViewContainerRef);\n private _destroy$: Subject = new Subject();\n\n ngOnInit(): void {\n this._variablesService.visibilityBalance$.pipe(distinctUntilChanged(), takeUntil(this._destroy$)).subscribe({\n next: (visibility: boolean) => {\n this._viewContainer.clear();\n if (visibility) {\n this._viewContainer.createEmbeddedView(this._templateRef);\n } else {\n this._viewContainer.createComponent(HiddenComponent);\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","import { Subtransfer, Transaction } from '@api/models/transaction.model';\nimport { Wallet } from '@api/models/wallet.model';\nimport { intToMoney } from '@parts/functions/int-to-money';\nimport { AssetInfo } from '@api/models/assets.model';\nimport { zanoAssetInfo } from '@parts/data/assets';\nimport { isFinalizator, isInitiator, isSelfTransaction, isSwapTransaction } from '@parts/functions/identify-transaction';\n\nexport interface AmountItem {\n amount: string;\n ticker: string;\n}\n\nexport type AmountItems = AmountItem[];\n\nexport const getAmountItems = (transaction: Transaction, wallet: Wallet): AmountItems => {\n const { subtransfers, fee } = transaction;\n\n const items: { amount: string; ticker: string }[] = [];\n\n if (!subtransfers?.length) {\n items.push({ amount: '0', ticker: zanoAssetInfo.ticker });\n return items;\n }\n\n if (isInitiator(transaction) && !Boolean(subtransfers.find(({ asset_id }) => asset_id === zanoAssetInfo.asset_id))) {\n const preparedAmount: string = intToMoney(fee, zanoAssetInfo.decimal_point);\n items.push({ amount: preparedAmount, ticker: zanoAssetInfo.ticker });\n }\n\n subtransfers.forEach((subtransfer: Subtransfer) => {\n const { asset_id, amount, is_income } = subtransfer;\n const assetInfo: AssetInfo | undefined = wallet.allAssetsInfo.find(v => asset_id === v.asset_id);\n\n if (!assetInfo) {\n if (amount.toNumber() === 0) {\n return;\n }\n\n const preparedAmount: string = (is_income ? amount : amount.negated()).toString();\n items.push({ amount: preparedAmount, ticker: '***' });\n return;\n }\n\n const { ticker, decimal_point } = assetInfo;\n\n if (asset_id !== zanoAssetInfo.asset_id) {\n if (amount.toNumber() === 0) {\n return;\n }\n\n const preparedAmount: string = intToMoney(is_income ? amount : amount.negated(), decimal_point);\n items.push({ amount: preparedAmount, ticker });\n return;\n }\n\n if (asset_id === zanoAssetInfo.asset_id) {\n const { address } = wallet;\n\n const selfTransaction: boolean = isSelfTransaction(transaction, address);\n const swapTransaction: boolean = isSwapTransaction(transaction);\n const finalizator: boolean = isFinalizator(transaction);\n const initiator: boolean = isInitiator(transaction);\n\n const condition_1: boolean = !amount.eq(fee ?? 0) || selfTransaction || (swapTransaction && finalizator);\n const condition_2: boolean = amount.toNumber() !== 0;\n\n if (!is_income ? condition_1 : condition_2) {\n let preparedAmount!: string;\n\n if (is_income) {\n preparedAmount = intToMoney(initiator ? amount.plus(fee) : amount, decimal_point);\n } else {\n preparedAmount = intToMoney((initiator ? amount.minus(fee ?? 0) : amount).negated(), decimal_point);\n }\n\n items.push({ amount: preparedAmount, ticker });\n return;\n }\n }\n });\n\n return items;\n};\n","export const hasOwnProperty = (obj: object, key: string): boolean => {\n if (Boolean(obj) && Boolean(key)) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n }\n return false;\n};\n","import { Transaction } from '@api/models/transaction.model';\nimport { zanoAssetInfo } from '@parts/data/assets';\n\nexport const isInitiator = (transaction: Transaction): boolean => {\n const {\n employed_entries: { spent = [] },\n } = transaction;\n return Boolean(\n spent?.find(({ index }) => {\n return index === 0;\n })\n );\n};\n\nexport const isFinalizator = (transaction: Transaction): boolean => {\n return !isInitiator(transaction);\n};\n\nexport const isSelfTransaction = (transaction: Transaction, address: string): boolean => {\n const {\n remote_addresses,\n employed_entries: { receive, spent },\n subtransfers,\n fee,\n } = transaction;\n\n const condition1 = remote_addresses?.includes(address);\n const condition2 = [...(receive ?? []), ...(spent ?? [])].map(({ asset_id }) => asset_id === zanoAssetInfo.asset_id).every(Boolean);\n const condition3 = subtransfers?.length === 1 && subtransfers[0].asset_id === zanoAssetInfo.asset_id && subtransfers[0].amount.eq(fee);\n\n return condition1 && condition2 && condition3;\n};\n\nexport const isSwapTransaction = (transaction: Transaction): boolean => {\n const { subtransfers } = transaction;\n const arr = subtransfers.map(({ is_income }) => is_income);\n const condition1 = arr.some(value => value);\n const condition2 = arr.some(value => !value);\n return condition1 && condition2;\n};\n","import { BigNumber } from 'bignumber.js';\n\nexport const intToMoney = (value: number | string | BigNumber, decimal_point?: any): string => {\n if (value === 0 || value === undefined) {\n return '0';\n }\n let maxFraction = 12;\n if (decimal_point !== undefined && decimal_point !== null) {\n maxFraction = parseInt(decimal_point, 10);\n }\n const power = Math.pow(10, maxFraction);\n let str = new BigNumber(value).div(power).toFixed(maxFraction, 1);\n\n if (maxFraction != 0) {\n for (let i = str.length - 1; i >= 0; i--) {\n if (str[i] !== '0') {\n str = str.substr(0, i + 1);\n break;\n }\n }\n }\n\n if (str.length >= 21) {\n const hasMinus = str.indexOf('-') !== -1;\n const hasDot = str.indexOf('.') !== -1;\n const sliceFrom = 0;\n let sliceTo = 20;\n\n if (hasDot) {\n sliceTo += 1;\n\n if (decimal_point == 20) {\n sliceTo += 1;\n }\n }\n\n if (hasMinus) {\n sliceTo += 1;\n }\n\n str = str.slice(sliceFrom, sliceTo);\n }\n if (str[str.length - 1] === '.') {\n str = str.substr(0, str.length - 1);\n }\n return str;\n};\n","import { BigNumber } from 'bignumber.js';\n\nexport const moneyToInt = (value: string, decimal_point?: any): BigNumber => {\n const CURRENCY_DISPLAY_DECIMAL_POINT = decimal_point ?? 12;\n let result: BigNumber = new BigNumber('');\n if (value) {\n let am_str = value.trim();\n const point_index = am_str.indexOf('.');\n let fraction_size = 0;\n if (-1 !== point_index) {\n fraction_size = am_str.length - point_index - 1;\n while (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size && '0' === am_str[am_str.length - 1]) {\n am_str = am_str.slice(0, am_str.length - 1);\n --fraction_size;\n }\n\n if (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size) {\n am_str = am_str.slice(0, point_index) + am_str.slice(point_index + 1, CURRENCY_DISPLAY_DECIMAL_POINT);\n } else {\n am_str = am_str.slice(0, point_index) + am_str.slice(point_index + 1, am_str.length);\n }\n } else {\n fraction_size = 0;\n }\n if (!am_str.length) {\n return undefined;\n }\n if (am_str.length >= 21) {\n am_str = am_str.slice(0, am_str.indexOf('.') !== -1 ? (decimal_point == 20 ? 22 : 21) : decimal_point == 20 ? 21 : 20);\n }\n if (am_str[am_str.length - 1] === '.') {\n am_str = am_str.substr(0, am_str.length - 1);\n }\n if (fraction_size < CURRENCY_DISPLAY_DECIMAL_POINT) {\n for (let i = 0; i !== CURRENCY_DISPLAY_DECIMAL_POINT - fraction_size; i++) {\n am_str = am_str + '0';\n }\n }\n result = new BigNumber(am_str).integerValue();\n }\n return result;\n};\n","import { Component, inject } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { AssetInfo } from '@api/models/assets.model';\nimport { ZanoAssetInfo, zanoAssetInfo } from '@parts/data/assets';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IntToMoneyPipeModule } from '@parts/pipes';\n\n@Component({\n selector: 'app-asset-details',\n templateUrl: './asset-details.component.html',\n styleUrls: ['./asset-details.component.scss'],\n standalone: true,\n imports: [CommonModule, TranslateModule, IntToMoneyPipeModule, MatDialogModule],\n})\nexport class AssetDetailsComponent {\n public readonly zanoAssetInfo: ZanoAssetInfo = zanoAssetInfo;\n\n public readonly data: { assetInfo: AssetInfo; title?: string } = inject(MAT_DIALOG_DATA);\n\n public readonly variablesService: VariablesService = inject(VariablesService);\n}\n","

{{ data?.title ?? 'ASSETS.MODALS.ASSET_DETAILS.TITLE' | translate }}

\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.NAME' | translate }}{{ assetInfo.full_name }}
{{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.TICKER' | translate }}{{ assetInfo.ticker }}
{{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.OWNER' | translate }}\n {{ assetInfo.owner }}\n
{{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.ID' | translate }}\n {{ assetInfo.asset_id }}\n
{{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.CURRENT_SUPPLY' | translate }}\n {{\n (assetInfo.asset_id === zanoAssetInfo.asset_id\n ? variablesService.zano_current_supply ?? 'Unknown'\n : assetInfo.current_supply\n ) | intToMoney : assetInfo.decimal_point\n }}\n
{{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.MAX_SUPPLE' | translate }}\n {{\n assetInfo.asset_id === zanoAssetInfo.asset_id\n ? 'Uncapped'\n : (assetInfo.total_max_supply | intToMoney : assetInfo.decimal_point)\n }}\n
\n
\n\n No data\n
\n\n\n \n\n","import { Component, inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nexport interface ConfirmModalData {\n title: string;\n message?: string;\n buttons?: Partial<{\n close: string;\n submit: string;\n }>;\n}\n\n@Component({\n selector: 'app-confirm-modal',\n templateUrl: './confirm-modal.component.html',\n styleUrls: ['./confirm-modal.component.scss'],\n})\nexport class ConfirmModalComponent {\n data: ConfirmModalData = inject(MAT_DIALOG_DATA);\n\n private _dialogRef: MatDialogRef = inject(MatDialogRef);\n\n get title(): string {\n const { title } = this.data;\n return title;\n }\n\n get message(): string {\n const { message } = this.data;\n return message;\n }\n\n submit(): void {\n this._dialogRef.close(true);\n }\n}\n","\n
\n \n\n
\n

{{ title | translate }}

\n

{{ message | translate }}

\n
\n
\n
\n\n\n
\n \n \n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { AutoFocusDirective } from '@parts/directives/autofocus.directive';\nimport { ConfirmModalComponent } from '@parts/modals/confirm-modal/confirm-modal.component';\n\n@NgModule({\n declarations: [ConfirmModalComponent],\n imports: [CommonModule, TranslateModule, FlexLayoutModule, MatIconModule, MatDialogModule, AutoFocusDirective],\n exports: [ConfirmModalComponent],\n})\nexport class ConfirmModalModule {}\n","import { Component, inject } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { FlexModule } from '@angular/flex-layout';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-modal-container',\n templateUrl: './modal-container.component.html',\n styleUrls: ['./modal-container.component.scss'],\n standalone: true,\n imports: [CommonModule, MatDialogModule, TranslateModule, FlexModule, MatIconModule],\n})\nexport class ModalContainerComponent {\n public readonly data: { type: 'error' | 'info' | 'success', message: any } = inject(MAT_DIALOG_DATA);\n}\n","\n
\n \n
\n

{{ 'MODALS.' + data.type.toUpperCase() | translate }}

\n

\n
\n
\n
\n\n\n \n\n","import { Component, HostBinding, Input, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ModalService } from '../../services/modal.service';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'app-open-wallet-modal',\n template: `\n
\n
\n

{{ 'OPEN_WALLET.MODAL.TITLE' | translate }}

\n\n
{{ wallet.name }}
\n
{{ wallet.path }}
\n\n
\n
\n \n \n
\n {{ 'OPEN_WALLET.MODAL.NOT_FOUND' | translate }}\n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n\n
\n \n \n
\n
\n
\n
\n `,\n styleUrls: ['./open-wallet-modal.component.scss'],\n})\nexport class OpenWalletModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n @Input() wallets;\n\n isWrongPassword$ = new BehaviorSubject(false);\n\n wallet = {\n name: '',\n path: '',\n pass: '',\n notFound: false,\n emptyPass: false,\n };\n\n constructor(\n public variablesService: VariablesService,\n public walletsService: WalletsService,\n private backend: BackendService,\n private translate: TranslateService,\n private modalService: ModalService,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n if (this.wallets.length) {\n this.wallet = this.wallets[0];\n this.wallet.pass = '';\n }\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n openWallet(): void {\n if (this.wallets.length === 0) {\n return;\n }\n this.backend.openWallet(\n this.wallet.path,\n this.wallet.pass,\n this.variablesService.count,\n false,\n (open_status, open_data, open_error) => {\n if (open_error === 'WRONG_PASSWORD') {\n this.ngZone.run(() => {\n this.isWrongPassword$.next(true);\n });\n }\n if (open_error && open_error === 'FILE_NOT_FOUND') {\n this.ngZone.run(() => {\n this.wallet.notFound = true;\n });\n let error_translate = this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1');\n error_translate += ':
' + this.wallet.path;\n error_translate += this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2');\n this.modalService.prepareModal('error', error_translate);\n } else {\n if (open_status || open_error === 'FILE_RESTORED') {\n let exists = false;\n this.variablesService.wallets.forEach(wallet => {\n if (wallet.address === open_data['wi'].address) {\n exists = true;\n }\n });\n\n if (exists) {\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\n this.backend.closeWallet(open_data.wallet_id);\n } else {\n const new_wallet = new Wallet(\n open_data.wallet_id,\n this.wallet.name,\n this.wallet.pass,\n open_data['wi'].path,\n open_data['wi'].address,\n open_data['wi'].balance,\n open_data['wi'].unlocked_balance,\n open_data['wi'].mined_total,\n open_data['wi'].tracking_hey\n );\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\n new_wallet.is_auditable = open_data['wi'].is_auditable;\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\n new_wallet.currentPage = 1;\n new_wallet.exclude_mining_txs = false;\n if (open_data.recent_history && open_data.recent_history.history) {\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\n new_wallet.totalPages = Math.ceil(\n open_data.recent_history.total_history_items / this.variablesService.count\n );\n new_wallet.totalPages > this.variablesService.maxPages\n ? (new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index));\n new_wallet.prepareHistory(open_data.recent_history.history);\n } else {\n new_wallet.total_history_item = 0;\n new_wallet.pages = new Array(1).fill(1);\n new_wallet.totalPages = 1;\n }\n this.walletsService.addWallet(new_wallet);\n this.backend.runWallet(open_data.wallet_id);\n this.skipWallet();\n this.isWrongPassword$.next(false);\n }\n }\n }\n }\n );\n }\n\n skipWallet(): void {\n this.ngZone.run(() => {\n if (this.wallets.length) {\n this.wallets.splice(0, 1);\n this.ngOnInit();\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ContractStatusMessagesPipe } from '@parts/pipes/contract-status-messages-pipe/contract-status-messages.pipe';\n\n@NgModule({\n declarations: [ContractStatusMessagesPipe],\n exports: [ContractStatusMessagesPipe],\n providers: [ContractStatusMessagesPipe],\n imports: [CommonModule],\n})\nexport class ContractStatusMessagesPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'contractStatusMessages',\n})\nexport class ContractStatusMessagesPipe implements PipeTransform {\n constructor(private translate: TranslateService) {}\n\n getStateSeller(stateNum: number): string {\n const state = { part1: '', part2: '' };\n switch (stateNum) {\n case 1:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NEW_CONTRACT');\n break;\n case 110:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED');\n break;\n case 201:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.ACCEPTED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAIT');\n break;\n case 2:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAITING_BUYER');\n break;\n case 3:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.COMPLETED');\n break;\n case 4:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NOT_RECEIVED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NULLIFIED');\n break;\n case 5:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.PROPOSAL_CANCEL');\n break;\n case 601:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.BEING_CANCELLED');\n break;\n case 6:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.CANCELLED');\n break;\n case 130:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED_CANCEL');\n break;\n case 140:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.EXPIRED');\n break;\n }\n return state.part1 + (state.part2.length ? '. ' + state.part2 : '');\n }\n\n getStateBuyer(stateNum: number): string {\n const state = { part1: '', part2: '' };\n switch (stateNum) {\n case 1:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING');\n break;\n case 110:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED');\n break;\n case 201:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAIT');\n break;\n case 2:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED');\n break;\n case 120:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_SELLER');\n break;\n case 3:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.COMPLETED');\n break;\n case 4:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NOT_RECEIVED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NULLIFIED');\n break;\n case 5:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_CANCEL');\n break;\n case 601:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.BEING_CANCELLED');\n break;\n case 6:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.CANCELLED');\n break;\n case 130:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED_CANCEL');\n break;\n case 140:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.EXPIRED');\n break;\n }\n return state.part1 + (state.part2.length ? '. ' + state.part2 : '');\n }\n\n transform(state: number, is_a?: boolean): any {\n if (is_a) {\n return this.getStateBuyer(state);\n } else {\n return this.getStateSeller(state);\n }\n }\n}\n","export * from './contract-status-messages-pipe.module';\nexport * from './contract-status-messages.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ContractTimeLeftPipe } from '@parts/pipes/contract-time-left-pipe/contract-time-left.pipe';\n\n@NgModule({\n declarations: [ContractTimeLeftPipe],\n exports: [ContractTimeLeftPipe],\n providers: [ContractTimeLeftPipe],\n imports: [CommonModule],\n})\nexport class ContractTimeLeftPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'contractTimeLeft',\n})\nexport class ContractTimeLeftPipe implements PipeTransform {\n constructor(private service: VariablesService, private translate: TranslateService) {}\n\n transform(value: any, arg?: any): any {\n const time = parseInt(((parseInt(value, 10) - this.service.exp_med_ts) / 3600).toFixed(0), 10);\n const type = arg || 0;\n if (time === 0) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_LESS_ONE');\n }\n if (this.service.settings.language === 'en') {\n if (type === 0) {\n if (time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', {\n time: time,\n });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', {\n time: time,\n });\n }\n } else if (type === 1) {\n if (time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', { time: time });\n }\n } else if (type === 2) {\n if (time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', { time: time });\n }\n }\n } else {\n const rest = time % 10;\n if (type === 0) {\n if ((time > 20 && rest === 1) || time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', {\n time: time,\n });\n } else if ((time > 1 && time < 5) || (time > 20 && (rest === 2 || rest === 3 || rest === 4))) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', {\n time: time,\n });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT', { time: time });\n }\n } else if (type === 1) {\n if ((time > 20 && rest === 1) || time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', { time: time });\n } else if ((time > 1 && time < 5) || (time > 20 && (rest === 2 || rest === 3 || rest === 4))) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_RESPONSE', { time: time });\n }\n } else if (type === 2) {\n if ((time > 20 && rest === 1) || time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', { time: time });\n } else if ((time > 1 && time < 5) || (time > 20 && (rest === 2 || rest === 3 || rest === 4))) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_WAITING', { time: time });\n }\n }\n }\n return null;\n }\n}\n","export * from './contract-time-left-pipe.module';\nexport * from './contract-time-left.pipe';\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Transaction } from '@api/models/transaction.model';\nimport { Wallet } from '@api/models/wallet.model';\nimport { AmountItems, getAmountItems } from '@parts/functions/get-amount-items';\n\n@Pipe({\n name: 'getAmountItems',\n standalone: true,\n})\nexport class GetAmountItemsPipe implements PipeTransform {\n transform(transaction: Transaction, wallet: Wallet): AmountItems {\n return getAmountItems(transaction, wallet);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { AssetInfo } from '@api/models/assets.model';\nimport { WalletsService } from '@parts/services/wallets.service';\n@Pipe({\n name: 'getAssetInfo',\n standalone: true,\n})\nexport class GetAssetInfoPipe implements PipeTransform {\n private walletsService: WalletsService = inject(WalletsService);\n\n transform(value: AssetInfo['asset_id']): AssetInfo | undefined {\n return this.walletsService.currentWallet?.allAssetsInfo.find(({ asset_id }) => asset_id === value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HistoryTypeMessagesPipe } from '@parts/pipes/history-type-messages-pipe/history-type-messages.pipe';\n\n@NgModule({\n declarations: [HistoryTypeMessagesPipe],\n exports: [HistoryTypeMessagesPipe],\n providers: [HistoryTypeMessagesPipe],\n imports: [CommonModule],\n})\nexport class HistoryTypeMessagesPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { hasOwnProperty } from '../../functions/has-own-property';\n\n@Pipe({\n name: 'historyTypeMessages',\n})\nexport class HistoryTypeMessagesPipe implements PipeTransform {\n constructor(private translate: TranslateService) {}\n\n transform(item: any): any {\n if (item.tx_type === 0) {\n if (item.remote_addresses && item.remote_addresses[0]) {\n return item.remote_addresses[0];\n } else {\n if (item.is_income) {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.HIDDEN');\n } else {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED');\n }\n }\n } else if (item.tx_type === 6 && item.height === 0) {\n return 'unknown';\n } else if (item.tx_type === 9) {\n if (hasOwnProperty(item, 'contract') && item.contract[0].is_a) {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_BUYER');\n } else {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_SELLER');\n }\n } else {\n switch (item.tx_type) {\n // case 0:\n // return '';\n // case 1:\n // return '';\n // case 2:\n // return '';\n // case 3:\n // return '';\n case 4:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_ALIAS');\n case 5:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UPDATE_ALIAS');\n case 6:\n return item.employed_entries?.spent?.length\n ? this.translate.instant('HISTORY.TYPE_MESSAGES.POS_REWARD')\n : this.translate.instant('HISTORY.TYPE_MESSAGES.POW_REWARD');\n case 7:\n if (!item.subtransfers || !item.subtransfers.length) {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.SERVICE_TRANSACTIONS');\n } else {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_CONTRACT');\n }\n case 8:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.PLEDGE_CONTRACT');\n // case 9:\n // return '';\n case 10:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.NULLIFY_CONTRACT');\n case 11:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.PROPOSAL_CANCEL_CONTRACT');\n case 12:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CANCEL_CONTRACT');\n }\n }\n\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED');\n }\n}\n","export * from './history-type-messages-pipe.module';\nexport * from './history-type-messages.pipe';\n","export * from './contract-status-messages-pipe';\nexport * from './contract-time-left-pipe';\nexport * from './history-type-messages-pipe';\nexport * from './int-to-money-pipe';\nexport * from './is-available-alias-name-pipe';\nexport * from './money-to-int-pipe';\nexport * from './safe-html-pipe';\nexport * from './get-asset-info.pipe';\nexport * from './short-string.pipe';\n","export * from './int-to-money-pipe.module';\nexport * from './int-to-money.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IntToMoneyPipe } from '@parts/pipes/int-to-money-pipe/int-to-money.pipe';\n\n@NgModule({\n declarations: [IntToMoneyPipe],\n exports: [IntToMoneyPipe],\n providers: [IntToMoneyPipe],\n imports: [CommonModule],\n})\nexport class IntToMoneyPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { intToMoney } from '@parts/functions/int-to-money';\nimport { BigNumber } from 'bignumber.js';\n\n@Pipe({\n name: 'intToMoney',\n})\nexport class IntToMoneyPipe implements PipeTransform {\n constructor(private variablesService: VariablesService) {}\n\n transform(value: number | string | BigNumber, decimal_point = this.variablesService.decimal_point): any {\n return intToMoney(value, decimal_point);\n }\n}\n","export * from './is-available-alias-name-pipe.module';\nexport * from './is-available-alias-name.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IsAvailableAliasNamePipe } from './is-available-alias-name.pipe';\n\n@NgModule({\n declarations: [IsAvailableAliasNamePipe],\n exports: [IsAvailableAliasNamePipe],\n providers: [IsAvailableAliasNamePipe],\n imports: [CommonModule],\n})\nexport class IsAvailableAliasNamePipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Alias } from '@api/models/alias.model';\n\n@Pipe({\n name: 'isAvailableAliasName',\n})\nexport class IsAvailableAliasNamePipe implements PipeTransform {\n transform(alias: Partial | null | undefined): boolean {\n return (Boolean(alias) && Boolean(alias.name) && alias.name.length >= 2 && alias.name.length <= 6) || false;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n@Pipe({\n name: 'isVisibleControlError',\n standalone: true\n})\nexport class IsVisibleControlErrorPipe implements PipeTransform {\n\n transform(control: AbstractControl | null): boolean {\n if (!control) {\n return false;\n }\n return control.invalid && (control.dirty || control.touched);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isInitiator } from '@parts/functions/identify-transaction';\nimport { Transaction } from '@api/models/transaction.model';\n\n@Pipe({\n name: 'isVisibleFee',\n standalone: true,\n})\nexport class IsVisibleFeePipe implements PipeTransform {\n transform(transaction: Transaction): boolean {\n const { subtransfers } = transaction;\n const condition1 = subtransfers ? !subtransfers?.every(({ is_income }) => is_income) : false;\n const condition2 = isInitiator(transaction);\n return condition1 && condition2;\n }\n}\n","export * from './money-to-int-pipe.module';\nexport * from './money-to-int.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MoneyToIntPipe } from '@parts/pipes/money-to-int-pipe/money-to-int.pipe';\n\n@NgModule({\n declarations: [MoneyToIntPipe],\n exports: [MoneyToIntPipe],\n providers: [MoneyToIntPipe],\n imports: [CommonModule],\n})\nexport class MoneyToIntPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { moneyToInt } from '@parts/functions/money-to-int';\n\n@Pipe({\n name: 'moneyToInt',\n})\nexport class MoneyToIntPipe implements PipeTransform {\n constructor(private variablesService: VariablesService) {}\n\n transform(value: any): any {\n return moneyToInt(value, this.variablesService.decimal_point);\n }\n}\n","export * from './safe-html-pipe.module';\nexport * from './safe-html.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SafeHTMLPipe } from '@parts/pipes/safe-html-pipe/safe-html.pipe';\n\n@NgModule({\n declarations: [SafeHTMLPipe],\n exports: [SafeHTMLPipe],\n providers: [SafeHTMLPipe],\n imports: [CommonModule],\n})\nexport class SafeHtmlPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHTML',\n})\nexport class SafeHTMLPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'zanoShortString',\n standalone: true,\n})\nexport class ShortStringPipe implements PipeTransform {\n transform(value: string | null | undefined, left = 6, right = 6): string | null | undefined {\n return value && `${value.slice(0, left)}...${value.slice(-right)}`;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Router, NavigationEnd } from '@angular/router';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationService {\n private history: string[] = [];\n\n constructor(private router: Router, private location: Location) {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n this.history.push(event.urlAfterRedirects);\n }\n });\n }\n\n back(): void {\n this.history.pop();\n if (this.history.length > 0) {\n this.location.back();\n } else {\n this.router.navigateByUrl('/').then();\n }\n }\n}\n","import { inject, Injectable, NgZone } from '@angular/core';\nimport { ModalContainerComponent } from '../modals/modal-container/modal-container.component';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { take } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private _count: number = 0;\n\n private readonly _matDialog: MatDialog = inject(MatDialog);\n\n private readonly _ngZone: NgZone = inject(NgZone);\n\n prepareModal(type: 'error' | 'info' | 'success' | string, message: any): void {\n const config: MatDialogConfig = {\n data: {\n type,\n message,\n },\n width: '34rem'\n };\n\n this._ngZone.run(() => {\n const matDialogRef: MatDialogRef = this._matDialog.open(ModalContainerComponent, config);\n\n matDialogRef\n .afterOpened()\n .pipe(take(1))\n .subscribe(() => this._count + 1);\n matDialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe(() => this._count - 1);\n });\n }\n}\n","import { inject, Injectable, NgZone, OnDestroy } from '@angular/core';\nimport { DeeplinkParams, Wallet } from '@api/models/wallet.model';\nimport { Contact } from '@api/models/contact.model';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { Idle } from 'idlejs/dist';\nimport { Router } from '@angular/router';\nimport { ContextMenuComponent, ContextMenuService } from '@perfectmemory/ngx-contextmenu';\nimport { BigNumber } from 'bignumber.js';\nimport { Aliases } from '@api/models/alias.model';\nimport { distinctUntilChanged, map, takeUntil } from 'rxjs/operators';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VariablesService implements OnDestroy {\n disable_price_fetch$ = new BehaviorSubject(false);\n\n visibilityBalance$ = new BehaviorSubject(true);\n\n zano_current_supply = undefined;\n\n rpc_port!: number;\n\n use_debug_mode$: BehaviorSubject = new BehaviorSubject(false);\n\n info$: BehaviorSubject = new BehaviorSubject({});\n\n is_hardfok_active$: Observable = this.info$.pipe(\n map(info => {\n return Boolean(info?.['is_hardfok_active']?.[4]);\n }),\n distinctUntilChanged()\n );\n\n stop_paginate = {};\n\n sync_started: boolean = false;\n\n decimal_point: number = 12;\n\n appPass: string = '';\n\n // \\(2^{64}-1\\) => (18,446,744,073,709,551,615)\n maximum_value: BigNumber = new BigNumber('18446744073709551615');\n\n appLogin: boolean = false;\n\n zanoMoneyEquivalent: number = 0;\n\n zanoMoneyEquivalentPercent: number = 0;\n\n defaultTicker: 'ZANO' = 'ZANO';\n\n opening_wallet: Wallet;\n\n exp_med_ts: number = 0;\n\n net_time_delta_median: number = 0;\n\n height_app: number = 0;\n\n height_max: number = 0;\n\n downloaded: number = 0;\n\n total: number = 0;\n\n last_build_available: string = '';\n\n last_build_displaymode: number = 0;\n\n daemon_state: number = 3;\n\n daemon_state$: BehaviorSubject = new BehaviorSubject(this.daemon_state);\n\n deeplink$: BehaviorSubject = new BehaviorSubject(null);\n\n sendActionData$: BehaviorSubject = new BehaviorSubject({});\n\n sync = {\n progress_value: 0,\n progress_value_text: '0',\n blocks: {\n current: 0,\n max: 0,\n },\n };\n\n public sync_wallets: { [wallet_id: number]: boolean } = {};\n\n download = {\n progress_value: 0,\n progress_value_text: '0',\n };\n\n // Avoid of execute function before callback complete\n get_recent_transfers: boolean = false;\n\n default_fee: string = '0.010000000000';\n\n default_fee_big: BigNumber = new BigNumber('10000000000');\n\n settings = {\n appLockTime: 15,\n appLog: 0,\n scale: '10px',\n appUseTor: false,\n visibilityBalance: true,\n language: 'en',\n default_path: '/',\n viewedContracts: [],\n notViewedContracts: [],\n zanoCompanionForm: {\n zanoCompation: false,\n secret: '',\n },\n wallets: [],\n isDarkTheme: true,\n filters: {\n stakingFilters: null\n }\n };\n\n isDarkTheme$ = new BehaviorSubject(true);\n\n count: number = 40;\n\n maxPages: number = 5;\n\n testnet: boolean = false;\n\n // Testnet or Mainnet\n networkType = '';\n\n wallets: Array = [];\n\n currentWallet: Wallet;\n\n aliases: Aliases = [];\n\n aliasesChecked: any = {};\n\n enableAliasSearch: boolean = false;\n\n maxWalletNameLength: number = 25;\n\n maxCommentLength: number = 255;\n\n dataIsLoaded: boolean = false;\n\n contacts: Array = [];\n\n pattern: string = '^[a-zA-Z0-9_.\\\\]*|~!?@#$%^&+{}()<>:;\"\\'-=/,[\\\\\\\\]*$';\n\n after_sync_request: any = {};\n\n getExpMedTsEvent = new BehaviorSubject(null);\n\n getHeightAppEvent = new BehaviorSubject(null);\n\n getHeightMaxEvent = new BehaviorSubject(null);\n\n getDownloadedAppEvent = new BehaviorSubject(null);\n\n getTotalEvent = new BehaviorSubject(null);\n\n getAliasChangedEvent = new BehaviorSubject(null);\n\n currentWalletChangedEvent = new BehaviorSubject(null);\n\n private _dialog: Dialog = inject(Dialog);\n\n private _matDialog: MatDialog = inject(MatDialog);\n\n idle = new Idle().whenNotInteractive().do(async () => {\n if (this.appPass === '') {\n this.stopCountdown();\n } else {\n await this.ngZone.run(async () => {\n this.stopCountdown();\n this.appPass = '';\n this.appLogin = false;\n this._dialog.closeAll();\n this._matDialog.closeAll();\n await this.router.navigate(['/login'], {\n queryParams: { type: 'auth' },\n });\n });\n }\n });\n\n allContextMenu: ContextMenuComponent;\n\n onlyCopyContextMenu: ContextMenuComponent;\n\n pasteSelectContextMenu: ContextMenuComponent;\n\n private _destroy$: Subject = new Subject();\n\n constructor(private router: Router, private ngZone: NgZone, private contextMenuService: ContextMenuService) {\n this.visibilityBalance$.pipe(takeUntil(this._destroy$)).subscribe({\n next: visibilityBalance => {\n this.settings.visibilityBalance = visibilityBalance;\n },\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n get hasAppPass(): boolean {\n return Boolean(this.appPass);\n }\n\n get isCurrentWalletSync(): boolean {\n if (this.currentWallet) {\n const { wallet_id } = this.currentWallet;\n return this.sync_wallets[wallet_id] || false;\n }\n return false;\n }\n\n get isCurrentWalletLoaded(): boolean {\n if (this.currentWallet) {\n const { loaded } = this.currentWallet;\n return loaded;\n }\n return false;\n }\n\n get walletNamesForComparisons(): string[] {\n return this.wallets.map(({ name }) => name) ?? [];\n }\n\n setExpMedTs(timestamp: number): void {\n if (timestamp !== this.exp_med_ts) {\n this.exp_med_ts = timestamp;\n this.getExpMedTsEvent.next(timestamp);\n }\n }\n\n setHeightApp(height: number): void {\n if (height !== this.height_app) {\n this.height_app = height;\n this.getHeightAppEvent.next(height);\n }\n }\n\n setHeightMax(height: number): void {\n if (height !== this.height_max) {\n this.height_max = height;\n this.getHeightMaxEvent.next(height);\n }\n }\n\n setDownloadedBytes(bytes: number): void {\n if (bytes !== this.downloaded) {\n this.downloaded = this.bytesToMb(bytes);\n this.getDownloadedAppEvent.next(bytes);\n }\n }\n\n setTotalBytes(bytes: number): void {\n if (bytes !== this.total) {\n this.total = this.bytesToMb(bytes);\n this.getTotalEvent.next(bytes);\n }\n }\n\n setRefreshStacking(wallet_id: number): void {\n this.getHeightAppEvent.next(wallet_id);\n }\n\n changeAliases(): void {\n this.getAliasChangedEvent.next(true);\n }\n\n setCurrentWallet(id): void {\n this.wallets.forEach(wallet => {\n if (wallet.wallet_id === id) {\n this.currentWallet = wallet;\n this.currentWalletChangedEvent.next(wallet);\n }\n });\n }\n\n getWallet(id): Wallet | null {\n for (let i = 0; i < this.wallets.length; i++) {\n if (this.wallets[i].wallet_id === id) {\n return this.wallets[i];\n }\n }\n return null;\n }\n\n getNotLoadedWallet(): Wallet | null {\n for (let i = 0; i < this.wallets.length; i++) {\n if (!this.wallets[i].loaded) {\n return this.wallets[i];\n }\n }\n return null;\n }\n\n startCountdown(): void {\n this.idle.within(this.settings.appLockTime).start();\n }\n\n stopCountdown(): void {\n this.idle.stop();\n }\n\n restartCountdown(): void {\n if (Boolean(this.settings.appLockTime)) {\n this.idle.within(this.settings.appLockTime).restart();\n } else {\n this.stopCountdown();\n }\n }\n\n bytesToMb(bytes): number {\n return Number((bytes / Math.pow(1024, 2)).toFixed(1));\n }\n\n onContextMenu($event: any): void {\n $event.target['contextSelectionStart'] = $event.target['selectionStart'];\n $event.target['contextSelectionEnd'] = $event.target['selectionEnd'];\n if (\n $event.target &&\n ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') &&\n !$event.target['readOnly']\n ) {\n this.contextMenuService.show(this.allContextMenu, {\n x: $event.x,\n y: $event.y,\n value: $event.target,\n });\n $event.preventDefault();\n $event.stopPropagation();\n }\n }\n\n onContextMenuOnlyCopy($event: any, copyText?: string): void {\n $event.preventDefault();\n $event.stopPropagation();\n this.contextMenuService.show(this.onlyCopyContextMenu, {\n value: copyText,\n x: $event.x,\n y: $event.y,\n });\n }\n\n onContextMenuPasteSelect($event: any): void {\n $event.target['contextSelectionStart'] = $event.target['selectionStart'];\n $event.target['contextSelectionEnd'] = $event.target['selectionEnd'];\n\n console.warn($event.target);\n console.warn($event.target['disabled']);\n\n if (\n $event.target &&\n ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') &&\n !$event.target['readOnly']\n ) {\n this.contextMenuService.show(this.pasteSelectContextMenu, {\n x: $event.x,\n y: $event.y,\n value: $event.target,\n });\n $event.preventDefault();\n $event.stopPropagation();\n }\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ResponseGetWalletInfo, Wallet } from '@api/models/wallet.model';\nimport { Router } from '@angular/router';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { AssetsWhitelistGetResponseData } from '@api/models/assets.model';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WalletsService {\n get wallets(): Wallet[] {\n return this.variablesService.wallets;\n }\n\n set wallets(value) {\n this.variablesService.wallets = value ?? [];\n }\n\n get currentWallet(): Wallet | null | undefined {\n return this.variablesService.currentWallet;\n }\n\n set currentWallet(value) {\n this.variablesService.currentWallet = value;\n }\n\n constructor(\n private backendService: BackendService,\n private variablesService: VariablesService,\n private _translateService: TranslateService,\n private router: Router,\n private ngZone: NgZone\n ) {}\n\n addWallet(wallet: Wallet): void {\n const { wallet_id, staking } = wallet;\n\n if (staking) {\n const message = this._translateService.instant('STAKING.WALLET_STAKING_ON', { value: wallet.alias?.name ?? wallet.name });\n this.backendService.show_notification('Wallet staking on', message);\n }\n\n this.variablesService.wallets.push(wallet);\n this.updateWalletInfo(wallet_id);\n }\n\n loadAssetsWhitelist(wallet_id: number): void {\n const wallet = this.getWalletById(wallet_id);\n\n if (!wallet) {\n console.warn(`You want update assetsWhiteList by wallet_id: (${wallet_id}). But this wallet not uploaded.`);\n return;\n }\n\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'assets_whitelist_get',\n params: {},\n };\n this.backendService.call_wallet_rpc([wallet_id, params], (status, response_data: AssetsWhitelistGetResponseData) => {\n const { result } = response_data;\n wallet.assetsInfoWhitelist = result;\n });\n }\n\n getWalletById(wallet_id: number): Wallet | undefined {\n const { wallets } = this.variablesService;\n return wallets.find(w => w.wallet_id === wallet_id);\n }\n\n updateWalletInfo(wallet_id: number): void {\n const wallet = this.getWalletById(wallet_id);\n\n if (!wallet) {\n console.warn(`You want update walletInfo by wallet_id: (${wallet_id}). But this wallet not uploaded.`);\n return;\n }\n const callback: (status: boolean, response_data: ResponseGetWalletInfo) => void = (status, response_data) => {\n this.ngZone.run(() => {\n if (status) {\n const { balances } = response_data;\n wallet.balances = balances;\n }\n });\n };\n\n this.backendService.getWalletInfo(wallet_id, callback);\n\n this.loadAssetsWhitelist(wallet_id);\n }\n\n closeWallet(wallet_id: number): void {\n const callback = async (): Promise => {\n this.wallets = this.wallets.filter(w => w.wallet_id !== wallet_id);\n\n await this.ngZone.run(async () => {\n let url = '/';\n if (this.wallets.length > 0) {\n this.currentWallet = this.wallets[0];\n url = '/wallet/';\n }\n if (this.variablesService.appPass) {\n this.backendService.storeSecureAppData();\n }\n await this.router.navigate([url]);\n });\n };\n\n this.backendService.closeWallet(wallet_id, callback);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\ntype TLoaderId = 'fullScreen';\n\ninterface TDataLoader {\n state: boolean;\n message: string;\n}\n\ntype TDataLoaders = {\n [key in TLoaderId]: TDataLoader;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZanoLoadersService {\n private _loaders$ = new BehaviorSubject({\n fullScreen: { state: false, message: 'Loading' },\n });\n\n getState(id: TLoaderId): Observable {\n return this._loaders$.pipe(map(loader => loader[id].state));\n }\n\n getMessage(id: TLoaderId): Observable {\n return this._loaders$.pipe(map(loader => loader[id].message));\n }\n\n open(id: TLoaderId, message: string = 'Loading'): void {\n this._loaders$.next({\n ...this._loaders$.value,\n [id]: {\n state: true,\n message,\n },\n });\n }\n\n close(id: TLoaderId): void {\n this._loaders$.next({\n ...this._loaders$.value,\n [id]: {\n ...this._loaders$.value[id],\n state: false,\n },\n });\n }\n}\n","export const MIMETypes: string[] = [\n '.rar',\n '.txt',\n '.xls',\n '.xlsx',\n '.zip',\n '.png',\n '.pdf',\n '.csv',\n '.doc',\n '.docx',\n '.jar',\n '.jpeg',\n '.jpg',\n '.js',\n '.json',\n '.mp3',\n '.mp4',\n '.mpeg',\n '.aac',\n '.abw',\n '.arc',\n '.avif',\n '.avi',\n '.azw',\n '.bin',\n '.bmp',\n '.bz',\n '.bz2',\n '.cda',\n '.csh',\n '.css',\n '.dll',\n '.exe',\n '.eot',\n '.epub',\n '.gz',\n '.gif',\n '.htm',\n '.html',\n '.ico',\n '.ics',\n '.jsonld',\n '.mid',\n '.midi',\n '.mjs',\n '.mpkg',\n '.odp',\n '.ods',\n '.odt',\n '.oga',\n '.ogv',\n '.ogx',\n '.opus',\n '.otf',\n '.php',\n '.ppt',\n '.pptx',\n '.pdb',\n '.dat',\n '.rtf',\n '.sh',\n '.svg',\n '.tar',\n '.tif',\n '.tiff',\n '.ts',\n '.ttf',\n '.vsd',\n '.wav',\n '.weba',\n '.webm',\n '.webp',\n '.woff',\n '.woff2',\n '.xhtml',\n '.xml',\n '.xul',\n '.3gp',\n '.3g2',\n '.7z',\n];\n","export const generateRandomString = (length: number = 40): string => {\n const array: Uint8Array = new Uint8Array(length);\n window.crypto.getRandomValues(array);\n\n const regularArray: number[] = Array.from(array);\n\n return btoa(String.fromCharCode.apply(null, regularArray));\n};\n","import { ValidationErrors } from '@angular/forms';\n\nexport interface ZanoValidationErrors extends ValidationErrors {\n errorText: string;\n}\n\nexport const wrongAssetId: ZanoValidationErrors = {\n errorText: 'ASSETS.FORM.ERRORS.WRONG_ASSET_ID',\n};\n\nexport const wrongPassword: ZanoValidationErrors = {\n errorText: 'Incorrect password',\n};\n\nexport const insuficcientFunds: ZanoValidationErrors = {\n errorText: 'ERRORS.INSUFFICIENT_FUNDS',\n};\n\nexport const assetHasNotBeenAddedToWallet: ZanoValidationErrors = {\n errorText: 'ERRORS.ASSET_HAS_NOT_BEEN_ADDED_TO_WALLET',\n};\n\nexport const notFileZanoWallet: ZanoValidationErrors = {\n errorText: 'ERRORS.NOT_FILE_ZANO_WALLET',\n};\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { notFileZanoWallet, ZanoValidationErrors } from '@parts/utils/zano-errors';\nimport { MIMETypes } from '@parts/utils/MIME-types';\n\nexport const regExpHex = /^[a-f0-9]{64}$/i;\nexport const regExpAliasName = /^@?[a-z\\d.-]{2,25}$/;\nexport const regExpPassword = /^(?! )[a-zA-Z0-9_.\\]*|~!?@#$%^&+{}()<>:;\"'-=,\\/[\\\\ ]*(?\n abstractControl.get(firstControlName).value === abstractControl.get(secondControlName).value ? null : { [nameErrorKey]: true };\n }\n\n static duplicate(valuesForComparisons: string | string[]): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n const errorObject = { duplicate: true };\n let error = null;\n\n if (typeof value === 'string' && value === valuesForComparisons) {\n error = errorObject;\n }\n\n if (Array.isArray(valuesForComparisons) && valuesForComparisons.includes(value)) {\n error = errorObject;\n }\n\n return error;\n };\n }\n}\n\nexport const filePathWalletValidator = (path: string): ZanoValidationErrors | null => {\n if (!(path && path.trim().length)) {\n return null;\n }\n\n const positionLastSlash = path.lastIndexOf('/');\n const fileName = path.slice(positionLastSlash + 1);\n\n if (!(fileName && fileName.trim().length)) {\n return null;\n }\n\n if (fileName) {\n let index = 0;\n while (index < MIMETypes.length) {\n if (fileName.includes(MIMETypes[index])) {\n return notFileZanoWallet;\n }\n index++;\n }\n }\n\n return null;\n};\n","import { Injectable, NgZone } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { PaginationStore } from './pagination.store';\nimport * as _ from 'lodash';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaginationService {\n constructor(private variables: VariablesService, private ngZone: NgZone, private paginationStore: PaginationStore) {}\n\n paginate(currentPage = 1): void {\n if (currentPage < 1) {\n currentPage = 1;\n } else if (currentPage > this.variables.currentWallet.totalPages) {\n currentPage = this.variables.currentWallet.totalPages;\n }\n let startPage: number, endPage: number;\n if (this.variables.currentWallet.totalPages <= this.variables.maxPages) {\n startPage = 1;\n endPage = this.variables.currentWallet.totalPages;\n } else {\n const maxPagesBeforeCurrentPage = Math.floor(this.variables.maxPages / 2);\n const maxPagesAfterCurrentPage = Math.ceil(this.variables.maxPages / 2) - 1;\n if (currentPage <= maxPagesBeforeCurrentPage) {\n startPage = 1;\n this.variables.currentWallet.totalPages > this.variables.maxPages\n ? (endPage = this.variables.maxPages)\n : (endPage = this.variables.currentWallet.totalPages);\n } else if (currentPage + maxPagesAfterCurrentPage >= this.variables.currentWallet.totalPages) {\n startPage = this.variables.currentWallet.totalPages - this.variables.maxPages + 1;\n endPage = this.variables.currentWallet.totalPages;\n } else {\n startPage = currentPage - maxPagesBeforeCurrentPage;\n endPage = currentPage + maxPagesAfterCurrentPage;\n }\n }\n this.ngZone.run(() => {\n this.variables.currentWallet.pages = Array.from(Array(endPage + 1 - startPage).keys()).map(i => startPage + i);\n });\n }\n\n getOffset(walletID): number {\n const mining = this.variables.currentWallet.exclude_mining_txs;\n const currentPage = this.variables.currentWallet.currentPage;\n let offset = (currentPage - 1) * this.variables.count;\n if (!mining) {\n return offset || 0;\n }\n const value = this.paginationStore.value;\n const pages = value.filter(item => item.walletID === walletID);\n if (pages && pages.length > 0) {\n const max = _.maxBy(pages, 'page');\n const isForward = this.paginationStore.isForward(pages, currentPage);\n if (isForward) {\n offset = max.offset || 0;\n } else {\n const index = pages.findIndex(item => item.page === currentPage);\n offset = pages[index].offset || 0;\n }\n }\n return offset;\n }\n\n calcPages(data): void {\n if (data.total_history_items && data && data.history) {\n this.variables.currentWallet.totalPages = Math.ceil(data.total_history_items / this.variables.count);\n this.variables.currentWallet.totalPages > this.variables.maxPages\n ? (this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (this.variables.currentWallet.pages = new Array(this.variables.currentWallet.totalPages)\n .fill(1)\n .map((value, index) => value + index));\n } else if (this.variables.currentWallet.restore) {\n this.variables.currentWallet.totalPages = Math.ceil((data.history.length ?? 0) / this.variables.count);\n this.variables.currentWallet.totalPages > this.variables.maxPages\n ? (this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (this.variables.currentWallet.pages = new Array(this.variables.currentWallet.totalPages)\n .fill(1)\n .map((value, index) => value + index));\n }\n }\n\n prepareHistory(data, status): void {\n if (status && data && data.total_history_items) {\n this.variables.currentWallet.history.splice(0, this.variables.currentWallet.history.length);\n this.ngZone.run(() => {\n this.paginate(this.variables.currentWallet.currentPage);\n if (data.history.length !== 0) {\n this.variables.currentWallet.restore = false;\n this.variables.currentWallet.total_history_item = data.total_history_items;\n this.variables.currentWallet.prepareHistory(data.history);\n if (this.variables.currentWallet.currentPage === 1 && data.unconfirmed) {\n this.variables.currentWallet.prepareHistory(data.unconfirmed.sort((a, b) => a.timestamp - b.timestamp));\n }\n }\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as _ from 'lodash';\n\nexport interface Pages {\n page: number;\n offset: number;\n walletID: number;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaginationStore {\n private subject = new BehaviorSubject(null);\n\n get value(): Pages[] | null {\n return this.subject.value;\n }\n\n isForward(pages, currentPage): boolean {\n const max = _.maxBy(pages, 'page');\n return !max || max.page < currentPage || max.page === currentPage;\n }\n\n setPage(pageNumber: number, offset: number, walletID: number): void {\n let newPages: Pages[] = [];\n const pages = this.subject.getValue();\n if (pages && pages.length > 0) {\n newPages = pages.slice(0);\n }\n newPages.push({ page: pageNumber, offset, walletID });\n this.subject.next(newPages);\n }\n}\n","import { distinctUntilChanged, map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Wallet } from '@api/models/wallet.model';\nimport { Injectable } from '@angular/core';\n\nexport interface Sync {\n sync: boolean;\n wallet_id: number;\n}\n\nexport enum StateKeys {\n wallets = 'wallets',\n sync = 'sync',\n}\n\nexport interface State {\n [StateKeys.wallets]: Wallet[] | null | undefined;\n [StateKeys.sync]: Sync[] | null | undefined;\n}\n\nconst initialState: State = {\n wallets: undefined,\n sync: undefined,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class Store {\n private subject = new BehaviorSubject(initialState);\n private store = this.subject.asObservable().pipe(distinctUntilChanged());\n\n get state(): State {\n return this.subject.value;\n }\n\n select(name: StateKeys): Observable {\n return this.store.pipe(map(state => state[name])) as unknown as Observable;\n }\n\n set(name: StateKeys, value: any): void {\n this.subject.next({ ...this.state, [name]: value });\n }\n}\n","export const materialZanoIcons = [\n 'zano-arrow-left',\n 'zano-arrow-right',\n 'zano-balance',\n 'zano-block-sync',\n 'zano-burn',\n 'zano-check',\n 'zano-check-circle',\n 'zano-check-shield',\n 'zano-close',\n 'zano-close-v2',\n 'zano-contacts',\n 'zano-contracts',\n 'zano-copy',\n 'zano-custom-asset',\n 'zano-delete',\n 'zano-dropdown-arrow-down',\n 'zano-edit',\n 'zano-emit',\n 'zano-export',\n 'zano-fire',\n 'zano-hide-balance',\n 'zano-history',\n 'zano-info',\n 'zano-info-v2',\n 'zano-logo',\n 'zano-logout',\n 'zano-plus',\n 'zano-question',\n 'zano-receive',\n 'zano-regenerate',\n 'zano-row-options',\n 'zano-send',\n 'zano-settings',\n 'zano-show-balance',\n 'zano-system-modal-error',\n 'zano-system-modal-info',\n 'zano-system-modal-success',\n 'zano-staking',\n 'zano-secured',\n 'zano-swap',\n 'zano-update',\n 'zano-wallet-settings',\n];\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\nimport 'lodash';\n\nexport const buildTime = '2024-09-18T09:21:23.110Z';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"names":["NgZone","Observable","Subject","JSONBigNumber","BigNumber","ParamsType","getParamsType","value","array","Array","isArray","object","Object","keys","includes","convertersObjectForTypes","string","stringify","map","v","convertorParams","type","StatusCurrentActionState","Commands","BackendService","constructor","translate","variablesService","modalService","moneyToIntPipe","ngZone","bigNumberParser","key","val","_a","name","indexOf","toNumber","i","length","Debug","message","console","error","warn","log","eventSubscribe","command","callback","on_core_event","backendObject","connect","str","parse","initService","observer","backendLoaded","window","QWebChannel","qt","webChannelTransport","channel","objects","mediator_object","next","webkitLaunchedScript","runCommand","webkit_launched_script","quitRequest","on_request_quit","getAppData","get_app_data","storeAppData","wallets","settings","forEach","wallet","push","path","store_app_data","getSecureAppData","pass","get_secure_app_data","setMasterPassword","set_master_password","checkMasterPassword","check_master_password","getIsDisabledNotifications","params","get_is_disabled_notifications","setIsDisabledNotifications","state","set_is_disabled_notifications","storeSecureAppData","contacts","staking","contact","address","notes","data","store_secure_app_data","JSON","appPass","dataStore","backendCallback","dropSecureAppData","drop_secure_app_data","haveSecureAppData","have_secure_app_data","saveFileDialog","caption","fileMask","default_path","dir","filemask","default_dir","show_savefile_dialog","openFileDialog","show_openfile_dialog","storeFile","buff","store_to_file","loadFile","load_from_file","push_offer","generateWallet","generate_wallet","exportWalletHistory","json_string","export_wallet_history","openWallet","txs_to_return","testEmpty","open_wallet","closeWallet","wallet_id","close_wallet","getSmartWalletInfo","seed_password","get_smart_wallet_info","getSeedPhraseInfo","param","get_seed_phrase_info","runWallet","run_wallet","isValidRestoreWalletText","is_valid_restore_wallet_text","restoreWallet","seed_phrase","seed_pass","restore_wallet","sendMoney","amount","fee","mixin","comment","hide_receiver","push_payer","asset_id","destinations","mixin_count","lock_time","transform","asyncCall","transfer","setupJwtWalletRpc","secret","setup_jwt_wallet_rpc","zanoCompanionForm","validateAddress","validate_address","setClipboard","set_clipboard","getClipboard","get_clipboard","createProposal","title","a_addr","b_addr","to_pay","a_pledge","b_pledge","time","payment_id","parseInt","details","t","c","expiration_period","default_fee_big","b_fee","create_proposal","getContracts","get_contracts","acceptProposal","contract_id","accept_proposal","releaseProposal","release_type","release_contract","requestCancelContract","request_cancel_contract","acceptCancelContract","accept_cancel_contract","getMiningHistory","get_mining_history","startPosMining","start_pos_mining","stopPosMining","stop_pos_mining","openUrlInBrowser","url","open_url_in_browser","start_backend","node","host","port","configure_for_remote_node","remote_node_host","remote_node_port","getDefaultFee","get_default_fee","setBackendLocalization","stringsArray","strings","language_title","set_localization_strings","registerAlias","alias","reward","tracking_key","request_alias_registration","updateAlias","replace","request_alias_update","getAllAliases","get_all_aliases","getAliasInfoByName","get_alias_info_by_name","getAliasByAddress","get_alias_info_by_address","getAliasCoast","get_alias_coast","resyncWallet","id","resync_wallet","getWalletAlias","daemon_state","aliasesChecked","aliases","status","getContactAlias","getRecentTransfers","offset","count","exclude_mining_txs","get_recent_transfers","getPoolInfo","get_tx_pool_info","getVersion","get_version","version","errorVersion","get_network_type","status_network","errorType","setLogLevel","level","set_log_level","async_call","job_id","asyncCall2a","async_call_2a","dispatchAsyncCallResult","dispatch_async_call_result","json_resp","asyncCommandResults","response","group","groupEnd","run","setTimeout","dispatchAsyncCallResult$","handleCurrentActionState","handle_current_action_state","currentActionState","handleCurrentActionState$","setEnableTor","set_enable_tor","show_notification","getOptions","get_options","disable_price_fetch","use_debug_mode","rpc_port","disable_price_fetch$","use_debug_mode$","addCustomAssetId","add_custom_asset_id","removeCustomAssetId","remove_custom_asset_id","getWalletInfo","get_wallet_info","call_rpc","call_wallet_rpc","informerRun","error_translate","instant","default_fee","currency","defaultTicker","prepareModal","commandDebug","result","debug","_send_params","_result","e","response_data","error_code","resultStr","Result","core_busy","Status","undefined","res_error_code","current_wallet_id","currentWallet","Action","i0","factory","providedIn","Renderer2","StateKeys","take","takeUntil","paths","pathsChildrenAuth","hasOwnProperty","Breakpoints","AppComponent","http","renderer","backendService","router","intToMoneyPipe","store","dialog","matDialog","zanoLoadersService","_breakpointObserver","Map","XSmall","Small","Medium","Large","XLarge","addLangs","setDefaultLang","use","pipe","destroy$","subscribe","translateUsed","_setResponseClasses","observe","query","breakpoints","currentScreenSize","displayNameMap","get","document","body","classList","remove","values","add","language","ngOnInit","initMessage","st2","dd2","quit_requested","onQuitRequest","closeAll","needOpenWallets","saveFunction","recursionCloseWallets","lastIndex","splice","update_wallet_status","wallet_state","is_mining","getWallet","loaded","balances","mined_total","minied_total","alias_available","is_alias_operations_available","has_bare_unspent_outputs","wallet_sync_progress","progress","sync_started","sync_wallets","addToStore","update_daemon_state","daemon_network_state","setExpMedTs","net_time_delta_median","last_build_available","last_build_displaymode","setHeightApp","height","setHeightMax","max_net_seen_height","setDownloadedBytes","downloaded_bytes","setTotalBytes","download_total_data_size","daemon_state$","max","current","return_val","Math","floor","sync","progress_value","progress_value_text","blocks","toFixed","download","firstOnlineState","getAliases","status_fee","data_fee","money_transfer","ti","tr_info","history","tx_type","setRefreshStacking","tr_exists","excluded_history","some","elem","tx_hash","currentPage","prepareHistory","restore","total_history_item","totalPages","ceil","maxPages","pages","fill","index","exp_med_ts","height_app","contract","contracts","is_a","cancel_expiration_time","expiration_time","timestamp","searchResult2","notViewedContracts","find","j","viewedContracts","searchResult3","searchResult4","searchResult","is_new","findContract","prop","handle_deeplink_click","deeplink$","money_transfer_cancel","removeFromHistory","error_tr","events","method","enableAliasSearch","newAlias","concat","changeAliases","CurrentAlias","element","intervalUpdateContractsState","setInterval","expMedTsEvent","getExpMedTsEvent","newTimestamp","isDarkTheme$","visibilityBalance$","isDarkTheme","visibilityBalance","appUseTor","scale","setStyle","documentElement","setAttribute","appLog","navigate","auth","noWallet","then","statusPass","queryParams","appLogin","getInfo","_getZanoCurrentSupply","updateTime","updateMoneyEquivalent","intervalUpdatePriceState","clearInterval","ngOnDestroy","unsubscribe","success","zanoMoneyEquivalent","zanoMoneyEquivalentPercent","sort","a","b","boolean","filter","item","set","testnet","networkType","jsonrpc","info$","flags","zano_current_supply","_b","selectors","decls","vars","consts","template","inject","TranslateService","CREATE_NEW_WALLET_HELP_PAGE","filePathWalletValidator","AddWalletComponent","translateService","file_status","file_data","positionLastSlash","lastIndexOf","new_default_path","slice","text","errorText","openInBrowser","ctx","FormBuilder","Validators","regExpAliasName","AssignAliasComponent","backend","intToMoney","routerLink","fb","nonNullable","control","required","pattern","maxLength","maxCommentLength","price","rewardOriginal","exists","assignForm","valueChanges","canRegister","newName","toLowerCase","controls","errors","statusPrice","dataPrice","sum","unlocked_balance","getBalanceByTicker","unlocked","notEnoughMoney","isGreaterThan","complete","assignAlias","wakeAlias","Wallet","BehaviorSubject","regExpPassword","ZanoValidators","LoginComponent","walletsService","route","password","confirmation","validators","formMatch","zanoLogo","onSubmitCreatePass","regForm","valid","dataIsLoaded","appLockTime","startCountdown","onSkipCreatePass","resetJwtWalletRpc","zanoCompation","resetLoading$","closeAllWallets","onSubmitAuthPass","submitLoading$","authForm","prevUrl","setAuthPassError","wrong_password","getData","isEmptyObject","getWalletData","walletData","openWallets","runWallets","wallet_index","open_status","open_data","open_error","new_wallet","balance","tracking_hey","is_auditable","is_watch_only","recent_history","total_history_items","addWallet","run_status","setErrors","NonNullableFormBuilder","VariablesService","ModalService","Router","WalletsService","CreateWalletComponent","duplicate","walletNamesForComparisons","confirm","savedWalletName","createForm","substr","createWallet","loading$","selectedPath","getRawValue","generate_status","generate_data","errorCode","run_data","setCurrentWallet","errorTranslationKey","selectWalletLocation","patchValue","delay","DeeplinkComponent","notFileZanoWallet","wrongPassword","OpenWalletComponent","maxWalletNameLength","filePath","openWalletForm","filename","markAsTouched","openStatus","openData","open_from_exist","scaleItems","generateRandomString","debounceTime","ctx_r26","ctx_r7","SettingsComponent","compose","new_password","new_confirmation","disabled","hasAppPass","translationKey","setValue","emitEvent","currentBuild","currentNotificationsState","generateSecret","copySecret","isSecretWasCopied","secretWasCopiedTimeout","clearTimeout","regenerateSecret","setScale","onSubmitChangePass","changeForm","enable","onSave","reset","toggleNotifications","toggleUseTor","ifSaved","onLockChange","restartCountdown","onLogChange","onLanguageChange","showPrice","toggleDarkTheme","AssetDetailsComponent","Dialog","ConfirmModalComponent","LOCKED_BALANCE_HELP_PAGE","defaultImgSrc","zanoAssetInfo","MatDialog","$event","ctx_r4","asset_r5","_r8","ctx_r0","ctx_r1","AssetsComponent","paginatePipeArgs","paginationId","itemsPerPage","isShowPagination","listenChangeWallet","toggleDropDownMenu","trigger","asset","isOpenDropDownMenu","triggerOrigin","currentAsset","trackByAssets","asset_info","trackByPages","assetDetails","config","assetInfo","_matDialog","open","beforeRemoveAsset","full_name","afterClosed","confirmed","removeAsset","sendMoneyParams","updateWalletInfo","getBalanceTooltip","tooltip","createElement","scrollWrapper","total","ticker","decimal_point","available","innerText","availableB","appendChild","locked","lockedB","minus","link","innerHTML","addEventListener","currentWalletChangedEvent","insuficcientFunds","moneyToInt","MAT_DIALOG_DATA","MatDialogRef","BurnCustomAssetComponent","_fb","maximum_value","prepared_amount","assetBalance","getBalanceByAssetId","asset_not_found","maximum_amount_by_decimal_point","greater_than_maximum_amount","preparedUnlocked","submit","form","burn_amount","toString","_backendService","_ngZone","matDialogRef","close","EmitCustomAssetComponent","total_max_supply","current_supply","prepared_total_max_supply","prepared_current_supply","plus","greater_than_total_max_supply","regExpHex","UpdateCustomAssetComponent","owner","test","hex_not_valid","assign","address_not_valid","hasError","asset_descriptor","ConfirmCreateCustomAssetComponent","TransactionDetailsForCustomAssetsComponent","CreateNewAssetComponent","minLength","min","meta_info","hidden_supply","isLessThan","greater_than_max","disableClose","Boolean","_router","countDestination","destinationAmount","halfDestinationAmount","div","eq","ElementRef","EventEmitter","BLOCK_EXPLORER_TN_TX_URL_PREFIX","BLOCK_EXPLORER_TX_URL_PREFIX","successfulStatuses","STATE_SENDING","STATE_SENT_SUCCESS","STATE_INITIALIZING","STATE_DOWNLOADING_CONSENSUS","STATE_MAKING_TUNNEL_A","STATE_MAKING_TUNNEL_B","STATE_CREATING_STREAM","STATE_SUCCESS","failedStatuses","STATE_SEND_FAILED","STATE_FAILED","SendDetailsModalComponent","currentActionState$","currentActionStates","currentActionStates$","isSentSuccess","isSentFailed","isDetailsNotEmpty","responseData$","addClass","actionState","removeClass","toggleDetails","stateDetails$","scrollToBottomDetailsList","trackBy","isSuccess","action","isFailed","elDetailsList","nativeElement","scrollTop","scrollHeight","hash","viewQuery","MIXIN","catchError","distinctUntilChanged","retry","startWith","switchMap","tap","combineLatest","merge","of","defaultSendMoneyParams","WrapInfoService","HttpClient","_r20","ctx_r14","_r11","ctx_r5","ctx_r8","SendComponent","balances$","isVisibleWrapInfoState$","items","decimalPoint","inputTicker","hintTicker","hintAmount","reverseDisabled","_walletsService","_getWrapInfo","_createForm","_destroy$","updateAddressErrorMessage","errorMessages","updateAmountErrorMessage","_translateService","updateFeeErrorMessage","getSrcByAsset","logo","isVisibleError","invalid","dirty","touched","beforeSubmit","isSendModalState","handleConfirmed","isAmountUSD","convertedAmountUSD","usd","priceInfo","convertedAmount","dividedBy","decimalPlaces","aliasName","alias_not_found","isSendDetailsModalState","getReceivedValue","preparedAmount","tx_cost","zano_needed_for_erc20","wrapInfo","needed","handeCloseSendDetailsModal","pasteListenAddressField","event","preventDefault","clipboardData","lowerCaseDisabled$","trackByFn","toggleAmountUSD","history_asset","aliasAddress","valid_status","alias_not_valid","alias_status","alias_data","isZero","zero","greater_than_max_amount","less_min","wrap_info_null","unwraped_coins_left","great_than_unwraped_coins","less_than_zano_needed","_listenSendActionData","_saveSendMoneyParams","_formListeners","markAllAsTouched","updateValueAndValidity","_updateErrorMessages","_priceInfo$","_c","multipliedBy","_d","amountInputParams","default$","price$","_httpClient","err","statusChanges","addressItems$","condition","loadingAddressItems$","_openedWalletItems","_aliasItems","wrapInfoService","getWrapInfo","loadingWrapInfo$","sendActionData$","comments","mixins","hide_sender","isVisibleAdditionalOptionsState","ChangeDetectorRef","CommonModule","RouterLinkWithHref","TranslateModule","BreadcrumbsComponent","DefaultImgModule","InputValidateModule","LowerCaseDirective","FormsModule","ReactiveFormsModule","IntToMoneyPipeModule","MoneyToIntPipeModule","ShortStringPipe","NgSelectModule","assetHasNotBeenAddedToWallet","LoaderComponent","MatAutocompleteModule","MatOptionModule","MatIconModule","ctx_r3","_r31","ctx_r25","_r22","CreateSwapComponent","allAssetsInfo","receiverAddress","getSrcByAssetInfo","isVisibleErrorByControl","isVisibleErrorByForm","reverse","sending","receiving","updateReceiverAddressErrorMessage","pasteListenReceiverAddressField","sendingAsset","getAssetInfoByAssetId","receivingAsset","params2","proposal","to_finalizer","to_initiator","fee_paid_by_a","navigateByUrl","hex_raw_proposal","errorRpc","sendingAssetsInfo$","receivingAssetsInfo$","sendingDecimalPoint$","receivingDecimalPoint$","isEmptyAssetsInfoWhitelist","_cdr","markForCheck","detectChanges","sameAssetsId","_setSendingAssetIdFromHistoryState","standalone","features","i1","i2","i3","i4","i5","i6","i8","styles","ExportHistoryModalComponent","AddCustomTokenComponent","NavigationCancel","NavigationEnd","NavigationError","NavigationStart","ZARCANUM_MIGRATION","MigrateWalletToZarcanumComponent","BreakpointObserver","objTabs","assets","icon","hidden","send","receive","swap","indicator","WalletComponent","breakpointObserver","matches","walletLoaded","createTabs","setDisabledTabs","is_hardfok_active$","setHiddenTabs","navigationInterceptor","loader","conditionForHiding","tabs","onKeyPressed","openDropdown","walletSyncVisible","onKeyUpPressed","settingsButtonInterval","settingsButtonDisabled","select","in_progress","getAliasChangedEvent","updateWalletStatus","toggleMenuDropdown","resyncCurrentWallet","addCustomToken","exportHistory","openZarcanumMigration","openMigrateWalletToZarcanum","ids","tab","hostBindings","_r3","OpenWalletModalComponent","notFound","emptyPass","isWrongPassword$","skipWallet","hostVars","Idle","contextMenuService","info","filters","stakingFilters","whenNotInteractive","do","stopCountdown","_dialog","isCurrentWalletSync","isCurrentWalletLoaded","getHeightAppEvent","height_max","getHeightMaxEvent","bytes","downloaded","bytesToMb","getDownloadedAppEvent","getTotalEvent","getNotLoadedWallet","idle","within","start","stop","restart","Number","pow","onContextMenu","target","toUpperCase","show","allContextMenu","x","y","stopPropagation","onContextMenuOnlyCopy","copyText","onlyCopyContextMenu","onContextMenuPasteSelect","pasteSelectContextMenu","loadAssetsWhitelist","getWalletById","assetsInfoWhitelist","w"],"sourceRoot":"webpack:///","x_google_ignoreList":[]} \ No newline at end of file +{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/api/models/wallet.model.ts","./src/app/api/services/backend.service.ts","./src/app/api/services/wrap-info.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/layouts/full-layout/full-layout.component.ts","./src/app/layouts/full-layout/full-layout.module.ts","./src/app/layouts/sidebar/sidebar.component.ts","./src/app/layouts/sidebar/sidebar.module.ts","./src/app/layouts/with-sidebar-layout/with-sidebar-layout.component.ts","./src/app/layouts/with-sidebar-layout/with-sidebar-layout.component.html","./src/app/layouts/with-sidebar-layout/with-sidebar-layout.module.ts","./src/app/pages/add-wallet/add-wallet.component.ts","./src/app/pages/add-wallet/add-wallet.component.html","./src/app/pages/assign-alias/assign-alias.component.ts","./src/app/pages/auth/auth-routing.module.ts","./src/app/pages/auth/auth.module.ts","./src/app/pages/auth/login/login.component.ts","./src/app/pages/auth/login/login.component.html","./src/app/pages/auth/no-wallet/no-wallet.component.ts","./src/app/pages/auth/no-wallet/no-wallet.component.html","./src/app/pages/create-wallet/create-wallet.component.ts","./src/app/pages/deeplink/deeplink.component.ts","./src/app/pages/deeplink/deeplink.module.ts","./src/app/pages/deeplink/modals/deeplink-modal/deeplink-modal.component.ts","./src/app/pages/deeplink/modals/deeplink-modal/deeplink-modal.module.ts","./src/app/pages/deeplink/modals/sync-modal/sync-modal.component.ts","./src/app/pages/deeplink/modals/sync-modal/sync-modal.module.ts","./src/app/pages/edit-alias/edit-alias.component.ts","./src/app/pages/export-import/export-import.component.ts","./src/app/pages/open-wallet/open-wallet.component.ts","./src/app/pages/pages-routing.module.ts","./src/app/pages/pages.module.ts","./src/app/pages/paths.ts","./src/app/pages/restore-wallet/restore-wallet.component.ts","./src/app/pages/restore-wallet/restore-wallet.component.html","./src/app/pages/seed-phrase/seed-phrase.component.ts","./src/app/pages/settings/settings.component.ts","./src/app/pages/settings/settings.component.html","./src/app/pages/transfer-alias/transfer-alias.component.ts","./src/app/pages/wallet-details/wallet-details.component.ts","./src/app/pages/wallet/tabs/assets/assets.component.ts","./src/app/pages/wallet/tabs/custom-assets/modals/burn-custom-asset/burn-custom-asset.component.ts","./src/app/pages/wallet/tabs/custom-assets/modals/burn-custom-asset/burn-custom-asset.component.html","./src/app/pages/wallet/tabs/custom-assets/modals/confirm-create-custom-asset/confirm-create-custom-asset.component.ts","./src/app/pages/wallet/tabs/custom-assets/modals/confirm-create-custom-asset/confirm-create-custom-asset.component.html","./src/app/pages/wallet/tabs/custom-assets/modals/emit-custom-asset/emit-custom-asset.component.ts","./src/app/pages/wallet/tabs/custom-assets/modals/emit-custom-asset/emit-custom-asset.component.html","./src/app/pages/wallet/tabs/custom-assets/modals/transaction-details-for-custom-assets/transaction-details-for-custom-assets.component.ts","./src/app/pages/wallet/tabs/custom-assets/modals/transaction-details-for-custom-assets/transaction-details-for-custom-assets.component.html","./src/app/pages/wallet/tabs/custom-assets/modals/update-custom-asset/update-custom-asset.component.ts","./src/app/pages/wallet/tabs/custom-assets/modals/update-custom-asset/update-custom-asset.component.html","./src/app/pages/wallet/tabs/custom-assets/pages/create-new-asset/create-new-asset.component.ts","./src/app/pages/wallet/tabs/custom-assets/pages/create-new-asset/create-new-asset.component.html","./src/app/pages/wallet/tabs/custom-assets/pages/custom-assets/custom-assets.component.ts","./src/app/pages/wallet/tabs/custom-assets/pages/custom-assets/custom-assets.component.html","./src/app/pages/wallet/tabs/history/history.component.ts","./src/app/pages/wallet/tabs/history/history.component.html","./src/app/pages/wallet/tabs/receive/receive.component.ts","./src/app/pages/wallet/tabs/send/modals/send-details-modal/send-details-modal.component.ts","./src/app/pages/wallet/tabs/send/modals/send-details-modal/send-details-modal.component.html","./src/app/pages/wallet/tabs/send/modals/send-modal/send-modal.component.ts","./src/app/pages/wallet/tabs/send/modals/send-modal/send-modal.component.html","./src/app/pages/wallet/tabs/send/modals/wallet-modals.module.ts","./src/app/pages/wallet/tabs/send/send.component.ts","./src/app/pages/wallet/tabs/send/send.component.html","./src/app/pages/wallet/tabs/staking/staking.component.ts","./src/app/pages/wallet/tabs/staking/staking.component.html","./src/app/pages/wallet/tabs/swap/modals/swap-confirm-master-password/swap-confirm-master-password.component.ts","./src/app/pages/wallet/tabs/swap/modals/swap-confirm-master-password/swap-confirm-master-password.component.html","./src/app/pages/wallet/tabs/swap/modals/swap-details/swap-details.component.ts","./src/app/pages/wallet/tabs/swap/modals/swap-details/swap-details.component.html","./src/app/pages/wallet/tabs/swap/pages/confirm-swap/confirm-swap.component.ts","./src/app/pages/wallet/tabs/swap/pages/confirm-swap/confirm-swap.component.html","./src/app/pages/wallet/tabs/swap/pages/create-swap/create-swap.component.ts","./src/app/pages/wallet/tabs/swap/pages/create-swap/create-swap.component.html","./src/app/pages/wallet/tabs/swap/pages/swap-proposal-hex/swap-proposal-hex.component.ts","./src/app/pages/wallet/tabs/swap/pages/swap-proposal-hex/swap-proposal-hex.component.html","./src/app/pages/wallet/tabs/swap/pages/swap/swap.component.ts","./src/app/pages/wallet/tabs/swap/pages/swap/swap.component.html","./src/app/pages/wallet/tabs/swap/parts/guards/swap-proposal-hex.guard.ts","./src/app/pages/wallet/wallet-routing.module.ts","./src/app/pages/wallet/wallet.module.ts","./src/app/pages/wallet/wallet/modals/add-custom-token/add-custom-token.component.ts","./src/app/pages/wallet/wallet/modals/add-custom-token/add-custom-token.component.html","./src/app/pages/wallet/wallet/modals/export-history-modal/export-history-modal.component.ts","./src/app/pages/wallet/wallet/modals/export-history-modal/export-history-modal.component.html","./src/app/pages/wallet/wallet/modals/export-history-modal/export-history-modal.module.ts","./src/app/pages/wallet/wallet/modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component.ts","./src/app/pages/wallet/wallet/modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component.html","./src/app/pages/wallet/wallet/modals/success-sweep-bare-outs/success-sweep-bare-outs.component.ts","./src/app/pages/wallet/wallet/modals/success-sweep-bare-outs/success-sweep-bare-outs.component.html","./src/app/pages/wallet/wallet/wallet.component.ts","./src/app/parts/components/back-button/back-button.component.ts","./src/app/parts/components/back-button/back-button.component.html","./src/app/parts/components/breadcrumbs/breadcrumbs.component.ts","./src/app/parts/components/breadcrumbs/breadcrumbs.component.html","./src/app/parts/components/checkbox.component.ts","./src/app/parts/components/copy-button.component.ts","./src/app/parts/components/loader.component.ts","./src/app/parts/components/register-context-templates.component.ts","./src/app/parts/components/staking-switch.component.ts","./src/app/parts/components/switch.component.ts","./src/app/parts/components/synchronization-status.component.ts","./src/app/parts/components/transaction-details.component.ts","./src/app/parts/components/transaction-status/transaction-status.component.ts","./src/app/parts/components/transaction-status/transaction-status.component.html","./src/app/parts/components/wallet-card.component.ts","./src/app/parts/data/assets.ts","./src/app/parts/data/constants.ts","./src/app/parts/data/scale-items.ts","./src/app/parts/directives/autofocus.directive.ts","./src/app/parts/directives/back-button/back-button.directive.ts","./src/app/parts/directives/back-button/back-button.module.ts","./src/app/parts/directives/default-img/default-img.directive.ts","./src/app/parts/directives/default-img/default-img.module.ts","./src/app/parts/directives/default-img/index.ts","./src/app/parts/directives/disable-price-fetch/disable-price-fetch.directive.ts","./src/app/parts/directives/disable-price-fetch/disable-price-fetch.module.ts","./src/app/parts/directives/disable-price-fetch/index.ts","./src/app/parts/directives/index.ts","./src/app/parts/directives/input-disable-selection/index.ts","./src/app/parts/directives/input-disable-selection/input-disable-selection.directive.ts","./src/app/parts/directives/input-disable-selection/input-disable-selection.module.ts","./src/app/parts/directives/input-validate/index.ts","./src/app/parts/directives/input-validate/input-validate.directive.ts","./src/app/parts/directives/input-validate/input-validate.module.ts","./src/app/parts/directives/lower-case.directive.ts","./src/app/parts/directives/tooltip/index.ts","./src/app/parts/directives/tooltip/tooltip.directive.ts","./src/app/parts/directives/tooltip/tooltip.module.ts","./src/app/parts/directives/visibility-balance.directive.ts","./src/app/parts/functions/get-amount-items.ts","./src/app/parts/functions/has-own-property.ts","./src/app/parts/functions/identify-transaction.ts","./src/app/parts/functions/int-to-money.ts","./src/app/parts/functions/money-to-int.ts","./src/app/parts/modals/asset-details/asset-details.component.ts","./src/app/parts/modals/asset-details/asset-details.component.html","./src/app/parts/modals/confirm-modal/confirm-modal.component.ts","./src/app/parts/modals/confirm-modal/confirm-modal.component.html","./src/app/parts/modals/confirm-modal/confirm-modal.module.ts","./src/app/parts/modals/modal-container/modal-container.component.ts","./src/app/parts/modals/modal-container/modal-container.component.html","./src/app/parts/modals/open-wallet-modal/open-wallet-modal.component.ts","./src/app/parts/pipes/contract-status-messages-pipe/contract-status-messages-pipe.module.ts","./src/app/parts/pipes/contract-status-messages-pipe/contract-status-messages.pipe.ts","./src/app/parts/pipes/contract-status-messages-pipe/index.ts","./src/app/parts/pipes/contract-time-left-pipe/contract-time-left-pipe.module.ts","./src/app/parts/pipes/contract-time-left-pipe/contract-time-left.pipe.ts","./src/app/parts/pipes/contract-time-left-pipe/index.ts","./src/app/parts/pipes/get-amount-items.pipe.ts","./src/app/parts/pipes/get-asset-info.pipe.ts","./src/app/parts/pipes/history-type-messages-pipe/history-type-messages-pipe.module.ts","./src/app/parts/pipes/history-type-messages-pipe/history-type-messages.pipe.ts","./src/app/parts/pipes/history-type-messages-pipe/index.ts","./src/app/parts/pipes/index.ts","./src/app/parts/pipes/int-to-money-pipe/index.ts","./src/app/parts/pipes/int-to-money-pipe/int-to-money-pipe.module.ts","./src/app/parts/pipes/int-to-money-pipe/int-to-money.pipe.ts","./src/app/parts/pipes/is-available-alias-name-pipe/index.ts","./src/app/parts/pipes/is-available-alias-name-pipe/is-available-alias-name-pipe.module.ts","./src/app/parts/pipes/is-available-alias-name-pipe/is-available-alias-name.pipe.ts","./src/app/parts/pipes/is-visible-control-error.pipe.ts","./src/app/parts/pipes/is-visible-fee.pipe.ts","./src/app/parts/pipes/money-to-int-pipe/index.ts","./src/app/parts/pipes/money-to-int-pipe/money-to-int-pipe.module.ts","./src/app/parts/pipes/money-to-int-pipe/money-to-int.pipe.ts","./src/app/parts/pipes/safe-html-pipe/index.ts","./src/app/parts/pipes/safe-html-pipe/safe-html-pipe.module.ts","./src/app/parts/pipes/safe-html-pipe/safe-html.pipe.ts","./src/app/parts/pipes/short-string.pipe.ts","./src/app/parts/services/back.service.ts","./src/app/parts/services/modal.service.ts","./src/app/parts/services/variables.service.ts","./src/app/parts/services/wallets.service.ts","./src/app/parts/services/zano-loaders.service.ts","./src/app/parts/utils/MIME-types.ts","./src/app/parts/utils/generate-random-string.ts","./src/app/parts/utils/zano-errors.ts","./src/app/parts/utils/zano-validators.ts","./src/app/store/pagination/pagination.service.ts","./src/app/store/pagination/pagination.store.ts","./src/app/store/store.ts","./src/assets/material-zano-icons/index.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { Contracts } from './contract.model';\nimport { Transaction, Transactions } from './transaction.model';\nimport { BigNumber } from 'bignumber.js';\nimport { AssetBalance, AssetInfo, AssetBalances, AssetsInfoWhitelist } from './assets.model';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Alias } from '@api/models/alias.model';\nimport { SendMoneyFormParams } from '@api/models/send-money.model';\nimport { MIXIN } from '@parts/data/constants';\nimport { zanoAssetInfo } from '@parts/data/assets';\n\nexport const defaultSendMoneyParams: SendMoneyFormParams = {\n asset_id: zanoAssetInfo.asset_id,\n wallet_id: undefined,\n address: '',\n amount: undefined,\n isAmountUSD: false,\n comment: '',\n mixin: MIXIN,\n fee: '0.01',\n push_payer: true,\n hide_receiver: false,\n};\n\nconst defaultAssetsInfoWhitelist = { global_whitelist: [], local_whitelist: [], own_assets: [] };\n\nexport class Wallet {\n open_from_exist: boolean;\n\n updated = false;\n\n wallet_id: number;\n\n name: string;\n\n pass: string;\n\n path: string;\n\n address: string;\n\n private _balances$: BehaviorSubject = new BehaviorSubject([]);\n\n private _assetsInfoWhitelist: AssetsInfoWhitelist = defaultAssetsInfoWhitelist;\n\n set assetsInfoWhitelist(value: AssetsInfoWhitelist) {\n this._assetsInfoWhitelist = value ?? defaultAssetsInfoWhitelist;\n }\n\n get assetsInfoWhitelist() {\n return this._assetsInfoWhitelist;\n }\n\n get allAssetsInfoWhitelist(): AssetInfo[] {\n const { global_whitelist = [], local_whitelist = [], own_assets = [] } = this._assetsInfoWhitelist;\n return [...global_whitelist, ...local_whitelist, ...own_assets];\n }\n\n get isEmptyAssetsInfoWhitelist(): boolean {\n return !this.allAssetsInfoWhitelist.length;\n }\n\n get allAssetsInfo(): AssetInfo[] {\n return [zanoAssetInfo, ...this.allAssetsInfoWhitelist];\n }\n\n get balances$(): Observable {\n return this._balances$.asObservable();\n }\n\n get balances(): AssetBalances {\n return this._balances$.value;\n }\n\n set balances(value: AssetBalances | null | undefined) {\n const sortedAssets: AssetBalances = [];\n if (value) {\n const assets = [...value];\n const indexZano = assets.findIndex(({ asset_info: { ticker } }) => ticker === 'ZANO');\n if (indexZano >= 0) {\n const assetZano = assets.splice(indexZano, 1)[0];\n sortedAssets.push(assetZano);\n }\n const sortedAssetsByBalance = assets.sort((a, b) => new BigNumber(b.total).minus(new BigNumber(a.total)).toNumber());\n sortedAssets.push(...sortedAssetsByBalance);\n }\n this._balances$.next(sortedAssets);\n }\n\n get isEmptyBalances(): boolean {\n if (!this.balances) {\n return true;\n }\n\n for (const asset of this.balances) {\n const value = asset.total || 0;\n const isEmpty = !Boolean(new BigNumber(value).toNumber());\n\n if (!isEmpty) {\n return false;\n }\n }\n\n return true;\n }\n\n mined_total: number;\n\n tracking_hey: string;\n\n is_auditable: boolean;\n\n is_watch_only: boolean;\n\n exclude_mining_txs: boolean;\n\n alias_available: boolean;\n\n has_bare_unspent_outputs = false;\n\n alias?: Partial;\n\n wakeAlias?: boolean;\n\n staking?: boolean;\n\n new_messages?: number;\n\n new_contracts?: number;\n\n history: Transactions = [];\n\n total_history_item?: number;\n\n pages = [];\n\n totalPages: number;\n\n currentPage: number;\n\n excluded_history: Transactions = [];\n\n contracts: Contracts = [];\n\n progress?: number;\n\n loaded?: boolean;\n\n restore?: boolean;\n\n sendMoneyParams: SendMoneyFormParams | null = null;\n\n constructor(id, name, pass, path, address, balances, unlocked_balance, mined = 0, tracking = '') {\n this.wallet_id = id;\n this.name = name;\n this.pass = pass;\n this.path = path;\n this.address = address;\n this.balances = balances;\n this.mined_total = mined;\n this.tracking_hey = tracking;\n\n this.alias = {};\n this.staking = false;\n this.new_messages = 0;\n this.new_contracts = 0;\n\n this.history = [];\n this.excluded_history = [];\n\n this.progress = 0;\n this.loaded = false;\n }\n\n getBalanceByAssetId(value: string): AssetBalance | undefined {\n return this.balances.find(({ asset_info: { asset_id } }) => asset_id === value);\n }\n\n getAssetInfoByAssetId(value: string): AssetInfo | undefined {\n return this.allAssetsInfo.find(({ asset_id }) => asset_id === value);\n }\n\n getBalanceByTicker(searchTicker: string): AssetBalance | undefined {\n return this.balances.find(({ asset_info: { ticker } }) => ticker === searchTicker);\n }\n\n getMoneyEquivalentForZano(equivalent): string {\n const balanceZano = this.getBalanceByTicker('ZANO')?.total || 0;\n return new BigNumber(balanceZano).multipliedBy(equivalent).toFixed(0);\n }\n\n prepareHistory(items: Transaction[]): void {\n for (let i = 0; i < items.length; i++) {\n if (\n (items[i].tx_type === 7 && items[i].subtransfers?.find(({ is_income }) => is_income)) ||\n (items[i].tx_type === 11 && items[i].subtransfers?.find(({ is_income }) => is_income))\n ) {\n let exists = false;\n for (let j = 0; j < this.excluded_history.length; j++) {\n if (this.excluded_history[j].tx_hash === items[i].tx_hash) {\n exists = true;\n if (this.excluded_history[j].height !== items[i].height) {\n this.excluded_history[j] = items[i];\n }\n break;\n }\n }\n if (!exists) {\n this.excluded_history.push(items[i]);\n }\n } else {\n let exists = false;\n for (let j = 0; j < this.history.length; j++) {\n if (this.history[j].tx_hash === items[i].tx_hash) {\n exists = true;\n if (this.history[j].height !== items[i].height) {\n this.history[j] = items[i];\n }\n break;\n }\n }\n if (!exists) {\n if (this.history.length > 0 && items[i].timestamp >= this.history[0].timestamp) {\n this.history.unshift(items[i]);\n } else {\n this.history.push(items[i]);\n }\n }\n }\n }\n }\n\n removeFromHistory(hash: string): void {\n for (let i = 0; i < this.history.length; i++) {\n if (this.history[i].tx_hash === hash) {\n this.history.splice(i, 1);\n break;\n }\n }\n }\n}\n\nexport interface DeeplinkParams {\n action?: 'send' | string;\n address?: string;\n amount?: string;\n my_deposit?: string;\n seller_deposit?: string;\n seller_address?: string;\n hide_sender?: string;\n hide_receiver?: string;\n title?: string;\n description?: string;\n category?: string;\n price?: string;\n img_url?: string;\n url?: string;\n contact?: string;\n comment?: string;\n comments?: string;\n mixins?: string;\n fee?: string;\n}\n\nexport interface PushOffer {\n wallet_id: number;\n od: {\n ap: string;\n at: string;\n cat: string;\n cnt: string;\n com: string;\n do: string;\n et: number;\n fee: BigNumber;\n lci: string;\n lco: string;\n ot: number;\n pt: string;\n t: string;\n url: string;\n };\n}\n\nexport interface ResponseGetWalletInfo {\n address: string;\n balances: AssetBalances;\n is_auditable: boolean;\n is_watch_only: boolean;\n mined_total: number;\n path: string;\n view_sec_key: string;\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { MoneyToIntPipe } from '@parts/pipes/money-to-int-pipe/money-to-int.pipe';\nimport JSONBigNumber from 'json-bignumber';\nimport { BigNumber } from 'bignumber.js';\nimport { ResponseGetWalletInfo } from '../models/wallet.model';\nimport {\n AssetInfo,\n ParamsAddCustomAssetId,\n ParamsRemoveCustomAssetId,\n ResponseAddCustomAssetId,\n ResponseRemoveCustomAssetId,\n} from '@api/models/assets.model';\nimport { Alias } from '@api/models/alias.model';\nimport { SendMoneyParams } from '@api/models/send-money.model';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\n\nexport interface PramsObj {\n [key: string]: any;\n}\n\nexport type PramsArray = (string | PramsObj)[];\n\nexport type Params = string | PramsObj | PramsArray;\n\nexport enum ParamsType {\n array = 'array',\n object = 'object',\n string = 'string',\n}\n\nexport const getParamsType = (value: Params): ParamsType | null => {\n if (!value) {\n return null;\n }\n const array: false | ParamsType.array = Array.isArray(value) && ParamsType.array;\n const object: false | ParamsType = Object.keys(ParamsType).includes(typeof value) && ParamsType[typeof value];\n return array || object || null;\n};\n\nexport type ConvertersObjectForTypes = {\n [key in ParamsType]: (value: Params) => string | string[];\n};\n\nexport const convertersObjectForTypes: ConvertersObjectForTypes = {\n [ParamsType.string]: (value: string): string => value,\n [ParamsType.object]: (value: PramsObj): string => JSONBigNumber.stringify(value),\n [ParamsType.array]: (value: PramsArray): string[] =>\n value.map(v => {\n return typeof v === ParamsType.string ? (v as string) : JSONBigNumber.stringify(v);\n }),\n};\n\nexport const convertorParams = (value: Params): string | string[] => {\n const type: ParamsType = getParamsType(value);\n return convertersObjectForTypes[type](value);\n};\n\nexport interface ResponseAsyncTransfer {\n error_code: string | 'NOT_ENOUGH_MONEY' | 'OK';\n response_data: {\n success: boolean;\n tx_blob_size: number;\n tx_hash: string;\n };\n}\n\nexport interface AsyncCommandResults {\n job_id: number;\n response: T;\n}\n\nexport enum StatusCurrentActionState {\n STATE_SENDING = 'STATE_SENDING',\n STATE_SENT_SUCCESS = 'STATE_SENT_SUCCESS',\n STATE_SEND_FAILED = 'STATE_SEND_FAILED',\n STATE_INITIALIZING = 'STATE_INITIALIZING',\n STATE_DOWNLOADING_CONSENSUS = 'STATE_DOWNLOADING_CONSENSUS',\n STATE_MAKING_TUNNEL_A = 'STATE_MAKING_TUNNEL_A',\n STATE_MAKING_TUNNEL_B = 'STATE_MAKING_TUNNEL_B',\n STATE_CREATING_STREAM = 'STATE_CREATING_STREAM',\n STATE_FAILED = 'STATE_FAILED',\n STATE_SUCCESS = 'STATE_SUCCESS',\n}\n\nexport interface CurrentActionState {\n status: StatusCurrentActionState;\n wallet_id: number;\n}\n\nexport enum Commands {\n money_transfer_cancel = 'money_transfer_cancel',\n handle_deeplink_click = 'handle_deeplink_click',\n money_transfer = 'money_transfer',\n update_daemon_state = 'update_daemon_state',\n wallet_sync_progress = 'wallet_sync_progress',\n update_wallet_status = 'update_wallet_status',\n quit_requested = 'quit_requested',\n on_core_event = 'on_core_event',\n get_wallet_info = 'get_wallet_info',\n remove_custom_asset_id = 'remove_custom_asset_id',\n add_custom_asset_id = 'add_custom_asset_id',\n get_options = 'get_options',\n handle_current_action_state = 'handle_current_action_state',\n set_enable_tor = 'set_enable_tor',\n dispatch_async_call_result = 'dispatch_async_call_result',\n async_call = 'async_call',\n async_call_2a = 'async_call_2a',\n set_log_level = 'set_log_level',\n get_network_type = 'get_network_type',\n get_version = 'get_version',\n get_tx_pool_info = 'get_tx_pool_info',\n get_recent_transfers = 'get_recent_transfers',\n resync_wallet = 'resync_wallet',\n get_alias_coast = 'get_alias_coast',\n get_alias_info_by_address = 'get_alias_info_by_address',\n get_alias_info_by_name = 'get_alias_info_by_name',\n get_all_aliases = 'get_all_aliases',\n request_alias_update = 'request_alias_update',\n webkit_launched_script = 'webkit_launched_script',\n on_request_quit = 'on_request_quit',\n get_app_data = 'get_app_data',\n store_app_data = 'store_app_data',\n get_secure_app_data = 'get_secure_app_data',\n set_master_password = 'set_master_password',\n check_master_password = 'check_master_password',\n get_is_disabled_notifications = 'get_is_disabled_notifications',\n set_is_disabled_notifications = 'set_is_disabled_notifications',\n store_secure_app_data = 'store_secure_app_data',\n drop_secure_app_data = 'drop_secure_app_data',\n have_secure_app_data = 'have_secure_app_data',\n show_savefile_dialog = 'show_savefile_dialog',\n show_openfile_dialog = 'show_openfile_dialog',\n store_to_file = 'store_to_file',\n load_from_file = 'load_from_file',\n push_offer = 'push_offer',\n generate_wallet = 'generate_wallet',\n export_wallet_history = 'export_wallet_history',\n open_wallet = 'open_wallet',\n close_wallet = 'close_wallet',\n get_smart_wallet_info = 'get_smart_wallet_info',\n get_seed_phrase_info = 'get_seed_phrase_info',\n run_wallet = 'run_wallet',\n is_valid_restore_wallet_text = 'is_valid_restore_wallet_text',\n restore_wallet = 'restore_wallet',\n transfer = 'transfer',\n validate_address = 'validate_address',\n set_clipboard = 'set_clipboard',\n get_clipboard = 'get_clipboard',\n create_proposal = 'create_proposal',\n get_contracts = 'get_contracts',\n accept_proposal = 'accept_proposal',\n release_contract = 'release_contract',\n request_cancel_contract = 'request_cancel_contract',\n accept_cancel_contract = 'accept_cancel_contract',\n get_mining_history = 'get_mining_history',\n start_pos_mining = 'start_pos_mining',\n stop_pos_mining = 'stop_pos_mining',\n open_url_in_browser = 'open_url_in_browser',\n start_backend = 'start_backend',\n get_default_fee = 'get_default_fee',\n set_localization_strings = 'set_localization_strings',\n request_alias_registration = 'request_alias_registration',\n call_rpc = 'call_rpc',\n call_wallet_rpc = 'call_wallet_rpc',\n setup_jwt_wallet_rpc = 'setup_jwt_wallet_rpc',\n show_notification = 'show_notification',\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BackendService {\n dispatchAsyncCallResult$ = new Subject();\n\n handleCurrentActionState$ = new Subject();\n\n backendObject: any;\n\n backendLoaded = false;\n\n constructor(\n private translate: TranslateService,\n private variablesService: VariablesService,\n private modalService: ModalService,\n private moneyToIntPipe: MoneyToIntPipe,\n private ngZone: NgZone\n ) {}\n\n static bigNumberParser(key, val): any {\n if (\n val?.constructor?.name === 'BigNumber' &&\n [\n 'balance',\n 'unlocked_balance',\n 'amount',\n 'fee',\n 'b_fee',\n 'to_pay',\n 'a_pledge',\n 'b_pledge',\n 'coast',\n 'a',\n 'total',\n 'unlocked',\n 'current_supply',\n 'total_max_supply',\n ].indexOf(key) === -1\n ) {\n return val.toNumber();\n }\n if (key === 'rcv' || key === 'spn') {\n for (let i = 0; i < val.length; i++) {\n val[i] = new BigNumber(val[i]);\n }\n }\n return val;\n }\n\n static Debug(type, message): void {\n switch (type) {\n case 0:\n console.error(message);\n break;\n case 1:\n console.warn(message);\n break;\n case 2:\n console.log(message);\n break;\n default:\n console.log(message);\n break;\n }\n }\n\n eventSubscribe(command: Commands, callback): void {\n if (command === Commands.on_core_event) {\n this.backendObject[command].connect(callback);\n } else {\n this.backendObject[command].connect(str => {\n callback(JSONBigNumber.parse(str, BackendService.bigNumberParser));\n });\n }\n }\n\n initService(): Observable {\n return new Observable(observer => {\n if (!this.backendLoaded) {\n this.backendLoaded = true;\n (window).QWebChannel((window).qt.webChannelTransport, channel => {\n this.backendObject = channel.objects.mediator_object;\n observer.next('backendObject loaded');\n });\n } else {\n observer.error('backend not loaded');\n if (!this.backendObject) {\n observer.error('backendObject not loaded');\n }\n }\n });\n }\n\n webkitLaunchedScript(): void {\n this.runCommand(Commands.webkit_launched_script);\n }\n\n quitRequest(): void {\n this.runCommand(Commands.on_request_quit);\n }\n\n getAppData(callback): void {\n this.runCommand(Commands.get_app_data, {}, callback);\n }\n\n storeAppData(callback?): void {\n if (this.variablesService.wallets.length > 0) {\n this.variablesService.settings.wallets = [];\n this.variablesService.wallets.forEach(wallet => {\n this.variablesService.settings.wallets.push({\n name: wallet.name,\n path: wallet.path,\n });\n });\n }\n this.runCommand(Commands.store_app_data, this.variablesService.settings, callback);\n }\n\n getSecureAppData(pass, callback): void {\n this.runCommand(Commands.get_secure_app_data, pass, callback);\n }\n\n setMasterPassword(pass, callback): void {\n this.runCommand(Commands.set_master_password, pass, callback);\n }\n\n checkMasterPassword(pass, callback): void {\n this.runCommand(Commands.check_master_password, pass, callback);\n }\n\n getIsDisabledNotifications(callback): void {\n const params = {};\n this.runCommand(Commands.get_is_disabled_notifications, params, callback);\n }\n\n setIsDisabledNotifications(state): void {\n this.runCommand(Commands.set_is_disabled_notifications, state);\n }\n\n storeSecureAppData(callback?): void {\n const wallets = [];\n const contacts = [];\n this.variablesService.wallets.forEach(wallet => {\n wallets.push({\n name: wallet.name,\n pass: wallet.pass,\n path: wallet.path,\n staking: wallet.staking,\n });\n });\n this.variablesService.contacts.forEach(contact => {\n contacts.push({\n name: contact.name,\n address: contact.address,\n notes: contact.notes,\n });\n });\n const data = { wallets: wallets, contacts: contacts };\n this.backendObject[Commands.store_secure_app_data](JSON.stringify(data), this.variablesService.appPass, dataStore => {\n this.backendCallback(dataStore, {}, callback, Commands.store_secure_app_data);\n });\n }\n\n dropSecureAppData(callback?): void {\n this.backendObject[Commands.drop_secure_app_data](dataStore => {\n this.backendCallback(dataStore, {}, callback, Commands.drop_secure_app_data);\n });\n }\n\n haveSecureAppData(callback): void {\n this.runCommand(Commands.have_secure_app_data, {}, callback);\n }\n\n saveFileDialog(caption, fileMask, default_path, callback): void {\n const dir = default_path ? default_path : '/';\n const params = {\n caption: caption,\n filemask: fileMask,\n default_dir: dir,\n };\n this.runCommand(Commands.show_savefile_dialog, params, callback);\n }\n\n openFileDialog(caption, filemask, default_path, callback): void {\n const default_dir = default_path ? default_path : '/';\n const params = {\n caption,\n filemask,\n default_dir,\n };\n this.runCommand(Commands.show_openfile_dialog, params, callback);\n }\n\n storeFile(path, buff): void {\n this.backendObject[Commands.store_to_file](path, buff);\n }\n\n loadFile(path, callback): void {\n this.runCommand(Commands.load_from_file, path, callback);\n }\n\n push_offer(params, callback): void {\n this.runCommand(Commands.push_offer, params, callback);\n }\n\n generateWallet(path, pass, callback): void {\n const params = {\n path: path,\n pass: pass,\n };\n this.runCommand(Commands.generate_wallet, params, callback);\n }\n\n exportWalletHistory(json_string): void {\n this.runCommand(Commands.export_wallet_history, json_string);\n }\n\n openWallet(path, pass, txs_to_return, testEmpty, callback): void {\n const params = {\n path: path,\n pass: pass,\n txs_to_return: txs_to_return,\n };\n params['testEmpty'] = !!testEmpty;\n this.runCommand(Commands.open_wallet, params, callback);\n }\n\n closeWallet(wallet_id, callback?): void {\n this.runCommand(Commands.close_wallet, { wallet_id: +wallet_id }, callback);\n }\n\n getSmartWalletInfo({ wallet_id, seed_password }, callback): void {\n this.runCommand(Commands.get_smart_wallet_info, { wallet_id: +wallet_id, seed_password }, callback);\n }\n\n getSeedPhraseInfo(param, callback): void {\n this.runCommand(Commands.get_seed_phrase_info, param, callback);\n }\n\n runWallet(wallet_id, callback?): void {\n this.runCommand(Commands.run_wallet, { wallet_id: +wallet_id }, callback);\n }\n\n isValidRestoreWalletText(param, callback): void {\n this.runCommand(Commands.is_valid_restore_wallet_text, param, callback);\n }\n\n restoreWallet(path, pass, seed_phrase, seed_pass, callback): void {\n const params = {\n seed_phrase: seed_phrase,\n path: path,\n pass: pass,\n seed_pass,\n };\n this.runCommand(Commands.restore_wallet, params, callback);\n }\n\n sendMoney({ wallet_id, address, amount, fee, mixin, comment, hide_receiver, push_payer, asset_id }: SendMoneyParams, callback): void {\n const params = {\n wallet_id,\n destinations: [\n {\n address,\n amount,\n ...(asset_id && { asset_id }),\n },\n ],\n mixin_count: mixin ?? 0,\n lock_time: 0,\n fee: this.moneyToIntPipe.transform(fee),\n comment: comment,\n push_payer,\n hide_receiver\n };\n\n this.asyncCall(Commands.transfer, params, callback);\n }\n\n setupJwtWalletRpc(value: { zanoCompation: boolean; secret: string }): void {\n const { secret } = value;\n\n this.runCommand(Commands.setup_jwt_wallet_rpc, secret, () => {\n this.variablesService.settings.zanoCompanionForm = value;\n this.storeAppData();\n });\n }\n\n validateAddress(address, callback): void {\n this.runCommand(Commands.validate_address, address, callback);\n }\n\n setClipboard(str, callback?): void {\n this.runCommand(Commands.set_clipboard, str, callback);\n }\n\n getClipboard(callback): void {\n this.runCommand(Commands.get_clipboard, {}, callback);\n }\n\n createProposal(wallet_id, title, comment, a_addr, b_addr, to_pay, a_pledge, b_pledge, time, payment_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n details: {\n t: title,\n c: comment,\n a_addr: a_addr,\n b_addr: b_addr,\n to_pay: this.moneyToIntPipe.transform(to_pay),\n a_pledge: this.moneyToIntPipe.transform(a_pledge),\n b_pledge: this.moneyToIntPipe.transform(b_pledge),\n },\n payment_id: payment_id,\n expiration_period: parseInt(time, 10) * 60 * 60,\n fee: this.variablesService.default_fee_big,\n b_fee: this.variablesService.default_fee_big,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.create_proposal, params, callback);\n }\n\n getContracts(wallet_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.get_contracts, params, callback);\n }\n\n acceptProposal(wallet_id, contract_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.accept_proposal, params, callback);\n }\n\n releaseProposal(wallet_id, contract_id, release_type, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n release_type: release_type, // \"normal\" or \"burn\"\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.release_contract, params, callback);\n }\n\n requestCancelContract(wallet_id, contract_id, time, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n fee: this.variablesService.default_fee_big,\n expiration_period: parseInt(time, 10) * 60 * 60,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.request_cancel_contract, params, callback);\n }\n\n acceptCancelContract(wallet_id, contract_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.accept_cancel_contract, params, callback);\n }\n\n getMiningHistory(wallet_id, callback): void {\n this.runCommand(Commands.get_mining_history, { wallet_id: parseInt(wallet_id, 10) }, callback);\n }\n\n startPosMining(wallet_id, callback?): void {\n this.runCommand(Commands.start_pos_mining, { wallet_id: parseInt(wallet_id, 10) }, callback);\n }\n\n stopPosMining(wallet_id, callback?): void {\n this.runCommand(Commands.stop_pos_mining, { wallet_id: parseInt(wallet_id, 10) }, callback);\n }\n\n openUrlInBrowser(url, callback?): void {\n this.runCommand(Commands.open_url_in_browser, url, callback);\n }\n\n start_backend(node, host, port, callback): void {\n const params = {\n configure_for_remote_node: node,\n remote_node_host: host,\n remote_node_port: parseInt(port, 10),\n };\n this.runCommand(Commands.start_backend, params, callback);\n }\n\n getDefaultFee(callback): void {\n this.runCommand(Commands.get_default_fee, {}, callback);\n }\n\n setBackendLocalization(stringsArray, title, callback?): void {\n const params = {\n strings: stringsArray,\n language_title: title,\n };\n this.runCommand(Commands.set_localization_strings, params, callback);\n }\n\n registerAlias(wallet_id, alias, address, fee, comment, reward, callback): void {\n const params = {\n wallet_id: wallet_id,\n alias: {\n alias: alias,\n address: address,\n tracking_key: '',\n comment: comment,\n },\n fee: this.moneyToIntPipe.transform(fee),\n reward: this.moneyToIntPipe.transform(reward),\n };\n this.runCommand(Commands.request_alias_registration, params, callback);\n }\n\n updateAlias(wallet_id, alias, fee, callback): void {\n const params = {\n wallet_id: wallet_id,\n alias: {\n alias: alias.name.replace('@', ''),\n address: alias.address,\n tracking_key: '',\n comment: alias.comment,\n },\n fee: this.moneyToIntPipe.transform(fee),\n };\n this.runCommand(Commands.request_alias_update, params, callback);\n }\n\n getAllAliases(callback): void {\n this.runCommand(Commands.get_all_aliases, {}, callback);\n }\n\n getAliasInfoByName(value, callback): void {\n this.runCommand(Commands.get_alias_info_by_name, value, callback);\n }\n\n getAliasByAddress(value, callback): void {\n this.runCommand(Commands.get_alias_info_by_address, value, callback);\n }\n\n getAliasCoast(alias, callback): void {\n this.runCommand(Commands.get_alias_coast, { v: alias }, callback);\n }\n\n resyncWallet(id): void {\n this.runCommand(Commands.resync_wallet, { wallet_id: id });\n }\n\n getWalletAlias(address): Partial {\n if (address !== null && this.variablesService.daemon_state === 2) {\n if (this.variablesService.aliasesChecked[address] == null) {\n this.variablesService.aliasesChecked[address] = {};\n if (this.variablesService.aliases.length) {\n for (let i = 0, length = this.variablesService.aliases.length; i < length; i++) {\n if (i in this.variablesService.aliases && this.variablesService.aliases[i]['address'] === address) {\n this.variablesService.aliasesChecked[address]['name'] = this.variablesService.aliases[i].name;\n this.variablesService.aliasesChecked[address]['address'] = this.variablesService.aliases[i].address;\n this.variablesService.aliasesChecked[address]['comment'] = this.variablesService.aliases[i].comment;\n return this.variablesService.aliasesChecked[address];\n }\n }\n }\n this.getAliasByAddress(address, (status, data) => {\n if (status) {\n this.variablesService.aliasesChecked[data.address]['name'] = '@' + data.alias;\n this.variablesService.aliasesChecked[data.address]['address'] = data.address;\n this.variablesService.aliasesChecked[data.address]['comment'] = data.comment;\n }\n });\n }\n return this.variablesService.aliasesChecked[address];\n }\n return {};\n }\n\n getContactAlias(): void {\n if (this.variablesService.contacts.length > 0 && this.variablesService.daemon_state === 2) {\n this.variablesService.contacts.map(contact => {\n this.getAliasByAddress(contact.address, (status, data) => {\n if (status) {\n if (data.alias) {\n contact.alias = '@' + data.alias;\n }\n } else {\n contact.alias = null;\n }\n });\n });\n }\n }\n\n getRecentTransfers(id, offset, count, exclude_mining_txs, callback): void {\n const params = {\n wallet_id: id,\n offset: offset,\n count: count,\n exclude_mining_txs: exclude_mining_txs,\n };\n this.runCommand(Commands.get_recent_transfers, params, callback);\n }\n\n getPoolInfo(callback): void {\n this.runCommand(Commands.get_tx_pool_info, {}, callback);\n }\n\n getVersion(callback): void {\n this.runCommand(Commands.get_version, {}, (status, version, errorVersion) => {\n this.runCommand(Commands.get_network_type, {}, (status_network, type, errorType) => {\n callback(version, type, errorVersion ?? errorType);\n });\n });\n }\n\n setLogLevel(level): void {\n this.runCommand(Commands.set_log_level, { v: level });\n }\n\n asyncCall(command: string, params: PramsObj, callback?: (job_id?: number) => void | any): void {\n this.runCommand(Commands.async_call, [command, params], (status, { job_id }: { job_id: number }) => {\n callback(job_id);\n });\n }\n\n asyncCall2a(command: string, wallet_id: number, params: PramsObj, callback?: (job_id?: number) => void | any): void {\n this.runCommand(\n Commands.async_call_2a,\n [command, wallet_id, params],\n (\n status,\n {\n job_id,\n }: {\n job_id: number;\n }\n ) => {\n callback(job_id);\n }\n );\n }\n\n dispatchAsyncCallResult(): void {\n this.backendObject[Commands.dispatch_async_call_result].connect((job_id: string, json_resp: string) => {\n const asyncCommandResults: AsyncCommandResults = {\n job_id: +job_id,\n response: JSON.parse(json_resp),\n };\n console.group(`----------- ${Commands.dispatch_async_call_result} -----------`);\n console.log(asyncCommandResults);\n console.groupEnd();\n this.ngZone.run(() => setTimeout(() => this.dispatchAsyncCallResult$.next(asyncCommandResults), 250));\n });\n }\n\n handleCurrentActionState(): void {\n this.backendObject[Commands.handle_current_action_state].connect((response: string) => {\n const currentActionState: CurrentActionState = JSON.parse(response);\n this.ngZone.run(() => this.handleCurrentActionState$.next(currentActionState));\n });\n }\n\n setEnableTor(value: boolean): void {\n this.runCommand(Commands.set_enable_tor, <{ v: boolean }>{\n v: value,\n });\n }\n\n show_notification(title: string, message: string, callback?: () => void): void {\n this.runCommand(Commands.show_notification, [title, message], callback);\n }\n\n getOptions(): any {\n this.runCommand(\n Commands.get_options,\n {},\n (\n status,\n {\n disable_price_fetch,\n use_debug_mode,\n rpc_port,\n }: { disable_price_fetch: boolean; use_debug_mode: boolean; rpc_port: number }\n ) => {\n this.variablesService.disable_price_fetch$.next(disable_price_fetch);\n this.variablesService.use_debug_mode$.next(use_debug_mode);\n this.variablesService.rpc_port = rpc_port;\n }\n );\n }\n\n addCustomAssetId(\n params: ParamsAddCustomAssetId,\n callback: (\n status: boolean,\n response_data: ResponseAddCustomAssetId,\n res_error_code?: {\n error_code: 'FAILED' | string;\n response_data: {\n asset_descriptor: Partial;\n status: 'FAILED' | string;\n };\n }\n ) => void\n ): void {\n this.runCommand(Commands.add_custom_asset_id, params, callback);\n }\n\n removeCustomAssetId(\n params: ParamsRemoveCustomAssetId,\n callback?: (status: boolean, response_data: ResponseRemoveCustomAssetId) => void\n ): void {\n this.runCommand(Commands.remove_custom_asset_id, params, callback);\n }\n\n getWalletInfo(wallet_id, callback?: (status: boolean, response_data: ResponseGetWalletInfo) => void): void {\n this.runCommand(Commands.get_wallet_info, { wallet_id }, callback);\n }\n\n // Use for call rpc-api https://docs.zano.org/docs/build/rpc-api\n call_rpc(params: Partial, callback?: (status: boolean, response_data: any) => void): void {\n this.runCommand(Commands.call_rpc, params, callback);\n }\n\n call_wallet_rpc(\n params: [wallet_id: number, params: Partial],\n callback?: (status: boolean, response_data: any) => void\n ): void {\n this.runCommand(Commands.call_wallet_rpc, params, callback);\n }\n\n private informerRun(error: string, params, command: string): void {\n let error_translate = '';\n switch (error) {\n case 'NOT_ENOUGH_MONEY':\n error_translate = 'ERRORS.NOT_ENOUGH_MONEY';\n // error_translate = 'ERRORS.NO_MONEY'; maybe that one?\n if (command === 'cancel_offer') {\n error_translate = this.translate.instant('ERRORS.NO_MONEY_REMOVE_OFFER', {\n fee: this.variablesService.default_fee,\n currency: this.variablesService.defaultTicker,\n });\n }\n break;\n case 'CORE_BUSY':\n error_translate = 'ERRORS.CORE_BUSY';\n break;\n case 'BUSY':\n error_translate = 'ERRORS.DAEMON_BUSY';\n break;\n case 'OVERFLOW':\n if (command !== 'get_all_aliases') {\n error_translate = '';\n }\n break;\n case 'NOT_ENOUGH_OUTPUTS_FOR_MIXING':\n error_translate = 'ERRORS.NOT_ENOUGH_OUTPUTS_TO_MIX';\n break;\n case 'TX_IS_TOO_BIG':\n error_translate = 'ERRORS.TRANSACTION_IS_TO_BIG';\n break;\n case 'DISCONNECTED':\n error_translate = 'ERRORS.TRANSFER_ATTEMPT';\n break;\n case 'ACCESS_DENIED':\n error_translate = 'ERRORS.ACCESS_DENIED';\n break;\n case 'TX_REJECTED':\n // if (command === 'request_alias_registration') {\n // error_translate = 'INFORMER.ALIAS_IN_REGISTER';\n // } else {\n error_translate = 'ERRORS.TRANSACTION_ERROR';\n // }\n break;\n case 'INTERNAL_ERROR':\n error_translate = 'ERRORS.TRANSACTION_ERROR';\n break;\n case 'BAD_ARG':\n error_translate = 'ERRORS.BAD_ARG';\n break;\n case 'WALLET_WRONG_ID':\n error_translate = 'ERRORS.WALLET_WRONG_ID';\n break;\n case 'WALLET_WATCH_ONLY_NOT_SUPPORTED':\n error_translate = 'ERRORS.WALLET_WATCH_ONLY_NOT_SUPPORTED';\n break;\n // case 'WRONG_PASSWORD':\n // params = JSON.parse(params);\n // if (!params.testEmpty) {\n // error_translate = 'ERRORS.WRONG_PASSWORD';\n // }\n // break;\n case 'FILE_RESTORED':\n if (command === 'open_wallet') {\n error_translate = 'ERRORS.FILE_RESTORED';\n }\n break;\n case 'FILE_NOT_FOUND':\n if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') {\n error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND');\n params = JSON.parse(params);\n if (params.path) {\n error_translate += ': ' + params.path;\n }\n }\n break;\n case 'NOT_FOUND':\n if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') {\n error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND');\n params = JSON.parse(params);\n if (params.path) {\n error_translate += ': ' + params.path;\n }\n }\n break;\n case 'CANCELED':\n case '':\n break;\n case 'FAIL':\n if (\n command === 'create_proposal' ||\n command === 'accept_proposal' ||\n command === 'release_contract' ||\n command === 'request_cancel_contract' ||\n command === 'accept_cancel_contract'\n ) {\n error_translate = ' ';\n }\n break;\n case 'ALREADY_EXISTS':\n error_translate = 'ERRORS.FILE_EXIST';\n break;\n case 'FAILED':\n BackendService.Debug(0, `Error: (${error}) was triggered by command: ${command}`);\n break;\n default:\n error_translate = '';\n }\n if (error.indexOf('FAIL:failed to save file') > -1) {\n error_translate = 'ERRORS.FILE_NOT_SAVED';\n }\n if (error.indexOf('FAILED:failed to open binary wallet file for saving') > -1 && command === 'generate_wallet') {\n error_translate = '';\n }\n\n if (error_translate !== '') {\n this.modalService.prepareModal('error', error_translate);\n }\n }\n\n private commandDebug(command: Commands, params: Params, result: any): void {\n BackendService.Debug(2, '----------------- ' + command + ' -----------------');\n const debug = {\n _send_params: params,\n _result: result,\n };\n BackendService.Debug(2, debug);\n try {\n BackendService.Debug(2, JSONBigNumber.parse(result, BackendService.bigNumberParser));\n } catch (e) {\n BackendService.Debug(2, { response_data: result, error_code: 'OK' });\n }\n }\n\n private backendCallback(resultStr, params, callback, command: Commands): any {\n let Result = resultStr;\n if (command !== Commands.get_clipboard) {\n if (!resultStr || resultStr === '') {\n Result = {};\n } else {\n try {\n Result = JSONBigNumber.parse(resultStr, BackendService.bigNumberParser);\n } catch (e) {\n Result = { response_data: resultStr, error_code: 'OK' };\n }\n }\n } else {\n Result = {\n error_code: 'OK',\n response_data: Result,\n };\n }\n\n const core_busy = Result.error_code === 'CORE_BUSY';\n const Status = Result.error_code === 'OK' || Result.error_code === 'TRUE';\n\n if (!Status && Status !== undefined && Result.error_code !== undefined) {\n BackendService.Debug(1, 'API error for command: \"' + command + '\". Error code: ' + Result.error_code);\n }\n const data = typeof Result === 'object' && 'response_data' in Result ? Result.response_data : Result;\n\n let res_error_code = false;\n if (\n typeof Result === 'object' &&\n 'error_code' in Result &&\n Result.error_code !== 'OK' &&\n Result.error_code !== 'TRUE' &&\n Result.error_code !== 'FALSE' &&\n Result.error_code !== 'WRAP'\n ) {\n if (core_busy) {\n setTimeout(() => {\n // this is will avoid update data when user\n // on other wallet after CORE_BUSY (blink of data)\n if (command !== Commands.get_recent_transfers) {\n this.runCommand(command, params, callback);\n } else {\n const current_wallet_id = this.variablesService.currentWallet.wallet_id;\n if (current_wallet_id === params.wallet_id) {\n this.runCommand(command, params, callback);\n }\n }\n }, 50);\n } else {\n this.informerRun(Result.error_code, params, command);\n res_error_code = Result.error_code;\n }\n }\n\n if (!core_busy) {\n if (typeof callback === 'function') {\n callback(Status, data, res_error_code);\n } else {\n return data;\n }\n }\n }\n\n private runCommand(command: Commands, params?: Params, callback?): any {\n if (!this.backendObject) {\n return;\n }\n\n if (command === Commands.get_recent_transfers) {\n this.variablesService.get_recent_transfers = true;\n }\n\n const Action = this.backendObject[command];\n\n if (!Action) {\n BackendService.Debug(0, 'Run Command Error! Command \"' + command + '\" don\\'t found in backendObject');\n return;\n }\n\n const type: ParamsType = getParamsType(params);\n params = params && convertorParams(params);\n\n if (type === ParamsType.array) {\n Action(...(params as string[]), resultStr => {\n this.commandDebug(command, params, resultStr);\n return this.backendCallback(resultStr, params, callback, command);\n });\n return;\n }\n\n if (command === Commands.get_recent_transfers) {\n this.variablesService.get_recent_transfers = false;\n }\n Action(params, resultStr => {\n this.commandDebug(command, params, resultStr);\n return this.backendCallback(resultStr, params, callback, command);\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { WrapInfo } from '@api/models/wrap-info';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WrapInfoService {\n private httpClient = inject(HttpClient);\n\n getWrapInfo(): Observable {\n return this.httpClient.get('https://wrapped.zano.org/api2/get_wrap_info');\n }\n}\n","import { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\n\n@NgModule({\n imports: [RouterModule.forRoot([], { relativeLinkResolution: 'legacy' })],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { Component, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BackendService, Commands } from '@api/services/backend.service';\nimport { Router } from '@angular/router';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { IntToMoneyPipe } from '@parts/pipes';\nimport { BigNumber } from 'bignumber.js';\nimport { ModalService } from '@parts/services/modal.service';\nimport { StateKeys, Store } from '@store/store';\nimport { Subject, take } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { paths, pathsChildrenAuth } from './pages/paths';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { ZanoLoadersService } from '@parts/services/zano-loaders.service';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-root',\n template: `\n \n\n
\n

\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\n

\n

\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\n

\n

\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\n

\n
\n
\n\n
\n

\n {{ zanoLoadersService.getMessage('fullScreen') | async | translate }}\n

\n
\n
\n\n \n\n \n `,\n})\nexport class AppComponent implements OnInit, OnDestroy {\n intervalUpdatePriceState;\n\n intervalUpdateContractsState;\n\n expMedTsEvent;\n\n onQuitRequest = false;\n\n firstOnlineState = false;\n\n translateUsed = false;\n\n needOpenWallets = [];\n\n currentScreenSize: string;\n\n displayNameMap = new Map([\n [Breakpoints.XSmall, 'XSmall'],\n [Breakpoints.Small, 'Small'],\n [Breakpoints.Medium, 'Medium'],\n [Breakpoints.Large, 'Large'],\n [Breakpoints.XLarge, 'XLarge'],\n ]);\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n public translate: TranslateService,\n private http: HttpClient,\n private renderer: Renderer2,\n private backendService: BackendService,\n private router: Router,\n private ngZone: NgZone,\n private intToMoneyPipe: IntToMoneyPipe,\n private modalService: ModalService,\n private store: Store,\n private dialog: Dialog,\n private matDialog: MatDialog,\n public zanoLoadersService: ZanoLoadersService,\n private _breakpointObserver: BreakpointObserver\n ) {\n translate.addLangs(['en', 'fr', 'de', 'it', 'pt']);\n translate.setDefaultLang('en');\n translate\n .use('en')\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: () => {\n this.translateUsed = true;\n },\n });\n\n this._setResponseClasses();\n }\n\n private _setResponseClasses(): void {\n this._breakpointObserver\n .observe([\n Breakpoints.XSmall, // XSmall\t(max-width: 599.98px)\n Breakpoints.Small, // Small\t(min-width: 600px) and (max-width: 959.98px)\n Breakpoints.Medium, // Medium\t(min-width: 960px) and (max-width: 1279.98px)\n Breakpoints.Large, // Large\t(min-width: 1280px) and (max-width: 1919.98px)\n Breakpoints.XLarge, // XLarge\t(min-width: 1920px)\n ])\n .pipe(takeUntil(this.destroy$))\n .subscribe(result => {\n for (const query of Object.keys(result.breakpoints)) {\n if (result.breakpoints[query]) {\n this.currentScreenSize = this.displayNameMap.get(query) ?? 'Unknown';\n\n document.body.classList.remove(...this.displayNameMap.values());\n document.body.classList.add(this.currentScreenSize);\n }\n }\n });\n }\n\n setBackendLocalization(): void {\n if (this.translateUsed) {\n const stringsArray = [\n this.translate.instant('BACKEND_LOCALIZATION.QUIT'),\n this.translate.instant('BACKEND_LOCALIZATION.IS_RECEIVED'),\n this.translate.instant('BACKEND_LOCALIZATION.IS_CONFIRMED'),\n this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_UNCONFIRMED'),\n this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_CONFIRMED'),\n this.translate.instant('BACKEND_LOCALIZATION.MINED'),\n this.translate.instant('BACKEND_LOCALIZATION.LOCKED'),\n this.translate.instant('BACKEND_LOCALIZATION.IS_MINIMIZE'),\n this.translate.instant('BACKEND_LOCALIZATION.RESTORE'),\n this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_SHOW'),\n this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_MINIMIZE'),\n ];\n this.backendService.setBackendLocalization(stringsArray, this.variablesService.settings.language);\n } else {\n console.warn('wait translate use');\n setTimeout(() => {\n this.setBackendLocalization();\n }, 10000);\n }\n }\n\n ngOnInit(): void {\n this.backendService.initService().subscribe({\n next: initMessage => {\n console.log('Init message: ', initMessage);\n this.backendService.webkitLaunchedScript();\n\n this.backendService.start_backend(false, '127.0.0.1', 11512, (st2, dd2) => {\n console.log(st2, dd2);\n });\n\n this.backendService.eventSubscribe(Commands.quit_requested, async () => {\n if (this.onQuitRequest) {\n return;\n }\n\n // await this.ngZone.run(async () => {\n // await this.router.navigate(['/']);\n // });\n\n this.dialog.closeAll();\n this.matDialog.closeAll();\n\n this.needOpenWallets = [];\n this.variablesService.daemon_state = 5;\n\n const saveFunction = (): void => {\n this.backendService.storeAppData((): void => {\n const recursionCloseWallets = (): void => {\n if (this.variablesService.wallets.length > 0) {\n const lastIndex = this.variablesService.wallets.length - 1;\n this.backendService.closeWallet(this.variablesService.wallets[lastIndex].wallet_id, () => {\n this.variablesService.wallets.splice(lastIndex, 1);\n recursionCloseWallets();\n });\n } else {\n this.ngZone.run(() => {\n this.backendService.quitRequest();\n });\n }\n };\n recursionCloseWallets();\n });\n };\n if (this.variablesService.appPass) {\n this.backendService.storeSecureAppData(saveFunction);\n } else {\n saveFunction();\n }\n\n this.onQuitRequest = true;\n });\n\n this.backendService.eventSubscribe(Commands.update_wallet_status, data => {\n console.log('----------------- update_wallet_status -----------------');\n console.log(data);\n\n const wallet_state = data.wallet_state;\n const is_mining = data.is_mining;\n const wallet = this.variablesService.getWallet(data.wallet_id);\n // 1-synch, 2-ready, 3 - error\n if (wallet) {\n this.ngZone.run(() => {\n wallet.loaded = false;\n wallet.staking = is_mining;\n if (wallet_state === 2) {\n // ready\n wallet.loaded = true;\n }\n if (wallet_state === 3) {\n // error\n // wallet.error = true;\n }\n wallet.balances = data.balances;\n wallet.mined_total = data.minied_total;\n wallet.alias_available = data.is_alias_operations_available;\n wallet.has_bare_unspent_outputs = data.has_bare_unspent_outputs;\n });\n }\n });\n\n this.backendService.eventSubscribe(Commands.wallet_sync_progress, data => {\n console.log('----------------- wallet_sync_progress -----------------');\n console.log(data);\n const wallet = this.variablesService.getWallet(data.wallet_id);\n if (wallet) {\n this.ngZone.run(() => {\n wallet.progress = data.progress < 0 ? 0 : data.progress > 100 ? 100 : data.progress;\n if (!this.variablesService.sync_started) {\n this.variablesService.sync_started = true;\n this.variablesService.sync_wallets[wallet.wallet_id] = true;\n }\n this.addToStore(wallet, true); // subscribe on data\n if (wallet.progress === 0) {\n wallet.loaded = false;\n } else if (wallet.progress === 100) {\n wallet.loaded = true;\n this.addToStore(wallet, false);\n this.variablesService.sync_started = false;\n this.variablesService.sync_wallets[wallet.wallet_id] = false;\n }\n });\n }\n });\n\n this.backendService.eventSubscribe(Commands.update_daemon_state, data => {\n console.log('----------------- update_daemon_state -----------------');\n console.log('DAEMON:' + data.daemon_network_state);\n console.log(data);\n // this.variablesService.exp_med_ts = data['expiration_median_timestamp'] + 600 + 1;\n this.variablesService.setExpMedTs(data['expiration_median_timestamp'] + 600 + 1);\n this.variablesService.net_time_delta_median = data.net_time_delta_median;\n this.variablesService.last_build_available = data.last_build_available;\n this.variablesService.last_build_displaymode = data.last_build_displaymode;\n this.variablesService.setHeightApp(data.height);\n this.variablesService.setHeightMax(data.max_net_seen_height);\n\n this.variablesService.setDownloadedBytes(data.downloaded_bytes);\n this.variablesService.setTotalBytes(data.download_total_data_size);\n\n this.backendService.getContactAlias();\n this.ngZone.run(() => {\n const daemon_state: number = data['daemon_network_state'];\n this.variablesService.daemon_state = daemon_state;\n this.variablesService.daemon_state$.next(daemon_state);\n\n if (data['daemon_network_state'] === 1) {\n const max = data['max_net_seen_height'] - data['synchronization_start_height'];\n const current = data.height - data['synchronization_start_height'];\n const return_val = Math.floor(((current * 100) / max) * 100) / 100;\n if (max === 0 || return_val < 0) {\n this.variablesService.sync.progress_value = 0;\n this.variablesService.sync.progress_value_text = '0.00';\n this.variablesService.sync.blocks.current = 0;\n this.variablesService.sync.blocks.max = 0;\n } else if (return_val >= 100) {\n this.variablesService.sync.progress_value = 100;\n this.variablesService.sync.progress_value_text = '99.99';\n this.variablesService.sync.blocks.current = current;\n this.variablesService.sync.blocks.max = max;\n } else {\n this.variablesService.sync.progress_value = return_val;\n this.variablesService.sync.progress_value_text = return_val.toFixed(2);\n this.variablesService.sync.blocks.current = current;\n this.variablesService.sync.blocks.max = max;\n }\n }\n\n if (data['daemon_network_state'] === 6) {\n const max = data['download_total_data_size'];\n const current = data['downloaded_bytes'];\n const return_val = Math.floor((current / max) * 100);\n if (max === 0 || return_val < 0) {\n this.variablesService.download.progress_value = 0;\n this.variablesService.download.progress_value_text = '0.00';\n } else if (return_val >= 100) {\n this.variablesService.download.progress_value = 100;\n this.variablesService.download.progress_value_text = '99.99';\n } else {\n this.variablesService.download.progress_value = return_val;\n this.variablesService.download.progress_value_text = return_val.toFixed(2);\n }\n }\n });\n if (!this.firstOnlineState && data['daemon_network_state'] === 2) {\n this.getAliases();\n this.backendService.getContactAlias();\n this.backendService.getDefaultFee((status_fee, data_fee) => {\n this.variablesService.default_fee_big = new BigNumber(data_fee);\n this.variablesService.default_fee = this.intToMoneyPipe.transform(data_fee);\n });\n this.firstOnlineState = true;\n }\n });\n\n this.backendService.eventSubscribe(Commands.money_transfer, data => {\n console.log('----------------- money_transfer -----------------');\n console.log(data);\n\n if (!data.ti) {\n return;\n }\n\n const wallet_id = data.wallet_id;\n const tr_info = data.ti;\n\n const wallet = this.variablesService.getWallet(wallet_id);\n if (wallet) {\n if (wallet.history.length > 40) {\n wallet.history.splice(40, 1);\n }\n this.ngZone.run(() => {\n wallet.balances = data.balances;\n\n if (tr_info.tx_type === 6) {\n this.variablesService.setRefreshStacking(wallet_id);\n }\n\n let tr_exists = wallet.excluded_history.some(elem => elem.tx_hash === tr_info.tx_hash);\n tr_exists = !tr_exists ? wallet.history.some(elem => elem.tx_hash === tr_info.tx_hash) : tr_exists;\n\n if (wallet.currentPage === 1) {\n wallet.prepareHistory([tr_info]);\n if (wallet.restore) {\n wallet.total_history_item = wallet.history.length;\n wallet.totalPages = Math.ceil(wallet.total_history_item / this.variablesService.count);\n wallet.totalPages > this.variablesService.maxPages\n ? (wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (wallet.pages = new Array(wallet.totalPages).fill(1).map((value, index) => value + index));\n }\n }\n\n if (hasOwnProperty(tr_info, 'contract')) {\n const exp_med_ts = this.variablesService.exp_med_ts;\n const height_app = this.variablesService.height_app;\n const contract = tr_info.contract[0];\n if (tr_exists) {\n for (let i = 0; i < wallet.contracts.length; i++) {\n if (\n wallet.contracts[i].contract_id === contract.contract_id &&\n wallet.contracts[i].is_a === contract.is_a\n ) {\n wallet.contracts[i].cancel_expiration_time = contract.cancel_expiration_time;\n wallet.contracts[i].expiration_time = contract.expiration_time;\n wallet.contracts[i].height = contract.height;\n wallet.contracts[i].timestamp = contract.timestamp;\n break;\n }\n }\n // $rootScope.getContractsRecount();\n return;\n }\n\n if (contract.state === 1 && contract.expiration_time < exp_med_ts) {\n contract.state = 110;\n } else if (contract.state === 5 && contract.cancel_expiration_time < exp_med_ts) {\n contract.state = 130;\n } else if (contract.state === 1) {\n const searchResult2 = this.variablesService.settings.notViewedContracts.find(\n elem =>\n elem.state === 110 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id\n );\n if (searchResult2) {\n if (searchResult2.time === contract.expiration_time) {\n contract.state = 110;\n } else {\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\n if (\n this.variablesService.settings.notViewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.notViewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.notViewedContracts.splice(j, 1);\n break;\n }\n }\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\n if (\n this.variablesService.settings.viewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.viewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.viewedContracts.splice(j, 1);\n break;\n }\n }\n }\n }\n } else if (contract.state === 2 && (contract.height === 0 || height_app - contract.height < 10)) {\n contract.state = 201;\n } else if (contract.state === 2) {\n const searchResult3 = this.variablesService.settings.viewedContracts.some(\n elem =>\n elem.state === 120 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id\n );\n if (searchResult3) {\n contract.state = 120;\n }\n } else if (contract.state === 5) {\n const searchResult4 = this.variablesService.settings.notViewedContracts.find(\n elem =>\n elem.state === 130 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id\n );\n if (searchResult4) {\n if (searchResult4.time === contract.cancel_expiration_time) {\n contract.state = 130;\n } else {\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\n if (\n this.variablesService.settings.notViewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.notViewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.notViewedContracts.splice(j, 1);\n break;\n }\n }\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\n if (\n this.variablesService.settings.viewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.viewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.viewedContracts.splice(j, 1);\n break;\n }\n }\n }\n }\n } else if (contract.state === 6 && (contract.height === 0 || height_app - contract.height < 10)) {\n contract.state = 601;\n }\n\n const searchResult = this.variablesService.settings.viewedContracts.some(\n elem =>\n elem.state === contract.state &&\n elem.is_a === contract.is_a &&\n elem.contract_id === contract.contract_id\n );\n contract.is_new = !searchResult;\n\n let findContract = false;\n for (let i = 0; i < wallet.contracts.length; i++) {\n if (\n wallet.contracts[i].contract_id === contract.contract_id &&\n wallet.contracts[i].is_a === contract.is_a\n ) {\n for (const prop in contract) {\n if (hasOwnProperty(contract, prop)) {\n wallet.contracts[i][prop] = contract[prop];\n }\n }\n findContract = true;\n break;\n }\n }\n if (findContract === false) {\n wallet.contracts.push(contract);\n }\n // wallet.recountNewContracts();\n }\n });\n }\n });\n\n this.backendService.backendObject[Commands.handle_deeplink_click].connect(data => {\n console.log('----------------- handle_deeplink_click -----------------');\n console.log(data);\n this.ngZone.run(() => {\n if (data) {\n this.variablesService.deeplink$.next(data);\n }\n });\n });\n\n this.backendService.eventSubscribe(Commands.money_transfer_cancel, data => {\n console.log('----------------- money_transfer_cancel -----------------');\n console.log(data);\n\n if (!data.ti) {\n return;\n }\n\n const wallet_id = data.wallet_id;\n const tr_info = data.ti;\n const wallet = this.variablesService.getWallet(wallet_id);\n\n if (wallet) {\n if (hasOwnProperty(tr_info, 'contract')) {\n for (let i = 0; i < wallet.contracts.length; i++) {\n if (\n wallet.contracts[i].contract_id === tr_info.contract[0].contract_id &&\n wallet.contracts[i].is_a === tr_info.contract[0].is_a\n ) {\n if (wallet.contracts[i].state === 1 || wallet.contracts[i].state === 110) {\n wallet.contracts[i].is_new = true;\n wallet.contracts[i].state = 140;\n // wallet.recountNewContracts();\n }\n break;\n }\n }\n }\n\n wallet.removeFromHistory(tr_info.tx_hash);\n\n let error_tr = '';\n switch (tr_info.tx_type) {\n case 0:\n error_tr =\n this.translate.instant('ERRORS.TX_TYPE_NORMAL') +\n '
' +\n tr_info.tx_hash +\n '
' +\n wallet.name +\n '
' +\n wallet.address +\n '
' +\n this.translate.instant('ERRORS.TX_TYPE_NORMAL_TO') +\n ' ' +\n this.intToMoneyPipe.transform(tr_info.amount) +\n ' ' +\n this.translate.instant('ERRORS.TX_TYPE_NORMAL_END');\n break;\n case 1:\n // this.translate.instant('ERRORS.TX_TYPE_PUSH_OFFER');\n break;\n case 2:\n // this.translate.instant('ERRORS.TX_TYPE_UPDATE_OFFER');\n break;\n case 3:\n // this.translate.instant('ERRORS.TX_TYPE_CANCEL_OFFER');\n break;\n case 4:\n error_tr =\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS') +\n '
' +\n tr_info.tx_hash +\n '
' +\n wallet.name +\n '
' +\n wallet.address +\n '
' +\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END');\n break;\n case 5:\n error_tr =\n this.translate.instant('ERRORS.TX_TYPE_UPDATE_ALIAS') +\n '
' +\n tr_info.tx_hash +\n '
' +\n wallet.name +\n '
' +\n wallet.address +\n '
' +\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END');\n break;\n case 6:\n error_tr = this.translate.instant('ERRORS.TX_TYPE_COIN_BASE');\n break;\n }\n if (error_tr) {\n this.modalService.prepareModal('error', error_tr);\n }\n }\n });\n\n this.backendService.eventSubscribe(Commands.on_core_event, data => {\n console.log('----------------- on_core_event -----------------');\n console.log(data);\n\n data = JSON.parse(data);\n\n if (data.events != null) {\n for (let i = 0, length = data.events.length; i < length; i++) {\n switch (data.events[i].method) {\n case 'CORE_EVENT_BLOCK_ADDED':\n break;\n case 'CORE_EVENT_ADD_ALIAS':\n if (this.variablesService.aliasesChecked[data.events[i].details.address] != null) {\n this.variablesService.aliasesChecked[data.events[i].details.address]['name'] =\n '@' + data.events[i].details.alias;\n this.variablesService.aliasesChecked[data.events[i].details.address]['address'] =\n data.events[i].details.address;\n this.variablesService.aliasesChecked[data.events[i].details.address]['comment'] =\n data.events[i].details.comment;\n }\n if (this.variablesService.enableAliasSearch) {\n const newAlias = {\n name: '@' + data.events[i].details.alias,\n address: data.events[i].details.address,\n comment: data.events[i].details.comment,\n };\n this.variablesService.aliases = this.variablesService.aliases.concat(newAlias);\n this.variablesService.changeAliases();\n }\n break;\n case 'CORE_EVENT_UPDATE_ALIAS':\n for (const address in this.variablesService.aliasesChecked) {\n if (hasOwnProperty(this.variablesService.aliasesChecked, address)) {\n if (this.variablesService.aliasesChecked[address].name === '@' + data.events[i].details.alias) {\n if (\n this.variablesService.aliasesChecked[address].address !==\n data.events[i].details.details.address\n ) {\n delete this.variablesService.aliasesChecked[address]['name'];\n delete this.variablesService.aliasesChecked[address]['address'];\n delete this.variablesService.aliasesChecked[address]['comment'];\n } else {\n this.variablesService.aliasesChecked[address].comment =\n data.events[i].details.details.comment;\n }\n break;\n }\n }\n }\n if (this.variablesService.aliasesChecked[data.events[i].details.details.address] != null) {\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['name'] =\n '@' + data.events[i].details.alias;\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['address'] =\n data.events[i].details.details.address;\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['comment'] =\n data.events[i].details.details.comment;\n }\n if (this.variablesService.enableAliasSearch) {\n const CurrentAlias = this.variablesService.aliases.find(\n element => element.name === '@' + data.events[i].details.alias\n );\n if (CurrentAlias) {\n CurrentAlias.address = data.events[i].details.details.address;\n CurrentAlias.comment = data.events[i].details.details.comment;\n }\n }\n this.variablesService.changeAliases();\n break;\n default:\n break;\n }\n }\n }\n });\n\n this.intervalUpdateContractsState = setInterval(() => {\n this.variablesService.wallets.forEach(wallet => {\n wallet.contracts.forEach(contract => {\n if (\n contract.state === 201 &&\n contract.height !== 0 &&\n this.variablesService.height_app - contract.height >= 10\n ) {\n contract.state = 2;\n contract.is_new = true;\n console.warn('need check state in contracts');\n } else if (\n contract.state === 601 &&\n contract.height !== 0 &&\n this.variablesService.height_app - contract.height >= 10\n ) {\n contract.state = 6;\n contract.is_new = true;\n }\n });\n });\n }, 30000);\n\n this.expMedTsEvent = this.variablesService.getExpMedTsEvent.subscribe({\n next: (newTimestamp: number) => {\n this.variablesService.wallets.forEach(wallet => {\n wallet.contracts.forEach(contract => {\n if (contract.state === 1 && contract.expiration_time <= newTimestamp) {\n contract.state = 110;\n contract.is_new = true;\n } else if (contract.state === 5 && contract.cancel_expiration_time <= newTimestamp) {\n contract.state = 130;\n contract.is_new = true;\n }\n });\n });\n },\n });\n\n this.backendService.getAppData((status, data) => {\n if (data && Object.keys(data).length > 0) {\n for (const key in data) {\n if (hasOwnProperty(data, key) && hasOwnProperty(this.variablesService.settings, key)) {\n this.variablesService.settings[key] = data[key];\n }\n }\n\n const { isDarkTheme$, visibilityBalance$, settings } = this.variablesService;\n\n isDarkTheme$.next(settings.isDarkTheme);\n visibilityBalance$.next(settings.visibilityBalance);\n // TODO: Delete this line after return appUseTor\n settings.appUseTor = false;\n if (hasOwnProperty(settings, 'scale') && ['8px', '10px', '12px', '14px'].indexOf(settings.scale) !== -1) {\n this.renderer.setStyle(document.documentElement, 'font-size', settings.scale);\n } else {\n settings.scale = '10px';\n this.renderer.setStyle(document.documentElement, 'font-size', settings.scale);\n }\n\n this.renderer.setAttribute(document.documentElement, 'class', settings.isDarkTheme ? 'dark' : 'light');\n }\n this.translate.use(this.variablesService.settings.language);\n this.setBackendLocalization();\n\n this.backendService.setLogLevel(this.variablesService.settings.appLog);\n this.backendService.setEnableTor(this.variablesService.settings.appUseTor);\n\n if (!this.variablesService.settings.wallets || this.variablesService.settings.wallets.length === 0) {\n this.ngZone.run(() => {\n this.router.navigate([`${paths.auth}/${pathsChildrenAuth.noWallet}`]).then();\n });\n return;\n }\n\n if (this.router.url !== '/login') {\n this.backendService.haveSecureAppData(statusPass => {\n console.log('--------- haveSecureAppData ----------', statusPass);\n if (statusPass) {\n this.ngZone.run(() => {\n this.router.navigate(['/login'], {\n queryParams: { type: 'auth' },\n });\n });\n } else {\n if (Object.keys(data).length !== 0) {\n this.needOpenWallets = JSON.parse(JSON.stringify(this.variablesService.settings.wallets));\n this.ngZone.run(() => {\n this.variablesService.appLogin = true;\n this.router.navigate(['/']);\n });\n } else {\n this.ngZone.run(() => {\n this.router.navigate(['/login'], {\n queryParams: { type: 'reg' },\n });\n });\n }\n }\n });\n }\n });\n\n this.backendService.dispatchAsyncCallResult();\n\n this.backendService.handleCurrentActionState();\n\n this.getVersion();\n\n setTimeout(() => {\n this.backendService.getOptions();\n this.getInfo();\n this._getZanoCurrentSupply();\n }, 10 * 1000);\n },\n error: error => {\n console.log(error);\n },\n });\n\n this.variablesService.disable_price_fetch$.pipe(takeUntil(this.destroy$)).subscribe({\n next: disable_price_fetch => {\n const updateTime = 10 * 60 * 1000;\n if (!disable_price_fetch) {\n this.updateMoneyEquivalent();\n this.intervalUpdatePriceState = setInterval(() => {\n this.updateMoneyEquivalent();\n }, updateTime);\n } else {\n if (this.intervalUpdatePriceState) {\n clearInterval(this.intervalUpdatePriceState);\n }\n }\n },\n });\n\n this.variablesService.isDarkTheme$.pipe(takeUntil(this.destroy$)).subscribe({\n next: isDarkTheme => {\n this.renderer.setAttribute(document.documentElement, 'class', isDarkTheme ? 'dark' : 'light');\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n if (this.intervalUpdateContractsState) {\n clearInterval(this.intervalUpdateContractsState);\n }\n if (this.intervalUpdatePriceState) {\n clearInterval(this.intervalUpdatePriceState);\n }\n this.expMedTsEvent.unsubscribe();\n }\n\n updateMoneyEquivalent(): void {\n this.http\n .get('https://explorer.zano.org/api/price?asset=zano')\n .pipe(take(1))\n .subscribe({\n next: ({ data, success }: { data: { zano: { usd: number; usd_24h_change: number } }; success: boolean }): void => {\n if (success) {\n this.variablesService.zanoMoneyEquivalent = data['zano']['usd'];\n this.variablesService.zanoMoneyEquivalentPercent = data['zano']['usd_24h_change'];\n }\n },\n error: error => {\n console.warn('api.coingecko.com price error: ', error);\n },\n });\n\n this.variablesService.isDarkTheme$.pipe(takeUntil(this.destroy$)).subscribe({\n next: isDarkTheme => {\n this.renderer.setAttribute(document.documentElement, 'class', isDarkTheme ? 'dark' : 'light');\n },\n });\n }\n\n getAliases(): void {\n this.backendService.getAllAliases((status, data, error) => {\n console.warn(error);\n\n if (error === 'CORE_BUSY') {\n window.setTimeout(() => {\n this.getAliases();\n }, 10000);\n } else if (error === 'OVERFLOW') {\n this.variablesService.aliases = [];\n this.variablesService.enableAliasSearch = false;\n this.variablesService.wallets.forEach(wallet => {\n wallet.alias = this.backendService.getWalletAlias(wallet.address);\n });\n } else {\n this.variablesService.enableAliasSearch = true;\n if (data.aliases && data.aliases.length) {\n this.variablesService.aliases = [];\n data.aliases.forEach(alias => {\n const newAlias = {\n name: '@' + alias.alias,\n address: alias.address,\n comment: alias.comment,\n };\n this.variablesService.aliases.push(newAlias);\n });\n this.variablesService.wallets.forEach(wallet => {\n wallet.alias = this.backendService.getWalletAlias(wallet.address);\n });\n this.variablesService.aliases = this.variablesService.aliases.sort((a, b) => {\n if (a.name.length > b.name.length) {\n return 1;\n }\n if (a.name.length < b.name.length) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n if (a.name < b.name) {\n return -1;\n }\n return 0;\n });\n this.variablesService.changeAliases();\n }\n }\n });\n }\n\n addToStore(wallet, boolean): void {\n const value = this.store.state.sync;\n if (value && value.length > 0) {\n const sync = value.filter(item => item.wallet_id === wallet.wallet_id);\n if (sync && sync.length > 0) {\n const result = value.map(item => {\n if (item.wallet_id === wallet.wallet_id) {\n return { sync: boolean, wallet_id: wallet.wallet_id };\n } else {\n return item;\n }\n });\n this.store.set(StateKeys.sync, result);\n } else {\n value.push({ sync: boolean, wallet_id: wallet.wallet_id });\n this.store.set(StateKeys.sync, value);\n }\n } else {\n this.store.set(StateKeys.sync, [{ sync: boolean, wallet_id: wallet.wallet_id }]);\n }\n }\n\n getVersion(): void {\n this.backendService.getVersion((version, type, error) => {\n this.ngZone.run(() => {\n if (!error) {\n console.log('----------------- version -----------------', version);\n console.log('----------------- type -----------------', type);\n this.variablesService.testnet = type === 'testnet';\n this.variablesService.networkType = type;\n }\n });\n });\n }\n\n getInfo(): void {\n const updateTime = 60 * 1000;\n const getInfo = () => {\n const params = {\n jsonrpc: '2.0',\n method: 'getinfo',\n };\n\n this.backendService.call_rpc(params, (status, response_data) => {\n this.variablesService.info$.next(response_data.result);\n });\n };\n getInfo();\n setInterval(getInfo, updateTime);\n }\n\n private _getZanoCurrentSupply(): void {\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'getinfo',\n params: {\n flags: 1024,\n },\n };\n\n this.backendService.call_rpc(params, (status, response_data) => {\n this.ngZone.run(() => {\n this.variablesService.zano_current_supply = response_data?.['result']?.['total_coins'] ?? 'Unknown';\n });\n });\n }\n}\n","import { inject, NgModule } from '@angular/core';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { PagesModule } from './pages/pages.module';\nimport { CommonModule } from '@angular/common';\nimport { TranslateLoader, TranslateModule, TranslateModuleConfig } from '@ngx-translate/core';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { BrowserModule, DomSanitizer } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ChartModule, HIGHCHARTS_MODULES } from 'angular-highcharts';\nimport * as highcharts from 'highcharts';\nimport exporting from 'highcharts/modules/exporting.src';\nimport { MoneyToIntPipeModule } from '@parts/pipes';\nimport { OpenWalletModalComponent } from '@parts/modals/open-wallet-modal/open-wallet-modal.component';\nimport { FlexModule } from '@angular/flex-layout';\nimport { FormsModule } from '@angular/forms';\nimport { RegisterContextTemplatesComponent } from '@parts/components/register-context-templates.component';\nimport { DEFAULT_DIALOG_CONFIG, DialogConfig } from '@angular/cdk/dialog';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { materialZanoIcons } from '../assets/material-zano-icons';\nimport { MAT_DIALOG_DEFAULT_OPTIONS, MatDialogConfig, MatDialogModule } from '@angular/material/dialog';\n\nexport function highchartsFactory(): any[] {\n highcharts.setOptions({\n time: {\n useUTC: false,\n },\n });\n\n return [exporting];\n}\n\nexport const provideHighchartsFactory = {\n provide: HIGHCHARTS_MODULES,\n useFactory: highchartsFactory,\n};\n\nexport function HttpLoaderFactory(httpClient: HttpClient): TranslateHttpLoader {\n return new TranslateHttpLoader(httpClient, './assets/i18n/', '.json');\n}\n\nexport const translateModuleConfig: TranslateModuleConfig = {\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n};\n\n@NgModule({\n declarations: [AppComponent, OpenWalletModalComponent],\n imports: [\n CommonModule,\n BrowserModule,\n BrowserAnimationsModule,\n HttpClientModule,\n TranslateModule.forRoot(translateModuleConfig),\n AppRoutingModule,\n PagesModule,\n ChartModule,\n MoneyToIntPipeModule,\n FlexModule,\n FormsModule,\n MatDialogModule,\n RegisterContextTemplatesComponent,\n ],\n providers: [\n provideHighchartsFactory,\n {\n provide: DEFAULT_DIALOG_CONFIG,\n useValue: {\n width: '95vw',\n maxWidth: '54rem',\n maxHeight: '90vh',\n hasBackdrop: true,\n disableClose: true,\n },\n },\n {\n provide: MAT_DIALOG_DEFAULT_OPTIONS,\n useValue: {\n width: '95vw',\n maxWidth: '54rem',\n maxHeight: '90vh',\n panelClass: 'zano-mat-dialog',\n hasBackdrop: true,\n disableClose: true,\n },\n },\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {\n private _matIconRegistry: MatIconRegistry = inject(MatIconRegistry);\n private _sanitizer: DomSanitizer = inject(DomSanitizer);\n\n constructor() {\n this.registerIcons(materialZanoIcons);\n }\n\n registerIcons(icons: Array): void {\n icons.forEach((icon: string) => {\n this._matIconRegistry.addSvgIcon(\n icon,\n this._sanitizer.bypassSecurityTrustResourceUrl(`assets/material-zano-icons/${icon}.svg`)\n );\n });\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-full-layout',\n template: `\n
\n \n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class FullLayoutComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FullLayoutComponent } from './full-layout.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterOutlet } from '@angular/router';\n\n@NgModule({\n declarations: [FullLayoutComponent],\n imports: [CommonModule, RouterOutlet, FlexLayoutModule],\n exports: [FullLayoutComponent],\n})\nexport class FullLayoutModule {}\n","import { Component, NgZone, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Wallet } from '@api/models/wallet.model';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { ZanoLoadersService } from '@parts/services/zano-loaders.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-sidebar',\n template: `\n
\n
\n \"zano-logo\"\n
\n
\n\n
\n
\n \n
\n\n
\n \n \n {{ 'SIDEBAR.ADD_NEW' | translate }}\n \n\n \n \n {{ 'SIDEBAR.SETTINGS' | translate }}\n \n\n \n \n \n {{ 'SIDEBAR.LOG_OUT' | translate }}\n \n \n\n \n \n \n
\n
\n\n
\n \n
\n\n \n `,\n styleUrls: ['./sidebar.component.scss'],\n})\nexport class SidebarComponent implements OnDestroy {\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private walletsService: WalletsService,\n private route: ActivatedRoute,\n private router: Router,\n private ngZone: NgZone,\n private _matDialog: MatDialog,\n private backend: BackendService,\n public zanoLoadersService: ZanoLoadersService\n ) {}\n\n get zanoLogo(): string {\n const {\n settings: { isDarkTheme },\n } = this.variablesService;\n return isDarkTheme ? 'assets/icons/blue/zano-logo.svg' : 'assets/icons/blue/light-zano-logo.svg';\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n toggleDarkTheme(): void {\n const { settings, isDarkTheme$ } = this.variablesService;\n const isDarkTheme: boolean = !settings.isDarkTheme;\n this.variablesService.settings.isDarkTheme = isDarkTheme;\n isDarkTheme$.next(isDarkTheme);\n\n this.backend.storeAppData();\n }\n\n goMainPage(): void {\n if (this.route.snapshot.queryParams && this.route.snapshot.queryParams.prevUrl === 'login') {\n this.ngZone.run(() => {\n this.router.navigate(['/'], { queryParams: { prevUrl: 'login' } });\n });\n } else {\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n }\n }\n\n selectWallet(id: number): void {\n this.ngZone.run(() => {\n this.variablesService.setCurrentWallet(id);\n this.router.navigate(['/wallet/assets']);\n });\n }\n\n drop(event: CdkDragDrop): void {\n moveItemInArray(this.variablesService.wallets, event.previousIndex, event.currentIndex);\n }\n\n beforeClose(wallet_id): void {\n const config: MatDialogConfig = {\n data: {\n title: 'WALLET.CONFIRM.MESSAGE',\n message: 'WALLET.CONFIRM.TITLE',\n },\n };\n\n this._matDialog\n .open(ConfirmModalComponent, config)\n .afterClosed()\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: confirmed => confirmed && this.closeWallet(wallet_id),\n });\n }\n\n closeWallet(wallet_id): void {\n this.walletsService.closeWallet(wallet_id);\n }\n\n logOut(): void {\n this.zanoLoadersService.open('fullScreen', 'SIDEBAR.SYNCHRONIZATION.LOGGING_OUT');\n\n setTimeout(() => {\n this.variablesService.stopCountdown();\n this.variablesService.appLogin = false;\n this.variablesService.appPass = '';\n this.ngZone.run(() => {\n this.router.navigate(['/login'], { queryParams: { type: 'auth' } }).then(() => {\n this.zanoLoadersService.close('fullScreen');\n });\n });\n }, 500);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SidebarComponent } from './sidebar.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { RouterModule } from '@angular/router';\nimport { DisablePriceFetchModule, TooltipModule } from '@parts/directives';\nimport { ConfirmModalModule } from '@parts/modals/confirm-modal/confirm-modal.module';\nimport { DeeplinkModule } from '../../pages/deeplink/deeplink.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { IntToMoneyPipeModule } from '@parts/pipes';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\nimport { SynchronizationStatusComponent } from '@parts/components/synchronization-status.component';\nimport { WalletCardComponent } from '@parts/components/wallet-card.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [SidebarComponent],\n imports: [\n CommonModule,\n RouterModule,\n DragDropModule,\n TooltipModule,\n TranslateModule,\n DisablePriceFetchModule,\n ConfirmModalModule,\n SynchronizationStatusComponent,\n DeeplinkModule,\n StakingSwitchComponent,\n FlexLayoutModule,\n IntToMoneyPipeModule,\n WalletCardComponent,\n MatIconModule,\n ],\n exports: [SidebarComponent],\n})\nexport class SidebarModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-with-sidebar-layout',\n templateUrl: './with-sidebar-layout.component.html',\n styleUrls: ['./with-sidebar-layout.component.scss'],\n})\nexport class WithSidebarLayoutComponent {}\n","\n\n
\n \n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WithSidebarLayoutComponent } from './with-sidebar-layout.component';\nimport { SidebarModule } from '../sidebar/sidebar.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterOutlet } from '@angular/router';\n\n@NgModule({\n declarations: [WithSidebarLayoutComponent],\n imports: [CommonModule, RouterOutlet, FlexLayoutModule, SidebarModule],\n exports: [WithSidebarLayoutComponent],\n})\nexport class WithSidebarLayoutModule {}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CREATE_NEW_WALLET_HELP_PAGE } from '@parts/data/constants';\nimport { filePathWalletValidator } from '@parts/utils/zano-validators';\nimport { ModalService } from '@parts/services/modal.service';\n\n@Component({\n selector: 'app-add-wallet',\n templateUrl: './add-wallet.component.html',\n styleUrls: ['./add-wallet.component.scss'],\n})\nexport class AddWalletComponent {\n private translateService = inject(TranslateService);\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private modalService: ModalService,\n private backendService: BackendService,\n private ngZone: NgZone\n ) {}\n\n openWallet(): void {\n const caption = this.translateService.instant('MAIN.CHOOSE_PATH');\n const default_path = this.variablesService.settings.default_path;\n this.backendService.openFileDialog(caption, '*', default_path, async (file_status, file_data) => {\n if (!file_status) {\n if (file_data['error_code'] !== 'CANCELED') {\n this.modalService.prepareModal('error', file_data['error_code']);\n }\n return;\n }\n const positionLastSlash = file_data.path.lastIndexOf('/');\n const new_default_path = file_data.path.slice(0, positionLastSlash);\n const error = filePathWalletValidator(file_data.path);\n\n if (error) {\n const text = this.translateService.instant(error.errorText);\n this.modalService.prepareModal('error', text);\n return;\n }\n\n this.variablesService.settings.default_path = new_default_path;\n await this.ngZone.run(async () => {\n await this.router.navigate(['/open'], {\n queryParams: { path: file_data.path },\n });\n });\n });\n }\n\n openInBrowser(): void {\n this.backendService.openUrlInBrowser(CREATE_NEW_WALLET_HELP_PAGE);\n }\n}\n","
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n
\n
\n
\n

{{ 'MAIN.TITLE' | translate }}

\n\n \n\n \n\n \n\n \n \n {{ 'MAIN.HELP' | translate }}\n

\n
\n
\n
\n
\n
\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { IntToMoneyPipe } from '@parts/pipes/int-to-money-pipe/int-to-money.pipe';\nimport BigNumber from 'bignumber.js';\nimport { Subject } from 'rxjs';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpAliasName } from '@parts/utils/zano-validators';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-assign-alias',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ASSIGN_ALIAS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n {{ 'ASSIGN_ALIAS.NAME.LABEL' | translate }}\n \n
\n \n
\n \n 6 &&\n assignForm.get('name').value.length <= 25\n \"\n >\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_WRONG' | translate }}\n
\n
25\">\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_LENGTH' | translate }}\n
\n
\n
\n
\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_EXISTS' | translate }}\n
\n
\n
\n
\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\n
\n
\n
\n\n
\n \n {{ 'ASSIGN_ALIAS.COMMENT.LABEL' | translate }}\n \n \n \n
= variablesService.maxCommentLength\" class=\"error\">\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n\n

\n {{\n 'ASSIGN_ALIAS.COST'\n | translate\n : {\n value: alias.price | intToMoney,\n currency: variablesService.defaultTicker\n }\n }}\n

\n\n \n {{ 'ASSIGN_ALIAS.BUTTON_ASSIGN' | translate }}\n \n \n
\n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class AssignAliasComponent implements OnInit, OnDestroy {\n wallet: Wallet;\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.ASSIGN_ALIAS',\n },\n ];\n\n fb = inject(FormBuilder);\n\n assignForm = this.fb.group({\n name: this.fb.nonNullable.control('', [Validators.required, Validators.pattern(regExpAliasName)]),\n comment: this.fb.nonNullable.control('', [Validators.maxLength(this.variablesService.maxCommentLength)]),\n });\n\n alias = {\n name: '',\n fee: this.variablesService.default_fee,\n price: new BigNumber(0),\n reward: '0',\n rewardOriginal: '0',\n comment: '',\n exists: false,\n };\n\n canRegister = false;\n\n notEnoughMoney = false;\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private ngZone: NgZone,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private intToMoney: IntToMoneyPipe\n ) {}\n\n ngOnInit(): void {\n this.wallet = this.variablesService.currentWallet;\n this.assignForm\n .get('name')\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe({\n next: value => {\n this.canRegister = false;\n this.alias.exists = false;\n const newName = value.toLowerCase().replace('@', '');\n if (\n !(this.assignForm.controls['name'].errors && hasOwnProperty(this.assignForm.controls['name'].errors, 'pattern')) &&\n newName.length >= 6 &&\n newName.length <= 25\n ) {\n this.backend.getAliasInfoByName(newName, status => {\n this.ngZone.run(() => {\n this.alias.exists = status;\n });\n if (!status) {\n this.alias.price = new BigNumber(0);\n this.backend.getAliasCoast(newName, (statusPrice, dataPrice) => {\n this.ngZone.run(() => {\n if (statusPrice) {\n this.alias.price = BigNumber.sum(dataPrice['coast'], this.variablesService.default_fee_big);\n }\n const unlocked_balance = new BigNumber(this.wallet.getBalanceByTicker('ZANO')?.unlocked || 0);\n this.notEnoughMoney = this.alias.price.isGreaterThan(unlocked_balance);\n this.alias.reward = this.intToMoney.transform(this.alias.price);\n this.alias.rewardOriginal = this.intToMoney.transform(dataPrice['coast']);\n this.canRegister = !this.notEnoughMoney;\n });\n });\n } else {\n this.notEnoughMoney = false;\n this.alias.reward = '0';\n this.alias.rewardOriginal = '0';\n }\n });\n } else {\n this.notEnoughMoney = false;\n this.alias.reward = '0';\n this.alias.rewardOriginal = '0';\n }\n this.alias.name = newName;\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n assignAlias(): void {\n const alias = this.backend.getWalletAlias(this.wallet.address);\n if (hasOwnProperty(alias, 'name')) {\n this.modalService.prepareModal('info', 'ASSIGN_ALIAS.ONE_ALIAS');\n } else {\n this.alias.comment = this.assignForm.get('comment').value;\n this.backend.registerAlias(\n this.wallet.wallet_id,\n this.alias.name,\n this.wallet.address,\n this.alias.fee,\n this.alias.comment,\n this.alias.rewardOriginal,\n async status => {\n if (status) {\n this.wallet.wakeAlias = true;\n this.modalService.prepareModal('info', 'ASSIGN_ALIAS.REQUEST_ADD_REG');\n await this.ngZone.run(async () => {\n await this.router.navigate(['/wallet/']);\n });\n }\n }\n );\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { paths, pathsChildrenAuth } from '../paths';\nimport { NoWalletComponent } from './no-wallet/no-wallet.component';\nimport { FullLayoutComponent } from '../../layouts/full-layout/full-layout.component';\n\nconst routes: Routes = [\n {\n path: paths.auth,\n component: FullLayoutComponent,\n children: [\n {\n path: pathsChildrenAuth.noWallet,\n component: NoWalletComponent,\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AuthRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AuthRoutingModule } from './auth-routing.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { NoWalletComponent } from './no-wallet/no-wallet.component';\nimport { SynchronizationStatusComponent } from '@parts/components/synchronization-status.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [NoWalletComponent],\n imports: [CommonModule, AuthRoutingModule, TranslateModule, FlexLayoutModule, SynchronizationStatusComponent, MatIconModule],\n})\nexport class AuthModule {}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss'],\n})\nexport class LoginComponent implements OnInit, OnDestroy {\n submitLoading$ = new BehaviorSubject(false);\n\n resetLoading$ = new BehaviorSubject(false);\n\n fb = inject(FormBuilder);\n\n get zanoLogo(): string {\n const {\n settings: { isDarkTheme },\n } = this.variablesService;\n return isDarkTheme ? 'assets/icons/blue/zano-logo.svg' : 'assets/icons/blue/light-zano-logo.svg';\n }\n\n regForm = this.fb.group(\n {\n password: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n confirmation: this.fb.nonNullable.control(''),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirmation')],\n }\n );\n\n authForm = this.fb.group({\n password: this.fb.nonNullable.control(''),\n });\n\n type = 'reg';\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n public walletsService: WalletsService,\n private route: ActivatedRoute,\n private router: Router,\n private backend: BackendService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe({\n next: params => {\n if (params.type) {\n this.type = params.type;\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onSubmitCreatePass(): void {\n if (this.regForm.valid) {\n this.variablesService.appPass = this.regForm.get('password').value; // the pass what was written in input of login form by user\n\n this.backend.setMasterPassword({ pass: this.variablesService.appPass }, (status, data) => {\n if (status) {\n this.backend.storeSecureAppData({\n pass: this.variablesService.appPass,\n });\n this.variablesService.appLogin = true;\n this.variablesService.dataIsLoaded = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n } else {\n console.log(data['error_code']);\n }\n });\n }\n }\n\n onSkipCreatePass(): void {\n this.ngZone.run(() => {\n this.variablesService.appPass = '';\n this.variablesService.appLogin = true;\n this.router.navigate(['/']);\n });\n }\n\n resetJwtWalletRpc(): void {\n this.backend.setupJwtWalletRpc({ secret: '', zanoCompation: false });\n }\n\n dropSecureAppData(): void {\n this.resetLoading$.next(true);\n\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n this.resetJwtWalletRpc();\n this.closeAllWallets();\n this.backend.dropSecureAppData(() => {\n this.ngZone.run(() => {\n this.resetLoading$.next(false);\n this.onSkipCreatePass();\n });\n\n });\n this.variablesService.contacts = [];\n }, 500);\n }\n\n onSubmitAuthPass(): void {\n this.submitLoading$.next(true);\n\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n if (this.authForm.valid) {\n this.variablesService.appPass = this.authForm.get('password').value;\n if (this.variablesService.dataIsLoaded) {\n this.backend.checkMasterPassword({ pass: this.variablesService.appPass }, status => {\n if (status) {\n this.variablesService.appLogin = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/'], {\n queryParams: { prevUrl: 'login' },\n });\n });\n } else {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.setAuthPassError({ wrong_password: true });\n });\n }\n });\n } else {\n this.getData(this.variablesService.appPass);\n }\n } else {\n this.submitLoading$.next(false);\n }\n }, 500);\n }\n\n getData(appPass): void {\n this.backend.getSecureAppData({ pass: appPass }, (status, data) => {\n if (!data.error_code) {\n this.setAuthPassError(null);\n this.variablesService.appLogin = true;\n this.variablesService.dataIsLoaded = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.variablesService.appPass = appPass;\n const isEmptyObject = Object.keys(data).length === 0 && data.constructor === Object;\n\n if (this.variablesService.wallets.length > 0) {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/wallet/']);\n });\n return;\n }\n if (hasOwnProperty(data, 'contracts')) {\n if (Object.keys(data['contacts']).length !== 0) {\n data['contacts'].map(contact => {\n this.variablesService.contacts.push(contact);\n });\n }\n }\n if (hasOwnProperty(data, 'wallets')) {\n if (Object.keys(data['wallets']).length !== 0) {\n this.getWalletData(data['wallets']);\n } else {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/']);\n });\n }\n }\n if (!hasOwnProperty(data, 'wallets') && !hasOwnProperty(data, 'contracts')) {\n if (data.length !== 0 && !isEmptyObject) {\n this.getWalletData(data);\n } else {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/']);\n });\n }\n }\n\n if (this.variablesService.settings.zanoCompanionForm.zanoCompation) {\n this.backend.setupJwtWalletRpc(this.variablesService.settings.zanoCompanionForm);\n }\n }\n\n if (data.error_code === 'WRONG_PASSWORD') {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.setAuthPassError({ wrong_password: true });\n });\n }\n });\n }\n\n getWalletData(walletData): void {\n let openWallets = 0;\n let runWallets = 0;\n walletData.forEach((wallet, wallet_index) => {\n this.backend.openWallet(wallet.path, wallet.pass, this.variablesService.count, true, (open_status, open_data, open_error) => {\n if (open_status || open_error === 'FILE_RESTORED') {\n openWallets++;\n this.ngZone.run(() => {\n const new_wallet = new Wallet(\n open_data.wallet_id,\n wallet.name,\n wallet.pass,\n open_data['wi'].path,\n open_data['wi'].address,\n open_data['wi'].balance,\n open_data['wi'].unlocked_balance,\n open_data['wi'].mined_total,\n open_data['wi'].tracking_hey\n );\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\n if (wallet.staking) {\n new_wallet.staking = true;\n this.backend.startPosMining(new_wallet.wallet_id);\n } else {\n new_wallet.staking = false;\n }\n new_wallet.is_auditable = open_data['wi'].is_auditable;\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\n new_wallet.currentPage = 1;\n new_wallet.exclude_mining_txs = false;\n if (open_data.recent_history && open_data.recent_history.history) {\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\n new_wallet.totalPages = Math.ceil(open_data.recent_history.total_history_items / this.variablesService.count);\n new_wallet.totalPages > this.variablesService.maxPages\n ? (new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index));\n new_wallet.prepareHistory(open_data.recent_history.history);\n } else {\n new_wallet.total_history_item = 0;\n new_wallet.pages = new Array(1).fill(1);\n new_wallet.totalPages = 1;\n }\n this.walletsService.addWallet(new_wallet);\n if (this.variablesService.wallets.length === 1) {\n this.router.navigate(['/wallet/']);\n }\n });\n this.backend.runWallet(open_data.wallet_id, run_status => {\n if (run_status) {\n runWallets++;\n } else {\n if (wallet_index === walletData.length - 1 && runWallets === 0) {\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n }\n }\n });\n } else {\n if (wallet_index === walletData.length - 1 && openWallets === 0) {\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n }\n }\n });\n });\n this.submitLoading$.next(false);\n }\n\n closeAllWallets(): void {\n this.variablesService.wallets.forEach(({ wallet_id }) => this.closeWallet(wallet_id));\n }\n\n closeWallet(wallet_id) {\n this.backend.closeWallet(wallet_id, () => {\n for (let i = this.variablesService.wallets.length - 1; i >= 0; i--) {\n this.variablesService.wallets.splice(i, 1);\n this.backend.storeSecureAppData();\n }\n });\n }\n\n private setAuthPassError(errors: ValidationErrors | null): void {\n this.authForm.controls['password'].setErrors(errors);\n }\n}\n","
\n
\n \n\n
\n
\n
\n \n \n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n
\n\n
\n \n \n \n
\n {{ 'LOGIN.FORM_ERRORS.MISMATCH' | translate }}\n
\n
\n
\n
\n\n \n {{ 'LOGIN.BUTTON_NEXT' | translate }}\n \n\n \n {{ 'LOGIN.BUTTON_SKIP' | translate }}\n \n \n\n
\n
\n
\n \n \n \n
\n {{ 'LOGIN.FORM_ERRORS.INVALID_PASS' | translate }}\n
\n
\n
\n
\n\n \n\n \n \n \n\n \n\n\n\n \n\n","import { Component, NgZone } from '@angular/core';\nimport { CREATE_NEW_WALLET_HELP_PAGE } from '@parts/data/constants';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-no-wallet',\n templateUrl: './no-wallet.component.html',\n styleUrls: ['./no-wallet.component.scss'],\n})\nexport class NoWalletComponent {\n get zanoLogo(): string {\n const {\n settings: { isDarkTheme },\n } = this.variablesService;\n return isDarkTheme ? 'assets/icons/blue/zano-logo.svg' : 'assets/icons/blue/light-zano-logo.svg';\n }\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private ngZone: NgZone,\n private translate: TranslateService\n ) {}\n\n openWallet(): void {\n this.backend.openFileDialog(\n this.translate.instant('MAIN.CHOOSE_PATH'),\n '*',\n this.variablesService.settings.default_path,\n (file_status, file_data) => {\n if (file_status) {\n this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/'));\n this.ngZone.run(() => {\n this.router\n .navigate(['/open'], {\n queryParams: { path: file_data.path },\n })\n .then();\n });\n } else {\n console.log(file_data['error_code']);\n }\n }\n );\n }\n\n openInBrowser(): void {\n this.backend.openUrlInBrowser(CREATE_NEW_WALLET_HELP_PAGE);\n }\n}\n","
\n
\n \n\n

{{ 'MAIN.TITLE' | translate }}

\n\n \n\n \n\n \n\n

\n \n {{ 'MAIN.HELP' | translate }}\n

\n
\n\n \n
\n","import { Component, inject, NgZone } from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Router } from '@angular/router';\nimport { Wallet } from '@api/models/wallet.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'app-create-wallet',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n \n
\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
variablesService.maxWalletNameLength\" class=\"error\">\n {{ 'CREATE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n\n
\n \n \n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n
\n\n
\n \n 0\"\n [readonly]=\"createForm.controls.path.valid\"\n class=\"form__field--input\"\n formControlName=\"confirm\"\n id=\"confirm-wallet-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n 0\n \"\n class=\"error\"\n >\n {{ 'CREATE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\n
\n
\n\n \n\n \n {{ 'CREATE_WALLET.BUTTON_SELECT' | translate }}\n \n\n \n \n
\n \n \n\n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class CreateWalletComponent {\n variablesService = inject(VariablesService);\n\n loading$ = new BehaviorSubject(false);\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.CREATE_WALLET',\n },\n ];\n\n walletsService = inject(WalletsService);\n\n fb = inject(NonNullableFormBuilder);\n\n createForm = this.fb.group(\n {\n name: this.fb.control('', [Validators.required, ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons)]),\n password: this.fb.control('', Validators.pattern(regExpPassword)),\n confirm: this.fb.control(''),\n path: this.fb.control('', Validators.required),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirm')],\n }\n );\n\n private router = inject(Router);\n\n private backend = inject(BackendService);\n\n private modalService = inject(ModalService);\n\n private ngZone = inject(NgZone);\n\n private translate = inject(TranslateService);\n\n get savedWalletName(): string {\n const path = this.createForm.get('path').value;\n return path.substr(path.lastIndexOf('/') + 1, path.length - 1);\n }\n\n createWallet(): void {\n this.loading$.next(true);\n\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n const { path: selectedPath, password, name } = this.createForm.getRawValue();\n this.backend.generateWallet(selectedPath, password, async (generate_status, generate_data, errorCode) => {\n if (generate_status) {\n const { wallet_id } = generate_data;\n const { path, address, balance, unlocked_balance, mined_total, tracking_hey } = generate_data['wi'];\n const wallet = new Wallet(\n wallet_id,\n name,\n password,\n path,\n address,\n balance,\n unlocked_balance,\n mined_total,\n tracking_hey\n );\n wallet.alias = this.backend.getWalletAlias(address);\n wallet.total_history_item = 0;\n wallet.pages = new Array(1).fill(1);\n wallet.totalPages = 1;\n wallet.currentPage = 1;\n this.walletsService.addWallet(wallet);\n await this.backend.runWallet(wallet_id, async (run_status, run_data) => {\n if (run_status) {\n await this.ngZone.run(async () => {\n if (this.variablesService.appPass) {\n this.backend.storeSecureAppData();\n }\n this.variablesService.setCurrentWallet(wallet_id);\n this.loading$.next(false);\n await this.router.navigate(['/seed-phrase'], { queryParams: { wallet_id } });\n });\n } else {\n console.log(run_data['error_code']);\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n }\n });\n } else {\n const errorTranslationKey =\n errorCode === 'ALREADY_EXISTS' ? 'CREATE_WALLET.ERROR_CANNOT_SAVE_TOP' : 'CREATE_WALLET.ERROR_CANNOT_SAVE_SYSTEM';\n this.modalService.prepareModal('error', errorTranslationKey);\n\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n }\n });\n }, 500);\n }\n\n selectWalletLocation(): void {\n const caption = this.translate.instant('CREATE_WALLET.TITLE_SAVE');\n const fileMask = '*';\n const { default_path } = this.variablesService.settings;\n this.backend.saveFileDialog(caption, fileMask, default_path, (file_status, file_data) => {\n if (file_status) {\n this.ngZone.run(() => {\n const { path } = file_data;\n this.createForm.get('path').patchValue(path);\n this.variablesService.settings.default_path = path.substr(0, path.lastIndexOf('/'));\n });\n }\n });\n }\n}\n","import { delay, takeUntil } from 'rxjs/operators';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\n\n@Component({\n selector: 'app-deeplink',\n template: `\n \n \n\n \n \n `,\n styles: [],\n})\nexport class DeeplinkComponent implements OnInit, OnDestroy {\n deeplink$ = new BehaviorSubject(null);\n\n private destroy$ = new Subject();\n\n constructor(public variablesService: VariablesService) {}\n\n ngOnInit(): void {\n this.variablesService.deeplink$.pipe(delay(200), takeUntil(this.destroy$)).subscribe({\n next: data => {\n this.deeplink$.next(data);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DeeplinkModalModule } from './modals/deeplink-modal/deeplink-modal.module';\nimport { DeeplinkComponent } from './deeplink.component';\nimport { SyncModalModule } from './modals/sync-modal/sync-modal.module';\n\n@NgModule({\n declarations: [DeeplinkComponent],\n imports: [CommonModule, DeeplinkModalModule, SyncModalModule],\n exports: [DeeplinkComponent, DeeplinkModalModule, SyncModalModule],\n})\nexport class DeeplinkModule {}\n","import { Component, HostBinding, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { DeeplinkParams, PushOffer, Wallet } from '@api/models/wallet.model';\nimport { BigNumber } from 'bignumber.js';\nimport { MIXIN } from '@parts/data/constants';\nimport { Subject } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'app-deeplink-modal',\n template: `\n
\n 1 && !secondStep\">\n
\n
\n \n \n \n {{ item.name }}\n \n \n {{ item.name }}\n \n \n
\n
\n\n
\n \n \n
\n
\n\n \n

Creating a marketplace offer

\n
\n
\n
\n
\n {{ 'Offer title' | translate }}\n
\n
{{ actionData.title }}
\n
\n\n
\n\n
\n
\n {{ 'Description' | translate }}\n
\n
{{ actionData.description }}
\n
\n\n
\n\n
\n
\n {{ 'Category' | translate }}\n
\n
{{ actionData.category }}
\n
\n\n
\n\n
\n
\n {{ 'Price' | translate }}\n
\n
\n {{ actionData.price }}\n {{ this.variablesService.defaultTicker }}\n
\n
\n\n
\n\n
\n
\n {{ 'Preview url' | translate }}\n
\n
{{ actionData.url || actionData.img_url }}
\n
\n\n
\n\n
\n
\n {{ 'Contacts' | translate }}\n
\n
{{ actionData.contact }}
\n
\n\n
\n\n
\n
\n {{ 'Comments' | translate }}\n
\n
\n {{ actionData.comment || actionData.comments }}\n
\n
\n\n
\n\n \n \n \n \n \n \n\n \n\n
\n
\n {{ 'Transaction fee' | translate }}\n
\n
\n {{ actionData.price * (actionData.fee || this.variablesService.default_fee) }}\n {{ this.variablesService.defaultTicker }}\n
\n
\n
\n
\n\n
\n \n \n
\n
\n\n \n

Operation successful

\n\n
\n
\n
\n
\n {{ 'Operation hash' | translate }}\n
\n \n {{ marketplaceConfirmHash }}\n \n
\n
\n
\n
\n\n
\n \n
\n \n\n \n

Your wallets have not loaded yet. Try this action a little later.

\n\n
\n \n
\n
\n \n `,\n styleUrls: ['./deeplink-modal.component.scss'],\n})\nexport class DeeplinkModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n secondStep = false;\n\n walletToPayId = 0;\n\n nextStepInterval;\n\n marketplaceModalShow = true;\n\n copyAnimation = false;\n\n marketplaceConfirmHash: any = null;\n\n actionData: DeeplinkParams = {};\n\n defaultMixin = MIXIN;\n\n walletsToPay: Array = [];\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private _router: Router,\n private backend: BackendService,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {\n this.walletsToPay = this.variablesService.wallets.filter(wallet => !wallet.is_watch_only || !wallet.is_auditable);\n }\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n\n this.variablesService.deeplink$.pipe(takeUntil(this.destroy$)).subscribe({\n next: deeplink => {\n this.actionData = {};\n\n if (deeplink) {\n if (this.walletsToPay.length === 0) {\n this.canselAction();\n return;\n }\n this.actionData = this.parseDeeplink(deeplink);\n if (this.walletsToPay.length === 1) {\n this.walletToPayId = this.walletsToPay[0].wallet_id;\n const { daemon_state, sync_started } = this.variablesService;\n\n if (daemon_state === 2 && sync_started === false) {\n this.nextStep();\n } else {\n this.nextStepInterval = setInterval(() => {\n if (daemon_state === 2 && sync_started === false) {\n this.nextStep();\n clearInterval(this.nextStepInterval);\n }\n }, 1500);\n }\n }\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.variablesService.deeplink$.next(null);\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n parseDeeplink(deeplink): DeeplinkParams {\n const quotesRex = new RegExp(/'|\"|”|%E2%80%9D|%22/g);\n const spaceSymbolRex = new RegExp(/%20/g);\n const newObj = {};\n\n const newString = deeplink.substr(5); // delete zano:;\n newString.split('&').forEach(str => {\n const [key, value] = str.split('=');\n newObj[key] = value.replace(quotesRex, '').replace(spaceSymbolRex, ' ').trim();\n });\n return newObj;\n }\n\n canselAction(): void {\n this.variablesService.deeplink$.next(null);\n this.variablesService.sendActionData$.next({});\n this.actionData = {};\n this.secondStep = false;\n }\n\n marketplaceSend(): void {\n const offerObject: PushOffer = {\n wallet_id: this.walletToPayId,\n od: {\n ap: this.actionData.price || '',\n at: '1',\n cat: this.actionData.category || '',\n cnt: this.actionData.contact || '',\n com: this.actionData.comment || this.actionData.comments || '',\n do: this.actionData.description || '',\n et: 10,\n fee: new BigNumber('' + (+this.actionData.fee || +this.variablesService.default_fee) * 1000000000000),\n lci: '',\n lco: 'World Wide',\n ot: 1,\n pt: 'Credit cards, BTC, ZANO, ETH',\n t: this.actionData.title || '',\n url: this.actionData.url || this.actionData.img_url || '',\n },\n };\n this.backend.push_offer(offerObject, (status, data) => {\n this.ngZone.run(() => {\n if (data.success) {\n this.marketplaceModalShow = false;\n this.marketplaceConfirmHash = data.tx_hash;\n } else {\n this.canselAction();\n }\n });\n });\n }\n\n copyHash(): void {\n this.backend.setClipboard(this.marketplaceConfirmHash);\n this.copyAnimation = true;\n setTimeout(() => (this.copyAnimation = false), 2000);\n }\n\n nextStep(): void {\n if (this.actionData.action === 'send') {\n this.variablesService.sendActionData$.next(this.actionData);\n this.variablesService.deeplink$.next(null);\n this.variablesService.setCurrentWallet(this.walletToPayId);\n this._router.navigate(['/wallet/send']).then();\n this.secondStep = false;\n } else if (this.actionData.action === 'escrow') {\n this.variablesService.sendActionData$.next(this.actionData);\n this.variablesService.deeplink$.next(null);\n this.variablesService.setCurrentWallet(this.walletToPayId);\n this._router.navigate(['/wallet/contracts/purchase']).then();\n this.secondStep = false;\n } else {\n this.secondStep = true;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DeeplinkModalComponent } from './deeplink-modal.component';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [DeeplinkModalComponent],\n imports: [CommonModule, NgSelectModule, FormsModule, FlexLayoutModule, TranslateModule, MatIconModule],\n exports: [DeeplinkModalComponent],\n})\nexport class DeeplinkModalModule {}\n","import { Component, HostBinding, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\n\n@Component({\n selector: 'app-sync-modal',\n template: `\n
\n
\n

This action is not available during synchronization...

\n \n
\n
\n `,\n styleUrls: ['./sync-modal.component.scss'],\n})\nexport class SyncModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n constructor(private renderer: Renderer2, public variablesService: VariablesService) {}\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n canselAction(): void {\n this.variablesService.deeplink$.next(null);\n this.variablesService.sendActionData$.next({});\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SyncModalComponent } from './sync-modal.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\n@NgModule({\n declarations: [SyncModalComponent],\n imports: [CommonModule, FlexLayoutModule],\n exports: [SyncModalComponent],\n})\nexport class SyncModalModule {}\n","import { Component, NgZone, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BigNumber } from 'bignumber.js';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-edit-alias',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.EDIT_ALIAS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n
\n\n
\n \n \n \n
0 && notEnoughMoney\" class=\"error\">\n {{ 'EDIT_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\n
\n
= variablesService.maxCommentLength\" class=\"error\">\n {{ 'EDIT_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n\n
\n {{\n 'EDIT_ALIAS.COST'\n | translate\n : {\n value: variablesService.default_fee,\n currency: variablesService.defaultTicker\n }\n }}\n
\n\n variablesService.maxCommentLength\n \"\n class=\"primary big w-100\"\n type=\"button\"\n >\n {{ 'EDIT_ALIAS.BUTTON_EDIT' | translate }}\n \n \n
\n
\n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class EditAliasComponent implements OnInit {\n wallet: Wallet;\n\n alias: any;\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.EDIT_ALIAS',\n },\n ];\n\n oldAliasComment: string;\n\n notEnoughMoney: boolean;\n\n requestProcessing = false;\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.wallet = this.variablesService.currentWallet;\n const alias = this.backend.getWalletAlias(this.wallet.address);\n this.alias = {\n name: alias.name,\n address: alias.address,\n comment: alias.comment,\n };\n this.oldAliasComment = alias.comment;\n const balance = new BigNumber(this.wallet.getBalanceByTicker('ZANO')?.unlocked || 0);\n this.notEnoughMoney = balance.isLessThan(this.variablesService.default_fee_big);\n }\n\n updateAlias(): void {\n if (\n this.requestProcessing ||\n this.notEnoughMoney ||\n this.oldAliasComment === this.alias.comment ||\n this.alias.comment.length > this.variablesService.maxCommentLength\n ) {\n return;\n }\n this.requestProcessing = true;\n this.backend.updateAlias(this.wallet.wallet_id, this.alias, this.variablesService.default_fee, status => {\n if (status) {\n this.modalService.prepareModal('success', '');\n this.wallet.alias['comment'] = this.alias.comment;\n this.ngZone.run(() => {\n this.router.navigate(['/wallet/']);\n });\n }\n this.requestProcessing = false;\n });\n }\n}\n","import { Component, NgZone } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Contact } from '@api/models/contact.model';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Papa } from 'ngx-papaparse';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-export-import',\n template: `\n
\n
\n
\n \n

{{ 'CONTACTS.IMPORT_EXPORT' | translate }}

\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n }\n\n .head {\n justify-content: flex-end;\n }\n\n .contacts-title {\n font-size: 1.7rem;\n margin-bottom: 1rem;\n }\n\n .btn-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0 -0.5rem;\n padding: 1.5rem 0;\n }\n\n .btn-wrapper button {\n flex: 1 0 auto;\n margin: 0 0.5rem;\n }\n `,\n ],\n})\nexport class ExportImportComponent {\n constructor(\n private variablesService: VariablesService,\n private backend: BackendService,\n private modalService: ModalService,\n private papa: Papa,\n private translate: TranslateService,\n private router: Router,\n private ngZone: NgZone\n ) {}\n\n import(): void {\n this.backend.openFileDialog('', '*', this.variablesService.settings.default_path, (file_status, file_data) => {\n if (file_status) {\n this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/'));\n if (this.isValid(file_data.path)) {\n this.backend.loadFile(file_data.path, (status, data) => {\n if (!status) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_IMPORT_EMPTY');\n } else {\n const options = {\n header: true,\n };\n const elements = this.papa.parse(data, options);\n const isArray = Array.isArray(elements.data);\n if (isArray && elements.data.length !== 0 && elements.errors.length === 0) {\n if (this.variablesService.contacts.length === 0) {\n elements.data.forEach(element => {\n this.variablesService.contacts.push(element);\n });\n } else {\n elements.data.forEach(element => {\n const indexName = this.variablesService.contacts.findIndex(\n contact => contact.name === element.name\n );\n const indexAddress = this.variablesService.contacts.findIndex(\n contact => contact.address === element.address\n );\n if (indexAddress === -1 && indexName === -1) {\n this.variablesService.contacts.push(element);\n }\n if (indexName !== -1 && indexAddress === -1) {\n this.variablesService.contacts.push({\n name: `${(element.name as string) || '---'} ${\n this.translate.instant('CONTACTS.COPY') as string\n }`,\n address: element.address,\n notes: element.notes,\n });\n }\n });\n }\n this.backend.getContactAlias();\n this.ngZone.run(() => {\n this.router.navigate(['/contacts']);\n });\n }\n if (elements.errors.length > 0) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_IMPORT');\n console.log(elements.errors);\n }\n }\n });\n } else {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_TYPE_FILE');\n }\n }\n });\n }\n\n export(): void {\n const contacts: Array = [];\n this.variablesService.contacts.forEach(contact => {\n delete contact.alias;\n contacts.push(contact);\n });\n\n this.backend.saveFileDialog('', '*', this.variablesService.settings.default_path, (file_status, file_data) => {\n if (this.variablesService.contacts.length === 0 && !(file_data.error_code === 'CANCELED')) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_EMPTY_LIST');\n }\n const path = this.isValid(file_data.path) ? file_data.path : `${(file_data.path as string) || 'base-name'}.csv`;\n if (file_status && this.isValid(path) && this.variablesService.contacts.length > 0) {\n this.backend.storeFile(path, this.papa.unparse(contacts));\n }\n if (!(file_data.error_code === 'CANCELED') && !this.isValid(path)) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_EXPORT');\n }\n });\n }\n\n isValid(file): boolean {\n return file.endsWith('.csv');\n }\n}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Wallet } from '@api/models/wallet.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { notFileZanoWallet, wrongPassword } from '@parts/utils/zano-errors';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-open-wallet',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.OPEN_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n \n
\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n {{ 'OPEN_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n
\n\n
\n \n \n \n
\n {{ openWalletForm.controls.password.errors['wrongPassword'].errorText | translate }}\n
\n
\n
\n \n \n
\n \n \n\n \n `,\n})\nexport class OpenWalletComponent implements OnInit, OnDestroy {\n loading$ = new BehaviorSubject(false);\n\n fb = inject(NonNullableFormBuilder);\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.OPEN_WALLET',\n },\n ];\n\n openWalletForm = this.fb.group({\n name: this.fb.control('', [\n Validators.required,\n Validators.maxLength(this.variablesService.maxWalletNameLength),\n ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons),\n ]),\n password: this.fb.control('', [Validators.pattern(regExpPassword)]),\n filePath: this.fb.control('', Validators.required),\n });\n\n private destroy$ = new Subject();\n\n constructor(\n public walletsService: WalletsService,\n public variablesService: VariablesService,\n private route: ActivatedRoute,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private ngZone: NgZone,\n private translate: TranslateService\n ) {}\n\n ngOnInit(): void {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe({\n next: params => {\n if (!params.path) {\n return;\n }\n\n this.openWalletForm.controls.filePath.patchValue(params.path);\n\n let filename = '';\n if (params.path.lastIndexOf('.') === -1) {\n filename = params.path.substr(params.path.lastIndexOf('/') + 1);\n } else {\n filename = params.path.substr(\n params.path.lastIndexOf('/') + 1,\n params.path.lastIndexOf('.') - 1 - params.path.lastIndexOf('/')\n );\n }\n if (filename.length > 25) {\n filename = filename.slice(0, 25);\n }\n this.openWalletForm.controls.name.patchValue(filename);\n this.openWalletForm.controls.name.markAsTouched();\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n openWallet(): void {\n this.loading$.next(true);\n\n if (this.openWalletForm.valid) {\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n const { filePath, password, name } = this.openWalletForm.getRawValue();\n const { count: txs_to_return } = this.variablesService;\n this.backend.openWallet(\n filePath,\n password,\n txs_to_return,\n false,\n (openStatus, openData, errorCode: 'WRONG_PASSWORD' | 'FILE_NOT_FOUND' | 'INVALID_FILE' | 'ALREADY_EXISTS' | string) => {\n console.log('openData', openData);\n if (errorCode === 'WRONG_PASSWORD') {\n this.ngZone.run(() => {\n this.openWalletForm.controls.password.setErrors({\n wrongPassword,\n });\n this.loading$.next(false);\n });\n return;\n }\n\n let errorText = errorCode;\n\n if (errorCode === 'FILE_NOT_FOUND') {\n errorText = this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1');\n errorText += ':
' + filePath;\n errorText += this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2');\n }\n\n if (errorCode === 'INVALID_FILE') {\n errorText = this.translate.instant(notFileZanoWallet.errorText);\n }\n\n if (['INVALID_FILE', 'FILE_NOT_FOUND'].includes(errorCode)) {\n this.modalService.prepareModal('error', errorText);\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n return;\n }\n\n if (openStatus || errorCode === 'FILE_RESTORED') {\n let exists = false;\n this.variablesService.wallets.forEach(wallet => {\n if (wallet.address === openData['wi'].address) {\n exists = true;\n }\n });\n\n if (exists) {\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\n this.backend.closeWallet(openData.wallet_id, () => {\n this.ngZone.run(() => {\n this.loading$.next(false);\n this.router.navigate(['/']);\n });\n });\n } else {\n const new_wallet = new Wallet(\n openData.wallet_id,\n name,\n password,\n openData['wi'].path,\n openData['wi'].address,\n openData['wi'].balance,\n openData['wi'].unlocked_balance,\n openData['wi'].mined_total,\n openData['wi'].tracking_hey\n );\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\n new_wallet.currentPage = 1;\n new_wallet.open_from_exist = true;\n new_wallet.exclude_mining_txs = false;\n new_wallet.is_auditable = openData['wi'].is_auditable;\n new_wallet.is_watch_only = openData['wi'].is_watch_only;\n if (openData.recent_history && openData.recent_history.history) {\n new_wallet.total_history_item = openData.recent_history.total_history_items;\n new_wallet.totalPages = Math.ceil(\n openData.recent_history.total_history_items / this.variablesService.count\n );\n new_wallet.totalPages > this.variablesService.maxPages\n ? (new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (new_wallet.pages = new Array(new_wallet.totalPages)\n .fill(1)\n .map((value, index) => value + index));\n new_wallet.prepareHistory(openData.recent_history.history);\n } else {\n new_wallet.total_history_item = 0;\n new_wallet.pages = new Array(1).fill(1);\n new_wallet.totalPages = 1;\n }\n this.walletsService.addWallet(new_wallet);\n this.backend.runWallet(openData.wallet_id, (run_status, run_data) => {\n if (run_status) {\n if (this.variablesService.appPass) {\n this.backend.storeSecureAppData();\n }\n this.ngZone.run(() => {\n this.variablesService.setCurrentWallet(openData.wallet_id);\n this.router.navigate(['/wallet/']);\n this.loading$.next(false);\n });\n } else {\n console.log(run_data['error_code']);\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n }\n });\n }\n }\n }\n );\n }, 500);\n } else {\n this.loading$.next(false);\n }\n }\n}\n","import { RouterModule, Routes } from '@angular/router';\nimport { paths } from './paths';\nimport { WithSidebarLayoutComponent } from '../layouts/with-sidebar-layout/with-sidebar-layout.component';\nimport { AddWalletComponent } from './add-wallet/add-wallet.component';\nimport { WalletDetailsComponent } from './wallet-details/wallet-details.component';\nimport { FullLayoutComponent } from '../layouts/full-layout/full-layout.component';\nimport { LoginComponent } from './auth/login/login.component';\nimport { CreateWalletComponent } from './create-wallet/create-wallet.component';\nimport { OpenWalletComponent } from './open-wallet/open-wallet.component';\nimport { RestoreWalletComponent } from './restore-wallet/restore-wallet.component';\nimport { SeedPhraseComponent } from './seed-phrase/seed-phrase.component';\nimport { AssignAliasComponent } from './assign-alias/assign-alias.component';\nimport { EditAliasComponent } from './edit-alias/edit-alias.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { DeeplinkComponent } from './deeplink/deeplink.component';\nimport { NgModule } from '@angular/core';\nimport { ExportImportComponent } from './export-import/export-import.component';\nimport { TransferAliasComponent } from './transfer-alias/transfer-alias.component';\n\nconst routes: Routes = [\n {\n path: paths.addWallet,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: AddWalletComponent,\n },\n ],\n },\n {\n path: paths.details,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: WalletDetailsComponent,\n },\n ],\n },\n {\n path: paths.login,\n component: FullLayoutComponent,\n children: [\n {\n path: '',\n component: LoginComponent,\n },\n ],\n },\n {\n path: paths.create,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: CreateWalletComponent,\n },\n ],\n },\n {\n path: paths.open,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: OpenWalletComponent,\n },\n ],\n },\n {\n path: paths.restore,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: RestoreWalletComponent,\n },\n ],\n },\n {\n path: paths.seedPhrase,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: SeedPhraseComponent,\n },\n ],\n },\n {\n path: paths.assignAlias,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: AssignAliasComponent,\n },\n ],\n },\n {\n path: paths.editAlias,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: EditAliasComponent,\n },\n ],\n },\n {\n path: paths.transferAlias,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: TransferAliasComponent,\n },\n ],\n },\n {\n path: paths.settings,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: SettingsComponent,\n },\n ],\n },\n {\n path: paths.import,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: ExportImportComponent,\n },\n ],\n },\n {\n path: paths.deeplink,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: DeeplinkComponent,\n },\n ],\n },\n {\n path: '',\n redirectTo: paths.addWallet,\n pathMatch: 'full',\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class PagesRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AuthModule } from './auth/auth.module';\nimport { WalletModule } from './wallet/wallet.module';\nimport { PagesRoutingModule } from './pages-routing.module';\nimport { LoginComponent } from './auth/login/login.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { AddWalletComponent } from './add-wallet/add-wallet.component';\nimport { CreateWalletComponent } from './create-wallet/create-wallet.component';\nimport { OpenWalletComponent } from './open-wallet/open-wallet.component';\nimport { RestoreWalletComponent } from './restore-wallet/restore-wallet.component';\nimport { SeedPhraseComponent } from './seed-phrase/seed-phrase.component';\nimport { AssignAliasComponent } from './assign-alias/assign-alias.component';\nimport { EditAliasComponent } from './edit-alias/edit-alias.component';\nimport { ModalContainerComponent } from '@parts/modals/modal-container/modal-container.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { DefaultImgModule, DisablePriceFetchModule } from '@parts/directives';\nimport { TooltipModule } from '@parts/directives/tooltip/tooltip.module';\nimport { ConfirmModalModule } from '@parts/modals/confirm-modal/confirm-modal.module';\nimport { DeeplinkModule } from './deeplink/deeplink.module';\nimport { FullLayoutModule } from '../layouts/full-layout/full-layout.module';\nimport { WithSidebarLayoutModule } from '../layouts/with-sidebar-layout/with-sidebar-layout.module';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { TransferAliasComponent } from './transfer-alias/transfer-alias.component';\nimport {\n ContractStatusMessagesPipeModule,\n ContractTimeLeftPipeModule,\n HistoryTypeMessagesPipeModule,\n IntToMoneyPipeModule,\n IsAvailableAliasNamePipeModule,\n MoneyToIntPipeModule,\n SafeHtmlPipeModule,\n ShortStringPipe,\n} from '@parts/pipes';\nimport { InputValidateModule } from '@parts/directives/input-validate';\nimport { InputDisableSelectionModule } from '@parts/directives/input-disable-selection';\nimport { CheckboxComponent } from '@parts/components/checkbox.component';\nimport { CopyButtonComponent } from '@parts/components/copy-button.component';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\nimport { SwitchComponent } from '@parts/components/switch.component';\nimport { SynchronizationStatusComponent } from '@parts/components/synchronization-status.component';\nimport { LoaderComponent } from '@parts/components/loader.component';\nimport { AutoFocusDirective } from '@parts/directives/autofocus.directive';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BackButtonComponent } from '@parts/components/back-button/back-button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { IsVisibleControlErrorPipe } from '@parts/pipes/is-visible-control-error.pipe';\n\n@NgModule({\n declarations: [\n LoginComponent,\n SettingsComponent,\n AddWalletComponent,\n CreateWalletComponent,\n OpenWalletComponent,\n RestoreWalletComponent,\n SeedPhraseComponent,\n AssignAliasComponent,\n EditAliasComponent,\n TransferAliasComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n PagesRoutingModule,\n AuthModule,\n WalletModule,\n NgSelectModule,\n TranslateModule.forChild(),\n FlexLayoutModule,\n DisablePriceFetchModule,\n TooltipModule,\n ConfirmModalModule,\n DeeplinkModule,\n FullLayoutModule,\n WithSidebarLayoutModule,\n OverlayModule,\n DefaultImgModule,\n ContractStatusMessagesPipeModule,\n ContractTimeLeftPipeModule,\n HistoryTypeMessagesPipeModule,\n IntToMoneyPipeModule,\n IsAvailableAliasNamePipeModule,\n MoneyToIntPipeModule,\n SafeHtmlPipeModule,\n ShortStringPipe,\n InputValidateModule,\n InputDisableSelectionModule,\n CheckboxComponent,\n CopyButtonComponent,\n StakingSwitchComponent,\n SwitchComponent,\n SynchronizationStatusComponent,\n LoaderComponent,\n AutoFocusDirective,\n BreadcrumbsComponent,\n BackButtonComponent,\n MatIconModule,\n IsVisibleControlErrorPipe,\n ],\n})\nexport class PagesModule {}\n","export enum paths {\n auth = 'auth',\n addWallet = 'add-wallet',\n login = 'login',\n wallet = 'wallet',\n create = 'create',\n open = 'open',\n restore = 'restore',\n seedPhrase = 'seed-phrase',\n details = 'details',\n assignAlias = 'assign-alias',\n editAlias = 'edit-alias',\n transferAlias = 'transfer-alias',\n settings = 'settings',\n import = 'import',\n deeplink = 'deeplink',\n}\n\nexport enum pathsChildrenAuth {\n noWallet = 'no-wallet',\n}\n\nexport enum pathsChildrenWallet {\n assets = 'assets',\n send = 'send',\n receive = 'receive',\n history = 'history',\n contracts = 'contracts',\n staking = 'staking',\n}\n\nexport enum pathsChildrenContracts {\n purchase = 'purchase',\n}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { debounceTime, startWith, takeUntil } from 'rxjs/operators';\nimport { combineLatest, Subject } from 'rxjs';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\ninterface SeedPhraseInfo {\n address: string;\n hash_sum_matched: boolean;\n require_password: boolean;\n syntax_correct: boolean;\n tracking: boolean;\n}\n\n@Component({\n selector: 'app-restore-wallet',\n templateUrl: './restore-wallet.component.html',\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class RestoreWalletComponent implements OnInit, OnDestroy {\n public readonly breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.RESTORE_WALLET',\n },\n ];\n\n public selectedLocationWalletName: string;\n\n public selectedLocationWalletPath: string;\n\n public seedPhraseInfo: SeedPhraseInfo = null;\n\n public readonly walletsService: WalletsService = inject(WalletsService);\n\n public readonly variablesService: VariablesService = inject(VariablesService);\n\n private readonly _fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n public readonly form = this._fb.group(\n {\n name: this._fb.control('', [\n Validators.required,\n Validators.maxLength(this.variablesService.maxWalletNameLength),\n ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons),\n ]),\n seedPhrase: this._fb.control('', Validators.required),\n password: this._fb.control('', Validators.pattern(regExpPassword)),\n confirm: this._fb.control(''),\n seedPassword: this._fb.control('', Validators.pattern(regExpPassword)),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirm')],\n }\n );\n\n private _destroy$: Subject = new Subject();\n\n private readonly _router: Router = inject(Router);\n\n private readonly _backend: BackendService = inject(BackendService);\n\n private readonly _modalService: ModalService = inject(ModalService);\n\n private readonly _ngZone: NgZone = inject(NgZone);\n\n private readonly _translate: TranslateService = inject(TranslateService);\n\n private submitting: boolean = false;\n\n get isDisabledCreatedWallet(): boolean {\n return this.form.invalid || !this.selectedLocationWalletPath || this.submitting;\n }\n\n get invalidSeedPhraseInfo(): boolean {\n if (!this.seedPhraseInfo) {\n return true;\n }\n\n const { syntax_correct, require_password, hash_sum_matched } = this.seedPhraseInfo;\n return (!syntax_correct || !require_password || !hash_sum_matched) && (!syntax_correct || require_password);\n }\n\n ngOnInit(): void {\n const {\n controls: { seedPassword, seedPhrase },\n } = this.form;\n\n const obs1 = seedPhrase.valueChanges;\n const obs2 = seedPassword.valueChanges.pipe(startWith(seedPassword.value));\n\n combineLatest([obs1, obs2])\n .pipe(debounceTime(500), takeUntil(this._destroy$))\n .subscribe({\n next: ([seed_phrase, seed_password]) => {\n const params = { seed_phrase, seed_password };\n\n this._backend.getSeedPhraseInfo(params, (status, data) => {\n this._ngZone.run(() => {\n if (!status) {\n this.seedPhraseInfo = undefined;\n return;\n }\n\n this.seedPhraseInfo = data;\n });\n });\n\n this._backend.isValidRestoreWalletText(params, (_, data) => {\n this._ngZone.run(() => {\n const control = this.form.get('seedPhrase');\n if (data !== 'TRUE') {\n control.setErrors({ password_seed_phrase_not_valid: true });\n } else {\n control.updateValueAndValidity({ emitEvent: false });\n }\n });\n });\n },\n });\n }\n\n ngOnDestroy(): void {\n this.variablesService.opening_wallet = null;\n\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n restore(): void {\n this.submitting = true;\n const { name, password, seedPhrase, seedPassword } = this.form.getRawValue();\n this._backend.restoreWallet(this.selectedLocationWalletPath, password, seedPhrase, seedPassword, (status, data) => {\n this._ngZone.run(() => {\n if (status) {\n const { wallet_id } = data;\n const { path, address, balance, unlocked_balance, mined_total, tracking_hey, is_auditable, is_watch_only } = data['wi'];\n const wallet: Wallet = new Wallet(\n wallet_id,\n name,\n password,\n path,\n address,\n balance,\n unlocked_balance,\n mined_total,\n tracking_hey\n );\n wallet.is_auditable = is_auditable;\n wallet.is_watch_only = is_watch_only;\n\n wallet.restore = true;\n\n wallet.alias = this._backend.getWalletAlias(wallet.address);\n\n wallet.currentPage = 1;\n wallet.pages = new Array(1).fill(1);\n wallet.totalPages = 1;\n wallet.total_history_item = 0;\n\n if (data.recent_history && data.recent_history.history) {\n wallet.totalPages = Math.ceil(data.recent_history.total_history_items / this.variablesService.count);\n wallet.totalPages > this.variablesService.maxPages\n ? (wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (wallet.pages = new Array(wallet.totalPages).fill(1).map((value, index) => value + index));\n wallet.prepareHistory(data.recent_history.history);\n }\n\n this.variablesService.opening_wallet = wallet;\n\n this._runWallet();\n } else {\n this._modalService.prepareModal('error', 'RESTORE_WALLET.NOT_CORRECT_FILE_OR_PASSWORD');\n this.submitting = false;\n }\n });\n });\n }\n\n selectLocation(): void {\n const caption = this._translate.instant('RESTORE_WALLET.CHOOSE_PATH');\n const fileMask = '*';\n const {\n settings: { default_path },\n } = this.variablesService;\n\n this._backend.saveFileDialog(caption, fileMask, default_path, (status, data) => {\n this._ngZone.run(() => {\n if (status) {\n const startWalletName = data.path.lastIndexOf('/') + 1;\n const endWalletName = data.path.length - 1;\n this.selectedLocationWalletName = data.path.substr(startWalletName, endWalletName);\n this.selectedLocationWalletPath = data.path;\n\n this.variablesService.settings.default_path = data.path.substr(0, data.path.lastIndexOf('/'));\n }\n });\n });\n }\n\n private _runWallet(): void {\n const { opening_wallet, wallets, appPass } = this.variablesService;\n const { wallet_id, address } = opening_wallet;\n\n // Add flag when wallet was restored form seed\n this.variablesService.after_sync_request[wallet_id] = true;\n\n const exists: boolean = wallets.some((wallet: Wallet): boolean => wallet.address === address);\n\n if (exists) {\n this.variablesService.opening_wallet = null;\n\n this._modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\n\n this._backend.closeWallet(wallet_id, () => {\n this._ngZone.run(() => {\n this._router.navigate(['/']);\n });\n });\n\n return;\n }\n\n this.walletsService.addWallet(opening_wallet);\n\n this._backend.runWallet(wallet_id, (status, data) => {\n this._ngZone.run(() => {\n if (status) {\n if (appPass) {\n this._backend.storeSecureAppData();\n }\n\n this.variablesService.setCurrentWallet(wallet_id);\n this.variablesService.opening_wallet = null;\n\n this._router.navigate(['/wallet/']);\n } else {\n this._modalService.prepareModal('error', data['error_code']);\n this.submitting = false;\n console.error(data['error_code']);\n }\n });\n });\n }\n}\n","
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n \n
\n \n \n \n
\n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
\n
\n\n \n
\n \n \n \n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n
\n
\n\n \n
\n \n \n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\n
\n
\n\n \n
\n \n \n \n \n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.KEY_REQUIRED' | translate }}\n
\n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.PASSWORD_SEED_PHRASE_INCORRECT' | translate }}\n
\n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.SEED_PHRASE_IS_NO_VALID' | translate }}\n
\n
\n \n
\n\n \n \n \n
\n \n \n \n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.INCORRECT_PASSWORD' | translate }}\n
\n
\n
\n {{ 'RESTORE_WALLET.OK' | translate }}\n
\n
\n
\n
\n\n \n\n \n \n
\n
\n\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-seed-phrase',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n
\n \n \n \n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
= variablesService.maxWalletNameLength\">\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
\n\n
\n \n \n
\n \n\n \n
\n
\n \n \n
\n\n
\n \n 0\"\n class=\"form__field--input\"\n formControlName=\"confirmPassword\"\n id=\"confirm-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n \n
0\">\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\n
\n
\n
\n\n \n\n

\n \n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\n

\n \n \n\n \n
\n
\n
\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\n
\n
\n \n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }}\n \n \n 0\"\n class=\"status color-aqua\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n >\n {{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }}\n \n \n
\n
\n \n \n \n
\n {{ index + 1 }}\n
\n {{ word }}\n
\n \n
\n
\n
\n \n
\n

0\" class=\"text-align-center\">\n \n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\n

\n
\n
\n \n \n \n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class SeedPhraseComponent implements OnInit, OnDestroy {\n seedPhrase = '';\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.SAVE_PHRASE',\n },\n ];\n\n showSeed = false;\n\n wallet_id: number;\n\n wallet!: Wallet;\n\n seedPhraseCopied = false;\n\n progressWidth = '66%';\n\n fb = inject(FormBuilder);\n\n detailsForm = this.fb.group({\n name: this.fb.nonNullable.control('', [ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons)]),\n path: this.fb.nonNullable.control(''),\n });\n\n seedPhraseForm = this.fb.group(\n {\n password: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n confirmPassword: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirmPassword')],\n }\n );\n\n private destroy$ = new Subject();\n\n constructor(\n public walletsService: WalletsService,\n public variablesService: VariablesService,\n private route: ActivatedRoute,\n private backend: BackendService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.showSeed = false;\n this.getWallet();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n copySeedPhrase(): void {\n this.backend.setClipboard(this.seedPhrase, () => {\n this.ngZone.run(() => {\n setTimeout(() => {\n this.seedPhraseCopied = false;\n }, 4000);\n this.seedPhraseCopied = true;\n });\n });\n }\n\n showSeedPhrase(): void {\n this.showSeed = true;\n this.progressWidth = '100%';\n }\n\n onSubmitSeed(): void {\n if (this.seedPhraseForm.valid) {\n this.showSeedPhrase();\n const wallet_id = this.wallet_id;\n const seed_password = this.seedPhraseForm.controls.password.value;\n this.backend.getSmartWalletInfo({ wallet_id, seed_password }, (status, data) => {\n if (hasOwnProperty(data, 'seed_phrase')) {\n this.ngZone.run(() => {\n this.seedPhrase = data['seed_phrase'].trim();\n });\n }\n });\n }\n }\n\n private setWalletInfoNamePath(): void {\n this.detailsForm.get('name').setValue(this.wallet.name);\n this.detailsForm.get('path').setValue(this.wallet.path);\n }\n\n private getWallet(): void {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe({\n next: params => {\n if (params.wallet_id) {\n this.wallet_id = +params.wallet_id;\n this.wallet = this.walletsService.getWalletById(this.wallet_id);\n if (this.wallet) {\n this.setWalletInfoNamePath();\n }\n }\n },\n });\n }\n}\n","import { Component, inject, NgZone, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { scaleItems } from '@parts/data/scale-items';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { generateRandomString } from '@parts/utils/generate-random-string';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'app-settings',\n templateUrl: './settings.component.html',\n styleUrls: [`./settings.component.scss`],\n})\nexport class SettingsComponent implements OnInit {\n ifSaved = false;\n\n isSecretWasCopied: boolean = false;\n\n secretWasCopiedTimeout;\n\n scale: string;\n\n appUseTor: boolean;\n\n fb = inject(FormBuilder);\n\n changeForm = this.fb.group(\n {\n password: this.fb.nonNullable.control('', Validators.compose([Validators.pattern(regExpPassword)])),\n new_password: this.fb.nonNullable.control('', Validators.compose([Validators.required, Validators.pattern(regExpPassword)])),\n new_confirmation: this.fb.nonNullable.control(''),\n appPass: this.fb.nonNullable.control(this.variablesService.appPass ?? ''),\n },\n {\n validators: [\n ZanoValidators.formMatch('new_password', 'new_confirmation'),\n ZanoValidators.formMatch('password', 'appPass', 'pass_mismatch'),\n ],\n }\n );\n\n zanoCompanionForm: FormGroup<{\n zanoCompation: FormControl;\n secret: FormControl;\n }> = this.fb.group({\n zanoCompation: this.fb.nonNullable.control({ value: false, disabled: !this.variablesService.hasAppPass }),\n secret: this.fb.nonNullable.control(\n { value: '', disabled: false },\n {\n validators: Validators.compose([]),\n }\n ),\n });\n\n public currentNotificationsState;\n\n languagesOptions = [\n {\n name: 'en',\n language: 'SETTINGS.LANGUAGE.EN',\n },\n {\n name: 'fr',\n language: 'SETTINGS.LANGUAGE.FR',\n },\n {\n name: 'de',\n language: 'SETTINGS.LANGUAGE.DE',\n },\n {\n name: 'id',\n language: 'SETTINGS.LANGUAGE.ID',\n },\n {\n name: 'it',\n language: 'SETTINGS.LANGUAGE.IT',\n },\n {\n name: 'pt',\n language: 'SETTINGS.LANGUAGE.PT',\n },\n ];\n\n appLockOptions = [\n {\n time: 5,\n translationKey: 'SETTINGS.APP_LOCK.TIME1',\n },\n {\n time: 15,\n translationKey: 'SETTINGS.APP_LOCK.TIME2',\n },\n {\n time: 60,\n translationKey: 'SETTINGS.APP_LOCK.TIME3',\n },\n {\n time: 0,\n translationKey: 'SETTINGS.APP_LOCK.TIME4',\n },\n ];\n\n appScaleOptions = scaleItems;\n\n appLogOptions = [\n {\n id: -1,\n },\n {\n id: 0,\n },\n {\n id: 1,\n },\n {\n id: 2,\n },\n {\n id: 3,\n },\n {\n id: 4,\n },\n ];\n\n currentBuild = '';\n\n appPass: any;\n\n constructor(\n public translate: TranslateService,\n public variablesService: VariablesService,\n private renderer: Renderer2,\n public backend: BackendService,\n private ngZone: NgZone\n ) {\n this.scale = this.variablesService.settings.scale;\n this.appUseTor = this.variablesService.settings.appUseTor;\n this.zanoCompanionForm.setValue(this.variablesService.settings.zanoCompanionForm, { emitEvent: false });\n\n this.backend.getOptions();\n }\n\n ngOnInit(): void {\n this.backend.getVersion((version, type, error) => {\n this.ngZone.run(() => {\n if (!error) {\n this.currentBuild = version;\n this.variablesService.testnet = false;\n if (type === 'testnet') {\n this.currentBuild += ' TESTNET';\n this.variablesService.testnet = true;\n }\n this.variablesService.networkType = type;\n } else {\n this.currentBuild = 'There was an error getting the build version';\n }\n });\n });\n\n this.backend.getIsDisabledNotifications(state => {\n this.currentNotificationsState = state;\n });\n\n this.zanoCompanionForm.valueChanges.pipe(debounceTime(200)).subscribe({\n next: () => {\n const value = this.zanoCompanionForm.getRawValue();\n const { zanoCompation, secret } = value;\n\n if (zanoCompation && !secret) {\n this.generateSecret();\n return;\n }\n\n if (!zanoCompation && secret) {\n this.zanoCompanionForm.controls.secret.patchValue('');\n return;\n }\n\n if ((zanoCompation && secret) || (!zanoCompation && !secret)) {\n this.backend.setupJwtWalletRpc(value);\n return;\n }\n },\n });\n }\n\n copySecret(): void {\n const { secret } = this.zanoCompanionForm.getRawValue();\n\n this.backend.setClipboard(secret);\n\n this.isSecretWasCopied = true;\n this.secretWasCopiedTimeout = setTimeout(() => {\n this.isSecretWasCopied = false;\n clearTimeout(this.secretWasCopiedTimeout);\n }, 3000);\n }\n\n private generateSecret(): void {\n this.zanoCompanionForm.get('secret').setValue(generateRandomString(40));\n }\n\n regenerateSecret(): void {\n this.generateSecret();\n }\n\n setScale(): void {\n this.scale = this.variablesService.settings.scale;\n this.renderer.setStyle(document.documentElement, 'font-size', this.scale);\n this.backend.storeAppData();\n }\n\n onSubmitChangePass(): void {\n if (this.changeForm.valid) {\n this.variablesService.appPass = this.changeForm.get('new_password').value;\n\n this.backend.setMasterPassword({ pass: this.variablesService.appPass }, (status, data) => {\n if (status) {\n this.backend.storeSecureAppData({\n pass: this.variablesService.appPass,\n });\n this.variablesService.appLogin = true;\n this.variablesService.dataIsLoaded = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.ngZone.run(() => {\n this.zanoCompanionForm.controls.zanoCompation.enable({ emitEvent: false });\n this.onSave();\n });\n } else {\n console.log(data['error_code']);\n }\n });\n\n this.changeForm.reset();\n }\n }\n\n toggleNotifications(): void {\n if (!this.currentNotificationsState) {\n this.backend.setIsDisabledNotifications('true');\n this.currentNotificationsState = true;\n } else {\n this.backend.setIsDisabledNotifications('false');\n this.currentNotificationsState = false;\n }\n }\n\n toggleUseTor(): void {\n this.appUseTor = !this.appUseTor;\n this.variablesService.settings.appUseTor = this.appUseTor;\n this.backend.setEnableTor(this.appUseTor);\n this.backend.storeAppData();\n }\n\n onSave(): void {\n this.ifSaved = true;\n setTimeout(() => {\n this.ifSaved = false;\n }, 3000);\n }\n\n onLockChange(): void {\n this.variablesService.restartCountdown();\n }\n\n onLogChange(): void {\n this.backend.setLogLevel(this.variablesService.settings.appLog);\n this.backend.storeAppData();\n }\n\n onLanguageChange(): void {\n this.translate.use(this.variablesService.settings.language);\n this.backend.storeAppData();\n }\n\n showPrice(): void {\n this.variablesService.visibilityBalance$.next(!this.variablesService.visibilityBalance$.value);\n this.backend.storeAppData();\n }\n\n toggleDarkTheme(): void {\n const { settings, isDarkTheme$ } = this.variablesService;\n const isDarkTheme: boolean = !settings.isDarkTheme;\n this.variablesService.settings.isDarkTheme = isDarkTheme;\n isDarkTheme$.next(isDarkTheme);\n\n this.backend.storeAppData();\n }\n}\n","
\n
\n
\n \n

{{ 'SETTINGS.TITLE' | translate }}

\n
\n
\n
\n\n
\n
\n
\n
\n \n \n \n {{ item.language | translate }}\n \n \n {{ item.language | translate }}\n \n \n
\n\n
\n \n \n \n {{ item.translationKey | translate }}\n \n \n {{ item.translationKey | translate }}\n \n \n
\n\n
\n \n \n \n {{ item.name | translate }}\n \n \n {{ item.name | translate }}\n \n \n
\n\n
\n \n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n \n \n
\n \n
\n
\n \n \n\n \n\n \n\n
\n {{ 'SETTINGS.SECRET_WAS_COPIED' | translate }}\n
\n
\n\n
\n \n \n
\n
\n
\n
\n\n
\n

\n {{ 'SETTINGS.MASTER_PASSWORD.TITLE' | translate }}\n

\n\n
\n
\n \n 0\n \"\n class=\"form__field--input\"\n formControlName=\"password\"\n id=\"old-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_OLD' | translate }}\"\n type=\"password\"\n />\n 0\n \"\n class=\"error\"\n >\n {{ 'SETTINGS.FORM_ERRORS.CURRENT_PASS_NOT_MATCH' | translate }}\n
\n
\n\n
\n \n \n \n
\n {{ 'ERRORS.WRONG_PASSWORD_MUST_BE' | translate }} a-zA-Z0-9_.*|~!?@#$%^&+{}()<>:;\"'-=,/[]*$\n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n
\n\n
\n \n 0\n \"\n class=\"form__field--input\"\n formControlName=\"new_confirmation\"\n id=\"confirm-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n 0\n \"\n class=\"error\"\n >\n {{ 'SETTINGS.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\n
\n
\n
\n\n
\n \n {{\n 'SETTINGS.SETTINGS_SAVED' | translate\n }}\n
\n \n\n

\n Build version: {{ currentBuild }}\n

\n
\n \n \n\n","import { Component, NgZone, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport BigNumber from 'bignumber.js';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-transfer-alias',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.TRANSFER_ALIAS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n 0 &&\n (transferAddressAlias ||\n !transferAddressValid ||\n (transferAddressValid && !permissionSend) ||\n notEnoughMoney)\n \"\n class=\"form__field--input\"\n id=\"alias-transfer\"\n name=\"alias-transfer\"\n placeholder=\"{{ 'TRANSFER_ALIAS.ADDRESS.PLACEHOLDER' | translate }}\"\n type=\"text\"\n />\n 0 &&\n (transferAddressAlias ||\n !transferAddressValid ||\n (transferAddressValid && !permissionSend) ||\n notEnoughMoney)\n \"\n class=\"error\"\n >\n
\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.WRONG_ADDRESS' | translate }}\n
\n
\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.ALIAS_EXISTS' | translate }}\n
\n
\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\n
\n
\n
\n\n
\n {{\n 'TRANSFER_ALIAS.COST'\n | translate\n : {\n value: variablesService.default_fee,\n currency: variablesService.defaultTicker\n }\n }}\n
\n\n \n {{ 'TRANSFER_ALIAS.BUTTON_TRANSFER' | translate }}\n \n \n
\n
\n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class TransferAliasComponent implements OnInit {\n wallet: Wallet;\n\n alias: any;\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.TRANSFER_ALIAS',\n },\n ];\n\n transferAddress = '';\n\n transferAddressValid: boolean;\n\n transferAddressAlias: boolean;\n\n permissionSend: boolean;\n\n notEnoughMoney: boolean;\n\n requestProcessing = false;\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.wallet = this.variablesService.currentWallet;\n const alias = this.backend.getWalletAlias(this.wallet.address);\n this.alias = {\n name: alias.name,\n address: alias.address,\n comment: alias.comment,\n tracking_key: alias.tracking_key,\n };\n const unlocked_balance = new BigNumber(this.wallet.getBalanceByTicker('ZANO')?.unlocked || 0);\n this.notEnoughMoney = unlocked_balance.isLessThan(this.variablesService.default_fee_big);\n }\n\n changeAddress(): void {\n this.backend.validateAddress(this.transferAddress, status => {\n this.transferAddressValid = status;\n if (status) {\n this.backend.getPoolInfo((statusPool, dataPool) => {\n if (hasOwnProperty(dataPool, 'aliases_que') && dataPool.aliases_que.length) {\n this.setStatus(!dataPool.aliases_que.some(el => el.address === this.transferAddress));\n } else {\n this.setStatus(status);\n }\n });\n } else {\n this.setStatus(false);\n }\n });\n }\n\n setStatus(statusSet): void {\n this.permissionSend = statusSet;\n if (statusSet) {\n this.backend.getAliasByAddress(this.transferAddress, status => {\n this.ngZone.run(() => {\n if (status) {\n this.transferAddressAlias = true;\n this.permissionSend = false;\n } else {\n this.transferAddressAlias = false;\n }\n });\n });\n } else {\n this.ngZone.run(() => {\n this.transferAddressAlias = false;\n });\n }\n }\n\n transferAlias(): void {\n if (this.requestProcessing || !this.permissionSend || !this.transferAddressValid || this.notEnoughMoney) {\n return;\n }\n this.requestProcessing = true;\n const newAlias = {\n name: this.alias.name,\n address: this.transferAddress,\n comment: this.alias.comment,\n tracking_key: this.alias.tracking_key,\n };\n this.backend.updateAlias(this.wallet.wallet_id, newAlias, this.variablesService.default_fee, (status, data) => {\n if (status && hasOwnProperty(data, 'success') && data.success) {\n this.modalService.prepareModal('info', 'TRANSFER_ALIAS.REQUEST_SEND_REG');\n this.ngZone.run(() => {\n this.router.navigate(['/wallet/']);\n });\n }\n this.requestProcessing = false;\n });\n }\n}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Router } from '@angular/router';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-wallet-details',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.WALLET_DETAILS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n
\n \n \n \n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
= variablesService.maxWalletNameLength\">\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
\n
\n \n

Saved!

\n
\n
\n \n \n
\n \n\n \n \n \n
\n \n \n
\n\n
\n \n 0\n \"\n class=\"form__field--input\"\n formControlName=\"confirmPassword\"\n id=\"confirm-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n \n 0\n \"\n >\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\n
\n
\n
\n\n \n\n

\n \n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\n

\n \n \n\n \n
\n
\n
\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\n
\n
\n \n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }}\n \n \n 0\"\n class=\"status color-aqua\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n >\n {{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }}\n \n \n
\n
\n \n \n \n
\n {{ index + 1 }}\n
\n {{ word }}\n
\n \n
\n
\n \n

0\" class=\"text-align-center\">\n \n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\n

\n
\n \n \n \n \n \n \n \n `,\n})\nexport class WalletDetailsComponent {\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.WALLET_DETAILS',\n },\n ];\n\n seedPhrase = '';\n\n showSeed = false;\n\n seedPhraseCopied = false;\n\n ifSaved = false;\n\n fb = inject(NonNullableFormBuilder);\n\n detailsForm = this.fb.group({\n name: this.fb.control('', [Validators.required, ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons)]),\n path: this.fb.control(''),\n });\n\n passwordSeedPhraseForm = this.fb.group(\n {\n password: this.fb.control('', Validators.pattern(regExpPassword)),\n confirmPassword: this.fb.control('', Validators.pattern(regExpPassword)),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirmPassword')],\n }\n );\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private ngZone: NgZone\n ) {\n const { currentWallet } = this.variablesService;\n const { name, path } = currentWallet;\n this.detailsForm.patchValue(\n {\n name,\n path,\n },\n {\n emitEvent: false,\n }\n );\n }\n\n beforeSubmitPasswordSeedPhrase(): void {\n if (this.passwordSeedPhraseForm.invalid) {\n this.passwordSeedPhraseForm.updateValueAndValidity();\n this.passwordSeedPhraseForm.markAllAsTouched();\n return;\n }\n\n this.submitPasswordSeedPhrase();\n }\n\n submitPasswordSeedPhrase(): void {\n const { wallet_id } = this.variablesService.currentWallet;\n const { password: seed_password } = this.passwordSeedPhraseForm.getRawValue();\n this.backend.getSmartWalletInfo({ wallet_id, seed_password }, (status, data) => {\n if (hasOwnProperty(data, 'seed_phrase')) {\n this.ngZone.run(() => {\n this.showSeed = true;\n this.seedPhrase = data['seed_phrase'].trim();\n });\n }\n });\n }\n\n beforeSubmitDetails(): void {\n if (this.detailsForm.invalid) {\n this.detailsForm.updateValueAndValidity();\n this.detailsForm.markAllAsTouched();\n return;\n }\n\n this.submitDetails();\n }\n\n submitDetails(): void {\n const getRawValue = this.detailsForm.getRawValue();\n const { name } = getRawValue;\n this.variablesService.currentWallet.name = name;\n this.detailsForm.reset(getRawValue);\n this.refreshDetailsFormValidators();\n this.ifSaved = true;\n setTimeout(() => {\n this.ifSaved = false;\n }, 3000);\n }\n\n copySeedPhrase(): void {\n this.backend.setClipboard(this.seedPhrase, () => {\n this.ngZone.run(() => {\n setTimeout(() => {\n this.seedPhraseCopied = false;\n }, 4000);\n this.seedPhraseCopied = true;\n });\n });\n }\n\n private refreshDetailsFormValidators(): void {\n const walletNamesForComparisons = this.variablesService.walletNamesForComparisons;\n const validatorsForName = [Validators.required, ZanoValidators.duplicate(walletNamesForComparisons)];\n this.detailsForm.controls.name.clearValidators();\n this.detailsForm.controls.name.setValidators(validatorsForName);\n this.detailsForm.controls.name.updateValueAndValidity();\n }\n}\n","import { Component, inject, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Subject } from 'rxjs';\nimport { AssetBalance, ParamsRemoveCustomAssetId } from '@api/models/assets.model';\nimport { PaginatePipeArgs } from 'ngx-pagination';\nimport { takeUntil } from 'rxjs/operators';\nimport { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { AssetDetailsComponent } from '@parts/modals/asset-details/asset-details.component';\nimport { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { BackendService } from '@api/services/backend.service';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BigNumber } from 'bignumber.js';\nimport { LOCKED_BALANCE_HELP_PAGE } from '@parts/data/constants';\nimport { IntToMoneyPipe } from '@parts/pipes';\nimport { TranslateService } from '@ngx-translate/core';\nimport { defaultImgSrc, zanoAssetInfo } from '@parts/data/assets';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-assets',\n template: `\n
\n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n
\n
\n {{ 'ASSETS.TABLE.LABELS.NAME' | translate }}\n
\n
\n
\n {{ 'ASSETS.TABLE.LABELS.BALANCE' | translate }}\n
\n
\n
\n {{ 'ASSETS.TABLE.LABELS.VALUE' | translate }}\n
\n
\n
\n {{ 'ASSETS.TABLE.LABELS.PRICE' | translate }}\n
\n
\n
 
\n
\n
\n \n {{ asset.asset_info.full_name }}\n
\n
\n
\n \n {{ asset.total | intToMoney : asset.asset_info.decimal_point }}\n {{ asset.asset_info.ticker }}\n \n
\n
\n
\n {{\n (asset.total | intToMoney : asset.asset_info.decimal_point) *\n variablesService.zanoMoneyEquivalent | currency : 'USD'\n }}\n
\n
\n
\n {{ variablesService.zanoMoneyEquivalent | currency : 'USD' }}\n 0\"\n [class.color-red]=\"variablesService.zanoMoneyEquivalentPercent < 0\"\n >\n {{ variablesService.zanoMoneyEquivalentPercent | number : '1.2-2' }}\n %\n \n
\n
\n
\n \n \n \n
\n
\n
\n\n \n \n\n
\n \n {{ page.label }}\n \n
\n {{ page.label }}\n
\n
\n\n \n \n
\n\n \n
    \n
  • \n \n
  • \n\n \n
  • \n \n
  • \n\n \n
  • \n \n
  • \n
    \n \n\n \n
  • \n \n
  • \n
    \n
\n \n `,\n})\nexport class AssetsComponent implements OnInit, OnDestroy {\n currentPage = 1;\n\n itemsPerPage = 10;\n\n paginationId = 'pagination-assets-id';\n zanoAssetInfo = zanoAssetInfo;\n defaultImgSrc = defaultImgSrc;\n triggerOrigin!: CdkOverlayOrigin;\n currentAsset!: AssetBalance;\n isOpenDropDownMenu = false;\n private destroy$ = new Subject();\n private readonly _matDialog: MatDialog = inject(MatDialog);\n\n constructor(\n public variablesService: VariablesService,\n private backendService: BackendService,\n private walletsService: WalletsService,\n private dialog: Dialog,\n private intToMoneyPipe: IntToMoneyPipe,\n private translate: TranslateService\n ) {}\n\n get paginatePipeArgs(): PaginatePipeArgs {\n return {\n id: this.paginationId,\n itemsPerPage: this.itemsPerPage,\n currentPage: this.currentPage,\n };\n }\n\n get isShowPagination(): boolean {\n const { currentWallet } = this.variablesService;\n if (currentWallet) {\n const { balances } = currentWallet;\n return (balances?.length || 0) > this.itemsPerPage;\n }\n return false;\n }\n\n ngOnInit(): void {\n this.listenChangeWallet();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n toggleDropDownMenu(trigger: CdkOverlayOrigin, asset: AssetBalance): void {\n this.isOpenDropDownMenu = !this.isOpenDropDownMenu;\n this.triggerOrigin = trigger;\n this.currentAsset = asset;\n }\n\n trackByAssets(index: number, { asset_info: { asset_id } }: AssetBalance): number | string {\n return asset_id || index;\n }\n\n trackByPages(index: number): number | string {\n return index;\n }\n\n assetDetails(): void {\n const config: MatDialogConfig = {\n data: {\n assetInfo: this.currentAsset.asset_info,\n },\n };\n this._matDialog.open(AssetDetailsComponent, config);\n }\n\n beforeRemoveAsset(): void {\n if (!this.currentAsset) {\n return;\n }\n const { full_name } = this.currentAsset.asset_info;\n const config: MatDialogConfig = {\n data: {\n title: `Do you want delete \"${full_name}\"`,\n },\n };\n\n this._matDialog\n .open(ConfirmModalComponent, config)\n .afterClosed().pipe(takeUntil(this.destroy$))\n .subscribe({\n next: confirmed => confirmed && this.removeAsset(),\n });\n }\n\n removeAsset(): void {\n const { wallet_id, sendMoneyParams } = this.variablesService.currentWallet;\n const { asset_id } = this.currentAsset.asset_info;\n const params: ParamsRemoveCustomAssetId = {\n wallet_id,\n asset_id,\n };\n this.backendService.removeCustomAssetId(params, () => {\n this.walletsService.updateWalletInfo(wallet_id);\n this.currentAsset = undefined;\n\n if (sendMoneyParams) {\n this.walletsService.currentWallet.sendMoneyParams.asset_id = zanoAssetInfo.asset_id;\n }\n });\n }\n\n getBalanceTooltip(balance: AssetBalance): HTMLDivElement {\n const tooltip = document.createElement('div');\n const scrollWrapper = document.createElement('div');\n const visibilityBalance = this.variablesService.visibilityBalance$.value;\n\n if (!balance) {\n return null;\n }\n\n scrollWrapper.classList.add('balance-scroll-list');\n [balance].forEach(({ unlocked, total, asset_info: { ticker, decimal_point } }: AssetBalance) => {\n const available = document.createElement('span');\n available.setAttribute('class', 'available');\n available.innerText = `${this.translate.instant('WALLET.AVAILABLE_BALANCE')} `;\n const availableB = document.createElement('b');\n availableB.innerText = visibilityBalance\n ? `${this.intToMoneyPipe.transform(unlocked, decimal_point)} ${ticker || '---'}`\n : '******';\n available.appendChild(availableB);\n scrollWrapper.appendChild(available);\n\n const locked = document.createElement('span');\n locked.setAttribute('class', 'locked');\n locked.innerText = `${this.translate.instant('WALLET.LOCKED_BALANCE')} `;\n const lockedB = document.createElement('b');\n lockedB.innerText = visibilityBalance\n ? `${this.intToMoneyPipe.transform(new BigNumber(total).minus(unlocked), decimal_point)} ${ticker || '---'}`\n : '******';\n locked.appendChild(lockedB);\n scrollWrapper.appendChild(locked);\n });\n tooltip.appendChild(scrollWrapper);\n const link = document.createElement('span');\n link.setAttribute('class', 'link');\n link.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE_LINK');\n link.addEventListener('click', () => {\n this.backendService.openUrlInBrowser(LOCKED_BALANCE_HELP_PAGE);\n });\n tooltip.appendChild(link);\n return tooltip;\n }\n\n private listenChangeWallet(): void {\n this.variablesService.currentWalletChangedEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.currentPage = 0;\n },\n });\n }\n}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { NonNullableFormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { AssetBalance, AssetInfo } from '@api/models/assets.model';\nimport BigNumber from 'bignumber.js';\nimport { intToMoney } from '@parts/functions/int-to-money';\nimport { insuficcientFunds } from '@parts/utils/zano-errors';\nimport { BackendService } from '@api/services/backend.service';\nimport { moneyToInt } from '@parts/functions/money-to-int';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-burn-custom-asset',\n templateUrl: './burn-custom-asset.component.html',\n styleUrls: ['./burn-custom-asset.component.scss'],\n})\nexport class BurnCustomAssetComponent {\n public readonly variablesService: VariablesService = inject(VariablesService);\n\n public readonly data: { assetInfo: AssetInfo } = inject(MAT_DIALOG_DATA);\n\n public readonly matDialogRef: MatDialogRef = inject(MatDialogRef);\n\n private readonly _fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n public readonly form = this._fb.group({\n amount: this._fb.control('', [\n Validators.required,\n (control): ValidationErrors | null => {\n const { value: amount } = control;\n const {\n assetInfo: { asset_id },\n } = this.data;\n const { currentWallet, maximum_value } = this.variablesService;\n const prepared_amount = new BigNumber(amount);\n const assetBalance: AssetBalance | undefined = currentWallet.getBalanceByAssetId(asset_id);\n\n if (!assetBalance) {\n return {\n asset_not_found: true,\n };\n }\n\n const {\n unlocked,\n asset_info: { decimal_point },\n } = assetBalance;\n\n const maximum_amount_by_decimal_point = intToMoney(maximum_value, decimal_point);\n if (prepared_amount.isGreaterThan(maximum_amount_by_decimal_point)) {\n return { greater_than_maximum_amount: { max: maximum_amount_by_decimal_point } };\n }\n\n const preparedUnlocked = intToMoney(unlocked, decimal_point);\n return prepared_amount.isGreaterThan(preparedUnlocked) ? { insuficcientFunds } : null;\n },\n ]),\n });\n\n private readonly _backendService: BackendService = inject(BackendService);\n\n private readonly _ngZone: NgZone = inject(NgZone);\n\n public submit(): void {\n const { amount } = this.form.getRawValue();\n const {\n currentWallet: { wallet_id },\n } = this.variablesService;\n const {\n assetInfo: { asset_id, decimal_point },\n } = this.data;\n\n const params = {\n burn_amount: moneyToInt(amount, decimal_point).toString(),\n asset_id,\n };\n\n this._backendService.asyncCall2a(\n 'call_wallet_rpc',\n wallet_id,\n {\n jsonrpc: '2.0',\n id: 0,\n method: 'burn_asset',\n params,\n },\n (job_id: number): void => {\n this._ngZone.run(() => {\n this.matDialogRef.close(job_id);\n });\n }\n );\n }\n}\n","
\n

\n {{ 'Burn' | translate }}\n

\n\n \n
\n \n\n \n\n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ form.controls.amount.errors['insuficcientFunds'].errorText | translate }}\n
\n
\n {{ 'ERRORS.ASSET_NOT_FOUND' | translate }}\n
\n
\n {{ 'ERRORS.MAX' | translate : { max: form.controls.amount.errors['greater_than_maximum_amount'].max } }}\n
\n
\n
\n
\n\n \n
\n \n \n
\n
\n
\n","import { Component, inject } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { NonNullableFormBuilder } from '@angular/forms';\nimport { ZanoValidators } from '@parts/utils/zano-validators';\nimport { DeployAssetParams } from '@api/models/custom-asstest.model';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-confirm-create-custom-asset',\n templateUrl: './confirm-create-custom-asset.component.html',\n styleUrls: ['./confirm-create-custom-asset.component.scss'],\n})\nexport class ConfirmCreateCustomAssetComponent {\n public readonly variablesService: VariablesService = inject(VariablesService);\n\n public readonly data: { asset_descriptor: DeployAssetParams['asset_descriptor'] } = inject(MAT_DIALOG_DATA);\n\n private readonly fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n public readonly confirmForm = this.fb.group(\n {\n password: this.fb.control(''),\n appPass: this.fb.control(this.variablesService.appPass || ''),\n },\n { validators: [ZanoValidators.formMatch('password', 'appPass', 'passwordNotMatch')] }\n );\n}\n","
\n

\n {{ 'CONFIRM_CREATE_CUSTOM_ASSET.TITLE' | translate }}\n

\n\n \n
\n
\n
\n {{ 'CONFIRM_CREATE_CUSTOM_ASSET.TABLE.LABEL1' | translate }}\n
\n
\n {{ data.asset_descriptor.ticker }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_CREATE_CUSTOM_ASSET.TABLE.LABEL2' | translate }}\n
\n
\n {{ data.asset_descriptor.full_name }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_CREATE_CUSTOM_ASSET.TABLE.LABEL3' | translate }}\n
\n
\n {{ data.asset_descriptor.total_max_supply | intToMoney : data.asset_descriptor.decimal_point }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_CREATE_CUSTOM_ASSET.TABLE.LABEL4' | translate }}\n
\n
\n {{ data.asset_descriptor.current_supply | intToMoney : data.asset_descriptor.decimal_point }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_CREATE_CUSTOM_ASSET.TABLE.LABEL5' | translate }}\n
\n
\n {{ data.asset_descriptor.decimal_point }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_CREATE_CUSTOM_ASSET.TABLE.LABEL6' | translate }}\n
\n
\n {{ data.asset_descriptor.meta_info }}\n
\n
\n
\n\n
\n \n \n
\n
\n {{ 'LOGIN.FORM_ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n {{ 'LOGIN.FORM_ERRORS.PASS_REQUIRED' | translate }}\n
\n
\n
\n
\n\n \n
\n \n \n
\n
\n
\n","import { Component, inject, NgZone } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { NonNullableFormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { AssetInfo } from '@api/models/assets.model';\nimport { EmitParams } from '@api/models/custom-asstest.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { intToMoney } from '@parts/functions/int-to-money';\nimport BigNumber from 'bignumber.js';\nimport { moneyToInt } from '@parts/functions/money-to-int';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-emit-custom-asset',\n templateUrl: './emit-custom-asset.component.html',\n styleUrls: ['./emit-custom-asset.component.scss'],\n})\nexport class EmitCustomAssetComponent {\n public readonly variablesService: VariablesService = inject(VariablesService);\n\n public readonly data: { assetInfo: AssetInfo } = inject(MAT_DIALOG_DATA);\n\n public readonly matDialogRef: MatDialogRef = inject(MatDialogRef);\n\n private readonly _backendService: BackendService = inject(BackendService);\n\n private readonly _fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n public readonly form = this._fb.group({\n amount: this._fb.control('', [\n Validators.required,\n (control): ValidationErrors | null => {\n const {\n assetInfo: { total_max_supply, current_supply, decimal_point },\n } = this.data;\n const { value: amount } = control;\n\n const prepared_total_max_supply: BigNumber = new BigNumber(intToMoney(total_max_supply, decimal_point));\n const prepared_current_supply: BigNumber = new BigNumber(intToMoney(current_supply, decimal_point));\n if (prepared_current_supply.plus(amount).isGreaterThan(prepared_total_max_supply)) {\n return { greater_than_total_max_supply: { max: prepared_total_max_supply.toString() } };\n }\n return null;\n },\n ]),\n });\n\n private _ngZone: NgZone = inject(NgZone);\n\n public submit(): void {\n const {\n currentWallet: { wallet_id, address },\n } = this.variablesService;\n const {\n assetInfo: { asset_id, decimal_point },\n } = this.data;\n const { amount } = this.form.getRawValue();\n const params: EmitParams = {\n asset_id,\n destinations: [\n {\n address,\n amount: moneyToInt(amount, decimal_point).toString(),\n asset_id: '0000000000000000000000000000000000000000000000000000000000000000',\n },\n ],\n };\n\n this._backendService.asyncCall2a(\n 'call_wallet_rpc',\n wallet_id,\n {\n jsonrpc: '2.0',\n id: 0,\n method: 'emit_asset',\n params,\n },\n async (job_id: number): Promise => {\n this._ngZone.run(() => {\n this.matDialogRef.close(job_id);\n });\n }\n );\n }\n}\n","
\n

\n {{ 'Emit' | translate }}\n

\n\n \n
\n \n \n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ 'ERRORS.GREATER_THAN_TOTAL_MAX_SUPPLY' | translate }}\n
\n
\n
\n
\n\n \n
\n \n \n
\n
\n
\n","import { Component, ElementRef, inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { AsyncCommandResults, BackendService } from '@api/services/backend.service';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { BLOCK_EXPLORER_TN_TX_URL_PREFIX, BLOCK_EXPLORER_TX_URL_PREFIX } from '@parts/data/constants';\nimport { VariablesService } from '@parts/services/variables.service';\n\n@Component({\n selector: 'app-transaction-details-for-custom-assets',\n templateUrl: './transaction-details-for-custom-assets.component.html',\n styleUrls: ['./transaction-details-for-custom-assets.component.scss'],\n})\nexport class TransactionDetailsForCustomAssetsComponent implements OnInit, OnDestroy {\n public status: 'loading' | 'success' | 'error' = 'loading';\n\n public data: { job_id: number } = inject(MAT_DIALOG_DATA);\n\n public details: { new_asset_id: string; result_tx: string };\n\n public error: any;\n\n @ViewChild('elDetailsList', { static: true }) elDetailsList: ElementRef;\n\n public isShowDetailsState: boolean = false;\n\n public variablesService: VariablesService = inject(VariablesService);\n\n private _backendService: BackendService = inject(BackendService);\n\n private _destroy$: Subject = new Subject();\n\n ngOnInit(): void {\n this._backendService.dispatchAsyncCallResult$\n .pipe(\n filter(Boolean),\n filter(({ job_id }: AsyncCommandResults) => this.data.job_id === job_id),\n takeUntil(this._destroy$)\n )\n .subscribe({\n next: ({ response }) => {\n if (response.error) {\n this.status = 'error';\n this.error = response.error;\n } else {\n this.status = 'success';\n this.details = response.result;\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n toggleDetails(): void {\n this.isShowDetailsState = !this.isShowDetailsState;\n setTimeout(() => this.scrollToBottomDetailsList(), 100);\n }\n\n private scrollToBottomDetailsList(): void {\n if (this.elDetailsList) {\n const { nativeElement } = this.elDetailsList;\n nativeElement.scrollTop = nativeElement.scrollHeight;\n }\n }\n\n openInBrowser(hash: string): void {\n this._backendService.openUrlInBrowser(\n (this.variablesService.testnet ? BLOCK_EXPLORER_TN_TX_URL_PREFIX : BLOCK_EXPLORER_TX_URL_PREFIX) + hash\n );\n }\n}\n","

\n {{ 'SEND_DETAILS_MODAL.TITLE1' | translate }}\n

\n\n\n
\n
\n \"success\"\n
\n\n
\n \"failed\"\n
\n\n
\n\n

\n {{\n {\n success: 'TOR_LIB_STATE.STATE_SENT_SUCCESS',\n error: 'TOR_LIB_STATE.STATE_SEND_FAILED',\n loading: 'Loading...'\n }[status] | translate\n }}\n

\n
\n\n
\n \n

\n {{ 'SEND_DETAILS_MODAL.TITLE2' | translate }}\n

\n \n
\n \n
    \n \n \n
  • \n \n New asset id: {{ new_asset_id || '---' }}\n \n \n \n
  • \n
    \n \n
  • \n \n Result tx: {{ result_tx }}\n \n \n \n
  • \n
    \n
    \n \n
  • \n \n Error: {{ error.message || 'Ops... Unknown error...' }}\n \n
  • \n
    \n
\n \n \n
\n\n\n
\n \n
\n
\n","import { Component, inject, NgZone } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { NonNullableFormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { AssetInfo } from '@api/models/assets.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { UpdateAssetParams } from '@api/models/custom-asstest.model';\nimport { regExpHex } from '@parts/utils/zano-validators';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-update-custom-asset',\n templateUrl: './update-custom-asset.component.html',\n styleUrls: ['./update-custom-asset.component.scss'],\n})\nexport class UpdateCustomAssetComponent {\n public readonly variablesService: VariablesService = inject(VariablesService);\n public readonly data: { assetInfo: AssetInfo } = inject(MAT_DIALOG_DATA);\n public readonly matDialogRef: MatDialogRef = inject(MatDialogRef);\n private readonly _backendService: BackendService = inject(BackendService);\n private readonly fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n private _ngZone: NgZone = inject(NgZone);\n public readonly form = this.fb.group({\n owner: this.fb.control('', [\n Validators.required,\n (control): ValidationErrors | null => {\n if (control.value.length === 64) {\n if (!regExpHex.test(control.value)) {\n return { hex_not_valid: true };\n } else {\n return null;\n }\n }\n\n if (control.value) {\n this._backendService.validateAddress(control.value, (status, data) => {\n this._ngZone.run(() => {\n if (status === false) {\n control.setErrors(Object.assign({ address_not_valid: true }, control.errors));\n } else {\n if (control.hasError('address_not_valid')) {\n delete control.errors['address_not_valid'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n }\n });\n });\n return control.hasError('address_not_valid') ? { address_not_valid: true } : null;\n }\n\n return null;\n },\n ]),\n });\n\n public submit(): void {\n const { wallet_id } = this.variablesService.currentWallet;\n const { asset_id } = this.data.assetInfo;\n const { owner } = this.form.getRawValue();\n const params: UpdateAssetParams = {\n asset_id,\n asset_descriptor: {\n owner,\n },\n };\n\n this._backendService.asyncCall2a(\n 'call_wallet_rpc',\n wallet_id,\n {\n jsonrpc: '2.0',\n id: 0,\n method: 'update_asset',\n params,\n },\n async (job_id: number): Promise => {\n this._ngZone.run(() => {\n this.matDialogRef.close(job_id);\n });\n }\n );\n }\n}\n","
\n

\n {{ 'Update asset' | translate }}\n

\n \n
\n \n \n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ 'ERRORS.HEX_NOT_VALID' | translate }}\n
\n
\n {{ 'ERRORS.ADDRESS_NOT_VALID' | translate }}\n
\n
\n
\n
\n\n \n
\n \n \n
\n
\n
\n","import { Component, inject, NgZone } from '@angular/core';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { AbstractControl, FormControl, FormGroup, NonNullableFormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { ConfirmCreateCustomAssetComponent } from '../../modals/confirm-create-custom-asset/confirm-create-custom-asset.component';\nimport { AssetDescriptor, DeployAssetParams, Destinations } from '@api/models/custom-asstest.model';\nimport { filter, take } from 'rxjs/operators';\nimport { BackendService } from '@api/services/backend.service';\nimport { Router } from '@angular/router';\nimport { BigNumber } from 'bignumber.js';\nimport { intToMoney } from '@parts/functions/int-to-money';\nimport { moneyToInt } from '@parts/functions/money-to-int';\nimport { TransactionDetailsForCustomAssetsComponent } from '../../modals/transaction-details-for-custom-assets/transaction-details-for-custom-assets.component';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\ntype CreateNewAssetFrom = FormGroup<{\n ticker: FormControl;\n full_name: FormControl;\n total_max_supply: FormControl;\n current_supply: FormControl;\n decimal_point: FormControl;\n meta_info: FormControl;\n hidden_supply: FormControl;\n}>;\n\n@Component({\n selector: 'app-create-new-asset',\n templateUrl: './create-new-asset.component.html',\n styleUrls: ['./create-new-asset.component.scss'],\n})\nexport class CreateNewAssetComponent {\n public readonly breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/custom-assets',\n title: 'CREATE_NEW_ASSETS.BREADCRUMBS.BREADCRUMB1',\n },\n {\n title: 'CREATE_NEW_ASSETS.BREADCRUMBS.BREADCRUMB2',\n },\n ];\n\n public readonly variablesService: VariablesService = inject(VariablesService);\n\n private readonly _backendService: BackendService = inject(BackendService);\n\n private readonly _fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n public form: CreateNewAssetFrom = this._fb.group(\n {\n ticker: this._fb.control(undefined, [Validators.required, Validators.minLength(2), Validators.maxLength(30)]),\n full_name: this._fb.control(undefined, [Validators.required, Validators.minLength(2), Validators.maxLength(150)]),\n total_max_supply: this._fb.control(undefined, [Validators.required]),\n current_supply: this._fb.control(undefined, [Validators.required]),\n decimal_point: this._fb.control('12', [Validators.required, Validators.min(0), Validators.max(18)]),\n meta_info: this._fb.control('', [Validators.maxLength(255)]),\n hidden_supply: this._fb.control(false),\n },\n {\n validators: [\n (control: AbstractControl) => {\n const error = {\n current_supply: 'ERRORS.CANNOT_BE_GREATER_THAN_TOTAL_MAX_SUPPLY',\n };\n const total_max_supply = new BigNumber(control.get('total_max_supply').value);\n const current_supply = new BigNumber(control.get('current_supply').value);\n\n if (total_max_supply.isLessThan(current_supply)) {\n return error;\n }\n\n return null;\n },\n (control: AbstractControl): ValidationErrors => {\n const { maximum_value } = this.variablesService;\n const { value: decimal_point } = control.get('decimal_point');\n const { value: total_max_supply } = control.get('total_max_supply');\n\n const prepared_total_max_supply = new BigNumber(total_max_supply);\n const max = new BigNumber(intToMoney(maximum_value, +decimal_point || 0));\n const error = { greater_than_max: { max: max.toString() } };\n\n if (prepared_total_max_supply.isGreaterThan(max)) {\n return error;\n }\n\n return null;\n },\n ],\n }\n );\n\n private readonly _router: Router = inject(Router);\n\n private readonly _matDialog: MatDialog = inject(MatDialog);\n\n private readonly _ngZone: NgZone = inject(NgZone);\n\n details(job_id: number): void {\n const config: MatDialogConfig = {\n data: {\n job_id,\n },\n disableClose: true,\n };\n this._matDialog\n .open(TransactionDetailsForCustomAssetsComponent, config)\n .afterClosed()\n .pipe(filter(Boolean), take(1))\n .subscribe({\n next: async () => {\n await this._ngZone.run(async () => {\n await this._router.navigate(['/wallet/custom-assets']);\n });\n },\n });\n }\n\n submit(): void {\n const { address, wallet_id } = this.variablesService.currentWallet;\n const { ticker, full_name, meta_info, hidden_supply, current_supply, total_max_supply, decimal_point } = this.form.getRawValue();\n\n let countDestination = 1;\n let destinationAmount: string = moneyToInt(current_supply, decimal_point).toString();\n const halfDestinationAmount: string = new BigNumber(destinationAmount).div(2).toString();\n\n if (\n !halfDestinationAmount.includes('.') &&\n new BigNumber(halfDestinationAmount).plus(halfDestinationAmount).eq(destinationAmount)\n ) {\n countDestination = 2;\n destinationAmount = halfDestinationAmount;\n }\n\n const asset_descriptor: AssetDescriptor = {\n ticker,\n full_name,\n meta_info,\n hidden_supply,\n decimal_point: new BigNumber(decimal_point).toNumber(),\n total_max_supply: moneyToInt(total_max_supply, decimal_point).toString(),\n };\n const destinations: Destinations = [];\n\n for (let i = 0; i < countDestination; i++) {\n destinations.push({\n address,\n amount: destinationAmount,\n asset_id: '0000000000000000000000000000000000000000000000000000000000000000',\n });\n }\n\n const params: DeployAssetParams = {\n asset_descriptor,\n destinations,\n };\n\n const config: MatDialogConfig = {\n disableClose: true,\n data: {\n asset_descriptor: {\n ...asset_descriptor,\n current_supply: moneyToInt(current_supply, decimal_point).toString(),\n },\n },\n };\n this._matDialog\n .open(ConfirmCreateCustomAssetComponent, config)\n .afterClosed()\n .pipe(filter(Boolean), take(1))\n .subscribe({\n next: () => {\n this._backendService.asyncCall2a(\n 'call_wallet_rpc',\n wallet_id,\n {\n jsonrpc: '2.0',\n id: 0,\n method: 'deploy_asset',\n params,\n },\n async (job_id: number): Promise => {\n this._ngZone.run(() => this.details(job_id));\n }\n );\n },\n });\n }\n}\n","
\n \n\n
\n \n
\n
\n \n \n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n\n
\n {{ 'ERRORS.MIN_LENGTH' | translate : { requiredLength: err.requiredLength } }}\n
\n\n
\n {{ 'ERRORS.MAX_LENGTH' | translate : { requiredLength: err.requiredLength } }}\n
\n
\n
\n\n
\n \n \n \n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n\n
\n {{ 'ERRORS.MIN_LENGTH' | translate : { requiredLength: err.requiredLength } }}\n
\n\n
\n {{ 'ERRORS.MAX_LENGTH' | translate : { requiredLength: err.requiredLength } }}\n
\n
\n
\n
\n\n \n
\n
\n \n \n \n \n {{ 'ERRORS.REQUIRED' | translate }}\n \n
\n\n
\n {{ 'ERRORS.TO_BIG_TOTAL_SUPPLY' | translate }}\n {{ 'ERRORS.MAX' | translate : { max: form.errors['greater_than_max'].max } }}\n
\n
\n\n \n
\n \n \n \n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n
\n {{ form.errors['current_supply'] | translate }}\n
\n \n \n\n \n
\n \n \n \n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n\n
\n {{ 'ERRORS.MIN' | translate : { min: error.min } }}\n
\n\n
\n {{ 'ERRORS.MAX' | translate : { max: error.max } }}\n
\n
\n \n\n \n
\n \n \n\n \n
\n {{ 'ERRORS.MAX_LENGTH' | translate : { requiredLength: err.requiredLength } }}\n
\n
\n \n\n \n \n\n","import { Component, inject, OnInit } from '@angular/core';\nimport { PaginatePipeArgs } from 'ngx-pagination';\nimport { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';\nimport { AssetInfo } from '@api/models/assets.model';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { AssetDetailsComponent } from '@parts/modals/asset-details/asset-details.component';\nimport { UpdateCustomAssetComponent } from '../../modals/update-custom-asset/update-custom-asset.component';\nimport { BurnCustomAssetComponent } from '../../modals/burn-custom-asset/burn-custom-asset.component';\nimport { EmitCustomAssetComponent } from '../../modals/emit-custom-asset/emit-custom-asset.component';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { TransactionDetailsForCustomAssetsComponent } from '../../modals/transaction-details-for-custom-assets/transaction-details-for-custom-assets.component';\nimport { Observable, take } from 'rxjs';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-custom-assets',\n templateUrl: './custom-assets.component.html',\n styleUrls: ['./custom-assets.component.scss'],\n})\nexport class CustomAssetsComponent implements OnInit {\n paginationId: string = 'pagination-custom-assets-id';\n\n triggerOrigin: CdkOverlayOrigin | undefined;\n\n currentAssetInfo: AssetInfo | undefined;\n\n isOpenDropDownMenu: boolean = false;\n\n connectedOverlayPositions: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 30,\n },\n ];\n paginateArgs: PaginatePipeArgs = {\n id: this.paginationId,\n itemsPerPage: 10,\n currentPage: 1,\n };\n\n public variablesService: VariablesService = inject(VariablesService);\n\n private readonly _matDialog: MatDialog = inject(MatDialog);\n\n private readonly _walletsService: WalletsService = inject(WalletsService);\n\n get assets(): AssetInfo[] {\n return this._walletsService.currentWallet?.assetsInfoWhitelist?.own_assets ?? [];\n }\n\n get isShowPagination(): boolean {\n const { currentWallet } = this.variablesService;\n if (!currentWallet) {\n return false;\n }\n const {\n assetsInfoWhitelist: { own_assets },\n } = currentWallet;\n return own_assets?.length > this.paginateArgs.itemsPerPage;\n }\n\n ngOnInit(): void {\n this._loadAssets();\n }\n\n toggleDropDownMenu(trigger: CdkOverlayOrigin, asset: AssetInfo): void {\n this.isOpenDropDownMenu = !this.isOpenDropDownMenu;\n this.triggerOrigin = trigger;\n this.currentAssetInfo = asset;\n }\n\n closeDropDownMenu(): void {\n this.isOpenDropDownMenu = false;\n }\n\n trackByAssets(index: number): number | string {\n return index;\n }\n\n trackByPages(index: number): number | string {\n return index;\n }\n\n openDialog(type: 'assetDetails' | 'emit' | 'burn' | 'update'): void {\n const config: MatDialogConfig = {\n data: {\n assetInfo: this.currentAssetInfo,\n },\n };\n\n let closed: Observable;\n\n switch (type) {\n case 'assetDetails': {\n this._matDialog.open(AssetDetailsComponent, config);\n return;\n }\n case 'emit': {\n closed = this._matDialog\n .open(EmitCustomAssetComponent, config)\n .afterClosed();\n break;\n }\n case 'burn': {\n closed = this._matDialog\n .open(BurnCustomAssetComponent, config)\n .afterClosed();\n break;\n }\n case 'update': {\n closed = this._matDialog\n .open(UpdateCustomAssetComponent, config)\n .afterClosed();\n break;\n }\n }\n\n closed\n .pipe(\n filter(job_id => typeof job_id === 'number'),\n switchMap(job_id => {\n const config: MatDialogConfig = {\n data: {\n job_id,\n },\n };\n return this._matDialog\n .open(TransactionDetailsForCustomAssetsComponent, config)\n .afterClosed();\n }),\n filter(Boolean),\n take(1)\n )\n .subscribe({\n next: () => this._loadAssets(),\n });\n }\n\n private _loadAssets(): void {\n const {\n currentWallet: { wallet_id },\n } = this._walletsService;\n this._walletsService.loadAssetsWhitelist(wallet_id);\n }\n}\n","
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n {{ 'CUSTOM_ASSETS.TABLE.LABELS.LABEL1' | translate }}\n
\n
\n
\n {{ 'CUSTOM_ASSETS.TABLE.LABELS.LABEL2' | translate }}\n
\n
\n
\n {{ 'CUSTOM_ASSETS.TABLE.LABELS.LABEL3' | translate }}\n
\n
\n
\n {{ 'CUSTOM_ASSETS.TABLE.LABELS.LABEL4' | translate }}\n
\n
\n
\n {{ 'CUSTOM_ASSETS.TABLE.LABELS.LABEL5' | translate }}\n
\n
\n
\n {{ 'CUSTOM_ASSETS.TABLE.LABELS.LABEL6' | translate }}\n
\n
\n
 
\n
\n {{ asset.asset_id | zanoShortString }}\n {{ asset.ticker }}{{ asset.full_name }}{{ asset.total_max_supply | intToMoney : asset.decimal_point }}{{ asset.current_supply | intToMoney : asset.decimal_point }}{{ asset.decimal_point }}\n
\n \n \n \n
\n
\n\n {{\n 'CUSTOM_ASSETS.BUTTONS.BUTTON1' | translate\n }}\n
\n\n \n \n\n
\n \n {{ page.label }}\n \n
\n {{ page.label }}\n
\n
\n\n \n \n
\n\n \n

{{ 'CUSTOM_ASSETS.TEXT.EMPTY' | translate }}

\n {{\n 'CUSTOM_ASSETS.BUTTONS.BUTTON1' | translate\n }}\n
\n
\n\n\n
    \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
\n\n","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { PaginationService } from '@store/pagination/pagination.service';\nimport { PaginationStore } from '@store/pagination/pagination.store';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport { collapseOnLeaveAnimation, expandOnEnterAnimation } from 'angular-animations';\nimport { ZanoAssetInfo, zanoAssetInfo } from '@parts/data/assets';\n\n@Component({\n selector: 'app-history',\n templateUrl: './history.component.html',\n styleUrls: ['./history.component.scss'],\n animations: [expandOnEnterAnimation(), collapseOnLeaveAnimation()],\n})\nexport class HistoryComponent implements OnInit, OnDestroy {\n public zanoAssetInfo: ZanoAssetInfo = zanoAssetInfo;\n\n public opened_transaction_details: string | undefined;\n\n public stop_paginate: boolean = false;\n\n public mining: boolean = false;\n\n public wallet: Wallet;\n\n private _destroy$: Subject = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private _pagination: PaginationService,\n private _backendService: BackendService,\n private _ngZone: NgZone,\n private _paginationStore: PaginationStore\n ) {}\n\n get currentWallet(): Wallet {\n return this.variablesService.currentWallet;\n }\n\n ngOnInit(): void {\n this.init();\n\n this.variablesService.currentWalletChangedEvent.pipe(filter(Boolean), takeUntil(this._destroy$)).subscribe({\n next: (wallet: Wallet) => {\n this.getRecentTransfers();\n this.mining = wallet.exclude_mining_txs;\n },\n });\n }\n\n ngOnDestroy(): void {\n this.opened_transaction_details = undefined;\n\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n init(): void {\n let restore = false;\n if (hasOwnProperty(this.variablesService.after_sync_request, String(this.variablesService.currentWallet.wallet_id))) {\n restore = this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id];\n }\n if (!this.variablesService.sync_started && restore && this.variablesService.currentWallet.wallet_id) {\n this.wallet = this.variablesService.getNotLoadedWallet();\n if (this.wallet) {\n this.tick();\n }\n // if this is was restore wallet, and it was selected on moment when sync completed\n this.getRecentTransfers();\n this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id] = false;\n }\n let after_sync_request = false;\n if (hasOwnProperty(this.variablesService.after_sync_request, String(this.variablesService.currentWallet.wallet_id))) {\n after_sync_request = this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id];\n }\n if (after_sync_request && !this.variablesService.sync_started) {\n // if user click on the wallet at the first time after restore.\n this.getRecentTransfers();\n }\n\n if (hasOwnProperty(this.variablesService.stop_paginate, String(this.variablesService.currentWallet.wallet_id))) {\n this.stop_paginate = this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id];\n } else {\n this.stop_paginate = false;\n }\n // this will hide pagination a bit earlier\n this.wallet = this.variablesService.getNotLoadedWallet();\n if (this.wallet) {\n this.tick();\n }\n }\n\n resetPaginationValues(): void {\n this._ngZone.run(() => {\n const total_history_item = this.variablesService.currentWallet.total_history_item;\n const count = this.variablesService.count;\n this.variablesService.currentWallet.totalPages = Math.ceil(total_history_item / count);\n this.variablesService.currentWallet.exclude_mining_txs = this.mining;\n this.variablesService.currentWallet.currentPage = 1;\n\n if (!this.variablesService.currentWallet.totalPages) {\n this.variablesService.currentWallet.totalPages = 1;\n }\n this.variablesService.currentWallet.totalPages > this.variablesService.maxPages\n ? (this.variablesService.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (this.variablesService.currentWallet.pages = new Array(this.variablesService.currentWallet.totalPages)\n .fill(1)\n .map((value, index) => value + index));\n });\n }\n\n setPage(pageNumber: number): void {\n // this is will allow pagination for wallets that was open from existed wallets'\n if (pageNumber === this.variablesService.currentWallet.currentPage) {\n return;\n }\n if (this.variablesService.currentWallet.open_from_exist && !this.variablesService.currentWallet.updated) {\n this.variablesService.get_recent_transfers = false;\n this.variablesService.currentWallet.updated = true;\n }\n // if not running get_recent_transfers callback\n if (!this.variablesService.get_recent_transfers) {\n this.variablesService.currentWallet.currentPage = pageNumber;\n }\n if (!this.variablesService.get_recent_transfers) {\n this.getRecentTransfers();\n }\n }\n\n toggleMiningTransactions(): void {\n if (!this.variablesService.sync_started && !this.wallet) {\n const value = this._paginationStore.value;\n if (!value) {\n this._paginationStore.setPage(1, 0, this.variablesService.currentWallet.wallet_id); // add back page for the first page\n } else {\n const pages = value.filter(item => item.walletID === this.variablesService.currentWallet.wallet_id);\n if (pages.length === 0) {\n this._paginationStore.setPage(1, 0, this.variablesService.currentWallet.wallet_id); // add back page for the first page\n }\n }\n this.mining = !this.mining;\n this.resetPaginationValues();\n this.getRecentTransfers();\n }\n }\n\n getRecentTransfers(): void {\n const offset = this._pagination.getOffset(this.variablesService.currentWallet.wallet_id);\n const value = this._paginationStore.value;\n const pages = value ? value.filter(item => item.walletID === this.variablesService.currentWallet.wallet_id) : [];\n this._backendService.getRecentTransfers(\n this.variablesService.currentWallet.wallet_id,\n offset,\n this.variablesService.count,\n this.variablesService.currentWallet.exclude_mining_txs,\n (status, data) => {\n const isForward = this._paginationStore.isForward(pages, this.variablesService.currentWallet.currentPage);\n if (this.mining && isForward && pages && pages.length === 1) {\n this.variablesService.currentWallet.currentPage = 1; // set init page after navigation back\n }\n\n const history = data && data.history;\n this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id] =\n (history && history.length < this.variablesService.count) || !history;\n this.stop_paginate = this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id];\n if (!this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id]) {\n const page = this.variablesService.currentWallet.currentPage + 1;\n if (isForward && this.mining && history && history.length === this.variablesService.count) {\n this._paginationStore.setPage(page, data.last_item_index, this.variablesService.currentWallet.wallet_id); // add back page for current page\n }\n }\n\n this._pagination.calcPages(data);\n this._pagination.prepareHistory(data, status);\n\n this._ngZone.run(() => {\n this.variablesService.get_recent_transfers = false;\n if (hasOwnProperty(this.variablesService.after_sync_request, String(this.variablesService.currentWallet.wallet_id))) {\n // this is will complete get_recent_transfers request\n // this will switch of\n this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id] = false;\n }\n });\n }\n );\n }\n\n tick(): void {\n const walletInterval = setInterval(() => {\n this.wallet = this.variablesService.getNotLoadedWallet();\n if (!this.wallet) {\n clearInterval(walletInterval);\n }\n }, 1000);\n }\n\n toggleTransactionDetails(tx_hash: string): void {\n if (tx_hash === this.opened_transaction_details) {\n this.opened_transaction_details = undefined;\n } else {\n this.opened_transaction_details = tx_hash;\n }\n }\n}\n","
\n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n 0\"\n >\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n\n
\n\n \n \n \n\n \n \n \n
\n
{{ 'HISTORY.STATUS' | translate }}
\n
\n
{{ 'HISTORY.AMOUNT' | translate }}
\n
\n
{{ 'HISTORY.FEE' | translate }}
\n
\n
{{ 'HISTORY.ADDRESS' | translate }}
\n
\n
{{ 'HISTORY.DATE' | translate }}
\n
\n \n \n \n
\n
{{ item.amount }}
\n {{ item.ticker }}\n
\n
\n
\n
\n \n \n \n\n {{ transaction.fee | intToMoney }}\n {{ variablesService.defaultTicker }}\n \n\n \n {{ 'HISTORY.NO_FEE' | translate }}\n \n \n
\n
\n \n \n
\n \n {{ transaction | historyTypeMessages }}\n \n
\n
\n\n \n \n \n {{ transaction.remote_addresses[0] | zanoShortString }}\n \n \n \n
\n \n \n = 1 && alias.length <= 5\"\n [class.mb-0_5]=\"transaction.remote_aliases.length >= 2\"\n [class.mr-0_5]=\"transaction.remote_aliases.length >= 2\"\n class=\"alias\"\n fxLayout=\"row inline\"\n >\n {{ '@' + alias }}\n
\n
\n
\n \n
\n \n\n \n {{ 'HISTORY.HIDDEN' | translate }}\n \n \n
\n
\n {{ transaction.timestamp * 1000 | date : 'dd-MM-yyyy HH:mm' }}\n
\n
\n \n
\n
\n\n
\n
\n
\n \n \n \n\n \n \n {{ page }}\n \n \n\n \n \n {{ variablesService.currentWallet.currentPage }}\n \n \n\n \n \n \n
\n
\n Hide mining transactions\n \n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport QRCode from 'qrcode';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { RCV_ADDR_QR_SCALE } from '@parts/data/constants';\n\n@Component({\n selector: 'app-receive',\n template: `\n
\n
\n \"qr-code\"\n
\n\n \n {{ variablesService.currentWallet.address | zanoShortString : 9 : 9 }}\n \n
\n \n `,\n styles: [\n `\n :host {\n width: 100%;\n }\n `,\n ],\n})\nexport class ReceiveComponent implements OnInit {\n qrImageSrc: string;\n\n constructor(public variablesService: VariablesService) {}\n\n ngOnInit(): void {\n QRCode.toDataURL(this.variablesService.currentWallet.address, {\n width: 200 * RCV_ADDR_QR_SCALE,\n height: 200 * RCV_ADDR_QR_SCALE,\n })\n .then(url => {\n this.qrImageSrc = url;\n })\n .catch(err => {\n console.error(err);\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {\n AsyncCommandResults,\n BackendService,\n CurrentActionState,\n ResponseAsyncTransfer,\n StatusCurrentActionState,\n} from '@api/services/backend.service';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { BLOCK_EXPLORER_TN_TX_URL_PREFIX, BLOCK_EXPLORER_TX_URL_PREFIX } from '@parts/data/constants';\n\nconst successfulStatuses: string[] = [\n StatusCurrentActionState.STATE_SENDING,\n StatusCurrentActionState.STATE_SENT_SUCCESS,\n StatusCurrentActionState.STATE_INITIALIZING,\n StatusCurrentActionState.STATE_DOWNLOADING_CONSENSUS,\n StatusCurrentActionState.STATE_MAKING_TUNNEL_A,\n StatusCurrentActionState.STATE_MAKING_TUNNEL_B,\n StatusCurrentActionState.STATE_CREATING_STREAM,\n StatusCurrentActionState.STATE_SUCCESS,\n];\n\nconst failedStatuses: string[] = [StatusCurrentActionState.STATE_SEND_FAILED, StatusCurrentActionState.STATE_FAILED];\n\n@Component({\n selector: 'app-send-details-modal',\n templateUrl: './send-details-modal.component.html',\n styleUrls: ['./send-details-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SendDetailsModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n @Input() job_id: number;\n\n @Output() eventClose = new EventEmitter();\n\n @ViewChild('elDetailsList', { static: true }) elDetailsList: ElementRef;\n\n responseData$ = new BehaviorSubject(null);\n\n stateDetails$ = new BehaviorSubject(false);\n\n currentActionState$ = new BehaviorSubject(null);\n\n currentActionStates$ = new BehaviorSubject([]);\n\n success = false;\n\n private destroy$: Subject = new Subject();\n\n constructor(private backendService: BackendService, private variablesService: VariablesService, private renderer: Renderer2) {}\n\n get currentActionState(): CurrentActionState {\n return this.currentActionState$.value;\n }\n\n get currentActionStates(): CurrentActionState[] {\n return this.currentActionStates$.value;\n }\n\n get isSentSuccess(): boolean {\n return this.currentActionState && this.currentActionState.status === StatusCurrentActionState.STATE_SENT_SUCCESS;\n }\n\n get isSentFailed(): boolean {\n return this.currentActionState && this.currentActionState.status === StatusCurrentActionState.STATE_SEND_FAILED;\n }\n\n get isDetailsNotEmpty(): boolean {\n return !!(this.responseData$.value || this.currentActionStates$.value.length > 0);\n }\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n const {\n currentWallet: { wallet_id },\n settings: { appUseTor },\n } = this.variablesService;\n\n if (appUseTor) {\n this.backendService.handleCurrentActionState$.pipe(filter(Boolean), takeUntil(this.destroy$)).subscribe({\n next: (currentActionState: CurrentActionState) => {\n this.currentActionState$.next(currentActionState);\n this.currentActionStates$.next([...this.currentActionStates, currentActionState]);\n },\n });\n } else {\n const actionState: CurrentActionState = {\n status: StatusCurrentActionState.STATE_INITIALIZING,\n wallet_id,\n };\n this.currentActionState$.next(actionState);\n this.currentActionStates$.next([...this.currentActionStates, actionState]);\n }\n\n this.backendService.dispatchAsyncCallResult$\n .pipe(\n filter(Boolean),\n filter(({ job_id, response }: AsyncCommandResults) => this.job_id === job_id && !!response),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: ({ response }: AsyncCommandResults) => {\n const { response_data } = response;\n const success = response_data?.success ?? false;\n this.success = success;\n\n const actionState: CurrentActionState = {\n status: success ? StatusCurrentActionState.STATE_SENT_SUCCESS : StatusCurrentActionState.STATE_SEND_FAILED,\n wallet_id,\n };\n this.currentActionState$.next(actionState);\n this.currentActionStates$.next([...this.currentActionStates, actionState]);\n\n this.responseData$.next(response);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n toggleDetails(): void {\n this.stateDetails$.next(!this.stateDetails$.value);\n setTimeout(() => this.scrollToBottomDetailsList(), 100);\n }\n\n trackBy(index: number): number {\n return index;\n }\n\n isSuccess(action: CurrentActionState): boolean {\n return successfulStatuses.includes(action && action.status);\n }\n\n isFailed(action: CurrentActionState): boolean {\n return failedStatuses.includes(action && action.status);\n }\n\n private scrollToBottomDetailsList(): void {\n if (this.elDetailsList) {\n const { nativeElement } = this.elDetailsList;\n nativeElement.scrollTop = nativeElement.scrollHeight;\n }\n }\n\n openInBrowser(hash: string): void {\n this.backendService.openUrlInBrowser(\n (this.variablesService.testnet ? BLOCK_EXPLORER_TN_TX_URL_PREFIX : BLOCK_EXPLORER_TX_URL_PREFIX) + hash\n );\n }\n}\n","
\n
\n

\n {{ 'SEND_DETAILS_MODAL.TITLE1' | translate }}\n

\n\n
\n
\n
\n \"success\"\n
\n\n
\n \"failed\"\n
\n\n
\n\n

\n {{\n (currentActionState ? 'TOR_LIB_STATE' + '.' + currentActionState.status : 'TOR_LIB_STATE.STATE_INITIALIZING')\n | translate\n }}\n {{ !isSentSuccess && !isSentFailed ? '...' : '' }}\n

\n\n \n \n \n
\n\n
\n \n

\n {{ 'SEND_DETAILS_MODAL.TITLE2' | translate }}\n

\n \n
\n \n
    \n \n {{ 'TOR_LIB_STATE' + '.' + action?.status | translate\n }}{{ last && !isSentSuccess && !isSentFailed ? '...' : '' }}\n \n \"success\"\n\n \"failed\"\n \n\n \n \n\n \n \n \n\n \n
  • \n \n tx id: {{ data.response_data.tx_hash || '---' }}\n \n \n \n
  • \n
  • \n
    \n tx size:\n {{ data.response_data.tx_blob_size }}\n bytes\n
    \n
  • \n
  • \n \n
  • \n
    \n
\n
\n
\n
\n
\n \n
\n \n\n\n\n \n \n

{{ prefix }} {{ 'SEND.ERROR_CODES' + '.' + error_code | translate }}

\n
\n \n \n

{{ prefix }} {{ error_code }}

\n
\n
\n
\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n} from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { SendMoneyFormParams } from '@api/models/send-money.model';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ZanoValidators } from '@parts/utils/zano-validators';\nimport { BigNumber } from 'bignumber.js';\nimport { AssetBalance, PriceInfo } from '@api/models/assets.model';\n\n@Component({\n selector: 'app-send-modal',\n templateUrl: './send-modal.component.html',\n styleUrls: ['./send-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SendModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n @Input() sendMoneyParams: SendMoneyFormParams;\n\n @Input() priceInfo: PriceInfo;\n\n @Output() confirmed: EventEmitter = new EventEmitter();\n\n get amount(): string {\n const { amount, isAmountUSD, asset_id } = this.sendMoneyParams;\n const convertedAmountUSD = (): string => {\n let usd = 0;\n\n if (typeof this.priceInfo.data === 'object') {\n const { data } = this.priceInfo;\n usd = data.usd;\n }\n\n let decimal_point = 0;\n\n const { currentWallet } = this.variablesService;\n const asset: AssetBalance | undefined = currentWallet.getBalanceByAssetId(asset_id);\n\n if (asset) {\n const { asset_info } = asset;\n decimal_point = asset_info.decimal_point;\n }\n\n const convertedAmount = new BigNumber(amount || 0).dividedBy(usd || 0).decimalPlaces(decimal_point);\n\n return convertedAmount.toString();\n };\n\n return isAmountUSD ? convertedAmountUSD() : amount;\n }\n\n cdr = inject(ChangeDetectorRef);\n\n fb = inject(NonNullableFormBuilder);\n\n confirmForm = this.fb.group({\n password: this.fb.control(''),\n appPass: this.fb.control(''),\n });\n\n constructor(public variablesService: VariablesService, private renderer: Renderer2) {}\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n const { appPass } = this.variablesService;\n if (appPass) {\n this.confirmForm.controls.appPass.patchValue(appPass, {\n emitEvent: false,\n });\n this.confirmForm.setValidators([ZanoValidators.formMatch('password', 'appPass', 'passwordNotMatch')]);\n this.confirmForm.controls.password.setValidators([Validators.required]);\n this.confirmForm.updateValueAndValidity();\n }\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n beforeSubmit(): void {\n if (this.confirmForm.invalid) {\n this.confirmForm.markAsTouched();\n this.confirmForm.updateValueAndValidity();\n this.cdr.detectChanges();\n return;\n }\n\n this.submit();\n }\n\n submit(): void {\n this.confirmed.emit(true);\n }\n\n onClose(): void {\n this.confirmed.emit(false);\n }\n}\n","
\n
\n
\n

\n {{ 'CONFIRM.TITLE' | translate }}\n

\n\n
\n
\n
\n
\n {{ 'CONFIRM.MESSAGE.SEND' | translate }}\n
\n
\n {{ amount }}\n {{ (sendMoneyParams.asset_id | getAssetInfo)?.ticker || '***' }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM.MESSAGE.FROM' | translate }}\n
\n
\n {{ variablesService.currentWallet.address }}\n
\n
\n\n \n
\n\n
\n
\n {{ 'CONFIRM.MESSAGE.TO' | translate }}\n
\n
{{ sendMoneyParams.address }}
\n
\n
\n\n \n
\n\n
\n
\n {{ 'CONFIRM.MESSAGE.COMMENT' | translate }}\n
\n
{{ sendMoneyParams.comment }}
\n
\n
\n
\n\n
\n \n \n
\n
\n {{ 'LOGIN.FORM_ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n {{ 'LOGIN.FORM_ERRORS.PASS_REQUIRED' | translate }}\n
\n
\n
\n
\n\n
\n \n \n
\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SendModalComponent } from './send-modal/send-modal.component';\nimport { SendDetailsModalComponent } from './send-details-modal/send-details-modal.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { GetAssetInfoPipe } from '@parts/pipes';\nimport { CopyButtonComponent } from '@parts/components/copy-button.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [SendModalComponent, SendDetailsModalComponent],\n imports: [CommonModule, TranslateModule, FlexLayoutModule, ReactiveFormsModule, GetAssetInfoPipe, CopyButtonComponent, MatIconModule],\n exports: [SendModalComponent, SendDetailsModalComponent],\n})\nexport class WalletModalsModule {}\n","import { Component, inject, NgZone, OnDestroy } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, NonNullableFormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BigNumber } from 'bignumber.js';\nimport { MIXIN } from '@parts/data/constants';\nimport { catchError, debounceTime, distinctUntilChanged, map, retry, startWith, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { BehaviorSubject, combineLatest, merge, Observable, of, Subject } from 'rxjs';\nimport { AssetBalance, PriceInfo } from '@api/models/assets.model';\nimport { regExpAliasName } from '@parts/utils/zano-validators';\nimport { insuficcientFunds } from '@parts/utils/zano-errors';\nimport { DeeplinkParams, defaultSendMoneyParams } from '@api/models/wallet.model';\nimport { WrapInfo } from '@api/models/wrap-info';\nimport { WrapInfoService } from '@api/services/wrap-info.service';\nimport { SendMoneyFormParams } from '@api/models/send-money.model';\nimport { defaultImgSrc, ZanoAssetInfo, zanoAssetInfo } from '@parts/data/assets';\nimport { moneyToInt } from '@parts/functions/money-to-int';\nimport { intToMoney } from '@parts/functions/int-to-money';\nimport { TranslateService } from '@ngx-translate/core';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { HttpClient } from '@angular/common/http';\n\ninterface AmountInputParams {\n decimalPoint: number;\n inputTicker: string;\n hintTicker: string;\n hintAmount: string;\n reverseDisabled: boolean;\n}\n\n@Component({\n selector: 'app-send',\n templateUrl: 'send.component.html',\n styles: [\n `\n :host {\n width: 100%;\n }\n `,\n ],\n})\nexport class SendComponent implements OnDestroy {\n job_id: number;\n\n isSendModalState: boolean = false;\n\n isSendDetailsModalState: boolean = false;\n\n wrapInfo: WrapInfo;\n\n loadingWrapInfo$: BehaviorSubject = new BehaviorSubject(true);\n\n isVisibleWrapInfoState$: BehaviorSubject = new BehaviorSubject(false);\n\n aliasAddress: string;\n\n isVisibleAdditionalOptionsState: boolean = false;\n\n variablesService: VariablesService = inject(VariablesService);\n\n wrapInfoService: WrapInfoService = inject(WrapInfoService);\n\n assetItems$: Observable<(AssetBalance & { disabled: boolean })[]> = combineLatest([\n this.variablesService.currentWallet.balances$,\n this.isVisibleWrapInfoState$,\n ]).pipe(\n map(([balances, disabled]) => {\n const items: (AssetBalance & { disabled: boolean })[] = [];\n\n balances.forEach((balance: AssetBalance) => {\n const {\n asset_info: { asset_id },\n } = balance;\n\n if (asset_id === zanoAssetInfo.asset_id) {\n return items.push({ ...balance, disabled: false });\n }\n\n return items.push({ ...balance, disabled });\n });\n\n return items;\n })\n );\n\n lowerCaseDisabled$: BehaviorSubject = new BehaviorSubject(true);\n\n form: FormGroup<{\n wallet_id: FormControl;\n address: FormControl;\n amount: FormControl;\n isAmountUSD: FormControl;\n comment: FormControl;\n asset_id: FormControl;\n mixin: FormControl;\n fee: FormControl;\n push_payer: FormControl;\n hide_receiver: FormControl;\n }>;\n\n addressItems$: Observable;\n\n loadingAddressItems$: BehaviorSubject = new BehaviorSubject(true);\n\n amountInputParams: AmountInputParams = {\n decimalPoint: 0,\n inputTicker: '',\n hintTicker: '',\n hintAmount: '',\n reverseDisabled: false,\n };\n\n errorMessages: { [key: string]: string | undefined } = {\n address: undefined,\n fee: undefined,\n amount: undefined,\n };\n public readonly zanoAssetInfo: ZanoAssetInfo = zanoAssetInfo;\n public priceInfo: PriceInfo = { success: false, data: 'Asset not found' };\n private _priceInfo$: Subject = new Subject();\n private _fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n private _httpClient: HttpClient = inject(HttpClient);\n private _destroy$: Subject = new Subject();\n private _backendService: BackendService = inject(BackendService);\n private _ngZone: NgZone = inject(NgZone);\n private _translateService: TranslateService = inject(TranslateService);\n private _walletsService: WalletsService = inject(WalletsService);\n private _openedWalletItems: string[] = this._walletsService.wallets.map(({ address, alias }) => alias?.name ?? address);\n private _aliasItems: string[] = this.variablesService.aliases.map(({ name }) => name);\n\n constructor() {\n this._getWrapInfo();\n\n this._createForm();\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n updateAddressErrorMessage(): void {\n const {\n controls: { address },\n } = this.form;\n let message: string | undefined;\n\n switch (true) {\n case address.hasError('address_not_valid'): {\n message = 'SEND.FORM_ERRORS.ADDRESS_NOT_VALID';\n break;\n }\n case address.hasError('alias_not_found'): {\n message = 'SEND.FORM_ERRORS.ALIAS_NOT_FOUND';\n break;\n }\n case address.hasError('alias_not_valid'): {\n message = 'SEND.FORM_ERRORS.ALIAS_NOT_VALID';\n break;\n }\n case address.hasError('required'): {\n message = 'ERRORS.REQUIRED';\n break;\n }\n }\n this.errorMessages['address'] = message;\n }\n\n updateAmountErrorMessage(): void {\n const {\n controls: { amount },\n } = this.form;\n let message: string | undefined;\n\n switch (true) {\n case amount.hasError('zero'): {\n message = 'SEND.FORM_ERRORS.AMOUNT_ZERO';\n break;\n }\n case amount.hasError('great_than_unwraped_coins'): {\n message = 'SEND.FORM_ERRORS.GREAT_THAN_UNWRAPPED_COINS';\n break;\n }\n case amount.hasError('less_than_zano_needed'): {\n message = 'SEND.FORM_ERRORS.LESS_THAN_ZANO_NEEDED';\n break;\n }\n case amount.hasError('wrap_info_null'): {\n message = 'SEND.FORM_ERRORS.WRAP_INFO_NULL';\n break;\n }\n case amount.hasError('required'): {\n message = 'ERRORS.REQUIRED';\n break;\n }\n case this.form.hasError('insuficcientFunds'): {\n message = this.form.errors['insuficcientFunds'].errorText;\n break;\n }\n case this.form.hasError('greater_than_maximum_amount'): {\n message = this._translateService.instant('ERRORS.MAX', { max: this.form.errors['greater_than_maximum_amount'].max });\n break;\n }\n case this.form.hasError('asset_not_found'): {\n message = 'ERRORS.ASSET_NOT_FOUND';\n break;\n }\n }\n\n this.errorMessages['amount'] = message;\n }\n\n updateFeeErrorMessage(): void {\n const {\n controls: { fee },\n } = this.form;\n let message: string | undefined;\n\n switch (true) {\n case fee.hasError('less_min'): {\n const { default_fee } = this.variablesService;\n message = this._translateService.instant('SEND.FORM_ERRORS.FEE_MINIMUM', { fee: default_fee });\n break;\n }\n case fee.hasError('required'): {\n message = 'SEND.FORM_ERRORS.FEE_REQUIRED';\n break;\n }\n case fee.hasError('greater_than_max_amount'): {\n const { maximum_value } = this.variablesService;\n const { decimal_point } = zanoAssetInfo;\n const max = intToMoney(maximum_value, decimal_point);\n message = this._translateService.instant('ERRORS.MAX', { max });\n break;\n }\n }\n\n this.errorMessages['fee'] = message;\n }\n\n getSrcByAsset({ asset_info: { asset_id } }: AssetBalance): string {\n switch (asset_id) {\n case zanoAssetInfo.asset_id: {\n return zanoAssetInfo.logo;\n }\n default: {\n return defaultImgSrc;\n }\n }\n }\n\n isVisibleError(control: AbstractControl): boolean {\n return control.invalid && (control.dirty || control.touched);\n }\n\n beforeSubmit(): void {\n this.isSendModalState = true;\n }\n\n handleConfirmed(confirmed: boolean): void {\n this.isSendModalState = false;\n if (confirmed) {\n this.submit();\n }\n }\n\n submit(): void {\n let sendMoneyParams = this.form.getRawValue();\n\n const { address, asset_id, isAmountUSD, hide_receiver } = sendMoneyParams;\n let { amount } = sendMoneyParams;\n\n const { currentWallet } = this.variablesService;\n const asset: AssetBalance | undefined = currentWallet.getBalanceByAssetId(asset_id);\n\n if (asset) {\n const convertedAmountUSD = (): string => {\n let usd = 0;\n\n if (typeof this.priceInfo.data === 'object') {\n const { data } = this.priceInfo;\n usd = data.usd;\n }\n\n let decimal_point = 0;\n\n if (asset) {\n const { asset_info } = asset;\n decimal_point = asset_info.decimal_point;\n }\n\n const convertedAmount = new BigNumber(amount || 0).dividedBy(usd || 0).decimalPlaces(decimal_point);\n\n return convertedAmount.toString();\n };\n\n amount = isAmountUSD ? convertedAmountUSD() : amount;\n\n sendMoneyParams = {\n ...sendMoneyParams,\n amount,\n };\n } else {\n this.form.controls.asset_id.setErrors({\n asset_not_found: true,\n });\n return;\n }\n\n if (address.indexOf('@') === 0) {\n const aliasName = address;\n const { aliases } = this.variablesService;\n const alias = aliases.find(({ name }) => name === aliasName);\n\n if (!alias) {\n this.form.controls.address.setErrors({\n alias_not_found: true,\n });\n return;\n }\n\n sendMoneyParams = {\n ...sendMoneyParams,\n address: alias.address,\n };\n }\n\n // Remove unused param\n delete sendMoneyParams.isAmountUSD;\n\n sendMoneyParams = {\n ...sendMoneyParams,\n // Need to send \"true\" if the value is \"false\" and \"false\" if the value is \"true\"\n hide_receiver: !hide_receiver\n };\n\n this._backendService.sendMoney(sendMoneyParams, (job_id: number) => {\n this._ngZone.run(() => {\n this.job_id = job_id;\n this.isSendDetailsModalState = true;\n this.variablesService.currentWallet.sendMoneyParams = null;\n });\n });\n }\n\n getReceivedValue(): number | BigNumber {\n const {\n controls: {\n amount: { value: amount },\n isAmountUSD: { value: isAmountUSD },\n asset_id: { value: asset_id },\n },\n } = this.form;\n\n const convertedAmountUSD = (): string => {\n let usd = 0;\n\n if (typeof this.priceInfo.data === 'object') {\n const { data } = this.priceInfo;\n usd = data.usd;\n }\n\n let decimal_point = 0;\n const { currentWallet } = this.variablesService;\n const asset: AssetBalance | undefined = currentWallet.getBalanceByAssetId(asset_id);\n\n if (asset) {\n const { asset_info } = asset;\n decimal_point = asset_info.decimal_point;\n }\n\n const convertedAmount = new BigNumber(amount || 0).dividedBy(usd || 0).decimalPlaces(decimal_point);\n\n return convertedAmount.toString();\n };\n const preparedAmount: BigNumber = moneyToInt(isAmountUSD ? convertedAmountUSD() : amount || '0');\n\n const {\n tx_cost: { zano_needed_for_erc20 },\n } = this.wrapInfo;\n const needed: BigNumber = new BigNumber(zano_needed_for_erc20);\n\n if (preparedAmount && needed) {\n return preparedAmount.minus(needed);\n }\n return 0;\n }\n\n handeCloseSendDetailsModal(success: boolean): void {\n this.isSendDetailsModalState = false;\n this.job_id = null;\n\n if (success) {\n const { currentWallet } = this.variablesService;\n const { wallet_id } = currentWallet;\n currentWallet.sendMoneyParams = null;\n\n this.form.reset({ ...defaultSendMoneyParams, wallet_id }, { emitEvent: false });\n }\n }\n\n pasteListenAddressField(event: ClipboardEvent): void {\n event.preventDefault();\n const {\n controls: { address },\n } = this.form;\n const { clipboardData } = event;\n let value: string = clipboardData.getData('Text') ?? '';\n this.lowerCaseDisabled$.next(value.indexOf('@') !== 0);\n\n if (value.indexOf('@') === 0) {\n value = value.toLowerCase();\n }\n\n address.patchValue(value);\n }\n\n trackByFn(index: number, value: string): number | string {\n return value ?? index;\n }\n\n toggleAmountUSD(): void {\n const { isAmountUSD } = this.form.getRawValue();\n this.form.controls.isAmountUSD.patchValue(!isAmountUSD);\n }\n\n private _createForm(): void {\n const { currentWallet, default_fee, maxCommentLength, maximum_value } = this.variablesService;\n\n let params: SendMoneyFormParams;\n\n if (currentWallet.sendMoneyParams) {\n params = currentWallet.sendMoneyParams;\n } else {\n params = {\n ...defaultSendMoneyParams,\n wallet_id: currentWallet.wallet_id,\n fee: default_fee,\n };\n }\n\n if (currentWallet.is_auditable && !currentWallet.is_watch_only) {\n params.hide_receiver = true;\n }\n\n if (currentWallet.is_auditable) {\n params.mixin = 0;\n }\n\n const state = history.state || {};\n const history_asset: AssetBalance = state['asset'];\n\n if (history_asset) {\n const {\n asset_info: { asset_id, decimal_point },\n } = history_asset;\n params.asset_id = asset_id;\n if (params.amount) {\n params.amount = intToMoney(moneyToInt(params.amount, decimal_point), decimal_point);\n }\n }\n\n this.form = this._fb.group(\n {\n wallet_id: this._fb.control(params.wallet_id, {\n validators: [Validators.required],\n }),\n address: this._fb.control(params.address, {\n validators: [\n Validators.required,\n (control: AbstractControl): ValidationErrors | null => {\n this.aliasAddress = '';\n this.isVisibleWrapInfoState$.next(false);\n if (control.value) {\n if (control.value.indexOf('@') !== 0) {\n this._backendService.validateAddress(control.value, (valid_status, data) => {\n this._ngZone.run(() => {\n this.isVisibleWrapInfoState$.next(data.error_code === 'WRAP');\n if (data.error_code === 'WRAP') {\n this.form.controls.asset_id.patchValue(zanoAssetInfo.asset_id);\n }\n\n if (valid_status === false && !this.isVisibleWrapInfoState$.value) {\n control.setErrors(Object.assign({ address_not_valid: true }, control.errors));\n } else {\n if (control.hasError('address_not_valid')) {\n delete control.errors['address_not_valid'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n }\n });\n });\n return control.hasError('address_not_valid') ? { address_not_valid: true } : null;\n } else {\n if (!regExpAliasName.test(control.value)) {\n return { alias_not_valid: true };\n } else {\n this._backendService.getAliasInfoByName(\n control.value.replace('@', ''),\n (alias_status, alias_data) => {\n this._ngZone.run(() => {\n this.aliasAddress = alias_data.address;\n if (alias_status) {\n if (control.hasError('alias_not_found')) {\n delete control.errors['alias_not_found'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n } else {\n control.setErrors(Object.assign({ alias_not_found: true }, control.errors));\n }\n });\n }\n );\n }\n return control.hasError('alias_not_found') ? { alias_not_found: true } : null;\n }\n }\n return null;\n },\n ],\n }),\n amount: this._fb.control(params.amount, {\n validators: [\n Validators.required,\n ({ value }: AbstractControl): ValidationErrors | null => {\n const isZero: boolean = new BigNumber(value).eq(0);\n\n if (isZero) {\n return { zero: true };\n }\n\n return null;\n },\n ],\n }),\n isAmountUSD: this._fb.control(params.isAmountUSD),\n comment: this._fb.control(params.comment, {\n validators: [Validators.maxLength(maxCommentLength)],\n }),\n asset_id: this._fb.control(params.asset_id, {\n validators: [Validators.required],\n }),\n mixin: this._fb.control(\n { value: params.mixin, disabled: currentWallet.is_auditable },\n {\n validators: [Validators.required, Validators.min(0), Validators.max(1000)],\n }\n ),\n fee: this._fb.control(params.fee, {\n validators: [\n Validators.required,\n (control: AbstractControl): ValidationErrors | null => {\n const max: BigNumber = new BigNumber(intToMoney(maximum_value, zanoAssetInfo.decimal_point));\n const amount: BigNumber = new BigNumber(control.value);\n return amount.isGreaterThan(max) ? { greater_than_max_amount: { max: max.toString() } } : null;\n },\n ({ value }: FormControl): ValidationErrors | null => {\n if (new BigNumber(value).isLessThan(default_fee)) {\n return { less_min: true };\n }\n return null;\n },\n ],\n }),\n push_payer: this._fb.control(params.push_payer),\n hide_receiver: this._fb.control({\n value: params.hide_receiver,\n disabled: currentWallet.is_auditable && !currentWallet.is_watch_only,\n }),\n },\n {\n validators: [\n (form: FormGroup): ValidationErrors | null => {\n const asset_id = form.controls.asset_id.value;\n const isAmountUSD = form.controls.isAmountUSD.value;\n\n const convertedAmountUSD = (): BigNumber => {\n let usd = 0;\n if (typeof this.priceInfo.data === 'object') {\n const { data } = this.priceInfo;\n usd = data.usd;\n }\n return new BigNumber(form.controls.amount.value).dividedBy(usd);\n };\n\n const amount: BigNumber = isAmountUSD ? convertedAmountUSD() : new BigNumber(form.controls.amount.value);\n\n const assetBalance: AssetBalance | undefined = currentWallet.getBalanceByAssetId(asset_id);\n\n if (this.isVisibleWrapInfoState$.value) {\n let error = null;\n\n if (!this.wrapInfo) {\n error = { wrap_info_null: true };\n }\n\n if (amount.isGreaterThan(intToMoney(new BigNumber(this.wrapInfo.unwraped_coins_left)))) {\n error = { great_than_unwraped_coins: true };\n }\n\n if (amount.isLessThan(intToMoney(new BigNumber(this.wrapInfo.tx_cost.zano_needed_for_erc20)))) {\n error = { less_than_zano_needed: true };\n }\n\n if (error) {\n form.controls.amount.setErrors(error);\n }\n }\n\n if (!assetBalance) {\n return {\n asset_not_found: true,\n };\n }\n\n const {\n unlocked,\n asset_info: { decimal_point },\n } = assetBalance;\n\n const maximum_amount_by_decimal_point = intToMoney(this.variablesService.maximum_value, decimal_point);\n if (amount.isGreaterThan(maximum_amount_by_decimal_point)) {\n return { greater_than_maximum_amount: { max: maximum_amount_by_decimal_point } };\n }\n\n const preparedUnlocked = intToMoney(unlocked, decimal_point);\n return amount.isGreaterThan(preparedUnlocked) ? { insuficcientFunds } : null;\n },\n ],\n }\n );\n\n this._listenSendActionData();\n\n this._saveSendMoneyParams();\n\n this._formListeners();\n\n if (currentWallet.sendMoneyParams) {\n this.form.markAllAsTouched();\n this.form.updateValueAndValidity();\n this._updateErrorMessages();\n }\n }\n\n private _formListeners(): void {\n const { currentWallet } = this.variablesService;\n const { controls } = this.form;\n\n combineLatest([\n controls.asset_id.valueChanges.pipe(startWith(controls.asset_id.value)),\n controls.isAmountUSD.valueChanges.pipe(startWith(controls.isAmountUSD.value), distinctUntilChanged()),\n controls.amount.valueChanges.pipe(startWith(controls.amount.value)),\n this._priceInfo$,\n ])\n .pipe(\n map(([asset_id, isAmountUSD, amount, priceInfo]) => {\n const { decimal_point, ticker } = currentWallet.getBalanceByAssetId(asset_id)?.asset_info ?? {};\n\n const params: AmountInputParams = {\n decimalPoint: decimal_point,\n inputTicker: ticker,\n hintTicker: 'USD',\n hintAmount: '0',\n reverseDisabled: false,\n };\n\n const { success } = priceInfo;\n\n if (success) {\n const { data } = priceInfo;\n\n let usd = 0;\n\n if (typeof data === 'object') {\n usd = data.usd;\n }\n\n if (isAmountUSD) {\n params.decimalPoint = 2;\n params.inputTicker = 'USD';\n params.hintTicker = ticker;\n params.hintAmount = `~ ${new BigNumber(+amount ?? 0).dividedBy(usd ?? 0).decimalPlaces(decimal_point)}`;\n } else {\n params.decimalPoint = decimal_point;\n params.inputTicker = ticker;\n params.hintTicker = 'USD';\n params.hintAmount = `~ ${new BigNumber(usd ?? 0).multipliedBy(+amount ?? 0).decimalPlaces(2)}`;\n }\n } else {\n params.reverseDisabled = true;\n controls.isAmountUSD.patchValue(false);\n }\n\n return params;\n })\n )\n .pipe(takeUntil(this._destroy$))\n .subscribe({\n next: params => {\n this.amountInputParams = params;\n },\n });\n\n controls.asset_id.valueChanges\n .pipe(\n startWith(controls.asset_id.value),\n switchMap(asset_id => {\n const default$ = of({\n success: false,\n data: 'Asset not found',\n });\n const price$ = this._httpClient.get(`https://explorer.zano.org/api/price?asset_id=${asset_id}`).pipe(\n retry(5),\n catchError((err: Error) => {\n return default$;\n })\n );\n return zanoAssetInfo.asset_id === asset_id ? price$ : default$;\n }),\n takeUntil(this._destroy$)\n )\n .subscribe({\n next: (value: PriceInfo) => {\n this.priceInfo = value;\n this._priceInfo$.next(value);\n\n this.form.controls.amount.updateValueAndValidity({ emitEvent: false });\n },\n });\n\n merge(controls.address.statusChanges, controls.address.valueChanges)\n .pipe(takeUntil(this._destroy$))\n .subscribe((): void => this.updateAddressErrorMessage());\n\n merge(controls.amount.statusChanges, controls.amount.valueChanges, this.form.statusChanges, this.form.valueChanges)\n .pipe(takeUntil(this._destroy$))\n .subscribe((): void => this.updateAmountErrorMessage());\n\n merge(controls.fee.statusChanges, controls.fee.valueChanges)\n .pipe(takeUntil(this._destroy$))\n .subscribe((): void => this.updateFeeErrorMessage());\n\n this.addressItems$ = controls.address.valueChanges.pipe(\n startWith(controls.address.value),\n tap(value => {\n const condition = value[0] === '@';\n this.lowerCaseDisabled$.next(!condition);\n this.loadingAddressItems$.next(condition);\n }),\n debounceTime(250),\n map(value => {\n if (!value?.length) {\n return this._openedWalletItems;\n }\n if (value[0] === '@') {\n return this._aliasItems.filter(name => {\n return name.includes(value);\n });\n }\n return [];\n }),\n tap(() => this.loadingAddressItems$.next(false))\n );\n }\n\n private _updateErrorMessages(): void {\n this.updateAddressErrorMessage();\n this.updateAmountErrorMessage();\n this.updateFeeErrorMessage();\n }\n\n private _saveSendMoneyParams(): void {\n const { valueChanges } = this.form;\n const { currentWallet } = this.variablesService;\n valueChanges.pipe(debounceTime(200), takeUntil(this._destroy$)).subscribe({\n next: (): void => {\n currentWallet.sendMoneyParams = this.form.getRawValue();\n },\n });\n }\n\n private _getWrapInfo(): void {\n this.wrapInfoService\n .getWrapInfo()\n .pipe(\n tap(() => this.loadingWrapInfo$.next(true)),\n retry(5),\n takeUntil(this._destroy$)\n )\n .subscribe({\n next: (wrapInfo: WrapInfo) => {\n this.wrapInfo = wrapInfo;\n this.loadingWrapInfo$.next(false);\n },\n error: () => {\n this.loadingWrapInfo$.next(false);\n },\n complete: () => {\n this.loadingWrapInfo$.next(false);\n },\n });\n }\n\n private _listenSendActionData(): void {\n this.variablesService.sendActionData$.pipe(takeUntil(this._destroy$)).subscribe({\n next: (value: DeeplinkParams) => {\n if (value && value.action === 'send') {\n const { address, amount, comment, comments, mixins, fee, hide_sender, hide_receiver } = value;\n this.isVisibleAdditionalOptionsState = true;\n this.form.patchValue({\n address,\n amount: amount || null,\n comment: comment || comments || '',\n mixin: +mixins || MIXIN,\n asset_id: zanoAssetInfo.asset_id,\n fee: fee || this.variablesService.default_fee,\n push_payer: hide_sender === 'false',\n hide_receiver: hide_receiver === 'false',\n });\n this.variablesService.sendActionData$.next({});\n }\n },\n });\n }\n}\n","
\n
\n
\n \n \n
\n \n\n \n\n \n \n \n \n\n \n Not found aliases \n \n\n \n \n \n \n = 2 && item.length <= 6,\n 'pl-1': item.length > 6\n }\"\n class=\"alias\"\n >\n {{ item }}\n
\n \n \n \n {{ item | zanoShortString }}\n \n \n \n \n\n
\n {{ errorMessages['address'] | translate }}\n
\n\n
\n {{ aliasAddress | zanoShortString }}\n
\n
\n \n\n \n
\n \n\n \n\n \n\n \n
\n {{ amountInputParams.inputTicker }}\n
\n
\n\n
{{ amountInputParams.hintAmount }}\n {{ amountInputParams.hintTicker }}\n
\n\n \n
\n {{ message | translate }}\n
\n
\n
\n \n\n \n
\n \n \n
\n
\n {{ 'SEND.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n
\n\n \n \n
\n
\n {{ 'SEND.WRAP.TITLE' | translate }}\n \n
\n
\n {{ 'SEND.WRAP.MAIN_TEXT' | translate }}\n
\n
{{ 'SEND.WRAP.ESTIMATE' | translate }}
\n \n \n \n \n \n \n \n \n \n \n
{{ 'SEND.WRAP.WILL_RECEIVE' | translate }}\n {{ getReceivedValue() | intToMoney }}\n {{ 'SEND.WRAP.wZANO' | translate }}\n -
{{ 'SEND.WRAP.FEE' | translate }}\n {{ wrapInfo?.tx_cost?.zano_needed_for_erc20 | intToMoney : zanoAssetInfo.decimal_point }}\n {{ 'SEND.WRAP.ZANO' | translate }}\n ({{ '$' + wrapInfo.tx_cost?.usd_needed_for_erc20 }})\n
\n
\n
\n\n \n
\n \n \n \n \n {{ asset.asset_info.full_name ?? '***' }}\n \n ({{ asset.total | intToMoney : asset.asset_info.decimal_point }} {{ asset.asset_info.ticker }})\n \n \n \n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ 'ERRORS.MAX_DECIMAL_POINT' | translate : { max: form.errors['max_decimal_point'].max } }}\n
\n
\n
\n\n \n
\n \n {{ 'SEND.DETAILS' | translate }}\n \n \n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
\n \n \n
\n {{ errorMessages['fee'] | translate }}\n
\n
\n \n\n \n \n\n \n \n
\n
\n\n \n \n\n\n\n\n\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Chart } from 'angular-highcharts';\nimport { BackendService } from '@api/services/backend.service';\nimport { IntToMoneyPipe } from '@parts/pipes/int-to-money-pipe/int-to-money.pipe';\nimport { BigNumber } from 'bignumber.js';\nimport { combineLatest, skip, Subject, Subscription } from 'rxjs';\nimport * as Highcharts from 'highcharts';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { NonNullableFormBuilder } from '@angular/forms';\n\ntype TPeriod = '1 week' | '2 week' | '1 month' | '3 month' | '6 month' | '1 year' | 'All';\n\ntype TGroup = 'day' | 'week' | 'month';\n\ninterface IPeriodItem {\n title: string;\n value: TPeriod;\n}\n\ninterface IGroupItem {\n title: string;\n value: TGroup;\n}\n\nconst periodItems: IPeriodItem[] = [\n {\n title: 'STAKING.PERIOD.WEEK1',\n value: '1 week',\n },\n {\n title: 'STAKING.PERIOD.WEEK2',\n value: '2 week',\n },\n {\n title: 'STAKING.PERIOD.MONTH1',\n value: '1 month',\n },\n {\n title: 'STAKING.PERIOD.MONTH3',\n value: '3 month',\n },\n {\n title: 'STAKING.PERIOD.MONTH6',\n value: '6 month',\n },\n {\n title: 'STAKING.PERIOD.YEAR',\n value: '1 year',\n },\n {\n title: 'STAKING.PERIOD.ALL',\n value: 'All',\n },\n];\n\nconst groupItems: IGroupItem[] = [\n {\n title: 'STAKING.GROUP.DAY',\n value: 'day',\n },\n {\n title: 'STAKING.GROUP.WEEK',\n value: 'week',\n },\n {\n title: 'STAKING.GROUP.MONTH',\n value: 'month',\n },\n];\n\n@Component({\n selector: 'app-staking',\n templateUrl: './staking.component.html',\n styles: [\n `\n :host {\n width: 100%;\n height: auto;\n }\n `,\n ],\n})\nexport class StakingComponent implements OnInit, OnDestroy {\n public chart: Chart;\n\n public total: BigNumber = new BigNumber(0);\n\n public pending = {\n list: [],\n total: new BigNumber(0),\n };\n\n public themeChangesSubscription: Subscription;\n\n public readonly variablesService: VariablesService = inject(VariablesService);\n\n get isShowStagingSwitch(): boolean {\n const {\n currentWallet: { is_watch_only, is_auditable },\n } = this.variablesService;\n const condition1: boolean = !is_auditable && !is_watch_only;\n const condition2: boolean = is_auditable && !is_watch_only;\n return condition1 || condition2;\n }\n\n get isShowPointerDetails(): boolean {\n const { date, amount } = this.pointDetails;\n return date !== null && amount !== null;\n }\n\n public periodItems: IPeriodItem[] = periodItems;\n\n public groupItems: IGroupItem[] = groupItems;\n\n private readonly _fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n public readonly filtersForm = this._fb.group({\n group: this._fb.control('day'),\n period: this._fb.control('All'),\n });\n\n public pointDetails: { date: string; amount: any } = {\n date: null,\n amount: null,\n };\n\n public originalData = [];\n\n private readonly _destroy$: Subject = new Subject();\n\n private readonly _backendService: BackendService = inject(BackendService);\n\n private readonly _ngZone: NgZone = inject(NgZone);\n\n private readonly _intToMoneyPipe: IntToMoneyPipe = inject(IntToMoneyPipe);\n\n ngOnInit(): void {\n const { settings } = this.variablesService;\n\n const savedStakingFilters = settings.filters.stakingFilters;\n\n if (savedStakingFilters) {\n this.filtersForm.patchValue(savedStakingFilters);\n }\n\n this.getMiningHistory();\n\n this.variablesService.getHeightAppEvent.pipe(takeUntil(this._destroy$)).subscribe({\n next: (newHeight: number) => {\n if (!this.pending.total.isZero()) {\n const pendingCount = this.pending.list.length;\n for (let i = pendingCount - 1; i >= 0; i--) {\n if (newHeight - this.pending.list[i].h >= 10) {\n this.pending.list.splice(i, 1);\n }\n }\n if (pendingCount !== this.pending.list.length) {\n this.pending.total = new BigNumber(0);\n for (let i = 0; i < this.pending.list.length; i++) {\n this.pending.total = this.pending.total.plus(this.pending.list[i].a);\n }\n }\n }\n },\n });\n\n this.variablesService.daemon_state$.pipe(filter((daemon_state: number) => daemon_state === 3), skip(1)).subscribe({\n next: () => {\n this.getMiningHistory();\n this.changePeriod();\n }\n });\n\n this.filtersForm.valueChanges.pipe(takeUntil(this._destroy$)).subscribe({\n next: () => {\n settings.filters.stakingFilters = this.filtersForm.getRawValue();\n this.changePeriod();\n },\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n drawChart(data): void {\n this.chart = new Chart({\n title: { text: '' },\n credits: { enabled: false },\n exporting: { enabled: false },\n legend: { enabled: false },\n chart: {\n type: 'line',\n backgroundColor: 'transparent',\n height: null,\n events: {\n load: (): void => {\n this.changePeriod();\n },\n },\n },\n\n yAxis: {\n min: 0,\n tickAmount: 5,\n title: {\n text: '',\n },\n gridLineColor: '#2b3644',\n gridLineWidth: 2,\n lineColor: '#2b3644',\n lineWidth: 2,\n tickWidth: 2,\n tickLength: 120,\n tickColor: '#2b3644',\n labels: {\n y: -8,\n align: 'left',\n x: -120,\n style: {\n color: '#e0e0e0',\n fontSize: '13px',\n },\n format: '{value} ' + this.variablesService.defaultTicker,\n },\n },\n\n xAxis: {\n type: 'datetime',\n gridLineColor: '#2b3644',\n lineColor: '#2b3644',\n lineWidth: 2,\n tickWidth: 2,\n tickLength: 10,\n tickColor: '#2b3644',\n labels: {\n style: {\n color: '#e0e0e0',\n fontSize: '13px',\n },\n },\n minPadding: 0,\n maxPadding: 0,\n minRange: 86400000, // tickInterval: 86400000,\n minTickInterval: 3600000,\n },\n\n tooltip: {\n enabled: false,\n },\n\n plotOptions: {\n area: {\n fillColor: {\n linearGradient: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 1,\n },\n stops: [\n [0, 'rgba(124,181,236,0.2)'],\n [1, 'rgba(124,181,236,0)'],\n ],\n },\n marker: {\n enabled: false,\n radius: 2,\n },\n lineWidth: 2,\n threshold: null,\n },\n\n series: {\n point: {\n events: {\n mouseOver: (obj): void => {\n this.pointDetails.date = obj.target['x'];\n this.pointDetails.amount = obj.target['y'];\n },\n },\n },\n events: {\n mouseOut: (): void => {\n this.pointDetails.date = null;\n this.pointDetails.amount = null;\n },\n },\n },\n },\n series: [\n {\n type: 'area',\n data: data,\n },\n ],\n });\n }\n\n getMiningHistory(): void {\n if (this.variablesService.currentWallet.loaded) {\n this._backendService.getMiningHistory(this.variablesService.currentWallet.wallet_id, (status, data) => {\n this.total = new BigNumber(0);\n this.pending.list = [];\n this.pending.total = new BigNumber(0);\n this.originalData = [];\n if (data.mined_entries) {\n data.mined_entries.forEach((item, key) => {\n if (item.t.toString().length === 10) {\n data.mined_entries[key].t = new Date(item.t * 1000).setUTCMilliseconds(0);\n }\n });\n data.mined_entries.forEach(item => {\n this.total = this.total.plus(item.a);\n if (this.variablesService.height_app - item.h < 10) {\n this.pending.list.push(item);\n this.pending.total = this.pending.total.plus(item.a);\n }\n this.originalData.push([parseInt(item.t, 10), parseFloat(this._intToMoneyPipe.transform(item.a))]);\n });\n this.originalData = this.originalData.sort(function (a, b) {\n return a[0] - b[0];\n });\n }\n this._ngZone.run(() => {\n this.drawChart([]);\n\n this.themeChangesSubscription?.unsubscribe();\n this.themeChangesSubscription = combineLatest([this.chart.ref$, this.variablesService.isDarkTheme$])\n .pipe(takeUntil(this._destroy$))\n .subscribe({\n next: ([ref, isDarkTheme]) => {\n let option: Highcharts.Options = {};\n\n if (isDarkTheme) {\n option = {\n ...option,\n plotOptions: {\n area: {\n fillColor: {\n linearGradient: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 1,\n },\n stops: [\n [0, 'rgba(124,181,236,0.2)'],\n [1, 'rgba(124,181,236,0)'],\n ],\n },\n marker: {\n enabled: false,\n radius: 2,\n },\n lineWidth: 2,\n threshold: null,\n },\n },\n yAxis: {\n gridLineColor: '#2b3644',\n lineColor: '#2b3644',\n tickColor: '#2b3644',\n labels: {\n style: {\n color: '#e0e0e0',\n },\n },\n },\n xAxis: {\n gridLineColor: '#2b3644',\n lineColor: '#2b3644',\n tickColor: '#2b3644',\n labels: {\n style: {\n color: '#e0e0e0',\n },\n },\n },\n };\n } else {\n option = {\n ...option,\n plotOptions: {\n area: {\n color: '#1F8FEB',\n marker: {\n enabled: false,\n radius: 2,\n },\n lineWidth: 2,\n threshold: null,\n },\n },\n yAxis: {\n gridLineColor: '#1F8FEB20',\n lineColor: '#1F8FEB20',\n tickColor: '#1F8FEB20',\n labels: {\n style: {\n color: '#0C0C3A',\n },\n },\n },\n xAxis: {\n gridLineColor: '#1F8FEB20',\n lineColor: '#1F8FEB20',\n tickColor: '#1F8FEB20',\n labels: {\n style: {\n color: '#0C0C3A',\n },\n },\n },\n };\n }\n\n ref.update(option, true);\n },\n });\n });\n });\n }\n }\n\n changePeriod(): void {\n if (!this.chart) {\n return;\n }\n\n const d = new Date();\n let min = null;\n const newData = [];\n\n const { group, period } = this.filtersForm.getRawValue();\n\n const makeGroupTime = (value: TGroup, date): number => {\n if (value === 'day') {\n return date.setHours(0, 0, 0, 0);\n } else if (value === 'week') {\n return new Date(date.setDate(date.getDate() - date.getDay())).setHours(0, 0, 0, 0);\n } else {\n return new Date(date.setDate(1)).setHours(0, 0, 0, 0);\n }\n };\n\n if (period === '1 week') {\n this.originalData.forEach(item => {\n const time = makeGroupTime(group, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 7, 0, 0, 0, 0);\n } else if (period === '2 week') {\n this.originalData.forEach(item => {\n const time = makeGroupTime(group, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 14, 0, 0, 0, 0);\n } else if (period === '1 month') {\n this.originalData.forEach(item => {\n const time = makeGroupTime(group, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth() - 1, d.getDate(), 0, 0, 0, 0);\n } else if (period === '3 month') {\n this.originalData.forEach(item => {\n const time = makeGroupTime(group, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth() - 3, d.getDate(), 0, 0, 0, 0);\n } else if (period === '6 month') {\n this.originalData.forEach(item => {\n const time = makeGroupTime(group, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth() - 6, d.getDate(), 0, 0, 0, 0);\n } else if (period === '1 year') {\n this.originalData.forEach(item => {\n const time = makeGroupTime(group, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear() - 1, d.getMonth(), d.getDate(), 0, 0, 0, 0);\n } else {\n this.originalData.forEach(item => {\n const time = makeGroupTime(group, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n }\n\n this.chart.ref?.xAxis[0].setExtremes(min, null);\n }\n}\n","
\n
\n
\n
\n \n
\n \n
\n {{ 'STAKING.TITLE' | translate }}\n
\n\n
\n \n \n
\n
\n \n
\n {{ 'STAKING.TITLE_PENDING' | translate }}\n :\n
\n
\n
\n {{ pending.total | intToMoney }}\n
\n {{ variablesService.defaultTicker }}\n
\n
\n \n
\n {{ 'STAKING.TITLE_TOTAL' | translate }}\n :\n
\n
\n
\n {{ total | intToMoney }}\n
\n {{ variablesService.defaultTicker }}\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{ pointDetails.date | date : 'EEEE, MMMM d, y' }}\n {{ pointDetails.amount }}\n
\n
\n {{ variablesService.defaultTicker }}\n
\n
\n
\n
\n\n \n \n Sort by {{ (item.title | translate | lowercase) + 's' }}\n \n \n {{ item.title | translate }}\n \n \n
\n \n \n
\n
\n
\n
\n
\n {{ pointDetails.date | date : 'EEEE, MMMM d, y' }}\n {{ pointDetails.amount }}\n
\n
\n {{ variablesService.defaultTicker }}\n
\n
\n
\n
\n \n \n\n
\n
\n
\n\n
\n \n \n {{ item.title | translate }}\n \n \n
\n \n\n","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FlexModule } from '@angular/flex-layout';\nimport { GetAssetInfoPipe, IntToMoneyPipeModule } from '@parts/pipes';\nimport { NonNullableFormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ZanoValidators } from '@parts/utils/zano-validators';\nimport { ProposalDetails } from '@api/models/swap.model';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-swap-confirm-master-password',\n standalone: true,\n imports: [CommonModule, FlexModule, ReactiveFormsModule, TranslateModule, IntToMoneyPipeModule, GetAssetInfoPipe, MatDialogModule],\n templateUrl: './swap-confirm-master-password.component.html',\n styleUrls: ['./swap-confirm-master-password.component.scss'],\n})\nexport class SwapConfirmMasterPasswordComponent {\n variablesService: VariablesService = inject(VariablesService);\n\n fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n confirmForm = this.fb.group(\n {\n password: this.fb.control(''),\n appPass: this.fb.control(this.variablesService.appPass || ''),\n },\n { validators: [ZanoValidators.formMatch('password', 'appPass', 'passwordNotMatch')] }\n );\n\n data: { proposalDetails: ProposalDetails } = inject(MAT_DIALOG_DATA);\n}\n","
\n

\n {{ 'CONFIRM.TITLE' | translate }}\n

\n\n \n
\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL1' | translate }}\n
\n
\n \n {{ item.amount | intToMoney : (item.asset_id | getAssetInfo)?.decimal_point }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '***' }}\n
\n
\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL2' | translate }}\n
\n
\n \n {{ item.amount | intToMoney }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '***' }}\n
\n
\n
\n
\n
\n\n
\n \n \n
\n
\n {{ 'LOGIN.FORM_ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n {{ 'LOGIN.FORM_ERRORS.PASS_REQUIRED' | translate }}\n
\n
\n
\n
\n\n \n
\n \n \n
\n
\n
\n","import { Component, ElementRef, inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { Subject } from 'rxjs';\nimport { BLOCK_EXPLORER_TN_TX_URL_PREFIX, BLOCK_EXPLORER_TX_URL_PREFIX } from '@parts/data/constants';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexLayoutModule, FlexModule } from '@angular/flex-layout';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CopyButtonComponent } from '@parts/components/copy-button.component';\n\n@Component({\n selector: 'app-swap-details',\n templateUrl: './swap-details.component.html',\n styleUrls: ['./swap-details.component.scss'],\n standalone: true,\n imports: [CommonModule, MatDialogModule, TranslateModule, FlexModule, MatIconModule, FlexLayoutModule, CopyButtonComponent],\n})\nexport class SwapDetailsComponent implements OnInit, OnDestroy {\n public status: 'loading' | 'success' | 'error' = 'loading';\n\n // public data: { job_id: number } = inject(MAT_DIALOG_DATA);\n\n public data: { response: any } = inject(MAT_DIALOG_DATA);\n\n public details: { result_tx_id: string };\n\n public error: any;\n\n @ViewChild('elDetailsList', { static: true }) elDetailsList: ElementRef;\n\n public isShowDetailsState: boolean = false;\n\n public variablesService: VariablesService = inject(VariablesService);\n\n private _backendService: BackendService = inject(BackendService);\n\n private _destroy$: Subject = new Subject();\n\n ngOnInit(): void {\n // this._backendService.dispatchAsyncCallResult$\n // .pipe(\n // filter(Boolean),\n // filter(({ job_id }: AsyncCommandResults) => this.data.job_id === job_id),\n // takeUntil(this._destroy$)\n // )\n // .subscribe({\n // next: ({ response }) => {\n // if (response.error) {\n // this.status = 'error';\n // this.error = response.error;\n // } else {\n // this.status = 'success';\n // this.details = response.result;\n // }\n // },\n // });\n\n const { response } = this.data;\n if (response.error) {\n this.status = 'error';\n this.error = response.error;\n } else {\n this.status = 'success';\n this.details = response.result;\n }\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n toggleDetails(): void {\n this.isShowDetailsState = !this.isShowDetailsState;\n setTimeout(() => this.scrollToBottomDetailsList(), 100);\n }\n\n private scrollToBottomDetailsList(): void {\n if (this.elDetailsList) {\n const { nativeElement } = this.elDetailsList;\n nativeElement.scrollTop = nativeElement.scrollHeight;\n }\n }\n\n openInBrowser(hash: string): void {\n this._backendService.openUrlInBrowser(\n (this.variablesService.testnet ? BLOCK_EXPLORER_TN_TX_URL_PREFIX : BLOCK_EXPLORER_TX_URL_PREFIX) + hash\n );\n }\n}\n","

\n {{ 'SEND_DETAILS_MODAL.TITLE1' | translate }}\n

\n\n\n
\n
\n \"success\"\n
\n\n
\n \"failed\"\n
\n\n
\n\n

\n {{\n {\n success: 'TOR_LIB_STATE.STATE_SENT_SUCCESS',\n error: 'TOR_LIB_STATE.STATE_SEND_FAILED',\n loading: 'Loading...'\n }[status] | translate\n }}\n

\n
\n\n
\n \n

\n {{ 'SEND_DETAILS_MODAL.TITLE2' | translate }}\n

\n \n
\n \n
    \n \n \n
  • \n \n Result tx: {{ result_tx_id }}\n \n \n \n
  • \n
    \n
    \n \n
  • \n \n Error: {{ error.message || 'Ops... Unknown error...' }}\n \n
  • \n
    \n
\n \n \n
\n\n\n
\n \n
\n
\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { Router, RouterLinkWithHref } from '@angular/router';\nimport { InputValidateModule } from '@parts/directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NonNullableFormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, take, takeUntil } from 'rxjs/operators';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { IntToMoneyPipeModule } from '@parts/pipes';\nimport { SwapConfirmMasterPasswordComponent } from '../../modals/swap-confirm-master-password/swap-confirm-master-password.component';\nimport { ProposalDetails } from '@api/models/swap.model';\nimport { GetAssetInfoPipe } from '@parts/pipes/get-asset-info.pipe';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { SwapDetailsComponent } from '../../modals/swap-details/swap-details.component';\n\n@Component({\n selector: 'app-confirm-swap',\n standalone: true,\n imports: [\n CommonModule,\n BreadcrumbsComponent,\n RouterLinkWithHref,\n InputValidateModule,\n TranslateModule,\n ReactiveFormsModule,\n IntToMoneyPipeModule,\n GetAssetInfoPipe,\n ],\n templateUrl: './confirm-swap.component.html',\n styleUrls: ['./confirm-swap.component.scss'],\n})\nexport class ConfirmSwapComponent implements OnInit, OnDestroy {\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/swap',\n title: 'CONFIRM_SWAP.BREADCRUMBS.ITEM1',\n },\n {\n title: 'CONFIRM_SWAP.BREADCRUMBS.ITEM2',\n },\n ];\n\n errorRpc: { code: number; message: string } | undefined;\n\n variablesService = inject(VariablesService);\n\n fb = inject(NonNullableFormBuilder);\n\n form = this.fb.group({\n hex_raw_proposal: this.fb.control('', [Validators.required]),\n });\n\n proposalDetails: ProposalDetails | undefined;\n\n hex_raw_proposal: string | undefined;\n\n private backendService: BackendService = inject(BackendService);\n\n private router: Router = inject(Router);\n\n private ngZone: NgZone = inject(NgZone);\n\n private _matDialog: MatDialog = inject(MatDialog);\n\n private destroy$ = new Subject();\n\n ngOnInit(): void {\n this.form.controls.hex_raw_proposal.valueChanges\n .pipe(distinctUntilChanged(), debounceTime(500), takeUntil(this.destroy$))\n .subscribe({\n next: (hex_raw_proposal: string) => {\n this.hex_raw_proposal = hex_raw_proposal;\n this.getProposalDetails(hex_raw_proposal);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n swapConfirmMasterPasswordDialog(): void {\n const proposalDetails = this.proposalDetails;\n const config: MatDialogConfig = {\n data: {\n proposalDetails,\n },\n disableClose: true,\n };\n this._matDialog\n .open(SwapConfirmMasterPasswordComponent, config)\n .afterClosed()\n .pipe(filter(Boolean), take(1))\n .subscribe({\n next: () => this.acceptProposal(),\n });\n }\n\n acceptProposal(): void {\n if (!this.hex_raw_proposal) {\n return;\n }\n const { wallet_id } = this.variablesService.currentWallet;\n const hex_raw_proposal = this.hex_raw_proposal;\n\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'ionic_swap_accept_proposal',\n params: { hex_raw_proposal },\n };\n this.backendService.call_wallet_rpc([wallet_id, params], (status, response) => {\n this.ngZone.run(() => {\n const config: MatDialogConfig = {\n data: {\n response,\n },\n disableClose: true,\n };\n this._matDialog\n .open(SwapDetailsComponent, config)\n .afterClosed()\n .pipe(filter(Boolean), take(1))\n .subscribe({\n next: () => this.router.navigate(['/wallet/history']),\n });\n });\n });\n }\n\n private getProposalDetails(hex_raw_proposal: string): void {\n const { wallet_id } = this.variablesService.currentWallet;\n\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'ionic_swap_get_proposal_info',\n params: { hex_raw_proposal },\n };\n\n this.backendService.call_wallet_rpc([wallet_id, params], (status, response_data) => {\n this.ngZone.run(() => {\n const proposal = response_data?.result?.['proposal'];\n if (proposal) {\n this.proposalDetails = proposal;\n this.errorRpc = undefined;\n } else {\n this.proposalDetails = undefined;\n this.errorRpc = response_data.error;\n }\n });\n });\n }\n}\n","
\n \n\n
\n
\n \n \n
\n\n
\n \n
\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL1' | translate }}\n
\n\n
\n

\n {{ item.amount | intToMoney : (item.asset_id | getAssetInfo)?.decimal_point }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '***' }}\n

\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL2' | translate }}\n
\n
\n

\n {{ item.amount | intToMoney : (item.asset_id | getAssetInfo)?.decimal_point }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '***' }}\n

\n
\n
\n
\n
\n\n
\n \n\n \n {{ 'CONFIRM_SWAP.FORM.BUTTONS.BUTTON2' | translate }}\n \n
\n\n
\n {{ 'ERRORS.INVALID_PROPOSAL' | translate }}\n
\n
\n
\n","import { ChangeDetectorRef, Component, inject, NgZone, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router, RouterLinkWithHref } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { DefaultImgModule, InputValidateModule, LowerCaseDirective } from '@parts/directives';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { IntToMoneyPipeModule, MoneyToIntPipeModule, ShortStringPipe } from '@parts/pipes';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { AssetBalance, AssetInfo } from '@api/models/assets.model';\nimport { defaultImgSrc, zanoAssetInfo } from '@parts/data/assets';\nimport { regExpAliasName } from '@parts/utils/zano-validators';\nimport { BackendService } from '@api/services/backend.service';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { debounceTime, map, startWith, tap } from 'rxjs/operators';\nimport { BigNumber } from 'bignumber.js';\nimport { assetHasNotBeenAddedToWallet, insuficcientFunds } from '@parts/utils/zano-errors';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { LoaderComponent } from '@parts/components/loader.component';\nimport { Wallet } from '@api/models/wallet.model';\nimport { intToMoney } from '@parts/functions/int-to-money';\nimport { moneyToInt } from '@parts/functions/money-to-int';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatOptionModule } from '@angular/material/core';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-create-swap',\n standalone: true,\n imports: [\n CommonModule,\n RouterLinkWithHref,\n TranslateModule,\n BreadcrumbsComponent,\n InputValidateModule,\n ReactiveFormsModule,\n DefaultImgModule,\n NgSelectModule,\n LowerCaseDirective,\n ShortStringPipe,\n FormsModule,\n IntToMoneyPipeModule,\n MoneyToIntPipeModule,\n LoaderComponent,\n MatAutocompleteModule,\n MatOptionModule,\n MatIconModule,\n ],\n templateUrl: './create-swap.component.html',\n styleUrls: ['./create-swap.component.scss'],\n})\nexport class CreateSwapComponent implements OnDestroy {\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/swap',\n title: 'CREATE_SWAP.BREADCRUMBS.ITEM1',\n },\n {\n title: 'CREATE_SWAP.BREADCRUMBS.ITEM2',\n },\n ];\n\n variablesService: VariablesService = inject(VariablesService);\n\n fb: FormBuilder = inject(FormBuilder);\n\n aliasAddress: string;\n\n loading$: BehaviorSubject = new BehaviorSubject(false);\n\n lowerCaseDisabled$: BehaviorSubject = new BehaviorSubject(true);\n\n errorRpc: { code: number; message: string } = null;\n\n currentWallet: Wallet = this.variablesService.currentWallet;\n\n allAssetsInfo: AssetInfo[] = this.currentWallet.allAssetsInfo;\n\n sendingAssetsInfo$: Observable;\n\n sendingDecimalPoint$: Observable;\n\n receivingAssetsInfo$: Observable;\n\n receivingDecimalPoint$: Observable;\n\n form: FormGroup<{\n sending: FormGroup<{\n amount: FormControl;\n asset_id: FormControl;\n }>;\n receiving: FormGroup<{\n amount: FormControl;\n asset_id: FormControl;\n }>;\n receiverAddress: FormControl;\n }>;\n\n errorMessages: { [key: string]: string | undefined } = {\n receiverAddress: undefined,\n };\n\n addressItems$: Observable;\n\n loadingAddressItems$: BehaviorSubject = new BehaviorSubject(true);\n\n private _cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n private _walletsService: WalletsService = inject(WalletsService);\n\n private _openedWalletItems: string[] = this._walletsService.wallets.map(({ address, alias }) => alias?.name ?? address);\n\n private _aliasItems: string[] = this.variablesService.aliases.map(({ name }) => name);\n\n private _backendService: BackendService = inject(BackendService);\n\n private _ngZone: NgZone = inject(NgZone);\n\n private _router = inject(Router);\n\n private _destroy$ = new Subject();\n\n constructor() {\n this._createForm();\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n getSrcByAssetInfo({ asset_id }: AssetInfo): string {\n switch (asset_id) {\n case zanoAssetInfo.asset_id: {\n return zanoAssetInfo.logo;\n }\n default: {\n return defaultImgSrc;\n }\n }\n }\n\n isVisibleErrorByControl(control: AbstractControl): boolean {\n return control.invalid && (control.dirty || control.touched);\n }\n\n isVisibleErrorByForm(form: FormGroup): boolean {\n return form.invalid && (form.dirty || form.touched);\n }\n\n reverse(): void {\n const { sending, receiving } = this.form.getRawValue();\n\n const markAllAsTouched = () => {\n this.form.controls.sending.markAllAsTouched();\n this.form.controls.receiving.markAllAsTouched();\n };\n\n markAllAsTouched();\n\n this.form.patchValue({\n sending: receiving,\n receiving: sending,\n });\n this.form.controls.sending.controls.amount.updateValueAndValidity();\n this.form.controls.receiving.controls.amount.updateValueAndValidity();\n }\n\n updateReceiverAddressErrorMessage(): void {\n const {\n controls: { receiverAddress },\n } = this.form;\n let message: string | undefined;\n\n switch (true) {\n case receiverAddress.hasError('address_not_valid'): {\n message = 'SEND.FORM_ERRORS.ADDRESS_NOT_VALID';\n break;\n }\n case receiverAddress.hasError('alias_not_found'): {\n message = 'SEND.FORM_ERRORS.ALIAS_NOT_FOUND';\n break;\n }\n case receiverAddress.hasError('alias_not_valid'): {\n message = 'SEND.FORM_ERRORS.ALIAS_NOT_VALID';\n break;\n }\n case receiverAddress.hasError('required'): {\n message = 'ERRORS.REQUIRED';\n break;\n }\n }\n this.errorMessages['receiverAddress'] = message;\n }\n\n pasteListenReceiverAddressField(event: ClipboardEvent): void {\n event.preventDefault();\n const {\n controls: { receiverAddress },\n } = this.form;\n const { clipboardData } = event;\n let value: string = clipboardData.getData('Text') ?? '';\n this.lowerCaseDisabled$.next(value.indexOf('@') !== 0);\n\n if (value.indexOf('@') === 0) {\n value = value.toLowerCase();\n }\n\n receiverAddress.patchValue(value);\n }\n\n trackByFn(index: number, value: string): number | string {\n return value ?? index;\n }\n\n beforeSubmit(): void {\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n this.form.updateValueAndValidity();\n return;\n }\n this.submit();\n }\n\n submit(): void {\n this.loading$.next(true);\n const { sending, receiving, receiverAddress } = this.form.getRawValue();\n const { wallet_id } = this.variablesService.currentWallet;\n const { default_fee_big } = this.variablesService;\n\n const { currentWallet } = this.variablesService;\n\n const sendingAsset: AssetInfo | undefined = currentWallet.getAssetInfoByAssetId(sending.asset_id);\n const receivingAsset: AssetInfo | undefined = currentWallet.getAssetInfoByAssetId(receiving.asset_id);\n\n if (!sendingAsset) {\n this.form.controls.sending.controls.asset_id.setErrors({\n alias_not_found: true,\n });\n return;\n }\n\n if (!receivingAsset) {\n this.form.controls.receiving.controls.asset_id.setErrors({\n alias_not_found: true,\n });\n return;\n }\n\n const params2: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'ionic_swap_generate_proposal',\n params: {\n proposal: {\n to_finalizer: [\n {\n asset_id: sending.asset_id,\n amount: moneyToInt(sending.amount, sendingAsset.decimal_point),\n },\n ],\n to_initiator: [\n {\n asset_id: receiving.asset_id,\n amount: moneyToInt(receiving.amount, receivingAsset.decimal_point),\n },\n ],\n mixins: 10,\n fee_paid_by_a: default_fee_big,\n expiration_time: 0,\n },\n },\n };\n\n if (receiverAddress.indexOf('@') === 0) {\n const aliasName = receiverAddress;\n const { aliases } = this.variablesService;\n const alias = aliases.find(({ name }) => name === aliasName);\n\n if (!alias) {\n this.form.controls.receiverAddress.setErrors({\n alias_not_found: true,\n });\n return;\n }\n\n params2.params['destination_address'] = alias.address;\n } else {\n params2.params['destination_address'] = receiverAddress;\n }\n\n this._backendService.call_wallet_rpc([wallet_id, params2], (status, response_data) => {\n if (response_data?.result) {\n this._ngZone.run(() => {\n this._router\n .navigateByUrl('/wallet/swap-proposal-hex', {\n state: {\n hex_raw_proposal: response_data.result['hex_raw_proposal'],\n },\n })\n .then();\n });\n } else {\n this._ngZone.run(() => {\n this.errorRpc = response_data.error;\n this.loading$.next(false);\n });\n }\n });\n }\n\n private _formListeners(): void {\n this.sendingAssetsInfo$ = this.form.controls.receiving.controls.asset_id.valueChanges.pipe(\n startWith(this.form.controls.receiving.controls.asset_id.value),\n map(asset_id => this.allAssetsInfo.filter(v => v.asset_id !== asset_id))\n );\n this.receivingAssetsInfo$ = this.form.controls.sending.controls.asset_id.valueChanges.pipe(\n startWith(this.form.controls.sending.controls.asset_id.value),\n map(asset_id => this.allAssetsInfo.filter(v => v.asset_id !== asset_id))\n );\n\n const { currentWallet } = this.variablesService;\n\n this.sendingDecimalPoint$ = this.form.controls.sending.controls.asset_id.valueChanges.pipe(\n startWith(this.form.controls.sending.controls.asset_id.value),\n map((asset_id: string) => {\n return currentWallet.getBalanceByAssetId(asset_id)?.asset_info.decimal_point ?? 0;\n })\n );\n\n this.receivingDecimalPoint$ = this.form.controls.receiving.controls.asset_id.valueChanges.pipe(\n startWith(this.form.controls.receiving.controls.asset_id.value),\n map((asset_id: string) => {\n return currentWallet.getBalanceByAssetId(asset_id)?.asset_info.decimal_point ?? 0;\n })\n );\n\n this.addressItems$ = this.form.controls.receiverAddress.valueChanges.pipe(\n startWith(this.form.controls.receiverAddress.value),\n tap(value => {\n const condition = value[0] === '@';\n this.lowerCaseDisabled$.next(!condition);\n this.loadingAddressItems$.next(condition);\n }),\n debounceTime(250),\n map(value => {\n if (!value?.length) {\n return this._openedWalletItems;\n }\n if (value[0] === '@') {\n return this._aliasItems.filter(name => {\n return name.includes(value);\n });\n }\n return [];\n }),\n tap(() => this.loadingAddressItems$.next(false))\n );\n }\n\n private _createForm(): void {\n this.form = this.fb.group(\n {\n sending: this.fb.group(\n {\n amount: this.fb.control(null, {\n validators: [\n Validators.required,\n ({ value }: FormControl): ValidationErrors | null => {\n const amount: BigNumber = new BigNumber(value);\n\n if (amount.eq(0)) {\n return { zero: true };\n }\n\n return null;\n },\n ],\n }),\n asset_id: this.fb.control(zanoAssetInfo.asset_id, [Validators.required]),\n },\n {\n validators: [\n (form: FormGroup): ValidationErrors | null => {\n const { value: asset_id } = form.get('asset_id');\n const { value: amount } = form.get('amount');\n const preparedAmount = new BigNumber(amount);\n\n const { maximum_value } = this.variablesService;\n if (!asset_id) {\n return null;\n }\n\n const asset: AssetBalance | undefined = this.variablesService.currentWallet.balances?.find(\n v => v.asset_info.asset_id === asset_id\n );\n if (asset) {\n const {\n asset_info: { decimal_point },\n unlocked,\n } = asset;\n const maximum_amount_by_decimal_point = intToMoney(maximum_value, decimal_point);\n if (preparedAmount.isGreaterThan(maximum_amount_by_decimal_point)) {\n return { greater_than_maximum_amount: { max: maximum_amount_by_decimal_point } };\n }\n\n const preparedUnlocked = intToMoney(unlocked, decimal_point);\n return preparedAmount.isGreaterThan(preparedUnlocked) ? { insuficcientFunds } : null;\n } else {\n return { assetHasNotBeenAddedToWallet };\n }\n },\n ],\n }\n ),\n receiving: this.fb.group(\n {\n amount: this.fb.control(\n {\n value: null,\n disabled: this.currentWallet.isEmptyAssetsInfoWhitelist,\n },\n [\n Validators.required,\n (control: FormControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n\n if (control.value === 0) {\n return { zero: true };\n }\n return null;\n },\n ]\n ),\n asset_id: this.fb.control(\n {\n value: this.currentWallet.isEmptyAssetsInfoWhitelist\n ? null\n : this.allAssetsInfo[1].asset_id ?? zanoAssetInfo.asset_id,\n disabled: this.currentWallet.isEmptyAssetsInfoWhitelist,\n },\n [Validators.required]\n ),\n },\n {\n validators: [\n (form: FormGroup): ValidationErrors | null => {\n const asset_id = form.controls.asset_id.value;\n const amount = new BigNumber(form.controls.amount.value);\n if (!asset_id) {\n return null;\n }\n\n const asset: AssetBalance | undefined = this.variablesService.currentWallet.balances?.find(\n v => v.asset_info.asset_id === asset_id\n );\n if (asset) {\n const {\n asset_info: { decimal_point },\n } = asset;\n const maximum_amount_by_decimal_point = intToMoney(this.variablesService.maximum_value, decimal_point);\n if (amount.isGreaterThan(maximum_amount_by_decimal_point)) {\n return { greater_than_maximum_amount: { max: maximum_amount_by_decimal_point } };\n }\n return null;\n } else {\n return { assetHasNotBeenAddedToWallet };\n }\n },\n ],\n }\n ),\n receiverAddress: this.fb.control('', [\n Validators.required,\n (control: FormControl): ValidationErrors | null => {\n this.aliasAddress = '';\n if (control.value) {\n if (control.value.indexOf('@') !== 0) {\n this._backendService.validateAddress(control.value, (valid_status, data) => {\n this._ngZone.run(() => {\n if (valid_status === false) {\n control.setErrors(Object.assign({ address_not_valid: true }, control.errors));\n } else {\n if (control.hasError('address_not_valid')) {\n delete control.errors['address_not_valid'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n }\n this._cdr.markForCheck();\n this._cdr.detectChanges();\n });\n });\n return control.hasError('address_not_valid') ? { address_not_valid: true } : null;\n } else {\n if (!regExpAliasName.test(control.value)) {\n return { alias_not_valid: true };\n } else {\n this._backendService.getAliasInfoByName(control.value.replace('@', ''), (alias_status, alias_data) => {\n this._ngZone.run(() => {\n this.aliasAddress = alias_data.address;\n if (alias_status) {\n if (control.hasError('alias_not_found')) {\n delete control.errors['alias_not_found'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n } else {\n control.setErrors(Object.assign({ alias_not_found: true }, control.errors));\n }\n this._cdr.markForCheck();\n this._cdr.detectChanges();\n });\n });\n }\n return control.hasError('alias_not_found') ? { alias_not_found: true } : null;\n }\n }\n return null;\n },\n ]),\n },\n {\n validators: [\n (control: AbstractControl): ValidationErrors | null => {\n const condition = control.get('sending').get('asset_id').value === control.get('receiving').get('asset_id').value;\n if (condition) {\n control.get('receiving').get('asset_id').setErrors({ sameAssetsId: true });\n } else {\n control.get('receiving').get('asset_id').setErrors(null);\n }\n return null;\n },\n ],\n }\n );\n\n this._setSendingAssetIdFromHistoryState();\n\n this._formListeners();\n }\n\n private _setSendingAssetIdFromHistoryState(): void {\n const state = history.state || {};\n const history_asset: AssetBalance = state['asset'];\n if (history_asset) {\n const { asset_info: { asset_id } } = history_asset;\n this.form.patchValue({\n sending: {\n asset_id,\n },\n });\n }\n }\n}\n","
\n \n\n
\n \n
\n
\n \n \n \n \n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\n \n \n {{ 'ERRORS.REQUIRED' | translate }}\n \n \n {{ 'ERRORS.MAX' | translate : { max: form.controls.sending.errors['greater_than_maximum_amount'].max } }}\n \n \n {{ form.controls.sending.errors['insuficcientFunds'].errorText | translate }}\n \n
\n {{ form.controls.sending.errors['assetHasNotBeenAddedToWallet'].errorText | translate }}\n
\n
\n
\n\n
\n \n \n \n \n {{ assetInfo.full_name || '---' }}\n \n \n
\n
\n \n\n
\n \n
\n\n \n
\n
\n \n \n \n \n {{ 'ERRORS.REQUIRED' | translate }}\n \n \n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\n \n \n {{ 'ERRORS.MAX' | translate : { max: form.controls.receiving.errors['greater_than_maximum_amount'].max } }}\n \n \n {{ form.controls.receiving.errors['assetHasNotBeenAddedToWallet'].errorText | translate }}\n \n
\n
\n\n
\n \n \n \n \n {{ assetInfo.full_name || '---' }}\n \n \n \n \n {{ 'CREATE_SWAP.FORM.ERRORS.ERROR1' | translate }}\n \n
\n \n \n \n\n \n \n \n\n \n\n \n \n \n \n\n \n Not found aliases \n \n\n \n \n \n \n = 2 && item.length <= 6,\n 'pl-1': item.length > 6\n }\"\n class=\"alias\"\n >\n {{ item }}\n \n \n \n \n {{ item | zanoShortString }}\n \n \n \n \n\n
\n {{ errorMessages['receiverAddress'] | translate }}\n
\n\n
\n {{ aliasAddress | zanoShortString }}\n
\n \n \n\n
\n \n {{ 'CREATE_SWAP.FORM.BUTTONS.BUTTON2' | translate }}\n
\n\n
\n {{ 'ERRORS.INVALID_PROPOSAL' | translate }}\n
\n \n\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { RouterLinkWithHref } from '@angular/router';\nimport { InputValidateModule } from '@parts/directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { IDeactivateComponent } from '@parts/interfaces/deactivete-component.interface';\nimport { Observable } from 'rxjs';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-swap-proposal-hex',\n standalone: true,\n imports: [\n CommonModule,\n BreadcrumbsComponent,\n RouterLinkWithHref,\n InputValidateModule,\n TranslateModule,\n ReactiveFormsModule,\n MatIconModule,\n ],\n templateUrl: './swap-proposal-hex.component.html',\n styleUrls: ['./swap-proposal-hex.component.scss'],\n})\nexport class SwapProposalHexComponent implements OnInit, IDeactivateComponent {\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/swap',\n title: 'SWAP_PROPOSAL_HEX.BREADCRUMBS.ITEM1',\n },\n {\n title: 'SWAP_PROPOSAL_HEX.BREADCRUMBS.ITEM2',\n },\n ];\n\n copyAnimation = false;\n\n copyAnimationTimeout: any;\n\n fb = inject(FormBuilder);\n\n form = this.fb.group({\n hex_raw_proposal: this.fb.control('', [Validators.required]),\n });\n\n private readonly backendService: BackendService = inject(BackendService);\n\n private readonly _matDialog: MatDialog = inject(MatDialog);\n\n ngOnInit(): void {\n this.setSwapProposalHexFromHistoryState();\n }\n\n copy(): void {\n const { hex_raw_proposal } = this.form.getRawValue();\n this.backendService.setClipboard(hex_raw_proposal);\n this.copyAnimation = true;\n this.copyAnimationTimeout = setTimeout(() => {\n this.copyAnimation = false;\n clearTimeout(this.copyAnimationTimeout);\n }, 2000);\n }\n\n canExit(): Observable | Promise | boolean {\n const config: MatDialogConfig = {\n disableClose: true,\n data: {\n title: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.TITLE',\n message: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.MESSAGE',\n buttons: {\n submit: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.BUTTONS.SUBMIT',\n close: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.BUTTONS.CLOSE',\n },\n },\n };\n const dialogRef = this._matDialog\n .open(ConfirmModalComponent, config);\n return dialogRef.afterClosed();\n }\n\n private setSwapProposalHexFromHistoryState(): void {\n const historyState = history.state || {};\n const hex_raw_proposal = historyState['hex_raw_proposal'];\n if (hex_raw_proposal) {\n this.form.controls.hex_raw_proposal.patchValue(hex_raw_proposal, { emitEvent: false });\n }\n }\n}\n","
\n \n\n
\n
\n \n \n
\n\n
\n \n\n \n {{ 'SWAP_PROPOSAL_HEX.FORM.BUTTONS.BUTTON2' | translate }}\n \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FlexModule } from '@angular/flex-layout';\nimport { RouterLinkWithHref } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-swap',\n standalone: true,\n imports: [CommonModule, FlexModule, RouterLinkWithHref, TranslateModule],\n templateUrl: './swap.component.html',\n styleUrls: ['./swap.component.scss'],\n})\nexport class SwapComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { IDeactivateComponent } from '@parts/interfaces/deactivete-component.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SwapProposalHexGuard implements CanDeactivate {\n canDeactivate(\n component: IDeactivateComponent,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot\n ): Observable | Promise | boolean | UrlTree {\n return component.canExit ? component.canExit() : true;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { WalletComponent } from './wallet/wallet.component';\nimport { paths, pathsChildrenWallet } from '../paths';\nimport { SendComponent } from './tabs/send/send.component';\nimport { ReceiveComponent } from './tabs/receive/receive.component';\nimport { HistoryComponent } from './tabs/history/history.component';\nimport { StakingComponent } from './tabs/staking/staking.component';\nimport { AssetsComponent } from './tabs/assets/assets.component';\nimport { WithSidebarLayoutComponent } from '../../layouts/with-sidebar-layout/with-sidebar-layout.component';\nimport { ConfirmSwapComponent } from './tabs/swap/pages/confirm-swap/confirm-swap.component';\nimport { SwapComponent } from './tabs/swap/pages/swap/swap.component';\nimport { CreateSwapComponent } from './tabs/swap/pages/create-swap/create-swap.component';\nimport { SwapProposalHexComponent } from './tabs/swap/pages/swap-proposal-hex/swap-proposal-hex.component';\nimport { SwapProposalHexGuard } from './tabs/swap/parts/guards/swap-proposal-hex.guard';\nimport { CustomAssetsComponent } from './tabs/custom-assets/pages/custom-assets/custom-assets.component';\nimport { CreateNewAssetComponent } from './tabs/custom-assets/pages/create-new-asset/create-new-asset.component';\n\nconst routes: Routes = [\n {\n path: paths.wallet,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: WalletComponent,\n children: [\n {\n path: pathsChildrenWallet.assets,\n component: AssetsComponent,\n },\n {\n path: pathsChildrenWallet.send,\n component: SendComponent,\n },\n {\n path: pathsChildrenWallet.receive,\n component: ReceiveComponent,\n },\n {\n path: pathsChildrenWallet.history,\n component: HistoryComponent,\n },\n {\n path: pathsChildrenWallet.staking,\n component: StakingComponent,\n },\n {\n path: 'swap',\n component: SwapComponent,\n },\n {\n path: 'create-swap',\n component: CreateSwapComponent,\n },\n {\n path: 'swap-proposal-hex',\n component: SwapProposalHexComponent,\n canDeactivate: [SwapProposalHexGuard],\n },\n {\n path: 'confirm-swap',\n component: ConfirmSwapComponent,\n },\n {\n path: 'custom-assets',\n component: CustomAssetsComponent,\n },\n {\n path: 'create-new-asset',\n component: CreateNewAssetComponent,\n },\n {\n path: '',\n redirectTo: pathsChildrenWallet.assets,\n pathMatch: 'full',\n },\n ],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class WalletRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WalletRoutingModule } from './wallet-routing.module';\nimport { AssetsComponent } from './tabs/assets/assets.component';\nimport { WalletComponent } from './wallet/wallet.component';\nimport { FlexLayoutModule, FlexModule } from '@angular/flex-layout';\nimport { TooltipModule } from '@parts/directives/tooltip/tooltip.module';\nimport {\n ContractStatusMessagesPipeModule,\n HistoryTypeMessagesPipeModule,\n IntToMoneyPipeModule,\n IsAvailableAliasNamePipeModule,\n ShortStringPipe,\n} from '@parts/pipes';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfirmModalModule } from '@parts/modals/confirm-modal/confirm-modal.module';\nimport { ExportHistoryModalModule } from './wallet/modals/export-history-modal/export-history-modal.module';\nimport { WalletDetailsComponent } from '../wallet-details/wallet-details.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { DefaultImgModule, InputValidateModule, LowerCaseDirective } from '@parts/directives';\nimport { NgxPaginationModule } from 'ngx-pagination';\nimport { HistoryComponent } from './tabs/history/history.component';\nimport { StakingComponent } from './tabs/staking/staking.component';\nimport { ChartModule } from 'angular-highcharts';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { ReceiveComponent } from './tabs/receive/receive.component';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { SendComponent } from './tabs/send/send.component';\nimport { ExportImportComponent } from '../export-import/export-import.component';\nimport { CheckboxComponent } from '@parts/components/checkbox.component';\nimport { CopyButtonComponent } from '@parts/components/copy-button.component';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\nimport { SwitchComponent } from '@parts/components/switch.component';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BackButtonComponent } from '@parts/components/back-button/back-button.component';\nimport { WalletModalsModule } from './tabs/send/modals/wallet-modals.module';\nimport { GetAssetInfoPipe } from '@parts/pipes/get-asset-info.pipe';\nimport { MigrateWalletToZarcanumComponent } from './wallet/modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component';\nimport { SuccessSweepBareOutsComponent } from './wallet/modals/success-sweep-bare-outs/success-sweep-bare-outs.component';\nimport { GetAmountItemsPipe } from '@parts/pipes/get-amount-items.pipe';\nimport { TransactionStatusComponent } from '@parts/components/transaction-status/transaction-status.component';\nimport { IsVisibleFeePipe } from '@parts/pipes/is-visible-fee.pipe';\nimport { CustomAssetsComponent } from './tabs/custom-assets/pages/custom-assets/custom-assets.component';\nimport { CreateNewAssetComponent } from './tabs/custom-assets/pages/create-new-asset/create-new-asset.component';\nimport { ConfirmCreateCustomAssetComponent } from './tabs/custom-assets/modals/confirm-create-custom-asset/confirm-create-custom-asset.component';\nimport { UpdateCustomAssetComponent } from './tabs/custom-assets/modals/update-custom-asset/update-custom-asset.component';\nimport { EmitCustomAssetComponent } from './tabs/custom-assets/modals/emit-custom-asset/emit-custom-asset.component';\nimport { BurnCustomAssetComponent } from './tabs/custom-assets/modals/burn-custom-asset/burn-custom-asset.component';\nimport { TransactionDetailsForCustomAssetsComponent } from './tabs/custom-assets/modals/transaction-details-for-custom-assets/transaction-details-for-custom-assets.component';\nimport { TransactionDetailsComponent } from '@parts/components/transaction-details.component';\nimport { VisibilityBalanceDirective } from '@parts/directives/visibility-balance.directive';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { LoaderComponent } from '@parts/components/loader.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AssetDetailsComponent } from '@parts/modals/asset-details/asset-details.component';\nimport { MatDialogModule } from '@angular/material/dialog';\n\n@NgModule({\n declarations: [\n WalletComponent,\n AssetsComponent,\n WalletDetailsComponent,\n HistoryComponent,\n StakingComponent,\n ReceiveComponent,\n ExportImportComponent,\n SendComponent,\n MigrateWalletToZarcanumComponent,\n SuccessSweepBareOutsComponent,\n CustomAssetsComponent,\n CreateNewAssetComponent,\n ConfirmCreateCustomAssetComponent,\n UpdateCustomAssetComponent,\n EmitCustomAssetComponent,\n BurnCustomAssetComponent,\n TransactionDetailsForCustomAssetsComponent\n ],\n imports: [\n CommonModule,\n WalletRoutingModule,\n FlexModule,\n TooltipModule,\n ShortStringPipe,\n TranslateModule,\n IsAvailableAliasNamePipeModule,\n ConfirmModalModule,\n ExportHistoryModalModule,\n ReactiveFormsModule,\n OverlayModule,\n DefaultImgModule,\n NgxPaginationModule,\n SwitchComponent,\n ChartModule,\n NgSelectModule,\n FormsModule,\n FlexLayoutModule,\n StakingSwitchComponent,\n DialogModule,\n IntToMoneyPipeModule,\n ContractStatusMessagesPipeModule,\n HistoryTypeMessagesPipeModule,\n InputValidateModule,\n CheckboxComponent,\n AssetDetailsComponent,\n CopyButtonComponent,\n LowerCaseDirective,\n BreadcrumbsComponent,\n BackButtonComponent,\n WalletModalsModule,\n GetAssetInfoPipe,\n GetAmountItemsPipe,\n TransactionStatusComponent,\n IsVisibleFeePipe,\n TransactionDetailsComponent,\n VisibilityBalanceDirective,\n MatAutocompleteModule,\n LoaderComponent,\n MatInputModule,\n MatIconModule,\n MatDialogModule,\n ],\n})\nexport class WalletModule {}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { FormControl, NonNullableFormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ZanoValidators } from '@parts/utils/zano-validators';\nimport { BackendService } from '@api/services/backend.service';\nimport { AssetBalance, ParamsAddCustomAssetId } from '@api/models/assets.model';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { wrongAssetId } from '@parts/utils/zano-errors';\nimport { CommonModule } from '@angular/common';\nimport { FlexModule } from '@angular/flex-layout';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LoaderComponent } from '@parts/components/loader.component';\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-add-custom-token',\n standalone: true,\n templateUrl: './add-custom-token.component.html',\n styleUrls: ['./add-custom-token.component.scss'],\n imports: [CommonModule, FlexModule, TranslateModule, ReactiveFormsModule, LoaderComponent, MatDialogModule],\n})\nexport class AddCustomTokenComponent {\n loading: boolean = false;\n\n private fb: NonNullableFormBuilder = inject(NonNullableFormBuilder);\n\n formGroup = this.fb.group<{ asset_id: FormControl }>({\n asset_id: this.fb.control('', Validators.compose([Validators.required, ZanoValidators.hash, Validators.maxLength(64)])),\n });\n\n public variablesService: VariablesService = inject(VariablesService);\n\n public backendService: BackendService = inject(BackendService);\n\n private walletsService: WalletsService = inject(WalletsService);\n\n private ngZone: NgZone = inject(NgZone);\n\n private matDialogRef: MatDialogRef = inject(MatDialogRef);\n\n beforeSubmit(): void {\n if (this.formGroup.invalid) {\n this.formGroup.markAsTouched();\n this.formGroup.updateValueAndValidity();\n return;\n }\n\n this.submit();\n }\n\n submit(): void {\n this.loading = true;\n const { asset_id } = this.formGroup.getRawValue();\n const { wallet_id } = this.variablesService.currentWallet;\n const params: ParamsAddCustomAssetId = {\n asset_id,\n wallet_id,\n };\n this.backendService.addCustomAssetId(params, (status, { asset_descriptor }) => {\n this.ngZone.run(() => {\n if (status) {\n const asset: AssetBalance = {\n asset_info: {\n ...asset_descriptor,\n asset_id,\n },\n awaiting_in: 0,\n awaiting_out: 0,\n total: 0,\n unlocked: 0,\n };\n this.walletsService.updateWalletInfo(wallet_id);\n this.matDialogRef.close(asset);\n } else {\n this.formGroup.controls.asset_id.setErrors({\n wrongAssetId,\n });\n this.loading = false;\n }\n });\n });\n }\n}\n","
\n

\n {{ 'WALLET.MODAL_WHITELIST_ASSET.TITLE' | translate }}\n

\n\n \n
\n \n \n \n
\n {{ 'WALLET.MODAL_WHITELIST_ASSET.FORM_ERRORS.ERROR1' | translate }}\n
\n
\n {{ formGroup.get('asset_id').errors['wrongAssetId'].errorText | translate }}\n
\n
\n
\n
\n\n \n
\n \n \n
\n
\n
\n","import { Component, inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-export-history-modal',\n templateUrl: './export-history-modal.component.html',\n styleUrls: ['./export-history-modal.component.scss'],\n})\nexport class ExportHistoryModalComponent {\n posFilterIsOn: boolean = true;\n\n exportData = {\n wallet_id: 0,\n include_pos_transactions: false,\n path: 'C:\\\\some_file.txt',\n format: 'json',\n };\n\n exportFormats = [\n {\n format: 'json',\n formatName: 'JSON',\n },\n {\n format: 'text',\n formatName: 'Text',\n },\n {\n format: 'csv',\n formatName: 'CSV',\n },\n ];\n\n currentFormat: string = this.exportFormats[0].format;\n\n private backend: BackendService = inject(BackendService);\n\n public variablesService: VariablesService = inject(VariablesService);\n\n private translate: TranslateService = inject(TranslateService);\n\n private matDialogRef: MatDialogRef = inject(MatDialogRef);\n\n confirmExport(): void {\n this.exportData.format = `${this.currentFormat}`;\n this.exportData.wallet_id = this.variablesService.currentWallet.wallet_id;\n this.exportData.include_pos_transactions = this.posFilterIsOn;\n\n this.backend.saveFileDialog(\n this.translate.instant('EXPORT_HISTORY.SAVED_FILE'),\n `${this.exportData.format}`,\n this.variablesService.settings.default_path,\n (file_status, file_data) => {\n if (this.exportData.format === 'text') {\n this.exportData.path = file_data.path + '.txt';\n } else {\n this.exportData.path = file_data.path + `.${this.exportData.format}`;\n }\n if (file_status) {\n this.backend.exportWalletHistory(JSON.stringify(this.exportData));\n this.matDialogRef.close();\n }\n }\n );\n }\n}\n","
\n

\n {{ 'EXPORT_HISTORY.TITLE' | translate }}\n

\n\n \n
\n \n \n \n {{ item.formatName }}\n \n \n {{ item.formatName }}\n \n \n
\n\n
\n {{ 'EXPORT_HISTORY.FILTER' | translate }}\n \n
\n
\n\n \n
\n \n \n
\n
\n
\n\n","import { NgModule } from '@angular/core';\nimport { ExportHistoryModalComponent } from './export-history-modal.component';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexModule } from '@angular/flex-layout';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { FormsModule } from '@angular/forms';\nimport { CheckboxComponent } from '@parts/components/checkbox.component';\nimport { SwitchComponent } from '@parts/components/switch.component';\nimport { MatDialogModule } from '@angular/material/dialog';\n\n@NgModule({\n declarations: [ExportHistoryModalComponent],\n exports: [ExportHistoryModalComponent],\n imports: [CommonModule, TranslateModule, FlexModule, SwitchComponent, CheckboxComponent, NgSelectModule, FormsModule, MatDialogModule],\n})\nexport class ExportHistoryModalModule {}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { GetBareOutsStats, SweepBareOuts } from '@api/models/rpc.models';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { ModalService } from '@parts/services/modal.service';\nimport { SuccessSweepBareOutsComponent } from '../success-sweep-bare-outs/success-sweep-bare-outs.component';\nimport { ZARCANUM_MIGRATION } from '@parts/data/constants';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-migrate-wallet-to-zarcanum',\n templateUrl: './migrate-wallet-to-zarcanum.component.html',\n styleUrls: ['./migrate-wallet-to-zarcanum.component.scss'],\n})\nexport class MigrateWalletToZarcanumComponent {\n readonly data: GetBareOutsStats = inject(MAT_DIALOG_DATA);\n\n private readonly _matDialog: MatDialog = inject(MatDialog);\n\n private readonly _matDialogRef: MatDialogRef = inject(MatDialogRef);\n\n private readonly _backendService: BackendService = inject(BackendService);\n\n private readonly _variableService: VariablesService = inject(VariablesService);\n\n private readonly _modalService: ModalService = inject(ModalService);\n\n private readonly _ngZone: NgZone = inject(NgZone);\n\n migrate(): void {\n const {\n currentWallet: { wallet_id },\n } = this._variableService;\n\n const params: ParamsCallRpc = { id: 0, jsonrpc: '2.0', method: 'sweep_bare_outs', params: {} };\n this._backendService.call_wallet_rpc([wallet_id, params], (status, response_data) => {\n this._ngZone.run(() => {\n if (response_data?.result) {\n const data = response_data.result;\n\n const config: MatDialogConfig = {\n data,\n };\n\n this._matDialog.open(SuccessSweepBareOutsComponent, config);\n } else {\n const message = response_data.error;\n this._modalService.prepareModal('error', message);\n }\n\n this._matDialogRef.close();\n });\n });\n }\n\n openZarcanumMigration(): void {\n this._backendService.openUrlInBrowser(ZARCANUM_MIGRATION);\n }\n}\n","

\n {{ 'MIGRATE_WALLET_TO_ZARCANUM.TITLE' | translate }}\n

\n\n\n
\n

\n {{\n 'MIGRATE_WALLET_TO_ZARCANUM.TEXT1'\n | translate\n : {\n total_bare_outs: data.total_bare_outs,\n total_amount: data.total_amount | intToMoney\n }\n }}\n

\n

\n \n {{ 'MIGRATE_WALLET_TO_ZARCANUM.LINK1' | translate }}\n

\n
\n

\n {{\n 'MIGRATE_WALLET_TO_ZARCANUM.TEXT2'\n | translate\n : {\n txs_count: data.txs_count,\n expected_total_fee: data.expected_total_fee | intToMoney\n }\n }}\n

\n
\n
\n\n\n
\n \n
\n
\n","import { Component, inject } from '@angular/core';\nimport { SweepBareOuts } from '@api/models/rpc.models';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-success-sweep-bare-outs',\n templateUrl: './success-sweep-bare-outs.component.html',\n styleUrls: ['./success-sweep-bare-outs.component.scss'],\n})\nexport class SuccessSweepBareOutsComponent {\n readonly data: SweepBareOuts = inject(MAT_DIALOG_DATA);\n\n stateDetails: boolean = false;\n\n toggleDetails(): void {\n this.stateDetails = !this.stateDetails;\n }\n}\n","

\n {{ 'SEND_DETAILS_MODAL.TITLE1' | translate }}\n

\n\n\n
\n
\n \"success\"\n
\n\n

\n {{ 'TOR_LIB_STATE.STATE_SENT_SUCCESS' | translate }}\n

\n
\n\n
\n \n

\n {{ 'SEND_DETAILS_MODAL.TITLE2' | translate }}\n

\n \n
\n \n
    \n
  • \n

    \n {{\n 'SUCCESS_SWEEP_BARE_OUTS.DETAILS'\n | translate\n : {\n txs_sent: data.txs_sent,\n bare_outs_swept: data.bare_outs_swept,\n amount_swept: data.amount_swept | intToMoney,\n fee_spent: data.fee_spent | intToMoney\n }\n }}\n

    \n
  • \n
\n \n \n
\n\n\n
\n \n
\n
\n","import { Component, HostListener, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BackendService, Commands } from '@api/services/backend.service';\nimport { Observable, Subject, take } from 'rxjs';\nimport { StateKeys, Store, Sync } from '@store/store';\nimport { distinctUntilChanged, filter, map, takeUntil } from 'rxjs/operators';\nimport { hasOwnProperty } from '@parts/functions/has-own-property';\nimport { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\nimport { ExportHistoryModalComponent } from './modals/export-history-modal/export-history-modal.component';\nimport { AddCustomTokenComponent } from './modals/add-custom-token/add-custom-token.component';\nimport { AssetBalance } from '@api/models/assets.model';\nimport { AssetDetailsComponent } from '@parts/modals/asset-details/asset-details.component';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, RouterEvent } from '@angular/router';\nimport { ZARCANUM_MIGRATION } from '@parts/data/constants';\nimport { MigrateWalletToZarcanumComponent } from './modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component';\nimport { ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { ModalService } from '@parts/services/modal.service';\nimport { GetBareOutsStats } from '@api/models/rpc.models';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\ninterface Tab {\n id: string;\n title: string;\n icon: string;\n link: string;\n disabled: boolean;\n hidden: boolean;\n indicator?: boolean;\n}\n\ntype TabNameKeys = 'assets' | 'history' | 'send' | 'receive' | 'swap' | 'staking' | 'custom-assets';\n\nconst objTabs: { [key in TabNameKeys]: Tab } = {\n assets: {\n id: 'assets',\n title: 'WALLET.TABS.ASSETS',\n icon: 'zano-balance',\n link: '/assets',\n disabled: false,\n hidden: false,\n },\n history: {\n id: 'history',\n title: 'WALLET.TABS.HISTORY',\n icon: 'zano-history',\n link: '/history',\n disabled: false,\n hidden: false,\n },\n send: {\n id: 'send',\n title: 'WALLET.TABS.SEND',\n icon: 'zano-send',\n link: '/send',\n disabled: false,\n hidden: false,\n },\n receive: {\n id: 'receive',\n title: 'WALLET.TABS.RECEIVE',\n icon: 'zano-receive',\n link: '/receive',\n disabled: false,\n hidden: false,\n },\n swap: {\n id: 'swap',\n title: 'Swap',\n icon: 'zano-swap',\n link: '/swap',\n disabled: false,\n hidden: true,\n },\n // TODO: https://github.com/hyle-team/zano/issues/374\n // contract: {\n // title: 'WALLET.TABS.CONTRACTS',\n // icon: 'document',\n // link: '/contracts',\n // disabled: false,\n // hidden: false\n // },\n staking: {\n id: 'staking',\n title: 'WALLET.TABS.STAKING',\n icon: 'zano-staking',\n link: '/staking',\n indicator: false,\n disabled: false,\n hidden: false,\n },\n 'custom-assets': {\n id: 'custom-assets',\n title: 'WALLET.TABS.CONTROL_ASSETS',\n icon: 'zano-custom-asset',\n link: '/custom-assets',\n indicator: false,\n disabled: false,\n hidden: false,\n },\n};\n\n@Component({\n selector: 'app-wallet',\n template: `\n
\n
\n
\n
\n

\n {{ variablesService.currentWallet.address | zanoShortString }}\n

\n\n \n \n\n \n \n \n \n\n \n
\n {{ variablesService.currentWallet.alias.name }}\n
\n\n \n \n \n \n \n\n \n \n \n \n \n \n
\n
\n
\n \n \n
\n
\n \n\n
\n

{{ 'WALLET.MIGRATE.TEXT1' | translate }}

\n \n \n {{ 'WALLET.MIGRATE.BUTTON1' | translate }}\n

\n
\n
\n
\n
\n
\n
\n \n \n \n
\n \n \n \n
\n
\n \n\n \n
\n
    \n
  • \n \n \n {{ 'WALLET_DETAILS.WALLET_OPTIONS' | translate }}\n \n
  • \n \n
  • \n \n \n {{ 'WALLET_DETAILS.WHITELIST_ASSET' | translate }}\n \n
  • \n
    \n
  • \n \n \n {{ 'EXPORT_HISTORY.EXPORT_BUTTON' | translate }}\n \n
  • \n \n
  • \n \n \n {{ 'WALLET_DETAILS.RESYNC_WALLET_BUTTON' | translate }}\n \n
  • \n
    \n
  • \n \n \n {{ 'WALLET_DETAILS.BUTTON_REMOVE' | translate }}\n \n
  • \n
\n
\n \n\n
\n
\n \n \n \n \n {{ tab.title | translate }}\n {{ variablesService.currentWallet.new_contracts }}\n \n \n \n
\n
\n \n\n
\n
\n

\n {{ 'Loading...' | translate }}\n

\n
\n
\n
\n
\n
\n `,\n})\nexport class WalletComponent implements OnInit, OnDestroy {\n settingsButtonInterval;\n\n private breakpointObserver: BreakpointObserver = inject(BreakpointObserver);\n\n isViewTabName$: Observable = this.breakpointObserver.observe(['(min-width: 1400px)']).pipe(map(({ matches }) => matches));\n\n settingsButtonDisabled = true;\n\n walletLoaded = false;\n\n openDropdown: boolean;\n\n walletSyncVisible = false;\n\n tabs: Tab[] = [];\n\n private destroy$ = new Subject();\n\n loader = true;\n\n private readonly _matDialog: MatDialog = inject(MatDialog);\n\n constructor(\n private backend: BackendService,\n public variablesService: VariablesService,\n private ngZone: NgZone,\n private store: Store,\n private dialog: Dialog,\n private modalService: ModalService,\n private walletsService: WalletsService,\n private router: Router\n ) {\n\n if (!this.variablesService.currentWallet && this.variablesService.wallets.length > 0) {\n this.variablesService.setCurrentWallet(0);\n }\n this.walletLoaded = this.variablesService.currentWallet.loaded;\n\n this.variablesService.currentWalletChangedEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: (wallet: Wallet) => {\n this.createTabs(wallet);\n const disabled = !wallet.loaded;\n this.setDisabledTabs(['send', 'swap', 'staking', 'custom-assets'], disabled);\n\n this.variablesService.is_hardfok_active$.pipe(take(1)).subscribe({\n next: value => {\n const hidden = !value;\n this.setHiddenTabs(['swap'], hidden);\n },\n });\n },\n });\n\n this.variablesService.is_hardfok_active$.pipe(takeUntil(this.destroy$)).subscribe({\n next: value => {\n const hidden = !value;\n this.setHiddenTabs(['swap'], hidden);\n },\n });\n\n this.router.events.pipe(takeUntil(this.destroy$)).subscribe((e: RouterEvent) => {\n this.navigationInterceptor(e);\n });\n }\n\n navigationInterceptor(event: RouterEvent): void {\n if (event instanceof NavigationStart) {\n this.loader = true;\n }\n if (event instanceof NavigationEnd) {\n setTimeout(() => {\n this.loader = false;\n }, 500);\n }\n if (event instanceof NavigationCancel) {\n setTimeout(() => {\n this.loader = false;\n }, 500);\n }\n if (event instanceof NavigationError) {\n setTimeout(() => {\n this.loader = false;\n }, 500);\n }\n }\n\n createTabs({ is_auditable, is_watch_only }: Wallet): void {\n const conditionForHiding: boolean = !is_auditable || !is_watch_only;\n const tabs: Array = [];\n\n tabs.push(objTabs.assets);\n tabs.push(objTabs.history);\n\n if (conditionForHiding) {\n tabs.push(objTabs.send);\n }\n\n tabs.push(objTabs.receive);\n\n if (conditionForHiding) {\n tabs.push(objTabs.swap);\n }\n\n tabs.push(objTabs.staking);\n\n if (conditionForHiding) {\n tabs.push(objTabs['custom-assets']);\n }\n\n this.tabs = tabs;\n }\n\n @HostListener('document:keydown.shift', ['$event.key'])\n onKeyPressed(): void {\n if (!this.openDropdown) {\n this.walletSyncVisible = true;\n }\n }\n\n @HostListener('document:keyup.shift', ['$event.key'])\n onKeyUpPressed(): void {\n if (!this.openDropdown) {\n this.walletSyncVisible = false;\n }\n }\n\n ngOnInit(): void {\n this.settingsButtonInterval = setInterval(() => {\n // tslint:disable-next-line:triple-equals\n if (this.variablesService.daemon_state == 2 || this.walletLoaded) {\n this.settingsButtonDisabled = false;\n clearInterval(this.settingsButtonInterval);\n }\n }, 1000);\n this.store\n .select(StateKeys.sync)\n .pipe(filter(Boolean), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe({\n next: (value: any) => {\n const data = value.filter((item: Sync) => item.wallet_id === this.variablesService.currentWallet.wallet_id)[0];\n if (data && !data.sync) {\n let in_progress;\n const values = this.store.state.sync;\n if (values && values.length > 0) {\n in_progress = values.filter(item => item.sync);\n this.variablesService.sync_started = !!(in_progress && in_progress.length);\n if (!in_progress) {\n this.variablesService.sync_started = false;\n this.variablesService.sync_wallets[data.wallet_id] = false;\n }\n } else {\n this.variablesService.sync_started = false;\n this.variablesService.sync_wallets[data.wallet_id] = false;\n }\n }\n },\n });\n if (hasOwnProperty(this.variablesService.currentWallet.alias, 'name')) {\n this.variablesService.currentWallet.wakeAlias = false;\n }\n this.variablesService.getAliasChangedEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n if (hasOwnProperty(this.variablesService.currentWallet.alias, 'name')) {\n this.variablesService.currentWallet.wakeAlias = false;\n }\n },\n });\n this.updateWalletStatus();\n }\n\n toggleMenuDropdown(): void {\n if (!this.openDropdown) {\n this.openDropdown = true;\n } else {\n this.openDropdown = false;\n this.walletSyncVisible = false;\n }\n }\n\n resyncCurrentWallet(wallet_id: number): void {\n this.backend.resyncWallet(wallet_id);\n }\n\n close(wallet_id: number): void {\n const config: MatDialogConfig = {\n data: {\n title: 'WALLET.CONFIRM.MESSAGE',\n message: 'WALLET.CONFIRM.TITLE',\n },\n };\n\n this._matDialog\n .open(ConfirmModalComponent, config)\n .afterClosed().pipe(filter(Boolean), takeUntil(this.destroy$))\n .subscribe({\n next: () => {\n this.walletsService.closeWallet(wallet_id);\n },\n });\n }\n\n addCustomToken(): void {\n this._matDialog\n .open(AddCustomTokenComponent)\n .afterClosed().pipe(\n filter(response_data => Boolean(response_data)),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: asset => {\n const config: MatDialogConfig = {\n data: {\n assetInfo: asset.asset_info,\n title: 'You added new asset',\n },\n };\n this.ngZone.run(() => {\n this._matDialog.open(AssetDetailsComponent, config);\n });\n },\n });\n }\n\n exportHistory(): void {\n this._matDialog.open(ExportHistoryModalComponent);\n }\n\n openZarcanumMigration(): void {\n this.backend.openUrlInBrowser(ZARCANUM_MIGRATION);\n }\n\n openMigrateWalletToZarcanum(): void {\n const {\n currentWallet: { wallet_id },\n } = this.variablesService;\n const params: ParamsCallRpc = {\n id: 0,\n jsonrpc: '2.0',\n method: 'get_bare_outs_stats',\n params: {},\n };\n this.backend.call_wallet_rpc([wallet_id, params], (status, response_data) => {\n this.ngZone.run(() => {\n if (response_data?.result) {\n const data = response_data.result;\n\n const config: MatDialogConfig = {\n data,\n disableClose: false\n };\n this._matDialog.open(MigrateWalletToZarcanumComponent, config);\n } else {\n const message = response_data.error;\n this.modalService.prepareModal('error', message);\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n updateWalletStatus(): void {\n this.backend.eventSubscribe(Commands.wallet_sync_progress, data => {\n const wallet_id = data.wallet_id;\n if (wallet_id === this.variablesService.currentWallet.wallet_id) {\n this.ngZone.run(() => {\n this.walletLoaded = false;\n });\n }\n });\n this.backend.eventSubscribe(Commands.update_wallet_status, data => {\n const wallet_state = data.wallet_state;\n const wallet_id = data.wallet_id;\n this.ngZone.run(() => {\n if (wallet_id !== this.variablesService.currentWallet.wallet_id) {\n return;\n }\n\n if (wallet_state === 2) {\n this.walletLoaded = true;\n this.setDisabledTabs(['send', 'swap', 'staking', 'custom-assets'], false);\n } else {\n this.walletLoaded = false;\n this.setDisabledTabs(['send', 'swap', 'staking', 'custom-assets'], true);\n }\n });\n });\n }\n\n setHiddenTabs(ids: string[], hidden: boolean): void {\n this.tabs.forEach(tab => {\n if (ids.includes(tab.id)) {\n tab.hidden = hidden;\n }\n });\n }\n\n setDisabledTabs(ids: string[], disabled: boolean): void {\n this.tabs.forEach(tab => {\n if (ids.includes(tab.id)) {\n tab.disabled = disabled;\n }\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BackButtonModule } from '@parts/directives/back-button/back-button.module';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-back-button',\n standalone: true,\n imports: [CommonModule, BackButtonModule, MatIconModule],\n templateUrl: './back-button.component.html',\n styleUrls: ['./back-button.component.scss'],\n})\nexport class BackButtonComponent {}\n","\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-breadcrumbs',\n standalone: true,\n imports: [CommonModule, RouterLinkWithHref, TranslateModule, RouterLink],\n templateUrl: './breadcrumbs.component.html',\n styleUrls: ['./breadcrumbs.component.scss'],\n})\nexport class BreadcrumbsComponent {\n @Input() items: BreadcrumbItems = [];\n}\n","
\n
\n \n {{ item.title | translate }}\n \n\n \n {{ item.title | translate }}\n \n
\n
\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-checkbox',\n template: `\n
\n \n \n
\n `,\n styles: [\n `\n :host {\n display: inline-flex;\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [CommonModule],\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() value = false;\n\n @Input() label = '';\n\n @Input() id = 'id-' + Math.random();\n\n @Input() disabled = false;\n\n @Input() readonly = false;\n\n @Output() emitChange = new EventEmitter();\n\n onChange!: (value: boolean) => void;\n\n onTouched!: () => void;\n\n handlerChange({ target }: Event): void {\n const { checked } = target as HTMLInputElement;\n this.value = checked;\n this.emitChange.emit(checked);\n if (this.onChange) {\n this.onChange(checked);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '../services/variables.service';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-copy-button',\n template: `\n \n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, MatIconModule],\n})\nexport class CopyButtonComponent {\n @Input() value: string;\n\n @Input() size: 'small' | 'big' = 'small';\n\n copyAnimation = false;\n\n copyAnimationTimeout;\n\n constructor(private backend: BackendService, public variablesService: VariablesService) {}\n\n copy(): void {\n this.backend.setClipboard(this.value || '');\n this.copyAnimation = true;\n this.copyAnimationTimeout = window.setTimeout(() => {\n this.copyAnimation = false;\n clearTimeout(this.copyAnimationTimeout);\n }, 2000);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { NgSwitch, NgSwitchCase, NgSwitchDefault } from '@angular/common';\n\ntype LoaderType = 'circle' | 'circle-2' | 'circle-3' | 'dots' | 'dots-2' | 'pulse';\n\n@Component({\n selector: 'zano-loader',\n standalone: true,\n template: `\n \n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n
\n `,\n styles: [\n `\n /* Loader 1 */\n .loader-1 {\n height: 32px;\n width: 32px;\n -webkit-animation: loader-1-1 4.8s linear infinite;\n animation: loader-1-1 4.8s linear infinite;\n }\n\n @-webkit-keyframes loader-1-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-1-1 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-1 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n clip: rect(0, 32px, 32px, 16px);\n -webkit-animation: loader-1-2 1.2s linear infinite;\n animation: loader-1-2 1.2s linear infinite;\n }\n\n @-webkit-keyframes loader-1-2 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(220deg);\n }\n }\n\n @keyframes loader-1-2 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(220deg);\n }\n }\n\n .loader-1 span::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n clip: rect(0, 32px, 32px, 16px);\n border: 3px solid currentColor;\n border-radius: 50%;\n -webkit-animation: loader-1-3 1.2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-1-3 1.2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-1-3 {\n 0% {\n -webkit-transform: rotate(-140deg);\n }\n 50% {\n -webkit-transform: rotate(-160deg);\n }\n 100% {\n -webkit-transform: rotate(140deg);\n }\n }\n\n @keyframes loader-1-3 {\n 0% {\n transform: rotate(-140deg);\n }\n 50% {\n transform: rotate(-160deg);\n }\n 100% {\n transform: rotate(140deg);\n }\n }\n\n /* Loader 2 */\n .loader-2 {\n display: block;\n height: 32px;\n width: 32px;\n -webkit-animation: loader-2-1 3s linear infinite;\n animation: loader-2-1 3s linear infinite;\n }\n\n @-webkit-keyframes loader-2-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-2-1 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-2 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n clip: rect(16px, 32px, 32px, 0);\n -webkit-animation: loader-2-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-2-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-2-2 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-2-2 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-2 span::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 3px solid transparent;\n border-top: 3px solid currentColor;\n border-radius: 50%;\n -webkit-animation: loader-2-3 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-2-3 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-2-3 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-2-3 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-2 span::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 3px solid rgba(255, 255, 255, 0.5);\n border-radius: 50%;\n }\n\n /* Loader 3 */\n .loader-3 {\n display: block;\n height: 32px;\n width: 32px;\n }\n\n .loader-3 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n }\n\n .loader-3 span::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 3px solid currentColor;\n border-bottom: 3px solid transparent;\n border-radius: 50%;\n -webkit-animation: loader-3-1 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-3-1 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-3-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 40% {\n -webkit-transform: rotate(180deg);\n }\n 60% {\n -webkit-transform: rotate(180deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-3-1 {\n 0% {\n transform: rotate(0deg);\n }\n 40% {\n transform: rotate(180deg);\n }\n 60% {\n transform: rotate(180deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-3 span::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 6px;\n height: 6px;\n background: currentColor;\n border-radius: 50%;\n -webkit-animation: loader-3-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-3-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-3-2 {\n 0% {\n -webkit-transform: translate3d(0, -32px, 0) scale(0, 2);\n opacity: 0;\n }\n 50% {\n -webkit-transform: translate3d(0, 0, 0) scale(1.25, 1.25);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translate3d(0, 8px, 0) scale(0, 0);\n opacity: 0;\n }\n }\n\n @keyframes loader-3-2 {\n 0% {\n transform: translate3d(0, -32px, 0) scale(0, 2);\n opacity: 0;\n }\n 50% {\n transform: translate3d(0, 0, 0) scale(1.25, 1.25);\n opacity: 1;\n }\n 100% {\n transform: translate3d(0, 8px, 0) scale(0, 0);\n opacity: 0;\n }\n }\n\n /* Loader 4 */\n .loader-4 {\n height: 32px;\n width: 32px;\n }\n\n .loader-4::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 12px;\n height: 12px;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n background: currentColor;\n border-radius: 50%;\n -webkit-animation: loader-4-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-1 {\n 0% {\n -webkit-transform: scale(0);\n opacity: 0;\n }\n 50% {\n -webkit-transform: scale(1);\n opacity: 1;\n }\n 100% {\n -webkit-transform: scale(0);\n opacity: 0;\n }\n }\n\n @keyframes loader-4-1 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1);\n opacity: 1;\n }\n 100% {\n transform: scale(0);\n opacity: 0;\n }\n }\n\n .loader-4 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n -webkit-animation: loader-4-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-2 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 50% {\n -webkit-transform: rotate(180deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-4-2 {\n 0% {\n transform: rotate(0deg);\n }\n 50% {\n transform: rotate(180deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-4 span::before,\n .loader-4 span::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 12px;\n width: 12px;\n background: currentColor;\n border-radius: 50%;\n -webkit-animation: loader-4-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-3 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(-16px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-4-3 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(-16px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-4 span::after {\n -webkit-animation: loader-4-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-4 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(16px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-4-4 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(16px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n /* Loader 5 */\n .loader-5 {\n height: 32px;\n width: 32px;\n -webkit-animation: loader-5-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-5-1 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-5::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: auto;\n margin: auto;\n width: 8px;\n height: 8px;\n background: currentColor;\n border-radius: 50%;\n -webkit-animation: loader-5-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-2 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(24px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-2 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(24px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-5::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: auto;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 8px;\n height: 8px;\n background: currentColor;\n border-radius: 50%;\n -webkit-animation: loader-5-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-3 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(-24px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-3 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(-24px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-5 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n }\n\n .loader-5 span::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: auto;\n right: 0;\n margin: auto;\n width: 8px;\n height: 8px;\n background: currentColor;\n border-radius: 50%;\n -webkit-animation: loader-5-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-4 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(0, 24px, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-4 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(0, 24px, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-5 span::after {\n content: '';\n display: block;\n position: absolute;\n top: auto;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 8px;\n height: 8px;\n background: currentColor;\n border-radius: 50%;\n -webkit-animation: loader-5-5 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-5 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-5 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(0, -24px, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-5 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(0, -24px, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n /* Loader 6 */\n .loader-6 {\n height: 32px;\n width: 32px;\n }\n\n .loader-6 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n }\n\n .loader-6 span::before,\n .loader-6 span::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 2px solid currentColor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: loader-6-1 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) infinite;\n animation: loader-6-1 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) infinite;\n }\n\n @-webkit-keyframes loader-6-1 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1.5);\n opacity: 0;\n }\n }\n\n @keyframes loader-6-1 {\n 0% {\n transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1.5);\n opacity: 0;\n }\n }\n\n .loader-6 span::after {\n -webkit-animation: loader-6-2 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) 0.25s infinite;\n animation: loader-6-2 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) 0.25s infinite;\n }\n\n @-webkit-keyframes loader-6-2 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n opacity: 0;\n }\n }\n\n @keyframes loader-6-2 {\n 0% {\n transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n opacity: 0;\n }\n }\n `,\n ],\n imports: [NgSwitch, NgSwitchCase, NgSwitchDefault],\n})\nexport class LoaderComponent {\n @Input()\n type: LoaderType = 'circle';\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ContextMenuComponent, ContextMenuModule, ContextMenuService } from '@perfectmemory/ngx-contextmenu';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-register-context-templates',\n template: ` \n {{ 'CONTEXT_MENU.COPY' | translate }}\n {{ 'CONTEXT_MENU.PASTE' | translate }}\n {{ 'CONTEXT_MENU.SELECT' | translate }}\n \n \n {{ 'CONTEXT_MENU.COPY' | translate }}\n \n\n \n {{ 'CONTEXT_MENU.PASTE' | translate }}\n {{ 'CONTEXT_MENU.SELECT' | translate }}\n `,\n standalone: true,\n imports: [CommonModule, ContextMenuModule, TranslateModule],\n providers: [ContextMenuService],\n})\nexport class RegisterContextTemplatesComponent implements OnInit {\n @ViewChild('allContextMenu', { static: true })\n public allContextMenu: ContextMenuComponent;\n\n @ViewChild('onlyCopyContextMenu', { static: true })\n public onlyCopyContextMenu: ContextMenuComponent;\n\n @ViewChild('pasteSelectContextMenu', { static: true })\n public pasteSelectContextMenu: ContextMenuComponent;\n\n constructor(public variablesService: VariablesService, private backendService: BackendService) {}\n\n ngOnInit(): void {\n this.variablesService.allContextMenu = this.allContextMenu;\n this.variablesService.onlyCopyContextMenu = this.onlyCopyContextMenu;\n this.variablesService.pasteSelectContextMenu = this.pasteSelectContextMenu;\n }\n\n contextMenuCopy(target): void {\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\n const start = target['contextSelectionStart'] ? 'contextSelectionStart' : 'selectionStart';\n const end = target['contextSelectionEnd'] ? 'contextSelectionEnd' : 'selectionEnd';\n const canUseSelection = target[start] || target[start] === '0';\n const SelectedText = canUseSelection ? target['value'].substring(target[start], target[end]) : target['value'];\n this.backendService.setClipboard(String(SelectedText));\n }\n }\n\n contextMenuOnlyCopy(text): void {\n if (text) {\n this.backendService.setClipboard(String(text));\n }\n }\n\n contextMenuPaste(target): void {\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\n this.backendService.getClipboard((status, clipboard) => {\n clipboard = String(clipboard);\n if (typeof clipboard !== 'string' || clipboard.length) {\n const start = target['contextSelectionStart'] ? 'contextSelectionStart' : 'selectionStart';\n const end = target['contextSelectionEnd'] ? 'contextSelectionEnd' : 'selectionEnd';\n const _pre = target['value'].substring(0, target[start]);\n const _aft = target['value'].substring(target[end], target['value'].length);\n let text = _pre + clipboard + _aft;\n const cursorPosition = (_pre + clipboard).length;\n if (target['maxLength'] && parseInt(target['maxLength'], 10) > 0) {\n text = text.substr(0, parseInt(target['maxLength'], 10));\n }\n target['value'] = text;\n target.setSelectionRange(cursorPosition, cursorPosition);\n target.dispatchEvent(new Event('input'));\n target['focus']();\n }\n });\n }\n }\n\n contextMenuSelect(target): void {\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\n target['focus']();\n setTimeout(() => {\n target['select']();\n });\n }\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '../services/variables.service';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-staking-switch',\n template: `\n
\n \n
\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule],\n})\nexport class StakingSwitchComponent {\n @Input() wallet_id: number;\n\n @Input() staking: boolean;\n\n @Output() stakingChange = new EventEmitter();\n\n constructor(private backendService: BackendService, private variablesService: VariablesService) {}\n\n toggleStaking(): void {\n const wallet = this.variablesService.getWallet(this.wallet_id);\n if (wallet && wallet.loaded) {\n this.stakingChange.emit(!this.staking);\n if (!this.staking) {\n this.backendService.startPosMining(this.wallet_id);\n } else {\n this.backendService.stopPosMining(this.wallet_id);\n }\n }\n }\n}\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-switch',\n template: `\n \n \n \n `,\n styles: [\n `\n :host {\n display: inline-flex;\n }\n `,\n ],\n standalone: true,\n imports: [CommonModule],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n },\n ],\n})\nexport class SwitchComponent implements ControlValueAccessor {\n @Input() value = false;\n\n @Input() disabled = false;\n\n @Output() emitChange = new EventEmitter();\n\n onTouched!: () => void;\n\n onChange!: (value: boolean) => void;\n\n toggle(): void {\n if (!this.disabled) {\n this.value = !this.value;\n this.emitChange.emit(this.value);\n if (this.onChange) {\n this.onChange(this.value);\n }\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n }\n}\n","import { Component } from '@angular/core';\nimport { VariablesService } from '../services/variables.service';\nimport { DOWNLOADS_PAGE_URL } from '@parts/data/constants';\nimport { BackendService } from '@api/services/backend.service';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from '@parts/directives';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-synchronization-status',\n template: `\n \n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.OFFLINE' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.SYNCING' | translate }}\n {{ variablesService.sync.progress_value_text }}%\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.ONLINE' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.DOWNLOADING' | translate }}\n {{ variablesService.download.progress_value_text }}%\n
\n\n \n
\n
\n
\n
\n
\n
\n\n
\n
\n\n

\n \n {{ variablesService.sync.blocks.current }}\n \n /{{ variablesService.sync.blocks.max }} Blocks\n

\n
\n\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n \n \n
\n {{ 'SIDEBAR.UPDATE.STANDARD' | translate }}\n
\n \n
\n\n \n
\n {{ 'SIDEBAR.UPDATE.IMPORTANT' | translate }}\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\n
\n \n
\n\n \n
\n {{ 'SIDEBAR.UPDATE.CRITICAL' | translate }}\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\n
\n \n
\n \n\n
\n
\n {{ 'SIDEBAR.UPDATE.TIME' | translate }}\n
\n \n
\n \n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, TranslateModule, TooltipModule, MatIconModule],\n})\nexport class SynchronizationStatusComponent {\n constructor(public variablesService: VariablesService, private backend: BackendService) {}\n\n getUpdate(): void {\n this.backend.openUrlInBrowser(DOWNLOADS_PAGE_URL);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Transaction } from '@api/models/transaction.model';\nimport { VariablesService } from '../services/variables.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { BLOCK_EXPLORER_TN_TX_URL_PREFIX, BLOCK_EXPLORER_TX_URL_PREFIX } from '../data/constants';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from '@parts/directives';\n\n@Component({\n selector: 'app-transaction-details',\n template: `\n \n \n \n \n \n {{ transaction.tx_hash }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ transaction.payment_id }}\n \n \n \n \n \n {{ transaction.comment }}\n \n \n \n
{{ 'HISTORY.DETAILS.ID' | translate }}{{ 'HISTORY.DETAILS.SIZE' | translate }}\n {{ 'HISTORY.DETAILS.SIZE_VALUE' | translate : { value: transaction.tx_blob_size } }}\n
{{ 'Asset ID' | translate }}\n \n

\n {{ asset_id }}\n

\n
\n
{{ 'HISTORY.DETAILS.CONFIRMATION' | translate }}\n {{ transaction.height === 0 ? 0 : variablesService.height_app - transaction.height }}\n
{{ 'HISTORY.DETAILS.HEIGHT' | translate }}{{ transaction.height }}
{{ 'HISTORY.DETAILS.PAYMENT_ID' | translate }}
{{ 'HISTORY.DETAILS.COMMENT' | translate }}
\n `,\n styles: [\n `\n :host {\n display: block;\n padding: 2rem 0;\n }\n table tbody tr {\n background: none;\n }\n\n table tbody tr td {\n padding: 1rem 2rem;\n }\n `,\n ],\n standalone: true,\n imports: [CommonModule, TranslateModule, TooltipModule],\n})\nexport class TransactionDetailsComponent {\n @Input() transaction: Transaction;\n\n constructor(public variablesService: VariablesService, private backendService: BackendService) {}\n\n getAllUniqAssetId(transaction: Transaction): Set {\n const { employed_entries } = transaction;\n const { receive = [], spent = [] } = employed_entries;\n return new Set([...receive, ...spent].map(({ asset_id }) => asset_id));\n }\n\n openInBrowser(hash: string): void {\n this.backendService.openUrlInBrowser(\n (this.variablesService.testnet ? BLOCK_EXPLORER_TN_TX_URL_PREFIX : BLOCK_EXPLORER_TX_URL_PREFIX) + hash\n );\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subtransfer, Subtransfers, Transaction } from '@api/models/transaction.model';\nimport { zanoAssetInfo } from '@parts/data/assets';\nimport { isFinalizator, isInitiator, isSwapTransaction } from '@parts/functions/identify-transaction';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { TooltipModule } from '@parts/directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexModule } from '@angular/flex-layout';\n\n@Component({\n selector: 'app-transaction-status',\n standalone: true,\n imports: [CommonModule, TooltipModule, TranslateModule, FlexModule],\n templateUrl: './transaction-status.component.html',\n styleUrls: ['./transaction-status.component.scss'],\n})\nexport class TransactionStatusComponent {\n @Input() transaction: Transaction;\n\n constructor(public variablesService: VariablesService) {}\n\n isVisibleStatusBySubtransfer(subtransfer: Subtransfer, transaction: Transaction): boolean {\n const { amount, asset_id, is_income } = subtransfer;\n const { fee, subtransfers } = transaction;\n\n if (subtransfers.length === 1 && asset_id === zanoAssetInfo.asset_id && is_income === false && amount.eq(fee)) {\n return true;\n }\n\n if (asset_id === zanoAssetInfo.asset_id && isSwapTransaction(transaction) && isFinalizator(transaction)) {\n return true;\n }\n\n return !(asset_id === zanoAssetInfo.asset_id && is_income === false && amount.eq(fee));\n }\n\n isIncome(subtransfer: Subtransfer, transaction: Transaction): boolean {\n const { amount, asset_id, is_income } = subtransfer;\n const { fee } = transaction;\n\n // Case: When the amount is less than the fee\n const condition1 = asset_id === zanoAssetInfo.asset_id;\n const condition2 = amount.isLessThan(fee);\n const condition3 = !is_income;\n\n if (condition1 && condition2 && condition3) {\n return true;\n }\n // ---------------------------------------------\n\n return is_income;\n }\n\n getHeight(item): number {\n const { height_app } = this.variablesService;\n if ((height_app - item.height >= 10 && item.height !== 0) || (item.is_mining === true && item.height === 0)) {\n return 10;\n } else {\n if (item.height === 0 || height_app - item.height < 0) {\n return 0;\n } else {\n return height_app - item.height;\n }\n }\n }\n\n strokeSize(item): number {\n const rem = this.variablesService.settings.scale;\n if ((this.variablesService.height_app - item.height >= 10 && item.height !== 0) || (item.is_mining === true && item.height === 0)) {\n return 0;\n } else {\n if (item.height === 0 || this.variablesService.height_app - item.height < 0) {\n return 4.5 * parseInt(rem, 10);\n } else {\n return (\n 4.5 * parseInt(rem, 10) - ((4.5 * parseInt(rem, 10)) / 100) * ((this.variablesService.height_app - item.height) * 10)\n );\n }\n }\n }\n\n isLocked(item: Transaction): boolean {\n if (item.unlock_time > 500000000 && item.unlock_time > new Date().getTime() / 1000) {\n return true;\n }\n return item.unlock_time < 500000000 && item.unlock_time > this.variablesService.height_max;\n }\n\n time(item: Transaction): number {\n const now = new Date().getTime();\n return now + (item.unlock_time - this.variablesService.height_max) * 60 * 1000;\n }\n\n hasZano(subtransfers: Subtransfers): boolean {\n return Boolean(subtransfers.find(({ asset_id }) => asset_id === zanoAssetInfo.asset_id));\n }\n\n isInitiator(transaction: Transaction): boolean {\n return isInitiator(transaction);\n }\n}\n","\n
\n \"\"\n\n {{ 'HISTORY.RECEIVED' | translate }}\n
\n
\n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \"status\"/\n \n {{ (isIncome(subtransfer, transaction) ? 'HISTORY.RECEIVED' : 'HISTORY.SEND') | translate }}\n\n \n \n \n \n 0)\n \"\n [delay]=\"500\"\n class=\"icon lock-transaction mr-1\"\n placement=\"bottom-left\"\n tooltip=\"{{ 'HISTORY.LOCK_TOOLTIP' | translate : { date: time(transaction) | date : 'MM.dd.yy' } }}\"\n tooltipClass=\"table-tooltip\"\n >\n \n 500000000\">\n 0)\n \"\n [delay]=\"500\"\n class=\"icon lock-transaction mr-1\"\n placement=\"bottom-left\"\n tooltip=\"{{\n 'HISTORY.LOCK_TOOLTIP'\n | translate\n : {\n date: transaction.unlock_time * 1000 | date : 'MM.dd.yy'\n }\n }}\"\n tooltipClass=\"table-tooltip\"\n >\n \n \n \n 0)\n \"\n class=\"icon unlock-transaction mr-1\"\n >\n \n \n \n \n \n\n\n\n
\n \"\"\n\n {{ 'HISTORY.RECEIVED' | translate }}\n
\n
\n","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { Wallet } from '@api/models/wallet.model';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BigNumber } from 'bignumber.js';\nimport { LOCKED_BALANCE_HELP_PAGE } from '@parts/data/constants';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { IntToMoneyPipe, IntToMoneyPipeModule } from '@parts/pipes';\nimport { BackendService } from '@api/services/backend.service';\nimport { CommonModule } from '@angular/common';\nimport { DisablePriceFetchModule, TooltipModule } from '@parts/directives';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\nimport { VisibilityBalanceDirective } from '@parts/directives/visibility-balance.directive';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-wallet-card',\n template: `\n
\n
\n
\n
\n \n {{ wallet.new_contracts }}\n \n\n \n {{ !wallet.alias['name'] ? wallet.name : wallet.alias['name'] }}\n \n
\n
\n
\n \n \n \n
\n
\n\n

\n \n \n {{\n wallet.getMoneyEquivalentForZano(variablesService.zanoMoneyEquivalent) | intToMoney | currency : 'USD' || '---'\n }}\n \n {{ variablesService.zanoMoneyEquivalentPercent | number : '1.2-2' }}%\n \n \n \n

\n\n \n
\n {{ 'SIDEBAR.ACCOUNT.STAKING' | translate }}\n \n
\n
\n\n
\n
\n
\n
\n
{{ wallet.progress }}%
\n
\n
\n `,\n standalone: true,\n imports: [\n CommonModule,\n TooltipModule,\n TranslateModule,\n IntToMoneyPipeModule,\n StakingSwitchComponent,\n DisablePriceFetchModule,\n VisibilityBalanceDirective,\n MatIconModule,\n ],\n})\nexport class WalletCardComponent {\n @HostBinding('class') classAttr = 'wallet';\n\n @Input() wallet: Wallet;\n\n @Output() eventClose = new EventEmitter();\n\n constructor(\n public variablesService: VariablesService,\n private intToMoneyPipe: IntToMoneyPipe,\n private translate: TranslateService,\n private backend: BackendService\n ) {}\n\n getBalancesTooltip(): HTMLDivElement {\n const tooltip = document.createElement('div');\n const scrollWrapper = document.createElement('div');\n if (!this.wallet || !this.wallet.balances) {\n return null;\n }\n const { balances } = this.wallet;\n\n scrollWrapper.classList.add('balance-scroll-list');\n balances.forEach(({ unlocked, total, asset_info: { ticker } }) => {\n const available = document.createElement('span');\n available.setAttribute('class', 'available');\n available.innerText = `${this.translate.instant('WALLET.AVAILABLE_BALANCE')} `;\n const availableB = document.createElement('b');\n availableB.innerText = `${this.intToMoneyPipe.transform(unlocked)} ${ticker || '---'}`;\n available.appendChild(availableB);\n scrollWrapper.appendChild(available);\n\n const locked = document.createElement('span');\n locked.setAttribute('class', 'locked');\n locked.innerText = `${this.translate.instant('WALLET.LOCKED_BALANCE')} `;\n const lockedB = document.createElement('b');\n lockedB.innerText = `${this.intToMoneyPipe.transform(new BigNumber(total).minus(unlocked))} ${ticker || '---'}`;\n locked.appendChild(lockedB);\n scrollWrapper.appendChild(locked);\n });\n tooltip.appendChild(scrollWrapper);\n const link = document.createElement('span');\n link.setAttribute('class', 'link');\n link.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE_LINK');\n link.addEventListener('click', () => {\n this.backend.openUrlInBrowser(LOCKED_BALANCE_HELP_PAGE);\n });\n tooltip.appendChild(link);\n return tooltip;\n }\n}\n","import { AssetInfo } from '@api/models/assets.model';\n\nexport type ZanoAssetInfo = AssetInfo & { logo: string; price_url: string };\n\nexport const zanoAssetInfo: ZanoAssetInfo = {\n asset_id: 'd6329b5b1f7c0805b5c345f4957554002a2f557845f64d7645dae0e051a6498a',\n current_supply: 0,\n decimal_point: 12,\n full_name: 'Zano',\n logo: 'assets/currency-icons/zano.svg',\n meta_info: '',\n owner: '0000000000000000000000000000000000000000000000000000000000000000',\n price_url: 'https://explorer.zano.org/api/price?asset=zano',\n ticker: 'ZANO',\n total_max_supply: 0,\n};\n\nexport const defaultImgSrc = 'assets/currency-icons/custom_token.svg';\n","export const MIXIN = 15; // default mixin value\nexport const RCV_ADDR_QR_SCALE = 1.5; // scale factor for QR code\n\nexport const AUDITABLE_WALLET_HELP_PAGE = 'docs.zano.org/docs/use/auditable-wallets-faq';\nexport const CREATE_NEW_WALLET_HELP_PAGE = 'docs.zano.org/docs/use/wallets/gui-wallet';\nexport const LOCKED_BALANCE_HELP_PAGE = 'docs.zano.org/docs/use/locked-balance';\nexport const DOWNLOADS_PAGE_URL = 'zano.org/downloads';\nexport const ZARCANUM_MIGRATION = 'docs.zano.org/docs/use/zarcanum-migration/';\n\nexport const BLOCK_EXPLORER_TX_URL_PREFIX = 'explorer.zano.org/transaction/';\nexport const BLOCK_EXPLORER_TN_TX_URL_PREFIX = 'testnet-explorer.zano.org/transaction/';\n","import { ScaleItems } from '@api/models/scale.model';\n\nexport const scaleItems: ScaleItems = [\n {\n value: '8px',\n name: 'SETTINGS.SCALE.75',\n },\n {\n value: '10px',\n name: 'SETTINGS.SCALE.100',\n },\n {\n value: '12px',\n name: 'SETTINGS.SCALE.125',\n },\n {\n value: '14px',\n name: 'SETTINGS.SCALE.150',\n },\n];\n","import { AfterViewInit, Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[appAutofocus]',\n standalone: true,\n})\nexport class AutoFocusDirective implements AfterViewInit {\n constructor(private elementRef: ElementRef) {}\n\n ngAfterViewInit() {\n setTimeout(() => this.elementRef.nativeElement.focus());\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { NavigationService } from '@parts/services/back.service';\n\n@Directive({\n selector: '[appBackButton]',\n})\nexport class BackButtonDirective {\n constructor(private navigationService: NavigationService) {}\n\n @HostListener('click')\n onClick(): void {\n this.navigationService.back();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BackButtonDirective } from './back-button.directive';\n\n@NgModule({\n declarations: [BackButtonDirective],\n exports: [BackButtonDirective],\n imports: [CommonModule],\n})\nexport class BackButtonModule {}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[appDefaultImg]',\n})\nexport class DefaultImgDirective {\n @Input() defaultImgSrc!: string | null | undefined;\n @Input() defaultImgAlt: string | null | undefined;\n\n constructor(private elementRef: ElementRef) {}\n\n @HostListener('error')\n handlerOnError(): void {\n const elementImg: HTMLImageElement = this.elementRef.nativeElement;\n elementImg.onerror = null;\n elementImg.src = this.defaultImgSrc || '---';\n elementImg.alt = this.defaultImgAlt || '---';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DefaultImgDirective } from './default-img.directive';\n\n@NgModule({\n declarations: [DefaultImgDirective],\n exports: [DefaultImgDirective],\n imports: [CommonModule],\n})\nexport class DefaultImgModule {}\n","export * from './default-img.module';\n","import { Directive, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { Subject } from 'rxjs';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\n\n@Directive({\n selector: '[appDisablePriceFetch]',\n})\nexport class DisablePriceFetchDirective implements OnDestroy {\n private destroy$: Subject = new Subject();\n\n constructor(\n private _variablesService: VariablesService,\n private _templateRef: TemplateRef,\n private _viewContainer: ViewContainerRef\n ) {\n this._variablesService.disable_price_fetch$.pipe(distinctUntilChanged(), takeUntil(this.destroy$)).subscribe({\n next: (disable_price_fetch: boolean) => {\n this._viewContainer.clear();\n if (!disable_price_fetch) {\n this._viewContainer.createEmbeddedView(this._templateRef);\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DisablePriceFetchDirective } from './disable-price-fetch.directive';\n\n@NgModule({\n declarations: [DisablePriceFetchDirective],\n imports: [CommonModule],\n exports: [DisablePriceFetchDirective],\n})\nexport class DisablePriceFetchModule {}\n","export * from './disable-price-fetch.directive';\nexport * from './disable-price-fetch.module';\n","export * from './default-img';\nexport * from './disable-price-fetch';\nexport * from './input-disable-selection';\nexport * from './input-validate';\nexport * from './tooltip';\nexport * from './lower-case.directive';\n","export * from './input-disable-selection.module';\nexport * from './input-disable-selection.directive';\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line\n selector: 'input',\n})\nexport class InputDisableSelectionDirective {\n @HostListener('mousedown', ['$event'])\n handleInput(event: Event): void {\n if ((event.target).readOnly) {\n event.preventDefault();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputDisableSelectionDirective } from '@parts/directives/input-disable-selection/input-disable-selection.directive';\n\n@NgModule({\n declarations: [InputDisableSelectionDirective],\n exports: [InputDisableSelectionDirective],\n imports: [CommonModule],\n})\nexport class InputDisableSelectionModule {}\n","export * from './input-validate.module';\nexport * from './input-validate.directive';\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { BigNumber } from 'bignumber.js';\n\n@Directive({\n selector: '[appInputValidate]',\n})\nexport class InputValidateDirective {\n constructor(private el: ElementRef, private variablesService: VariablesService) {}\n\n @Input('appInputValidate')\n public type: 'money' | 'integer';\n\n private _decimalPoint: number = this.variablesService.decimal_point;\n\n @Input('decimalPoint')\n public set decimalPoint(value: number) {\n this._decimalPoint = value;\n this._formatValue();\n }\n\n @HostListener('input', ['$event'])\n handleInput(): void {\n this._formatValue();\n }\n\n private _formatValue(): void {\n switch (this.type) {\n case 'money': {\n return this._money();\n }\n case 'integer': {\n return this._integer();\n }\n }\n }\n\n private _prepareToMoney(value: string): string {\n let currentValue = value;\n // eslint-disable-next-line\n const OnlyD = /[^\\d\\.]/g;\n const _has_error = currentValue.match(OnlyD);\n if (_has_error && _has_error.length) {\n currentValue = currentValue.replace(',', '.').replace(OnlyD, '');\n }\n const _double_separator = currentValue.match(/\\./g);\n if (_double_separator && _double_separator.length > 1) {\n currentValue = currentValue.substr(0, currentValue.lastIndexOf('.'));\n }\n\n if (currentValue.length > 1 && currentValue.indexOf('.') !== 1 && currentValue.indexOf('0') === 0) {\n currentValue = new BigNumber(currentValue).toString();\n }\n\n if (currentValue.indexOf('.') === 0) {\n currentValue = '0' + currentValue;\n }\n const _zero_fill = currentValue.split('.');\n if (_zero_fill[0].length > 20) {\n _zero_fill[0] = _zero_fill[0].substr(0, 20);\n }\n\n if (1 in _zero_fill && _zero_fill[1].length) {\n _zero_fill[1] = _zero_fill[1].substr(0, this._decimalPoint);\n }\n return this._decimalPoint ? _zero_fill.join('.') : _zero_fill[0];\n }\n\n private _money(): void {\n const value: string = this.el.nativeElement.value;\n const originalValue: string = value;\n const preparedValue: string = this._prepareToMoney(value);\n\n if (preparedValue !== originalValue) {\n this._setValue(preparedValue);\n }\n }\n\n private _integer(): void {\n let preparedValue = this.el.nativeElement.value;\n const originalValue = preparedValue;\n const OnlyD = /\\D/g;\n const _has_error = preparedValue.match(OnlyD);\n if (_has_error && _has_error.length) {\n preparedValue = preparedValue.replace(OnlyD, '');\n }\n if (preparedValue !== originalValue) {\n this._setValue(preparedValue);\n }\n }\n\n private _setValue(value: string): void {\n this.el.nativeElement.value = value;\n const cursorPosition = this.el.nativeElement.selectionEnd;\n this.el.nativeElement.setSelectionRange(cursorPosition, cursorPosition);\n this.el.nativeElement.dispatchEvent(new Event('input'));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputValidateDirective } from '@parts/directives/input-validate/input-validate.directive';\n\n@NgModule({\n declarations: [InputValidateDirective],\n exports: [InputValidateDirective],\n imports: [CommonModule],\n})\nexport class InputValidateModule {}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: 'input[lowerCase]:not([upperCase]),textarea[lowerCase]:not([upperCase])',\n standalone: true,\n})\nexport class LowerCaseDirective {\n @Input() lowerCaseValue: string;\n\n @Input() lowerCaseDisabled = false;\n\n private getCaret(el) {\n return {\n start: el.selectionStart,\n end: el.selectionEnd,\n };\n }\n\n private setCaret(el, start, end) {\n el.selectionStart = start;\n el.selectionEnd = end;\n\n el.focus();\n }\n\n private dispatchEvent(el, eventType) {\n const event = document.createEvent('Event');\n event.initEvent(eventType, false, false);\n el.dispatchEvent(event);\n }\n\n private convertValue(el, value) {\n el.value = value.toLowerCase();\n\n this.dispatchEvent(el, 'input');\n }\n\n @HostListener('blur', ['$event.target', '$event.target.value'])\n onBlur(el: any, value: string): void {\n if (this.lowerCaseDisabled) {\n return;\n }\n if (\n (!this.lowerCaseValue || 'blur' === this.lowerCaseValue) &&\n 'function' === typeof value.toLowerCase &&\n value.toLowerCase() !== value\n ) {\n this.convertValue(el, value);\n this.dispatchEvent(el, 'blur'); // in case updateOn is set to blur\n }\n }\n\n @HostListener('input', ['$event.target', '$event.target.value'])\n onInput(el: any, value: string): void {\n if (this.lowerCaseDisabled) {\n return;\n }\n if (!this.lowerCaseValue && 'function' === typeof value.toLowerCase && value.toLowerCase() !== value) {\n let { start, end } = this.getCaret(el);\n\n if (value[0] === ' ' && start === 1 && end === 1) {\n start = 0;\n end = 0;\n }\n\n this.convertValue(el, value);\n\n this.setCaret(el, start, end);\n }\n }\n}\n","export * from './tooltip.directive';\nexport * from './tooltip.module';\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n SecurityContext,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Directive({\n // eslint-disable-next-line\n selector: '[tooltip]',\n})\nexport class TooltipDirective implements OnDestroy {\n @HostBinding('style.cursor') cursor;\n\n @Input('tooltip') tooltipInner: any;\n\n @Input() placement: string;\n\n @Input() tooltipClass: string;\n\n @Input() timeout = 0;\n\n @Input() timeDelay = 0;\n\n @Input() delay = 0;\n\n @Input() showWhenNoOverflow = true;\n\n @Output() eventHide = new EventEmitter();\n\n tooltip: HTMLElement;\n\n removeTooltipTimeout;\n\n removeTooltipTimeoutInner;\n\n removeTooltipTimeDelay;\n\n private enter: (event: MouseEvent) => void;\n\n private leave: (event: MouseEvent) => void;\n\n constructor(private el: ElementRef, private renderer: Renderer2, private sanitizer: DomSanitizer) {}\n\n @HostListener('mouseenter') onMouseEnter(): void {\n if (!this.tooltipInner) {\n return;\n }\n if (\n this.showWhenNoOverflow ||\n (!this.showWhenNoOverflow && this.el.nativeElement.offsetWidth < this.el.nativeElement.scrollWidth)\n ) {\n this.cursor = 'pointer';\n if (!this.tooltip) {\n if (this.timeDelay !== 0) {\n this.removeTooltipTimeDelay = setTimeout(() => {\n this.show();\n }, this.timeDelay);\n } else {\n this.show();\n }\n } else {\n this.cancelHide();\n }\n }\n }\n\n @HostListener('mouseleave') onMouseLeave(): void {\n clearTimeout(this.removeTooltipTimeDelay);\n if (this.tooltip) {\n this.hide();\n }\n }\n\n show(): void {\n this.create();\n this.placement = this.placement === null ? 'top' : this.placement;\n this.setPosition(this.placement);\n }\n\n hide(): void {\n this.removeTooltipTimeout = setTimeout(() => {\n this.renderer.setStyle(this.tooltip, 'opacity', '0');\n this.removeTooltipTimeoutInner = setTimeout(() => {\n this.renderer.removeChild(document.body, this.tooltip);\n this.tooltip.removeEventListener('mouseenter', this.enter);\n this.tooltip.removeEventListener('mouseleave', this.leave);\n this.tooltip = null;\n this.eventHide.emit(true);\n }, this.delay);\n }, this.timeout);\n }\n\n cancelHide(): void {\n clearTimeout(this.removeTooltipTimeout);\n clearTimeout(this.removeTooltipTimeoutInner);\n this.renderer.setStyle(this.tooltip, 'opacity', '1');\n }\n\n create(): void {\n this.tooltip = this.renderer.createElement('div');\n let innerBlock = this.renderer.createElement('div');\n if (typeof this.tooltipInner === 'string') {\n innerBlock.innerText = this.sanitizer.sanitize(SecurityContext.HTML, this.tooltipInner);\n } else {\n if (this.tooltipInner) {\n innerBlock = this.tooltipInner;\n }\n }\n this.renderer.addClass(innerBlock, 'tooltip-inner');\n this.renderer.addClass(innerBlock, 'scrolled-content');\n this.renderer.appendChild(this.tooltip, innerBlock);\n this.renderer.appendChild(document.body, this.tooltip);\n\n this.enter = (): void => {\n this.cancelHide();\n };\n this.tooltip.addEventListener('mouseenter', this.enter);\n this.leave = (): void => {\n if (this.tooltip) {\n this.hide();\n }\n };\n this.tooltip.addEventListener('mouseleave', this.leave);\n\n this.renderer.setStyle(document.body, 'position', 'relative');\n this.renderer.setStyle(this.tooltip, 'position', 'absolute');\n if (this.tooltipClass !== null) {\n const classes = this.tooltipClass?.split(' ') ?? [];\n for (let i = 0; i < classes.length; i++) {\n this.renderer.addClass(this.tooltip, classes[i]);\n }\n }\n this.renderer.setStyle(this.tooltip, 'opacity', '0');\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.delay}ms`);\n window.setTimeout(() => {\n return this.tooltip && this.renderer.setStyle(this.tooltip, 'opacity', '1');\n }, 0);\n }\n\n setPosition(placement): void {\n const hostPos = this.el.nativeElement.getBoundingClientRect();\n this.renderer.addClass(this.tooltip, 'ng-tooltip-' + placement);\n const topExit =\n hostPos.top - this.tooltip.getBoundingClientRect().height - parseInt(getComputedStyle(this.tooltip).marginTop, 10) < 0;\n const bottomExit =\n window.innerHeight <\n hostPos.bottom + this.tooltip.getBoundingClientRect().height + parseInt(getComputedStyle(this.tooltip).marginTop, 10);\n\n switch (placement) {\n case 'top':\n if (topExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('bottom');\n return;\n } else {\n this.renderer.setStyle(\n this.tooltip,\n 'left',\n hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px'\n );\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\n this.checkSides();\n }\n break;\n case 'top-left':\n if (topExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('bottom-left');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\n this.checkSides();\n }\n break;\n case 'top-right':\n if (topExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('bottom-right');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\n this.checkSides();\n }\n break;\n case 'bottom':\n if (bottomExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('top');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\n this.renderer.setStyle(\n this.tooltip,\n 'left',\n hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px'\n );\n this.checkSides();\n }\n break;\n case 'bottom-left':\n if (bottomExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('top-left');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px');\n this.checkSides();\n }\n break;\n case 'bottom-right':\n if (bottomExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('top-right');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px');\n this.checkSides();\n }\n break;\n case 'left':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\n this.renderer.setStyle(\n this.tooltip,\n 'top',\n hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px'\n );\n break;\n case 'left-top':\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\n break;\n case 'left-bottom':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px');\n break;\n case 'right':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\n this.renderer.setStyle(\n this.tooltip,\n 'top',\n hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px'\n );\n break;\n case 'right-top':\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\n break;\n case 'right-bottom':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px');\n break;\n }\n }\n\n checkSides(): void {\n if (this.tooltip.getBoundingClientRect().left < 0) {\n this.renderer.setStyle(this.tooltip, 'left', 0);\n }\n if (this.tooltip.getBoundingClientRect().right > window.innerWidth) {\n this.renderer.setStyle(this.tooltip, 'left', window.innerWidth - this.tooltip.getBoundingClientRect().width + 'px');\n }\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.removeTooltipTimeout);\n clearTimeout(this.removeTooltipTimeoutInner);\n clearTimeout(this.removeTooltipTimeDelay);\n if (this.tooltip) {\n this.renderer.removeChild(document.body, this.tooltip);\n this.tooltip = null;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n declarations: [TooltipDirective],\n imports: [CommonModule],\n exports: [TooltipDirective],\n})\nexport class TooltipModule {}\n","import { Component, Directive, inject, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { VariablesService } from '../services/variables.service';\n\n@Component({\n selector: 'app-hidden',\n template: `******`,\n standalone: true,\n})\nclass HiddenComponent {}\n\n@Directive({\n selector: '[appVisibilityBalance]',\n standalone: true,\n})\nexport class VisibilityBalanceDirective implements OnInit, OnDestroy {\n private _variablesService: VariablesService = inject(VariablesService);\n private _templateRef: TemplateRef = inject(TemplateRef);\n private _viewContainer: ViewContainerRef = inject(ViewContainerRef);\n private _destroy$: Subject = new Subject();\n\n ngOnInit(): void {\n this._variablesService.visibilityBalance$.pipe(distinctUntilChanged(), takeUntil(this._destroy$)).subscribe({\n next: (visibility: boolean) => {\n this._viewContainer.clear();\n if (visibility) {\n this._viewContainer.createEmbeddedView(this._templateRef);\n } else {\n this._viewContainer.createComponent(HiddenComponent);\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","import { Subtransfer, Transaction } from '@api/models/transaction.model';\nimport { Wallet } from '@api/models/wallet.model';\nimport { intToMoney } from '@parts/functions/int-to-money';\nimport { AssetInfo } from '@api/models/assets.model';\nimport { zanoAssetInfo } from '@parts/data/assets';\nimport { isFinalizator, isInitiator, isSelfTransaction, isSwapTransaction } from '@parts/functions/identify-transaction';\n\nexport interface AmountItem {\n amount: string;\n ticker: string;\n}\n\nexport type AmountItems = AmountItem[];\n\nexport const getAmountItems = (transaction: Transaction, wallet: Wallet): AmountItems => {\n const { subtransfers, fee } = transaction;\n\n const items: { amount: string; ticker: string }[] = [];\n\n if (!subtransfers?.length) {\n items.push({ amount: '0', ticker: zanoAssetInfo.ticker });\n return items;\n }\n\n if (isInitiator(transaction) && !Boolean(subtransfers.find(({ asset_id }) => asset_id === zanoAssetInfo.asset_id))) {\n const preparedAmount: string = intToMoney(fee, zanoAssetInfo.decimal_point);\n items.push({ amount: preparedAmount, ticker: zanoAssetInfo.ticker });\n }\n\n subtransfers.forEach((subtransfer: Subtransfer) => {\n const { asset_id, amount, is_income } = subtransfer;\n const assetInfo: AssetInfo | undefined = wallet.allAssetsInfo.find(v => asset_id === v.asset_id);\n\n if (!assetInfo) {\n if (amount.toNumber() === 0) {\n return;\n }\n\n const preparedAmount: string = (is_income ? amount : amount.negated()).toString();\n items.push({ amount: preparedAmount, ticker: '***' });\n return;\n }\n\n const { ticker, decimal_point } = assetInfo;\n\n if (asset_id !== zanoAssetInfo.asset_id) {\n if (amount.toNumber() === 0) {\n return;\n }\n\n const preparedAmount: string = intToMoney(is_income ? amount : amount.negated(), decimal_point);\n items.push({ amount: preparedAmount, ticker });\n return;\n }\n\n if (asset_id === zanoAssetInfo.asset_id) {\n const { address } = wallet;\n\n const selfTransaction: boolean = isSelfTransaction(transaction, address);\n const swapTransaction: boolean = isSwapTransaction(transaction);\n const finalizator: boolean = isFinalizator(transaction);\n const initiator: boolean = isInitiator(transaction);\n\n const condition_1: boolean = !amount.eq(fee ?? 0) || selfTransaction || (swapTransaction && finalizator);\n const condition_2: boolean = amount.toNumber() !== 0;\n\n if (!is_income ? condition_1 : condition_2) {\n let preparedAmount!: string;\n\n if (is_income) {\n preparedAmount = intToMoney(initiator ? amount.plus(fee) : amount, decimal_point);\n } else {\n preparedAmount = intToMoney((initiator ? amount.minus(fee ?? 0) : amount).negated(), decimal_point);\n }\n\n items.push({ amount: preparedAmount, ticker });\n return;\n }\n }\n });\n\n return items;\n};\n","export const hasOwnProperty = (obj: object, key: string): boolean => {\n if (Boolean(obj) && Boolean(key)) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n }\n return false;\n};\n","import { Transaction } from '@api/models/transaction.model';\nimport { zanoAssetInfo } from '@parts/data/assets';\n\nexport const isInitiator = (transaction: Transaction): boolean => {\n const {\n employed_entries: { spent = [] },\n } = transaction;\n return Boolean(\n spent?.find(({ index }) => {\n return index === 0;\n })\n );\n};\n\nexport const isFinalizator = (transaction: Transaction): boolean => {\n return !isInitiator(transaction);\n};\n\nexport const isSelfTransaction = (transaction: Transaction, address: string): boolean => {\n const {\n remote_addresses,\n employed_entries: { receive, spent },\n subtransfers,\n fee,\n } = transaction;\n\n const condition1 = remote_addresses?.includes(address);\n const condition2 = [...(receive ?? []), ...(spent ?? [])].map(({ asset_id }) => asset_id === zanoAssetInfo.asset_id).every(Boolean);\n const condition3 = subtransfers?.length === 1 && subtransfers[0].asset_id === zanoAssetInfo.asset_id && subtransfers[0].amount.eq(fee);\n\n return condition1 && condition2 && condition3;\n};\n\nexport const isSwapTransaction = (transaction: Transaction): boolean => {\n const { subtransfers } = transaction;\n const arr = subtransfers.map(({ is_income }) => is_income);\n const condition1 = arr.some(value => value);\n const condition2 = arr.some(value => !value);\n return condition1 && condition2;\n};\n","import { BigNumber } from 'bignumber.js';\n\nexport const intToMoney = (value: number | string | BigNumber, decimal_point?: any): string => {\n if (value === 0 || value === undefined) {\n return '0';\n }\n let maxFraction = 12;\n if (decimal_point !== undefined && decimal_point !== null) {\n maxFraction = parseInt(decimal_point, 10);\n }\n const power = Math.pow(10, maxFraction);\n let str = new BigNumber(value).div(power).toFixed(maxFraction, 1);\n\n if (maxFraction != 0) {\n for (let i = str.length - 1; i >= 0; i--) {\n if (str[i] !== '0') {\n str = str.substr(0, i + 1);\n break;\n }\n }\n }\n\n if (str.length >= 21) {\n const hasMinus = str.indexOf('-') !== -1;\n const hasDot = str.indexOf('.') !== -1;\n const sliceFrom = 0;\n let sliceTo = 20;\n\n if (hasDot) {\n sliceTo += 1;\n\n if (decimal_point == 20) {\n sliceTo += 1;\n }\n }\n\n if (hasMinus) {\n sliceTo += 1;\n }\n\n str = str.slice(sliceFrom, sliceTo);\n }\n if (str[str.length - 1] === '.') {\n str = str.substr(0, str.length - 1);\n }\n return str;\n};\n","import { BigNumber } from 'bignumber.js';\n\nexport const moneyToInt = (value: string, decimal_point?: any): BigNumber => {\n const CURRENCY_DISPLAY_DECIMAL_POINT = decimal_point ?? 12;\n let result: BigNumber = new BigNumber('');\n if (value) {\n let am_str = value.trim();\n const point_index = am_str.indexOf('.');\n let fraction_size = 0;\n if (-1 !== point_index) {\n fraction_size = am_str.length - point_index - 1;\n while (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size && '0' === am_str[am_str.length - 1]) {\n am_str = am_str.slice(0, am_str.length - 1);\n --fraction_size;\n }\n\n if (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size) {\n am_str = am_str.slice(0, point_index) + am_str.slice(point_index + 1, CURRENCY_DISPLAY_DECIMAL_POINT);\n } else {\n am_str = am_str.slice(0, point_index) + am_str.slice(point_index + 1, am_str.length);\n }\n } else {\n fraction_size = 0;\n }\n if (!am_str.length) {\n return undefined;\n }\n if (am_str.length >= 21) {\n am_str = am_str.slice(0, am_str.indexOf('.') !== -1 ? (decimal_point == 20 ? 22 : 21) : decimal_point == 20 ? 21 : 20);\n }\n if (am_str[am_str.length - 1] === '.') {\n am_str = am_str.substr(0, am_str.length - 1);\n }\n if (fraction_size < CURRENCY_DISPLAY_DECIMAL_POINT) {\n for (let i = 0; i !== CURRENCY_DISPLAY_DECIMAL_POINT - fraction_size; i++) {\n am_str = am_str + '0';\n }\n }\n result = new BigNumber(am_str).integerValue();\n }\n return result;\n};\n","import { Component, inject } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { AssetInfo } from '@api/models/assets.model';\nimport { ZanoAssetInfo, zanoAssetInfo } from '@parts/data/assets';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IntToMoneyPipeModule } from '@parts/pipes';\n\n@Component({\n selector: 'app-asset-details',\n templateUrl: './asset-details.component.html',\n styleUrls: ['./asset-details.component.scss'],\n standalone: true,\n imports: [CommonModule, TranslateModule, IntToMoneyPipeModule, MatDialogModule],\n})\nexport class AssetDetailsComponent {\n public readonly zanoAssetInfo: ZanoAssetInfo = zanoAssetInfo;\n\n public readonly data: { assetInfo: AssetInfo; title?: string } = inject(MAT_DIALOG_DATA);\n\n public readonly variablesService: VariablesService = inject(VariablesService);\n}\n","

{{ data?.title ?? 'ASSETS.MODALS.ASSET_DETAILS.TITLE' | translate }}

\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.NAME' | translate }}{{ assetInfo.full_name }}
{{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.TICKER' | translate }}{{ assetInfo.ticker }}
{{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.OWNER' | translate }}\n {{ assetInfo.owner }}\n
{{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.ID' | translate }}\n {{ assetInfo.asset_id }}\n
{{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.CURRENT_SUPPLY' | translate }}\n {{\n (assetInfo.asset_id === zanoAssetInfo.asset_id\n ? variablesService.zano_current_supply ?? 'Unknown'\n : assetInfo.current_supply\n ) | intToMoney : assetInfo.decimal_point\n }}\n
{{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.MAX_SUPPLE' | translate }}\n {{\n assetInfo.asset_id === zanoAssetInfo.asset_id\n ? 'Uncapped'\n : (assetInfo.total_max_supply | intToMoney : assetInfo.decimal_point)\n }}\n
\n
\n\n No data\n
\n\n\n \n\n","import { Component, inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nexport interface ConfirmModalData {\n title: string;\n message?: string;\n buttons?: Partial<{\n close: string;\n submit: string;\n }>;\n}\n\n@Component({\n selector: 'app-confirm-modal',\n templateUrl: './confirm-modal.component.html',\n styleUrls: ['./confirm-modal.component.scss'],\n})\nexport class ConfirmModalComponent {\n data: ConfirmModalData = inject(MAT_DIALOG_DATA);\n\n private _dialogRef: MatDialogRef = inject(MatDialogRef);\n\n get title(): string {\n const { title } = this.data;\n return title;\n }\n\n get message(): string {\n const { message } = this.data;\n return message;\n }\n\n submit(): void {\n this._dialogRef.close(true);\n }\n}\n","\n
\n \n\n
\n

{{ title | translate }}

\n

{{ message | translate }}

\n
\n
\n
\n\n\n
\n \n \n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { AutoFocusDirective } from '@parts/directives/autofocus.directive';\nimport { ConfirmModalComponent } from '@parts/modals/confirm-modal/confirm-modal.component';\n\n@NgModule({\n declarations: [ConfirmModalComponent],\n imports: [CommonModule, TranslateModule, FlexLayoutModule, MatIconModule, MatDialogModule, AutoFocusDirective],\n exports: [ConfirmModalComponent],\n})\nexport class ConfirmModalModule {}\n","import { Component, inject } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { FlexModule } from '@angular/flex-layout';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-modal-container',\n templateUrl: './modal-container.component.html',\n styleUrls: ['./modal-container.component.scss'],\n standalone: true,\n imports: [CommonModule, MatDialogModule, TranslateModule, FlexModule, MatIconModule],\n})\nexport class ModalContainerComponent {\n public readonly data: { type: 'error' | 'info' | 'success', message: any } = inject(MAT_DIALOG_DATA);\n}\n","\n
\n \n
\n

{{ 'MODALS.' + data.type.toUpperCase() | translate }}

\n

\n
\n
\n
\n\n\n \n\n","import { Component, HostBinding, Input, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ModalService } from '../../services/modal.service';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'app-open-wallet-modal',\n template: `\n
\n
\n

{{ 'OPEN_WALLET.MODAL.TITLE' | translate }}

\n\n
{{ wallet.name }}
\n
{{ wallet.path }}
\n\n
\n
\n \n \n
\n {{ 'OPEN_WALLET.MODAL.NOT_FOUND' | translate }}\n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n\n
\n \n \n
\n
\n
\n
\n `,\n styleUrls: ['./open-wallet-modal.component.scss'],\n})\nexport class OpenWalletModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n @Input() wallets;\n\n isWrongPassword$ = new BehaviorSubject(false);\n\n wallet = {\n name: '',\n path: '',\n pass: '',\n notFound: false,\n emptyPass: false,\n };\n\n constructor(\n public variablesService: VariablesService,\n public walletsService: WalletsService,\n private backend: BackendService,\n private translate: TranslateService,\n private modalService: ModalService,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n if (this.wallets.length) {\n this.wallet = this.wallets[0];\n this.wallet.pass = '';\n }\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n openWallet(): void {\n if (this.wallets.length === 0) {\n return;\n }\n this.backend.openWallet(\n this.wallet.path,\n this.wallet.pass,\n this.variablesService.count,\n false,\n (open_status, open_data, open_error) => {\n if (open_error === 'WRONG_PASSWORD') {\n this.ngZone.run(() => {\n this.isWrongPassword$.next(true);\n });\n }\n if (open_error && open_error === 'FILE_NOT_FOUND') {\n this.ngZone.run(() => {\n this.wallet.notFound = true;\n });\n let error_translate = this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1');\n error_translate += ':
' + this.wallet.path;\n error_translate += this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2');\n this.modalService.prepareModal('error', error_translate);\n } else {\n if (open_status || open_error === 'FILE_RESTORED') {\n let exists = false;\n this.variablesService.wallets.forEach(wallet => {\n if (wallet.address === open_data['wi'].address) {\n exists = true;\n }\n });\n\n if (exists) {\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\n this.backend.closeWallet(open_data.wallet_id);\n } else {\n const new_wallet = new Wallet(\n open_data.wallet_id,\n this.wallet.name,\n this.wallet.pass,\n open_data['wi'].path,\n open_data['wi'].address,\n open_data['wi'].balance,\n open_data['wi'].unlocked_balance,\n open_data['wi'].mined_total,\n open_data['wi'].tracking_hey\n );\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\n new_wallet.is_auditable = open_data['wi'].is_auditable;\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\n new_wallet.currentPage = 1;\n new_wallet.exclude_mining_txs = false;\n if (open_data.recent_history && open_data.recent_history.history) {\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\n new_wallet.totalPages = Math.ceil(\n open_data.recent_history.total_history_items / this.variablesService.count\n );\n new_wallet.totalPages > this.variablesService.maxPages\n ? (new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index));\n new_wallet.prepareHistory(open_data.recent_history.history);\n } else {\n new_wallet.total_history_item = 0;\n new_wallet.pages = new Array(1).fill(1);\n new_wallet.totalPages = 1;\n }\n this.walletsService.addWallet(new_wallet);\n this.backend.runWallet(open_data.wallet_id);\n this.skipWallet();\n this.isWrongPassword$.next(false);\n }\n }\n }\n }\n );\n }\n\n skipWallet(): void {\n this.ngZone.run(() => {\n if (this.wallets.length) {\n this.wallets.splice(0, 1);\n this.ngOnInit();\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ContractStatusMessagesPipe } from '@parts/pipes/contract-status-messages-pipe/contract-status-messages.pipe';\n\n@NgModule({\n declarations: [ContractStatusMessagesPipe],\n exports: [ContractStatusMessagesPipe],\n providers: [ContractStatusMessagesPipe],\n imports: [CommonModule],\n})\nexport class ContractStatusMessagesPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'contractStatusMessages',\n})\nexport class ContractStatusMessagesPipe implements PipeTransform {\n constructor(private translate: TranslateService) {}\n\n getStateSeller(stateNum: number): string {\n const state = { part1: '', part2: '' };\n switch (stateNum) {\n case 1:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NEW_CONTRACT');\n break;\n case 110:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED');\n break;\n case 201:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.ACCEPTED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAIT');\n break;\n case 2:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAITING_BUYER');\n break;\n case 3:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.COMPLETED');\n break;\n case 4:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NOT_RECEIVED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NULLIFIED');\n break;\n case 5:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.PROPOSAL_CANCEL');\n break;\n case 601:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.BEING_CANCELLED');\n break;\n case 6:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.CANCELLED');\n break;\n case 130:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED_CANCEL');\n break;\n case 140:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.EXPIRED');\n break;\n }\n return state.part1 + (state.part2.length ? '. ' + state.part2 : '');\n }\n\n getStateBuyer(stateNum: number): string {\n const state = { part1: '', part2: '' };\n switch (stateNum) {\n case 1:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING');\n break;\n case 110:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED');\n break;\n case 201:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAIT');\n break;\n case 2:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED');\n break;\n case 120:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_SELLER');\n break;\n case 3:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.COMPLETED');\n break;\n case 4:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NOT_RECEIVED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NULLIFIED');\n break;\n case 5:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_CANCEL');\n break;\n case 601:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.BEING_CANCELLED');\n break;\n case 6:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.CANCELLED');\n break;\n case 130:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED_CANCEL');\n break;\n case 140:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.EXPIRED');\n break;\n }\n return state.part1 + (state.part2.length ? '. ' + state.part2 : '');\n }\n\n transform(state: number, is_a?: boolean): any {\n if (is_a) {\n return this.getStateBuyer(state);\n } else {\n return this.getStateSeller(state);\n }\n }\n}\n","export * from './contract-status-messages-pipe.module';\nexport * from './contract-status-messages.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ContractTimeLeftPipe } from '@parts/pipes/contract-time-left-pipe/contract-time-left.pipe';\n\n@NgModule({\n declarations: [ContractTimeLeftPipe],\n exports: [ContractTimeLeftPipe],\n providers: [ContractTimeLeftPipe],\n imports: [CommonModule],\n})\nexport class ContractTimeLeftPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'contractTimeLeft',\n})\nexport class ContractTimeLeftPipe implements PipeTransform {\n constructor(private service: VariablesService, private translate: TranslateService) {}\n\n transform(value: any, arg?: any): any {\n const time = parseInt(((parseInt(value, 10) - this.service.exp_med_ts) / 3600).toFixed(0), 10);\n const type = arg || 0;\n if (time === 0) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_LESS_ONE');\n }\n if (this.service.settings.language === 'en') {\n if (type === 0) {\n if (time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', {\n time: time,\n });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', {\n time: time,\n });\n }\n } else if (type === 1) {\n if (time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', { time: time });\n }\n } else if (type === 2) {\n if (time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', { time: time });\n }\n }\n } else {\n const rest = time % 10;\n if (type === 0) {\n if ((time > 20 && rest === 1) || time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', {\n time: time,\n });\n } else if ((time > 1 && time < 5) || (time > 20 && (rest === 2 || rest === 3 || rest === 4))) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', {\n time: time,\n });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT', { time: time });\n }\n } else if (type === 1) {\n if ((time > 20 && rest === 1) || time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', { time: time });\n } else if ((time > 1 && time < 5) || (time > 20 && (rest === 2 || rest === 3 || rest === 4))) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_RESPONSE', { time: time });\n }\n } else if (type === 2) {\n if ((time > 20 && rest === 1) || time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', { time: time });\n } else if ((time > 1 && time < 5) || (time > 20 && (rest === 2 || rest === 3 || rest === 4))) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_WAITING', { time: time });\n }\n }\n }\n return null;\n }\n}\n","export * from './contract-time-left-pipe.module';\nexport * from './contract-time-left.pipe';\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Transaction } from '@api/models/transaction.model';\nimport { Wallet } from '@api/models/wallet.model';\nimport { AmountItems, getAmountItems } from '@parts/functions/get-amount-items';\n\n@Pipe({\n name: 'getAmountItems',\n standalone: true,\n})\nexport class GetAmountItemsPipe implements PipeTransform {\n transform(transaction: Transaction, wallet: Wallet): AmountItems {\n return getAmountItems(transaction, wallet);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { AssetInfo } from '@api/models/assets.model';\nimport { WalletsService } from '@parts/services/wallets.service';\n@Pipe({\n name: 'getAssetInfo',\n standalone: true,\n})\nexport class GetAssetInfoPipe implements PipeTransform {\n private walletsService: WalletsService = inject(WalletsService);\n\n transform(value: AssetInfo['asset_id']): AssetInfo | undefined {\n return this.walletsService.currentWallet?.allAssetsInfo.find(({ asset_id }) => asset_id === value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HistoryTypeMessagesPipe } from '@parts/pipes/history-type-messages-pipe/history-type-messages.pipe';\n\n@NgModule({\n declarations: [HistoryTypeMessagesPipe],\n exports: [HistoryTypeMessagesPipe],\n providers: [HistoryTypeMessagesPipe],\n imports: [CommonModule],\n})\nexport class HistoryTypeMessagesPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { hasOwnProperty } from '../../functions/has-own-property';\n\n@Pipe({\n name: 'historyTypeMessages',\n})\nexport class HistoryTypeMessagesPipe implements PipeTransform {\n constructor(private translate: TranslateService) {}\n\n transform(item: any): any {\n if (item.tx_type === 0) {\n if (item.remote_addresses && item.remote_addresses[0]) {\n return item.remote_addresses[0];\n } else {\n if (item.is_income) {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.HIDDEN');\n } else {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED');\n }\n }\n } else if (item.tx_type === 6 && item.height === 0) {\n return 'unknown';\n } else if (item.tx_type === 9) {\n if (hasOwnProperty(item, 'contract') && item.contract[0].is_a) {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_BUYER');\n } else {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_SELLER');\n }\n } else {\n switch (item.tx_type) {\n // case 0:\n // return '';\n // case 1:\n // return '';\n // case 2:\n // return '';\n // case 3:\n // return '';\n case 4:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_ALIAS');\n case 5:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UPDATE_ALIAS');\n case 6:\n return item.employed_entries?.spent?.length\n ? this.translate.instant('HISTORY.TYPE_MESSAGES.POS_REWARD')\n : this.translate.instant('HISTORY.TYPE_MESSAGES.POW_REWARD');\n case 7:\n if (!item.subtransfers || !item.subtransfers.length) {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.SERVICE_TRANSACTIONS');\n } else {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_CONTRACT');\n }\n case 8:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.PLEDGE_CONTRACT');\n // case 9:\n // return '';\n case 10:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.NULLIFY_CONTRACT');\n case 11:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.PROPOSAL_CANCEL_CONTRACT');\n case 12:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CANCEL_CONTRACT');\n }\n }\n\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED');\n }\n}\n","export * from './history-type-messages-pipe.module';\nexport * from './history-type-messages.pipe';\n","export * from './contract-status-messages-pipe';\nexport * from './contract-time-left-pipe';\nexport * from './history-type-messages-pipe';\nexport * from './int-to-money-pipe';\nexport * from './is-available-alias-name-pipe';\nexport * from './money-to-int-pipe';\nexport * from './safe-html-pipe';\nexport * from './get-asset-info.pipe';\nexport * from './short-string.pipe';\n","export * from './int-to-money-pipe.module';\nexport * from './int-to-money.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IntToMoneyPipe } from '@parts/pipes/int-to-money-pipe/int-to-money.pipe';\n\n@NgModule({\n declarations: [IntToMoneyPipe],\n exports: [IntToMoneyPipe],\n providers: [IntToMoneyPipe],\n imports: [CommonModule],\n})\nexport class IntToMoneyPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { intToMoney } from '@parts/functions/int-to-money';\nimport { BigNumber } from 'bignumber.js';\n\n@Pipe({\n name: 'intToMoney',\n})\nexport class IntToMoneyPipe implements PipeTransform {\n constructor(private variablesService: VariablesService) {}\n\n transform(value: number | string | BigNumber, decimal_point = this.variablesService.decimal_point): any {\n return intToMoney(value, decimal_point);\n }\n}\n","export * from './is-available-alias-name-pipe.module';\nexport * from './is-available-alias-name.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IsAvailableAliasNamePipe } from './is-available-alias-name.pipe';\n\n@NgModule({\n declarations: [IsAvailableAliasNamePipe],\n exports: [IsAvailableAliasNamePipe],\n providers: [IsAvailableAliasNamePipe],\n imports: [CommonModule],\n})\nexport class IsAvailableAliasNamePipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Alias } from '@api/models/alias.model';\n\n@Pipe({\n name: 'isAvailableAliasName',\n})\nexport class IsAvailableAliasNamePipe implements PipeTransform {\n transform(alias: Partial | null | undefined): boolean {\n return (Boolean(alias) && Boolean(alias.name) && alias.name.length >= 2 && alias.name.length <= 6) || false;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n@Pipe({\n name: 'isVisibleControlError',\n standalone: true\n})\nexport class IsVisibleControlErrorPipe implements PipeTransform {\n\n transform(control: AbstractControl | null): boolean {\n if (!control) {\n return false;\n }\n return control.invalid && (control.dirty || control.touched);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isInitiator } from '@parts/functions/identify-transaction';\nimport { Transaction } from '@api/models/transaction.model';\n\n@Pipe({\n name: 'isVisibleFee',\n standalone: true,\n})\nexport class IsVisibleFeePipe implements PipeTransform {\n transform(transaction: Transaction): boolean {\n const { subtransfers } = transaction;\n const condition1 = subtransfers ? !subtransfers?.every(({ is_income }) => is_income) : false;\n const condition2 = isInitiator(transaction);\n return condition1 && condition2;\n }\n}\n","export * from './money-to-int-pipe.module';\nexport * from './money-to-int.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MoneyToIntPipe } from '@parts/pipes/money-to-int-pipe/money-to-int.pipe';\n\n@NgModule({\n declarations: [MoneyToIntPipe],\n exports: [MoneyToIntPipe],\n providers: [MoneyToIntPipe],\n imports: [CommonModule],\n})\nexport class MoneyToIntPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { moneyToInt } from '@parts/functions/money-to-int';\n\n@Pipe({\n name: 'moneyToInt',\n})\nexport class MoneyToIntPipe implements PipeTransform {\n constructor(private variablesService: VariablesService) {}\n\n transform(value: any): any {\n return moneyToInt(value, this.variablesService.decimal_point);\n }\n}\n","export * from './safe-html-pipe.module';\nexport * from './safe-html.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SafeHTMLPipe } from '@parts/pipes/safe-html-pipe/safe-html.pipe';\n\n@NgModule({\n declarations: [SafeHTMLPipe],\n exports: [SafeHTMLPipe],\n providers: [SafeHTMLPipe],\n imports: [CommonModule],\n})\nexport class SafeHtmlPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHTML',\n})\nexport class SafeHTMLPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'zanoShortString',\n standalone: true,\n})\nexport class ShortStringPipe implements PipeTransform {\n transform(value: string | null | undefined, left = 6, right = 6): string | null | undefined {\n return value && `${value.slice(0, left)}...${value.slice(-right)}`;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Router, NavigationEnd } from '@angular/router';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationService {\n private history: string[] = [];\n\n constructor(private router: Router, private location: Location) {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n this.history.push(event.urlAfterRedirects);\n }\n });\n }\n\n back(): void {\n this.history.pop();\n if (this.history.length > 0) {\n this.location.back();\n } else {\n this.router.navigateByUrl('/').then();\n }\n }\n}\n","import { inject, Injectable, NgZone } from '@angular/core';\nimport { ModalContainerComponent } from '../modals/modal-container/modal-container.component';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { take } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private _count: number = 0;\n\n private readonly _matDialog: MatDialog = inject(MatDialog);\n\n private readonly _ngZone: NgZone = inject(NgZone);\n\n prepareModal(type: 'error' | 'info' | 'success' | string, message: any): void {\n const config: MatDialogConfig = {\n data: {\n type,\n message,\n },\n width: '34rem'\n };\n\n this._ngZone.run(() => {\n const matDialogRef: MatDialogRef = this._matDialog.open(ModalContainerComponent, config);\n\n matDialogRef\n .afterOpened()\n .pipe(take(1))\n .subscribe(() => this._count + 1);\n matDialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe(() => this._count - 1);\n });\n }\n}\n","import { inject, Injectable, NgZone, OnDestroy } from '@angular/core';\nimport { DeeplinkParams, Wallet } from '@api/models/wallet.model';\nimport { Contact } from '@api/models/contact.model';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { Idle } from 'idlejs/dist';\nimport { Router } from '@angular/router';\nimport { ContextMenuComponent, ContextMenuService } from '@perfectmemory/ngx-contextmenu';\nimport { BigNumber } from 'bignumber.js';\nimport { Aliases } from '@api/models/alias.model';\nimport { distinctUntilChanged, map, takeUntil } from 'rxjs/operators';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VariablesService implements OnDestroy {\n disable_price_fetch$ = new BehaviorSubject(false);\n\n visibilityBalance$ = new BehaviorSubject(true);\n\n zano_current_supply = undefined;\n\n rpc_port!: number;\n\n use_debug_mode$: BehaviorSubject = new BehaviorSubject(false);\n\n info$: BehaviorSubject = new BehaviorSubject({});\n\n is_hardfok_active$: Observable = this.info$.pipe(\n map(info => {\n return Boolean(info?.['is_hardfok_active']?.[4]);\n }),\n distinctUntilChanged()\n );\n\n stop_paginate = {};\n\n sync_started: boolean = false;\n\n decimal_point: number = 12;\n\n appPass: string = '';\n\n // \\(2^{64}-1\\) => (18,446,744,073,709,551,615)\n maximum_value: BigNumber = new BigNumber('18446744073709551615');\n\n appLogin: boolean = false;\n\n zanoMoneyEquivalent: number = 0;\n\n zanoMoneyEquivalentPercent: number = 0;\n\n defaultTicker: 'ZANO' = 'ZANO';\n\n opening_wallet: Wallet;\n\n exp_med_ts: number = 0;\n\n net_time_delta_median: number = 0;\n\n height_app: number = 0;\n\n height_max: number = 0;\n\n downloaded: number = 0;\n\n total: number = 0;\n\n last_build_available: string = '';\n\n last_build_displaymode: number = 0;\n\n daemon_state: number = 3;\n\n daemon_state$: BehaviorSubject = new BehaviorSubject(this.daemon_state);\n\n deeplink$: BehaviorSubject = new BehaviorSubject(null);\n\n sendActionData$: BehaviorSubject = new BehaviorSubject({});\n\n sync = {\n progress_value: 0,\n progress_value_text: '0',\n blocks: {\n current: 0,\n max: 0,\n },\n };\n\n public sync_wallets: { [wallet_id: number]: boolean } = {};\n\n download = {\n progress_value: 0,\n progress_value_text: '0',\n };\n\n // Avoid of execute function before callback complete\n get_recent_transfers: boolean = false;\n\n default_fee: string = '0.010000000000';\n\n default_fee_big: BigNumber = new BigNumber('10000000000');\n\n settings = {\n appLockTime: 15,\n appLog: 0,\n scale: '10px',\n appUseTor: false,\n visibilityBalance: true,\n language: 'en',\n default_path: '/',\n viewedContracts: [],\n notViewedContracts: [],\n zanoCompanionForm: {\n zanoCompation: false,\n secret: '',\n },\n wallets: [],\n isDarkTheme: true,\n filters: {\n stakingFilters: null\n }\n };\n\n isDarkTheme$ = new BehaviorSubject(true);\n\n count: number = 40;\n\n maxPages: number = 5;\n\n testnet: boolean = false;\n\n // Testnet or Mainnet\n networkType = '';\n\n wallets: Array = [];\n\n currentWallet: Wallet;\n\n aliases: Aliases = [];\n\n aliasesChecked: any = {};\n\n enableAliasSearch: boolean = false;\n\n maxWalletNameLength: number = 25;\n\n maxCommentLength: number = 255;\n\n dataIsLoaded: boolean = false;\n\n contacts: Array = [];\n\n pattern: string = '^[a-zA-Z0-9_.\\\\]*|~!?@#$%^&+{}()<>:;\"\\'-=/,[\\\\\\\\]*$';\n\n after_sync_request: any = {};\n\n getExpMedTsEvent = new BehaviorSubject(null);\n\n getHeightAppEvent = new BehaviorSubject(null);\n\n getHeightMaxEvent = new BehaviorSubject(null);\n\n getDownloadedAppEvent = new BehaviorSubject(null);\n\n getTotalEvent = new BehaviorSubject(null);\n\n getAliasChangedEvent = new BehaviorSubject(null);\n\n currentWalletChangedEvent = new BehaviorSubject(null);\n\n private _dialog: Dialog = inject(Dialog);\n\n private _matDialog: MatDialog = inject(MatDialog);\n\n idle = new Idle().whenNotInteractive().do(async () => {\n if (this.appPass === '') {\n this.stopCountdown();\n } else {\n await this.ngZone.run(async () => {\n this.stopCountdown();\n this.appPass = '';\n this.appLogin = false;\n this._dialog.closeAll();\n this._matDialog.closeAll();\n await this.router.navigate(['/login'], {\n queryParams: { type: 'auth' },\n });\n });\n }\n });\n\n allContextMenu: ContextMenuComponent;\n\n onlyCopyContextMenu: ContextMenuComponent;\n\n pasteSelectContextMenu: ContextMenuComponent;\n\n private _destroy$: Subject = new Subject();\n\n constructor(private router: Router, private ngZone: NgZone, private contextMenuService: ContextMenuService) {\n this.visibilityBalance$.pipe(takeUntil(this._destroy$)).subscribe({\n next: visibilityBalance => {\n this.settings.visibilityBalance = visibilityBalance;\n },\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n get hasAppPass(): boolean {\n return Boolean(this.appPass);\n }\n\n get isCurrentWalletSync(): boolean {\n if (this.currentWallet) {\n const { wallet_id } = this.currentWallet;\n return this.sync_wallets[wallet_id] || false;\n }\n return false;\n }\n\n get isCurrentWalletLoaded(): boolean {\n if (this.currentWallet) {\n const { loaded } = this.currentWallet;\n return loaded;\n }\n return false;\n }\n\n get walletNamesForComparisons(): string[] {\n return this.wallets.map(({ name }) => name) ?? [];\n }\n\n setExpMedTs(timestamp: number): void {\n if (timestamp !== this.exp_med_ts) {\n this.exp_med_ts = timestamp;\n this.getExpMedTsEvent.next(timestamp);\n }\n }\n\n setHeightApp(height: number): void {\n if (height !== this.height_app) {\n this.height_app = height;\n this.getHeightAppEvent.next(height);\n }\n }\n\n setHeightMax(height: number): void {\n if (height !== this.height_max) {\n this.height_max = height;\n this.getHeightMaxEvent.next(height);\n }\n }\n\n setDownloadedBytes(bytes: number): void {\n if (bytes !== this.downloaded) {\n this.downloaded = this.bytesToMb(bytes);\n this.getDownloadedAppEvent.next(bytes);\n }\n }\n\n setTotalBytes(bytes: number): void {\n if (bytes !== this.total) {\n this.total = this.bytesToMb(bytes);\n this.getTotalEvent.next(bytes);\n }\n }\n\n setRefreshStacking(wallet_id: number): void {\n this.getHeightAppEvent.next(wallet_id);\n }\n\n changeAliases(): void {\n this.getAliasChangedEvent.next(true);\n }\n\n setCurrentWallet(id): void {\n this.wallets.forEach(wallet => {\n if (wallet.wallet_id === id) {\n this.currentWallet = wallet;\n this.currentWalletChangedEvent.next(wallet);\n }\n });\n }\n\n getWallet(id): Wallet | null {\n for (let i = 0; i < this.wallets.length; i++) {\n if (this.wallets[i].wallet_id === id) {\n return this.wallets[i];\n }\n }\n return null;\n }\n\n getNotLoadedWallet(): Wallet | null {\n for (let i = 0; i < this.wallets.length; i++) {\n if (!this.wallets[i].loaded) {\n return this.wallets[i];\n }\n }\n return null;\n }\n\n startCountdown(): void {\n this.idle.within(this.settings.appLockTime).start();\n }\n\n stopCountdown(): void {\n this.idle.stop();\n }\n\n restartCountdown(): void {\n if (Boolean(this.settings.appLockTime)) {\n this.idle.within(this.settings.appLockTime).restart();\n } else {\n this.stopCountdown();\n }\n }\n\n bytesToMb(bytes): number {\n return Number((bytes / Math.pow(1024, 2)).toFixed(1));\n }\n\n onContextMenu($event: any): void {\n $event.target['contextSelectionStart'] = $event.target['selectionStart'];\n $event.target['contextSelectionEnd'] = $event.target['selectionEnd'];\n if (\n $event.target &&\n ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') &&\n !$event.target['readOnly']\n ) {\n this.contextMenuService.show(this.allContextMenu, {\n x: $event.x,\n y: $event.y,\n value: $event.target,\n });\n $event.preventDefault();\n $event.stopPropagation();\n }\n }\n\n onContextMenuOnlyCopy($event: any, copyText?: string): void {\n $event.preventDefault();\n $event.stopPropagation();\n this.contextMenuService.show(this.onlyCopyContextMenu, {\n value: copyText,\n x: $event.x,\n y: $event.y,\n });\n }\n\n onContextMenuPasteSelect($event: any): void {\n $event.target['contextSelectionStart'] = $event.target['selectionStart'];\n $event.target['contextSelectionEnd'] = $event.target['selectionEnd'];\n\n console.warn($event.target);\n console.warn($event.target['disabled']);\n\n if (\n $event.target &&\n ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') &&\n !$event.target['readOnly']\n ) {\n this.contextMenuService.show(this.pasteSelectContextMenu, {\n x: $event.x,\n y: $event.y,\n value: $event.target,\n });\n $event.preventDefault();\n $event.stopPropagation();\n }\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ResponseGetWalletInfo, Wallet } from '@api/models/wallet.model';\nimport { Router } from '@angular/router';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { AssetsWhitelistGetResponseData } from '@api/models/assets.model';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WalletsService {\n get wallets(): Wallet[] {\n return this.variablesService.wallets;\n }\n\n set wallets(value) {\n this.variablesService.wallets = value ?? [];\n }\n\n get currentWallet(): Wallet | null | undefined {\n return this.variablesService.currentWallet;\n }\n\n set currentWallet(value) {\n this.variablesService.currentWallet = value;\n }\n\n constructor(\n private backendService: BackendService,\n private variablesService: VariablesService,\n private _translateService: TranslateService,\n private router: Router,\n private ngZone: NgZone\n ) {}\n\n addWallet(wallet: Wallet): void {\n const { wallet_id, staking } = wallet;\n\n if (staking) {\n const message = this._translateService.instant('STAKING.WALLET_STAKING_ON', { value: wallet.alias?.name ?? wallet.name });\n this.backendService.show_notification('Wallet staking on', message);\n }\n\n this.variablesService.wallets.push(wallet);\n this.updateWalletInfo(wallet_id);\n }\n\n loadAssetsWhitelist(wallet_id: number): void {\n const wallet = this.getWalletById(wallet_id);\n\n if (!wallet) {\n console.warn(`You want update assetsWhiteList by wallet_id: (${wallet_id}). But this wallet not uploaded.`);\n return;\n }\n\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'assets_whitelist_get',\n params: {},\n };\n this.backendService.call_wallet_rpc([wallet_id, params], (status, response_data: AssetsWhitelistGetResponseData) => {\n const { result } = response_data;\n wallet.assetsInfoWhitelist = result;\n });\n }\n\n getWalletById(wallet_id: number): Wallet | undefined {\n const { wallets } = this.variablesService;\n return wallets.find(w => w.wallet_id === wallet_id);\n }\n\n updateWalletInfo(wallet_id: number): void {\n const wallet = this.getWalletById(wallet_id);\n\n if (!wallet) {\n console.warn(`You want update walletInfo by wallet_id: (${wallet_id}). But this wallet not uploaded.`);\n return;\n }\n const callback: (status: boolean, response_data: ResponseGetWalletInfo) => void = (status, response_data) => {\n this.ngZone.run(() => {\n if (status) {\n const { balances } = response_data;\n wallet.balances = balances;\n }\n });\n };\n\n this.backendService.getWalletInfo(wallet_id, callback);\n\n this.loadAssetsWhitelist(wallet_id);\n }\n\n closeWallet(wallet_id: number): void {\n const callback = async (): Promise => {\n this.wallets = this.wallets.filter(w => w.wallet_id !== wallet_id);\n\n await this.ngZone.run(async () => {\n let url = '/';\n if (this.wallets.length > 0) {\n this.currentWallet = this.wallets[0];\n url = '/wallet/';\n }\n if (this.variablesService.appPass) {\n this.backendService.storeSecureAppData();\n }\n await this.router.navigate([url]);\n });\n };\n\n this.backendService.closeWallet(wallet_id, callback);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\ntype TLoaderId = 'fullScreen';\n\ninterface TDataLoader {\n state: boolean;\n message: string;\n}\n\ntype TDataLoaders = {\n [key in TLoaderId]: TDataLoader;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZanoLoadersService {\n private _loaders$ = new BehaviorSubject({\n fullScreen: { state: false, message: 'Loading' },\n });\n\n getState(id: TLoaderId): Observable {\n return this._loaders$.pipe(map(loader => loader[id].state));\n }\n\n getMessage(id: TLoaderId): Observable {\n return this._loaders$.pipe(map(loader => loader[id].message));\n }\n\n open(id: TLoaderId, message: string = 'Loading'): void {\n this._loaders$.next({\n ...this._loaders$.value,\n [id]: {\n state: true,\n message,\n },\n });\n }\n\n close(id: TLoaderId): void {\n this._loaders$.next({\n ...this._loaders$.value,\n [id]: {\n ...this._loaders$.value[id],\n state: false,\n },\n });\n }\n}\n","export const MIMETypes: string[] = [\n '.rar',\n '.txt',\n '.xls',\n '.xlsx',\n '.zip',\n '.png',\n '.pdf',\n '.csv',\n '.doc',\n '.docx',\n '.jar',\n '.jpeg',\n '.jpg',\n '.js',\n '.json',\n '.mp3',\n '.mp4',\n '.mpeg',\n '.aac',\n '.abw',\n '.arc',\n '.avif',\n '.avi',\n '.azw',\n '.bin',\n '.bmp',\n '.bz',\n '.bz2',\n '.cda',\n '.csh',\n '.css',\n '.dll',\n '.exe',\n '.eot',\n '.epub',\n '.gz',\n '.gif',\n '.htm',\n '.html',\n '.ico',\n '.ics',\n '.jsonld',\n '.mid',\n '.midi',\n '.mjs',\n '.mpkg',\n '.odp',\n '.ods',\n '.odt',\n '.oga',\n '.ogv',\n '.ogx',\n '.opus',\n '.otf',\n '.php',\n '.ppt',\n '.pptx',\n '.pdb',\n '.dat',\n '.rtf',\n '.sh',\n '.svg',\n '.tar',\n '.tif',\n '.tiff',\n '.ts',\n '.ttf',\n '.vsd',\n '.wav',\n '.weba',\n '.webm',\n '.webp',\n '.woff',\n '.woff2',\n '.xhtml',\n '.xml',\n '.xul',\n '.3gp',\n '.3g2',\n '.7z',\n];\n","export const generateRandomString = (length: number = 40): string => {\n const array: Uint8Array = new Uint8Array(length);\n window.crypto.getRandomValues(array);\n\n const regularArray: number[] = Array.from(array);\n\n return btoa(String.fromCharCode.apply(null, regularArray));\n};\n","import { ValidationErrors } from '@angular/forms';\n\nexport interface ZanoValidationErrors extends ValidationErrors {\n errorText: string;\n}\n\nexport const wrongAssetId: ZanoValidationErrors = {\n errorText: 'ASSETS.FORM.ERRORS.WRONG_ASSET_ID',\n};\n\nexport const wrongPassword: ZanoValidationErrors = {\n errorText: 'Incorrect password',\n};\n\nexport const insuficcientFunds: ZanoValidationErrors = {\n errorText: 'ERRORS.INSUFFICIENT_FUNDS',\n};\n\nexport const assetHasNotBeenAddedToWallet: ZanoValidationErrors = {\n errorText: 'ERRORS.ASSET_HAS_NOT_BEEN_ADDED_TO_WALLET',\n};\n\nexport const notFileZanoWallet: ZanoValidationErrors = {\n errorText: 'ERRORS.NOT_FILE_ZANO_WALLET',\n};\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { notFileZanoWallet, ZanoValidationErrors } from '@parts/utils/zano-errors';\nimport { MIMETypes } from '@parts/utils/MIME-types';\n\nexport const regExpHex = /^[a-f0-9]{64}$/i;\nexport const regExpAliasName = /^@?[a-z\\d.-]{2,25}$/;\nexport const regExpPassword = /^(?! )[a-zA-Z0-9_.\\]*|~!?@#$%^&+{}()<>:;\"'-=,\\/[\\\\ ]*(?\n abstractControl.get(firstControlName).value === abstractControl.get(secondControlName).value ? null : { [nameErrorKey]: true };\n }\n\n static duplicate(valuesForComparisons: string | string[]): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n const errorObject = { duplicate: true };\n let error = null;\n\n if (typeof value === 'string' && value === valuesForComparisons) {\n error = errorObject;\n }\n\n if (Array.isArray(valuesForComparisons) && valuesForComparisons.includes(value)) {\n error = errorObject;\n }\n\n return error;\n };\n }\n}\n\nexport const filePathWalletValidator = (path: string): ZanoValidationErrors | null => {\n if (!(path && path.trim().length)) {\n return null;\n }\n\n const positionLastSlash = path.lastIndexOf('/');\n const fileName = path.slice(positionLastSlash + 1);\n\n if (!(fileName && fileName.trim().length)) {\n return null;\n }\n\n if (fileName) {\n let index = 0;\n while (index < MIMETypes.length) {\n if (fileName.includes(MIMETypes[index])) {\n return notFileZanoWallet;\n }\n index++;\n }\n }\n\n return null;\n};\n","import { Injectable, NgZone } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { PaginationStore } from './pagination.store';\nimport * as _ from 'lodash';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaginationService {\n constructor(private variables: VariablesService, private ngZone: NgZone, private paginationStore: PaginationStore) {}\n\n paginate(currentPage = 1): void {\n if (currentPage < 1) {\n currentPage = 1;\n } else if (currentPage > this.variables.currentWallet.totalPages) {\n currentPage = this.variables.currentWallet.totalPages;\n }\n let startPage: number, endPage: number;\n if (this.variables.currentWallet.totalPages <= this.variables.maxPages) {\n startPage = 1;\n endPage = this.variables.currentWallet.totalPages;\n } else {\n const maxPagesBeforeCurrentPage = Math.floor(this.variables.maxPages / 2);\n const maxPagesAfterCurrentPage = Math.ceil(this.variables.maxPages / 2) - 1;\n if (currentPage <= maxPagesBeforeCurrentPage) {\n startPage = 1;\n this.variables.currentWallet.totalPages > this.variables.maxPages\n ? (endPage = this.variables.maxPages)\n : (endPage = this.variables.currentWallet.totalPages);\n } else if (currentPage + maxPagesAfterCurrentPage >= this.variables.currentWallet.totalPages) {\n startPage = this.variables.currentWallet.totalPages - this.variables.maxPages + 1;\n endPage = this.variables.currentWallet.totalPages;\n } else {\n startPage = currentPage - maxPagesBeforeCurrentPage;\n endPage = currentPage + maxPagesAfterCurrentPage;\n }\n }\n this.ngZone.run(() => {\n this.variables.currentWallet.pages = Array.from(Array(endPage + 1 - startPage).keys()).map(i => startPage + i);\n });\n }\n\n getOffset(walletID): number {\n const mining = this.variables.currentWallet.exclude_mining_txs;\n const currentPage = this.variables.currentWallet.currentPage;\n let offset = (currentPage - 1) * this.variables.count;\n if (!mining) {\n return offset || 0;\n }\n const value = this.paginationStore.value;\n const pages = value.filter(item => item.walletID === walletID);\n if (pages && pages.length > 0) {\n const max = _.maxBy(pages, 'page');\n const isForward = this.paginationStore.isForward(pages, currentPage);\n if (isForward) {\n offset = max.offset || 0;\n } else {\n const index = pages.findIndex(item => item.page === currentPage);\n offset = pages[index].offset || 0;\n }\n }\n return offset;\n }\n\n calcPages(data): void {\n if (data.total_history_items && data && data.history) {\n this.variables.currentWallet.totalPages = Math.ceil(data.total_history_items / this.variables.count);\n this.variables.currentWallet.totalPages > this.variables.maxPages\n ? (this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (this.variables.currentWallet.pages = new Array(this.variables.currentWallet.totalPages)\n .fill(1)\n .map((value, index) => value + index));\n } else if (this.variables.currentWallet.restore) {\n this.variables.currentWallet.totalPages = Math.ceil((data.history?.length ?? 0) / this.variables.count);\n this.variables.currentWallet.totalPages > this.variables.maxPages\n ? (this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (this.variables.currentWallet.pages = new Array(this.variables.currentWallet.totalPages)\n .fill(1)\n .map((value, index) => value + index));\n }\n }\n\n prepareHistory(data, status): void {\n if (status && data && data.total_history_items) {\n this.variables.currentWallet.history.splice(0, this.variables.currentWallet.history.length);\n this.ngZone.run(() => {\n this.paginate(this.variables.currentWallet.currentPage);\n if (data.history.length !== 0) {\n this.variables.currentWallet.restore = false;\n this.variables.currentWallet.total_history_item = data.total_history_items;\n this.variables.currentWallet.prepareHistory(data.history);\n if (this.variables.currentWallet.currentPage === 1 && data.unconfirmed) {\n this.variables.currentWallet.prepareHistory(data.unconfirmed.sort((a, b) => a.timestamp - b.timestamp));\n }\n }\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as _ from 'lodash';\n\nexport interface Pages {\n page: number;\n offset: number;\n walletID: number;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaginationStore {\n private subject = new BehaviorSubject(null);\n\n get value(): Pages[] | null {\n return this.subject.value;\n }\n\n isForward(pages, currentPage): boolean {\n const max = _.maxBy(pages, 'page');\n return !max || max.page < currentPage || max.page === currentPage;\n }\n\n setPage(pageNumber: number, offset: number, walletID: number): void {\n let newPages: Pages[] = [];\n const pages = this.subject.getValue();\n if (pages && pages.length > 0) {\n newPages = pages.slice(0);\n }\n newPages.push({ page: pageNumber, offset, walletID });\n this.subject.next(newPages);\n }\n}\n","import { distinctUntilChanged, map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Wallet } from '@api/models/wallet.model';\nimport { Injectable } from '@angular/core';\n\nexport interface Sync {\n sync: boolean;\n wallet_id: number;\n}\n\nexport enum StateKeys {\n wallets = 'wallets',\n sync = 'sync',\n}\n\nexport interface State {\n [StateKeys.wallets]: Wallet[] | null | undefined;\n [StateKeys.sync]: Sync[] | null | undefined;\n}\n\nconst initialState: State = {\n wallets: undefined,\n sync: undefined,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class Store {\n private subject = new BehaviorSubject(initialState);\n private store = this.subject.asObservable().pipe(distinctUntilChanged());\n\n get state(): State {\n return this.subject.value;\n }\n\n select(name: StateKeys): Observable {\n return this.store.pipe(map(state => state[name])) as unknown as Observable;\n }\n\n set(name: StateKeys, value: any): void {\n this.subject.next({ ...this.state, [name]: value });\n }\n}\n","export const materialZanoIcons = [\n 'zano-arrow-left',\n 'zano-arrow-right',\n 'zano-balance',\n 'zano-block-sync',\n 'zano-burn',\n 'zano-check',\n 'zano-check-circle',\n 'zano-check-shield',\n 'zano-close',\n 'zano-close-v2',\n 'zano-contacts',\n 'zano-contracts',\n 'zano-copy',\n 'zano-custom-asset',\n 'zano-delete',\n 'zano-dropdown-arrow-down',\n 'zano-edit',\n 'zano-emit',\n 'zano-export',\n 'zano-fire',\n 'zano-hide-balance',\n 'zano-history',\n 'zano-info',\n 'zano-info-v2',\n 'zano-logo',\n 'zano-logout',\n 'zano-plus',\n 'zano-question',\n 'zano-receive',\n 'zano-regenerate',\n 'zano-row-options',\n 'zano-send',\n 'zano-settings',\n 'zano-show-balance',\n 'zano-system-modal-error',\n 'zano-system-modal-info',\n 'zano-system-modal-success',\n 'zano-staking',\n 'zano-secured',\n 'zano-swap',\n 'zano-update',\n 'zano-wallet-settings',\n];\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\nimport 'lodash';\n\nexport const buildTime = '2024-09-18T12:08:28.621Z';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"names":["NgZone","Observable","Subject","JSONBigNumber","BigNumber","ParamsType","getParamsType","value","array","Array","isArray","object","Object","keys","includes","convertersObjectForTypes","string","stringify","map","v","convertorParams","type","StatusCurrentActionState","Commands","BackendService","constructor","translate","variablesService","modalService","moneyToIntPipe","ngZone","bigNumberParser","key","val","_a","name","indexOf","toNumber","i","length","Debug","message","console","error","warn","log","eventSubscribe","command","callback","on_core_event","backendObject","connect","str","parse","initService","observer","backendLoaded","window","QWebChannel","qt","webChannelTransport","channel","objects","mediator_object","next","webkitLaunchedScript","runCommand","webkit_launched_script","quitRequest","on_request_quit","getAppData","get_app_data","storeAppData","wallets","settings","forEach","wallet","push","path","store_app_data","getSecureAppData","pass","get_secure_app_data","setMasterPassword","set_master_password","checkMasterPassword","check_master_password","getIsDisabledNotifications","params","get_is_disabled_notifications","setIsDisabledNotifications","state","set_is_disabled_notifications","storeSecureAppData","contacts","staking","contact","address","notes","data","store_secure_app_data","JSON","appPass","dataStore","backendCallback","dropSecureAppData","drop_secure_app_data","haveSecureAppData","have_secure_app_data","saveFileDialog","caption","fileMask","default_path","dir","filemask","default_dir","show_savefile_dialog","openFileDialog","show_openfile_dialog","storeFile","buff","store_to_file","loadFile","load_from_file","push_offer","generateWallet","generate_wallet","exportWalletHistory","json_string","export_wallet_history","openWallet","txs_to_return","testEmpty","open_wallet","closeWallet","wallet_id","close_wallet","getSmartWalletInfo","seed_password","get_smart_wallet_info","getSeedPhraseInfo","param","get_seed_phrase_info","runWallet","run_wallet","isValidRestoreWalletText","is_valid_restore_wallet_text","restoreWallet","seed_phrase","seed_pass","restore_wallet","sendMoney","amount","fee","mixin","comment","hide_receiver","push_payer","asset_id","destinations","mixin_count","lock_time","transform","asyncCall","transfer","setupJwtWalletRpc","secret","setup_jwt_wallet_rpc","zanoCompanionForm","validateAddress","validate_address","setClipboard","set_clipboard","getClipboard","get_clipboard","createProposal","title","a_addr","b_addr","to_pay","a_pledge","b_pledge","time","payment_id","parseInt","details","t","c","expiration_period","default_fee_big","b_fee","create_proposal","getContracts","get_contracts","acceptProposal","contract_id","accept_proposal","releaseProposal","release_type","release_contract","requestCancelContract","request_cancel_contract","acceptCancelContract","accept_cancel_contract","getMiningHistory","get_mining_history","startPosMining","start_pos_mining","stopPosMining","stop_pos_mining","openUrlInBrowser","url","open_url_in_browser","start_backend","node","host","port","configure_for_remote_node","remote_node_host","remote_node_port","getDefaultFee","get_default_fee","setBackendLocalization","stringsArray","strings","language_title","set_localization_strings","registerAlias","alias","reward","tracking_key","request_alias_registration","updateAlias","replace","request_alias_update","getAllAliases","get_all_aliases","getAliasInfoByName","get_alias_info_by_name","getAliasByAddress","get_alias_info_by_address","getAliasCoast","get_alias_coast","resyncWallet","id","resync_wallet","getWalletAlias","daemon_state","aliasesChecked","aliases","status","getContactAlias","getRecentTransfers","offset","count","exclude_mining_txs","get_recent_transfers","getPoolInfo","get_tx_pool_info","getVersion","get_version","version","errorVersion","get_network_type","status_network","errorType","setLogLevel","level","set_log_level","async_call","job_id","asyncCall2a","async_call_2a","dispatchAsyncCallResult","dispatch_async_call_result","json_resp","asyncCommandResults","response","group","groupEnd","run","setTimeout","dispatchAsyncCallResult$","handleCurrentActionState","handle_current_action_state","currentActionState","handleCurrentActionState$","setEnableTor","set_enable_tor","show_notification","getOptions","get_options","disable_price_fetch","use_debug_mode","rpc_port","disable_price_fetch$","use_debug_mode$","addCustomAssetId","add_custom_asset_id","removeCustomAssetId","remove_custom_asset_id","getWalletInfo","get_wallet_info","call_rpc","call_wallet_rpc","informerRun","error_translate","instant","default_fee","currency","defaultTicker","prepareModal","commandDebug","result","debug","_send_params","_result","e","response_data","error_code","resultStr","Result","core_busy","Status","undefined","res_error_code","current_wallet_id","currentWallet","Action","i0","factory","providedIn","Renderer2","StateKeys","take","takeUntil","paths","pathsChildrenAuth","hasOwnProperty","Breakpoints","AppComponent","http","renderer","backendService","router","intToMoneyPipe","store","dialog","matDialog","zanoLoadersService","_breakpointObserver","Map","XSmall","Small","Medium","Large","XLarge","addLangs","setDefaultLang","use","pipe","destroy$","subscribe","translateUsed","_setResponseClasses","observe","query","breakpoints","currentScreenSize","displayNameMap","get","document","body","classList","remove","values","add","language","ngOnInit","initMessage","st2","dd2","quit_requested","onQuitRequest","closeAll","needOpenWallets","saveFunction","recursionCloseWallets","lastIndex","splice","update_wallet_status","wallet_state","is_mining","getWallet","loaded","balances","mined_total","minied_total","alias_available","is_alias_operations_available","has_bare_unspent_outputs","wallet_sync_progress","progress","sync_started","sync_wallets","addToStore","update_daemon_state","daemon_network_state","setExpMedTs","net_time_delta_median","last_build_available","last_build_displaymode","setHeightApp","height","setHeightMax","max_net_seen_height","setDownloadedBytes","downloaded_bytes","setTotalBytes","download_total_data_size","daemon_state$","max","current","return_val","Math","floor","sync","progress_value","progress_value_text","blocks","toFixed","download","firstOnlineState","getAliases","status_fee","data_fee","money_transfer","ti","tr_info","history","tx_type","setRefreshStacking","tr_exists","excluded_history","some","elem","tx_hash","currentPage","prepareHistory","restore","total_history_item","totalPages","ceil","maxPages","pages","fill","index","exp_med_ts","height_app","contract","contracts","is_a","cancel_expiration_time","expiration_time","timestamp","searchResult2","notViewedContracts","find","j","viewedContracts","searchResult3","searchResult4","searchResult","is_new","findContract","prop","handle_deeplink_click","deeplink$","money_transfer_cancel","removeFromHistory","error_tr","events","method","enableAliasSearch","newAlias","concat","changeAliases","CurrentAlias","element","intervalUpdateContractsState","setInterval","expMedTsEvent","getExpMedTsEvent","newTimestamp","isDarkTheme$","visibilityBalance$","isDarkTheme","visibilityBalance","appUseTor","scale","setStyle","documentElement","setAttribute","appLog","navigate","auth","noWallet","then","statusPass","queryParams","appLogin","getInfo","_getZanoCurrentSupply","updateTime","updateMoneyEquivalent","intervalUpdatePriceState","clearInterval","ngOnDestroy","unsubscribe","success","zanoMoneyEquivalent","zanoMoneyEquivalentPercent","sort","a","b","boolean","filter","item","set","testnet","networkType","jsonrpc","info$","flags","zano_current_supply","_b","selectors","decls","vars","consts","template","inject","TranslateService","CREATE_NEW_WALLET_HELP_PAGE","filePathWalletValidator","AddWalletComponent","translateService","file_status","file_data","positionLastSlash","lastIndexOf","new_default_path","slice","text","errorText","openInBrowser","ctx","FormBuilder","Validators","regExpAliasName","AssignAliasComponent","backend","intToMoney","routerLink","fb","nonNullable","control","required","pattern","maxLength","maxCommentLength","price","rewardOriginal","exists","assignForm","valueChanges","canRegister","newName","toLowerCase","controls","errors","statusPrice","dataPrice","sum","unlocked_balance","getBalanceByTicker","unlocked","notEnoughMoney","isGreaterThan","complete","assignAlias","wakeAlias","Wallet","BehaviorSubject","regExpPassword","ZanoValidators","LoginComponent","walletsService","route","password","confirmation","validators","formMatch","zanoLogo","onSubmitCreatePass","regForm","valid","dataIsLoaded","appLockTime","startCountdown","onSkipCreatePass","resetJwtWalletRpc","zanoCompation","resetLoading$","closeAllWallets","onSubmitAuthPass","submitLoading$","authForm","prevUrl","setAuthPassError","wrong_password","getData","isEmptyObject","getWalletData","walletData","openWallets","runWallets","wallet_index","open_status","open_data","open_error","new_wallet","balance","tracking_hey","is_auditable","is_watch_only","recent_history","total_history_items","addWallet","run_status","setErrors","NonNullableFormBuilder","VariablesService","ModalService","Router","WalletsService","CreateWalletComponent","duplicate","walletNamesForComparisons","confirm","savedWalletName","createForm","substr","createWallet","loading$","selectedPath","getRawValue","generate_status","generate_data","errorCode","run_data","setCurrentWallet","errorTranslationKey","selectWalletLocation","patchValue","delay","DeeplinkComponent","notFileZanoWallet","wrongPassword","OpenWalletComponent","maxWalletNameLength","filePath","openWalletForm","filename","markAsTouched","openStatus","openData","open_from_exist","scaleItems","generateRandomString","debounceTime","ctx_r26","ctx_r7","SettingsComponent","compose","new_password","new_confirmation","disabled","hasAppPass","translationKey","setValue","emitEvent","currentBuild","currentNotificationsState","generateSecret","copySecret","isSecretWasCopied","secretWasCopiedTimeout","clearTimeout","regenerateSecret","setScale","onSubmitChangePass","changeForm","enable","onSave","reset","toggleNotifications","toggleUseTor","ifSaved","onLockChange","restartCountdown","onLogChange","onLanguageChange","showPrice","toggleDarkTheme","AssetDetailsComponent","Dialog","ConfirmModalComponent","LOCKED_BALANCE_HELP_PAGE","defaultImgSrc","zanoAssetInfo","MatDialog","$event","ctx_r4","asset_r5","_r8","ctx_r0","ctx_r1","AssetsComponent","paginatePipeArgs","paginationId","itemsPerPage","isShowPagination","listenChangeWallet","toggleDropDownMenu","trigger","asset","isOpenDropDownMenu","triggerOrigin","currentAsset","trackByAssets","asset_info","trackByPages","assetDetails","config","assetInfo","_matDialog","open","beforeRemoveAsset","full_name","afterClosed","confirmed","removeAsset","sendMoneyParams","updateWalletInfo","getBalanceTooltip","tooltip","createElement","scrollWrapper","total","ticker","decimal_point","available","innerText","availableB","appendChild","locked","lockedB","minus","link","innerHTML","addEventListener","currentWalletChangedEvent","insuficcientFunds","moneyToInt","MAT_DIALOG_DATA","MatDialogRef","BurnCustomAssetComponent","_fb","maximum_value","prepared_amount","assetBalance","getBalanceByAssetId","asset_not_found","maximum_amount_by_decimal_point","greater_than_maximum_amount","preparedUnlocked","submit","form","burn_amount","toString","_backendService","_ngZone","matDialogRef","close","EmitCustomAssetComponent","total_max_supply","current_supply","prepared_total_max_supply","prepared_current_supply","plus","greater_than_total_max_supply","regExpHex","UpdateCustomAssetComponent","owner","test","hex_not_valid","assign","address_not_valid","hasError","asset_descriptor","ConfirmCreateCustomAssetComponent","TransactionDetailsForCustomAssetsComponent","CreateNewAssetComponent","minLength","min","meta_info","hidden_supply","isLessThan","greater_than_max","disableClose","Boolean","_router","countDestination","destinationAmount","halfDestinationAmount","div","eq","ElementRef","EventEmitter","BLOCK_EXPLORER_TN_TX_URL_PREFIX","BLOCK_EXPLORER_TX_URL_PREFIX","successfulStatuses","STATE_SENDING","STATE_SENT_SUCCESS","STATE_INITIALIZING","STATE_DOWNLOADING_CONSENSUS","STATE_MAKING_TUNNEL_A","STATE_MAKING_TUNNEL_B","STATE_CREATING_STREAM","STATE_SUCCESS","failedStatuses","STATE_SEND_FAILED","STATE_FAILED","SendDetailsModalComponent","currentActionState$","currentActionStates","currentActionStates$","isSentSuccess","isSentFailed","isDetailsNotEmpty","responseData$","addClass","actionState","removeClass","toggleDetails","stateDetails$","scrollToBottomDetailsList","trackBy","isSuccess","action","isFailed","elDetailsList","nativeElement","scrollTop","scrollHeight","hash","viewQuery","MIXIN","catchError","distinctUntilChanged","retry","startWith","switchMap","tap","combineLatest","merge","of","defaultSendMoneyParams","WrapInfoService","HttpClient","_r20","ctx_r14","_r11","ctx_r5","ctx_r8","SendComponent","balances$","isVisibleWrapInfoState$","items","decimalPoint","inputTicker","hintTicker","hintAmount","reverseDisabled","_walletsService","_getWrapInfo","_createForm","_destroy$","updateAddressErrorMessage","errorMessages","updateAmountErrorMessage","_translateService","updateFeeErrorMessage","getSrcByAsset","logo","isVisibleError","invalid","dirty","touched","beforeSubmit","isSendModalState","handleConfirmed","isAmountUSD","convertedAmountUSD","usd","priceInfo","convertedAmount","dividedBy","decimalPlaces","aliasName","alias_not_found","isSendDetailsModalState","getReceivedValue","preparedAmount","tx_cost","zano_needed_for_erc20","wrapInfo","needed","handeCloseSendDetailsModal","pasteListenAddressField","event","preventDefault","clipboardData","lowerCaseDisabled$","trackByFn","toggleAmountUSD","history_asset","aliasAddress","valid_status","alias_not_valid","alias_status","alias_data","isZero","zero","greater_than_max_amount","less_min","wrap_info_null","unwraped_coins_left","great_than_unwraped_coins","less_than_zano_needed","_listenSendActionData","_saveSendMoneyParams","_formListeners","markAllAsTouched","updateValueAndValidity","_updateErrorMessages","_priceInfo$","_c","multipliedBy","_d","amountInputParams","default$","price$","_httpClient","err","statusChanges","addressItems$","condition","loadingAddressItems$","_openedWalletItems","_aliasItems","wrapInfoService","getWrapInfo","loadingWrapInfo$","sendActionData$","comments","mixins","hide_sender","isVisibleAdditionalOptionsState","ChangeDetectorRef","CommonModule","RouterLinkWithHref","TranslateModule","BreadcrumbsComponent","DefaultImgModule","InputValidateModule","LowerCaseDirective","FormsModule","ReactiveFormsModule","IntToMoneyPipeModule","MoneyToIntPipeModule","ShortStringPipe","NgSelectModule","assetHasNotBeenAddedToWallet","LoaderComponent","MatAutocompleteModule","MatOptionModule","MatIconModule","ctx_r3","_r31","ctx_r25","_r22","CreateSwapComponent","allAssetsInfo","receiverAddress","getSrcByAssetInfo","isVisibleErrorByControl","isVisibleErrorByForm","reverse","sending","receiving","updateReceiverAddressErrorMessage","pasteListenReceiverAddressField","sendingAsset","getAssetInfoByAssetId","receivingAsset","params2","proposal","to_finalizer","to_initiator","fee_paid_by_a","navigateByUrl","hex_raw_proposal","errorRpc","sendingAssetsInfo$","receivingAssetsInfo$","sendingDecimalPoint$","receivingDecimalPoint$","isEmptyAssetsInfoWhitelist","_cdr","markForCheck","detectChanges","sameAssetsId","_setSendingAssetIdFromHistoryState","standalone","features","i1","i2","i3","i4","i5","i6","i8","styles","ExportHistoryModalComponent","AddCustomTokenComponent","NavigationCancel","NavigationEnd","NavigationError","NavigationStart","ZARCANUM_MIGRATION","MigrateWalletToZarcanumComponent","BreakpointObserver","objTabs","assets","icon","hidden","send","receive","swap","indicator","WalletComponent","breakpointObserver","matches","walletLoaded","createTabs","setDisabledTabs","is_hardfok_active$","setHiddenTabs","navigationInterceptor","loader","conditionForHiding","tabs","onKeyPressed","openDropdown","walletSyncVisible","onKeyUpPressed","settingsButtonInterval","settingsButtonDisabled","select","in_progress","getAliasChangedEvent","updateWalletStatus","toggleMenuDropdown","resyncCurrentWallet","addCustomToken","exportHistory","openZarcanumMigration","openMigrateWalletToZarcanum","ids","tab","hostBindings","_r3","OpenWalletModalComponent","notFound","emptyPass","isWrongPassword$","skipWallet","hostVars","Idle","contextMenuService","info","filters","stakingFilters","whenNotInteractive","do","stopCountdown","_dialog","isCurrentWalletSync","isCurrentWalletLoaded","getHeightAppEvent","height_max","getHeightMaxEvent","bytes","downloaded","bytesToMb","getDownloadedAppEvent","getTotalEvent","getNotLoadedWallet","idle","within","start","stop","restart","Number","pow","onContextMenu","target","toUpperCase","show","allContextMenu","x","y","stopPropagation","onContextMenuOnlyCopy","copyText","onlyCopyContextMenu","onContextMenuPasteSelect","pasteSelectContextMenu","loadAssetsWhitelist","getWalletById","assetsInfoWhitelist","w"],"sourceRoot":"webpack:///","x_google_ignoreList":[]} \ No newline at end of file diff --git a/html_source/src/main.ts b/html_source/src/main.ts index e6f62012..e93ed48c 100644 --- a/html_source/src/main.ts +++ b/html_source/src/main.ts @@ -5,7 +5,7 @@ import { AppModule } from './app/app.module'; import { environment } from './environments/environment'; import 'lodash'; -export const buildTime = '2024-09-18T09:21:23.110Z'; +export const buildTime = '2024-09-18T12:08:28.621Z'; if (environment.production) { enableProdMode();