2024-05-16 07:35:55 +00:00
< div class = "container-xl" >
< div class = "title-block justify-content-center" >
< h1 i18n = "testnet4.faucet" > Testnet4 Faucet< / h1 >
< / div >
@if (error) {
< div class = "alert alert-danger" >
@switch (error) {
@case ('faucet_too_soon') {
Too many requests! Try again later.
}
@case ('faucet_maximum_reached') {
You have exceeded your testnet4 allowance. Try again later.
}
@case ('faucet_not_available') {
The faucet is not available right now. Try again later.
}
@default {
Sorry, something went wrong! Try again later.
}
}
< / div >
}
< div class = "faucet-container text-center" >
@if (txid) {
< div class = "alert alert-mempool d-block text-center" >
< a [ routerLink ] = " [ ' / tx / ' | relativeUrl , txid ] " > {{ txid }}< / a >
< / div >
2024-05-16 21:09:47 +00:00
} @else if (loading) {
2024-05-16 07:35:55 +00:00
< p > Waiting for faucet...< / p >
< div class = "spinner-border text-light" > < / div >
} @else {
< form [ formGroup ] = " faucetForm " class = "formGroup" ( submit ) = " requestCoins ( ) " >
< div class = "row" >
< div class = "col" >
< div class = "form-group" >
< div class = "input-group input-group-lg mb-2" >
< div class = "input-group-prepend" >
< span class = "input-group-text" i18n = "amount-sats" > Amount (sats)< / span >
< / div >
< input type = "number" class = "form-control" formControlName = "satoshis" id = "satoshis" >
< div class = "button-group" >
< button type = "button" class = "btn btn-secondary ml-2" ( click ) = " setAmount ( 5000 ) " > 5k< / button >
< button type = "button" class = "btn btn-secondary ml-2" ( click ) = " setAmount ( 50000 ) " > 50k< / button >
< button type = "button" class = "btn btn-secondary ml-2" ( click ) = " setAmount ( 500000 ) " > 500k< / button >
< / div >
< / div >
< div class = "text-danger text-left" * ngIf = "invalidAmount" >
< div * ngIf = "amount?.errors?.['required']" > Amount is required< / div >
2024-05-16 21:09:47 +00:00
< div * ngIf = "status?.user_requests && amount?.errors?.['min']" > Minimum is {{ amount?.errors?.['min'].min }}< / div >
< div * ngIf = "status?.user_requests && amount?.errors?.['max']" > Maximum is {{ amount?.errors?.['max'].max }}< / div >
2024-05-16 07:35:55 +00:00
< / div >
< div class = "input-group input-group-lg mb-2" >
< div class = "input-group-prepend" >
< span class = "input-group-text" i18n = "address" > Address< / span >
< / div >
< input type = "address" class = "form-control" formControlName = "address" id = "address" placeholder = "tb1q..." >
< button type = "submit" class = "btn btn-primary submit-button ml-2" [ disabled ] = " ! status ? . access | | ! faucetForm . valid | | ! faucetForm . get ( ' address ' ) ? . dirty " i18n = "testnet4.request-coins" > Request Testnet4 Coins< / button >
< / div >
< div class = "text-danger text-left" * ngIf = "invalidAddress" >
@if (address?.errors?.['required']) {
< div > Address is required< / div >
} @else {
< div > Must be a valid testnet4 address< / div >
}
< / div >
< div class = "text-danger text-left" * ngIf = "status && !status.user_requests" >
< div > Too many requests! Try again later.< / div >
< / div >
< / div >
< / div >
< / div >
< / form >
@if (!user) {
< div class = "alert alert-mempool d-block" >
To limit abuse, please < a routerLink = "/login" [ queryParams ] = " { ' redirectTo ' : ' / testnet4 / faucet ' } " > log in< / a > or < a routerLink = "/signup" [ queryParams ] = " { ' redirectTo ' : ' / testnet4 / faucet ' } " > sign up< / a > and link your Twitter account to use the faucet.
< / div >
} @else if (!status?.access) {
< div class = "alert alert-mempool d-block" >
To use this feature, please < a routerLink = "/services/account/settings" > link your Twitter account< / a > .
< / div >
}
}
< br >
2024-05-16 18:36:33 +00:00
< div * ngIf = "status?.address" >
If you no longer need your testnet4 coins, please consider sending them back to < a [ routerLink ] = " [ ' / address / ' | relativeUrl , status . address ] " > {{ status.address }}< / a > to replenish the faucet.
2024-05-16 07:35:55 +00:00
< / div >
< / div >
< / div >