mempool/frontend/src/app/components/bitcoin-invoice/bitcoin-invoice.component.html

99 lines
5.0 KiB
HTML
Raw Normal View History

<div class="wrapper">
2024-06-28 07:02:12 +00:00
@if (!minimal) {
<span *ngIf="paymentStatus === 3" class="valid-feedback d-block mt-5">
Payment successful. You can close this page.
</span>
<span *ngIf="paymentStatus === 4" class="valid-feedback d-block mt-5">
2024-07-03 17:19:22 +09:00
A transaction <a [href]="'/tx/' + invoice.cryptoInfo[0].payments[0].id.split('-')[0]">has been detected in the mempool</a> fully paying for this invoice. Waiting for on-chain confirmation.
2024-06-28 07:02:12 +00:00
</span>
}
<div *ngIf="paymentStatus === 2">
<form [formGroup]="paymentForm">
2024-06-30 07:17:15 +00:00
<div *ngIf="availableMethods.length > 1" class="form-group">
<div class="btn-group btn-group-toggle" data-toggle="buttons">
2024-07-03 17:19:22 +09:00
<!-- <label *ngIf="invoice.addresses.BTC" class="btn btn-primary" [ngClass]="{'active': paymentForm.get('method')?.value === 'chain'}">
<input type="radio" value="chain" formControlName="method"> <fa-icon [icon]="['fas', 'link']" [fixedWidth]="true" title="Onchain"></fa-icon>
</label> -->
2024-07-03 17:19:22 +09:00
<label *ngIf="invoice.addresses.BTC_LightningLike" class="btn btn-primary" [ngClass]="{'active': paymentForm.get('method')?.value === 'lightning'}">
<input type="radio" value="lightning" formControlName="method"> <fa-icon [icon]="['fas', 'bolt']" [fixedWidth]="true" title="Lightning"></fa-icon>
</label>
2024-07-03 17:19:22 +09:00
<!-- <label *ngIf="invoice.addresses.LBTC" class="btn btn-primary" [ngClass]="{'active': paymentForm.get('method')?.value === 'lbtc'}">
<input type="radio" value="lbtc" formControlName="method"> <fa-icon [icon]="['fas', 'tint']" [fixedWidth]="true" title="Liquid Bitcoin"></fa-icon>
</label> -->
</div>
</div>
</form>
2024-07-03 17:19:22 +09:00
<ng-template [ngIf]="paymentForm.get('method')?.value === 'chain' && invoice">
2024-06-28 07:02:12 +00:00
<div class="qr-wrapper" [class.mt-0]="minimal">
2024-07-03 17:19:22 +09:00
<a [href]="bypassSecurityTrustUrl('bitcoin:' + invoice.addresses.BTC + '?amount=' + invoice.btcDue)" target="_blank">
<app-qrcode imageUrl="/resources/bitcoin-logo.png" [size]="200" [data]="'bitcoin:' + invoice.addresses.BTC + '?amount=' + invoice.btcDue"></app-qrcode>
</a>
</div>
2024-06-28 07:02:12 +00:00
<div class="input-group input-group-sm info-group">
2024-07-03 17:19:22 +09:00
<input type="text" class="form-control input-dark" readonly [value]="invoice.addresses.BTC">
<div class="input-group-append">
2024-07-03 17:19:22 +09:00
<button class="btn btn-outline-secondary" type="button" ><app-clipboard [text]="invoice.addresses.BTC"></app-clipboard></button>
</div>
</div>
2024-06-28 07:02:12 +00:00
@if (!minimal) {
2024-07-03 17:19:22 +09:00
<p>{{ invoice.btcDue | number: '1.0-8' }} <span class="symbol">BTC</span></p>
2024-06-28 07:02:12 +00:00
}
</ng-template>
2024-07-03 17:19:22 +09:00
<ng-template [ngIf]="paymentForm.get('method')?.value === 'lightning' && invoice && invoice.addresses.BTC_LightningLike">
2024-06-28 07:02:12 +00:00
<div class="qr-wrapper" [class.mt-0]="minimal">
2024-07-03 17:19:22 +09:00
<a [href]="bypassSecurityTrustUrl('lightning:' + invoice.addresses.BTC_LightningLike)" target="_blank">
<app-qrcode imageUrl="/resources/lightning-logo.png" [size]="200" [data]="invoice.addresses.BTC_LightningLike.toUpperCase()"></app-qrcode>
</a>
</div>
<div class="input-group input-group-sm info-group">
2024-07-03 17:19:22 +09:00
<input type="text" class="form-control input-dark" readonly [value]="invoice.addresses.BTC_LightningLike">
<div class="input-group-append">
2024-07-03 17:19:22 +09:00
<button class="btn btn-outline-secondary" type="button"><app-clipboard [text]="invoice.addresses.BTC_LightningLike"></app-clipboard></button>
</div>
</div>
2024-06-28 07:02:12 +00:00
@if (!minimal) {
2024-07-03 17:19:22 +09:00
<p>{{ invoice.btcDue * 100_000_000 | number: '1.0-0' }} <span class="symbol">sats</span></p>
2024-06-28 07:02:12 +00:00
}
</ng-template>
2024-07-03 17:19:22 +09:00
<ng-template [ngIf]="invoice && (paymentForm.get('method')?.value === 'lbtc' || paymentForm.get('method')?.value === 'tlbtc')">
2024-06-28 07:02:12 +00:00
<div class="qr-wrapper" [class.mt-0]="minimal">
2024-07-03 17:19:22 +09:00
<a [href]="bypassSecurityTrustUrl('liquidnetwork:' + invoice.addresses.LBTC + '?amount=' + invoice.btcDue + '&assetid=6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d')" target="_blank">
<app-qrcode imageUrl="/resources/liquid-bitcoin.png" [size]="200" [data]="'liquidnetwork:' + invoice.addresses.LBTC + '?amount=' + invoice.btcDue + '&assetid=6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d'"></app-qrcode>
</a>
</div>
<br>
<div class="input-group input-group-sm info-group">
2024-07-03 17:19:22 +09:00
<input type="text" class="form-control input-dark" readonly [value]="invoice.addresses.LBTC" />
<div class="input-group-append">
2024-07-03 17:19:22 +09:00
<button class="btn btn-outline-secondary" type="button" ><app-clipboard [text]="invoice.addresses.LBTC"></app-clipboard></button>
</div>
</div>
2024-06-28 07:02:12 +00:00
@if (!minimal) {
2024-07-03 17:19:22 +09:00
<p>{{ invoice.btcDue | number: '1.0-8' }} <span class="symbol">BTC</span></p>
2024-06-28 07:02:12 +00:00
}
</ng-template>
2024-06-28 07:02:12 +00:00
@if (!minimal) {
<p>Waiting for transaction... </p>
<div class="spinner-border text-light"></div>
}
</div>
</div>