Merge branch 'master' into simon/populate-historical-node-data
This commit is contained in:
		
						commit
						46bed0be29
					
				| @ -527,13 +527,12 @@ class Blocks { | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     let block = await bitcoinClient.getBlock(hash); | ||||
| 
 | ||||
|     // Not Bitcoin network, return the block as it
 | ||||
|     if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK) === false) { | ||||
|       return block; | ||||
|       return await bitcoinApi.$getBlock(hash); | ||||
|     } | ||||
| 
 | ||||
|     let block = await bitcoinClient.getBlock(hash); | ||||
|     block = prepareBlock(block); | ||||
| 
 | ||||
|     // Bitcoin network, add our custom data on top
 | ||||
| @ -547,8 +546,8 @@ class Blocks { | ||||
|     return blockExtended; | ||||
|   } | ||||
| 
 | ||||
|   public async $getStrippedBlockTransactions(hash: string, skipMemoryCache: boolean = false, | ||||
|     skipDBLookup: boolean = false): Promise<TransactionStripped[]> | ||||
|   public async $getStrippedBlockTransactions(hash: string, skipMemoryCache = false, | ||||
|     skipDBLookup = false): Promise<TransactionStripped[]> | ||||
|   { | ||||
|     if (skipMemoryCache === false) { | ||||
|       // Check the memory cache
 | ||||
|  | ||||
| @ -172,7 +172,7 @@ export class Common { | ||||
| 
 | ||||
|   static indexingEnabled(): boolean { | ||||
|     return ( | ||||
|       ['mainnet', 'testnet', 'signet', 'regtest'].includes(config.MEMPOOL.NETWORK) && | ||||
|       ['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK) && | ||||
|       config.DATABASE.ENABLED === true && | ||||
|       config.MEMPOOL.INDEXING_BLOCKS_AMOUNT !== 0 | ||||
|     ); | ||||
|  | ||||
| @ -761,7 +761,19 @@ class Routes { | ||||
|   public async getBlock(req: Request, res: Response) { | ||||
|     try { | ||||
|       const block = await blocks.$getBlock(req.params.hash); | ||||
|       res.setHeader('Expires', new Date(Date.now() + 1000 * 600).toUTCString()); | ||||
| 
 | ||||
|       const blockAge = new Date().getTime() / 1000 - block.timestamp; | ||||
|       const day = 24 * 3600; | ||||
|       let cacheDuration; | ||||
|       if (blockAge > 365 * day) { | ||||
|         cacheDuration = 30 * day; | ||||
|       } else if (blockAge > 30 * day) { | ||||
|         cacheDuration = 10 * day; | ||||
|       } else { | ||||
|         cacheDuration = 600 | ||||
|       } | ||||
| 
 | ||||
|       res.setHeader('Expires', new Date(Date.now() + 1000 * cacheDuration).toUTCString()); | ||||
|       res.json(block); | ||||
|     } catch (e) { | ||||
|       res.status(500).send(e instanceof Error ? e.message : e); | ||||
|  | ||||
							
								
								
									
										36
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										36
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -6588,11 +6588,11 @@ | ||||
|       "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" | ||||
|     }, | ||||
|     "node_modules/common-shakeify": { | ||||
|       "version": "0.6.2", | ||||
|       "resolved": "https://registry.npmjs.org/common-shakeify/-/common-shakeify-0.6.2.tgz", | ||||
|       "integrity": "sha512-vxlXr26fqxm8ZJ0jh8MlvpeN6IbyUKqsVmgb4rAjDM/0f4nKebiHaAXpF/Mm86W9ENR5iSI7UOnUTylpVyplUA==", | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/common-shakeify/-/common-shakeify-1.1.1.tgz", | ||||
|       "integrity": "sha512-M9hTU14RkpKvNggSU4zJIzgm89inwjnhipxvKxCNms/gM77R7keRqOqGYIM/Jr4BBhtbZB8ZF//raYqAbHk/DA==", | ||||
|       "dependencies": { | ||||
|         "@goto-bus-stop/common-shake": "^2.2.0", | ||||
|         "@goto-bus-stop/common-shake": "^2.3.0", | ||||
|         "convert-source-map": "^1.5.1", | ||||
|         "through2": "^2.0.3", | ||||
|         "transform-ast": "^2.4.3", | ||||
| @ -8603,7 +8603,7 @@ | ||||
|     "node_modules/escope": { | ||||
|       "version": "3.6.0", | ||||
|       "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", | ||||
|       "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", | ||||
|       "integrity": "sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==", | ||||
|       "dependencies": { | ||||
|         "es6-map": "^0.1.3", | ||||
|         "es6-weak-map": "^2.0.1", | ||||
| @ -16304,15 +16304,15 @@ | ||||
|       "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" | ||||
|     }, | ||||
|     "node_modules/tinyify": { | ||||
|       "version": "3.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/tinyify/-/tinyify-3.0.0.tgz", | ||||
|       "integrity": "sha512-RtjVjC1xwwxt8AMVfxEmo+FzRJB6p5sAOtFaJj8vMrkWShtArsM4dLVRWhx2Vc07Me3NWgmP7pi9UPm/a2XNNA==", | ||||
|       "version": "3.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/tinyify/-/tinyify-3.1.0.tgz", | ||||
|       "integrity": "sha512-r4tHoDkWhhoItWbxJ3KCHXask3hJN7gCUkR5PLfnQzQagTA6oDkzhCbiEDHkMqo7Ck7vVSA1pTP1gDc9p1AC1w==", | ||||
|       "dependencies": { | ||||
|         "@goto-bus-stop/envify": "^5.0.0", | ||||
|         "acorn-node": "^1.8.2", | ||||
|         "browser-pack-flat": "^3.0.9", | ||||
|         "bundle-collapser": "^1.3.0", | ||||
|         "common-shakeify": "^0.6.0", | ||||
|         "common-shakeify": "^1.1.1", | ||||
|         "dash-ast": "^1.0.0", | ||||
|         "minify-stream": "^2.0.1", | ||||
|         "multisplice": "^1.0.0", | ||||
| @ -22670,11 +22670,11 @@ | ||||
|       "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" | ||||
|     }, | ||||
|     "common-shakeify": { | ||||
|       "version": "0.6.2", | ||||
|       "resolved": "https://registry.npmjs.org/common-shakeify/-/common-shakeify-0.6.2.tgz", | ||||
|       "integrity": "sha512-vxlXr26fqxm8ZJ0jh8MlvpeN6IbyUKqsVmgb4rAjDM/0f4nKebiHaAXpF/Mm86W9ENR5iSI7UOnUTylpVyplUA==", | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/common-shakeify/-/common-shakeify-1.1.1.tgz", | ||||
|       "integrity": "sha512-M9hTU14RkpKvNggSU4zJIzgm89inwjnhipxvKxCNms/gM77R7keRqOqGYIM/Jr4BBhtbZB8ZF//raYqAbHk/DA==", | ||||
|       "requires": { | ||||
|         "@goto-bus-stop/common-shake": "^2.2.0", | ||||
|         "@goto-bus-stop/common-shake": "^2.3.0", | ||||
|         "convert-source-map": "^1.5.1", | ||||
|         "through2": "^2.0.3", | ||||
|         "transform-ast": "^2.4.3", | ||||
| @ -24256,7 +24256,7 @@ | ||||
|     "escope": { | ||||
|       "version": "3.6.0", | ||||
|       "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", | ||||
|       "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", | ||||
|       "integrity": "sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==", | ||||
|       "requires": { | ||||
|         "es6-map": "^0.1.3", | ||||
|         "es6-weak-map": "^2.0.1", | ||||
| @ -30040,15 +30040,15 @@ | ||||
|       "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" | ||||
|     }, | ||||
|     "tinyify": { | ||||
|       "version": "3.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/tinyify/-/tinyify-3.0.0.tgz", | ||||
|       "integrity": "sha512-RtjVjC1xwwxt8AMVfxEmo+FzRJB6p5sAOtFaJj8vMrkWShtArsM4dLVRWhx2Vc07Me3NWgmP7pi9UPm/a2XNNA==", | ||||
|       "version": "3.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/tinyify/-/tinyify-3.1.0.tgz", | ||||
|       "integrity": "sha512-r4tHoDkWhhoItWbxJ3KCHXask3hJN7gCUkR5PLfnQzQagTA6oDkzhCbiEDHkMqo7Ck7vVSA1pTP1gDc9p1AC1w==", | ||||
|       "requires": { | ||||
|         "@goto-bus-stop/envify": "^5.0.0", | ||||
|         "acorn-node": "^1.8.2", | ||||
|         "browser-pack-flat": "^3.0.9", | ||||
|         "bundle-collapser": "^1.3.0", | ||||
|         "common-shakeify": "^0.6.0", | ||||
|         "common-shakeify": "^1.1.1", | ||||
|         "dash-ast": "^1.0.0", | ||||
|         "minify-stream": "^2.0.1", | ||||
|         "multisplice": "^1.0.0", | ||||
|  | ||||
| @ -1,10 +1,10 @@ | ||||
| <div *ngIf="stateService.env.MINING_DASHBOARD || stateService.env.LIGHTNING" class="mb-3 d-flex menu" | ||||
|   style="padding: 0px 35px;"> | ||||
| 
 | ||||
|   <a routerLinkActive="active" class="btn btn-primary w-50 mr-1" | ||||
|   <a routerLinkActive="active" class="btn btn-primary mr-1" [class]="padding" | ||||
|     [routerLink]="['/graphs/mempool' | relativeUrl]">Mempool</a> | ||||
| 
 | ||||
|   <div ngbDropdown class="w-50" *ngIf="stateService.env.MINING_DASHBOARD"> | ||||
|   <div ngbDropdown class="mr-1" [class]="padding" *ngIf="stateService.env.MINING_DASHBOARD"> | ||||
|     <button class="btn btn-primary w-100" id="dropdownBasic1" ngbDropdownToggle i18n="mining">Mining</button> | ||||
|     <div ngbDropdownMenu aria-labelledby="dropdownBasic1"> | ||||
|       <a class="dropdown-item" routerLinkActive="active" [routerLink]="['/graphs/mining/pools' | relativeUrl]" | ||||
| @ -27,7 +27,7 @@ | ||||
|     </div> | ||||
|   </div> | ||||
| 
 | ||||
|   <div ngbDropdown class="w-50" *ngIf="stateService.env.LIGHTNING"> | ||||
|   <div ngbDropdown [class]="padding" *ngIf="stateService.env.LIGHTNING"> | ||||
|     <button class="btn btn-primary w-100" id="dropdownBasic1" ngbDropdownToggle i18n="lightning">Lightning</button> | ||||
|     <div ngbDropdownMenu aria-labelledby="dropdownBasic1"> | ||||
|       <a class="dropdown-item" routerLinkActive="active" [routerLink]="['/graphs/lightning/nodes-networks' | relativeUrl]" | ||||
|  | ||||
| @ -8,6 +8,8 @@ import { WebsocketService } from "src/app/services/websocket.service"; | ||||
|   styleUrls: ['./graphs.component.scss'], | ||||
| }) | ||||
| export class GraphsComponent implements OnInit { | ||||
|   padding = 'w-50'; | ||||
| 
 | ||||
|   constructor( | ||||
|     public stateService: StateService, | ||||
|     private websocketService: WebsocketService | ||||
| @ -15,5 +17,9 @@ export class GraphsComponent implements OnInit { | ||||
| 
 | ||||
|   ngOnInit(): void { | ||||
|     this.websocketService.want(['blocks']); | ||||
| 
 | ||||
|     if (this.stateService.env.MINING_DASHBOARD === true && this.stateService.env.LIGHTNING === true) { | ||||
|       this.padding = 'w-33'; | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user