Merge branch 'master' into natsoni/fix-tooltip-timeline
This commit is contained in:
		
						commit
						510b4adcea
					
				| @ -28,7 +28,7 @@ | ||||
|     "POOLS_JSON_URL": "https://raw.githubusercontent.com/mempool/mining-pools/master/pools-v2.json", | ||||
|     "POOLS_JSON_TREE_URL": "https://api.github.com/repos/mempool/mining-pools/git/trees/master", | ||||
|     "AUDIT": false, | ||||
|     "RUST_GBT": false, | ||||
|     "RUST_GBT": true, | ||||
|     "LIMIT_GBT": false, | ||||
|     "CPFP_INDEXING": false, | ||||
|     "DISK_CACHE_BLOCK_INTERVAL": 6, | ||||
|  | ||||
| @ -42,7 +42,7 @@ describe('Mempool Backend Config', () => { | ||||
|         POOLS_JSON_TREE_URL: 'https://api.github.com/repos/mempool/mining-pools/git/trees/master', | ||||
|         POOLS_JSON_URL: 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools-v2.json', | ||||
|         AUDIT: false, | ||||
|         RUST_GBT: false, | ||||
|         RUST_GBT: true, | ||||
|         LIMIT_GBT: false, | ||||
|         CPFP_INDEXING: false, | ||||
|         MAX_BLOCKS_BULK_QUERY: 0, | ||||
|  | ||||
| @ -121,6 +121,7 @@ class TransactionUtils { | ||||
|     const adjustedVsize = Math.max(fractionalVsize, sigops *  5); // adjusted vsize = Max(weight, sigops * bytes_per_sigop) / witness_scale_factor
 | ||||
|     const feePerVbytes = (transaction.fee || 0) / fractionalVsize; | ||||
|     const adjustedFeePerVsize = (transaction.fee || 0) / adjustedVsize; | ||||
|     const effectiveFeePerVsize = transaction['effectiveFeePerVsize'] || adjustedFeePerVsize || feePerVbytes; | ||||
|     const transactionExtended: MempoolTransactionExtended = Object.assign(transaction, { | ||||
|       order: this.txidToOrdering(transaction.txid), | ||||
|       vsize, | ||||
| @ -128,7 +129,7 @@ class TransactionUtils { | ||||
|       sigops, | ||||
|       feePerVsize: feePerVbytes, | ||||
|       adjustedFeePerVsize: adjustedFeePerVsize, | ||||
|       effectiveFeePerVsize: adjustedFeePerVsize, | ||||
|       effectiveFeePerVsize: effectiveFeePerVsize, | ||||
|     }); | ||||
|     if (!transactionExtended?.status?.confirmed && !transactionExtended.firstSeen) { | ||||
|       transactionExtended.firstSeen = Math.round((Date.now() / 1000)); | ||||
|  | ||||
| @ -193,7 +193,7 @@ const defaults: IConfig = { | ||||
|     'POOLS_JSON_URL': 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools-v2.json', | ||||
|     'POOLS_JSON_TREE_URL': 'https://api.github.com/repos/mempool/mining-pools/git/trees/master', | ||||
|     'AUDIT': false, | ||||
|     'RUST_GBT': false, | ||||
|     'RUST_GBT': true, | ||||
|     'LIMIT_GBT': false, | ||||
|     'CPFP_INDEXING': false, | ||||
|     'MAX_BLOCKS_BULK_QUERY': 0, | ||||
|  | ||||
| @ -30,7 +30,7 @@ __MEMPOOL_AUTOMATIC_POOLS_UPDATE__=${MEMPOOL_AUTOMATIC_POOLS_UPDATE:=false} | ||||
| __MEMPOOL_POOLS_JSON_URL__=${MEMPOOL_POOLS_JSON_URL:=https://raw.githubusercontent.com/mempool/mining-pools/master/pools-v2.json} | ||||
| __MEMPOOL_POOLS_JSON_TREE_URL__=${MEMPOOL_POOLS_JSON_TREE_URL:=https://api.github.com/repos/mempool/mining-pools/git/trees/master} | ||||
| __MEMPOOL_AUDIT__=${MEMPOOL_AUDIT:=false} | ||||
| __MEMPOOL_RUST_GBT__=${MEMPOOL_RUST_GBT:=false} | ||||
| __MEMPOOL_RUST_GBT__=${MEMPOOL_RUST_GBT:=true} | ||||
| __MEMPOOL_LIMIT_GBT__=${MEMPOOL_LIMIT_GBT:=false} | ||||
| __MEMPOOL_CPFP_INDEXING__=${MEMPOOL_CPFP_INDEXING:=false} | ||||
| __MEMPOOL_MAX_BLOCKS_BULK_QUERY__=${MEMPOOL_MAX_BLOCKS_BULK_QUERY:=0} | ||||
|  | ||||
| @ -219,9 +219,13 @@ export class AddressComponent implements OnInit, OnDestroy { | ||||
|             address.is_pubkey | ||||
|               ? this.electrsApiService.getScriptHashTransactions$((address.address.length === 66 ? '21' : '41') + address.address + 'ac') | ||||
|               : this.electrsApiService.getAddressTransactions$(address.address), | ||||
|             utxoCount >= 2 && utxoCount <= 500 ? (address.is_pubkey | ||||
|             (utxoCount >= 2 && utxoCount <= 500 ? (address.is_pubkey | ||||
|               ? this.electrsApiService.getScriptHashUtxos$((address.address.length === 66 ? '21' : '41') + address.address + 'ac') | ||||
|               : this.electrsApiService.getAddressUtxos$(address.address)) : of([]) | ||||
|               : this.electrsApiService.getAddressUtxos$(address.address)) : of([])).pipe( | ||||
|                 catchError(() => { | ||||
|                   return of([]); | ||||
|                 }) | ||||
|               ) | ||||
|           ]); | ||||
|         }), | ||||
|         switchMap(([transactions, utxos]) => { | ||||
|  | ||||
| @ -85,7 +85,6 @@ | ||||
|       <li class="nav-item" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}" id="btn-home" *ngIf="network.val === '' && stateService.env.ACCELERATOR"> | ||||
|         <a class="nav-link" [routerLink]="['/acceleration' | relativeUrl]" (click)="collapse()"> | ||||
|           <fa-icon [icon]="['fas', 'rocket']" [fixedWidth]="true" i18n-title="master-page.accelerator-dashboard" title="Accelerator Dashboard"></fa-icon> | ||||
|           <span class="badge badge-pill badge-warning beta" i18n="beta">beta</span> | ||||
|         </a> | ||||
|       </li> | ||||
|       <li class="nav-item" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}" id="btn-pools" *ngIf="stateService.env.MINING_DASHBOARD"> | ||||
|  | ||||
| @ -165,7 +165,7 @@ export class ServicesApiServices { | ||||
|       return this.getAccelerationHistoryObserveResponse$({...params, page}).pipe( | ||||
|         map((response) => ({ | ||||
|           page, | ||||
|           total: parseInt(response.headers.get('X-Total-Count'), 10), | ||||
|           total: parseInt(response.headers.get('X-Total-Count'), 10) || 0, | ||||
|           accelerations: accelerations.concat(response.body || []), | ||||
|         })), | ||||
|         switchMap(({page, total, accelerations}) => { | ||||
|  | ||||
| @ -8,7 +8,7 @@ export class BitcoinsatoshisPipe implements PipeTransform { | ||||
| 
 | ||||
|   constructor(private sanitizer: DomSanitizer) { } | ||||
| 
 | ||||
|   transform(value: string): SafeHtml { | ||||
|   transform(value: string, firstPartClass?: string): SafeHtml { | ||||
|     const newValue = this.insertSpaces(parseFloat(value || '0').toFixed(8)); | ||||
|     const position = (newValue || '0').search(/[1-9]/); | ||||
| 
 | ||||
| @ -16,7 +16,7 @@ export class BitcoinsatoshisPipe implements PipeTransform { | ||||
|     const secondPart = newValue.slice(position); | ||||
| 
 | ||||
|     return this.sanitizer.bypassSecurityTrustHtml( | ||||
|       `<span class="text-secondary">${firstPart}</span>${secondPart}` | ||||
|       `<span class="${firstPartClass ? firstPartClass : 'text-secondary'}">${firstPart}</span>${secondPart}` | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
|  | ||||
| @ -365,6 +365,7 @@ import { OnlyVsizeDirective, OnlyWeightDirective } from './components/weight-dir | ||||
|     TwitterWidgetComponent, | ||||
|     TwitterLogin, | ||||
|     BitcoinInvoiceComponent, | ||||
|     BitcoinsatoshisPipe, | ||||
| 
 | ||||
|     MempoolBlockOverviewComponent, | ||||
|     ClockchainComponent, | ||||
|  | ||||
| @ -92,6 +92,7 @@ location @mempool-api-v1-services-cache-disabled-addcors { | ||||
| 	set $cors_methods 'GET, POST, PUT, DELETE, OPTIONS'; | ||||
| 	set $cors_origin 'https://mempool.space'; | ||||
| 	set $cors_headers 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With'; | ||||
| 	set $cors_expose_headers 'X-Total-Count'; | ||||
| 	set $cors_credentials 'true'; | ||||
| 
 | ||||
| 	# set CORS for approved hostnames | ||||
| @ -100,6 +101,7 @@ location @mempool-api-v1-services-cache-disabled-addcors { | ||||
| 		set $cors_methods 'GET, POST, PUT, DELETE, OPTIONS'; | ||||
| 		set $cors_origin "$http_origin"; | ||||
| 		set $cors_headers 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With'; | ||||
| 		set $cors_expose_headers 'X-Total-Count'; | ||||
| 		set $cors_credentials 'true'; | ||||
| 	} | ||||
| 
 | ||||
| @ -108,6 +110,7 @@ location @mempool-api-v1-services-cache-disabled-addcors { | ||||
| 	add_header Access-Control-Allow-Origin "$cors_origin" always; | ||||
| 	add_header Access-Control-Allow-Headers "$cors_headers" always; | ||||
| 	add_header Access-Control-Allow-Credentials "$cors_credentials" always; | ||||
| 	add_header Access-Control-Expose-Headers "$cors_expose_headers" always; | ||||
| 
 | ||||
| 	proxy_redirect off; | ||||
| 	proxy_buffering off; | ||||
| @ -172,6 +175,7 @@ location @mempool-api-v1-services-cache-short-addcors { | ||||
| 	set $cors_methods 'GET, POST, PUT, DELETE, OPTIONS'; | ||||
| 	set $cors_origin 'https://mempool.space'; | ||||
| 	set $cors_headers 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With'; | ||||
| 	set $cors_expose_headers 'X-Total-Count'; | ||||
| 	set $cors_credentials 'true'; | ||||
| 
 | ||||
| 	# set CORS for approved hostnames | ||||
| @ -180,6 +184,7 @@ location @mempool-api-v1-services-cache-short-addcors { | ||||
| 		set $cors_methods 'GET, POST, PUT, DELETE, OPTIONS'; | ||||
| 		set $cors_origin "$http_origin"; | ||||
| 		set $cors_headers 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With'; | ||||
| 		set $cors_expose_headers 'X-Total-Count'; | ||||
| 		set $cors_credentials 'true'; | ||||
| 	} | ||||
| 
 | ||||
| @ -188,6 +193,7 @@ location @mempool-api-v1-services-cache-short-addcors { | ||||
| 	add_header Access-Control-Allow-Origin "$cors_origin" always; | ||||
| 	add_header Access-Control-Allow-Headers "$cors_headers" always; | ||||
| 	add_header Access-Control-Allow-Credentials "$cors_credentials" always; | ||||
| 	add_header Access-Control-Expose-Headers "$cors_expose_headers" always; | ||||
| 
 | ||||
| 	# add our own cache headers | ||||
| 	add_header 'Pragma' 'public'; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user