forked from lthn/blockchain
Merge branch 'release'
This commit is contained in:
commit
26c00a8a68
45 changed files with 1227 additions and 928 deletions
|
|
@ -45,6 +45,7 @@
|
|||
#include <boost/cstdint.hpp>
|
||||
#include <boost/thread.hpp>
|
||||
#include <boost/filesystem.hpp>
|
||||
#include <boost/filesystem/fstream.hpp>
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#endif
|
||||
#if defined(WIN32)
|
||||
|
|
|
|||
|
|
@ -29,5 +29,5 @@ namespace command_line
|
|||
|
||||
const arg_descriptor<bool> arg_disable_stop_if_time_out_of_sync = { "disable-stop-if-time-out-of-sync", "Do not stop the daemon if serious time synchronization problem is detected", false, true };
|
||||
const arg_descriptor<bool> arg_disable_stop_on_low_free_space = { "disable-stop-on-low-free-space", "Do not stop the daemon if free space at data dir is critically low", false, true };
|
||||
const arg_descriptor<bool> arg_enable_offers_service = { "enable_offers_service", "Enables marketplace feature", false, false};
|
||||
const arg_descriptor<bool> arg_enable_offers_service = { "enable-offers-service", "Enables marketplace feature", false, false};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -363,13 +363,16 @@ bool blockchain_storage::init(const std::string& config_folder, const boost::pro
|
|||
//------------------------------------------------------------------
|
||||
bool blockchain_storage::set_lost_tx_unmixable_for_height(uint64_t height)
|
||||
{
|
||||
#ifndef TESTNET
|
||||
if (height == 75738)
|
||||
return set_lost_tx_unmixable();
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
//------------------------------------------------------------------
|
||||
bool blockchain_storage::set_lost_tx_unmixable()
|
||||
{
|
||||
#ifndef TESTNET
|
||||
if (m_db_blocks.size() > 75738)
|
||||
{
|
||||
crypto::hash tx_id_1 = epee::string_tools::parse_tpod_from_hex_string<crypto::hash>("c2a2229d614e7c026433efbcfdbd0be1f68d9b419220336df3e2c209f5d57314");
|
||||
|
|
@ -393,11 +396,13 @@ bool blockchain_storage::set_lost_tx_unmixable()
|
|||
}
|
||||
m_db_transactions.set(tx_id_2, tx2_local_entry);
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
//------------------------------------------------------------------
|
||||
void blockchain_storage::patch_out_if_needed(txout_to_key& out, const crypto::hash& tx_id, uint64_t n) const
|
||||
{
|
||||
#ifndef TESTNET
|
||||
static crypto::hash tx_id_1 = epee::string_tools::parse_tpod_from_hex_string<crypto::hash>("c2a2229d614e7c026433efbcfdbd0be1f68d9b419220336df3e2c209f5d57314");
|
||||
static crypto::hash tx_id_2 = epee::string_tools::parse_tpod_from_hex_string<crypto::hash>("647f936c6ffbd136f5c95d9a90ad554bdb4c01541c6eb5755ad40b984d80da67");
|
||||
|
||||
|
|
@ -408,6 +413,7 @@ void blockchain_storage::patch_out_if_needed(txout_to_key& out, const crypto::h
|
|||
{
|
||||
out.mix_attr = CURRENCY_TO_KEY_OUT_FORCED_NO_MIX;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
//------------------------------------------------------------------
|
||||
void blockchain_storage::store_db_solo_options_values()
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ namespace bc_services
|
|||
{
|
||||
|
||||
//fields filled in UI
|
||||
uint8_t offer_type; // OFFER_TYPE_PRIMARY_TO_TARGET - 0, OFFER_TYPE_TARGET_TO_PRIMARY - 1 etc.
|
||||
uint8_t offer_type; // OFFER_TYPE_PRIMARY_TO_TARGET(SELL ORDER) - 0, OFFER_TYPE_TARGET_TO_PRIMARY(BUY ORDER) - 1 etc.
|
||||
uint64_t amount_primary; // amount of the currency
|
||||
uint64_t amount_target; // amount of other currency or goods
|
||||
std::string bonus; //
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
"ONLINE": "Online",
|
||||
"ERROR": "Systemfehler",
|
||||
"COMPLETE": "Abschluss",
|
||||
"SYNCING": "Synchronisiere Blockchain",
|
||||
"SYNCING": "Syncing block",
|
||||
"LOADING": "Lade Blockchain-Daten"
|
||||
},
|
||||
"UPDATE": {
|
||||
|
|
|
|||
|
|
@ -150,8 +150,14 @@
|
|||
"TIME3": "1 hour",
|
||||
"TIME4": "Never"
|
||||
},
|
||||
"SCALE": {
|
||||
"75": "75% scale",
|
||||
"100": "100% scale",
|
||||
"125": "125% scale",
|
||||
"150": "150% scale"
|
||||
},
|
||||
"LANGUAGE": {
|
||||
"TITLE": "Languages",
|
||||
"TITLE": "Language",
|
||||
"EN": "English",
|
||||
"FR": "French",
|
||||
"DE": "Deutsch",
|
||||
|
|
@ -180,7 +186,10 @@
|
|||
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
|
||||
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
|
||||
"LOCKED_BALANCE_LINK": "What does that mean?",
|
||||
"CLOSE_MESSAGE": "<span class=\"message\">Remove wallet from the list</span> <br> <span>(To access it you’ll have to add it again)</span>",
|
||||
"CONFIRM": {
|
||||
"TITLE": "Remove wallet from the list?",
|
||||
"MESSAGE": "To access it you’ll have to add it again"
|
||||
},
|
||||
"TABS": {
|
||||
"SEND": "Send",
|
||||
"RECEIVE": "Receive",
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
"ONLINE": "En ligne",
|
||||
"ERROR": "Erreur de système",
|
||||
"COMPLETE": "Fermeture",
|
||||
"SYNCING": "Synchronisation de la blockchain",
|
||||
"SYNCING": "Syncing block",
|
||||
"LOADING": "Chargement des données de la blockchain"
|
||||
},
|
||||
"UPDATE": {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
"ONLINE": "Online",
|
||||
"ERROR": "Errore di sistema",
|
||||
"COMPLETE": "Completata",
|
||||
"SYNCING": "Sincronizzazione blockchain",
|
||||
"SYNCING": "Syncing block",
|
||||
"LOADING": "Caricamento dati blockchain"
|
||||
},
|
||||
"UPDATE": {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -789,6 +789,16 @@ input[type='checkbox'].style-checkbox {
|
|||
&.custom-select {
|
||||
width: 100%;
|
||||
|
||||
&.ng-select-single {
|
||||
.ng-select-container {
|
||||
.ng-value-container {
|
||||
.ng-value {
|
||||
line-height: 1.8rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ng-select-container {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -2,12 +2,15 @@
|
|||
<div class="content">
|
||||
<i class="icon info"></i>
|
||||
<div class="message-container">
|
||||
<span [innerHTML]="message"></span>
|
||||
<span class="title">{{title}}</span>
|
||||
<span class="message">{{message}}</span>
|
||||
|
||||
<div class="wrap-btn">
|
||||
<button type="button" class="action-button" (click)="onSubmit()" #btn>{{ 'MODALS.OK' | translate }}</button>
|
||||
<button type="button" class="action-button" (click)="onClose()">{{ 'MODALS.CANCEL' | translate }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wrap-btn">
|
||||
<button type="button" class="action-button" (click)="onSubmit()" #btn>{{ 'MODALS.OK' | translate }}</button>
|
||||
<button type="button" class="action-button" (click)="onClose()">{{ 'MODALS.CANCEL' | translate }}</button>
|
||||
</div>
|
||||
|
||||
<button type="button" class="close-button" (click)="onClose()"><i class="icon close"></i></button>
|
||||
</div>
|
||||
|
|
@ -15,13 +15,12 @@
|
|||
flex-direction: column;
|
||||
background-position: center;
|
||||
background-size: 200%;
|
||||
padding: 2rem;
|
||||
padding: 3rem;
|
||||
min-width: 34rem;
|
||||
max-width: 60rem;
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
margin: 1.2rem 0;
|
||||
|
||||
.icon {
|
||||
flex: 0 0 auto;
|
||||
|
|
@ -40,6 +39,12 @@
|
|||
justify-content: center;
|
||||
margin-left: 2rem;
|
||||
|
||||
.title {
|
||||
font-size: 1.8rem;
|
||||
font-weight: 600;
|
||||
line-height: 2.2rem;
|
||||
}
|
||||
|
||||
.message {
|
||||
font-size: 1.3rem;
|
||||
line-height: 1.8rem;
|
||||
|
|
@ -50,10 +55,12 @@
|
|||
|
||||
.wrap-btn {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
margin-top: 3.5rem;
|
||||
}
|
||||
|
||||
.action-button {
|
||||
margin: 1.2rem auto 0.6rem;
|
||||
width: 10rem;
|
||||
height: 2.4rem;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef }
|
|||
})
|
||||
export class ConfirmModalComponent implements OnInit {
|
||||
|
||||
@Input() title: string;
|
||||
@Input() message: string;
|
||||
@Output() confirmed: EventEmitter<boolean> = new EventEmitter<boolean>();
|
||||
@ViewChild('btn') button: ElementRef;
|
||||
|
|
|
|||
|
|
@ -232,6 +232,7 @@ export class TooltipDirective implements OnDestroy {
|
|||
ngOnDestroy() {
|
||||
clearTimeout(this.removeTooltipTimeout);
|
||||
clearTimeout(this.removeTooltipTimeoutInner);
|
||||
clearTimeout(this.removeTooltipTimeDelay);
|
||||
if (this.tooltip) {
|
||||
this.renderer.removeChild(document.body, this.tooltip);
|
||||
this.tooltip = null;
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ export class AppComponent implements OnInit, OnDestroy {
|
|||
this.variablesService.last_build_displaymode = data.last_build_displaymode;
|
||||
this.variablesService.setHeightApp(data.height);
|
||||
this.variablesService.setHeightMax(data.max_net_seen_height);
|
||||
|
||||
this.backend.getContactAlias();
|
||||
this.ngZone.run(() => {
|
||||
this.variablesService.daemon_state = data['daemon_network_state'];
|
||||
if (data['daemon_network_state'] === 1) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Component, OnInit } from '@angular/core';
|
||||
import { Component, OnInit, NgZone } from '@angular/core';
|
||||
import { Location } from '@angular/common';
|
||||
import { BackendService } from '../_helpers/services/backend.service';
|
||||
import { VariablesService } from '../_helpers/services/variables.service';
|
||||
|
|
@ -6,6 +6,7 @@ import { Contact } from '../_helpers/models/contact.model';
|
|||
import { ModalService } from '../_helpers/services/modal.service';
|
||||
import { Papa } from 'ngx-papaparse';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { Router } from '@angular/router';
|
||||
|
||||
@Component({
|
||||
selector: 'app-export-import',
|
||||
|
|
@ -21,7 +22,9 @@ export class ExportImportComponent implements OnInit {
|
|||
private backend: BackendService,
|
||||
private modalService: ModalService,
|
||||
private papa: Papa,
|
||||
private translate: TranslateService
|
||||
private translate: TranslateService,
|
||||
private router: Router,
|
||||
private ngZone: NgZone
|
||||
) {}
|
||||
|
||||
ngOnInit() {}
|
||||
|
|
@ -78,10 +81,9 @@ export class ExportImportComponent implements OnInit {
|
|||
});
|
||||
}
|
||||
this.backend.getContactAlias();
|
||||
this.modalService.prepareModal(
|
||||
'success',
|
||||
'CONTACTS.SUCCESS_IMPORT'
|
||||
);
|
||||
this.ngZone.run(() => {
|
||||
this.router.navigate(['/contacts']);
|
||||
});
|
||||
}
|
||||
if (elements.errors.length) {
|
||||
this.modalService.prepareModal(
|
||||
|
|
@ -106,7 +108,7 @@ export class ExportImportComponent implements OnInit {
|
|||
delete contact.alias;
|
||||
contacts.push(contact);
|
||||
});
|
||||
|
||||
|
||||
this.backend.saveFileDialog(
|
||||
'',
|
||||
'*',
|
||||
|
|
@ -118,10 +120,6 @@ export class ExportImportComponent implements OnInit {
|
|||
const path = this.isValid(file_data.path) ? file_data.path : `${file_data.path}.csv`;
|
||||
if (file_status && this.isValid(path) && this.variablesService.contacts.length) {
|
||||
this.backend.storeFile(path, this.papa.unparse(contacts));
|
||||
this.modalService.prepareModal(
|
||||
'success',
|
||||
'CONTACTS.SUCCESS_EXPORT'
|
||||
);
|
||||
}
|
||||
if (!(file_data.error_code === 'CANCELED') && !this.isValid(path)) {
|
||||
this.modalService.prepareModal('error', 'CONTACTS.ERROR_EXPORT');
|
||||
|
|
|
|||
|
|
@ -35,13 +35,13 @@
|
|||
display: flex;
|
||||
cursor: pointer;
|
||||
font-size: 1.3rem;
|
||||
line-height: 1.4rem;
|
||||
line-height: 1.5rem;
|
||||
|
||||
.icon {
|
||||
mask: url(../../assets/icons/howto.svg) no-repeat center;
|
||||
margin-right: 0.8rem;
|
||||
width: 1.4rem;
|
||||
height: 1.4rem;
|
||||
width: 1.5rem;
|
||||
height: 1.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
<div class="scale-selection">
|
||||
<button type="button" class="button-block" [class.active]="item.id === variablesService.settings.scale" *ngFor="let item of appScaleOptions" (click)="setScale(item.id)">
|
||||
<span class="label">{{item.name}}</span>
|
||||
<span class="label">{{item.name | translate}}</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -58,19 +58,19 @@ export class SettingsComponent implements OnInit {
|
|||
appScaleOptions = [
|
||||
{
|
||||
id: 7.5,
|
||||
name: '75% scale'
|
||||
name: 'SETTINGS.SCALE.75'
|
||||
},
|
||||
{
|
||||
id: 10,
|
||||
name: '100% scale'
|
||||
name: 'SETTINGS.SCALE.100'
|
||||
},
|
||||
{
|
||||
id: 12.5,
|
||||
name: '125% scale'
|
||||
name: 'SETTINGS.SCALE.125'
|
||||
},
|
||||
{
|
||||
id: 15,
|
||||
name: '150% scale'
|
||||
name: 'SETTINGS.SCALE.150'
|
||||
}
|
||||
];
|
||||
appLogOptions = [
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="sidebar-settings">
|
||||
<div class="wrap-button" routerLinkActive="active" *ngIf="variablesService.appPass === ''; else contactsShow" tooltip="{{ 'SIDEBAR.CONTACTS_TOOLTIP' | translate }}" placement="top" tooltipClass="table-tooltip account-tooltip" [delay]="500" [timeDelay]="1500">
|
||||
<div class="wrap-button" routerLinkActive="active" *ngIf="variablesService.appPass === ''; else contactsShow" tooltip="{{ 'SIDEBAR.CONTACTS_TOOLTIP' | translate }}" placement="top" tooltipClass="table-tooltip account-tooltip" [delay]="500" [timeDelay]="500">
|
||||
<button (click)="contactsRoute()" [class.disabled]="variablesService.daemon_state !== 2 || variablesService.appPass === ''"
|
||||
[disabled]="variablesService.daemon_state !== 2 || variablesService.appPass === ''">
|
||||
<i class="icon contacts"></i>
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
</div>
|
||||
<ng-template #contactsShow>
|
||||
<div class="wrap-button" routerLinkActive="active">
|
||||
<button (click)="contactsRoute()"
|
||||
<button (click)="contactsRoute()" [class.disabled]="variablesService.daemon_state !== 2" [disabled]="variablesService.daemon_state !== 2"
|
||||
(mouseover)="menuItem = true"
|
||||
(mouseleave)="menuItem = false"
|
||||
>
|
||||
|
|
@ -71,7 +71,7 @@
|
|||
<span>{{ 'SIDEBAR.SETTINGS' | translate }}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="wrap-button" *ngIf="variablesService.appPass === ''; else masterPass" tooltip="{{ 'SIDEBAR.LOG_OUT_TOOLTIP' | translate }}" placement="bottom" tooltipClass="table-tooltip account-tooltip" [delay]="500" [timeDelay]="1500">
|
||||
<div class="wrap-button" *ngIf="variablesService.appPass === ''; else masterPass" tooltip="{{ 'SIDEBAR.LOG_OUT_TOOLTIP' | translate }}" placement="bottom" tooltipClass="table-tooltip account-tooltip" [delay]="500" [timeDelay]="500">
|
||||
<button (click)="logOut()" [class.disabled]="variablesService.appPass === ''" [disabled]="variablesService.appPass === ''">
|
||||
<i class="icon logout"></i>
|
||||
<span>{{ 'SIDEBAR.LOG_OUT' | translate }}</span>
|
||||
|
|
|
|||
|
|
@ -8,16 +8,16 @@
|
|||
<div class="alias" *ngIf="variablesService.currentWallet.alias.hasOwnProperty('name') && variablesService.currentWallet.loaded && variablesService.daemon_state === 2">
|
||||
<span>{{variablesService.currentWallet.alias['name']}}</span>
|
||||
<ng-container *ngIf="variablesService.currentWallet.alias_available">
|
||||
<i class="icon edit" [routerLink]="['/edit-alias']" tooltip="{{ 'WALLET.TOOLTIPS.EDIT_ALIAS' | translate }}" placement="bottom-right" tooltipClass="table-tooltip account-tooltip" [delay]="500" [timeDelay]="1500"></i>
|
||||
<i class="icon transfer" [routerLink]="['/transfer-alias']" tooltip="{{ 'WALLET.TOOLTIPS.TRANSFER_ALIAS' | translate }}" placement="right" tooltipClass="table-tooltip account-tooltip" [delay]="500" [timeDelay]="1500"></i>
|
||||
<i class="icon edit" [routerLink]="['/edit-alias']" tooltip="{{ 'WALLET.TOOLTIPS.EDIT_ALIAS' | translate }}" placement="bottom-right" tooltipClass="table-tooltip account-tooltip" [delay]="500" [timeDelay]="500"></i>
|
||||
<i class="icon transfer" [routerLink]="['/transfer-alias']" tooltip="{{ 'WALLET.TOOLTIPS.TRANSFER_ALIAS' | translate }}" placement="right" tooltipClass="table-tooltip account-tooltip" [delay]="500" [timeDelay]="500"></i>
|
||||
</ng-container>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<button [routerLink]="['/details']" routerLinkActive="active" tooltip="{{ 'WALLET.TOOLTIPS.SETTINGS' | translate }}" placement="left" tooltipClass="table-tooltip account-tooltip" [delay]="500" [timeDelay]="1500">
|
||||
<button [routerLink]="['/details']" routerLinkActive="active" tooltip="{{ 'WALLET.TOOLTIPS.SETTINGS' | translate }}" placement="left" tooltipClass="table-tooltip account-tooltip" [delay]="500" [timeDelay]="500">
|
||||
<i class="icon details"></i>
|
||||
</button>
|
||||
<button type="button" (click)="showDialog()" tooltip="{{ 'WALLET.TOOLTIPS.CLOSE' | translate }}" placement="bottom-right" tooltipClass="table-tooltip account-tooltip" [delay]="500" [timeDelay]="1500">
|
||||
<button type="button" (click)="showDialog()" tooltip="{{ 'WALLET.TOOLTIPS.CLOSE' | translate }}" placement="bottom-right" tooltipClass="table-tooltip account-tooltip" [delay]="500" [timeDelay]="500">
|
||||
<i class="icon close-wallet"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -48,4 +48,4 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<app-confirm-modal *ngIf="isModalDialogVisible" [message]=" 'WALLET.CLOSE_MESSAGE' | translate " (confirmed)="confirmed($event)"></app-confirm-modal>
|
||||
<app-confirm-modal *ngIf="isModalDialogVisible" [title]=" 'WALLET.CONFIRM.TITLE' | translate " [message]=" 'WALLET.CONFIRM.MESSAGE' | translate " (confirmed)="confirmed($event)"></app-confirm-modal>
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@
|
|||
height: 1.7rem;
|
||||
|
||||
&.account {
|
||||
height: 1.6rem;
|
||||
mask: url(../../assets/icons/account.svg) no-repeat center;
|
||||
}
|
||||
|
||||
|
|
@ -60,6 +61,7 @@
|
|||
&.details {
|
||||
mask: url(../../assets/icons/details-settings.svg) no-repeat center;
|
||||
margin-right: 0;
|
||||
height: 1.8rem;
|
||||
}
|
||||
|
||||
&.close-wallet {
|
||||
|
|
@ -105,6 +107,7 @@
|
|||
height: 1.7rem;
|
||||
|
||||
&.copy {
|
||||
width: 1.8rem;
|
||||
mask: url(../../assets/icons/copy.svg) no-repeat center;
|
||||
|
||||
&:hover {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
"ONLINE": "Online",
|
||||
"ERROR": "Systemfehler",
|
||||
"COMPLETE": "Abschluss",
|
||||
"SYNCING": "Synchronisiere Blockchain",
|
||||
"SYNCING": "Syncing block",
|
||||
"LOADING": "Lade Blockchain-Daten"
|
||||
},
|
||||
"UPDATE": {
|
||||
|
|
|
|||
|
|
@ -150,8 +150,14 @@
|
|||
"TIME3": "1 hour",
|
||||
"TIME4": "Never"
|
||||
},
|
||||
"SCALE": {
|
||||
"75": "75% scale",
|
||||
"100": "100% scale",
|
||||
"125": "125% scale",
|
||||
"150": "150% scale"
|
||||
},
|
||||
"LANGUAGE": {
|
||||
"TITLE": "Languages",
|
||||
"TITLE": "Language",
|
||||
"EN": "English",
|
||||
"FR": "French",
|
||||
"DE": "Deutsch",
|
||||
|
|
@ -180,7 +186,10 @@
|
|||
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
|
||||
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
|
||||
"LOCKED_BALANCE_LINK": "What does that mean?",
|
||||
"CLOSE_MESSAGE": "<span class=\"message\">Remove wallet from the list</span> <br> <span>(To access it you’ll have to add it again)</span>",
|
||||
"CONFIRM": {
|
||||
"TITLE": "Remove wallet from the list?",
|
||||
"MESSAGE": "To access it you’ll have to add it again"
|
||||
},
|
||||
"TABS": {
|
||||
"SEND": "Send",
|
||||
"RECEIVE": "Receive",
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
"ONLINE": "En ligne",
|
||||
"ERROR": "Erreur de système",
|
||||
"COMPLETE": "Fermeture",
|
||||
"SYNCING": "Synchronisation de la blockchain",
|
||||
"SYNCING": "Syncing block",
|
||||
"LOADING": "Chargement des données de la blockchain"
|
||||
},
|
||||
"UPDATE": {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
"ONLINE": "Online",
|
||||
"ERROR": "Errore di sistema",
|
||||
"COMPLETE": "Completata",
|
||||
"SYNCING": "Sincronizzazione blockchain",
|
||||
"SYNCING": "Syncing block",
|
||||
"LOADING": "Caricamento dati blockchain"
|
||||
},
|
||||
"UPDATE": {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -789,6 +789,16 @@ input[type='checkbox'].style-checkbox {
|
|||
&.custom-select {
|
||||
width: 100%;
|
||||
|
||||
&.ng-select-single {
|
||||
.ng-select-container {
|
||||
.ng-value-container {
|
||||
.ng-value {
|
||||
line-height: 1.8rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ng-select-container {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ namespace currency
|
|||
MAP_JON_RPC ("reset_transaction_pool", on_reset_transaction_pool, COMMAND_RPC_RESET_TX_POOL)
|
||||
MAP_JON_RPC ("get_current_core_tx_expiration_median", on_get_current_core_tx_expiration_median, COMMAND_RPC_GET_CURRENT_CORE_TX_EXPIRATION_MEDIAN)
|
||||
//
|
||||
MAP_JON_RPC_WE("get_offers_ex", on_get_offers_ex, COMMAND_RPC_GET_OFFERS_EX)
|
||||
MAP_JON_RPC_WE("marketplace_global_get_offers_ex", on_get_offers_ex, COMMAND_RPC_GET_OFFERS_EX)
|
||||
|
||||
//remote miner rpc
|
||||
MAP_JON_RPC_N(on_login, mining::COMMAND_RPC_LOGIN)
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@
|
|||
|
||||
#define PROJECT_MAJOR_VERSION "1"
|
||||
#define PROJECT_MINOR_VERSION "1"
|
||||
#define PROJECT_REVISION "0"
|
||||
#define PROJECT_REVISION "2"
|
||||
#define PROJECT_VERSION PROJECT_MAJOR_VERSION "." PROJECT_MINOR_VERSION "." PROJECT_REVISION
|
||||
|
||||
#define PROJECT_VERSION_BUILD_NO 65
|
||||
#define PROJECT_VERSION_BUILD_NO 67
|
||||
#define PROJECT_VERSION_BUILD_NO_STR STRINGIFY_EXPAND(PROJECT_VERSION_BUILD_NO)
|
||||
#define PROJECT_VERSION_LONG PROJECT_VERSION "." PROJECT_VERSION_BUILD_NO_STR "[" BUILD_COMMIT_ID "]"
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
#include "serialization_performance_test.h"
|
||||
#include "keccak_test.h"
|
||||
#include "blake2_test.h"
|
||||
#include "print_struct_to_json.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
|
|
@ -33,7 +34,9 @@ int main(int argc, char** argv)
|
|||
set_process_affinity(1);
|
||||
set_thread_high_priority();
|
||||
|
||||
test_blake2();
|
||||
//test_blake2();
|
||||
|
||||
print_struct_to_json();
|
||||
|
||||
//performance_timer timer;
|
||||
//timer.start();
|
||||
|
|
|
|||
26
tests/performance_tests/print_struct_to_json.h
Normal file
26
tests/performance_tests/print_struct_to_json.h
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
// Copyright (c) 2012-2013 The Boolberry developers
|
||||
// Copyright (c) 2012-2013 The Zano developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "currency_core/currency_basic.h"
|
||||
#include "rpc/core_rpc_server_commands_defs.h"
|
||||
#include "wallet/wallet_public_structs_defs.h"
|
||||
|
||||
|
||||
|
||||
inline bool print_struct_to_json()
|
||||
{
|
||||
tools::wallet_public::COMMAND_MARKETPLACE_PUSH_OFFER::request of = AUTO_VAL_INIT(of);
|
||||
tools::wallet_public::COMMAND_MARKETPLACE_PUSH_UPDATE_OFFER::request uo = AUTO_VAL_INIT(uo);
|
||||
|
||||
bc_services::core_offers_filter ft = AUTO_VAL_INIT(ft);
|
||||
|
||||
std::string s = epee::serialization::store_t_to_json(of);
|
||||
s = epee::serialization::store_t_to_json(ft);
|
||||
s = epee::serialization::store_t_to_json(uo);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 0,
|
||||
"method": "marketplace_cancel_offer",
|
||||
"params": {
|
||||
"no": 0,
|
||||
"tx_id": "1ca72152db6b962e473a0f838c281c902b7e1ed79c0a762bdb197ccf7f4ab2d5",
|
||||
"fee": 10000000000
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"id": 0,
|
||||
"jsonrpc": "2.0",
|
||||
"result": {
|
||||
"tx_blob_size": 368,
|
||||
"tx_hash": "d52014dae0b65168e0551acef9e95972041f3f38d92455d18c8b886baece3d90"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 0,
|
||||
"method": "marketplace_get_offers_ex",
|
||||
"params": {
|
||||
"filter": {
|
||||
"amount_low_limit": 0,
|
||||
"amount_up_limit": 0,
|
||||
"bonus": false,
|
||||
"category": "",
|
||||
"fake": false,
|
||||
"keyword": "",
|
||||
"limit": 100,
|
||||
"location_city": "",
|
||||
"location_country": "",
|
||||
"offer_type_mask": 0,
|
||||
"offset": 0,
|
||||
"order_by": 0,
|
||||
"primary": "",
|
||||
"rate_low_limit": "0.000000",
|
||||
"rate_up_limit": "0.000000",
|
||||
"reverse": false,
|
||||
"target": "",
|
||||
"timestamp_start": 0,
|
||||
"timestamp_stop": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
"id": 0,
|
||||
"jsonrpc": "2.0",
|
||||
"result": {
|
||||
"offers": [{
|
||||
"ap": "20",
|
||||
"at": "1",
|
||||
"b": "",
|
||||
"cat": "CLS:MAN:TSH",
|
||||
"cnt": "Skype: some_skype, discord: some_user#01012",
|
||||
"com": "Some nice comments about tshirt",
|
||||
"do": "Additional conditions",
|
||||
"et": 10,
|
||||
"fee": 10000000000,
|
||||
"index_in_tx": 0,
|
||||
"lci": "",
|
||||
"lco": "World Wide",
|
||||
"ot": 1,
|
||||
"p": "USD",
|
||||
"pt": "Credit cards, BTC, ZANO, ETH",
|
||||
"security": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"t": "T-shirt with Zano logo, made by Crypjunkie",
|
||||
"timestamp": 1570219600,
|
||||
"tx_hash": "6ba12c5d2c66d31f770bfdc88ae9dc90d007b9b33f946fc7c1d9750f8655331c",
|
||||
"tx_original_hash": "0000000000000000000000000000000000000000000000000000000000000000"
|
||||
},{
|
||||
"ap": "20",
|
||||
"at": "1",
|
||||
"b": "",
|
||||
"cat": "CLS:MAN:TSH",
|
||||
"cnt": "Skype: some_skype, discord: some_user#01012",
|
||||
"com": "Some nice comments about tshirt",
|
||||
"do": "Additional conditions",
|
||||
"et": 10,
|
||||
"fee": 10000000000,
|
||||
"index_in_tx": 0,
|
||||
"lci": "",
|
||||
"lco": "World Wide",
|
||||
"ot": 1,
|
||||
"p": "USD",
|
||||
"pt": "Credit cards, BTC, ZANO, ETH",
|
||||
"security": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"t": "T-shirt with Zano logo, made by Crypjunkie",
|
||||
"timestamp": 1570219840,
|
||||
"tx_hash": "2987b671cc337203628a3a1bb7ac811e41f110864d6162d3c2276d2c79f694d6",
|
||||
"tx_original_hash": "0000000000000000000000000000000000000000000000000000000000000000"
|
||||
}],
|
||||
"status": "",
|
||||
"total_offers": 0
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 0,
|
||||
"method": "marketplace_push_offer",
|
||||
"params": {
|
||||
"od": {
|
||||
"ap": "20",
|
||||
"at": "1",
|
||||
"cat": "CLS:MAN:TSH",
|
||||
"cnt": "Skype: some_skype, discord: some_user#01012",
|
||||
"com": "Some nice comments about tshirt",
|
||||
"do": "Additional conditions",
|
||||
"et": 10,
|
||||
"fee": 10000000000,
|
||||
"lci": "",
|
||||
"lco": "World Wide",
|
||||
"ot": 1,
|
||||
"p": "USD",
|
||||
"pt": "Credit cards, BTC, ZANO, ETH",
|
||||
"t": "T-shirt with Zano logo, made by Crypjunkie[4]"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 0,
|
||||
"method": "marketplace_push_offer",
|
||||
"params": {
|
||||
"od": {
|
||||
"ap": "10000",
|
||||
"at": "1",
|
||||
"cat": "HRD:MIN",
|
||||
"cnt": "Skype: some_skype, discord: some_user#01012",
|
||||
"com": "Some nice comments about farm",
|
||||
"do": "Additional conditions",
|
||||
"et": 10,
|
||||
"fee": 10000000000,
|
||||
"lci": "",
|
||||
"lco": "World Wide",
|
||||
"ot": 1,
|
||||
"p": "USD",
|
||||
"pt": "Credit cards, BTC, ZANO, ETH",
|
||||
"t": "Mining farm built by Gigabyted"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"id": 0,
|
||||
"jsonrpc": "2.0",
|
||||
"result": {
|
||||
"tx_blob_size": 549,
|
||||
"tx_hash": "2987b671cc337203628a3a1bb7ac811e41f110864d6162d3c2276d2c79f694d6"
|
||||
}
|
||||
}
|
||||
-----[2]
|
||||
{
|
||||
"id": 0,
|
||||
"jsonrpc": "2.0",
|
||||
"result": {
|
||||
"tx_blob_size": 552,
|
||||
"tx_hash": "1ca72152db6b962e473a0f838c281c902b7e1ed79c0a762bdb197ccf7f4ab2d5"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 0,
|
||||
"method": "marketplace_push_update_offer",
|
||||
"params": {
|
||||
"no": 0,
|
||||
"tx_id": "2987b671cc337203628a3a1bb7ac811e41f110864d6162d3c2276d2c79f694d6",
|
||||
"od": {
|
||||
"ap": "20",
|
||||
"at": "1",
|
||||
"cat": "CLS:MAN:TSH",
|
||||
"cnt": "Skype: some_skype, discord: some_user#01012",
|
||||
"com": "Some nice comments about tshirt",
|
||||
"do": "Additional conditions",
|
||||
"et": 10,
|
||||
"fee": 10000000000,
|
||||
"lci": "",
|
||||
"lco": "World Wide",
|
||||
"ot": 1,
|
||||
"p": "USD",
|
||||
"pt": "Credit cards, BTC, ZANO, ETH",
|
||||
"t": "T-shirt with Zano logo, made by Crypjunkie[updated]"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"id": 0,
|
||||
"jsonrpc": "2.0",
|
||||
"result": {
|
||||
"tx_blob_size": 725,
|
||||
"tx_hash": "06da9bac0f15fd7ab41983f9437f95835b1baef6810fe15b2ea831f60b058b4b"
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue