2023-11-23 17:00:57 +09:00
< span id = "successAlert" class = "m-0 p-0 d-block" style = "height: 1px;" ></ span >
2023-08-26 09:52:55 +02:00
< div class = "row" * ngIf = "showSuccess" >
2023-11-23 17:00:57 +09:00
< div class = "col" >
2023-08-26 09:52:55 +02:00
< div class = "alert alert-success" >
2023-11-19 17:23:46 +09:00
Transaction has now been < a class = "alert-link" routerLink = "/services/accelerator/history" > submitted</ a > to mining pools for acceleration.
2023-08-26 09:52:55 +02:00
</ div >
</ div >
</ div >
2023-11-23 17:00:57 +09:00
< span id = "mempoolError" class = "m-0 p-0 d-block" style = "height: 1px;" ></ span >
2023-08-26 09:52:55 +02:00
< div class = "row" * ngIf = "error" >
2023-11-23 17:00:57 +09:00
< div class = "col" >
< app-mempool-error [ error ]=" error " [ alertClass ]=" error = == ' waitlisted ' ? ' alert-mempool ' : ' alert-danger '" ></ app-mempool-error >
2023-08-26 09:52:55 +02:00
</ div >
</ div >
2023-08-29 21:20:36 +09:00
< div class = "accelerate-cols" >
2023-08-30 17:16:39 +09:00
< ng-container * ngIf = "!isMobile" >
< app-accelerate-fee-graph
[ tx ]=" tx "
[ estimate ]=" estimate "
[ maxRateOptions ]=" maxRateOptions "
[ maxRateIndex ]=" selectFeeRateIndex "
( setUserBid )=" setUserBid ($ event )"
></ app-accelerate-fee-graph >
</ ng-container >
2023-08-26 09:52:55 +02:00
2023-12-12 20:49:08 +07:00
< ng-container * ngIf = "estimate else loadingEstimate" >
2024-04-10 11:11:53 +00:00
< div [ class ]="{ estimateDisabled: error || showSuccess }" >
2023-11-29 15:02:48 +09:00
2023-12-04 23:23:51 +09:00
< div * ngIf = "user && !estimate.hasAccess" >
2023-12-04 23:30:22 +09:00
< div class = "alert alert-mempool" > You are currently on the waitlist</ div >
2023-11-29 15:02:48 +09:00
</ div >
2024-04-04 21:48:16 +09:00
< h5 i18n = "accelerator.your-transaction" > Your transaction</ h5 >
2023-08-30 16:49:54 +09:00
< div class = "row" >
2023-08-29 21:20:36 +09:00
< div class = "col" >
2023-08-30 16:49:54 +09:00
< small * ngIf = "hasAncestors" class = "form-text text-muted mb-2" >
2024-04-04 21:48:16 +09:00
< ng-container i18n = "accelerator.plus-unconfirmed-ancestors" > Plus {{ estimate.txSummary.ancestorCount - 1 }} unconfirmed ancestor(s)</ ng-container >
2023-08-30 16:49:54 +09:00
</ small >
2024-04-18 16:18:38 +02:00
< table class = "table table-borderless table-border table-dark table-background table-accelerator" >
2023-08-29 21:20:36 +09:00
< tbody >
2023-08-30 16:49:54 +09:00
< tr class = "group-first" >
2024-04-04 21:48:16 +09:00
< td class = "item" i18n = "transaction.vsize|Transaction Virtual Size" > Virtual size</ td >
2023-11-23 15:47:28 +09:00
< td style = "text-align: end;" [ innerHTML ]="'& lrm ;' + ( estimate . txSummary . effectiveVsize | vbytes: 2 )" ></ td >
2023-08-29 21:20:36 +09:00
</ tr >
2023-08-30 16:49:54 +09:00
< tr class = "info" >
2023-11-23 14:54:50 +09:00
< td class = "info" colspan = 3 >
2024-04-09 16:15:26 +09:00
< i >< small i18n = "accelerator.transaction-vbytes-size-description" > Size in vbytes of this transaction (including unconfirmed ancestors)</ small ></ i >
2023-08-29 21:20:36 +09:00
</ td >
</ tr >
< tr >
2024-04-04 21:48:16 +09:00
< td class = "item" i18n = "accelerator.in-band-fees" > In-band fees</ td >
2023-11-23 15:47:28 +09:00
< td style = "text-align: end;" >
2023-11-26 15:48:44 +09:00
{{ estimate.txSummary.effectiveFee | number : '1.0-0' }} < span class = "symbol" i18n = "shared.sats" > sats</ span >
2023-08-29 21:20:36 +09:00
</ td >
</ tr >
2023-08-30 16:49:54 +09:00
< tr class = "info group-last" >
2023-11-23 14:54:50 +09:00
< td class = "info" colspan = 3 >
2024-04-09 16:15:26 +09:00
< i >< small i18n = "accelerator.fees-already-paid-description" > Fees already paid by this transaction (including unconfirmed ancestors)</ small ></ i >
2023-08-29 21:20:36 +09:00
</ td >
</ tr >
</ tbody >
</ table >
</ div >
</ div >
2023-08-30 16:49:54 +09:00
< br >
2024-04-14 00:10:15 +09:00
< h5 i18n = "accelerator.pay-how-much" > How much more are you willing to pay?</ h5 >
< div class = "row" >
< div class = "col" >
< small class = "form-text text-muted mb-2" i18n = "accelerator.transaction-fee-description" > Choose the maximum extra transaction fee you're willing to pay to get into the next block.</ small >
< div class = "form-group" >
< div class = "fee-card" >
< div class = "d-flex mb-0" >
< ng-container * ngFor = "let option of maxRateOptions" >
< button type = "button" class = "btn btn-primary flex-grow-1 btn-border btn-sm feerate" [ class ]="{ active: selectFeeRateIndex = == option . index }" ( click )=" setUserBid ( option )" >
< span class = "fee" > {{ option.fee + estimate.mempoolBaseFee + estimate.vsizeFee | number }} < span class = "symbol" i18n = "shared.sats" > sats</ span ></ span >
< span class = "rate" > ~< app-fee-rate [ fee ]=" option . rate " rounding = "1.0-0" ></ app-fee-rate ></ span >
</ button >
</ ng-container >
2023-08-29 21:20:36 +09:00
</ div >
2023-08-26 09:52:55 +02:00
</ div >
</ div >
</ div >
2024-04-14 00:10:15 +09:00
</ div >
2023-08-29 21:20:36 +09:00
2023-08-30 16:49:54 +09:00
< h5 > Acceleration summary</ h5 >
2023-08-29 21:20:36 +09:00
< div class = "row mb-3" >
< div class = "col" >
2024-04-18 16:18:38 +02:00
< table class = "table table-borderless table-border table-dark table-background table-accelerator" >
2023-08-29 21:20:36 +09:00
< tbody >
2023-08-30 16:49:54 +09:00
<!-- ESTIMATED FEE -->
2024-04-14 00:10:15 +09:00
< ng-container >
< tr class = "group-first" >
< td class = "item" i18n = "accelerator.next-block-rate" > Next block market rate</ td >
< td class = "amt" style = "font-size: 16px" >
{{ estimate.targetFeeRate | number : '1.0-0' }}
</ td >
< td class = "units" >< span class = "symbol" i18n = "shared.sat-vbyte|sat/vB" > sat/vB</ span ></ td >
</ tr >
< tr class = "info" >
< td class = "info" >
< i >< small i18n = "accelerator.estimated-extra-fee-required" > Estimated extra fee required</ small ></ i >
</ td >
< td class = "amt" >
{{ math.max(0, estimate.nextBlockFee - estimate.txSummary.effectiveFee) | number }}
</ td >
< td class = "units" >
< span class = "symbol" i18n = "shared.sats" > sats</ span >
< span class = "fiat ml-1" >< app-fiat [ value ]=" math . max ( 0 , estimate . nextBlockFee - estimate . txSummary . effectiveFee )" ></ app-fiat ></ span >
</ td >
</ tr >
</ ng-container >
2023-08-29 21:20:36 +09:00
<!-- MEMPOOL BASE FEE -->
< tr >
2024-04-04 21:48:16 +09:00
< td class = "item" i18n = "accelerator.mempool-accelerator-fees" > Mempool Accelerator™ fees</ td >
2023-08-29 21:20:36 +09:00
</ tr >
2023-08-30 16:49:54 +09:00
< tr class = "info" >
< td class = "info" >
2024-04-04 21:48:16 +09:00
< i >< small i18n = "accelerator.service-fee" > Accelerator Service Fee</ small ></ i >
2023-08-29 21:20:36 +09:00
</ td >
2023-08-30 16:49:54 +09:00
< td class = "amt" >
+{{ estimate.mempoolBaseFee | number }}
</ td >
< td class = "units" >
2023-11-26 15:48:44 +09:00
< span class = "symbol" i18n = "shared.sats" > sats</ span >
2023-11-23 14:54:50 +09:00
< span class = "fiat ml-1" >< app-fiat [ value ]=" estimate . mempoolBaseFee " ></ app-fiat ></ span >
2023-08-29 21:20:36 +09:00
</ td >
</ tr >
2023-11-22 16:38:58 +09:00
< tr class = "info group-last" >
2023-08-30 16:49:54 +09:00
< td class = "info" >
2024-04-04 21:48:16 +09:00
< i >< small i18n = "accelerator.tx-size-surcharge" > Transaction Size Surcharge</ small ></ i >
2023-08-29 21:20:36 +09:00
</ td >
2023-08-30 16:49:54 +09:00
< td class = "amt" >
+{{ estimate.vsizeFee | number }}
</ td >
< td class = "units" >
2023-11-26 15:48:44 +09:00
< span class = "symbol" i18n = "shared.sats" > sats</ span >
2023-11-23 14:54:50 +09:00
< span class = "fiat ml-1" >< app-fiat [ value ]=" estimate . vsizeFee " ></ app-fiat ></ span >
2023-08-29 21:20:36 +09:00
</ td >
</ tr >
2023-08-30 16:49:54 +09:00
2024-04-08 04:58:56 +00:00
2024-04-14 00:10:15 +09:00
<!-- NEXT BLOCK ESTIMATE -->
< ng-container >
< tr class = "group-first" style = "border-top: 1px dashed grey; border-collapse: collapse;" >
< td class = "item" >
< b style = "background-color: #5E35B1" class = "p-1 pl-0" i18n = "accelerator.estimated-cost" > Estimated acceleration cost</ b >
</ td >
< td class = "amt" >
< span style = "background-color: #5E35B1" class = "p-1 pl-0" >
{{ estimate.cost + estimate.mempoolBaseFee + estimate.vsizeFee | number }}
</ span >
</ td >
< td class = "units" >
< span class = "symbol" i18n = "shared.sats" > sats</ span >
< span class = "fiat ml-1" >< app-fiat [ value ]=" estimate . cost + estimate . mempoolBaseFee + estimate . vsizeFee " ></ app-fiat ></ span >
</ td >
</ tr >
< tr class = "info group-last" style = "border-bottom: 1px solid lightgrey" >
< td class = "info" colspan = 3 >
< i >< small >< ng-container * ngTemplateOutlet = "acceleratedTo; context: {$implicit: estimate.targetFeeRate }" ></ ng-container ></ small ></ i >
</ td >
</ tr >
</ ng-container >
<!-- MAX COST -->
< ng-container >
< tr class = "group-first" >
< td class = "item" >
< b style = "background-color: var(--primary);" class = "p-1 pl-0" i18n = "accelerator.maximum-cost" > Maximum acceleration cost</ b >
</ td >
< td class = "amt" >
< span style = "background-color: var(--primary)" class = "p-1 pl-0" >
{{ maxCost | number }}
</ span >
</ td >
< td class = "units" >
< span class = "symbol" i18n = "shared.sats" > sats</ span >
< span class = "fiat ml-1" >
< app-fiat [ value ]=" maxCost " [ colorClass ]=" estimate . userBalance < maxCost ? ' red-color ' : ' green-color '" ></ app-fiat >
</ span >
</ td >
</ tr >
< tr class = "info group-last" >
< td class = "info" colspan = 3 >
< i >< small >< ng-container * ngTemplateOutlet = "acceleratedTo; context: {$implicit: (estimate.txSummary.effectiveFee + userBid) / estimate.txSummary.effectiveVsize }" ></ ng-container ></ small ></ i >
</ td >
</ tr >
</ ng-container >
2023-08-29 21:20:36 +09:00
<!-- USER BALANCE -->
2023-09-03 12:20:30 +03:00
< ng-container * ngIf = "isLoggedIn() && estimate.userBalance < maxCost" >
2023-08-31 00:15:09 +09:00
< tr class = "group-first group-last" style = "border-top: 1px dashed grey" >
2024-04-04 21:48:16 +09:00
< td class = "item" i18n = "accelerator.available-balance" > Available balance</ td >
2023-08-31 00:15:09 +09:00
< td class = "amt" >
{{ estimate.userBalance | number }}
</ td >
< td class = "units" >
2023-11-26 15:48:44 +09:00
< span class = "symbol" i18n = "shared.sats" > sats</ span >
2023-11-23 14:54:50 +09:00
< span class = "fiat ml-1" >
2023-08-31 00:15:09 +09:00
< app-fiat [ value ]=" estimate . userBalance " [ colorClass ]=" estimate . userBalance < maxCost ? ' red-color ' : ' green-color '" ></ app-fiat >
</ span >
</ td >
</ tr >
</ ng-container >
2023-09-03 12:20:30 +03:00
<!-- LOGIN CTA -->
2024-04-14 00:10:15 +09:00
< ng-container * ngIf = "stateService.isMempoolSpaceBuild && !isLoggedIn()" >
2023-09-03 12:20:30 +03:00
< tr class = "group-first group-last" style = "border-top: 1px dashed grey" >
< td class = "item" ></ td >
< td class = "amt" ></ td >
< td class = "units d-flex" >
2024-04-04 21:48:16 +09:00
< a [ routerLink ]="['/ login ']" [ queryParams ]="{ redirectTo: '/ tx /' + tx . txid + '# accelerate '}" class = "btn btn-purple flex-grow-1" i18n = "shared.sign-in" > Sign In</ a >
2023-09-03 12:20:30 +03:00
</ td >
</ tr >
</ ng-container >
2024-03-09 17:45:08 +09:00
< ng-container * ngIf = "!stateService.isMempoolSpaceBuild" >
< tr class = "group-first group-last" style = "border-top: 1px dashed grey" >
< td class = "item" ></ td >
< td class = "amt" ></ td >
< td class = "units d-flex" >
2024-04-04 21:48:16 +09:00
< a [ href ]="' https: // mempool . space / tx /' + tx . txid + '# accelerate '" class = "btn btn-purple flex-grow-1" i18n = "accelerator.accelerate-on-mempoolspace" > Accelerate on mempool.space</ a >
2024-03-09 17:45:08 +09:00
</ td >
</ tr >
</ ng-container >
2023-08-29 21:20:36 +09:00
</ tbody >
</ table >
</ div >
2023-08-26 09:52:55 +02:00
</ div >
2023-08-29 21:20:36 +09:00
2024-04-14 00:10:15 +09:00
< div class = "row mb-3" * ngIf = "isLoggedIn()" >
2023-08-29 21:20:36 +09:00
< div class = "col" >
2023-12-04 23:23:51 +09:00
< div class = "d-flex justify-content-end" * ngIf = "user && estimate.hasAccess" >
2024-04-04 21:48:16 +09:00
< button class = "btn btn-sm btn-primary btn-success" style = "width: 150px" ( click )=" accelerate ()" i18n = "transaction.accelerate|Accelerate button label" > Accelerate</ button >
2023-08-29 21:20:36 +09:00
</ div >
2023-08-26 09:52:55 +02:00
</ div >
</ div >
2023-08-29 21:20:36 +09:00
2023-08-26 09:52:55 +02:00
</ div >
2023-08-29 21:20:36 +09:00
</ ng-container >
2023-12-12 20:49:08 +07:00
</ div >
< ng-template # loadingEstimate >
< div class = "skeleton-loader" ></ div >
< br >
2024-04-04 21:48:16 +09:00
</ ng-template >
< ng-template # acceleratedTo let-i i18n = "accelerator.accelerated-to-description" > If your tx is accelerated to ~{{ i | number : '1.0-0' }} sat/vB</ ng-template >