forked from lthn/blockchain
transaction inputs, outputs + last build
This commit is contained in:
parent
1e560752c8
commit
9ff281de89
10 changed files with 56 additions and 13 deletions
|
|
@ -91,7 +91,8 @@
|
|||
"NEW": "New password",
|
||||
"CONFIRM": "New password confirmation",
|
||||
"BUTTON": "Save"
|
||||
}
|
||||
},
|
||||
"LAST_BUILD": "Current build: {{value}}"
|
||||
},
|
||||
"WALLET": {
|
||||
"REGISTER_ALIAS": "Register an alias",
|
||||
|
|
|
|||
|
|
@ -463,7 +463,7 @@ var TooltipDirective = /** @class */ (function () {
|
|||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = "<div class=\"table\">\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.ID' | translate }}</span>\r\n <span class=\"cell key-value\" [style.flex-basis]=\"sizes[1] + 'px'\" (click)=\"openInBrowser(transaction.tx_hash)\">{{transaction.tx_hash}}</span>\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[2] + 'px'\">{{ 'HISTORY.DETAILS.SIZE' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[3] + 'px'\">{{ 'HISTORY.DETAILS.SIZE_VALUE' | translate : {value: transaction.tx_blob_size} }}</span>\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.HEIGHT' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[1] + 'px'\">{{transaction.height}}</span>\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[2] + 'px'\">{{ 'HISTORY.DETAILS.CONFIRMATION' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[3] + 'px'\">{{transaction.height === 0 ? 0 : variablesService.height_app - transaction.height}}</span>\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.INPUTS' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[1] + 'px'\">{{transaction.td['rcv']?.length || 0}}</span>\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[2] + 'px'\">{{ 'HISTORY.DETAILS.OUTPUTS' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[3] + 'px'\">{{transaction.td['spn']?.length || 0}}</span>\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.COMMENT' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[1] + sizes[2] + sizes[3] + 'px'\">{{transaction.comment}}</span>\r\n </div>\r\n</div>\r\n"
|
||||
module.exports = "<div class=\"table\">\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.ID' | translate }}</span>\r\n <span class=\"cell key-value\" [style.flex-basis]=\"sizes[1] + 'px'\" (click)=\"openInBrowser(transaction.tx_hash)\">{{transaction.tx_hash}}</span>\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[2] + 'px'\">{{ 'HISTORY.DETAILS.SIZE' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[3] + 'px'\">{{ 'HISTORY.DETAILS.SIZE_VALUE' | translate : {value: transaction.tx_blob_size} }}</span>\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.HEIGHT' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[1] + 'px'\">{{transaction.height}}</span>\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[2] + 'px'\">{{ 'HISTORY.DETAILS.CONFIRMATION' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[3] + 'px'\">{{transaction.height === 0 ? 0 : variablesService.height_app - transaction.height}}</span>\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.INPUTS' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[1] + 'px'\">{{inputs.join(', ')}}</span>\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[2] + 'px'\">{{ 'HISTORY.DETAILS.OUTPUTS' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[3] + 'px'\">{{outputs.join(', ')}}</span>\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.COMMENT' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[1] + sizes[2] + sizes[3] + 'px'\">{{transaction.comment}}</span>\r\n </div>\r\n</div>\r\n"
|
||||
|
||||
/***/ }),
|
||||
|
||||
|
|
@ -492,6 +492,7 @@ __webpack_require__.r(__webpack_exports__);
|
|||
/* harmony import */ var _models_transaction_model__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../models/transaction.model */ "./src/app/_helpers/models/transaction.model.ts");
|
||||
/* harmony import */ var _services_variables_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../services/variables.service */ "./src/app/_helpers/services/variables.service.ts");
|
||||
/* harmony import */ var _services_backend_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../services/backend.service */ "./src/app/_helpers/services/backend.service.ts");
|
||||
/* harmony import */ var _pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../pipes/int-to-money.pipe */ "./src/app/_helpers/pipes/int-to-money.pipe.ts");
|
||||
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
|
|
@ -505,12 +506,27 @@ var __metadata = (undefined && undefined.__metadata) || function (k, v) {
|
|||
|
||||
|
||||
|
||||
|
||||
var TransactionDetailsComponent = /** @class */ (function () {
|
||||
function TransactionDetailsComponent(variablesService, backendService) {
|
||||
function TransactionDetailsComponent(variablesService, backendService, intToMoneyPipe) {
|
||||
this.variablesService = variablesService;
|
||||
this.backendService = backendService;
|
||||
this.intToMoneyPipe = intToMoneyPipe;
|
||||
this.inputs = [];
|
||||
this.outputs = [];
|
||||
}
|
||||
TransactionDetailsComponent.prototype.ngOnInit = function () { };
|
||||
TransactionDetailsComponent.prototype.ngOnInit = function () {
|
||||
for (var input in this.transaction.td['rcv']) {
|
||||
if (this.transaction.td['rcv'].hasOwnProperty(input)) {
|
||||
this.inputs.push(this.intToMoneyPipe.transform(this.transaction.td['rcv'][input]));
|
||||
}
|
||||
}
|
||||
for (var output in this.transaction.td['spn']) {
|
||||
if (this.transaction.td['spn'].hasOwnProperty(output)) {
|
||||
this.outputs.push(this.intToMoneyPipe.transform(this.transaction.td['spn'][output]));
|
||||
}
|
||||
}
|
||||
};
|
||||
TransactionDetailsComponent.prototype.openInBrowser = function (tr) {
|
||||
var link = 'explorer.zano.org/transaction/' + tr;
|
||||
this.backendService.openUrlInBrowser(link);
|
||||
|
|
@ -530,7 +546,7 @@ var TransactionDetailsComponent = /** @class */ (function () {
|
|||
template: __webpack_require__(/*! ./transaction-details.component.html */ "./src/app/_helpers/directives/transaction-details/transaction-details.component.html"),
|
||||
styles: [__webpack_require__(/*! ./transaction-details.component.scss */ "./src/app/_helpers/directives/transaction-details/transaction-details.component.scss")]
|
||||
}),
|
||||
__metadata("design:paramtypes", [_services_variables_service__WEBPACK_IMPORTED_MODULE_2__["VariablesService"], _services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"]])
|
||||
__metadata("design:paramtypes", [_services_variables_service__WEBPACK_IMPORTED_MODULE_2__["VariablesService"], _services_backend_service__WEBPACK_IMPORTED_MODULE_3__["BackendService"], _pipes_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_4__["IntToMoneyPipe"]])
|
||||
], TransactionDetailsComponent);
|
||||
return TransactionDetailsComponent;
|
||||
}());
|
||||
|
|
@ -2070,6 +2086,7 @@ var VariablesService = /** @class */ (function () {
|
|||
this.defaultCurrency = 'ZAN';
|
||||
this.exp_med_ts = 0;
|
||||
this.height_app = 0;
|
||||
this.last_build_available = '';
|
||||
this.daemon_state = 0;
|
||||
this.sync = {
|
||||
progress_value: 0,
|
||||
|
|
@ -2468,6 +2485,7 @@ var AppComponent = /** @class */ (function () {
|
|||
console.log('DAEMON:' + data.daemon_network_state);
|
||||
console.log(data);
|
||||
_this.variablesService.exp_med_ts = data['expiration_median_timestamp'] + 600 + 1;
|
||||
_this.variablesService.last_build_available = data.last_build_available;
|
||||
// this.variablesService.height_app = data.height;
|
||||
_this.variablesService.setHeightApp(data.height);
|
||||
_this.ngZone.run(function () {
|
||||
|
|
@ -4722,7 +4740,7 @@ var SendComponent = /** @class */ (function () {
|
|||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = "<div class=\"content\">\r\n <div class=\"head\">\r\n <button type=\"button\" class=\"back-btn\" (click)=\"back()\">\r\n <i class=\"icon back\"></i>\r\n <span>{{ 'COMMON.BACK' | translate }}</span>\r\n </button>\r\n </div>\r\n\r\n <h3 class=\"settings-title\">{{ 'SETTINGS.TITLE' | translate }}</h3>\r\n <div class=\"theme-selection\">\r\n <div class=\"radio-block\">\r\n <input class=\"style-radio\" type=\"radio\" id=\"dark\" name=\"theme\" value=\"dark\" [checked]=\"theme == 'dark'\" (change)=\"setTheme('dark')\">\r\n <label for=\"dark\">{{ 'SETTINGS.DARK_THEME' | translate }}</label>\r\n </div>\r\n <div class=\"radio-block\">\r\n <input class=\"style-radio\" type=\"radio\" id=\"white\" name=\"theme\" value=\"white\" [checked]=\"theme == 'white'\" (change)=\"setTheme('white')\">\r\n <label for=\"white\">{{ 'SETTINGS.WHITE_THEME' | translate }}</label>\r\n </div>\r\n <div class=\"radio-block\">\r\n <input class=\"style-radio\" type=\"radio\" id=\"gray\" name=\"theme\" value=\"gray\" [checked]=\"theme == 'gray'\" (change)=\"setTheme('gray')\">\r\n <label for=\"gray\">{{ 'SETTINGS.GRAY_THEME' | translate }}</label>\r\n </div>\r\n </div>\r\n\r\n <form class=\"master-password\" [formGroup]=\"changeForm\" (ngSubmit)=\"onSubmitChangePass()\">\r\n <span class=\"master-password-title\">{{ 'SETTINGS.MASTER_PASSWORD.TITLE' | translate }}</span>\r\n <div class=\"input-block\">\r\n <label for=\"old-password\">{{ 'SETTINGS.MASTER_PASSWORD.OLD' | translate }}</label>\r\n <input type=\"password\" id=\"old-password\" formControlName=\"password\"/>\r\n <div *ngIf=\"changeForm.controls['password'].invalid && (changeForm.controls['password'].dirty || changeForm.controls['password'].touched)\">\r\n <div *ngIf=\"changeForm.controls['password'].errors.required\">\r\n Password is required.\r\n </div>\r\n </div>\r\n <div *ngIf=\"changeForm.invalid && changeForm.controls['password'].valid && (changeForm.controls['password'].dirty || changeForm.controls['password'].touched) && changeForm.errors && changeForm.errors.pass_mismatch\">\r\n Old password not match.\r\n </div>\r\n </div>\r\n <div class=\"input-block\">\r\n <label for=\"new-password\">{{ 'SETTINGS.MASTER_PASSWORD.NEW' | translate }}</label>\r\n <input type=\"password\" id=\"new-password\" formControlName=\"new_password\"/>\r\n <div *ngIf=\"changeForm.controls['new_password'].invalid && (changeForm.controls['new_password'].dirty || changeForm.controls['new_password'].touched)\">\r\n <div *ngIf=\"changeForm.controls['new_password'].errors.required\">\r\n Password is required.\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-block\">\r\n <label for=\"confirm-password\">{{ 'SETTINGS.MASTER_PASSWORD.CONFIRM' | translate }}</label>\r\n <input type=\"password\" id=\"confirm-password\" formControlName=\"new_confirmation\"/>\r\n <div *ngIf=\"changeForm.controls['new_confirmation'].invalid && (changeForm.controls['new_confirmation'].dirty || changeForm.controls['new_confirmation'].touched)\">\r\n <div *ngIf=\"changeForm.controls['new_confirmation'].errors.required\">\r\n Password is required.\r\n </div>\r\n </div>\r\n <div *ngIf=\"changeForm.invalid && (changeForm.controls['new_confirmation'].dirty || changeForm.controls['new_confirmation'].touched) && changeForm.errors && changeForm.errors.confirm_mismatch\">\r\n Confirm password not match.\r\n </div>\r\n </div>\r\n <button type=\"submit\" class=\"blue-button\">{{ 'SETTINGS.MASTER_PASSWORD.BUTTON' | translate }}</button>\r\n </form>\r\n\r\n</div>\r\n"
|
||||
module.exports = "<div class=\"content\">\r\n <div class=\"head\">\r\n <button type=\"button\" class=\"back-btn\" (click)=\"back()\">\r\n <i class=\"icon back\"></i>\r\n <span>{{ 'COMMON.BACK' | translate }}</span>\r\n </button>\r\n </div>\r\n\r\n <h3 class=\"settings-title\">{{ 'SETTINGS.TITLE' | translate }}</h3>\r\n <div class=\"theme-selection\">\r\n <div class=\"radio-block\">\r\n <input class=\"style-radio\" type=\"radio\" id=\"dark\" name=\"theme\" value=\"dark\" [checked]=\"theme == 'dark'\" (change)=\"setTheme('dark')\">\r\n <label for=\"dark\">{{ 'SETTINGS.DARK_THEME' | translate }}</label>\r\n </div>\r\n <div class=\"radio-block\">\r\n <input class=\"style-radio\" type=\"radio\" id=\"white\" name=\"theme\" value=\"white\" [checked]=\"theme == 'white'\" (change)=\"setTheme('white')\">\r\n <label for=\"white\">{{ 'SETTINGS.WHITE_THEME' | translate }}</label>\r\n </div>\r\n <div class=\"radio-block\">\r\n <input class=\"style-radio\" type=\"radio\" id=\"gray\" name=\"theme\" value=\"gray\" [checked]=\"theme == 'gray'\" (change)=\"setTheme('gray')\">\r\n <label for=\"gray\">{{ 'SETTINGS.GRAY_THEME' | translate }}</label>\r\n </div>\r\n </div>\r\n\r\n <form class=\"master-password\" [formGroup]=\"changeForm\" (ngSubmit)=\"onSubmitChangePass()\">\r\n <span class=\"master-password-title\">{{ 'SETTINGS.MASTER_PASSWORD.TITLE' | translate }}</span>\r\n <div class=\"input-block\">\r\n <label for=\"old-password\">{{ 'SETTINGS.MASTER_PASSWORD.OLD' | translate }}</label>\r\n <input type=\"password\" id=\"old-password\" formControlName=\"password\"/>\r\n <div *ngIf=\"changeForm.controls['password'].invalid && (changeForm.controls['password'].dirty || changeForm.controls['password'].touched)\">\r\n <div *ngIf=\"changeForm.controls['password'].errors.required\">\r\n Password is required.\r\n </div>\r\n </div>\r\n <div *ngIf=\"changeForm.invalid && changeForm.controls['password'].valid && (changeForm.controls['password'].dirty || changeForm.controls['password'].touched) && changeForm.errors && changeForm.errors.pass_mismatch\">\r\n Old password not match.\r\n </div>\r\n </div>\r\n <div class=\"input-block\">\r\n <label for=\"new-password\">{{ 'SETTINGS.MASTER_PASSWORD.NEW' | translate }}</label>\r\n <input type=\"password\" id=\"new-password\" formControlName=\"new_password\"/>\r\n <div *ngIf=\"changeForm.controls['new_password'].invalid && (changeForm.controls['new_password'].dirty || changeForm.controls['new_password'].touched)\">\r\n <div *ngIf=\"changeForm.controls['new_password'].errors.required\">\r\n Password is required.\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-block\">\r\n <label for=\"confirm-password\">{{ 'SETTINGS.MASTER_PASSWORD.CONFIRM' | translate }}</label>\r\n <input type=\"password\" id=\"confirm-password\" formControlName=\"new_confirmation\"/>\r\n <div *ngIf=\"changeForm.controls['new_confirmation'].invalid && (changeForm.controls['new_confirmation'].dirty || changeForm.controls['new_confirmation'].touched)\">\r\n <div *ngIf=\"changeForm.controls['new_confirmation'].errors.required\">\r\n Password is required.\r\n </div>\r\n </div>\r\n <div *ngIf=\"changeForm.invalid && (changeForm.controls['new_confirmation'].dirty || changeForm.controls['new_confirmation'].touched) && changeForm.errors && changeForm.errors.confirm_mismatch\">\r\n Confirm password not match.\r\n </div>\r\n </div>\r\n <button type=\"submit\" class=\"blue-button\">{{ 'SETTINGS.MASTER_PASSWORD.BUTTON' | translate }}</button>\r\n </form>\r\n\r\n <div class=\"last-build\">{{ 'SETTINGS.LAST_BUILD' | translate : {value: variablesService.last_build_available} }}</div>\r\n</div>\r\n"
|
||||
|
||||
/***/ }),
|
||||
|
||||
|
|
@ -4733,7 +4751,7 @@ module.exports = "<div class=\"content\">\r\n <div class=\"head\">\r\n <butt
|
|||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = ".head {\n justify-content: flex-end; }\n\n.settings-title {\n font-size: 1.7rem; }\n\n.theme-selection {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n margin: 2.4rem 0;\n width: 50%; }\n\n.theme-selection .radio-block {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n font-size: 1.3rem;\n line-height: 2.7rem; }\n\n.master-password {\n width: 50%; }\n\n.master-password .master-password-title {\n display: flex;\n font-size: 1.5rem;\n line-height: 2.7rem;\n margin-bottom: 1rem; }\n\n.master-password button {\n margin: 2.5rem auto;\n width: 100%;\n max-width: 15rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2V0dGluZ3MvRDpcXFByb2plY3RzXFxaYW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcc2V0dGluZ3NcXHNldHRpbmdzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTs7QUFMWjtJQVFJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsMkJBQTJCO0lBQzNCLGlCQUFpQjtJQUNqQixtQkFBbUIsRUFBQTs7QUFJdkI7RUFDRSxVQUFVLEVBQUE7O0FBRFo7SUFJSSxhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixtQkFBbUIsRUFBQTs7QUFQdkI7SUFXSSxtQkFBbUI7SUFDbkIsV0FBVztJQUNYLGdCQUFnQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaGVhZCB7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxufVxyXG5cclxuLnNldHRpbmdzLXRpdGxlIHtcclxuICBmb250LXNpemU6IDEuN3JlbTtcclxufVxyXG5cclxuLnRoZW1lLXNlbGVjdGlvbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIG1hcmdpbjogMi40cmVtIDA7XHJcbiAgd2lkdGg6IDUwJTtcclxuXHJcbiAgLnJhZGlvLWJsb2NrIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG4gIH1cclxufVxyXG5cclxuLm1hc3Rlci1wYXNzd29yZCB7XHJcbiAgd2lkdGg6IDUwJTtcclxuXHJcbiAgLm1hc3Rlci1wYXNzd29yZC10aXRsZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBtYXJnaW46IDIuNXJlbSBhdXRvO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDE1cmVtO1xyXG4gIH1cclxufVxyXG5cclxuIl19 */"
|
||||
module.exports = ".head {\n justify-content: flex-end; }\n\n.settings-title {\n font-size: 1.7rem; }\n\n.theme-selection {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n margin: 2.4rem 0;\n width: 50%; }\n\n.theme-selection .radio-block {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n font-size: 1.3rem;\n line-height: 2.7rem; }\n\n.master-password {\n width: 50%; }\n\n.master-password .master-password-title {\n display: flex;\n font-size: 1.5rem;\n line-height: 2.7rem;\n margin-bottom: 1rem; }\n\n.master-password button {\n margin: 2.5rem auto;\n width: 100%;\n max-width: 15rem; }\n\n.last-build {\n position: absolute;\n bottom: 3rem;\n right: 3rem;\n font-size: 1.3rem; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2V0dGluZ3MvRDpcXFByb2plY3RzXFxaYW5vXFxzcmNcXGd1aVxccXQtZGFlbW9uXFxodG1sX3NvdXJjZS9zcmNcXGFwcFxcc2V0dGluZ3NcXHNldHRpbmdzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0UsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTs7QUFMWjtJQVFJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsMkJBQTJCO0lBQzNCLGlCQUFpQjtJQUNqQixtQkFBbUIsRUFBQTs7QUFJdkI7RUFDRSxVQUFVLEVBQUE7O0FBRFo7SUFJSSxhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixtQkFBbUIsRUFBQTs7QUFQdkI7SUFXSSxtQkFBbUI7SUFDbkIsV0FBVztJQUNYLGdCQUFnQixFQUFBOztBQUlwQjtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osV0FBVztFQUNYLGlCQUFpQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaGVhZCB7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxufVxyXG5cclxuLnNldHRpbmdzLXRpdGxlIHtcclxuICBmb250LXNpemU6IDEuN3JlbTtcclxufVxyXG5cclxuLnRoZW1lLXNlbGVjdGlvbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIG1hcmdpbjogMi40cmVtIDA7XHJcbiAgd2lkdGg6IDUwJTtcclxuXHJcbiAgLnJhZGlvLWJsb2NrIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG4gIH1cclxufVxyXG5cclxuLm1hc3Rlci1wYXNzd29yZCB7XHJcbiAgd2lkdGg6IDUwJTtcclxuXHJcbiAgLm1hc3Rlci1wYXNzd29yZC10aXRsZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi43cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBtYXJnaW46IDIuNXJlbSBhdXRvO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDE1cmVtO1xyXG4gIH1cclxufVxyXG5cclxuLmxhc3QtYnVpbGQge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDNyZW07XHJcbiAgcmlnaHQ6IDNyZW07XHJcbiAgZm9udC1zaXplOiAxLjNyZW07XHJcbn1cclxuIl19 */"
|
||||
|
||||
/***/ }),
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -13,9 +13,9 @@
|
|||
</div>
|
||||
<div class="row">
|
||||
<span class="cell label" [style.flex-basis]="sizes[0] + 'px'">{{ 'HISTORY.DETAILS.INPUTS' | translate }}</span>
|
||||
<span class="cell value" [style.flex-basis]="sizes[1] + 'px'">{{transaction.td['rcv']?.length || 0}}</span>
|
||||
<span class="cell value" [style.flex-basis]="sizes[1] + 'px'">{{inputs.join(', ')}}</span>
|
||||
<span class="cell label" [style.flex-basis]="sizes[2] + 'px'">{{ 'HISTORY.DETAILS.OUTPUTS' | translate }}</span>
|
||||
<span class="cell value" [style.flex-basis]="sizes[3] + 'px'">{{transaction.td['spn']?.length || 0}}</span>
|
||||
<span class="cell value" [style.flex-basis]="sizes[3] + 'px'">{{outputs.join(', ')}}</span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<span class="cell label" [style.flex-basis]="sizes[0] + 'px'">{{ 'HISTORY.DETAILS.COMMENT' | translate }}</span>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import {Component, OnInit, OnDestroy, Input} from '@angular/core';
|
|||
import {Transaction} from '../../models/transaction.model';
|
||||
import {VariablesService} from "../../services/variables.service";
|
||||
import {BackendService} from '../../services/backend.service';
|
||||
import {IntToMoneyPipe} from '../../pipes/int-to-money.pipe';
|
||||
|
||||
@Component({
|
||||
selector: 'app-transaction-details',
|
||||
|
|
@ -12,10 +13,23 @@ export class TransactionDetailsComponent implements OnInit, OnDestroy {
|
|||
|
||||
@Input() transaction: Transaction;
|
||||
@Input() sizes: Array<number>;
|
||||
inputs: Array<string> = [];
|
||||
outputs: Array<string> = [];
|
||||
|
||||
constructor(private variablesService: VariablesService, private backendService: BackendService) {}
|
||||
constructor(private variablesService: VariablesService, private backendService: BackendService, private intToMoneyPipe: IntToMoneyPipe) {}
|
||||
|
||||
ngOnInit() {}
|
||||
ngOnInit() {
|
||||
for (let input in this.transaction.td['rcv']) {
|
||||
if (this.transaction.td['rcv'].hasOwnProperty(input)) {
|
||||
this.inputs.push(this.intToMoneyPipe.transform(this.transaction.td['rcv'][input]));
|
||||
}
|
||||
}
|
||||
for (let output in this.transaction.td['spn']) {
|
||||
if (this.transaction.td['spn'].hasOwnProperty(output)) {
|
||||
this.outputs.push(this.intToMoneyPipe.transform(this.transaction.td['spn'][output]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
openInBrowser(tr) {
|
||||
let link = 'explorer.zano.org/transaction/' + tr;
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ export class VariablesService {
|
|||
public opening_wallet: Wallet;
|
||||
public exp_med_ts = 0;
|
||||
public height_app = 0;
|
||||
public last_build_available = '';
|
||||
public daemon_state = 0;
|
||||
public sync = {
|
||||
progress_value: 0,
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ export class AppComponent implements OnInit, OnDestroy {
|
|||
console.log('DAEMON:' + data.daemon_network_state);
|
||||
console.log(data);
|
||||
this.variablesService.exp_med_ts = data['expiration_median_timestamp'] + 600 + 1;
|
||||
this.variablesService.last_build_available = data.last_build_available;
|
||||
// this.variablesService.height_app = data.height;
|
||||
this.variablesService.setHeightApp(data.height);
|
||||
|
||||
|
|
|
|||
|
|
@ -60,4 +60,5 @@
|
|||
<button type="submit" class="blue-button">{{ 'SETTINGS.MASTER_PASSWORD.BUTTON' | translate }}</button>
|
||||
</form>
|
||||
|
||||
<div class="last-build">{{ 'SETTINGS.LAST_BUILD' | translate : {value: variablesService.last_build_available} }}</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -39,3 +39,9 @@
|
|||
}
|
||||
}
|
||||
|
||||
.last-build {
|
||||
position: absolute;
|
||||
bottom: 3rem;
|
||||
right: 3rem;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,7 +91,8 @@
|
|||
"NEW": "New password",
|
||||
"CONFIRM": "New password confirmation",
|
||||
"BUTTON": "Save"
|
||||
}
|
||||
},
|
||||
"LAST_BUILD": "Current build: {{value}}"
|
||||
},
|
||||
"WALLET": {
|
||||
"REGISTER_ALIAS": "Register an alias",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue