diff --git a/html_source/src/app/api/models/transaction.model.ts b/html_source/src/app/api/models/transaction.model.ts index 9ec86192..e7864edd 100644 --- a/html_source/src/app/api/models/transaction.model.ts +++ b/html_source/src/app/api/models/transaction.model.ts @@ -1,6 +1,6 @@ import { BigNumber } from 'bignumber.js'; -export class Transaction { +export interface Transaction { comment: string; employed_entries: { receive: { @@ -22,11 +22,11 @@ export class Transaction { payment_id: string; remote_addresses: string[]; show_sender: boolean; - subtransfers: { + subtransfers?: { amount: BigNumber; asset_id: string; is_income: boolean; - }[]; + }[] | undefined; timestamp: number; tx_blob_size: number; remote_aliases?: string[]; diff --git a/html_source/src/app/api/models/wallet.model.ts b/html_source/src/app/api/models/wallet.model.ts index 27e7355b..478e59c7 100644 --- a/html_source/src/app/api/models/wallet.model.ts +++ b/html_source/src/app/api/models/wallet.model.ts @@ -132,8 +132,8 @@ export class Wallet { prepareHistory(items: Transaction[]): void { for (let i = 0; i < items.length; i++) { if ( - (items[i].tx_type === 7 && items[i].subtransfers.find(({ is_income }) => is_income)) || - (items[i].tx_type === 11 && items[i].subtransfers.find(({ is_income }) => is_income)) + (items[i].tx_type === 7 && items[i].subtransfers?.find(({ is_income }) => is_income)) || + (items[i].tx_type === 11 && items[i].subtransfers?.find(({ is_income }) => is_income)) ) { let exists = false; for (let j = 0; j < this.excluded_history.length; j++) { diff --git a/html_source/src/app/pages/wallet/tabs/history/history.component.ts b/html_source/src/app/pages/wallet/tabs/history/history.component.ts index 6b3c3790..8b910f87 100644 --- a/html_source/src/app/pages/wallet/tabs/history/history.component.ts +++ b/html_source/src/app/pages/wallet/tabs/history/history.component.ts @@ -47,168 +47,190 @@ import { zanoAssetInfo } from '@parts/data/assets'; > - -
- - - - - - - - - - - + + +
+ + + + + + - {{ - (subtransfer.is_income ? 'HISTORY.RECEIVED' : 'HISTORY.SEND') | translate - }} + + + + - - - - + {{ + (subtransfer.is_income ? 'HISTORY.RECEIVED' : 'HISTORY.SEND') | translate + }} + + + + + + + + + - + - + - - - - -
+
+
+ + +
+ + + {{ 'HISTORY.RECEIVED' | translate }} +
+
- - - -
- - {{ subtransfer.amount.minus(transaction.fee ?? 0).negated() | intToMoney }} - - - {{ subtransfer.amount | intToMoney }} - - {{ (subtransfer.asset_id | getAsset)?.asset_info.ticker || '???' }} -
+ + + + +
+ + {{ subtransfer.amount.minus(transaction.fee ?? 0).negated() | intToMoney }} + + + {{ subtransfer.amount | intToMoney }} + + {{ (subtransfer.asset_id | getAsset)?.asset_info.ticker || '???' }} +
+
-
- - -
- - {{ subtransfer.amount | intToMoney }} - - - {{ subtransfer.amount | intToMoney }} - - {{ (subtransfer.asset_id | getAsset)?.asset_info.ticker || '???' }} -
+ + +
+ + {{ subtransfer.amount | intToMoney }} + + + {{ subtransfer.amount | intToMoney }} + + {{ (subtransfer.asset_id | getAsset)?.asset_info.ticker || '???' }} +
+
+ + + + {{ 0 | intToMoney }} + {{ variablesService.defaultCurrency }} + + -
- - {{ transaction.fee.negated() | intToMoney }} - {{ variablesService.defaultCurrency }} - - - {{ 'HISTORY.NO_FEE' | translate }} - +
+ + + + {{ transaction.fee | intToMoney }} + {{ variablesService.defaultCurrency }} + + + {{ 'HISTORY.NO_FEE' | translate }} + +
@@ -262,7 +284,10 @@ import { zanoAssetInfo } from '@parts/data/assets'; {{ 'HISTORY.HIDDEN' | translate }} @@ -276,7 +301,7 @@ import { zanoAssetInfo } from '@parts/data/assets'; -
+ @@ -365,6 +390,13 @@ import { zanoAssetInfo } from '@parts/data/assets';
`, + styles: [ + ` + .cell-fee { + display: inline-flex; + } + `, + ], animations: [expandOnEnterAnimation(), collapseOnLeaveAnimation()], }) export class HistoryComponent implements OnInit, OnDestroy { @@ -462,7 +494,7 @@ export class HistoryComponent implements OnInit, OnDestroy { isVisibleFee(transaction: Transaction): boolean { const { subtransfers } = transaction; - return !subtransfers.find(({ asset_id }) => asset_id === zanoAssetInfo.asset_id)?.is_income; + return !subtransfers?.find(({ asset_id }) => asset_id === zanoAssetInfo.asset_id)?.is_income; } strokeSize(item): number { diff --git a/html_source/src/app/parts/pipes/history-type-messages-pipe/history-type-messages.pipe.ts b/html_source/src/app/parts/pipes/history-type-messages-pipe/history-type-messages.pipe.ts index afd42a24..a8a863d9 100644 --- a/html_source/src/app/parts/pipes/history-type-messages-pipe/history-type-messages.pipe.ts +++ b/html_source/src/app/parts/pipes/history-type-messages-pipe/history-type-messages.pipe.ts @@ -46,7 +46,11 @@ export class HistoryTypeMessagesPipe implements PipeTransform { ? this.translate.instant('HISTORY.TYPE_MESSAGES.POS_REWARD') : this.translate.instant('HISTORY.TYPE_MESSAGES.POW_REWARD'); case 7: - return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_CONTRACT'); + if (!item.subtransfers || !item.subtransfers.length) { + return this.translate.instant('HISTORY.TYPE_MESSAGES.SERVICE_TRANSACTIONS'); + } else { + return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_CONTRACT'); + } case 8: return this.translate.instant('HISTORY.TYPE_MESSAGES.PLEDGE_CONTRACT'); // case 9: diff --git a/html_source/src/assets/i18n/af.json b/html_source/src/assets/i18n/af.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/af.json +++ b/html_source/src/assets/i18n/af.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/ar.json b/html_source/src/assets/i18n/ar.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/ar.json +++ b/html_source/src/assets/i18n/ar.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/ca.json b/html_source/src/assets/i18n/ca.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/ca.json +++ b/html_source/src/assets/i18n/ca.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/cs.json b/html_source/src/assets/i18n/cs.json index 3695cb75..a43c6540 100644 --- a/html_source/src/assets/i18n/cs.json +++ b/html_source/src/assets/i18n/cs.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/da.json b/html_source/src/assets/i18n/da.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/da.json +++ b/html_source/src/assets/i18n/da.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/de.json b/html_source/src/assets/i18n/de.json index d1476599..bf7bc9aa 100644 --- a/html_source/src/assets/i18n/de.json +++ b/html_source/src/assets/i18n/de.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS-Belohnung", "POW_REWARD": "POW-Belohnung", "PROPOSAL_CANCEL_CONTRACT": "Stornierungsanfrage", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Unbedefiniert", "UPDATE_ALIAS": "Gebühr für die Bearbeitung eines Alias" } diff --git a/html_source/src/assets/i18n/el.json b/html_source/src/assets/i18n/el.json index f25ef749..621c5332 100644 --- a/html_source/src/assets/i18n/el.json +++ b/html_source/src/assets/i18n/el.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/en.json b/html_source/src/assets/i18n/en.json index 8ec71c29..855c9ded 100644 --- a/html_source/src/assets/i18n/en.json +++ b/html_source/src/assets/i18n/en.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/es.json b/html_source/src/assets/i18n/es.json index f0ce070c..bbf170ad 100644 --- a/html_source/src/assets/i18n/es.json +++ b/html_source/src/assets/i18n/es.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/fi.json b/html_source/src/assets/i18n/fi.json index 3baf0c63..b5bcbc80 100644 --- a/html_source/src/assets/i18n/fi.json +++ b/html_source/src/assets/i18n/fi.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/fr.json b/html_source/src/assets/i18n/fr.json index d6617102..1911a566 100644 --- a/html_source/src/assets/i18n/fr.json +++ b/html_source/src/assets/i18n/fr.json @@ -366,6 +366,7 @@ "POS_REWARD": "Récompense POS", "POW_REWARD": "Récompense POW", "PROPOSAL_CANCEL_CONTRACT": "Demande d'annulation", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Non défini", "UPDATE_ALIAS": "Frais pour modifier l'alias" } diff --git a/html_source/src/assets/i18n/he.json b/html_source/src/assets/i18n/he.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/he.json +++ b/html_source/src/assets/i18n/he.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/hu.json b/html_source/src/assets/i18n/hu.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/hu.json +++ b/html_source/src/assets/i18n/hu.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/id.json b/html_source/src/assets/i18n/id.json index d47f6f99..29850505 100644 --- a/html_source/src/assets/i18n/id.json +++ b/html_source/src/assets/i18n/id.json @@ -366,6 +366,7 @@ "POS_REWARD": "Hadiah POS", "POW_REWARD": "Hadiah POW", "PROPOSAL_CANCEL_CONTRACT": "Permintaan pembatalan", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Tidak terdefinisi", "UPDATE_ALIAS": "Biaya untuk mengubah alias" } diff --git a/html_source/src/assets/i18n/it.json b/html_source/src/assets/i18n/it.json index 552ebfdd..26d209fe 100644 --- a/html_source/src/assets/i18n/it.json +++ b/html_source/src/assets/i18n/it.json @@ -366,6 +366,7 @@ "POS_REWARD": "Ricompensa POS", "POW_REWARD": "Ricompensa POW", "PROPOSAL_CANCEL_CONTRACT": "Richiesta di cancellazione", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Non definito", "UPDATE_ALIAS": "Tassa per modificare alias" } diff --git a/html_source/src/assets/i18n/ja.json b/html_source/src/assets/i18n/ja.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/ja.json +++ b/html_source/src/assets/i18n/ja.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/ko.json b/html_source/src/assets/i18n/ko.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/ko.json +++ b/html_source/src/assets/i18n/ko.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/nl.json b/html_source/src/assets/i18n/nl.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/nl.json +++ b/html_source/src/assets/i18n/nl.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/no.json b/html_source/src/assets/i18n/no.json index 3baf0c63..b5bcbc80 100644 --- a/html_source/src/assets/i18n/no.json +++ b/html_source/src/assets/i18n/no.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/pl.json b/html_source/src/assets/i18n/pl.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/pl.json +++ b/html_source/src/assets/i18n/pl.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/pt.json b/html_source/src/assets/i18n/pt.json index ab52f8dc..ec10dde8 100644 --- a/html_source/src/assets/i18n/pt.json +++ b/html_source/src/assets/i18n/pt.json @@ -366,6 +366,7 @@ "POS_REWARD": "Recompensa de POS", "POW_REWARD": "Recompensa de POW", "PROPOSAL_CANCEL_CONTRACT": "Cancelar pedido", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Indefinido", "UPDATE_ALIAS": "Taxa para edição de alias" } diff --git a/html_source/src/assets/i18n/ro.json b/html_source/src/assets/i18n/ro.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/ro.json +++ b/html_source/src/assets/i18n/ro.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/ru.json b/html_source/src/assets/i18n/ru.json index f2f39182..e73502e8 100644 --- a/html_source/src/assets/i18n/ru.json +++ b/html_source/src/assets/i18n/ru.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/sr.json b/html_source/src/assets/i18n/sr.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/sr.json +++ b/html_source/src/assets/i18n/sr.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/sv.json b/html_source/src/assets/i18n/sv.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/sv.json +++ b/html_source/src/assets/i18n/sv.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/tr.json b/html_source/src/assets/i18n/tr.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/tr.json +++ b/html_source/src/assets/i18n/tr.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/uk.json b/html_source/src/assets/i18n/uk.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/uk.json +++ b/html_source/src/assets/i18n/uk.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/vi.json b/html_source/src/assets/i18n/vi.json index 2e2674de..192e9c88 100644 --- a/html_source/src/assets/i18n/vi.json +++ b/html_source/src/assets/i18n/vi.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/i18n/zh.json b/html_source/src/assets/i18n/zh.json index e0d27821..c4396b94 100644 --- a/html_source/src/assets/i18n/zh.json +++ b/html_source/src/assets/i18n/zh.json @@ -366,6 +366,7 @@ "POS_REWARD": "POS reward", "POW_REWARD": "POW reward", "PROPOSAL_CANCEL_CONTRACT": "Cancellation request", + "SERVICE_TRANSACTIONS": "Service transactions", "UNDEFINED": "Undefined", "UPDATE_ALIAS": "Fee for editing alias" } diff --git a/html_source/src/assets/icons/gray/fire_ico.svg b/html_source/src/assets/icons/gray/fire_ico.svg new file mode 100644 index 00000000..ec368fe5 --- /dev/null +++ b/html_source/src/assets/icons/gray/fire_ico.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/html_source/src/assets/scss/components/_icons.scss b/html_source/src/assets/scss/components/_icons.scss index 743dc7c9..abbd5068 100644 --- a/html_source/src/assets/scss/components/_icons.scss +++ b/html_source/src/assets/scss/components/_icons.scss @@ -218,4 +218,9 @@ i { &.success { background: center / contain no-repeat url(~src/assets/icons/aqua/modal-success.svg); } + + // gray + &.fire { + background: center / contain no-repeat url(~src/assets/icons/gray/fire_ico.svg); + } } diff --git a/html_source/src/main.ts b/html_source/src/main.ts index b66b8dd7..9cbef289 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 = '2023-11-22T09:13:55.758Z'; +export const buildTime = '2024-03-06T13:59:36.086Z'; if (environment.production) { enableProdMode();