@tuwaio/payments-sdk 0.0.0-stage → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +76 -2
  3. package/dist/OwnConnection-ET76SUMX-4JFMOO7Z.cjs +1 -0
  4. package/dist/OwnConnection-ET76SUMX-G7ZHJN57.js +1 -0
  5. package/dist/checkout-C05-kSiE.d.cts +1616 -0
  6. package/dist/checkout-C05-kSiE.d.ts +1616 -0
  7. package/dist/checkout.cjs +1 -0
  8. package/dist/checkout.d.cts +2 -0
  9. package/dist/checkout.d.ts +2 -0
  10. package/dist/checkout.js +1 -0
  11. package/dist/chunk-LB2KDA4M.js +2 -0
  12. package/dist/chunk-MJOZIUWN.cjs +1 -0
  13. package/dist/chunk-NQ26UU24.cjs +1 -0
  14. package/dist/chunk-TN5VGRRA.cjs +2 -0
  15. package/dist/chunk-UJ2TJGKY.js +1 -0
  16. package/dist/chunk-VTOKR3DS.js +1 -0
  17. package/dist/de-53SSE6O2-GWJEBBVJ.js +1 -0
  18. package/dist/de-53SSE6O2-SX2QT2XZ.cjs +1 -0
  19. package/dist/es-LP3HJ4KB-7RFRVGPQ.cjs +1 -0
  20. package/dist/es-LP3HJ4KB-JN7LQABB.js +1 -0
  21. package/dist/evm.cjs +1 -0
  22. package/dist/evm.d.cts +34 -0
  23. package/dist/evm.d.ts +34 -0
  24. package/dist/evm.js +1 -0
  25. package/dist/i18n.cjs +1 -0
  26. package/dist/i18n.d.cts +10 -0
  27. package/dist/i18n.d.ts +10 -0
  28. package/dist/i18n.js +1 -0
  29. package/dist/index.cjs +2 -0
  30. package/dist/index.d.cts +2979 -0
  31. package/dist/index.d.ts +2979 -0
  32. package/dist/index.js +2 -0
  33. package/dist/it-JJ5Z5EUF-2BNC5I2D.cjs +1 -0
  34. package/dist/it-JJ5Z5EUF-HOA77BWJ.js +1 -0
  35. package/dist/locales-DzMinYsr.d-DzMinYsr.d.cts +1221 -0
  36. package/dist/locales-DzMinYsr.d-DzMinYsr.d.ts +1221 -0
  37. package/dist/solana.cjs +1 -0
  38. package/dist/solana.d.cts +42 -0
  39. package/dist/solana.d.ts +42 -0
  40. package/dist/solana.js +1 -0
  41. package/dist/styles.css +1324 -0
  42. package/dist/types-Bp6JUt56.d-ByIsb1F7.d.cts +350 -0
  43. package/dist/types-Bp6JUt56.d-C5vQkYhR.d.ts +350 -0
  44. package/dist/uk-EI4N5BMM-5PL2AYKV.js +1 -0
  45. package/dist/uk-EI4N5BMM-UN76BFNO.cjs +1 -0
  46. package/dist/zhCN-BZBMKUUA-E7M3WG4Q.js +1 -0
  47. package/dist/zhCN-BZBMKUUA-VSNNE3YC.cjs +1 -0
  48. package/package.json +136 -3
  49. package/socket.json +17 -0
@@ -0,0 +1 @@
1
+ 'use strict';var chunkTN5VGRRA_cjs=require('./chunk-TN5VGRRA.cjs');Object.defineProperty(exports,"createCheckoutStore",{enumerable:true,get:function(){return chunkTN5VGRRA_cjs.c}});Object.defineProperty(exports,"createRefundStore",{enumerable:true,get:function(){return chunkTN5VGRRA_cjs.b}});Object.defineProperty(exports,"refundAction",{enumerable:true,get:function(){return chunkTN5VGRRA_cjs.a}});
@@ -0,0 +1,2 @@
1
+ export { A as AutoChargeOffer, i as CheckoutApi, n as CheckoutConsent, C as CheckoutError, o as CheckoutHandOverStorage, p as CheckoutInvoice, q as CheckoutLine, l as CheckoutMerchant, f as CheckoutMethod, r as CheckoutPayerProof, k as CheckoutPhase, g as CheckoutQuote, s as CheckoutRejectedPayment, t as CheckoutReview, d as CheckoutState, u as CheckoutStatusEvent, c as CheckoutStore, v as CheckoutStoreOptions, w as CheckoutSubscription, x as CheckoutTheme, e as CheckoutView, E as EventSourceConstructor, y as EventSourceLike, z as GaslessOffer, G as GrantPermissionParams, D as PayerProofConfirmation, F as PayerProofKind, h as PayerProofMessage, H as PayerProofNeed, I as PayerProofSigner, J as PayerProofStatus, P as PaymentInstructions, m as PermissionRequest, R as RefundPhase, a as RefundState, j as RefundStore, K as RefundStoreOptions, L as RefusedRefundCall, S as SentRefundTransaction, T as TransferAuthorizationTypedData, M as createCheckoutStore, N as createRefundStore, O as refundAction } from './checkout-C05-kSiE.cjs';
2
+ import 'zustand/vanilla';
@@ -0,0 +1,2 @@
1
+ export { A as AutoChargeOffer, i as CheckoutApi, n as CheckoutConsent, C as CheckoutError, o as CheckoutHandOverStorage, p as CheckoutInvoice, q as CheckoutLine, l as CheckoutMerchant, f as CheckoutMethod, r as CheckoutPayerProof, k as CheckoutPhase, g as CheckoutQuote, s as CheckoutRejectedPayment, t as CheckoutReview, d as CheckoutState, u as CheckoutStatusEvent, c as CheckoutStore, v as CheckoutStoreOptions, w as CheckoutSubscription, x as CheckoutTheme, e as CheckoutView, E as EventSourceConstructor, y as EventSourceLike, z as GaslessOffer, G as GrantPermissionParams, D as PayerProofConfirmation, F as PayerProofKind, h as PayerProofMessage, H as PayerProofNeed, I as PayerProofSigner, J as PayerProofStatus, P as PaymentInstructions, m as PermissionRequest, R as RefundPhase, a as RefundState, j as RefundStore, K as RefundStoreOptions, L as RefusedRefundCall, S as SentRefundTransaction, T as TransferAuthorizationTypedData, M as createCheckoutStore, N as createRefundStore, O as refundAction } from './checkout-C05-kSiE.js';
2
+ import 'zustand/vanilla';
@@ -0,0 +1 @@
1
+ export{c as createCheckoutStore,b as createRefundStore,a as refundAction}from'./chunk-LB2KDA4M.js';
@@ -0,0 +1,2 @@
1
+ import {createStore}from'zustand/vanilla';import {ofetch}from'ofetch';var E=class extends Error{status;originalError;code;issues;details;constructor(e,a,u,c={}){super(e),this.name="QuasarSDKError",this.status=a,this.originalError=u,this.code=c.code,this.issues=c.issues,this.details=c.details;}};function Ne(e){let a=e,u=a.statusCode??a.response?.status,c=yt(a.data??a.response?._data),p=c?.error,w=a.message??"Unknown Error",I={};if(typeof p=="string")w=typeof c?.statusCode=="number"&&typeof c.message=="string"?c.message:p,typeof c?.code=="string"&&(I={code:c.code});else if(typeof p=="object"&&p!==null){let{code:O,message:f,issues:b,...A}=p;typeof f=="string"&&(w=f),I={code:typeof O=="string"?O:void 0,issues:Array.isArray(b)?b:void 0,details:Object.keys(A).length>0?A:void 0};}else typeof c?.message=="string"&&(w=c.message);return (u===401||u===403)&&!I.code&&console.error("\u{1F6A8} [Quasar SDK] Auth Error. Check your Secret Key and scopes."),new E(`[Quasar SDK] Request Failed (${u}): ${w}`,u,a,I)}function yt(e){let a=e;if(a instanceof ArrayBuffer||a instanceof Uint8Array)try{a=JSON.parse(new TextDecoder().decode(a));}catch{return}return typeof a=="object"&&a!==null?a:void 0}var Me="https://api.tuwa.io";function at(){try{return globalThis.sessionStorage??null}catch{return null}}function un(e){return async(...a)=>{try{return await e(...a)}catch(u){if(!(u instanceof E)||!u.code)throw u;return {refused:{code:u.code,message:u.message,status:u.status}}}}}var Oe="quasar-sdk:refundHandOvers",vt=5*6e4,wt=3e4,_t=new Set([401,403,408,425,429]),xt=({status:e})=>e!==void 0&&e>=400&&e<500&&!_t.has(e);function Y(e){if(e&&typeof e=="object"&&"refused"in e)throw Object.assign(new Error(e.refused.message),e.refused);return e}function Z(e){if(e instanceof E){let u=e.details?.invoice;return {code:e.code??"request_failed",message:e.message,status:e.status,issues:e.issues,...typeof u=="string"?{otherInvoice:u}:{}}}let a=e;return {code:typeof a?.code=="string"?a.code:"request_failed",message:e instanceof Error?e.message:String(e),...typeof a?.status=="number"&&{status:a.status},...typeof a?.text=="string"&&{text:a.text}}}function ln(e){let a=e.pollMs??5e3,u=null,c=e.handOverStorage!==void 0?e.handOverStorage:at(),p=()=>{u&&clearTimeout(u),u=null;},w=()=>{try{let f=JSON.parse(c?.getItem(Oe)??"[]");return Array.isArray(f)?f:[]}catch{return []}},I=f=>{try{f.length>0?c?.setItem(Oe,JSON.stringify(f)):c?.removeItem(Oe);}catch{}},O=f=>I(w().filter(b=>b.refundId!==f));return createStore()((f,b)=>{let A=h=>{p();let y=Date.now(),T=()=>{let k=Date.now()-y<vt?a:Math.max(a,wt),S=setTimeout(()=>{e.get(h).then(Y).then(D=>{u!==S||b().refund?.id!==h||(D.status==="confirmed"||D.status==="failed"?(p(),f({refund:D,phase:D.status})):(f({refund:D}),T()));},D=>{if(u!==S)return;let{status:W}=Z(D);W===401||W===403||W===404?p():T();});},k);u=S;};T();};return {phase:"idle",refund:null,instructions:null,error:null,sentTransaction:null,preview:async(h,y={})=>{if(f({error:null}),!e.preview)return null;try{return Y(await e.preview(h,y))}catch(T){return f({error:Z(T)}),null}},start:async(h,y={})=>{p(),f({phase:"requesting",error:null,refund:null,instructions:null,sentTransaction:null});let T=w().find(k=>k.invoiceId===h);if(T)try{let k=Y(await e.get(T.refundId));if(k.status==="requested"){let{txHash:S,from:D,instructions:W}=T;return f({phase:"awaitingTransfer",refund:k,instructions:W,sentTransaction:{txHash:S,from:D}}),!0}if(O(T.refundId),k.status==="submitted")return f({phase:"confirming",refund:k}),A(k.id),!0}catch(k){let S=Z(k);if(S.status!==404)return f({phase:"idle",error:S}),false;O(T.refundId);}try{let{refund:k,instructions:S}=Y(await e.request(h,y));return f({phase:"awaitingTransfer",refund:k,instructions:S}),!0}catch(k){return f({phase:"idle",error:Z(k)}),false}},resume:(h,y)=>{p();let T=w().find(S=>S.refundId===h.id),k=T?{txHash:T.txHash,from:T.from}:b().refund?.id===h.id?b().sentTransaction:null;f({phase:"awaitingTransfer",refund:h,instructions:y,error:null,sentTransaction:k});},recheck:async()=>{let h=b().refund;if(!h)return false;try{let y=Y(await e.get(h.id));if(b().refund?.id!==h.id)return !1;if(y.status==="requested"){let T=b().instructions;return T&&y.cryptoAmount&&y.cryptoAmount!==T.amount&&!b().sentTransaction?(f({refund:y,instructions:{...T,amount:y.cryptoAmount},error:{code:"refund_repriced",message:"Quasar priced this refund again: check the new amount"}}),!1):(f({refund:y,error:null}),!b().sentTransaction)}return O(h.id),y.status==="submitted"?(f({phase:"confirming",refund:y,error:null,sentTransaction:null}),A(h.id)):f({phase:y.status,refund:y,error:null,sentTransaction:null}),!1}catch(y){return f({error:Z(y)}),false}},submit:async h=>{let y=b().refund;if(!y)return f({error:{code:"refund_required",message:"Ask for the refund first"}}),false;let T={txHash:h.txHash,from:h.from},k=b().instructions;k&&I([...w().filter(S=>S.refundId!==y.id),{refundId:y.id,invoiceId:y.invoiceId,instructions:k,...T}]),f({phase:"submitting",error:null,sentTransaction:T});try{let S=Y(await e.submit(y.id,h));return O(y.id),f({phase:"confirming",refund:S,sentTransaction:null}),A(y.id),!0}catch(S){let D=Z(S);return xt(D)?(O(y.id),f({phase:"awaitingTransfer",error:D,sentTransaction:null})):f({phase:"awaitingTransfer",error:D}),false}},stopFollowing:p,keepFollowing:()=>{let{phase:h,refund:y}=b();h==="confirming"&&y&&!u&&A(y.id);},reset:()=>{p(),f({phase:"idle",refund:null,instructions:null,error:null,sentTransaction:null});}}})}var Tt=45e3,Pt=9e4,Je=(e,a="")=>`/v1/payments/checkout/${encodeURIComponent(e)}${a?`/${a}`:""}`;function kt(e,a=Me){let u=async(c,p,w=Tt)=>{try{return await ofetch(Je(e,c),{baseURL:a,method:p?"POST":"GET",timeout:w,...p?{body:p}:{}})}catch(I){throw Ne(I)}};return {view:()=>u(""),quote:c=>u("quote",c),payerProofMessage:c=>u("payer-proof/message",c),payerProof:c=>u("payer-proof",c),buyer:c=>u("buyer",c),locale:c=>u("locale",{locale:c}),submit:async({methodId:c,...p})=>{if(!c)return u("submit",p);try{return await u("submit",{...p,methodId:c})}catch(w){if(!(w instanceof E)||w.status!==400)throw w;return u("submit",p)}},relay:c=>u("relay",{signature:c},Pt),permission:c=>u("permission",c),permissionRevoked:()=>u("permission/revoked",{}),url:c=>`${a.replace(/\/+$/,"")}${Je(e,c)}`}}var st=new Set(["paid","held","expired","cancelled","refunded","partially_refunded"]),ee=new Set(["paid","held","refunded","partially_refunded"]),De=new Set(["open","processing","underpaid","expired","cancelled"]),C=new Set(["expired","cancelled"]),R=new Set(["open","processing","underpaid"]),we=new Set(["loading","selectMethod","awaitingPayment","underpaid","unconfirmed"]),It=25*6e4,bt=35*6e4,St=35*6e4,qt=60*6e4,Le=2e4,Kt=3*6e4,Mt=45e3,Ot=1e4,Fe=(e,a)=>e===a||Date.parse(e??"")===Date.parse(a??""),Dt=new Set(["quoting","submitting"]),Ge=new Set(["checkout_not_found","origin_not_allowed","payments_disabled"]),Ut=new Set(["nonce_spent_unexplained","no_matching_transfer","reference_missing","too_early","tx_already_used","payer_mismatch","payer_unconfirmed","already_paid","quote_changed","too_many_parts","too_many_transfers","below_minimum","native_from_contract_unverifiable","invoice_not_payable","settlement_failed"]),Ae="settlement_failed",de="nonce_spent_unexplained",Te="tx_already_used",ot="too_many_payments",At=[6e4,5*6e4,15*6e4],it=new Set(["timeout","not_found","replaced","nonce_spent"]),Et="quasar-sdk:checkoutHandOvers:",Wt=new Set(["payer_mismatch","payer_unconfirmed"]),jt="quote_changed",ut=new Set(["eoa","authorization"]);function xe(e){let[a,u,c,...p]=e.split(":");return !a||!u||!c||p.length>0?null:{namespace:a,chainId:`${a}:${u}`,address:a==="eip155"?c.toLowerCase():c}}var Re="The wallet did not sign the confirmation. It is free and moves no funds: sign it to pay from this wallet, or choose another wallet or method.",Ct=new Set(["payer_chain_mismatch","too_many_payers","native_from_contract","payer_blocked","payer_not_expected"]);function Ht(e){let a=e?.code;return a!==void 0&&(a.startsWith("payer_proof_")||Ct.has(a))}function $t(e,a){let u=xe(a);return u?e.some(c=>{let p=xe(c.payer);return !p||p.namespace!==u.namespace||p.address!==u.address?false:c.kind&&ut.has(c.kind)||c.chainId===u.chainId}):false}var Be=[2e3,4e3,8e3,16e3,3e4],Qt=60*6e4,Nt=new Set(["too_many_pending"]),ze=e=>e instanceof E&&e.code==="too_many_payments",Xe=e=>e instanceof E&&e.code===Te;function Ve(e){if(!(e instanceof E)||e.code&&Nt.has(e.code))return true;let{status:a}=e;return a===void 0||a===408||a===429||a>=500}var L=e=>e.startsWith("0x")||e.startsWith("0X")?e.toLowerCase():e;function Ye(e){return e.rejectedPayments?e.rejectedPayments.map(({txKey:a,original:u,userOpHash:c,reason:p,final:w,movedMoney:I,rechecked:O,held:f,otherInvoice:b})=>({keys:[a,u,c].filter(A=>!!A).map(L),reason:p,final:w,movedMoney:I===true||Ut.has(p),rechecked:O===true,held:f===true,...typeof b=="string"?{otherInvoice:b}:{}})):e.rejectedTxKeys?.map(a=>({keys:[L(a)],final:true}))??null}var Jt=(e,a)=>e!==null&&!(Date.parse(e.expiresAt??"")<=a),Lt=new Set([...st,"underpaid"]),Ft=new Set(["quoting","awaitingPayment","submitting","confirming","unconfirmed"]);function J(e){switch(e){case "processing":return "confirming";case "paid":case "partially_refunded":return "paid";case "refunded":case "underpaid":case "held":case "expired":return e;case "cancelled":return "cancelled";default:return "selectMethod"}}function Ze(e,a){if(e.invoice.status!=="open")return J(e.invoice.status);if(e.buyer.required)return "buyer";let u=e.quote?.expiresAt?Date.parse(e.quote.expiresAt):Number.NaN;return e.quote&&!(u<=a)?"awaitingPayment":"selectMethod"}var et={payer_blocked:"blocked",payer_not_expected:"blocked",buyer_required:"buyer",invoice_expired:"expired",invoice_processing:"confirming",payment_on_its_way:"confirming",payer_mismatch:"underpaid",rest_method_mismatch:"underpaid",too_many_payments:"selectMethod"},Gt=new Set(["invoice_expired","invoice_processing","payment_on_its_way"]);function B(e){let a=e.reason?{reason:e.reason}:{};if(e.reason===Ae)return zt(e.rechecked);if(e.reason===de)return e.otherInvoice?ce():lt(e.keys?.[0]);if(e.reason===jt)return {code:"payment_mismatch",message:"This payment was sent or charged under an earlier price of this invoice, so it does not pay it. The merchant holds it to return it to the wallet that sent it, and the invoice can still be paid.",...a,held:true};if(e.reason==="too_many_parts")return {code:"payment_mismatch",message:"This invoice has taken as many parts as it can, so this transfer does not pay it. The merchant holds it to return it to the wallet that sent it; send the whole rest at once.",...a,held:true};if(e.reason&&Wt.has(e.reason))return {code:"payment_mismatch",message:e.held?"This transaction came from a wallet that did not confirm this invoice, so it does not pay it. The merchant returns it to the wallet that sent it, and the invoice can still be paid from the wallet that confirmed it.":"This transaction came from a wallet that did not confirm this invoice, so it does not pay it. If money left your wallet, contact the merchant.",...a,...e.held?{held:true}:{}};let u=e.otherInvoice?{otherInvoice:e.otherInvoice}:{};return e.held?{code:"payment_mismatch",message:"This transaction is tied to another invoice, which holds it for a refund to the wallet that sent it. It does not count for this invoice. If it was your payment for this invoice, contact the merchant.",...a,held:true,...u}:e.movedMoney?{...u,code:"payment_mismatch",message:"This transaction does not pay the invoice. If money left your wallet, contact the merchant.",...a}:e.final?{code:"payment_failed",message:"The payment did not go through. Try again.",...a}:ce(e.reason,e.rechecked)}function ce(e,a=false){return {code:"payment_unconfirmed",message:a?"The payment is not confirmed yet; Quasar checks it again for up to 24 hours. Check your wallet before paying again.":e?"The payment could not be confirmed. If it left your wallet, contact the merchant with the transaction hash.":"The payment could not be confirmed. Check your wallet before paying again.",...e?{reason:e}:{},...a?{rechecked:true}:{}}}var Rt=()=>({code:"payment_unconfirmed",message:"The payment has not reached Quasar yet; this page keeps handing it over. Check your wallet before paying again.",reason:"submit_retrying"}),Bt=()=>({code:"payment_unconfirmed",message:"This invoice takes no more payments, and Quasar does not follow this one. If it left your wallet, contact the merchant with the transaction hash.",reason:ot}),_e=()=>({code:"payment_unconfirmed",message:"Quasar did not receive the payment. If it left your wallet, contact the merchant with the transaction hash.",reason:"submit_failed"}),zt=(e=false)=>({code:"payment_unconfirmed",message:e?"The payment reached the network, but Quasar has not recorded it yet; it tries again daily for up to 30 days. Do not pay again; contact the merchant with the transaction hash.":"The payment reached the network, but Quasar could not record it. Do not pay again; contact the merchant with the transaction hash.",reason:Ae,...e?{rechecked:true}:{}}),lt=e=>({code:"payment_unconfirmed",...e?{txKey:e}:{},message:"The wallet used the number of this transaction for another one, which Quasar could not find, so money may have left the wallet. Do not pay again yet: name that transaction, or contact the merchant.",reason:de}),Xt=()=>({code:"payment_unconfirmed",message:"This transaction was handed over for another invoice first. Quasar credits it to the invoice that the wallet which sent it confirmed, and this page shows the result. Do not pay again meanwhile.",status:409,reason:Te}),Vt=e=>e?.code==="payment_unconfirmed"&&(e.reason===Te||e.reason===Ae||e.reason===de||e.reason===ot),tt=e=>e.find(a=>a.reason===de&&!a.otherInvoice)??null,Yt=e=>e?.code==="payment_unconfirmed"&&e.reason===Te,te=e=>(e.unresolvedPayments??0)>0,Zt=(e,a)=>!e.final&&!e.movedMoney&&!e.rechecked&&it.has(e.reason??"")&&a.unresolvedPayments===0,nt=e=>(e.unresolvedPayments??e.pendingPayments??0)>0,Ue=e=>({status:e.invoice.status,ledgerSeq:0,txHash:null,amountPaid:e.invoice.amountPaid,quoteExpiresAt:e.quote?.expiresAt??null,pendingPayments:e.invoice.pendingPayments,rejectedTxKeys:e.invoice.rejectedTxKeys,rejectedPayments:e.invoice.rejectedPayments,paymentCountsUntil:e.invoice.paymentCountsUntil,unresolvedPayments:e.invoice.unresolvedPayments,onTimeTxKeys:e.invoice.onTimeTxKeys});function le(e){if(e instanceof E){let{reason:a,originWallet:u}=e.details??{};return {code:e.code??"request_failed",message:e.message,status:e.status,issues:e.issues,...typeof a=="string"?{reason:a}:{},...typeof u=="string"?{originWallet:u}:{}}}return {code:"request_failed",message:e instanceof Error?e.message:String(e)}}function cn(e){let a=e.api??kt(e.token,e.baseUrl??Me),u=e.pollMs??5e3,c=e.EventSource===void 0?globalThis.EventSource??null:e.EventSource,p=null,w=null,I=null,O=null,f=false,b=null,A=u,h=false,y=[],T=false,k=[],S=null,D=new Set,W=0,Pe=0,H=null,F=null,ke=false,Q=new Map,he=false,K=null,ne=()=>({error:K?B(K):lt()}),Ie=0,me=null,pe=[],Ee=new Set,re=e.handOverStorage!==void 0?e.handOverStorage:e.api?null:at(),be=`${Et}${e.token}`,Se=()=>{try{let _=JSON.parse(re?.getItem(be)??"[]");return Array.isArray(_)?_.filter(s=>typeof s=="object"&&s!==null&&typeof s.txKey=="string"&&typeof s.at=="number"):[]}catch{return []}},We=_=>{try{_.length>0?re?.setItem(be,JSON.stringify(_)):re?.removeItem(be);}catch{}},ct=_=>{if(!re)return;let s=Se(),o=s.find(({txKey:M})=>M===_.txKey);We([...s.filter(({txKey:M})=>M!==_.txKey),{txKey:_.txKey,..._.from?{from:_.from}:{},..._.connectorType?{connectorType:_.connectorType}:{},..._.methodId?{methodId:_.methodId}:{},at:o?.at??Date.now()}]);},N=_=>{if(!re)return;let s=Se();s.some(({txKey:o})=>o===_)&&We(s.filter(({txKey:o})=>o!==_));},je=({quote:_,checkout:s})=>[...s?.payerProofs??[],...pe,..._?.payerProof?.proven===true&&_.payer!==null?[{payer:_.payer,chainId:xe(_.payer)?.chainId??"",kind:_.payerProof.kind??void 0}]:[]],dt=_=>{let s=_.checkout?.methods.find(({id:j})=>j===_.methodId)?.chainId,o=s?.split(":")[0];if(!s)return [];let M=new Map;for(let j of je(_)){let $=xe(j.payer);!$||$.namespace!==o||(j.kind&&ut.has(j.kind)||j.chainId===s)&&(M.has($.address)||M.set($.address,j.payer));}return [...M.values()]},Ce=_=>{let{payer:s}=_,o=_.checkout?.methods.find(({id:j})=>j===_.methodId),M=s!==null&&Ee.has(s)?"before_quote":o?.payerProof??"none";return M==="none"||!o?"not_needed":s&&$t(je(_),s)?"confirmed":s!==null&&s===me&&M==="before_quote"?"confirming":M==="before_quote"?"required":"unless_relayed"};return createStore()((_,s)=>{let o=t=>{let r={...s(),...t};_({...t,receiptUrl:r.phase==="paid"||r.phase==="refunded"?a.url("receipt"):null,paymasterUrl:r.quote?.gasless?.paymaster?a.url("paymaster"):null,logoUrl:r.checkout?.merchant.logo?a.url("logo"):null,payerProof:Ce(r),confirmedWallets:dt(r)});},M=(t,r)=>{let n=le(t),i=s().invoiceStatus;if(i&&(ee.has(i)||C.has(i))){o({error:n,...Dt.has(s().phase)?{phase:J(i)}:{}});return}o({error:n,phase:et[n.code]??r});},j=()=>{F&&clearTimeout(F),F=null,H=null,ke=false,s().followingUntil!==null&&o({followingUntil:null});},$=()=>{p?.close(),p=null,w&&clearInterval(w),w=null,I&&clearTimeout(I),I=null,O&&clearTimeout(O),O=null,j();},ae=()=>(y=[],T=false,{paymentOnTheWay:false}),qe=()=>{T=true,W=Date.now(),D=new Set(k);},ht=(t,r)=>r?r.find(({keys:i})=>i.some(l=>y.includes(l)))||(t.pendingPayments!==0?null:r.find(({keys:i})=>i.some(l=>!D.has(l)))??null):null,fe=t=>t==="underpaid"?{phase:"underpaid"}:t&&!R.has(t)?{phase:J(t)}:Jt(s().quote,Date.now())?{phase:"awaitingPayment"}:{phase:"selectMethod",quote:null},mt=()=>a.view().then(t=>{if(h)return;let r=t.invoice.status==="underpaid"&&t.quote;o({checkout:t,...r?{quote:r,methodId:r.methodId}:{}});}).catch(()=>{}),He=()=>{let{invoiceStatus:t,paymentOnTheWay:r}=s();return !st.has(t??"")||C.has(t??"")&&(r||T)},pt=t=>{let r=s().paymentOnTheWay||T;$(),o(r?{...ae(),error:_e(),phase:"unconfirmed"}:{error:le(t),phase:"error"});},se=()=>{if(w||h)return;A=H!==null||f&&!s().paymentOnTheWay&&!T?Math.max(u,Le):u;let t=false,r=setInterval(()=>{if(t)return;t=true;let n=Pe;a.view().then(i=>{if(h||w!==r)return;let l=i.invoice.status==="underpaid"&&i.quote;o({checkout:i,...l?{quote:l,methodId:l.methodId}:{}}),ye(Ue(i),i,n===Pe),$e(i.quote);}).catch(i=>{w===r&&i instanceof E&&i.code==="checkout_not_found"&&pt(i);}).finally(()=>{t=false;});},A);w=r;},$e=t=>{let{phase:r,quote:n}=s();r!=="awaitingPayment"||!n||!t||Fe(t.expiresAt,n.expiresAt)||(t.payer===n.payer&&t.methodId===n.methodId?o({quote:t}):o({quote:null,phase:"selectMethod"}));},Ke=(t,r=false)=>{let n=Date.parse(s().checkout?.invoice.dueAt??""),i=t==="cancelled"?Math.max(Date.now(),W)+St:Number.isFinite(n)?Math.max(Math.min(n,Date.now()),W)+bt:Date.now()+qt;(H===null||r&&i>H)&&(H=i,F&&clearTimeout(F),F=setTimeout(()=>{F=null,!h&&(o({...ae(),invoicePaymentOnTheWay:false,...s().invoicePaymentUnresolved&&!s().error?{error:ce(void 0,he)}:{}}),$());},Math.max(0,H-Date.now())),o({followingUntil:new Date(H).toISOString()})),w&&A<Le&&(clearInterval(w),w=null,se());},ye=(t,r,n=true)=>{if(h)return;let{invoiceStatus:i,phase:l,checkout:x,paymentOnTheWay:d}=s(),P=Yt(s().error),g=Ye(t),v=new Set(k);g&&(k=g.flatMap(({keys:U})=>U));let m={invoiceStatus:t.status,txHash:t.txHash??s().txHash};if(n&&t.pendingPayments!==void 0&&(m.invoicePaymentOnTheWay=t.pendingPayments>0),n&&t.paymentCountsUntil!==void 0&&(m.paymentCountsUntil=t.paymentCountsUntil),n&&(t.unresolvedPayments!==void 0||t.pendingPayments!==void 0)&&(m.invoicePaymentUnresolved=nt(t)),n&&t.unresolvedPayments!==void 0&&(he=te(t)),n&&t.onTimeTxKeys&&y.length>0&&s().paymentSentInTime!==true){let U=new Set(t.onTimeTxKeys.map(L));m.paymentSentInTime=y.some(V=>U.has(V));}!r&&x&&t.amountPaid!==void 0&&t.amountPaid!==x.invoice.amountPaid&&(m.checkout={...x,invoice:{...x.invoice,amountPaid:t.amountPaid}});let G=d||T,oe=t.pendingPayments??0,ie=t.amountPaid!==void 0&&t.amountPaid!==null&&t.amountPaid!==S;ie&&(S=t.amountPaid);let X=i==="underpaid"&&t.status==="underpaid"&&!ie,q=null;G&&n&&De.has(t.status)&&(q=ht(t,g),!q&&(t.status==="open"||X)&&t.pendingPayments===0&&t.rejectedPayments&&(T||Date.now()-W>=It)&&!(P&&(t.unresolvedPayments??0)>0)&&(q={final:false,rechecked:te(t)})),!q&&t.status==="open"&&i==="processing"&&oe===0&&(q=t.rejectedPayments?g?.find(({keys:U})=>U.some(V=>!v.has(V)))??{final:false,rechecked:te(t)}:{final:true});let ve=K;if(g&&(K=tt(g)),q&&K&&(q=K),q?.final)Object.assign(m,ae(),{error:B(q)},t.status==="open"||t.status==="processing"||t.status==="underpaid"?fe(t.status):{phase:J(t.status)});else if(q)Object.assign(m,ae(),{error:B(q),phase:R.has(t.status)?"unconfirmed":J(t.status)});else if(t.status==="open")l==="loading"&&(m.phase="selectMethod");else if(!X||!Ft.has(l)||l==="awaitingPayment"&&r?.invoice.restPayable===false){m.phase=J(t.status);let U=s().error;t.status==="underpaid"&&i!=="underpaid"&&U&&U.code!=="payment_mismatch"&&!K&&(m.error=null);}if(G&&!q){let U=n&&t.pendingPayments===0,V=ee.has(t.status)||t.status==="underpaid"&&!X||C.has(t.status)&&r!==void 0&&U;V&&Object.assign(m,ae()),V&&C.has(t.status)&&(m.invoicePaymentUnresolved??s().invoicePaymentUnresolved)&&(m.error=ce(void 0,he));}if(n&&oe>0&&De.has(t.status)){!T&&!(m.paymentOnTheWay??d)&&qe();let U=P&&m.error===void 0;R.has(t.status)&&we.has(m.phase??l)&&!U&&(m.phase="confirming");}P&&m.error===void 0&&(t.status==="processing"||t.status==="underpaid"&&!X||ee.has(t.status))&&(m.error=null),K&&R.has(t.status)&&we.has(m.phase??l)?Object.assign(m,ne(),{phase:"unconfirmed"}):ve&&!K&&s().error?.reason===de&&!m.error&&Object.assign(m,{error:null},R.has(t.status)?fe(t.status):{}),o(m),He()?C.has(t.status)&&(ke=(t.pendingPayments??0)>0,Ke(t.status),p&&t.pendingPayments===0&&(p.close(),p=null,se())):$(),!r&&t.status!==i&&Lt.has(t.status)&&mt();let ue=s().quote;!r&&s().phase==="awaitingPayment"&&ue&&t.quoteExpiresAt&&t.quoteExpiresAt!==b&&!Fe(t.quoteExpiresAt,ue.expiresAt)&&(b=t.quoteExpiresAt,a.view().then(U=>{h||$e(U.quote);}).catch(()=>{}));},ge=()=>{if(h||p||w||!He())return;if(!c)return se();let t=new c(a.url("events"));p=t;let r=()=>{I&&clearTimeout(I),I=setTimeout(()=>{I=null,!(p!==t||h)&&(t.close(),p=null,a.view().then(n=>{h||ye(Ue(n),n);}).catch(()=>{}),ge());},Mt);};r(),t.addEventListener("ping",r),t.addEventListener("status",n=>{r();try{ye(JSON.parse(n.data));}catch{}}),t.onerror=()=>{if(p!==t)return;let{invoiceStatus:n,paymentOnTheWay:i}=s(),l=i||T,x=t.readyState===2;(x||C.has(n??"")&&l&&!ke)&&(t.close(),p=null,I&&clearTimeout(I),I=null,f=x,se(),x&&!O&&(O=setTimeout(()=>{O=null,!(h||!w||H!==null)&&(clearInterval(w),w=null,f=false,ge());},Kt)));};},z=(t,r,n,i=false)=>{if(ee.has(n??"")||ee.has(s().invoiceStatus??"")){let{error:d,txKey:P}=s();d?.reason?.startsWith("submit_")&&P&&t.includes(P)&&o({error:null}),a.view().then(g=>{h||ye(Ue(g),g);}).catch(()=>{});return}Pe+=1,W=Date.now(),T=false,y=[...y,...t.filter(d=>!!d).map(L)],D=new Set(k.map(L));let{invoiceStatus:l}=s(),x=l&&C.has(l)?l:null;o({txKey:r,paymentOnTheWay:true,paymentSentInTime:null,error:i?Xt():null,phase:x?J(x):i?"unconfirmed":"confirming"}),x&&Ke(x,true),w&&f&&H===null&&A>u&&(clearInterval(w),w=null,se()),ge();},Qe=async(t,r)=>{let n={txKey:t.txKey,...t.from?{from:t.from}:{},...t.connectorType?{connectorType:t.connectorType}:{},...t.methodId?{methodId:t.methodId}:{}};ct(n);let i=()=>ee.has(s().invoiceStatus??""),l=()=>C.has(s().invoiceStatus??""),x=g=>{i()||o({txKey:g,error:Bt(),...l()?{}:{phase:"unconfirmed"}}),d(0);},d=g=>{let v=At[g];if(v===void 0||h)return;let m=setTimeout(()=>{Q.delete(n.txKey),!h&&a.submit(n).then(G=>{h||(N(n.txKey),z([n.txKey],n.txKey,G?.status));},()=>d(g+1));},v);Q.set(n.txKey,m);},P=r==="unconfirmed";!i()&&!l()&&!P&&o({phase:"submitting",error:null}),clearTimeout(Q.get(n.txKey)),Q.delete(n.txKey);try{let g=await a.submit(n);return N(n.txKey),z([n.txKey],n.txKey,g?.status),!0}catch(g){if(Xe(g))return N(n.txKey),z([n.txKey],n.txKey,void 0,true),false;if(ze(g))return x(n.txKey),false;if(g instanceof E&&Ge.has(g.code??""))return i()||o({txKey:n.txKey,error:_e(),...l()?{}:{phase:"unconfirmed"}}),false;if(!Ve(g))return N(n.txKey),P&&!K||(K&&!i()?o({...ne(),...l()?{}:{phase:"unconfirmed"}}):i()||M(g,r==="submitting"?"awaitingPayment":r)),false;i()||o({txKey:n.txKey,...K?ne():{error:Rt()},...l()?{}:{phase:"unconfirmed"}});let v=Date.now()+Qt,m=()=>(s().error?.reason==="submit_retrying"||!!K)&&s().txKey===n.txKey,G=oe=>{let ie=Be[Math.min(oe,Be.length-1)];if(h)return;if(Date.now()+ie>v){m()&&o(K?ne():{error:_e()});return}let X=setTimeout(()=>{Q.delete(n.txKey),!h&&a.submit(n).then(q=>{h||(N(n.txKey),z([n.txKey],n.txKey,q?.status));}).catch(q=>{if(h)return;if(Ve(q))return G(oe+1);if(q instanceof E&&Ge.has(q.code??"")){m()&&o({error:_e()});return}if(ze(q)){m()?x(n.txKey):N(n.txKey);return}if(N(n.txKey),Xe(q)){m()&&z([n.txKey],n.txKey,void 0,true);return}if(!m())return;if(K){o(ne());return}let ve=le(q),ue=et[ve.code],U=s().phase;o({error:ve,...ue?{phase:ue}:U==="unconfirmed"?fe(s().invoiceStatus):{}});});},ie);Q.set(n.txKey,X);};return G(0),false}},ft=t=>{let r=Se();if(r.length===0)return;let n=new Set([...t.invoice.rejectedTxKeys??[],...t.invoice.onTimeTxKeys??[]].map(L)),i=r.filter(({txKey:l})=>!n.has(L(l))).sort((l,x)=>l.at-x.at);for(let{txKey:l}of r)n.has(L(l))&&N(l);(async()=>{for(let l of i){if(h)return;await Qe(l,s().phase);}})();};return {phase:"loading",checkout:null,invoiceStatus:null,methodId:null,payer:null,consentGiven:false,payerProof:"not_needed",confirmedWallets:[],quote:null,locale:null,txKey:null,paymentOnTheWay:false,invoicePaymentOnTheWay:false,paymentCountsUntil:null,invoicePaymentUnresolved:false,paymentSentInTime:null,followingUntil:null,txHash:null,error:null,receiptUrl:null,clockSkewMs:0,paymasterUrl:null,logoUrl:null,load:async()=>{o({phase:"loading",error:null});try{let t=await a.view(),{invoice:r}=t,n=Ye(r);n&&(k=n.flatMap(({keys:v})=>v)),S=r.amountPaid;let i=Ze(t,Date.now()),l=null,x=(r.pendingPayments??0)>0&&De.has(r.status);x&&!s().paymentOnTheWay&&qe(),x&&R.has(r.status)&&we.has(i)&&(i="confirming");let d=n?.[0],P=nt(r),g=r.status==="open"||r.status==="underpaid"||C.has(r.status);if(n&&(K=tt(n)),!x&&!s().paymentOnTheWay&&g){let v=!1;K?(l=B(K),v=!0):d&&!d.final&&!Zt(d,r)?(l=B(d),it.has(d.reason??"")&&!d.rechecked&&te(r)&&(l={...l,stillRead:!0}),v=!0):d?.reason==="unresolved_after_24h"?(l=B(d),v=!0):P?(l=ce(void 0,te(r)),v=!0):d?.movedMoney&&(l=B(d)),v&&we.has(i)&&(i="unconfirmed");}r.unresolvedPayments!==void 0&&(he=te(r)),o({checkout:t,invoiceStatus:r.status,locale:r.locale,quote:t.quote,methodId:t.quote?.methodId??s().methodId,payer:t.quote?.payer??s().payer,invoicePaymentOnTheWay:(r.pendingPayments??0)>0,invoicePaymentUnresolved:P,paymentCountsUntil:r.paymentCountsUntil??null,phase:i,error:l}),T&&C.has(r.status)&&Ke(r.status),ge(),ft(t);}catch(t){o({phase:"error",error:le(t)});}},selectMethod:(t,r)=>{let{quote:n,phase:i,error:l}=s(),x=n&&n.methodId!==t;o({methodId:t,error:r?.keepError?l:null,...x?{quote:null,phase:i==="awaitingPayment"?"selectMethod":i}:{}});},setPayer:t=>{let{quote:r,phase:n,invoiceStatus:i,checkout:l,error:x}=s(),d=r&&r.payer!==t,P=t!==s().payer&&Ht(x)?{error:null}:{},g=(i??l?.invoice.status)==="underpaid",v=n==="blocked"&&t!==null&&t!==s().payer?{phase:g?"underpaid":"selectMethod",quote:g?r:null}:{};if(d&&g){o({payer:t,...P,phase:n==="awaitingPayment"?"underpaid":n,...v});return}o({payer:t,...P,...d?{quote:null,phase:n==="awaitingPayment"?"selectMethod":n}:{},...v});},clearError:()=>o({error:null}),setConsentGiven:t=>o({consentGiven:t,error:null}),releaseQuote:()=>{let{phase:t,invoiceStatus:r,checkout:n}=s();t==="awaitingPayment"&&((r??n?.invoice.status)==="underpaid"?o({error:null,phase:"underpaid"}):o({quote:null,error:null,phase:"selectMethod"}));},requestQuote:async()=>{let{methodId:t,payer:r,phase:n,checkout:i,consentGiven:l,invoiceStatus:x}=s();if(!t)return o({error:{code:"method_required",message:"Choose a payment method first"}}),null;let d=(x??i?.invoice.status)==="underpaid";if(i?.consent?.required&&!l&&!d)return o({error:{code:"consent_required",message:"Tick the consent of the checkout first"}}),null;if(s().payerProof==="required"||s().payerProof==="confirming")return o({error:{code:"payer_proof_required",message:"Confirm the paying wallet with a free signature first"}}),null;o({phase:"quoting",error:null});let P=()=>{let v=s().invoiceStatus;return v!==null&&!R.has(v)},g=()=>{let v=s().invoiceStatus;return v&&o({phase:J(v),error:null}),null};try{let v=await a.quote({methodId:t,...r?{payer:r}:{},...i?.consent&&l&&!d?{consentGiven:!0}:{}});if(P())return g();if(s().payer!==r||s().methodId!==t)return o({phase:d?"underpaid":"selectMethod"}),null;let m=Date.now()-Date.parse(v.lockedAt??"");return o({quote:v,phase:s().invoicePaymentOnTheWay?"confirming":"awaitingPayment",clockSkewMs:Number.isFinite(m)&&Math.abs(m)>Ot?m:0}),v}catch(v){if(v instanceof E&&v.code==="payer_proof_required"&&r&&Ee.add(r),P())return g();let m=le(v);return m.code==="payment_on_its_way"&&qe(),d&&!Gt.has(m.code)?o({error:m,phase:"underpaid"}):M(v,n==="quoting"?"selectMethod":n),null}},confirmPayer:async t=>{let{payer:r}=s();if(!r)return o({error:{code:"payer_required",message:"Connect the paying wallet first"}}),false;if(s().payerProof==="confirmed"||s().payerProof==="not_needed")return o({error:null}),true;let{payerProofMessage:n,payerProof:i}=a;if(!n||!i)return o({error:{code:"request_failed",message:"The checkout calls cannot confirm a wallet (payerProofMessage)"}}),false;let l=++Ie;me=r,o({error:null});let x=(d,P)=>{d&&pe.push(d);let g=l===Ie;g&&(me=null),!h&&(P===void 0||!g||s().payer!==r||Ce(s())==="confirmed"?o({}):P instanceof Error&&P.name==="PayerProofDeclined"?o({error:{code:"payer_proof_declined",message:Re}}):M(P,s().phase));};try{let d=await n({payer:r});if(d.proven)return x({payer:d.payer,chainId:d.chainId}),!0;let P;try{P=await t(d.message,d);}catch(v){let m=new Error(v instanceof Error?v.message:String(v));throw m.name="PayerProofDeclined",m}let g=await i({payer:r,message:d.message,signature:P});return x(g),!0}catch(d){return x(null,d),false}},abandonConfirmation:()=>{Ie++,me=null,o({});},setBuyer:async(t,r={})=>{o({error:null});try{let n=await a.buyer({buyer:t,...r.company?{company:!0}:{}});return o({checkout:n,phase:Ze(n,Date.now())}),!0}catch(n){return M(n,s().phase),false}},setLocale:async t=>{let r=s().locale;o({locale:t});try{return await a.locale(t),!0}catch{return o({locale:r}),false}},submit:t=>Qe(t,s().phase),relay:async t=>{let r=s().phase;o({phase:"submitting",error:null});try{let n=await a.relay(t);return z([n.userOpHash,n.txHash],n.txHash??null),!0}catch(n){return M(n,r==="submitting"?"awaitingPayment":r),false}},grantPermission:async(t,r)=>{o({error:null});let n=async()=>{let{autoCharge:i}=await a.permission(t),l=s().checkout;return l&&o({checkout:{...l,autoCharge:i}}),true};try{try{return await n()}catch(i){let{payerProofMessage:l,payerProof:x}=a;if(!(i instanceof E&&i.code==="payer_proof_required")||!r||!l||!x)throw i;let d=await l({payer:t.payer});if(d.proven)pe.push({payer:d.payer,chainId:d.chainId});else {let P;try{P=await r(d.message,d);}catch{return o({error:{code:"payer_proof_declined",message:Re}}),!1}pe.push(await x({payer:t.payer,message:d.message,signature:P}));}return await n()}}catch(i){return M(i,s().phase),false}},permissionRevoked:async()=>{try{let{autoCharge:t}=await a.permissionRevoked(),r=s().checkout;return r&&o({checkout:{...r,autoCharge:t}}),t?.status!=="active"}catch{return null}},payAgain:()=>{s().phase!=="unconfirmed"||Vt(s().error)||K||o({error:null,...fe(s().invoiceStatus)});},destroy:()=>{h=true;for(let t of Q.values())clearTimeout(t);Q.clear(),$();}}})}
2
+ export{un as a,ln as b,cn as c};
@@ -0,0 +1 @@
1
+ 'use strict';var orbitCore=require('@tuwaio/sdk/orbit');var c=class extends Error{constructor(t,o,r){super(o,r),this.kind=t,this.name="PaymentWalletError";}kind},l=4001,h=/user (rejected|denied|declined|cancell?ed)|(rejected|denied|declined|cancell?ed) by (the )?user/i,u="ChainNotConfiguredError",p="ConnectorNotConnectedError",m=new Set(["ConnectorChainMismatchError","ChainMismatchError"]),f=new Set(["SwitchChainError","SwitchChainNotSupportedError"]),E=new Set([4200,-32601,-32004]),w=4100,g=-32002,n=(t,o)=>typeof t=="object"&&t!==null?t[o]:void 0;function C(t){let o=orbitCore.errorChain(t),r=e=>o.find(e),i=r(e=>e instanceof c);if(i)return i.kind;if(r(e=>{let d=n(e,"message");return n(e,"code")===l||n(e,"name")==="UserRejectedRequestError"||typeof d=="string"&&h.test(d)}))return "declined";if(r(e=>n(e,"code")===g))return "alreadyPending";if(r(e=>n(e,"name")===u||E.has(n(e,"code"))))return "unsupported";if(r(e=>m.has(n(e,"name"))))return "wrongNetwork";if(r(e=>f.has(n(e,"name"))))return "switchFailed";if(r(e=>n(e,"code")===w))return "notAuthorized";let a=r(e=>n(e,"name")===p);return a?(process.env.NODE_ENV==="development"&&console.error("[nova-payments] paymentsEVMAdapter is built on a wagmi config the connected wallet is not in: give NovaPaymentsProvider `adapters` on the wagmi config of the Satellite EVM adapter that connects the wallet.",a),"unsupported"):(process.env.NODE_ENV==="development"&&console.error("[nova-payments] The wallet failed:",t),"failed")}exports.a=c;exports.b=C;
@@ -0,0 +1 @@
1
+ 'use strict';var utils=require('@tuwaio/sdk/nova-core/utils');var o={common:{close:"Close",retry:"Try again",loading:"Loading the checkout\u2026",dialogTitle:"Pay {merchant}"},error:{title:"The checkout can't be opened",notFound:"This payment link is wrong or no longer works. Ask the seller for a new one.",generic:"Something went wrong. Try again in a moment."},steps:{details:"Details",method:"Method",pay:"Pay",confirm:"Confirm",autoPay:"Auto-pay",progress:"Step {current} of {total}: {name}",label:"Payment steps"},language:{button:"Language: {language}",title:"Language",note:"Your invoice and receipt use this language too.",noteAfterPaid:"Your receipt stays in the language it was issued in."},method:{title:"Choose how to pay",subtitle:"The price locks for {minutes} minutes when you continue.",token:"Token",networks:"{count} networks",network:"{symbol} network",yourWallet:"Your wallet",popular:"Popular",noGasFee:"No gas fee",buyerPaysGas:"You pay the network fee",discount:"\u2212{percent}%",markup:"+{percent}%",payWith:"Pay with",wallet:"Wallet",walletHint:"MetaMask, Rabby, Phantom\u2026",qr:"QR code",qrHint:"Phone wallet",continue:"Continue",quoting:"Getting the price\u2026",agreeBoth:"By continuing you agree to the seller's {terms} and {refundPolicy}.",agreeOne:"By continuing you agree to the seller's {link}.",consentRequired:"Required to continue.",noMethods:"This invoice cannot be paid with any method right now. Contact the seller.",methodUnavailable:"This page cannot take this method. Choose another one.",tooManyPayers:"Too many wallets tried this invoice. Ask {merchant} for a new payment link.",tooManyPayments:"This invoice can no longer take a payment here. Contact {merchant}.",nativeFromSmartWallet:"A smart wallet cannot pay in this coin: choose a token.",payerNotExpected:"The seller asked for this invoice to be paid from another wallet. Connect that wallet.",rateLimited:"Too many tries. Wait a minute and try again.",paymentFailed:"The payment failed. Only the network fee was spent; the invoice is still open.",restSameMethod:"The rest is paid in the same token on the same network as the first part.",priceUnavailable:"The price of this method can't be read right now. Choose another method or try again in a minute."},buyer:{title:"Your details",subtitle:"The seller needs them for the invoice and the receipt.",email:"Email",name:"Name",companyName:"Company",addressLine1:"Address",addressLine2:"Address, line 2",postalCode:"Postal code",city:"City",country:"Country",chooseCountry:"Choose a country",taxId:"VAT or tax ID",registrationNumber:"Company number",optional:"optional",companyInvoice:"I need an invoice for my company",required:"Required",invalidEmail:"Enter an email like name@example.com",invalidCountry:"Choose a country from the list",refused:"Your details could not be saved. Check them and try again.",continue:"Continue"},pay:{title:"Pay",walletLine:"{address} \xB7 {network}",change:"Change",changeWallet:"Change wallet",youSend:"You send",youSendRest:"You send the rest",copyAmount:"Copy amount",copied:"Copied",onNetwork:"on {network}",fiatValue:"= {amount} {currency}",priceLocked:"Price locked for {time}",refreshPrice:"Refresh price",priceEnding:"This price ends in {time}. Keep it?",keepPrice:"Keep this price \xB7 +{minutes} min",priceExpired:"The price lock ran out.",newPrice:"Get a new price",rate:"Rate",rateValue:"1 {symbol} = {price} {currency}",networkFee:"Network fee",merchantPaysGas:"{merchant} pays \xB7 you only sign",gasEstimate:"\u2248 {amount} \xB7 from your wallet",gasFromWallet:"Paid from your wallet",to:"To",invoiceTotal:"Invoice total",invoiceRest:"Rest of the invoice",backFromRest:"Back",restRateUntil:"This rate holds until {time}. A payment after that waits for {merchant} to accept it.",restRateEnded:"This rate was locked earlier, so this payment waits for {merchant} to accept it.",restTimeLeft:"Time left to send: {time}",transferFee:"Token transfer fee {percent}%",merchantReceives:"{merchant} receives",transferFeeNote:"The token's contract keeps a fee on every transfer, so you send a bit more for the invoice to be paid in full.",signToPay:"Sign to pay {amount}",payAmount:"Pay {amount}",switchTo:"Switch to {network}",connect:"Connect a wallet",back:"Back to methods",payWithGas:"Pay with gas instead",payGasless:"Let {merchant} pay the gas",disclaimer:"Payments go straight to {merchant} and can't be reversed; refunds come from the seller.",disclaimerScreening:"{merchant} checks paying wallets against sanctions lists and, where available, other risk signals.",wrongNetwork:"Wrong network",wrongNetworkText:"Your wallet is on {current}. This payment goes on {network}.",switchHint:"Your wallet asks you to approve the switch.",solanaNetwork:"Pay on {network}",solanaNetworkText:"Solana wallets choose their network themselves: switch yours to {network} before you pay.",solanaHintPhantom:"In Phantom: Settings \u203A Developer Settings \u203A Testnet Mode, then {network}.",solanaHintSolflare:"In Solflare: Settings \u203A General \u203A Network \u203A {cluster}.",solanaHintOther:"Choose the network in the settings of {wallet}.",notEnough:"Not enough",walletHas:"Your wallet has {amount} on {network}",shortBy:"{short} short of {need}.",payFromBalance:"Pay from what this wallet has",youHave:"You have {amount}",topUp:"Or add {symbol} to this wallet and come back:",getToken:"Get {symbol}",connectUnavailable:"This page has no wallet connection. Pay with a QR code instead.",switchFailed:"{wallet} did not switch to {network}. Switch it in the wallet, then try again.",notAuthorized:"{wallet} has not allowed this account here. Check in {wallet} that this account is connected to this site, then try again.",walletFailed:"{wallet} did not do it, and nothing was sent. Try again.",sentUnconfirmed:"{wallet} sent the payment and it is not confirmed yet. Do not pay again: this page updates once it lands.",declined:"You declined the request in {wallet}.",tryAgain:"Try again",failed:"The payment failed on {network}. Only the network fee was spent; the invoice is still open.",mismatch:"This transaction does not pay the invoice. If money left your wallet, contact {merchant}.",mismatchTakenElsewhere:"This transaction pays another invoice. If it was your payment for this one, contact {merchant} with the transaction hash.",mismatchHeldElsewhere:"This transaction is tied to another invoice, which holds it for a refund to the wallet that sent it. It does not count for this invoice. If it was your payment for this one, contact {merchant} with the transaction hash.",mismatchOtherWallet:"This transfer came from a wallet that did not confirm this invoice, so it does not pay it. If money left your wallet, contact {merchant}.",mismatchOtherWalletHeld:"This transfer came from a wallet that did not confirm this invoice, so it does not pay it. {merchant} returns it to the wallet that sent it, and you can still pay this invoice from the wallet that confirmed it.",mismatchChargeHeld:"This payment was sent or charged under an earlier price of this invoice, so it does not pay it. {merchant} returns it to your wallet, and you can still pay the invoice.",mismatchTooManyParts:"This invoice has taken as many parts as it can, so this transfer does not pay it. {merchant} returns it to your wallet; send the whole rest at once.",payAgain:"Pay again",unsupported:"{wallet} can't make this payment.",wrongCluster:"{wallet} is on another network, so nothing was paid. Switch it to {network} and pay again.",screeningUnavailable:"The wallet check is unavailable right now.",retryLater:"Try again in a minute",noAnswer:"The payment server did not answer. Check your connection and try again.",txTitle:"Payment to {merchant}",txDescription:"{amount} \xB7 {invoice}"},walletPrompt:{signIn:"Sign in {wallet}",confirmIn:"Confirm in {wallet}",switchIn:"Approve the switch in {wallet}",signText:"Sign the transfer of {amount} to {merchant} on {network}. No gas: {merchant} pays the network fee.",confirmText:"Confirm the transfer of {amount} to {merchant} on {network}.",check:"Check in {wallet} before signing",amount:"Amount",to:"To",network:"Network",priceLocked:"Price locked",notOpened:"The wallet window didn't open?",tryAgain:"Try again",stillWaiting:"No window? Open {wallet}: the request waits there.",cancel:"Cancel",submitting:"Handing the payment to Quasar\u2026"},payerProof:{title:"Confirm your wallet",text:"Confirm this wallet \u2014 it is free and moves no money.",summary:"What you sign",invoice:"Invoice",merchant:"Seller",amount:"Amount",wallet:"Wallet",site:"Site",alreadyConfirmed:"Already confirmed for this invoice: {wallet}. Switch to it in your wallet to skip this signature.",why:"Payments from this wallet count for this invoice once it signs. Your wallet shows a message to sign, not a payment: no fee, nothing leaves the wallet.",passkey:"{wallet} may ask for your passkey or fingerprint to sign.",confirm:"Confirm in {wallet}",waiting:"Waiting for {wallet}\u2026",note:"One signature per wallet for this invoice: a new price, token or network needs no new one.",noteSmart:"One signature per wallet for this invoice: a new price or token needs no new one; another network asks again.",promptText:"Sign the message that confirms this wallet pays invoice {invoice} of {merchant}. It is free and moves no money.",promptPasskey:"Confirm with your passkey in {wallet}. It signs the message that confirms this wallet pays invoice {invoice} of {merchant}; it is free and moves no money.",declined:"You declined the signature in {wallet}. It is free and moves no money: sign it to pay from this wallet, or choose another wallet or method.",unsupported:"{wallet} can't sign this confirmation. Choose another wallet or method.",failed:"{wallet} did not sign the confirmation. Try again.",invalid:"The signature could not be verified. Try again, or pay from another wallet.",unavailable:"The network can't check this wallet's signature right now. Try again in a minute.",wrongNetwork:"Switch {wallet} to {network}, then confirm again.",tooManyWallets:"Too many wallets have confirmed this invoice. Pay from one of them, or ask {merchant} for a new invoice.",switchDeclined:"You declined the switch to {network} in {wallet}. Approve it to confirm this wallet, or choose another method.",willSwitch:"Your wallet is on {current}: it first asks to switch to {network}.",confirmToPay:"Confirm this wallet to pay",payNote:"Paying from this wallet needs a free signature first: it confirms that the wallet pays this invoice and moves no money.",signInRequest:"{wallet} may show it as a sign-in request for {site}."},qr:{solanaTitle:"Scan with a Solana wallet",solanaHint:"Open Phantom, Solflare or Backpack",restHint:"Scan with the wallet that paid first, {wallet}.",scanStep:"Scan the code (Solana Pay)",approveStep:"Approve the amount below",solanaCode:"QR code of a Solana Pay request for {amount}",waiting:"Waiting for the payment\u2026",exchangeWarning:"Send from your own wallet, not from an exchange: an exchange drops the payment reference, and the payment would wait for a manual check.",openInWallet:"Open in wallet app",handoffTitle:"Pay on your phone",handoffHint:"Scan with the phone camera: this checkout opens there, and you pay with your mobile wallet.",handoffCode:"QR code that opens this checkout on your phone",handoffNote:"This page follows the payment and shows the receipt when it arrives.",copyLink:"Copy link",back:"Back to methods"},confirm:{title:"Confirming your payment",hint:"Usually under two minutes on {network}.",sent:"Sent",confirming:"Confirming",confirmed:"Confirmed",paid:"Paid",failed:"Failed",network:"Network",amount:"Amount",transaction:"Transaction",lastTransfer:"Last transfer",from:"From",canClose:"You can close this window: the payment keeps going, and the seller sends the receipt.",afterDeadline:"Your payment was sent before the deadline and is being confirmed.",pastDeadline:"Your payment is being confirmed. If it arrives after the invoice closes, {merchant} accepts it or returns it.",invoicePayment:"A payment for this invoice is on its way. Wait until it is confirmed before paying again.",viewOnExplorer:"View on the explorer",copyHash:"Copy the transaction"},paid:{title:"Payment received",summary:"on {network} \xB7 {date}",receipt:"Receipt",receiptHint:"PDF of the payment, also kept by the seller",download:"Download",refunded:"Refunded {amount} {currency}",back:"Back to {merchant}",returning:"Returning to {merchant} in {seconds} s",stay:"Stay here",autoPayOffer:"Pay the next periods automatically",autoPayActive:"Automatic payments are on.",autoPayOff:"Turn off",autoPayTurnedOff:"Automatic payments are off. {merchant} can no longer charge this wallet."},autoPay:{title:"Pay next periods automatically?",subtitle:"Optional. Without it, you get an invoice each period and pay it yourself.",allow:"You allow {merchant} to take",limit:"up to {amount}",every:"every {period}",from:"From",to:"To",validUntil:"Valid until",validUntilValue:"{date}, or until you turn it off",collector:"Quasar sends each charge for {merchant}, only to {merchant}'s wallet and within this limit.",invoices:"Each charge comes with an invoice and a receipt by email.",cap:"{merchant} can't take more than this limit in a period.",turnOff:"You can turn it off at any time on the page of any of these invoices: your wallet sends one transaction. To cancel the subscription itself, contact {merchant}.",confirm:"Allow automatic payments",skip:"Not now, I'll pay each invoice",walletNote:"Your wallet shows this permission (ERC-7715) before you approve it.",approveIn:"Approve in {wallet}",unavailable:"{wallet} can't allow automatic payments.",smartAccountNote:"Automatic payments need a smart account. {wallet} asks you to switch to it first: one transaction on {network}, and you pay its network fee. Your address stays the same.",smartAccountPrompt:"{wallet} asks you to switch this account to a smart account. Your address and your funds stay the same.",smartAccountNeeded:"Automatic payments need a smart account. In {wallet}, open the details of this account, turn on its smart account for {network}, then try again.",notGranted:"{wallet} did not give the permission. Try again, or pay each invoice yourself.",invalid:"This permission can't be used. Try again, or pay each invoice yourself."},autoPayOff:{title:"Turn off automatic payments?",subtitle:"{merchant} can no longer charge this wallet. The subscription goes on: later periods come as invoices you pay yourself. To cancel it, contact {merchant}.",wallet:"Wallet",allowed:"Allowed now",fee:"Your wallet sends one transaction on {network} and you pay its network fee.",confirm:"Turn off in {wallet}",checkAgain:"Check again",keep:"Keep them on",connect:"Connect that wallet",otherWallet:"Only the wallet that allowed them, {wallet}, can turn them off.",useThisWallet:"Use this wallet instead",inWallet:"Confirm in {wallet}\u2026",waiting:"Waiting for the network\u2026",notYet:"The network does not show it yet. If your wallet sent the transaction, check again in a minute.",unsupported:"{wallet} can't send this transaction."},outcome:{underpaidTitle:"Part of the payment arrived",underpaidText:"{received} of {total} received.",underpaidRest:"Send the rest, {rest}, from the same wallet on {network}.",underpaidNote:"Until the rest arrives, {merchant} sees the invoice as underpaid. It stays payable until {date}.",underpaidClosed:"The rest of this invoice can no longer be paid here.",underpaidClosedRefund:"After {date}, {merchant} can refund what arrived.",underpaidRateEnded:"The rate of this invoice has ended, so a rest paid now waits for {merchant} to accept it.",underpaidBlocked:"This wallet did not pass the wallet check, so it cannot pay the rest. Contact {merchant}.",payRestFirstWallet:"Only the wallet that paid first, {wallet}, can pay the rest. Connect that wallet to pay it.",payRest:"Pay the rest",heldTitle:"Payment received, {merchant} is checking it",heldScreening:"{merchant} checks the payment before confirming the order.",heldLate:"The payment arrived after the invoice closed. {merchant} accepts it or returns it.",heldOverpaid:"You sent more than the invoice. {merchant} confirms the order or returns the difference to your wallet.",heldQuoteExpired:"The payment arrived after the price lock ran out. {merchant} accepts it or returns it.",heldNote:"The seller contacts you if anything is needed.",refundedTitle:"Refunded",refundedText:"{merchant} refunded this invoice: {amount} {currency}.",expiredTitle:"This invoice has expired",expiredText:"It was payable until {date}. Ask {merchant} for a new one; nothing was charged.",expiredPartText:"It was payable until {date}. Part of the payment arrived: {amount}.",expiredPartNoAmount:"It was payable until {date}. Part of the payment arrived.",closedPartText:"{merchant} closed this invoice. {amount} of the payment arrived.",expiredPartRefund:"{merchant} can refund it to the wallet that paid; contact {merchant}.",expiredNote:"A payment sent after the deadline is held for the seller to refund or accept.",expiredWhileConfirming:"The invoice closed while your payment was confirming. If it arrives, it is recorded and shown to {merchant}, who accepts it or returns it.",expiredAfterQr:"If you paid with the QR code, {merchant} accepts the payment when it arrives or returns it.",expiredUnconfirmed:"Your payment could not be confirmed yet. Check your wallet: if the payment left it, Quasar checks it again for 24 hours. If it arrives, it is recorded and shown to {merchant}, who accepts it or returns it.",unconfirmedTitle:"We could not confirm your payment",unconfirmedText:"Check your wallet before paying again: your payment may still be on its way.",unconfirmedNote:"Quasar checks your payment again for 24 hours. If it arrives, it is recorded and shown to {merchant}.",unconfirmedContact:"Quasar does not check this payment again. If it left your wallet, contact {merchant} with the transaction hash.",unconfirmedNotReceived:"Quasar did not receive this payment. If it left your wallet, contact {merchant} with the transaction hash.",unconfirmedClosed:"Quasar did not find this payment on the network within 24 hours and no longer checks it. If it left your wallet, contact {merchant} with the transaction hash.",unconfirmedRetrying:"This page keeps handing your payment over to Quasar. Keep it open until the payment shows here.",unconfirmedInvoiceFull:"This invoice takes no more payments, and Quasar does not follow this one. Do not pay again; if it left your wallet, contact {merchant} with the transaction hash.",unconfirmedTakenElsewhere:"This transaction was handed over for another invoice first. Quasar credits it to the invoice the wallet that sent it confirmed, and this page shows the result while it follows the payment. Do not pay again; if your payment does not show here, contact {merchant} with the transaction hash.",unconfirmedUnmined:"Quasar reads this payment for a week after it learned of it, and records it if it goes through. Check your wallet; if it left and you need help, contact {merchant} with this transaction hash.",unconfirmedNonceSpent:"Your wallet used the number of this transaction for another one, which Quasar could not find, so money may have left your wallet. Do not pay again yet. If you sped it up, name its hash below; otherwise contact {merchant} with this transaction hash.",unconfirmedSettlementFailed:"The network confirmed your payment, but Quasar has not recorded it. Do not pay again; contact {merchant} with the transaction hash.",unconfirmedSettlementRetrying:"The network confirmed your payment, but Quasar has not recorded it yet. Quasar tries again daily, for 30 days after it learned of the payment. Do not pay again; contact {merchant} with the transaction hash.",followingUntil:"This page follows the payment until {time}. Later, reload it to see the outcome.",nameHash:"Does your wallet show another transaction?",nameHashField:"Transaction hash",nameHashSend:"Check this transaction",nameHashInvalid:"This is not a transaction of this network.",nameHashRefused:"Quasar could not take this transaction. Contact the seller with its hash.",unconfirmedPayAgain:"The payment did not leave my wallet",cancelledTitle:"This invoice was cancelled",cancelledText:"{merchant} cancelled it; nothing was charged.",cancelledWhilePaying:"{merchant} cancelled it. If your payment arrives, it is recorded and shown to {merchant}, who accepts it or returns it.",cancelledAfterQr:"{merchant} cancelled it. If you paid with the QR code, {merchant} accepts the payment when it arrives or returns it.",replacedTitle:"{merchant} corrected this invoice",replacedText:"{number} replaces it. This invoice can no longer be paid.",replacedPaid:"Already paid? Your payment moved to the new invoice.",openReplacement:"Open {number}",blockedTitle:"This wallet can't pay this invoice",blockedText:"The wallet check did not pass. Nothing was sent. Connect another wallet or contact {merchant}.",useAnotherWallet:"Use another wallet",contact:"Contact {merchant}",contactSubject:"Invoice {number}"},leave:{title:"Leave the checkout?",text:"Nothing is sent yet. The invoice stays open until {date}: reopen it from the link in your email or on the seller's site.",textNoDate:"Nothing is sent yet. The invoice stays open: reopen it from the link in your email or on the seller's site.",price:"The locked price is released; you get a new one when you come back.",stay:"Stay and pay",leave:"Leave"},summary:{test:"Test",testHint:"Test invoice: it is paid on a test network.",sellerDetails:"Seller details",registration:"Company number",taxId:"VAT ID",terms:"Terms",refundPolicy:"Refund policy",privacy:"Privacy",sellerRole:"{seller} is the seller. Quasar is the payment software: it never holds your funds and is not a party to this purchase.",payWithin:"Payment deadline",refundAfter:"Refund possible after",until:"until {date}",minutesLeft:"{minutes} minutes left to pay",oneMinuteLeft:"1 minute left to pay",invoice:"Invoice",quantity:"{quantity} \xD7 {price}",subtotal:"Subtotal",taxRate:"VAT {rate}%",tax:"VAT",total:"Total",secured:"Secured by Quasar",help:"Help",compact:"{count} items \xB7 incl. VAT {tax}",compactOne:"{count} item \xB7 incl. VAT {tax}",compactNoTax:"{count} items",compactNoTaxOne:"{count} item",showOrder:"Details"},refund:{button:"Refund",title:"Refund {invoice}",amountTitle:"What to refund",modeFiat:"An amount",modeFiatText:"In {currency}, converted at the rate of now",modeExact:"Everything received",modeExactText:"The tokens the payment brought, as they are",amount:"Amount, {currency}",amountHint:"Up to {amount}",reason:"Reason (optional)",continue:"Continue",movedTitle:"The price has moved",movedText:"The price of {symbol} changed since the payment, so this amount takes a different number of tokens.",movedSend:"This refund sends",movedAtPayment:"At the rate of the payment",movedReceived:"The payment brought",movedExact:'To return the tokens as they came, go back and choose "{exact}".',movedContinue:"Continue with this amount",movedBack:"Back",requesting:"Asking Quasar for the refund\u2026",connectTitle:"Connect a wallet",connectText:"The refund goes out on {network}, the network of the payment. Any wallet that holds {symbol} there can send it.",connect:"Connect wallet",connectUnavailable:"This page can't connect a wallet. Send the refund from your wallet, then record it.",confirmTitle:"Confirm the refund",send:"Send",to:"To",thePayer:"the payer",theSender:"the sender of this transfer",from:"From",balance:"Holds {amount}",networkFee:"Network fee",feeEstimate:"\u2248 {amount} \xB7 from your wallet",sendRefund:"Send refund",switchTo:"Switch to {network}",walletTitle:"Confirm in {wallet}",walletText:"Confirm the transfer of {amount} on {network}.",switchTitle:"Approve the switch in {wallet}",submitting:"Handing the refund to Quasar\u2026",onItsWay:"On its way",status:"Status",pending:"Pending",transaction:"Transaction",network:"Network",waiting:"{network} \xB7 waiting for confirmation",canClose:"You can close this window: the invoice shows how the refund goes.",refunded:"Refunded",creditNote:"Credit note",done:"Done",failedShort:"Part of the refund reached the buyer. Send the refund again: only what is missing goes.",failedTitle:"The refund failed",failedWithdrawnTitle:"You took the refund back",failedCancelledTitle:"You cancelled the refund",failedByHand:"The transaction of this refund cannot settle it: check it by hand against the refunds of the invoice.",failedText:"The transaction failed on {network}; only the network fee was spent. Send the refund again.",failedFromBuyer:"It was sent from the wallet it goes back to, or from a wallet that paid the invoice, so nothing went back. Send it again from another wallet.",failedNotFound:"Its transaction was not found in time or was replaced: it may still have arrived.",failedDropped:"Its transaction was not found on the network: it may still have arrived.",failedTooEarly:"Its transaction is older than the payment, so it is not this refund.",failedNoTransfer:"Its transaction sent nothing Quasar could see to the wallet the refund goes to.",failedWithdrawn:"You took it back before it was sent.",failedCancelling:"You cancelled it in your wallet. It can be sent again once the cancellation is final, usually in a few minutes.",failedCancelled:"You cancelled it in your wallet, so nothing was sent. You can send it again.",failedResendConfirmed:"You confirmed that it did not leave your wallet: it can be sent again.",failedHeldNote:"The transfer stays held. Close this window: its row says what to do next.",notSent:"Not sent",notEnough:"Not enough {symbol} on {address}: it holds {balance}.",declined:"You declined the request in {wallet}.",unsupported:"{wallet} can't send this refund.",wrongNetwork:"{wallet} is on another network, so nothing was sent. Switch it to {network} and send again.",failed:"The wallet did not send the refund. Try again.",noRecipient:"The payer's wallet is not known, so this refund can't be sent from here.",unreachable:"Quasar does not answer, so nothing was sent. Try again in a moment.",refusedAmount:"The amount is more than what is left to refund.",refusedNotRefundable:"This payment cannot be refunded any more.",refusedWhole:"A held transfer is returned whole.",refusedBlocked:"A compliance check blocks the wallet to refund. Nothing can be sent to it.",refusedNotWaiting:"This refund no longer waits for a transaction. Nothing was sent.",refusedMayHaveLanded:"An earlier transaction of this refund may have gone through. Check it before asking again.",refusedPrice:"The price cannot be read right now. Try again in a moment.",refusedTestOnly:"This node accepts test networks only.",refusedOther:"Quasar refused this refund. Nothing was sent.",slowNote:"Quasar has not seen this transaction land yet. If your wallet shows another hash, because it was sped up or cancelled there, record that one.",nothingSent:"Nothing was sent: the refund waits for its transaction.",notHandedOver:"The refund was sent, but Quasar hasn't taken its transaction yet. Hand it over again: nothing is sent twice.",handOver:"Hand it over again",record:"Record refund",recordHint:"Sent it another way? Record the refund with its transaction: Quasar checks it on-chain.",close:"Close",txTitle:"Refund of {invoice}",txDescription:"{amount} to the payer",txDescriptionSender:"{amount} to the sender of the transfer"}},h=[{code:"en",name:"English",short:"EN"},{code:"uk",name:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430",short:"UK"},{code:"zh-CN",name:"\u7B80\u4F53\u4E2D\u6587",short:"ZH"},{code:"es",name:"Espa\xF1ol",short:"ES"},{code:"it",name:"Italiano",short:"IT"},{code:"de",name:"Deutsch",short:"DE"}],r={"zh-CN":()=>import('./zhCN-BZBMKUUA-VSNNE3YC.cjs').then(e=>e.zhCNLabels),es:()=>import('./es-LP3HJ4KB-7RFRVGPQ.cjs').then(e=>e.esLabels),de:()=>import('./de-53SSE6O2-SX2QT2XZ.cjs').then(e=>e.deLabels),uk:()=>import('./uk-EI4N5BMM-UN76BFNO.cjs').then(e=>e.ukLabels),it:()=>import('./it-JJ5Z5EUF-2BNC5I2D.cjs').then(e=>e.itLabels)},i=new Map([["en",o]]),s=e=>!!e&&Object.hasOwn(r,e);function l(e){return !s(e)||i.has(e)}function c(e){return e&&i.get(e)||o}async function d(e){if(l(e))return c(e);let t=e,n=o;try{n=await r[t]();}catch{}return i.set(t,n),n}function u(e,t){if(!t)return e;let n={...e};for(let a of Object.keys(t))t[a]&&Object.assign(n,{[a]:{...e[a],...t[a]}});return n}Object.defineProperty(exports,"g",{enumerable:true,get:function(){return utils.formatCountLabel}});Object.defineProperty(exports,"h",{enumerable:true,get:function(){return utils.formatLabel}});Object.defineProperty(exports,"i",{enumerable:true,get:function(){return utils.formatLabelParts}});exports.a=o;exports.b=h;exports.c=l;exports.d=c;exports.e=d;exports.f=u;
@@ -0,0 +1,2 @@
1
+ 'use strict';var vanilla=require('zustand/vanilla'),ofetch=require('ofetch');var E=class extends Error{status;originalError;code;issues;details;constructor(e,a,u,c={}){super(e),this.name="QuasarSDKError",this.status=a,this.originalError=u,this.code=c.code,this.issues=c.issues,this.details=c.details;}};function Ne(e){let a=e,u=a.statusCode??a.response?.status,c=yt(a.data??a.response?._data),p=c?.error,w=a.message??"Unknown Error",I={};if(typeof p=="string")w=typeof c?.statusCode=="number"&&typeof c.message=="string"?c.message:p,typeof c?.code=="string"&&(I={code:c.code});else if(typeof p=="object"&&p!==null){let{code:O,message:f,issues:b,...A}=p;typeof f=="string"&&(w=f),I={code:typeof O=="string"?O:void 0,issues:Array.isArray(b)?b:void 0,details:Object.keys(A).length>0?A:void 0};}else typeof c?.message=="string"&&(w=c.message);return (u===401||u===403)&&!I.code&&console.error("\u{1F6A8} [Quasar SDK] Auth Error. Check your Secret Key and scopes."),new E(`[Quasar SDK] Request Failed (${u}): ${w}`,u,a,I)}function yt(e){let a=e;if(a instanceof ArrayBuffer||a instanceof Uint8Array)try{a=JSON.parse(new TextDecoder().decode(a));}catch{return}return typeof a=="object"&&a!==null?a:void 0}var Me="https://api.tuwa.io";function at(){try{return globalThis.sessionStorage??null}catch{return null}}function un(e){return async(...a)=>{try{return await e(...a)}catch(u){if(!(u instanceof E)||!u.code)throw u;return {refused:{code:u.code,message:u.message,status:u.status}}}}}var Oe="quasar-sdk:refundHandOvers",vt=5*6e4,wt=3e4,_t=new Set([401,403,408,425,429]),xt=({status:e})=>e!==void 0&&e>=400&&e<500&&!_t.has(e);function Y(e){if(e&&typeof e=="object"&&"refused"in e)throw Object.assign(new Error(e.refused.message),e.refused);return e}function Z(e){if(e instanceof E){let u=e.details?.invoice;return {code:e.code??"request_failed",message:e.message,status:e.status,issues:e.issues,...typeof u=="string"?{otherInvoice:u}:{}}}let a=e;return {code:typeof a?.code=="string"?a.code:"request_failed",message:e instanceof Error?e.message:String(e),...typeof a?.status=="number"&&{status:a.status},...typeof a?.text=="string"&&{text:a.text}}}function ln(e){let a=e.pollMs??5e3,u=null,c=e.handOverStorage!==void 0?e.handOverStorage:at(),p=()=>{u&&clearTimeout(u),u=null;},w=()=>{try{let f=JSON.parse(c?.getItem(Oe)??"[]");return Array.isArray(f)?f:[]}catch{return []}},I=f=>{try{f.length>0?c?.setItem(Oe,JSON.stringify(f)):c?.removeItem(Oe);}catch{}},O=f=>I(w().filter(b=>b.refundId!==f));return vanilla.createStore()((f,b)=>{let A=h=>{p();let y=Date.now(),T=()=>{let k=Date.now()-y<vt?a:Math.max(a,wt),S=setTimeout(()=>{e.get(h).then(Y).then(D=>{u!==S||b().refund?.id!==h||(D.status==="confirmed"||D.status==="failed"?(p(),f({refund:D,phase:D.status})):(f({refund:D}),T()));},D=>{if(u!==S)return;let{status:W}=Z(D);W===401||W===403||W===404?p():T();});},k);u=S;};T();};return {phase:"idle",refund:null,instructions:null,error:null,sentTransaction:null,preview:async(h,y={})=>{if(f({error:null}),!e.preview)return null;try{return Y(await e.preview(h,y))}catch(T){return f({error:Z(T)}),null}},start:async(h,y={})=>{p(),f({phase:"requesting",error:null,refund:null,instructions:null,sentTransaction:null});let T=w().find(k=>k.invoiceId===h);if(T)try{let k=Y(await e.get(T.refundId));if(k.status==="requested"){let{txHash:S,from:D,instructions:W}=T;return f({phase:"awaitingTransfer",refund:k,instructions:W,sentTransaction:{txHash:S,from:D}}),!0}if(O(T.refundId),k.status==="submitted")return f({phase:"confirming",refund:k}),A(k.id),!0}catch(k){let S=Z(k);if(S.status!==404)return f({phase:"idle",error:S}),false;O(T.refundId);}try{let{refund:k,instructions:S}=Y(await e.request(h,y));return f({phase:"awaitingTransfer",refund:k,instructions:S}),!0}catch(k){return f({phase:"idle",error:Z(k)}),false}},resume:(h,y)=>{p();let T=w().find(S=>S.refundId===h.id),k=T?{txHash:T.txHash,from:T.from}:b().refund?.id===h.id?b().sentTransaction:null;f({phase:"awaitingTransfer",refund:h,instructions:y,error:null,sentTransaction:k});},recheck:async()=>{let h=b().refund;if(!h)return false;try{let y=Y(await e.get(h.id));if(b().refund?.id!==h.id)return !1;if(y.status==="requested"){let T=b().instructions;return T&&y.cryptoAmount&&y.cryptoAmount!==T.amount&&!b().sentTransaction?(f({refund:y,instructions:{...T,amount:y.cryptoAmount},error:{code:"refund_repriced",message:"Quasar priced this refund again: check the new amount"}}),!1):(f({refund:y,error:null}),!b().sentTransaction)}return O(h.id),y.status==="submitted"?(f({phase:"confirming",refund:y,error:null,sentTransaction:null}),A(h.id)):f({phase:y.status,refund:y,error:null,sentTransaction:null}),!1}catch(y){return f({error:Z(y)}),false}},submit:async h=>{let y=b().refund;if(!y)return f({error:{code:"refund_required",message:"Ask for the refund first"}}),false;let T={txHash:h.txHash,from:h.from},k=b().instructions;k&&I([...w().filter(S=>S.refundId!==y.id),{refundId:y.id,invoiceId:y.invoiceId,instructions:k,...T}]),f({phase:"submitting",error:null,sentTransaction:T});try{let S=Y(await e.submit(y.id,h));return O(y.id),f({phase:"confirming",refund:S,sentTransaction:null}),A(y.id),!0}catch(S){let D=Z(S);return xt(D)?(O(y.id),f({phase:"awaitingTransfer",error:D,sentTransaction:null})):f({phase:"awaitingTransfer",error:D}),false}},stopFollowing:p,keepFollowing:()=>{let{phase:h,refund:y}=b();h==="confirming"&&y&&!u&&A(y.id);},reset:()=>{p(),f({phase:"idle",refund:null,instructions:null,error:null,sentTransaction:null});}}})}var Tt=45e3,Pt=9e4,Je=(e,a="")=>`/v1/payments/checkout/${encodeURIComponent(e)}${a?`/${a}`:""}`;function kt(e,a=Me){let u=async(c,p,w=Tt)=>{try{return await ofetch.ofetch(Je(e,c),{baseURL:a,method:p?"POST":"GET",timeout:w,...p?{body:p}:{}})}catch(I){throw Ne(I)}};return {view:()=>u(""),quote:c=>u("quote",c),payerProofMessage:c=>u("payer-proof/message",c),payerProof:c=>u("payer-proof",c),buyer:c=>u("buyer",c),locale:c=>u("locale",{locale:c}),submit:async({methodId:c,...p})=>{if(!c)return u("submit",p);try{return await u("submit",{...p,methodId:c})}catch(w){if(!(w instanceof E)||w.status!==400)throw w;return u("submit",p)}},relay:c=>u("relay",{signature:c},Pt),permission:c=>u("permission",c),permissionRevoked:()=>u("permission/revoked",{}),url:c=>`${a.replace(/\/+$/,"")}${Je(e,c)}`}}var st=new Set(["paid","held","expired","cancelled","refunded","partially_refunded"]),ee=new Set(["paid","held","refunded","partially_refunded"]),De=new Set(["open","processing","underpaid","expired","cancelled"]),C=new Set(["expired","cancelled"]),R=new Set(["open","processing","underpaid"]),we=new Set(["loading","selectMethod","awaitingPayment","underpaid","unconfirmed"]),It=25*6e4,bt=35*6e4,St=35*6e4,qt=60*6e4,Le=2e4,Kt=3*6e4,Mt=45e3,Ot=1e4,Fe=(e,a)=>e===a||Date.parse(e??"")===Date.parse(a??""),Dt=new Set(["quoting","submitting"]),Ge=new Set(["checkout_not_found","origin_not_allowed","payments_disabled"]),Ut=new Set(["nonce_spent_unexplained","no_matching_transfer","reference_missing","too_early","tx_already_used","payer_mismatch","payer_unconfirmed","already_paid","quote_changed","too_many_parts","too_many_transfers","below_minimum","native_from_contract_unverifiable","invoice_not_payable","settlement_failed"]),Ae="settlement_failed",de="nonce_spent_unexplained",Te="tx_already_used",ot="too_many_payments",At=[6e4,5*6e4,15*6e4],it=new Set(["timeout","not_found","replaced","nonce_spent"]),Et="quasar-sdk:checkoutHandOvers:",Wt=new Set(["payer_mismatch","payer_unconfirmed"]),jt="quote_changed",ut=new Set(["eoa","authorization"]);function xe(e){let[a,u,c,...p]=e.split(":");return !a||!u||!c||p.length>0?null:{namespace:a,chainId:`${a}:${u}`,address:a==="eip155"?c.toLowerCase():c}}var Re="The wallet did not sign the confirmation. It is free and moves no funds: sign it to pay from this wallet, or choose another wallet or method.",Ct=new Set(["payer_chain_mismatch","too_many_payers","native_from_contract","payer_blocked","payer_not_expected"]);function Ht(e){let a=e?.code;return a!==void 0&&(a.startsWith("payer_proof_")||Ct.has(a))}function $t(e,a){let u=xe(a);return u?e.some(c=>{let p=xe(c.payer);return !p||p.namespace!==u.namespace||p.address!==u.address?false:c.kind&&ut.has(c.kind)||c.chainId===u.chainId}):false}var Be=[2e3,4e3,8e3,16e3,3e4],Qt=60*6e4,Nt=new Set(["too_many_pending"]),ze=e=>e instanceof E&&e.code==="too_many_payments",Xe=e=>e instanceof E&&e.code===Te;function Ve(e){if(!(e instanceof E)||e.code&&Nt.has(e.code))return true;let{status:a}=e;return a===void 0||a===408||a===429||a>=500}var L=e=>e.startsWith("0x")||e.startsWith("0X")?e.toLowerCase():e;function Ye(e){return e.rejectedPayments?e.rejectedPayments.map(({txKey:a,original:u,userOpHash:c,reason:p,final:w,movedMoney:I,rechecked:O,held:f,otherInvoice:b})=>({keys:[a,u,c].filter(A=>!!A).map(L),reason:p,final:w,movedMoney:I===true||Ut.has(p),rechecked:O===true,held:f===true,...typeof b=="string"?{otherInvoice:b}:{}})):e.rejectedTxKeys?.map(a=>({keys:[L(a)],final:true}))??null}var Jt=(e,a)=>e!==null&&!(Date.parse(e.expiresAt??"")<=a),Lt=new Set([...st,"underpaid"]),Ft=new Set(["quoting","awaitingPayment","submitting","confirming","unconfirmed"]);function J(e){switch(e){case "processing":return "confirming";case "paid":case "partially_refunded":return "paid";case "refunded":case "underpaid":case "held":case "expired":return e;case "cancelled":return "cancelled";default:return "selectMethod"}}function Ze(e,a){if(e.invoice.status!=="open")return J(e.invoice.status);if(e.buyer.required)return "buyer";let u=e.quote?.expiresAt?Date.parse(e.quote.expiresAt):Number.NaN;return e.quote&&!(u<=a)?"awaitingPayment":"selectMethod"}var et={payer_blocked:"blocked",payer_not_expected:"blocked",buyer_required:"buyer",invoice_expired:"expired",invoice_processing:"confirming",payment_on_its_way:"confirming",payer_mismatch:"underpaid",rest_method_mismatch:"underpaid",too_many_payments:"selectMethod"},Gt=new Set(["invoice_expired","invoice_processing","payment_on_its_way"]);function B(e){let a=e.reason?{reason:e.reason}:{};if(e.reason===Ae)return zt(e.rechecked);if(e.reason===de)return e.otherInvoice?ce():lt(e.keys?.[0]);if(e.reason===jt)return {code:"payment_mismatch",message:"This payment was sent or charged under an earlier price of this invoice, so it does not pay it. The merchant holds it to return it to the wallet that sent it, and the invoice can still be paid.",...a,held:true};if(e.reason==="too_many_parts")return {code:"payment_mismatch",message:"This invoice has taken as many parts as it can, so this transfer does not pay it. The merchant holds it to return it to the wallet that sent it; send the whole rest at once.",...a,held:true};if(e.reason&&Wt.has(e.reason))return {code:"payment_mismatch",message:e.held?"This transaction came from a wallet that did not confirm this invoice, so it does not pay it. The merchant returns it to the wallet that sent it, and the invoice can still be paid from the wallet that confirmed it.":"This transaction came from a wallet that did not confirm this invoice, so it does not pay it. If money left your wallet, contact the merchant.",...a,...e.held?{held:true}:{}};let u=e.otherInvoice?{otherInvoice:e.otherInvoice}:{};return e.held?{code:"payment_mismatch",message:"This transaction is tied to another invoice, which holds it for a refund to the wallet that sent it. It does not count for this invoice. If it was your payment for this invoice, contact the merchant.",...a,held:true,...u}:e.movedMoney?{...u,code:"payment_mismatch",message:"This transaction does not pay the invoice. If money left your wallet, contact the merchant.",...a}:e.final?{code:"payment_failed",message:"The payment did not go through. Try again.",...a}:ce(e.reason,e.rechecked)}function ce(e,a=false){return {code:"payment_unconfirmed",message:a?"The payment is not confirmed yet; Quasar checks it again for up to 24 hours. Check your wallet before paying again.":e?"The payment could not be confirmed. If it left your wallet, contact the merchant with the transaction hash.":"The payment could not be confirmed. Check your wallet before paying again.",...e?{reason:e}:{},...a?{rechecked:true}:{}}}var Rt=()=>({code:"payment_unconfirmed",message:"The payment has not reached Quasar yet; this page keeps handing it over. Check your wallet before paying again.",reason:"submit_retrying"}),Bt=()=>({code:"payment_unconfirmed",message:"This invoice takes no more payments, and Quasar does not follow this one. If it left your wallet, contact the merchant with the transaction hash.",reason:ot}),_e=()=>({code:"payment_unconfirmed",message:"Quasar did not receive the payment. If it left your wallet, contact the merchant with the transaction hash.",reason:"submit_failed"}),zt=(e=false)=>({code:"payment_unconfirmed",message:e?"The payment reached the network, but Quasar has not recorded it yet; it tries again daily for up to 30 days. Do not pay again; contact the merchant with the transaction hash.":"The payment reached the network, but Quasar could not record it. Do not pay again; contact the merchant with the transaction hash.",reason:Ae,...e?{rechecked:true}:{}}),lt=e=>({code:"payment_unconfirmed",...e?{txKey:e}:{},message:"The wallet used the number of this transaction for another one, which Quasar could not find, so money may have left the wallet. Do not pay again yet: name that transaction, or contact the merchant.",reason:de}),Xt=()=>({code:"payment_unconfirmed",message:"This transaction was handed over for another invoice first. Quasar credits it to the invoice that the wallet which sent it confirmed, and this page shows the result. Do not pay again meanwhile.",status:409,reason:Te}),Vt=e=>e?.code==="payment_unconfirmed"&&(e.reason===Te||e.reason===Ae||e.reason===de||e.reason===ot),tt=e=>e.find(a=>a.reason===de&&!a.otherInvoice)??null,Yt=e=>e?.code==="payment_unconfirmed"&&e.reason===Te,te=e=>(e.unresolvedPayments??0)>0,Zt=(e,a)=>!e.final&&!e.movedMoney&&!e.rechecked&&it.has(e.reason??"")&&a.unresolvedPayments===0,nt=e=>(e.unresolvedPayments??e.pendingPayments??0)>0,Ue=e=>({status:e.invoice.status,ledgerSeq:0,txHash:null,amountPaid:e.invoice.amountPaid,quoteExpiresAt:e.quote?.expiresAt??null,pendingPayments:e.invoice.pendingPayments,rejectedTxKeys:e.invoice.rejectedTxKeys,rejectedPayments:e.invoice.rejectedPayments,paymentCountsUntil:e.invoice.paymentCountsUntil,unresolvedPayments:e.invoice.unresolvedPayments,onTimeTxKeys:e.invoice.onTimeTxKeys});function le(e){if(e instanceof E){let{reason:a,originWallet:u}=e.details??{};return {code:e.code??"request_failed",message:e.message,status:e.status,issues:e.issues,...typeof a=="string"?{reason:a}:{},...typeof u=="string"?{originWallet:u}:{}}}return {code:"request_failed",message:e instanceof Error?e.message:String(e)}}function cn(e){let a=e.api??kt(e.token,e.baseUrl??Me),u=e.pollMs??5e3,c=e.EventSource===void 0?globalThis.EventSource??null:e.EventSource,p=null,w=null,I=null,O=null,f=false,b=null,A=u,h=false,y=[],T=false,k=[],S=null,D=new Set,W=0,Pe=0,H=null,F=null,ke=false,Q=new Map,he=false,K=null,ne=()=>({error:K?B(K):lt()}),Ie=0,me=null,pe=[],Ee=new Set,re=e.handOverStorage!==void 0?e.handOverStorage:e.api?null:at(),be=`${Et}${e.token}`,Se=()=>{try{let _=JSON.parse(re?.getItem(be)??"[]");return Array.isArray(_)?_.filter(s=>typeof s=="object"&&s!==null&&typeof s.txKey=="string"&&typeof s.at=="number"):[]}catch{return []}},We=_=>{try{_.length>0?re?.setItem(be,JSON.stringify(_)):re?.removeItem(be);}catch{}},ct=_=>{if(!re)return;let s=Se(),o=s.find(({txKey:M})=>M===_.txKey);We([...s.filter(({txKey:M})=>M!==_.txKey),{txKey:_.txKey,..._.from?{from:_.from}:{},..._.connectorType?{connectorType:_.connectorType}:{},..._.methodId?{methodId:_.methodId}:{},at:o?.at??Date.now()}]);},N=_=>{if(!re)return;let s=Se();s.some(({txKey:o})=>o===_)&&We(s.filter(({txKey:o})=>o!==_));},je=({quote:_,checkout:s})=>[...s?.payerProofs??[],...pe,..._?.payerProof?.proven===true&&_.payer!==null?[{payer:_.payer,chainId:xe(_.payer)?.chainId??"",kind:_.payerProof.kind??void 0}]:[]],dt=_=>{let s=_.checkout?.methods.find(({id:j})=>j===_.methodId)?.chainId,o=s?.split(":")[0];if(!s)return [];let M=new Map;for(let j of je(_)){let $=xe(j.payer);!$||$.namespace!==o||(j.kind&&ut.has(j.kind)||j.chainId===s)&&(M.has($.address)||M.set($.address,j.payer));}return [...M.values()]},Ce=_=>{let{payer:s}=_,o=_.checkout?.methods.find(({id:j})=>j===_.methodId),M=s!==null&&Ee.has(s)?"before_quote":o?.payerProof??"none";return M==="none"||!o?"not_needed":s&&$t(je(_),s)?"confirmed":s!==null&&s===me&&M==="before_quote"?"confirming":M==="before_quote"?"required":"unless_relayed"};return vanilla.createStore()((_,s)=>{let o=t=>{let r={...s(),...t};_({...t,receiptUrl:r.phase==="paid"||r.phase==="refunded"?a.url("receipt"):null,paymasterUrl:r.quote?.gasless?.paymaster?a.url("paymaster"):null,logoUrl:r.checkout?.merchant.logo?a.url("logo"):null,payerProof:Ce(r),confirmedWallets:dt(r)});},M=(t,r)=>{let n=le(t),i=s().invoiceStatus;if(i&&(ee.has(i)||C.has(i))){o({error:n,...Dt.has(s().phase)?{phase:J(i)}:{}});return}o({error:n,phase:et[n.code]??r});},j=()=>{F&&clearTimeout(F),F=null,H=null,ke=false,s().followingUntil!==null&&o({followingUntil:null});},$=()=>{p?.close(),p=null,w&&clearInterval(w),w=null,I&&clearTimeout(I),I=null,O&&clearTimeout(O),O=null,j();},ae=()=>(y=[],T=false,{paymentOnTheWay:false}),qe=()=>{T=true,W=Date.now(),D=new Set(k);},ht=(t,r)=>r?r.find(({keys:i})=>i.some(l=>y.includes(l)))||(t.pendingPayments!==0?null:r.find(({keys:i})=>i.some(l=>!D.has(l)))??null):null,fe=t=>t==="underpaid"?{phase:"underpaid"}:t&&!R.has(t)?{phase:J(t)}:Jt(s().quote,Date.now())?{phase:"awaitingPayment"}:{phase:"selectMethod",quote:null},mt=()=>a.view().then(t=>{if(h)return;let r=t.invoice.status==="underpaid"&&t.quote;o({checkout:t,...r?{quote:r,methodId:r.methodId}:{}});}).catch(()=>{}),He=()=>{let{invoiceStatus:t,paymentOnTheWay:r}=s();return !st.has(t??"")||C.has(t??"")&&(r||T)},pt=t=>{let r=s().paymentOnTheWay||T;$(),o(r?{...ae(),error:_e(),phase:"unconfirmed"}:{error:le(t),phase:"error"});},se=()=>{if(w||h)return;A=H!==null||f&&!s().paymentOnTheWay&&!T?Math.max(u,Le):u;let t=false,r=setInterval(()=>{if(t)return;t=true;let n=Pe;a.view().then(i=>{if(h||w!==r)return;let l=i.invoice.status==="underpaid"&&i.quote;o({checkout:i,...l?{quote:l,methodId:l.methodId}:{}}),ye(Ue(i),i,n===Pe),$e(i.quote);}).catch(i=>{w===r&&i instanceof E&&i.code==="checkout_not_found"&&pt(i);}).finally(()=>{t=false;});},A);w=r;},$e=t=>{let{phase:r,quote:n}=s();r!=="awaitingPayment"||!n||!t||Fe(t.expiresAt,n.expiresAt)||(t.payer===n.payer&&t.methodId===n.methodId?o({quote:t}):o({quote:null,phase:"selectMethod"}));},Ke=(t,r=false)=>{let n=Date.parse(s().checkout?.invoice.dueAt??""),i=t==="cancelled"?Math.max(Date.now(),W)+St:Number.isFinite(n)?Math.max(Math.min(n,Date.now()),W)+bt:Date.now()+qt;(H===null||r&&i>H)&&(H=i,F&&clearTimeout(F),F=setTimeout(()=>{F=null,!h&&(o({...ae(),invoicePaymentOnTheWay:false,...s().invoicePaymentUnresolved&&!s().error?{error:ce(void 0,he)}:{}}),$());},Math.max(0,H-Date.now())),o({followingUntil:new Date(H).toISOString()})),w&&A<Le&&(clearInterval(w),w=null,se());},ye=(t,r,n=true)=>{if(h)return;let{invoiceStatus:i,phase:l,checkout:x,paymentOnTheWay:d}=s(),P=Yt(s().error),g=Ye(t),v=new Set(k);g&&(k=g.flatMap(({keys:U})=>U));let m={invoiceStatus:t.status,txHash:t.txHash??s().txHash};if(n&&t.pendingPayments!==void 0&&(m.invoicePaymentOnTheWay=t.pendingPayments>0),n&&t.paymentCountsUntil!==void 0&&(m.paymentCountsUntil=t.paymentCountsUntil),n&&(t.unresolvedPayments!==void 0||t.pendingPayments!==void 0)&&(m.invoicePaymentUnresolved=nt(t)),n&&t.unresolvedPayments!==void 0&&(he=te(t)),n&&t.onTimeTxKeys&&y.length>0&&s().paymentSentInTime!==true){let U=new Set(t.onTimeTxKeys.map(L));m.paymentSentInTime=y.some(V=>U.has(V));}!r&&x&&t.amountPaid!==void 0&&t.amountPaid!==x.invoice.amountPaid&&(m.checkout={...x,invoice:{...x.invoice,amountPaid:t.amountPaid}});let G=d||T,oe=t.pendingPayments??0,ie=t.amountPaid!==void 0&&t.amountPaid!==null&&t.amountPaid!==S;ie&&(S=t.amountPaid);let X=i==="underpaid"&&t.status==="underpaid"&&!ie,q=null;G&&n&&De.has(t.status)&&(q=ht(t,g),!q&&(t.status==="open"||X)&&t.pendingPayments===0&&t.rejectedPayments&&(T||Date.now()-W>=It)&&!(P&&(t.unresolvedPayments??0)>0)&&(q={final:false,rechecked:te(t)})),!q&&t.status==="open"&&i==="processing"&&oe===0&&(q=t.rejectedPayments?g?.find(({keys:U})=>U.some(V=>!v.has(V)))??{final:false,rechecked:te(t)}:{final:true});let ve=K;if(g&&(K=tt(g)),q&&K&&(q=K),q?.final)Object.assign(m,ae(),{error:B(q)},t.status==="open"||t.status==="processing"||t.status==="underpaid"?fe(t.status):{phase:J(t.status)});else if(q)Object.assign(m,ae(),{error:B(q),phase:R.has(t.status)?"unconfirmed":J(t.status)});else if(t.status==="open")l==="loading"&&(m.phase="selectMethod");else if(!X||!Ft.has(l)||l==="awaitingPayment"&&r?.invoice.restPayable===false){m.phase=J(t.status);let U=s().error;t.status==="underpaid"&&i!=="underpaid"&&U&&U.code!=="payment_mismatch"&&!K&&(m.error=null);}if(G&&!q){let U=n&&t.pendingPayments===0,V=ee.has(t.status)||t.status==="underpaid"&&!X||C.has(t.status)&&r!==void 0&&U;V&&Object.assign(m,ae()),V&&C.has(t.status)&&(m.invoicePaymentUnresolved??s().invoicePaymentUnresolved)&&(m.error=ce(void 0,he));}if(n&&oe>0&&De.has(t.status)){!T&&!(m.paymentOnTheWay??d)&&qe();let U=P&&m.error===void 0;R.has(t.status)&&we.has(m.phase??l)&&!U&&(m.phase="confirming");}P&&m.error===void 0&&(t.status==="processing"||t.status==="underpaid"&&!X||ee.has(t.status))&&(m.error=null),K&&R.has(t.status)&&we.has(m.phase??l)?Object.assign(m,ne(),{phase:"unconfirmed"}):ve&&!K&&s().error?.reason===de&&!m.error&&Object.assign(m,{error:null},R.has(t.status)?fe(t.status):{}),o(m),He()?C.has(t.status)&&(ke=(t.pendingPayments??0)>0,Ke(t.status),p&&t.pendingPayments===0&&(p.close(),p=null,se())):$(),!r&&t.status!==i&&Lt.has(t.status)&&mt();let ue=s().quote;!r&&s().phase==="awaitingPayment"&&ue&&t.quoteExpiresAt&&t.quoteExpiresAt!==b&&!Fe(t.quoteExpiresAt,ue.expiresAt)&&(b=t.quoteExpiresAt,a.view().then(U=>{h||$e(U.quote);}).catch(()=>{}));},ge=()=>{if(h||p||w||!He())return;if(!c)return se();let t=new c(a.url("events"));p=t;let r=()=>{I&&clearTimeout(I),I=setTimeout(()=>{I=null,!(p!==t||h)&&(t.close(),p=null,a.view().then(n=>{h||ye(Ue(n),n);}).catch(()=>{}),ge());},Mt);};r(),t.addEventListener("ping",r),t.addEventListener("status",n=>{r();try{ye(JSON.parse(n.data));}catch{}}),t.onerror=()=>{if(p!==t)return;let{invoiceStatus:n,paymentOnTheWay:i}=s(),l=i||T,x=t.readyState===2;(x||C.has(n??"")&&l&&!ke)&&(t.close(),p=null,I&&clearTimeout(I),I=null,f=x,se(),x&&!O&&(O=setTimeout(()=>{O=null,!(h||!w||H!==null)&&(clearInterval(w),w=null,f=false,ge());},Kt)));};},z=(t,r,n,i=false)=>{if(ee.has(n??"")||ee.has(s().invoiceStatus??"")){let{error:d,txKey:P}=s();d?.reason?.startsWith("submit_")&&P&&t.includes(P)&&o({error:null}),a.view().then(g=>{h||ye(Ue(g),g);}).catch(()=>{});return}Pe+=1,W=Date.now(),T=false,y=[...y,...t.filter(d=>!!d).map(L)],D=new Set(k.map(L));let{invoiceStatus:l}=s(),x=l&&C.has(l)?l:null;o({txKey:r,paymentOnTheWay:true,paymentSentInTime:null,error:i?Xt():null,phase:x?J(x):i?"unconfirmed":"confirming"}),x&&Ke(x,true),w&&f&&H===null&&A>u&&(clearInterval(w),w=null,se()),ge();},Qe=async(t,r)=>{let n={txKey:t.txKey,...t.from?{from:t.from}:{},...t.connectorType?{connectorType:t.connectorType}:{},...t.methodId?{methodId:t.methodId}:{}};ct(n);let i=()=>ee.has(s().invoiceStatus??""),l=()=>C.has(s().invoiceStatus??""),x=g=>{i()||o({txKey:g,error:Bt(),...l()?{}:{phase:"unconfirmed"}}),d(0);},d=g=>{let v=At[g];if(v===void 0||h)return;let m=setTimeout(()=>{Q.delete(n.txKey),!h&&a.submit(n).then(G=>{h||(N(n.txKey),z([n.txKey],n.txKey,G?.status));},()=>d(g+1));},v);Q.set(n.txKey,m);},P=r==="unconfirmed";!i()&&!l()&&!P&&o({phase:"submitting",error:null}),clearTimeout(Q.get(n.txKey)),Q.delete(n.txKey);try{let g=await a.submit(n);return N(n.txKey),z([n.txKey],n.txKey,g?.status),!0}catch(g){if(Xe(g))return N(n.txKey),z([n.txKey],n.txKey,void 0,true),false;if(ze(g))return x(n.txKey),false;if(g instanceof E&&Ge.has(g.code??""))return i()||o({txKey:n.txKey,error:_e(),...l()?{}:{phase:"unconfirmed"}}),false;if(!Ve(g))return N(n.txKey),P&&!K||(K&&!i()?o({...ne(),...l()?{}:{phase:"unconfirmed"}}):i()||M(g,r==="submitting"?"awaitingPayment":r)),false;i()||o({txKey:n.txKey,...K?ne():{error:Rt()},...l()?{}:{phase:"unconfirmed"}});let v=Date.now()+Qt,m=()=>(s().error?.reason==="submit_retrying"||!!K)&&s().txKey===n.txKey,G=oe=>{let ie=Be[Math.min(oe,Be.length-1)];if(h)return;if(Date.now()+ie>v){m()&&o(K?ne():{error:_e()});return}let X=setTimeout(()=>{Q.delete(n.txKey),!h&&a.submit(n).then(q=>{h||(N(n.txKey),z([n.txKey],n.txKey,q?.status));}).catch(q=>{if(h)return;if(Ve(q))return G(oe+1);if(q instanceof E&&Ge.has(q.code??"")){m()&&o({error:_e()});return}if(ze(q)){m()?x(n.txKey):N(n.txKey);return}if(N(n.txKey),Xe(q)){m()&&z([n.txKey],n.txKey,void 0,true);return}if(!m())return;if(K){o(ne());return}let ve=le(q),ue=et[ve.code],U=s().phase;o({error:ve,...ue?{phase:ue}:U==="unconfirmed"?fe(s().invoiceStatus):{}});});},ie);Q.set(n.txKey,X);};return G(0),false}},ft=t=>{let r=Se();if(r.length===0)return;let n=new Set([...t.invoice.rejectedTxKeys??[],...t.invoice.onTimeTxKeys??[]].map(L)),i=r.filter(({txKey:l})=>!n.has(L(l))).sort((l,x)=>l.at-x.at);for(let{txKey:l}of r)n.has(L(l))&&N(l);(async()=>{for(let l of i){if(h)return;await Qe(l,s().phase);}})();};return {phase:"loading",checkout:null,invoiceStatus:null,methodId:null,payer:null,consentGiven:false,payerProof:"not_needed",confirmedWallets:[],quote:null,locale:null,txKey:null,paymentOnTheWay:false,invoicePaymentOnTheWay:false,paymentCountsUntil:null,invoicePaymentUnresolved:false,paymentSentInTime:null,followingUntil:null,txHash:null,error:null,receiptUrl:null,clockSkewMs:0,paymasterUrl:null,logoUrl:null,load:async()=>{o({phase:"loading",error:null});try{let t=await a.view(),{invoice:r}=t,n=Ye(r);n&&(k=n.flatMap(({keys:v})=>v)),S=r.amountPaid;let i=Ze(t,Date.now()),l=null,x=(r.pendingPayments??0)>0&&De.has(r.status);x&&!s().paymentOnTheWay&&qe(),x&&R.has(r.status)&&we.has(i)&&(i="confirming");let d=n?.[0],P=nt(r),g=r.status==="open"||r.status==="underpaid"||C.has(r.status);if(n&&(K=tt(n)),!x&&!s().paymentOnTheWay&&g){let v=!1;K?(l=B(K),v=!0):d&&!d.final&&!Zt(d,r)?(l=B(d),it.has(d.reason??"")&&!d.rechecked&&te(r)&&(l={...l,stillRead:!0}),v=!0):d?.reason==="unresolved_after_24h"?(l=B(d),v=!0):P?(l=ce(void 0,te(r)),v=!0):d?.movedMoney&&(l=B(d)),v&&we.has(i)&&(i="unconfirmed");}r.unresolvedPayments!==void 0&&(he=te(r)),o({checkout:t,invoiceStatus:r.status,locale:r.locale,quote:t.quote,methodId:t.quote?.methodId??s().methodId,payer:t.quote?.payer??s().payer,invoicePaymentOnTheWay:(r.pendingPayments??0)>0,invoicePaymentUnresolved:P,paymentCountsUntil:r.paymentCountsUntil??null,phase:i,error:l}),T&&C.has(r.status)&&Ke(r.status),ge(),ft(t);}catch(t){o({phase:"error",error:le(t)});}},selectMethod:(t,r)=>{let{quote:n,phase:i,error:l}=s(),x=n&&n.methodId!==t;o({methodId:t,error:r?.keepError?l:null,...x?{quote:null,phase:i==="awaitingPayment"?"selectMethod":i}:{}});},setPayer:t=>{let{quote:r,phase:n,invoiceStatus:i,checkout:l,error:x}=s(),d=r&&r.payer!==t,P=t!==s().payer&&Ht(x)?{error:null}:{},g=(i??l?.invoice.status)==="underpaid",v=n==="blocked"&&t!==null&&t!==s().payer?{phase:g?"underpaid":"selectMethod",quote:g?r:null}:{};if(d&&g){o({payer:t,...P,phase:n==="awaitingPayment"?"underpaid":n,...v});return}o({payer:t,...P,...d?{quote:null,phase:n==="awaitingPayment"?"selectMethod":n}:{},...v});},clearError:()=>o({error:null}),setConsentGiven:t=>o({consentGiven:t,error:null}),releaseQuote:()=>{let{phase:t,invoiceStatus:r,checkout:n}=s();t==="awaitingPayment"&&((r??n?.invoice.status)==="underpaid"?o({error:null,phase:"underpaid"}):o({quote:null,error:null,phase:"selectMethod"}));},requestQuote:async()=>{let{methodId:t,payer:r,phase:n,checkout:i,consentGiven:l,invoiceStatus:x}=s();if(!t)return o({error:{code:"method_required",message:"Choose a payment method first"}}),null;let d=(x??i?.invoice.status)==="underpaid";if(i?.consent?.required&&!l&&!d)return o({error:{code:"consent_required",message:"Tick the consent of the checkout first"}}),null;if(s().payerProof==="required"||s().payerProof==="confirming")return o({error:{code:"payer_proof_required",message:"Confirm the paying wallet with a free signature first"}}),null;o({phase:"quoting",error:null});let P=()=>{let v=s().invoiceStatus;return v!==null&&!R.has(v)},g=()=>{let v=s().invoiceStatus;return v&&o({phase:J(v),error:null}),null};try{let v=await a.quote({methodId:t,...r?{payer:r}:{},...i?.consent&&l&&!d?{consentGiven:!0}:{}});if(P())return g();if(s().payer!==r||s().methodId!==t)return o({phase:d?"underpaid":"selectMethod"}),null;let m=Date.now()-Date.parse(v.lockedAt??"");return o({quote:v,phase:s().invoicePaymentOnTheWay?"confirming":"awaitingPayment",clockSkewMs:Number.isFinite(m)&&Math.abs(m)>Ot?m:0}),v}catch(v){if(v instanceof E&&v.code==="payer_proof_required"&&r&&Ee.add(r),P())return g();let m=le(v);return m.code==="payment_on_its_way"&&qe(),d&&!Gt.has(m.code)?o({error:m,phase:"underpaid"}):M(v,n==="quoting"?"selectMethod":n),null}},confirmPayer:async t=>{let{payer:r}=s();if(!r)return o({error:{code:"payer_required",message:"Connect the paying wallet first"}}),false;if(s().payerProof==="confirmed"||s().payerProof==="not_needed")return o({error:null}),true;let{payerProofMessage:n,payerProof:i}=a;if(!n||!i)return o({error:{code:"request_failed",message:"The checkout calls cannot confirm a wallet (payerProofMessage)"}}),false;let l=++Ie;me=r,o({error:null});let x=(d,P)=>{d&&pe.push(d);let g=l===Ie;g&&(me=null),!h&&(P===void 0||!g||s().payer!==r||Ce(s())==="confirmed"?o({}):P instanceof Error&&P.name==="PayerProofDeclined"?o({error:{code:"payer_proof_declined",message:Re}}):M(P,s().phase));};try{let d=await n({payer:r});if(d.proven)return x({payer:d.payer,chainId:d.chainId}),!0;let P;try{P=await t(d.message,d);}catch(v){let m=new Error(v instanceof Error?v.message:String(v));throw m.name="PayerProofDeclined",m}let g=await i({payer:r,message:d.message,signature:P});return x(g),!0}catch(d){return x(null,d),false}},abandonConfirmation:()=>{Ie++,me=null,o({});},setBuyer:async(t,r={})=>{o({error:null});try{let n=await a.buyer({buyer:t,...r.company?{company:!0}:{}});return o({checkout:n,phase:Ze(n,Date.now())}),!0}catch(n){return M(n,s().phase),false}},setLocale:async t=>{let r=s().locale;o({locale:t});try{return await a.locale(t),!0}catch{return o({locale:r}),false}},submit:t=>Qe(t,s().phase),relay:async t=>{let r=s().phase;o({phase:"submitting",error:null});try{let n=await a.relay(t);return z([n.userOpHash,n.txHash],n.txHash??null),!0}catch(n){return M(n,r==="submitting"?"awaitingPayment":r),false}},grantPermission:async(t,r)=>{o({error:null});let n=async()=>{let{autoCharge:i}=await a.permission(t),l=s().checkout;return l&&o({checkout:{...l,autoCharge:i}}),true};try{try{return await n()}catch(i){let{payerProofMessage:l,payerProof:x}=a;if(!(i instanceof E&&i.code==="payer_proof_required")||!r||!l||!x)throw i;let d=await l({payer:t.payer});if(d.proven)pe.push({payer:d.payer,chainId:d.chainId});else {let P;try{P=await r(d.message,d);}catch{return o({error:{code:"payer_proof_declined",message:Re}}),!1}pe.push(await x({payer:t.payer,message:d.message,signature:P}));}return await n()}}catch(i){return M(i,s().phase),false}},permissionRevoked:async()=>{try{let{autoCharge:t}=await a.permissionRevoked(),r=s().checkout;return r&&o({checkout:{...r,autoCharge:t}}),t?.status!=="active"}catch{return null}},payAgain:()=>{s().phase!=="unconfirmed"||Vt(s().error)||K||o({error:null,...fe(s().invoiceStatus)});},destroy:()=>{h=true;for(let t of Q.values())clearTimeout(t);Q.clear(),$();}}})}
2
+ exports.a=un;exports.b=ln;exports.c=cn;
@@ -0,0 +1 @@
1
+ export{formatCountLabel as g,formatLabel as h,formatLabelParts as i}from'@tuwaio/sdk/nova-core/utils';var o={common:{close:"Close",retry:"Try again",loading:"Loading the checkout\u2026",dialogTitle:"Pay {merchant}"},error:{title:"The checkout can't be opened",notFound:"This payment link is wrong or no longer works. Ask the seller for a new one.",generic:"Something went wrong. Try again in a moment."},steps:{details:"Details",method:"Method",pay:"Pay",confirm:"Confirm",autoPay:"Auto-pay",progress:"Step {current} of {total}: {name}",label:"Payment steps"},language:{button:"Language: {language}",title:"Language",note:"Your invoice and receipt use this language too.",noteAfterPaid:"Your receipt stays in the language it was issued in."},method:{title:"Choose how to pay",subtitle:"The price locks for {minutes} minutes when you continue.",token:"Token",networks:"{count} networks",network:"{symbol} network",yourWallet:"Your wallet",popular:"Popular",noGasFee:"No gas fee",buyerPaysGas:"You pay the network fee",discount:"\u2212{percent}%",markup:"+{percent}%",payWith:"Pay with",wallet:"Wallet",walletHint:"MetaMask, Rabby, Phantom\u2026",qr:"QR code",qrHint:"Phone wallet",continue:"Continue",quoting:"Getting the price\u2026",agreeBoth:"By continuing you agree to the seller's {terms} and {refundPolicy}.",agreeOne:"By continuing you agree to the seller's {link}.",consentRequired:"Required to continue.",noMethods:"This invoice cannot be paid with any method right now. Contact the seller.",methodUnavailable:"This page cannot take this method. Choose another one.",tooManyPayers:"Too many wallets tried this invoice. Ask {merchant} for a new payment link.",tooManyPayments:"This invoice can no longer take a payment here. Contact {merchant}.",nativeFromSmartWallet:"A smart wallet cannot pay in this coin: choose a token.",payerNotExpected:"The seller asked for this invoice to be paid from another wallet. Connect that wallet.",rateLimited:"Too many tries. Wait a minute and try again.",paymentFailed:"The payment failed. Only the network fee was spent; the invoice is still open.",restSameMethod:"The rest is paid in the same token on the same network as the first part.",priceUnavailable:"The price of this method can't be read right now. Choose another method or try again in a minute."},buyer:{title:"Your details",subtitle:"The seller needs them for the invoice and the receipt.",email:"Email",name:"Name",companyName:"Company",addressLine1:"Address",addressLine2:"Address, line 2",postalCode:"Postal code",city:"City",country:"Country",chooseCountry:"Choose a country",taxId:"VAT or tax ID",registrationNumber:"Company number",optional:"optional",companyInvoice:"I need an invoice for my company",required:"Required",invalidEmail:"Enter an email like name@example.com",invalidCountry:"Choose a country from the list",refused:"Your details could not be saved. Check them and try again.",continue:"Continue"},pay:{title:"Pay",walletLine:"{address} \xB7 {network}",change:"Change",changeWallet:"Change wallet",youSend:"You send",youSendRest:"You send the rest",copyAmount:"Copy amount",copied:"Copied",onNetwork:"on {network}",fiatValue:"= {amount} {currency}",priceLocked:"Price locked for {time}",refreshPrice:"Refresh price",priceEnding:"This price ends in {time}. Keep it?",keepPrice:"Keep this price \xB7 +{minutes} min",priceExpired:"The price lock ran out.",newPrice:"Get a new price",rate:"Rate",rateValue:"1 {symbol} = {price} {currency}",networkFee:"Network fee",merchantPaysGas:"{merchant} pays \xB7 you only sign",gasEstimate:"\u2248 {amount} \xB7 from your wallet",gasFromWallet:"Paid from your wallet",to:"To",invoiceTotal:"Invoice total",invoiceRest:"Rest of the invoice",backFromRest:"Back",restRateUntil:"This rate holds until {time}. A payment after that waits for {merchant} to accept it.",restRateEnded:"This rate was locked earlier, so this payment waits for {merchant} to accept it.",restTimeLeft:"Time left to send: {time}",transferFee:"Token transfer fee {percent}%",merchantReceives:"{merchant} receives",transferFeeNote:"The token's contract keeps a fee on every transfer, so you send a bit more for the invoice to be paid in full.",signToPay:"Sign to pay {amount}",payAmount:"Pay {amount}",switchTo:"Switch to {network}",connect:"Connect a wallet",back:"Back to methods",payWithGas:"Pay with gas instead",payGasless:"Let {merchant} pay the gas",disclaimer:"Payments go straight to {merchant} and can't be reversed; refunds come from the seller.",disclaimerScreening:"{merchant} checks paying wallets against sanctions lists and, where available, other risk signals.",wrongNetwork:"Wrong network",wrongNetworkText:"Your wallet is on {current}. This payment goes on {network}.",switchHint:"Your wallet asks you to approve the switch.",solanaNetwork:"Pay on {network}",solanaNetworkText:"Solana wallets choose their network themselves: switch yours to {network} before you pay.",solanaHintPhantom:"In Phantom: Settings \u203A Developer Settings \u203A Testnet Mode, then {network}.",solanaHintSolflare:"In Solflare: Settings \u203A General \u203A Network \u203A {cluster}.",solanaHintOther:"Choose the network in the settings of {wallet}.",notEnough:"Not enough",walletHas:"Your wallet has {amount} on {network}",shortBy:"{short} short of {need}.",payFromBalance:"Pay from what this wallet has",youHave:"You have {amount}",topUp:"Or add {symbol} to this wallet and come back:",getToken:"Get {symbol}",connectUnavailable:"This page has no wallet connection. Pay with a QR code instead.",switchFailed:"{wallet} did not switch to {network}. Switch it in the wallet, then try again.",notAuthorized:"{wallet} has not allowed this account here. Check in {wallet} that this account is connected to this site, then try again.",walletFailed:"{wallet} did not do it, and nothing was sent. Try again.",sentUnconfirmed:"{wallet} sent the payment and it is not confirmed yet. Do not pay again: this page updates once it lands.",declined:"You declined the request in {wallet}.",tryAgain:"Try again",failed:"The payment failed on {network}. Only the network fee was spent; the invoice is still open.",mismatch:"This transaction does not pay the invoice. If money left your wallet, contact {merchant}.",mismatchTakenElsewhere:"This transaction pays another invoice. If it was your payment for this one, contact {merchant} with the transaction hash.",mismatchHeldElsewhere:"This transaction is tied to another invoice, which holds it for a refund to the wallet that sent it. It does not count for this invoice. If it was your payment for this one, contact {merchant} with the transaction hash.",mismatchOtherWallet:"This transfer came from a wallet that did not confirm this invoice, so it does not pay it. If money left your wallet, contact {merchant}.",mismatchOtherWalletHeld:"This transfer came from a wallet that did not confirm this invoice, so it does not pay it. {merchant} returns it to the wallet that sent it, and you can still pay this invoice from the wallet that confirmed it.",mismatchChargeHeld:"This payment was sent or charged under an earlier price of this invoice, so it does not pay it. {merchant} returns it to your wallet, and you can still pay the invoice.",mismatchTooManyParts:"This invoice has taken as many parts as it can, so this transfer does not pay it. {merchant} returns it to your wallet; send the whole rest at once.",payAgain:"Pay again",unsupported:"{wallet} can't make this payment.",wrongCluster:"{wallet} is on another network, so nothing was paid. Switch it to {network} and pay again.",screeningUnavailable:"The wallet check is unavailable right now.",retryLater:"Try again in a minute",noAnswer:"The payment server did not answer. Check your connection and try again.",txTitle:"Payment to {merchant}",txDescription:"{amount} \xB7 {invoice}"},walletPrompt:{signIn:"Sign in {wallet}",confirmIn:"Confirm in {wallet}",switchIn:"Approve the switch in {wallet}",signText:"Sign the transfer of {amount} to {merchant} on {network}. No gas: {merchant} pays the network fee.",confirmText:"Confirm the transfer of {amount} to {merchant} on {network}.",check:"Check in {wallet} before signing",amount:"Amount",to:"To",network:"Network",priceLocked:"Price locked",notOpened:"The wallet window didn't open?",tryAgain:"Try again",stillWaiting:"No window? Open {wallet}: the request waits there.",cancel:"Cancel",submitting:"Handing the payment to Quasar\u2026"},payerProof:{title:"Confirm your wallet",text:"Confirm this wallet \u2014 it is free and moves no money.",summary:"What you sign",invoice:"Invoice",merchant:"Seller",amount:"Amount",wallet:"Wallet",site:"Site",alreadyConfirmed:"Already confirmed for this invoice: {wallet}. Switch to it in your wallet to skip this signature.",why:"Payments from this wallet count for this invoice once it signs. Your wallet shows a message to sign, not a payment: no fee, nothing leaves the wallet.",passkey:"{wallet} may ask for your passkey or fingerprint to sign.",confirm:"Confirm in {wallet}",waiting:"Waiting for {wallet}\u2026",note:"One signature per wallet for this invoice: a new price, token or network needs no new one.",noteSmart:"One signature per wallet for this invoice: a new price or token needs no new one; another network asks again.",promptText:"Sign the message that confirms this wallet pays invoice {invoice} of {merchant}. It is free and moves no money.",promptPasskey:"Confirm with your passkey in {wallet}. It signs the message that confirms this wallet pays invoice {invoice} of {merchant}; it is free and moves no money.",declined:"You declined the signature in {wallet}. It is free and moves no money: sign it to pay from this wallet, or choose another wallet or method.",unsupported:"{wallet} can't sign this confirmation. Choose another wallet or method.",failed:"{wallet} did not sign the confirmation. Try again.",invalid:"The signature could not be verified. Try again, or pay from another wallet.",unavailable:"The network can't check this wallet's signature right now. Try again in a minute.",wrongNetwork:"Switch {wallet} to {network}, then confirm again.",tooManyWallets:"Too many wallets have confirmed this invoice. Pay from one of them, or ask {merchant} for a new invoice.",switchDeclined:"You declined the switch to {network} in {wallet}. Approve it to confirm this wallet, or choose another method.",willSwitch:"Your wallet is on {current}: it first asks to switch to {network}.",confirmToPay:"Confirm this wallet to pay",payNote:"Paying from this wallet needs a free signature first: it confirms that the wallet pays this invoice and moves no money.",signInRequest:"{wallet} may show it as a sign-in request for {site}."},qr:{solanaTitle:"Scan with a Solana wallet",solanaHint:"Open Phantom, Solflare or Backpack",restHint:"Scan with the wallet that paid first, {wallet}.",scanStep:"Scan the code (Solana Pay)",approveStep:"Approve the amount below",solanaCode:"QR code of a Solana Pay request for {amount}",waiting:"Waiting for the payment\u2026",exchangeWarning:"Send from your own wallet, not from an exchange: an exchange drops the payment reference, and the payment would wait for a manual check.",openInWallet:"Open in wallet app",handoffTitle:"Pay on your phone",handoffHint:"Scan with the phone camera: this checkout opens there, and you pay with your mobile wallet.",handoffCode:"QR code that opens this checkout on your phone",handoffNote:"This page follows the payment and shows the receipt when it arrives.",copyLink:"Copy link",back:"Back to methods"},confirm:{title:"Confirming your payment",hint:"Usually under two minutes on {network}.",sent:"Sent",confirming:"Confirming",confirmed:"Confirmed",paid:"Paid",failed:"Failed",network:"Network",amount:"Amount",transaction:"Transaction",lastTransfer:"Last transfer",from:"From",canClose:"You can close this window: the payment keeps going, and the seller sends the receipt.",afterDeadline:"Your payment was sent before the deadline and is being confirmed.",pastDeadline:"Your payment is being confirmed. If it arrives after the invoice closes, {merchant} accepts it or returns it.",invoicePayment:"A payment for this invoice is on its way. Wait until it is confirmed before paying again.",viewOnExplorer:"View on the explorer",copyHash:"Copy the transaction"},paid:{title:"Payment received",summary:"on {network} \xB7 {date}",receipt:"Receipt",receiptHint:"PDF of the payment, also kept by the seller",download:"Download",refunded:"Refunded {amount} {currency}",back:"Back to {merchant}",returning:"Returning to {merchant} in {seconds} s",stay:"Stay here",autoPayOffer:"Pay the next periods automatically",autoPayActive:"Automatic payments are on.",autoPayOff:"Turn off",autoPayTurnedOff:"Automatic payments are off. {merchant} can no longer charge this wallet."},autoPay:{title:"Pay next periods automatically?",subtitle:"Optional. Without it, you get an invoice each period and pay it yourself.",allow:"You allow {merchant} to take",limit:"up to {amount}",every:"every {period}",from:"From",to:"To",validUntil:"Valid until",validUntilValue:"{date}, or until you turn it off",collector:"Quasar sends each charge for {merchant}, only to {merchant}'s wallet and within this limit.",invoices:"Each charge comes with an invoice and a receipt by email.",cap:"{merchant} can't take more than this limit in a period.",turnOff:"You can turn it off at any time on the page of any of these invoices: your wallet sends one transaction. To cancel the subscription itself, contact {merchant}.",confirm:"Allow automatic payments",skip:"Not now, I'll pay each invoice",walletNote:"Your wallet shows this permission (ERC-7715) before you approve it.",approveIn:"Approve in {wallet}",unavailable:"{wallet} can't allow automatic payments.",smartAccountNote:"Automatic payments need a smart account. {wallet} asks you to switch to it first: one transaction on {network}, and you pay its network fee. Your address stays the same.",smartAccountPrompt:"{wallet} asks you to switch this account to a smart account. Your address and your funds stay the same.",smartAccountNeeded:"Automatic payments need a smart account. In {wallet}, open the details of this account, turn on its smart account for {network}, then try again.",notGranted:"{wallet} did not give the permission. Try again, or pay each invoice yourself.",invalid:"This permission can't be used. Try again, or pay each invoice yourself."},autoPayOff:{title:"Turn off automatic payments?",subtitle:"{merchant} can no longer charge this wallet. The subscription goes on: later periods come as invoices you pay yourself. To cancel it, contact {merchant}.",wallet:"Wallet",allowed:"Allowed now",fee:"Your wallet sends one transaction on {network} and you pay its network fee.",confirm:"Turn off in {wallet}",checkAgain:"Check again",keep:"Keep them on",connect:"Connect that wallet",otherWallet:"Only the wallet that allowed them, {wallet}, can turn them off.",useThisWallet:"Use this wallet instead",inWallet:"Confirm in {wallet}\u2026",waiting:"Waiting for the network\u2026",notYet:"The network does not show it yet. If your wallet sent the transaction, check again in a minute.",unsupported:"{wallet} can't send this transaction."},outcome:{underpaidTitle:"Part of the payment arrived",underpaidText:"{received} of {total} received.",underpaidRest:"Send the rest, {rest}, from the same wallet on {network}.",underpaidNote:"Until the rest arrives, {merchant} sees the invoice as underpaid. It stays payable until {date}.",underpaidClosed:"The rest of this invoice can no longer be paid here.",underpaidClosedRefund:"After {date}, {merchant} can refund what arrived.",underpaidRateEnded:"The rate of this invoice has ended, so a rest paid now waits for {merchant} to accept it.",underpaidBlocked:"This wallet did not pass the wallet check, so it cannot pay the rest. Contact {merchant}.",payRestFirstWallet:"Only the wallet that paid first, {wallet}, can pay the rest. Connect that wallet to pay it.",payRest:"Pay the rest",heldTitle:"Payment received, {merchant} is checking it",heldScreening:"{merchant} checks the payment before confirming the order.",heldLate:"The payment arrived after the invoice closed. {merchant} accepts it or returns it.",heldOverpaid:"You sent more than the invoice. {merchant} confirms the order or returns the difference to your wallet.",heldQuoteExpired:"The payment arrived after the price lock ran out. {merchant} accepts it or returns it.",heldNote:"The seller contacts you if anything is needed.",refundedTitle:"Refunded",refundedText:"{merchant} refunded this invoice: {amount} {currency}.",expiredTitle:"This invoice has expired",expiredText:"It was payable until {date}. Ask {merchant} for a new one; nothing was charged.",expiredPartText:"It was payable until {date}. Part of the payment arrived: {amount}.",expiredPartNoAmount:"It was payable until {date}. Part of the payment arrived.",closedPartText:"{merchant} closed this invoice. {amount} of the payment arrived.",expiredPartRefund:"{merchant} can refund it to the wallet that paid; contact {merchant}.",expiredNote:"A payment sent after the deadline is held for the seller to refund or accept.",expiredWhileConfirming:"The invoice closed while your payment was confirming. If it arrives, it is recorded and shown to {merchant}, who accepts it or returns it.",expiredAfterQr:"If you paid with the QR code, {merchant} accepts the payment when it arrives or returns it.",expiredUnconfirmed:"Your payment could not be confirmed yet. Check your wallet: if the payment left it, Quasar checks it again for 24 hours. If it arrives, it is recorded and shown to {merchant}, who accepts it or returns it.",unconfirmedTitle:"We could not confirm your payment",unconfirmedText:"Check your wallet before paying again: your payment may still be on its way.",unconfirmedNote:"Quasar checks your payment again for 24 hours. If it arrives, it is recorded and shown to {merchant}.",unconfirmedContact:"Quasar does not check this payment again. If it left your wallet, contact {merchant} with the transaction hash.",unconfirmedNotReceived:"Quasar did not receive this payment. If it left your wallet, contact {merchant} with the transaction hash.",unconfirmedClosed:"Quasar did not find this payment on the network within 24 hours and no longer checks it. If it left your wallet, contact {merchant} with the transaction hash.",unconfirmedRetrying:"This page keeps handing your payment over to Quasar. Keep it open until the payment shows here.",unconfirmedInvoiceFull:"This invoice takes no more payments, and Quasar does not follow this one. Do not pay again; if it left your wallet, contact {merchant} with the transaction hash.",unconfirmedTakenElsewhere:"This transaction was handed over for another invoice first. Quasar credits it to the invoice the wallet that sent it confirmed, and this page shows the result while it follows the payment. Do not pay again; if your payment does not show here, contact {merchant} with the transaction hash.",unconfirmedUnmined:"Quasar reads this payment for a week after it learned of it, and records it if it goes through. Check your wallet; if it left and you need help, contact {merchant} with this transaction hash.",unconfirmedNonceSpent:"Your wallet used the number of this transaction for another one, which Quasar could not find, so money may have left your wallet. Do not pay again yet. If you sped it up, name its hash below; otherwise contact {merchant} with this transaction hash.",unconfirmedSettlementFailed:"The network confirmed your payment, but Quasar has not recorded it. Do not pay again; contact {merchant} with the transaction hash.",unconfirmedSettlementRetrying:"The network confirmed your payment, but Quasar has not recorded it yet. Quasar tries again daily, for 30 days after it learned of the payment. Do not pay again; contact {merchant} with the transaction hash.",followingUntil:"This page follows the payment until {time}. Later, reload it to see the outcome.",nameHash:"Does your wallet show another transaction?",nameHashField:"Transaction hash",nameHashSend:"Check this transaction",nameHashInvalid:"This is not a transaction of this network.",nameHashRefused:"Quasar could not take this transaction. Contact the seller with its hash.",unconfirmedPayAgain:"The payment did not leave my wallet",cancelledTitle:"This invoice was cancelled",cancelledText:"{merchant} cancelled it; nothing was charged.",cancelledWhilePaying:"{merchant} cancelled it. If your payment arrives, it is recorded and shown to {merchant}, who accepts it or returns it.",cancelledAfterQr:"{merchant} cancelled it. If you paid with the QR code, {merchant} accepts the payment when it arrives or returns it.",replacedTitle:"{merchant} corrected this invoice",replacedText:"{number} replaces it. This invoice can no longer be paid.",replacedPaid:"Already paid? Your payment moved to the new invoice.",openReplacement:"Open {number}",blockedTitle:"This wallet can't pay this invoice",blockedText:"The wallet check did not pass. Nothing was sent. Connect another wallet or contact {merchant}.",useAnotherWallet:"Use another wallet",contact:"Contact {merchant}",contactSubject:"Invoice {number}"},leave:{title:"Leave the checkout?",text:"Nothing is sent yet. The invoice stays open until {date}: reopen it from the link in your email or on the seller's site.",textNoDate:"Nothing is sent yet. The invoice stays open: reopen it from the link in your email or on the seller's site.",price:"The locked price is released; you get a new one when you come back.",stay:"Stay and pay",leave:"Leave"},summary:{test:"Test",testHint:"Test invoice: it is paid on a test network.",sellerDetails:"Seller details",registration:"Company number",taxId:"VAT ID",terms:"Terms",refundPolicy:"Refund policy",privacy:"Privacy",sellerRole:"{seller} is the seller. Quasar is the payment software: it never holds your funds and is not a party to this purchase.",payWithin:"Payment deadline",refundAfter:"Refund possible after",until:"until {date}",minutesLeft:"{minutes} minutes left to pay",oneMinuteLeft:"1 minute left to pay",invoice:"Invoice",quantity:"{quantity} \xD7 {price}",subtotal:"Subtotal",taxRate:"VAT {rate}%",tax:"VAT",total:"Total",secured:"Secured by Quasar",help:"Help",compact:"{count} items \xB7 incl. VAT {tax}",compactOne:"{count} item \xB7 incl. VAT {tax}",compactNoTax:"{count} items",compactNoTaxOne:"{count} item",showOrder:"Details"},refund:{button:"Refund",title:"Refund {invoice}",amountTitle:"What to refund",modeFiat:"An amount",modeFiatText:"In {currency}, converted at the rate of now",modeExact:"Everything received",modeExactText:"The tokens the payment brought, as they are",amount:"Amount, {currency}",amountHint:"Up to {amount}",reason:"Reason (optional)",continue:"Continue",movedTitle:"The price has moved",movedText:"The price of {symbol} changed since the payment, so this amount takes a different number of tokens.",movedSend:"This refund sends",movedAtPayment:"At the rate of the payment",movedReceived:"The payment brought",movedExact:'To return the tokens as they came, go back and choose "{exact}".',movedContinue:"Continue with this amount",movedBack:"Back",requesting:"Asking Quasar for the refund\u2026",connectTitle:"Connect a wallet",connectText:"The refund goes out on {network}, the network of the payment. Any wallet that holds {symbol} there can send it.",connect:"Connect wallet",connectUnavailable:"This page can't connect a wallet. Send the refund from your wallet, then record it.",confirmTitle:"Confirm the refund",send:"Send",to:"To",thePayer:"the payer",theSender:"the sender of this transfer",from:"From",balance:"Holds {amount}",networkFee:"Network fee",feeEstimate:"\u2248 {amount} \xB7 from your wallet",sendRefund:"Send refund",switchTo:"Switch to {network}",walletTitle:"Confirm in {wallet}",walletText:"Confirm the transfer of {amount} on {network}.",switchTitle:"Approve the switch in {wallet}",submitting:"Handing the refund to Quasar\u2026",onItsWay:"On its way",status:"Status",pending:"Pending",transaction:"Transaction",network:"Network",waiting:"{network} \xB7 waiting for confirmation",canClose:"You can close this window: the invoice shows how the refund goes.",refunded:"Refunded",creditNote:"Credit note",done:"Done",failedShort:"Part of the refund reached the buyer. Send the refund again: only what is missing goes.",failedTitle:"The refund failed",failedWithdrawnTitle:"You took the refund back",failedCancelledTitle:"You cancelled the refund",failedByHand:"The transaction of this refund cannot settle it: check it by hand against the refunds of the invoice.",failedText:"The transaction failed on {network}; only the network fee was spent. Send the refund again.",failedFromBuyer:"It was sent from the wallet it goes back to, or from a wallet that paid the invoice, so nothing went back. Send it again from another wallet.",failedNotFound:"Its transaction was not found in time or was replaced: it may still have arrived.",failedDropped:"Its transaction was not found on the network: it may still have arrived.",failedTooEarly:"Its transaction is older than the payment, so it is not this refund.",failedNoTransfer:"Its transaction sent nothing Quasar could see to the wallet the refund goes to.",failedWithdrawn:"You took it back before it was sent.",failedCancelling:"You cancelled it in your wallet. It can be sent again once the cancellation is final, usually in a few minutes.",failedCancelled:"You cancelled it in your wallet, so nothing was sent. You can send it again.",failedResendConfirmed:"You confirmed that it did not leave your wallet: it can be sent again.",failedHeldNote:"The transfer stays held. Close this window: its row says what to do next.",notSent:"Not sent",notEnough:"Not enough {symbol} on {address}: it holds {balance}.",declined:"You declined the request in {wallet}.",unsupported:"{wallet} can't send this refund.",wrongNetwork:"{wallet} is on another network, so nothing was sent. Switch it to {network} and send again.",failed:"The wallet did not send the refund. Try again.",noRecipient:"The payer's wallet is not known, so this refund can't be sent from here.",unreachable:"Quasar does not answer, so nothing was sent. Try again in a moment.",refusedAmount:"The amount is more than what is left to refund.",refusedNotRefundable:"This payment cannot be refunded any more.",refusedWhole:"A held transfer is returned whole.",refusedBlocked:"A compliance check blocks the wallet to refund. Nothing can be sent to it.",refusedNotWaiting:"This refund no longer waits for a transaction. Nothing was sent.",refusedMayHaveLanded:"An earlier transaction of this refund may have gone through. Check it before asking again.",refusedPrice:"The price cannot be read right now. Try again in a moment.",refusedTestOnly:"This node accepts test networks only.",refusedOther:"Quasar refused this refund. Nothing was sent.",slowNote:"Quasar has not seen this transaction land yet. If your wallet shows another hash, because it was sped up or cancelled there, record that one.",nothingSent:"Nothing was sent: the refund waits for its transaction.",notHandedOver:"The refund was sent, but Quasar hasn't taken its transaction yet. Hand it over again: nothing is sent twice.",handOver:"Hand it over again",record:"Record refund",recordHint:"Sent it another way? Record the refund with its transaction: Quasar checks it on-chain.",close:"Close",txTitle:"Refund of {invoice}",txDescription:"{amount} to the payer",txDescriptionSender:"{amount} to the sender of the transfer"}},h=[{code:"en",name:"English",short:"EN"},{code:"uk",name:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430",short:"UK"},{code:"zh-CN",name:"\u7B80\u4F53\u4E2D\u6587",short:"ZH"},{code:"es",name:"Espa\xF1ol",short:"ES"},{code:"it",name:"Italiano",short:"IT"},{code:"de",name:"Deutsch",short:"DE"}],r={"zh-CN":()=>import('./zhCN-BZBMKUUA-E7M3WG4Q.js').then(e=>e.zhCNLabels),es:()=>import('./es-LP3HJ4KB-JN7LQABB.js').then(e=>e.esLabels),de:()=>import('./de-53SSE6O2-GWJEBBVJ.js').then(e=>e.deLabels),uk:()=>import('./uk-EI4N5BMM-5PL2AYKV.js').then(e=>e.ukLabels),it:()=>import('./it-JJ5Z5EUF-HOA77BWJ.js').then(e=>e.itLabels)},i=new Map([["en",o]]),s=e=>!!e&&Object.hasOwn(r,e);function l(e){return !s(e)||i.has(e)}function c(e){return e&&i.get(e)||o}async function d(e){if(l(e))return c(e);let t=e,n=o;try{n=await r[t]();}catch{}return i.set(t,n),n}function u(e,t){if(!t)return e;let n={...e};for(let a of Object.keys(t))t[a]&&Object.assign(n,{[a]:{...e[a],...t[a]}});return n}export{o as a,h as b,l as c,c as d,d as e,u as f};
@@ -0,0 +1 @@
1
+ import {errorChain}from'@tuwaio/sdk/orbit';var c=class extends Error{constructor(t,o,r){super(o,r),this.kind=t,this.name="PaymentWalletError";}kind},l=4001,h=/user (rejected|denied|declined|cancell?ed)|(rejected|denied|declined|cancell?ed) by (the )?user/i,u="ChainNotConfiguredError",p="ConnectorNotConnectedError",m=new Set(["ConnectorChainMismatchError","ChainMismatchError"]),f=new Set(["SwitchChainError","SwitchChainNotSupportedError"]),E=new Set([4200,-32601,-32004]),w=4100,g=-32002,n=(t,o)=>typeof t=="object"&&t!==null?t[o]:void 0;function C(t){let o=errorChain(t),r=e=>o.find(e),i=r(e=>e instanceof c);if(i)return i.kind;if(r(e=>{let d=n(e,"message");return n(e,"code")===l||n(e,"name")==="UserRejectedRequestError"||typeof d=="string"&&h.test(d)}))return "declined";if(r(e=>n(e,"code")===g))return "alreadyPending";if(r(e=>n(e,"name")===u||E.has(n(e,"code"))))return "unsupported";if(r(e=>m.has(n(e,"name"))))return "wrongNetwork";if(r(e=>f.has(n(e,"name"))))return "switchFailed";if(r(e=>n(e,"code")===w))return "notAuthorized";let a=r(e=>n(e,"name")===p);return a?(process.env.NODE_ENV==="development"&&console.error("[nova-payments] paymentsEVMAdapter is built on a wagmi config the connected wallet is not in: give NovaPaymentsProvider `adapters` on the wagmi config of the Satellite EVM adapter that connects the wallet.",a),"unsupported"):(process.env.NODE_ENV==="development"&&console.error("[nova-payments] The wallet failed:",t),"failed")}export{c as a,C as b};
@@ -0,0 +1 @@
1
+ var e={common:{close:"Schlie\xDFen",retry:"Erneut versuchen",loading:"Der Checkout wird geladen\u2026",dialogTitle:"An {merchant} zahlen"},error:{title:"Der Checkout kann nicht ge\xF6ffnet werden",notFound:"Dieser Zahlungslink ist falsch oder funktioniert nicht mehr. Bitten Sie den Verk\xE4ufer um einen neuen.",generic:"Etwas ist schiefgelaufen. Versuchen Sie es gleich noch einmal."},steps:{details:"Angaben",method:"Methode",pay:"Zahlen",confirm:"Best\xE4tigung",autoPay:"Automatisch zahlen",progress:"Schritt {current} von {total}: {name}",label:"Zahlungsschritte"},language:{button:"Sprache: {language}",title:"Sprache",note:"Auch Ihre Rechnung und Quittung erscheinen in dieser Sprache.",noteAfterPaid:"Ihre Quittung bleibt in der Sprache, in der sie ausgestellt wurde."},method:{title:"Zahlungsart w\xE4hlen",subtitle:"Wenn Sie fortfahren, wird der Preis f\xFCr {minutes} Minuten festgelegt.",token:"Token",networks:"{count} Netzwerke",network:"{symbol}-Netzwerk",yourWallet:"Ihr Wallet",popular:"Beliebt",noGasFee:"Keine Gasgeb\xFChr",buyerPaysGas:"Sie zahlen die Netzwerkgeb\xFChr",discount:"\u2212{percent}\xA0%",markup:"+{percent}\xA0%",payWith:"Zahlen mit",wallet:"Wallet",walletHint:"MetaMask, Rabby, Phantom\u2026",qr:"QR-Code",qrHint:"Wallet auf dem Smartphone",continue:"Weiter",quoting:"Preis wird ermittelt\u2026",agreeBoth:"Wenn Sie fortfahren, stimmen Sie den {terms} und der {refundPolicy} des Verk\xE4ufers zu.",agreeOne:"Wenn Sie fortfahren, stimmen Sie den Bedingungen des Verk\xE4ufers zu: {link}.",consentRequired:"Zum Fortfahren erforderlich.",noMethods:"Diese Rechnung kann derzeit mit keiner Methode bezahlt werden. Wenden Sie sich an den Verk\xE4ufer.",methodUnavailable:"Diese Seite kann diese Methode nicht annehmen. W\xE4hlen Sie eine andere.",tooManyPayers:"Zu viele Wallets haben diese Rechnung versucht. Bitten Sie {merchant} um einen neuen Zahlungslink.",tooManyPayments:"Diese Rechnung kann hier keine Zahlung mehr annehmen. Wende dich an {merchant}.",nativeFromSmartWallet:"Eine Smart Wallet kann nicht mit dieser Coin bezahlen: W\xE4hle einen Token.",payerNotExpected:"Der Verk\xE4ufer m\xF6chte, dass diese Rechnung von einem anderen Wallet bezahlt wird. Verbinden Sie das gew\xFCnschte Wallet.",rateLimited:"Zu viele Versuche. Warten Sie eine Minute und versuchen Sie es erneut.",paymentFailed:"Die Zahlung ist fehlgeschlagen. Nur die Netzwerkgeb\xFChr wurde verbraucht; die Rechnung bleibt offen.",restSameMethod:"Der Rest wird im selben Token und im selben Netzwerk bezahlt wie der erste Teil.",priceUnavailable:"Der Preis dieser Methode kann gerade nicht ermittelt werden. W\xE4hlen Sie eine andere Methode oder versuchen Sie es in einer Minute erneut."},buyer:{title:"Ihre Angaben",subtitle:"Der Verk\xE4ufer ben\xF6tigt sie f\xFCr die Rechnung und die Quittung.",email:"E-Mail",name:"Name",companyName:"Unternehmen",addressLine1:"Adresse",addressLine2:"Adresse, Zeile 2",postalCode:"Postleitzahl",city:"Stadt",country:"Land",chooseCountry:"Land w\xE4hlen",taxId:"USt-IdNr. oder Steuernummer",registrationNumber:"Registernummer",optional:"optional",companyInvoice:"Ich ben\xF6tige eine Rechnung f\xFCr mein Unternehmen",required:"Pflichtfeld",invalidEmail:"Geben Sie eine E-Mail-Adresse wie name@example.com ein",invalidCountry:"W\xE4hlen Sie ein Land aus der Liste",refused:"Ihre Angaben konnten nicht gespeichert werden. Pr\xFCfen Sie sie und versuchen Sie es erneut.",continue:"Weiter"},pay:{title:"Zahlen",walletLine:"{address} \xB7 {network}",change:"\xC4ndern",changeWallet:"Wallet wechseln",youSend:"Sie senden",youSendRest:"Sie senden den Restbetrag",copyAmount:"Betrag kopieren",copied:"Kopiert",onNetwork:"im Netzwerk {network}",fiatValue:"= {amount} {currency}",priceLocked:"Preis festgelegt f\xFCr {time}",refreshPrice:"Preis aktualisieren",priceEnding:"Dieser Preis l\xE4uft in {time} ab. Beibehalten?",keepPrice:"Preis beibehalten \xB7 +{minutes} Min.",priceExpired:"Die Preisbindung ist abgelaufen.",newPrice:"Neuen Preis abrufen",rate:"Kurs",rateValue:"1 {symbol} = {price} {currency}",networkFee:"Netzwerkgeb\xFChr",merchantPaysGas:"{merchant} zahlt \xB7 Sie signieren nur",gasEstimate:"\u2248 {amount} \xB7 aus Ihrem Wallet",gasFromWallet:"Wird aus Ihrem Wallet bezahlt",to:"An",invoiceTotal:"Rechnungsbetrag",invoiceRest:"Restbetrag der Rechnung",backFromRest:"Zur\xFCck",restRateUntil:"Dieser Kurs gilt bis {time}. Eine sp\xE4tere Zahlung wartet darauf, dass {merchant} sie annimmt.",restRateEnded:"Dieser Kurs wurde fr\xFCher festgelegt, daher wartet diese Zahlung darauf, dass {merchant} sie annimmt.",restTimeLeft:"Verbleibende Zeit zum Senden: {time}",transferFee:"Token-Transfergeb\xFChr {percent}\xA0%",merchantReceives:"{merchant} erh\xE4lt",transferFeeNote:"Der Smart Contract des Tokens beh\xE4lt bei jedem Transfer eine Geb\xFChr ein. Deshalb senden Sie etwas mehr, damit die Rechnung vollst\xE4ndig bezahlt ist.",signToPay:"Signieren und {amount} zahlen",payAmount:"{amount} zahlen",switchTo:"Zu {network} wechseln",connect:"Wallet verbinden",back:"Zur\xFCck zu den Methoden",payWithGas:"Stattdessen mit Gas zahlen",payGasless:"{merchant} das Gas zahlen lassen",disclaimer:"Zahlungen gehen direkt an {merchant} und k\xF6nnen nicht r\xFCckg\xE4ngig gemacht werden; Erstattungen kommen vom Verk\xE4ufer.",disclaimerScreening:"{merchant} pr\xFCft zahlende Wallets anhand von Sanktionslisten und, soweit verf\xFCgbar, anderen Risikosignalen.",wrongNetwork:"Falsches Netzwerk",wrongNetworkText:"Ihr Wallet ist im Netzwerk {current}. Diese Zahlung l\xE4uft \xFCber {network}.",switchHint:"Ihr Wallet bittet Sie, den Wechsel zu best\xE4tigen.",solanaNetwork:"\xDCber {network} zahlen",solanaNetworkText:"Solana-Wallets w\xE4hlen ihr Netzwerk selbst: Stellen Sie Ihr Wallet vor der Zahlung auf {network} um.",solanaHintPhantom:"In Phantom: Einstellungen \u203A Entwicklereinstellungen \u203A Testnet-Modus, dann {network}.",solanaHintSolflare:"In Solflare: Einstellungen \u203A Allgemein \u203A Netzwerk \u203A {cluster}.",solanaHintOther:"W\xE4hlen Sie das Netzwerk in den Einstellungen von {wallet}.",notEnough:"Nicht genug",walletHas:"Ihr Wallet enth\xE4lt {amount} im Netzwerk {network}",shortBy:"Es fehlen {short} von {need}.",payFromBalance:"Mit dem Guthaben dieses Wallets zahlen",youHave:"Sie haben {amount}",topUp:"Oder laden Sie {symbol} auf dieses Wallet und kommen Sie zur\xFCck:",getToken:"{symbol} besorgen",connectUnavailable:"Diese Seite hat keine Wallet-Verbindung. Zahlen Sie stattdessen per QR-Code.",switchFailed:"{wallet} hat nicht zu {network} gewechselt. Wechseln Sie in der Wallet und versuchen Sie es erneut.",notAuthorized:"{wallet} hat dieses Konto hier nicht zugelassen. Pr\xFCfen Sie in {wallet}, ob dieses Konto mit dieser Website verbunden ist, und versuchen Sie es erneut.",walletFailed:"{wallet} hat die Anfrage nicht ausgef\xFChrt, und es wurde nichts gesendet. Versuchen Sie es erneut.",sentUnconfirmed:"{wallet} hat die Zahlung gesendet, sie ist aber noch nicht best\xE4tigt. Zahlen Sie nicht erneut: Diese Seite aktualisiert sich, sobald sie eingeht.",declined:"Sie haben die Anfrage in {wallet} abgelehnt.",tryAgain:"Erneut versuchen",failed:"Die Zahlung ist im Netzwerk {network} fehlgeschlagen. Es wurde nur die Netzwerkgeb\xFChr verbraucht; die Rechnung bleibt offen.",mismatch:"Diese Transaktion bezahlt die Rechnung nicht. Wenn Geld Ihr Wallet verlassen hat, wenden Sie sich an {merchant}.",mismatchTakenElsewhere:"Diese Transaktion bezahlt eine andere Rechnung. Wenn es Ihre Zahlung f\xFCr diese Rechnung war, wenden Sie sich mit dem Transaktions-Hash an {merchant}.",mismatchHeldElsewhere:"Diese Transaktion ist einer anderen Rechnung zugeordnet, die sie f\xFCr eine Erstattung an das sendende Wallet zur\xFCckh\xE4lt. F\xFCr diese Rechnung z\xE4hlt sie nicht. Wenn es Ihre Zahlung f\xFCr diese Rechnung war, wenden Sie sich mit dem Transaktions-Hash an {merchant}.",mismatchOtherWallet:"Dieser Transfer kam von einem Wallet, das diese Rechnung nicht best\xE4tigt hat, und bezahlt sie daher nicht. Wenn Geld Ihr Wallet verlassen hat, wenden Sie sich an {merchant}.",mismatchOtherWalletHeld:"Dieser Transfer kam von einem Wallet, das diese Rechnung nicht best\xE4tigt hat, und bezahlt sie daher nicht. {merchant} erstattet ihn an das sendende Wallet, und Sie k\xF6nnen diese Rechnung weiterhin mit dem Wallet bezahlen, das sie best\xE4tigt hat.",mismatchChargeHeld:"Diese Zahlung wurde zu einem fr\xFCheren Preis dieser Rechnung gesendet oder abgebucht und bezahlt sie daher nicht. {merchant} erstattet sie an Ihr Wallet, und Sie k\xF6nnen die Rechnung weiterhin bezahlen.",mismatchTooManyParts:"Diese Rechnung hat so viele Teilzahlungen erhalten, wie sie annimmt, daher bezahlt diese \xDCberweisung sie nicht. {merchant} erstattet sie an Ihr Wallet; senden Sie den gesamten Rest auf einmal.",payAgain:"Erneut zahlen",unsupported:"{wallet} kann diese Zahlung nicht ausf\xFChren.",wrongCluster:"{wallet} ist in einem anderen Netzwerk, daher wurde nichts bezahlt. Wechseln Sie zu {network} und zahlen Sie erneut.",screeningUnavailable:"Die Wallet-Pr\xFCfung ist derzeit nicht verf\xFCgbar.",retryLater:"In einer Minute erneut versuchen",noAnswer:"Der Zahlungsserver hat nicht geantwortet. Pr\xFCfen Sie Ihre Verbindung und versuchen Sie es erneut.",txTitle:"Zahlung an {merchant}",txDescription:"{amount} \xB7 {invoice}"},walletPrompt:{signIn:"In {wallet} signieren",confirmIn:"In {wallet} best\xE4tigen",switchIn:"Wechsel in {wallet} best\xE4tigen",signText:"Signieren Sie den Transfer von {amount} an {merchant} im Netzwerk {network}. Kein Gas: {merchant} zahlt die Netzwerkgeb\xFChr.",confirmText:"Best\xE4tigen Sie den Transfer von {amount} an {merchant} im Netzwerk {network}.",check:"Vor dem Signieren in {wallet} pr\xFCfen",amount:"Betrag",to:"An",network:"Netzwerk",priceLocked:"Preis festgelegt",notOpened:"Das Wallet-Fenster hat sich nicht ge\xF6ffnet?",tryAgain:"Erneut versuchen",stillWaiting:"Kein Fenster? \xD6ffnen Sie {wallet}: Die Anfrage wartet dort.",cancel:"Abbrechen",submitting:"Zahlung wird an Quasar \xFCbergeben\u2026"},payerProof:{title:"Wallet best\xE4tigen",text:"Best\xE4tigen Sie dieses Wallet: Das ist kostenlos und bewegt kein Geld.",summary:"Was Sie signieren",invoice:"Rechnung",merchant:"Verk\xE4ufer",amount:"Betrag",wallet:"Wallet",site:"Website",alreadyConfirmed:"Diese Rechnung wurde bereits von {wallet} best\xE4tigt. Wechseln Sie in Ihrem Wallet zu diesem Konto, dann entf\xE4llt die Signatur.",why:"Zahlungen von diesem Wallet z\xE4hlen f\xFCr diese Rechnung, sobald es signiert hat. Ihr Wallet zeigt eine Nachricht zum Signieren, keine Zahlung: keine Geb\xFChr, nichts verl\xE4sst das Wallet.",passkey:"{wallet} fragt zum Signieren eventuell nach Ihrem Passkey oder Fingerabdruck.",confirm:"In {wallet} best\xE4tigen",waiting:"Warten auf {wallet}\u2026",note:"Eine Signatur pro Wallet f\xFCr diese Rechnung: Ein neuer Preis, Token oder ein neues Netzwerk braucht keine weitere.",noteSmart:"Eine Signatur pro Wallet f\xFCr diese Rechnung: Ein neuer Preis oder Token braucht keine weitere; ein anderes Netzwerk braucht eine neue.",promptText:"Signieren Sie die Nachricht, die best\xE4tigt, dass dieses Wallet die Rechnung {invoice} von {merchant} bezahlt. Das ist kostenlos und bewegt kein Geld.",promptPasskey:"Best\xE4tigen Sie mit Ihrem Passkey in {wallet}. Damit wird die Nachricht signiert, die best\xE4tigt, dass dieses Wallet die Rechnung {invoice} von {merchant} bezahlt; das ist kostenlos und bewegt kein Geld.",declined:"Sie haben die Signatur in {wallet} abgelehnt. Sie ist kostenlos und bewegt kein Geld: Signieren Sie, um mit diesem Wallet zu zahlen, oder w\xE4hlen Sie ein anderes Wallet oder eine andere Methode.",unsupported:"{wallet} kann diese Best\xE4tigung nicht signieren. W\xE4hlen Sie ein anderes Wallet oder eine andere Methode.",failed:"{wallet} hat die Best\xE4tigung nicht signiert. Versuchen Sie es erneut.",invalid:"Die Signatur konnte nicht gepr\xFCft werden. Versuchen Sie es erneut oder zahlen Sie mit einem anderen Wallet.",unavailable:"Das Netzwerk kann die Signatur dieses Wallets gerade nicht pr\xFCfen. Versuchen Sie es in einer Minute erneut.",wrongNetwork:"Wechseln Sie in {wallet} zu {network} und best\xE4tigen Sie dann erneut.",tooManyWallets:"Zu viele Wallets haben diese Rechnung best\xE4tigt. Zahlen Sie mit einem davon oder bitten Sie {merchant} um eine neue Rechnung.",switchDeclined:"Sie haben den Wechsel zu {network} in {wallet} abgelehnt. Stimmen Sie zu, um diese Wallet zu best\xE4tigen, oder w\xE4hlen Sie eine andere Methode.",willSwitch:"Ihre Wallet ist auf {current}: Sie fragt zuerst nach dem Wechsel zu {network}.",confirmToPay:"Wallet best\xE4tigen, um zu zahlen",payNote:"F\xFCr die Zahlung mit diesem Wallet ist zuerst eine kostenlose Signatur n\xF6tig: Sie best\xE4tigt, dass das Wallet diese Rechnung bezahlt, und bewegt kein Geld.",signInRequest:"{wallet} zeigt dies m\xF6glicherweise als Anmeldeanfrage f\xFCr {site} an."},qr:{solanaTitle:"Mit einem Solana-Wallet scannen",solanaHint:"\xD6ffnen Sie Phantom, Solflare oder Backpack",restHint:"Scannen Sie mit dem Wallet, das zuerst bezahlt hat: {wallet}.",scanStep:"Code scannen (Solana Pay)",approveStep:"Den unten stehenden Betrag best\xE4tigen",solanaCode:"QR-Code einer Solana-Pay-Anfrage \xFCber {amount}",waiting:"Warten auf die Zahlung\u2026",exchangeWarning:"Senden Sie von Ihrem eigenen Wallet, nicht von einer B\xF6rse: Eine B\xF6rse entfernt die Zahlungsreferenz, und die Zahlung w\xFCrde auf eine manuelle Pr\xFCfung warten.",openInWallet:"In der Wallet-App \xF6ffnen",handoffTitle:"Auf dem Smartphone zahlen",handoffHint:"Scannen Sie mit der Smartphone-Kamera: Dieser Checkout \xF6ffnet sich dort, und Sie zahlen mit Ihrem mobilen Wallet.",handoffCode:"QR-Code, der diesen Checkout auf Ihrem Smartphone \xF6ffnet",handoffNote:"Diese Seite verfolgt die Zahlung und zeigt die Quittung an, sobald sie eingeht.",copyLink:"Link kopieren",back:"Zur\xFCck zu den Methoden"},confirm:{title:"Ihre Zahlung wird best\xE4tigt",hint:"Im Netzwerk {network} meist in unter zwei Minuten.",sent:"Gesendet",confirming:"Wird best\xE4tigt",confirmed:"Best\xE4tigt",paid:"Bezahlt",failed:"Fehlgeschlagen",network:"Netzwerk",amount:"Betrag",transaction:"Transaktion",lastTransfer:"Letzte \xDCberweisung",from:"Von",canClose:"Sie k\xF6nnen dieses Fenster schlie\xDFen: Die Zahlung l\xE4uft weiter, und der Verk\xE4ufer sendet die Quittung.",afterDeadline:"Ihre Zahlung wurde vor Fristende gesendet und wird best\xE4tigt.",pastDeadline:"Ihre Zahlung wird best\xE4tigt. Wenn sie nach Schlie\xDFung der Rechnung eingeht, nimmt {merchant} sie an oder erstattet sie.",invoicePayment:"Eine Zahlung f\xFCr diese Rechnung ist unterwegs. Warten Sie die Best\xE4tigung ab, bevor Sie erneut zahlen.",viewOnExplorer:"Im Explorer ansehen",copyHash:"Transaktion kopieren"},paid:{title:"Zahlung eingegangen",summary:"im Netzwerk {network} \xB7 {date}",receipt:"Quittung",receiptHint:"PDF der Zahlung, auch beim Verk\xE4ufer gespeichert",download:"Herunterladen",refunded:"Erstattet: {amount} {currency}",back:"Zur\xFCck zu {merchant}",returning:"Zur\xFCck zu {merchant} in {seconds} s",stay:"Hier bleiben",autoPayOffer:"Die n\xE4chsten Zeitr\xE4ume automatisch bezahlen",autoPayActive:"Automatische Zahlungen sind aktiv.",autoPayOff:"Deaktivieren",autoPayTurnedOff:"Automatische Zahlungen sind deaktiviert. {merchant} kann dieses Wallet nicht mehr belasten."},autoPay:{title:"Die n\xE4chsten Zeitr\xE4ume automatisch bezahlen?",subtitle:"Optional. Ohne automatische Zahlung erhalten Sie in jedem Zeitraum eine Rechnung und bezahlen sie selbst.",allow:"Sie erlauben {merchant} den Einzug von",limit:"bis zu {amount}",every:"alle {period}",from:"Von",to:"An",validUntil:"G\xFCltig bis",validUntilValue:"{date} oder bis Sie sie deaktivieren",collector:"Quasar sendet jede Abbuchung f\xFCr {merchant}, nur an das Wallet von {merchant} und innerhalb dieses Limits.",invoices:"Zu jeder Abbuchung erhalten Sie eine Rechnung und eine Quittung per E-Mail.",cap:"{merchant} kann in einem Zeitraum nicht mehr als dieses Limit einziehen.",turnOff:"Sie k\xF6nnen sie jederzeit auf der Seite einer dieser Rechnungen deaktivieren: Ihr Wallet sendet eine Transaktion. Um das Abonnement selbst zu k\xFCndigen, wenden Sie sich an {merchant}.",confirm:"Automatische Zahlungen erlauben",skip:"Jetzt nicht, ich bezahle jede Rechnung selbst",walletNote:"Ihr Wallet zeigt diese Erlaubnis (ERC-7715) an, bevor Sie sie best\xE4tigen.",approveIn:"In {wallet} best\xE4tigen",unavailable:"{wallet} kann automatische Zahlungen nicht erlauben.",smartAccountNote:"Automatische Zahlungen erfordern ein Smart Account. {wallet} fragt zuerst nach dem Wechsel: eine Transaktion auf {network}, deren Netzwerkgeb\xFChr Sie zahlen. Ihre Adresse bleibt gleich.",smartAccountPrompt:"{wallet} fragt, ob dieses Konto zu einem Smart Account wechseln soll. Adresse und Guthaben bleiben gleich.",smartAccountNeeded:"Automatische Zahlungen erfordern ein Smart Account. \xD6ffnen Sie in {wallet} die Details dieses Kontos, aktivieren Sie das Smart Account f\xFCr {network} und versuchen Sie es erneut.",notGranted:"{wallet} hat die Berechtigung nicht erteilt. Versuchen Sie es erneut oder zahlen Sie jede Rechnung selbst.",invalid:"Diese Berechtigung kann nicht verwendet werden. Versuchen Sie es erneut oder zahlen Sie jede Rechnung selbst."},autoPayOff:{title:"Automatische Zahlungen deaktivieren?",subtitle:"{merchant} kann dieses Wallet dann nicht mehr belasten. Das Abonnement l\xE4uft weiter: Sp\xE4tere Zeitr\xE4ume kommen als Rechnungen, die Sie selbst bezahlen. Um es zu k\xFCndigen, wenden Sie sich an {merchant}.",wallet:"Wallet",allowed:"Derzeit erlaubt",fee:"Ihr Wallet sendet eine Transaktion im Netzwerk {network}, und Sie zahlen die Netzwerkgeb\xFChr.",confirm:"In {wallet} deaktivieren",checkAgain:"Erneut pr\xFCfen",keep:"Aktiv lassen",connect:"Dieses Wallet verbinden",otherWallet:"Nur das Wallet, das sie erlaubt hat, {wallet}, kann sie deaktivieren.",useThisWallet:"Stattdessen diese Wallet verwenden",inWallet:"In {wallet} best\xE4tigen\u2026",waiting:"Warten auf das Netzwerk\u2026",notYet:"Das Netzwerk zeigt es noch nicht an. Wenn Ihr Wallet die Transaktion gesendet hat, pr\xFCfen Sie in einer Minute erneut.",unsupported:"{wallet} kann diese Transaktion nicht senden."},outcome:{underpaidTitle:"Ein Teil der Zahlung ist eingegangen",underpaidText:"{received} von {total} eingegangen.",underpaidRest:"Senden Sie den Rest, {rest}, vom selben Wallet im Netzwerk {network}.",underpaidNote:"Bis der Rest eingeht, gilt die Rechnung f\xFCr {merchant} als nicht vollst\xE4ndig bezahlt. Sie kann bis {date} bezahlt werden.",underpaidClosed:"Der Rest dieser Rechnung kann hier nicht mehr bezahlt werden.",underpaidClosedRefund:"Nach {date} kann {merchant} den eingegangenen Betrag erstatten.",underpaidRateEnded:"Der Kurs dieser Rechnung ist abgelaufen, daher wartet ein jetzt gezahlter Rest darauf, dass {merchant} ihn annimmt.",underpaidBlocked:"Dieses Wallet hat die Wallet-Pr\xFCfung nicht bestanden und kann den Rest daher nicht bezahlen. Wenden Sie sich an {merchant}.",payRestFirstWallet:"Nur das Wallet, das zuerst bezahlt hat ({wallet}), kann den Rest bezahlen. Verbinden Sie dieses Wallet, um zu zahlen.",payRest:"Rest bezahlen",heldTitle:"Zahlung eingegangen, {merchant} pr\xFCft sie",heldScreening:"{merchant} pr\xFCft die Zahlung, bevor die Bestellung best\xE4tigt wird.",heldLate:"Die Zahlung ging nach Schlie\xDFung der Rechnung ein. {merchant} nimmt sie an oder erstattet sie.",heldOverpaid:"Sie haben mehr als den Rechnungsbetrag gesendet. {merchant} best\xE4tigt die Bestellung oder erstattet die Differenz an Ihr Wallet.",heldQuoteExpired:"Die Zahlung ging nach Ablauf der Preisbindung ein. {merchant} nimmt sie an oder erstattet sie.",heldNote:"Der Verk\xE4ufer meldet sich, falls etwas ben\xF6tigt wird.",refundedTitle:"Erstattet",refundedText:"{merchant} hat f\xFCr diese Rechnung {amount} {currency} erstattet.",expiredTitle:"Diese Rechnung ist abgelaufen",expiredText:"Sie konnte bis {date} bezahlt werden. Bitten Sie {merchant} um eine neue; es wurde nichts berechnet.",expiredPartText:"Sie konnte bis {date} bezahlt werden. Ein Teil der Zahlung ist eingegangen: {amount}.",expiredPartNoAmount:"Sie konnte bis {date} bezahlt werden. Ein Teil der Zahlung ist eingegangen.",closedPartText:"{merchant} hat diese Rechnung geschlossen. {amount} der Zahlung sind eingegangen.",expiredPartRefund:"{merchant} kann ihn an das zahlende Wallet erstatten; wenden Sie sich an {merchant}.",expiredNote:"Eine nach Fristende gesendete Zahlung wird f\xFCr den Verk\xE4ufer zur\xFCckgehalten, der sie erstattet oder annimmt.",expiredWhileConfirming:"Die Rechnung wurde geschlossen, w\xE4hrend Ihre Zahlung best\xE4tigt wurde. Wenn sie eingeht, wird sie erfasst und {merchant} angezeigt, der sie annimmt oder erstattet.",expiredAfterQr:"Wenn Sie per QR-Code bezahlt haben, nimmt {merchant} die Zahlung bei Eingang an oder erstattet sie.",expiredUnconfirmed:"Ihre Zahlung konnte noch nicht best\xE4tigt werden. Pr\xFCfen Sie Ihr Wallet: Wenn die Zahlung es verlassen hat, pr\xFCft Quasar sie 24 Stunden lang erneut. Wenn sie eingeht, wird sie erfasst und {merchant} angezeigt, der sie annimmt oder erstattet.",unconfirmedTitle:"Wir konnten Ihre Zahlung nicht best\xE4tigen",unconfirmedText:"Pr\xFCfen Sie Ihr Wallet, bevor Sie erneut zahlen: Ihre Zahlung k\xF6nnte noch unterwegs sein.",unconfirmedNote:"Quasar pr\xFCft Ihre Zahlung 24 Stunden lang erneut. Wenn sie eingeht, wird sie erfasst und {merchant} angezeigt.",unconfirmedContact:"Quasar pr\xFCft diese Zahlung nicht erneut. Wenn sie Ihr Wallet verlassen hat, wenden Sie sich mit dem Transaktions-Hash an {merchant}.",unconfirmedNotReceived:"Quasar hat diese Zahlung nicht erhalten. Wenn sie Ihr Wallet verlassen hat, wenden Sie sich mit dem Transaktions-Hash an {merchant}.",unconfirmedClosed:"Quasar hat diese Zahlung innerhalb von 24 Stunden nicht im Netzwerk gefunden und pr\xFCft sie nicht mehr. Wenn sie Ihr Wallet verlassen hat, wenden Sie sich mit dem Transaktions-Hash an {merchant}.",unconfirmedRetrying:"Diese Seite \xFCbergibt Ihre Zahlung weiterhin an Quasar. Lassen Sie sie ge\xF6ffnet, bis die Zahlung hier erscheint.",unconfirmedInvoiceFull:"Diese Rechnung nimmt keine weiteren Zahlungen an, und Quasar verfolgt diese Zahlung nicht. Zahlen Sie nicht erneut; wenn sie Ihr Wallet verlassen hat, wenden Sie sich mit dem Transaktions-Hash an {merchant}.",unconfirmedTakenElsewhere:"Diese Transaktion wurde zuerst f\xFCr eine andere Rechnung \xFCbergeben. Quasar schreibt sie der Rechnung gut, die das sendende Wallet best\xE4tigt hat, und diese Seite zeigt das Ergebnis, w\xE4hrend sie die Zahlung verfolgt. Zahlen Sie nicht erneut; wenn Ihre Zahlung hier nicht erscheint, wenden Sie sich mit dem Transaktions-Hash an {merchant}.",unconfirmedUnmined:"Quasar liest diese Zahlung eine Woche lang, nachdem es von ihr erfahren hat, und erfasst sie, wenn sie durchgeht. Pr\xFCfen Sie Ihre Wallet; wenn sie abgegangen ist und Sie Hilfe brauchen, wenden Sie sich mit diesem Transaktions-Hash an {merchant}.",unconfirmedNonceSpent:"Ihre Wallet hat die Nummer dieser Transaktion f\xFCr eine andere verwendet, die Quasar nicht finden konnte. Es kann also Geld aus Ihrer Wallet abgeflossen sein. Zahlen Sie vorerst nicht erneut. Wenn Sie sie beschleunigt haben, geben Sie unten ihren Hash an, sonst wenden Sie sich mit diesem Transaktions-Hash an {merchant}.",unconfirmedSettlementFailed:"Das Netzwerk hat Ihre Zahlung best\xE4tigt, aber Quasar hat sie nicht erfasst. Zahlen Sie nicht erneut; wenden Sie sich mit dem Transaktions-Hash an {merchant}.",unconfirmedSettlementRetrying:"Das Netzwerk hat Ihre Zahlung best\xE4tigt, aber Quasar hat sie noch nicht erfasst. Quasar versucht es t\xE4glich erneut, 30 Tage lang ab Kenntnis der Zahlung. Zahlen Sie nicht erneut; wenden Sie sich mit dem Transaktions-Hash an {merchant}.",followingUntil:"Diese Seite verfolgt die Zahlung bis {time}. Laden Sie sie danach neu, um das Ergebnis zu sehen.",nameHash:"Zeigt Ihr Wallet eine andere Transaktion?",nameHashField:"Transaktions-Hash",nameHashSend:"Diese Transaktion pr\xFCfen",nameHashInvalid:"Das ist keine Transaktion dieses Netzwerks.",nameHashRefused:"Quasar konnte diese Transaktion nicht annehmen. Wenden Sie sich mit ihrem Hash an den Verk\xE4ufer.",unconfirmedPayAgain:"Die Zahlung hat mein Wallet nicht verlassen",cancelledTitle:"Diese Rechnung wurde storniert",cancelledText:"{merchant} hat sie storniert; es wurde nichts berechnet.",cancelledWhilePaying:"{merchant} hat sie storniert. Wenn Ihre Zahlung eingeht, wird sie erfasst und {merchant} angezeigt, der sie annimmt oder erstattet.",cancelledAfterQr:"{merchant} hat sie storniert. Wenn Sie per QR-Code bezahlt haben, nimmt {merchant} die Zahlung bei Eingang an oder erstattet sie.",replacedTitle:"{merchant} hat diese Rechnung korrigiert",replacedText:"{number} ersetzt sie. Diese Rechnung kann nicht mehr bezahlt werden.",replacedPaid:"Bereits bezahlt? Ihre Zahlung wurde auf die neue Rechnung \xFCbertragen.",openReplacement:"{number} \xF6ffnen",blockedTitle:"Dieses Wallet kann diese Rechnung nicht bezahlen",blockedText:"Die Wallet-Pr\xFCfung wurde nicht bestanden. Es wurde nichts gesendet. Verbinden Sie ein anderes Wallet oder wenden Sie sich an {merchant}.",useAnotherWallet:"Anderes Wallet verwenden",contact:"{merchant} kontaktieren",contactSubject:"Rechnung {number}"},leave:{title:"Checkout verlassen?",text:"Es wurde noch nichts gesendet. Die Rechnung bleibt bis {date} offen: \xD6ffnen Sie sie \xFCber den Link in Ihrer E-Mail oder auf der Website des Verk\xE4ufers erneut.",textNoDate:"Es wurde noch nichts gesendet. Die Rechnung bleibt offen: \xD6ffnen Sie sie \xFCber den Link in Ihrer E-Mail oder auf der Website des Verk\xE4ufers erneut.",price:"Der festgelegte Preis wird freigegeben; wenn Sie zur\xFCckkehren, erhalten Sie einen neuen.",stay:"Bleiben und zahlen",leave:"Verlassen"},summary:{test:"Test",testHint:"Testrechnung: Sie wird in einem Testnetzwerk bezahlt.",sellerDetails:"Angaben zum Verk\xE4ufer",registration:"Registernummer",taxId:"USt-IdNr. / Steuernummer",terms:"AGB",refundPolicy:"Erstattungsrichtlinie",privacy:"Datenschutz",sellerRole:"{seller} ist der Verk\xE4ufer. Quasar ist die Zahlungssoftware: Quasar verwahrt Ihre Mittel nie und ist nicht Partei dieses Kaufvertrags.",payWithin:"Zahlungsfrist",refundAfter:"Erstattung m\xF6glich nach",until:"bis {date}",minutesLeft:"Noch {minutes} Minuten zum Bezahlen",oneMinuteLeft:"Noch 1 Minute zum Bezahlen",invoice:"Rechnung",quantity:"{quantity} \xD7 {price}",subtotal:"Zwischensumme",taxRate:"USt. {rate}\xA0%",tax:"USt.",total:"Gesamt",secured:"Gesichert durch Quasar",help:"Hilfe",compact:"{count} Positionen \xB7 inkl. USt. {tax}",compactOne:"{count} Position \xB7 inkl. USt. {tax}",compactNoTax:"{count} Positionen",compactNoTaxOne:"{count} Position",showOrder:"Details"},refund:{button:"Erstatten",title:"Erstattung f\xFCr {invoice}",amountTitle:"Was erstattet werden soll",modeFiat:"Ein Betrag",modeFiatText:"In {currency}, zum aktuellen Kurs umgerechnet",modeExact:"Alles Erhaltene",modeExactText:"Die Token der Zahlung, so wie sie sind",amount:"Betrag, {currency}",amountHint:"Bis zu {amount}",reason:"Grund (optional)",continue:"Weiter",movedTitle:"Der Preis hat sich ge\xE4ndert",movedText:"Der Preis von {symbol} hat sich seit der Zahlung ge\xE4ndert, daher erfordert dieser Betrag eine andere Anzahl Token.",movedSend:"Diese Erstattung sendet",movedAtPayment:"Zum Kurs der Zahlung",movedReceived:"Die Zahlung brachte",movedExact:"Um die Token so zur\xFCckzugeben, wie sie eingegangen sind, gehen Sie zur\xFCck und w\xE4hlen Sie \u201E{exact}\u201C.",movedContinue:"Mit diesem Betrag fortfahren",movedBack:"Zur\xFCck",requesting:"Erstattung wird bei Quasar angefragt\u2026",connectTitle:"Wallet verbinden",connectText:"Die Erstattung l\xE4uft \xFCber {network}, das Netzwerk der Zahlung. Jedes Wallet, das dort {symbol} h\xE4lt, kann sie senden.",connect:"Wallet verbinden",connectUnavailable:"Diese Seite kann kein Wallet verbinden. Senden Sie die Erstattung aus Ihrem Wallet und erfassen Sie sie anschlie\xDFend.",confirmTitle:"Erstattung best\xE4tigen",send:"Senden",to:"An",thePayer:"den Zahler",theSender:"den Absender dieses Transfers",from:"Von",balance:"Enth\xE4lt {amount}",networkFee:"Netzwerkgeb\xFChr",feeEstimate:"\u2248 {amount} \xB7 aus Ihrem Wallet",sendRefund:"Erstattung senden",switchTo:"Zu {network} wechseln",walletTitle:"In {wallet} best\xE4tigen",walletText:"Best\xE4tigen Sie den Transfer von {amount} im Netzwerk {network}.",switchTitle:"Wechsel in {wallet} best\xE4tigen",submitting:"Erstattung wird an Quasar \xFCbergeben\u2026",onItsWay:"Unterwegs",status:"Status",pending:"Ausstehend",transaction:"Transaktion",network:"Netzwerk",waiting:"{network} \xB7 Warten auf Best\xE4tigung",canClose:"Sie k\xF6nnen dieses Fenster schlie\xDFen: Die Rechnung zeigt, wie die Erstattung verl\xE4uft.",refunded:"Erstattet",creditNote:"Rechnungskorrektur",done:"Fertig",failedShort:"Ein Teil der R\xFCckerstattung hat den K\xE4ufer erreicht. Senden Sie sie erneut: Es geht nur der fehlende Betrag.",failedTitle:"Die Erstattung ist fehlgeschlagen",failedWithdrawnTitle:"Sie haben die Erstattung zur\xFCckgezogen",failedCancelledTitle:"Sie haben die Erstattung abgebrochen",failedByHand:"Die Transaktion dieser Erstattung kann sie nicht abschlie\xDFen: Pr\xFCfen Sie sie von Hand anhand der Erstattungen der Rechnung.",failedText:"Die Transaktion ist im Netzwerk {network} fehlgeschlagen; es wurde nur die Netzwerkgeb\xFChr verbraucht. Senden Sie die Erstattung erneut.",failedFromBuyer:"Sie wurde von dem Wallet gesendet, an das sie zur\xFCckgehen sollte, oder von einem Wallet, das die Rechnung bezahlt hat, daher ging nichts zur\xFCck. Senden Sie sie erneut von einem anderen Wallet.",failedNotFound:"Die Transaktion wurde nicht rechtzeitig gefunden oder wurde ersetzt: Sie kann trotzdem angekommen sein.",failedDropped:"Die Transaktion wurde im Netzwerk nicht gefunden: Sie kann trotzdem angekommen sein.",failedTooEarly:"Die Transaktion ist \xE4lter als die Zahlung und geh\xF6rt nicht zu dieser R\xFCckerstattung.",failedNoTransfer:"Die Transaktion hat nichts an das Ziel-Wallet gesendet, was Quasar sehen k\xF6nnte.",failedWithdrawn:"Sie haben sie vor dem Senden zur\xFCckgezogen.",failedCancelling:"Sie haben sie in Ihrer Wallet abgebrochen. Sie kann erneut gesendet werden, sobald der Abbruch endg\xFCltig ist, meist nach wenigen Minuten.",failedCancelled:"Sie haben sie in Ihrer Wallet abgebrochen, es wurde also nichts gesendet. Sie k\xF6nnen sie erneut senden.",failedResendConfirmed:"Sie haben best\xE4tigt, dass sie Ihr Wallet nicht verlassen hat: Sie kann erneut gesendet werden.",failedHeldNote:"Der Transfer bleibt einbehalten. Schlie\xDFen Sie dieses Fenster: In seiner Zeile steht, wie es weitergeht.",notSent:"Nicht gesendet",notEnough:"Nicht genug {symbol} auf {address}: Das Guthaben betr\xE4gt {balance}.",declined:"Sie haben die Anfrage in {wallet} abgelehnt.",unsupported:"{wallet} kann diese Erstattung nicht senden.",wrongNetwork:"{wallet} ist in einem anderen Netzwerk, daher wurde nichts gesendet. Wechseln Sie zu {network} und senden Sie erneut.",failed:"Das Wallet hat die Erstattung nicht gesendet. Versuchen Sie es erneut.",noRecipient:"Das Wallet des Zahlers ist nicht bekannt, daher kann diese Erstattung nicht von hier gesendet werden.",unreachable:"Quasar antwortet nicht, daher wurde nichts gesendet. Versuchen Sie es gleich noch einmal.",refusedAmount:"Der Betrag ist h\xF6her als das, was noch zu erstatten ist.",refusedNotRefundable:"Diese Zahlung kann nicht mehr erstattet werden.",refusedWhole:"Eine zur\xFCckgehaltene \xDCberweisung wird nur vollst\xE4ndig zur\xFCckgegeben.",refusedBlocked:"Eine Compliance-Pr\xFCfung sperrt das Wallet f\xFCr die Erstattung. Es kann nichts dorthin gesendet werden.",refusedNotWaiting:"Diese Erstattung wartet nicht mehr auf eine Transaktion. Es wurde nichts gesendet.",refusedMayHaveLanded:"Eine fr\xFChere Transaktion dieser Erstattung k\xF6nnte durchgegangen sein. Pr\xFCfen Sie sie, bevor Sie erneut anfragen.",refusedPrice:"Der Preis kann gerade nicht gelesen werden. Versuchen Sie es gleich noch einmal.",refusedTestOnly:"Dieser Knoten akzeptiert nur Testnetze.",refusedOther:"Quasar hat diese Erstattung abgelehnt. Es wurde nichts gesendet.",slowNote:"Quasar sieht diese Transaktion noch nicht im Netzwerk. Wenn Ihr Wallet einen anderen Hash zeigt, weil sie dort beschleunigt oder abgebrochen wurde, erfassen Sie diesen.",nothingSent:"Es wurde nichts gesendet: Die Erstattung wartet auf ihre Transaktion.",notHandedOver:"Die Erstattung wurde gesendet, aber Quasar hat ihre Transaktion noch nicht \xFCbernommen. \xDCbergeben Sie sie erneut: Es wird nichts doppelt gesendet.",handOver:"Erneut \xFCbergeben",record:"Erstattung erfassen",recordHint:"Auf anderem Weg gesendet? Erfassen Sie die Erstattung mit ihrer Transaktion: Quasar pr\xFCft sie on-chain.",close:"Schlie\xDFen",txTitle:"Erstattung f\xFCr {invoice}",txDescription:"{amount} an den Zahler",txDescriptionSender:"{amount} an den Absender des Transfers"}};export{e as deLabels};
@@ -0,0 +1 @@
1
+ 'use strict';var e={common:{close:"Schlie\xDFen",retry:"Erneut versuchen",loading:"Der Checkout wird geladen\u2026",dialogTitle:"An {merchant} zahlen"},error:{title:"Der Checkout kann nicht ge\xF6ffnet werden",notFound:"Dieser Zahlungslink ist falsch oder funktioniert nicht mehr. Bitten Sie den Verk\xE4ufer um einen neuen.",generic:"Etwas ist schiefgelaufen. Versuchen Sie es gleich noch einmal."},steps:{details:"Angaben",method:"Methode",pay:"Zahlen",confirm:"Best\xE4tigung",autoPay:"Automatisch zahlen",progress:"Schritt {current} von {total}: {name}",label:"Zahlungsschritte"},language:{button:"Sprache: {language}",title:"Sprache",note:"Auch Ihre Rechnung und Quittung erscheinen in dieser Sprache.",noteAfterPaid:"Ihre Quittung bleibt in der Sprache, in der sie ausgestellt wurde."},method:{title:"Zahlungsart w\xE4hlen",subtitle:"Wenn Sie fortfahren, wird der Preis f\xFCr {minutes} Minuten festgelegt.",token:"Token",networks:"{count} Netzwerke",network:"{symbol}-Netzwerk",yourWallet:"Ihr Wallet",popular:"Beliebt",noGasFee:"Keine Gasgeb\xFChr",buyerPaysGas:"Sie zahlen die Netzwerkgeb\xFChr",discount:"\u2212{percent}\xA0%",markup:"+{percent}\xA0%",payWith:"Zahlen mit",wallet:"Wallet",walletHint:"MetaMask, Rabby, Phantom\u2026",qr:"QR-Code",qrHint:"Wallet auf dem Smartphone",continue:"Weiter",quoting:"Preis wird ermittelt\u2026",agreeBoth:"Wenn Sie fortfahren, stimmen Sie den {terms} und der {refundPolicy} des Verk\xE4ufers zu.",agreeOne:"Wenn Sie fortfahren, stimmen Sie den Bedingungen des Verk\xE4ufers zu: {link}.",consentRequired:"Zum Fortfahren erforderlich.",noMethods:"Diese Rechnung kann derzeit mit keiner Methode bezahlt werden. Wenden Sie sich an den Verk\xE4ufer.",methodUnavailable:"Diese Seite kann diese Methode nicht annehmen. W\xE4hlen Sie eine andere.",tooManyPayers:"Zu viele Wallets haben diese Rechnung versucht. Bitten Sie {merchant} um einen neuen Zahlungslink.",tooManyPayments:"Diese Rechnung kann hier keine Zahlung mehr annehmen. Wende dich an {merchant}.",nativeFromSmartWallet:"Eine Smart Wallet kann nicht mit dieser Coin bezahlen: W\xE4hle einen Token.",payerNotExpected:"Der Verk\xE4ufer m\xF6chte, dass diese Rechnung von einem anderen Wallet bezahlt wird. Verbinden Sie das gew\xFCnschte Wallet.",rateLimited:"Zu viele Versuche. Warten Sie eine Minute und versuchen Sie es erneut.",paymentFailed:"Die Zahlung ist fehlgeschlagen. Nur die Netzwerkgeb\xFChr wurde verbraucht; die Rechnung bleibt offen.",restSameMethod:"Der Rest wird im selben Token und im selben Netzwerk bezahlt wie der erste Teil.",priceUnavailable:"Der Preis dieser Methode kann gerade nicht ermittelt werden. W\xE4hlen Sie eine andere Methode oder versuchen Sie es in einer Minute erneut."},buyer:{title:"Ihre Angaben",subtitle:"Der Verk\xE4ufer ben\xF6tigt sie f\xFCr die Rechnung und die Quittung.",email:"E-Mail",name:"Name",companyName:"Unternehmen",addressLine1:"Adresse",addressLine2:"Adresse, Zeile 2",postalCode:"Postleitzahl",city:"Stadt",country:"Land",chooseCountry:"Land w\xE4hlen",taxId:"USt-IdNr. oder Steuernummer",registrationNumber:"Registernummer",optional:"optional",companyInvoice:"Ich ben\xF6tige eine Rechnung f\xFCr mein Unternehmen",required:"Pflichtfeld",invalidEmail:"Geben Sie eine E-Mail-Adresse wie name@example.com ein",invalidCountry:"W\xE4hlen Sie ein Land aus der Liste",refused:"Ihre Angaben konnten nicht gespeichert werden. Pr\xFCfen Sie sie und versuchen Sie es erneut.",continue:"Weiter"},pay:{title:"Zahlen",walletLine:"{address} \xB7 {network}",change:"\xC4ndern",changeWallet:"Wallet wechseln",youSend:"Sie senden",youSendRest:"Sie senden den Restbetrag",copyAmount:"Betrag kopieren",copied:"Kopiert",onNetwork:"im Netzwerk {network}",fiatValue:"= {amount} {currency}",priceLocked:"Preis festgelegt f\xFCr {time}",refreshPrice:"Preis aktualisieren",priceEnding:"Dieser Preis l\xE4uft in {time} ab. Beibehalten?",keepPrice:"Preis beibehalten \xB7 +{minutes} Min.",priceExpired:"Die Preisbindung ist abgelaufen.",newPrice:"Neuen Preis abrufen",rate:"Kurs",rateValue:"1 {symbol} = {price} {currency}",networkFee:"Netzwerkgeb\xFChr",merchantPaysGas:"{merchant} zahlt \xB7 Sie signieren nur",gasEstimate:"\u2248 {amount} \xB7 aus Ihrem Wallet",gasFromWallet:"Wird aus Ihrem Wallet bezahlt",to:"An",invoiceTotal:"Rechnungsbetrag",invoiceRest:"Restbetrag der Rechnung",backFromRest:"Zur\xFCck",restRateUntil:"Dieser Kurs gilt bis {time}. Eine sp\xE4tere Zahlung wartet darauf, dass {merchant} sie annimmt.",restRateEnded:"Dieser Kurs wurde fr\xFCher festgelegt, daher wartet diese Zahlung darauf, dass {merchant} sie annimmt.",restTimeLeft:"Verbleibende Zeit zum Senden: {time}",transferFee:"Token-Transfergeb\xFChr {percent}\xA0%",merchantReceives:"{merchant} erh\xE4lt",transferFeeNote:"Der Smart Contract des Tokens beh\xE4lt bei jedem Transfer eine Geb\xFChr ein. Deshalb senden Sie etwas mehr, damit die Rechnung vollst\xE4ndig bezahlt ist.",signToPay:"Signieren und {amount} zahlen",payAmount:"{amount} zahlen",switchTo:"Zu {network} wechseln",connect:"Wallet verbinden",back:"Zur\xFCck zu den Methoden",payWithGas:"Stattdessen mit Gas zahlen",payGasless:"{merchant} das Gas zahlen lassen",disclaimer:"Zahlungen gehen direkt an {merchant} und k\xF6nnen nicht r\xFCckg\xE4ngig gemacht werden; Erstattungen kommen vom Verk\xE4ufer.",disclaimerScreening:"{merchant} pr\xFCft zahlende Wallets anhand von Sanktionslisten und, soweit verf\xFCgbar, anderen Risikosignalen.",wrongNetwork:"Falsches Netzwerk",wrongNetworkText:"Ihr Wallet ist im Netzwerk {current}. Diese Zahlung l\xE4uft \xFCber {network}.",switchHint:"Ihr Wallet bittet Sie, den Wechsel zu best\xE4tigen.",solanaNetwork:"\xDCber {network} zahlen",solanaNetworkText:"Solana-Wallets w\xE4hlen ihr Netzwerk selbst: Stellen Sie Ihr Wallet vor der Zahlung auf {network} um.",solanaHintPhantom:"In Phantom: Einstellungen \u203A Entwicklereinstellungen \u203A Testnet-Modus, dann {network}.",solanaHintSolflare:"In Solflare: Einstellungen \u203A Allgemein \u203A Netzwerk \u203A {cluster}.",solanaHintOther:"W\xE4hlen Sie das Netzwerk in den Einstellungen von {wallet}.",notEnough:"Nicht genug",walletHas:"Ihr Wallet enth\xE4lt {amount} im Netzwerk {network}",shortBy:"Es fehlen {short} von {need}.",payFromBalance:"Mit dem Guthaben dieses Wallets zahlen",youHave:"Sie haben {amount}",topUp:"Oder laden Sie {symbol} auf dieses Wallet und kommen Sie zur\xFCck:",getToken:"{symbol} besorgen",connectUnavailable:"Diese Seite hat keine Wallet-Verbindung. Zahlen Sie stattdessen per QR-Code.",switchFailed:"{wallet} hat nicht zu {network} gewechselt. Wechseln Sie in der Wallet und versuchen Sie es erneut.",notAuthorized:"{wallet} hat dieses Konto hier nicht zugelassen. Pr\xFCfen Sie in {wallet}, ob dieses Konto mit dieser Website verbunden ist, und versuchen Sie es erneut.",walletFailed:"{wallet} hat die Anfrage nicht ausgef\xFChrt, und es wurde nichts gesendet. Versuchen Sie es erneut.",sentUnconfirmed:"{wallet} hat die Zahlung gesendet, sie ist aber noch nicht best\xE4tigt. Zahlen Sie nicht erneut: Diese Seite aktualisiert sich, sobald sie eingeht.",declined:"Sie haben die Anfrage in {wallet} abgelehnt.",tryAgain:"Erneut versuchen",failed:"Die Zahlung ist im Netzwerk {network} fehlgeschlagen. Es wurde nur die Netzwerkgeb\xFChr verbraucht; die Rechnung bleibt offen.",mismatch:"Diese Transaktion bezahlt die Rechnung nicht. Wenn Geld Ihr Wallet verlassen hat, wenden Sie sich an {merchant}.",mismatchTakenElsewhere:"Diese Transaktion bezahlt eine andere Rechnung. Wenn es Ihre Zahlung f\xFCr diese Rechnung war, wenden Sie sich mit dem Transaktions-Hash an {merchant}.",mismatchHeldElsewhere:"Diese Transaktion ist einer anderen Rechnung zugeordnet, die sie f\xFCr eine Erstattung an das sendende Wallet zur\xFCckh\xE4lt. F\xFCr diese Rechnung z\xE4hlt sie nicht. Wenn es Ihre Zahlung f\xFCr diese Rechnung war, wenden Sie sich mit dem Transaktions-Hash an {merchant}.",mismatchOtherWallet:"Dieser Transfer kam von einem Wallet, das diese Rechnung nicht best\xE4tigt hat, und bezahlt sie daher nicht. Wenn Geld Ihr Wallet verlassen hat, wenden Sie sich an {merchant}.",mismatchOtherWalletHeld:"Dieser Transfer kam von einem Wallet, das diese Rechnung nicht best\xE4tigt hat, und bezahlt sie daher nicht. {merchant} erstattet ihn an das sendende Wallet, und Sie k\xF6nnen diese Rechnung weiterhin mit dem Wallet bezahlen, das sie best\xE4tigt hat.",mismatchChargeHeld:"Diese Zahlung wurde zu einem fr\xFCheren Preis dieser Rechnung gesendet oder abgebucht und bezahlt sie daher nicht. {merchant} erstattet sie an Ihr Wallet, und Sie k\xF6nnen die Rechnung weiterhin bezahlen.",mismatchTooManyParts:"Diese Rechnung hat so viele Teilzahlungen erhalten, wie sie annimmt, daher bezahlt diese \xDCberweisung sie nicht. {merchant} erstattet sie an Ihr Wallet; senden Sie den gesamten Rest auf einmal.",payAgain:"Erneut zahlen",unsupported:"{wallet} kann diese Zahlung nicht ausf\xFChren.",wrongCluster:"{wallet} ist in einem anderen Netzwerk, daher wurde nichts bezahlt. Wechseln Sie zu {network} und zahlen Sie erneut.",screeningUnavailable:"Die Wallet-Pr\xFCfung ist derzeit nicht verf\xFCgbar.",retryLater:"In einer Minute erneut versuchen",noAnswer:"Der Zahlungsserver hat nicht geantwortet. Pr\xFCfen Sie Ihre Verbindung und versuchen Sie es erneut.",txTitle:"Zahlung an {merchant}",txDescription:"{amount} \xB7 {invoice}"},walletPrompt:{signIn:"In {wallet} signieren",confirmIn:"In {wallet} best\xE4tigen",switchIn:"Wechsel in {wallet} best\xE4tigen",signText:"Signieren Sie den Transfer von {amount} an {merchant} im Netzwerk {network}. Kein Gas: {merchant} zahlt die Netzwerkgeb\xFChr.",confirmText:"Best\xE4tigen Sie den Transfer von {amount} an {merchant} im Netzwerk {network}.",check:"Vor dem Signieren in {wallet} pr\xFCfen",amount:"Betrag",to:"An",network:"Netzwerk",priceLocked:"Preis festgelegt",notOpened:"Das Wallet-Fenster hat sich nicht ge\xF6ffnet?",tryAgain:"Erneut versuchen",stillWaiting:"Kein Fenster? \xD6ffnen Sie {wallet}: Die Anfrage wartet dort.",cancel:"Abbrechen",submitting:"Zahlung wird an Quasar \xFCbergeben\u2026"},payerProof:{title:"Wallet best\xE4tigen",text:"Best\xE4tigen Sie dieses Wallet: Das ist kostenlos und bewegt kein Geld.",summary:"Was Sie signieren",invoice:"Rechnung",merchant:"Verk\xE4ufer",amount:"Betrag",wallet:"Wallet",site:"Website",alreadyConfirmed:"Diese Rechnung wurde bereits von {wallet} best\xE4tigt. Wechseln Sie in Ihrem Wallet zu diesem Konto, dann entf\xE4llt die Signatur.",why:"Zahlungen von diesem Wallet z\xE4hlen f\xFCr diese Rechnung, sobald es signiert hat. Ihr Wallet zeigt eine Nachricht zum Signieren, keine Zahlung: keine Geb\xFChr, nichts verl\xE4sst das Wallet.",passkey:"{wallet} fragt zum Signieren eventuell nach Ihrem Passkey oder Fingerabdruck.",confirm:"In {wallet} best\xE4tigen",waiting:"Warten auf {wallet}\u2026",note:"Eine Signatur pro Wallet f\xFCr diese Rechnung: Ein neuer Preis, Token oder ein neues Netzwerk braucht keine weitere.",noteSmart:"Eine Signatur pro Wallet f\xFCr diese Rechnung: Ein neuer Preis oder Token braucht keine weitere; ein anderes Netzwerk braucht eine neue.",promptText:"Signieren Sie die Nachricht, die best\xE4tigt, dass dieses Wallet die Rechnung {invoice} von {merchant} bezahlt. Das ist kostenlos und bewegt kein Geld.",promptPasskey:"Best\xE4tigen Sie mit Ihrem Passkey in {wallet}. Damit wird die Nachricht signiert, die best\xE4tigt, dass dieses Wallet die Rechnung {invoice} von {merchant} bezahlt; das ist kostenlos und bewegt kein Geld.",declined:"Sie haben die Signatur in {wallet} abgelehnt. Sie ist kostenlos und bewegt kein Geld: Signieren Sie, um mit diesem Wallet zu zahlen, oder w\xE4hlen Sie ein anderes Wallet oder eine andere Methode.",unsupported:"{wallet} kann diese Best\xE4tigung nicht signieren. W\xE4hlen Sie ein anderes Wallet oder eine andere Methode.",failed:"{wallet} hat die Best\xE4tigung nicht signiert. Versuchen Sie es erneut.",invalid:"Die Signatur konnte nicht gepr\xFCft werden. Versuchen Sie es erneut oder zahlen Sie mit einem anderen Wallet.",unavailable:"Das Netzwerk kann die Signatur dieses Wallets gerade nicht pr\xFCfen. Versuchen Sie es in einer Minute erneut.",wrongNetwork:"Wechseln Sie in {wallet} zu {network} und best\xE4tigen Sie dann erneut.",tooManyWallets:"Zu viele Wallets haben diese Rechnung best\xE4tigt. Zahlen Sie mit einem davon oder bitten Sie {merchant} um eine neue Rechnung.",switchDeclined:"Sie haben den Wechsel zu {network} in {wallet} abgelehnt. Stimmen Sie zu, um diese Wallet zu best\xE4tigen, oder w\xE4hlen Sie eine andere Methode.",willSwitch:"Ihre Wallet ist auf {current}: Sie fragt zuerst nach dem Wechsel zu {network}.",confirmToPay:"Wallet best\xE4tigen, um zu zahlen",payNote:"F\xFCr die Zahlung mit diesem Wallet ist zuerst eine kostenlose Signatur n\xF6tig: Sie best\xE4tigt, dass das Wallet diese Rechnung bezahlt, und bewegt kein Geld.",signInRequest:"{wallet} zeigt dies m\xF6glicherweise als Anmeldeanfrage f\xFCr {site} an."},qr:{solanaTitle:"Mit einem Solana-Wallet scannen",solanaHint:"\xD6ffnen Sie Phantom, Solflare oder Backpack",restHint:"Scannen Sie mit dem Wallet, das zuerst bezahlt hat: {wallet}.",scanStep:"Code scannen (Solana Pay)",approveStep:"Den unten stehenden Betrag best\xE4tigen",solanaCode:"QR-Code einer Solana-Pay-Anfrage \xFCber {amount}",waiting:"Warten auf die Zahlung\u2026",exchangeWarning:"Senden Sie von Ihrem eigenen Wallet, nicht von einer B\xF6rse: Eine B\xF6rse entfernt die Zahlungsreferenz, und die Zahlung w\xFCrde auf eine manuelle Pr\xFCfung warten.",openInWallet:"In der Wallet-App \xF6ffnen",handoffTitle:"Auf dem Smartphone zahlen",handoffHint:"Scannen Sie mit der Smartphone-Kamera: Dieser Checkout \xF6ffnet sich dort, und Sie zahlen mit Ihrem mobilen Wallet.",handoffCode:"QR-Code, der diesen Checkout auf Ihrem Smartphone \xF6ffnet",handoffNote:"Diese Seite verfolgt die Zahlung und zeigt die Quittung an, sobald sie eingeht.",copyLink:"Link kopieren",back:"Zur\xFCck zu den Methoden"},confirm:{title:"Ihre Zahlung wird best\xE4tigt",hint:"Im Netzwerk {network} meist in unter zwei Minuten.",sent:"Gesendet",confirming:"Wird best\xE4tigt",confirmed:"Best\xE4tigt",paid:"Bezahlt",failed:"Fehlgeschlagen",network:"Netzwerk",amount:"Betrag",transaction:"Transaktion",lastTransfer:"Letzte \xDCberweisung",from:"Von",canClose:"Sie k\xF6nnen dieses Fenster schlie\xDFen: Die Zahlung l\xE4uft weiter, und der Verk\xE4ufer sendet die Quittung.",afterDeadline:"Ihre Zahlung wurde vor Fristende gesendet und wird best\xE4tigt.",pastDeadline:"Ihre Zahlung wird best\xE4tigt. Wenn sie nach Schlie\xDFung der Rechnung eingeht, nimmt {merchant} sie an oder erstattet sie.",invoicePayment:"Eine Zahlung f\xFCr diese Rechnung ist unterwegs. Warten Sie die Best\xE4tigung ab, bevor Sie erneut zahlen.",viewOnExplorer:"Im Explorer ansehen",copyHash:"Transaktion kopieren"},paid:{title:"Zahlung eingegangen",summary:"im Netzwerk {network} \xB7 {date}",receipt:"Quittung",receiptHint:"PDF der Zahlung, auch beim Verk\xE4ufer gespeichert",download:"Herunterladen",refunded:"Erstattet: {amount} {currency}",back:"Zur\xFCck zu {merchant}",returning:"Zur\xFCck zu {merchant} in {seconds} s",stay:"Hier bleiben",autoPayOffer:"Die n\xE4chsten Zeitr\xE4ume automatisch bezahlen",autoPayActive:"Automatische Zahlungen sind aktiv.",autoPayOff:"Deaktivieren",autoPayTurnedOff:"Automatische Zahlungen sind deaktiviert. {merchant} kann dieses Wallet nicht mehr belasten."},autoPay:{title:"Die n\xE4chsten Zeitr\xE4ume automatisch bezahlen?",subtitle:"Optional. Ohne automatische Zahlung erhalten Sie in jedem Zeitraum eine Rechnung und bezahlen sie selbst.",allow:"Sie erlauben {merchant} den Einzug von",limit:"bis zu {amount}",every:"alle {period}",from:"Von",to:"An",validUntil:"G\xFCltig bis",validUntilValue:"{date} oder bis Sie sie deaktivieren",collector:"Quasar sendet jede Abbuchung f\xFCr {merchant}, nur an das Wallet von {merchant} und innerhalb dieses Limits.",invoices:"Zu jeder Abbuchung erhalten Sie eine Rechnung und eine Quittung per E-Mail.",cap:"{merchant} kann in einem Zeitraum nicht mehr als dieses Limit einziehen.",turnOff:"Sie k\xF6nnen sie jederzeit auf der Seite einer dieser Rechnungen deaktivieren: Ihr Wallet sendet eine Transaktion. Um das Abonnement selbst zu k\xFCndigen, wenden Sie sich an {merchant}.",confirm:"Automatische Zahlungen erlauben",skip:"Jetzt nicht, ich bezahle jede Rechnung selbst",walletNote:"Ihr Wallet zeigt diese Erlaubnis (ERC-7715) an, bevor Sie sie best\xE4tigen.",approveIn:"In {wallet} best\xE4tigen",unavailable:"{wallet} kann automatische Zahlungen nicht erlauben.",smartAccountNote:"Automatische Zahlungen erfordern ein Smart Account. {wallet} fragt zuerst nach dem Wechsel: eine Transaktion auf {network}, deren Netzwerkgeb\xFChr Sie zahlen. Ihre Adresse bleibt gleich.",smartAccountPrompt:"{wallet} fragt, ob dieses Konto zu einem Smart Account wechseln soll. Adresse und Guthaben bleiben gleich.",smartAccountNeeded:"Automatische Zahlungen erfordern ein Smart Account. \xD6ffnen Sie in {wallet} die Details dieses Kontos, aktivieren Sie das Smart Account f\xFCr {network} und versuchen Sie es erneut.",notGranted:"{wallet} hat die Berechtigung nicht erteilt. Versuchen Sie es erneut oder zahlen Sie jede Rechnung selbst.",invalid:"Diese Berechtigung kann nicht verwendet werden. Versuchen Sie es erneut oder zahlen Sie jede Rechnung selbst."},autoPayOff:{title:"Automatische Zahlungen deaktivieren?",subtitle:"{merchant} kann dieses Wallet dann nicht mehr belasten. Das Abonnement l\xE4uft weiter: Sp\xE4tere Zeitr\xE4ume kommen als Rechnungen, die Sie selbst bezahlen. Um es zu k\xFCndigen, wenden Sie sich an {merchant}.",wallet:"Wallet",allowed:"Derzeit erlaubt",fee:"Ihr Wallet sendet eine Transaktion im Netzwerk {network}, und Sie zahlen die Netzwerkgeb\xFChr.",confirm:"In {wallet} deaktivieren",checkAgain:"Erneut pr\xFCfen",keep:"Aktiv lassen",connect:"Dieses Wallet verbinden",otherWallet:"Nur das Wallet, das sie erlaubt hat, {wallet}, kann sie deaktivieren.",useThisWallet:"Stattdessen diese Wallet verwenden",inWallet:"In {wallet} best\xE4tigen\u2026",waiting:"Warten auf das Netzwerk\u2026",notYet:"Das Netzwerk zeigt es noch nicht an. Wenn Ihr Wallet die Transaktion gesendet hat, pr\xFCfen Sie in einer Minute erneut.",unsupported:"{wallet} kann diese Transaktion nicht senden."},outcome:{underpaidTitle:"Ein Teil der Zahlung ist eingegangen",underpaidText:"{received} von {total} eingegangen.",underpaidRest:"Senden Sie den Rest, {rest}, vom selben Wallet im Netzwerk {network}.",underpaidNote:"Bis der Rest eingeht, gilt die Rechnung f\xFCr {merchant} als nicht vollst\xE4ndig bezahlt. Sie kann bis {date} bezahlt werden.",underpaidClosed:"Der Rest dieser Rechnung kann hier nicht mehr bezahlt werden.",underpaidClosedRefund:"Nach {date} kann {merchant} den eingegangenen Betrag erstatten.",underpaidRateEnded:"Der Kurs dieser Rechnung ist abgelaufen, daher wartet ein jetzt gezahlter Rest darauf, dass {merchant} ihn annimmt.",underpaidBlocked:"Dieses Wallet hat die Wallet-Pr\xFCfung nicht bestanden und kann den Rest daher nicht bezahlen. Wenden Sie sich an {merchant}.",payRestFirstWallet:"Nur das Wallet, das zuerst bezahlt hat ({wallet}), kann den Rest bezahlen. Verbinden Sie dieses Wallet, um zu zahlen.",payRest:"Rest bezahlen",heldTitle:"Zahlung eingegangen, {merchant} pr\xFCft sie",heldScreening:"{merchant} pr\xFCft die Zahlung, bevor die Bestellung best\xE4tigt wird.",heldLate:"Die Zahlung ging nach Schlie\xDFung der Rechnung ein. {merchant} nimmt sie an oder erstattet sie.",heldOverpaid:"Sie haben mehr als den Rechnungsbetrag gesendet. {merchant} best\xE4tigt die Bestellung oder erstattet die Differenz an Ihr Wallet.",heldQuoteExpired:"Die Zahlung ging nach Ablauf der Preisbindung ein. {merchant} nimmt sie an oder erstattet sie.",heldNote:"Der Verk\xE4ufer meldet sich, falls etwas ben\xF6tigt wird.",refundedTitle:"Erstattet",refundedText:"{merchant} hat f\xFCr diese Rechnung {amount} {currency} erstattet.",expiredTitle:"Diese Rechnung ist abgelaufen",expiredText:"Sie konnte bis {date} bezahlt werden. Bitten Sie {merchant} um eine neue; es wurde nichts berechnet.",expiredPartText:"Sie konnte bis {date} bezahlt werden. Ein Teil der Zahlung ist eingegangen: {amount}.",expiredPartNoAmount:"Sie konnte bis {date} bezahlt werden. Ein Teil der Zahlung ist eingegangen.",closedPartText:"{merchant} hat diese Rechnung geschlossen. {amount} der Zahlung sind eingegangen.",expiredPartRefund:"{merchant} kann ihn an das zahlende Wallet erstatten; wenden Sie sich an {merchant}.",expiredNote:"Eine nach Fristende gesendete Zahlung wird f\xFCr den Verk\xE4ufer zur\xFCckgehalten, der sie erstattet oder annimmt.",expiredWhileConfirming:"Die Rechnung wurde geschlossen, w\xE4hrend Ihre Zahlung best\xE4tigt wurde. Wenn sie eingeht, wird sie erfasst und {merchant} angezeigt, der sie annimmt oder erstattet.",expiredAfterQr:"Wenn Sie per QR-Code bezahlt haben, nimmt {merchant} die Zahlung bei Eingang an oder erstattet sie.",expiredUnconfirmed:"Ihre Zahlung konnte noch nicht best\xE4tigt werden. Pr\xFCfen Sie Ihr Wallet: Wenn die Zahlung es verlassen hat, pr\xFCft Quasar sie 24 Stunden lang erneut. Wenn sie eingeht, wird sie erfasst und {merchant} angezeigt, der sie annimmt oder erstattet.",unconfirmedTitle:"Wir konnten Ihre Zahlung nicht best\xE4tigen",unconfirmedText:"Pr\xFCfen Sie Ihr Wallet, bevor Sie erneut zahlen: Ihre Zahlung k\xF6nnte noch unterwegs sein.",unconfirmedNote:"Quasar pr\xFCft Ihre Zahlung 24 Stunden lang erneut. Wenn sie eingeht, wird sie erfasst und {merchant} angezeigt.",unconfirmedContact:"Quasar pr\xFCft diese Zahlung nicht erneut. Wenn sie Ihr Wallet verlassen hat, wenden Sie sich mit dem Transaktions-Hash an {merchant}.",unconfirmedNotReceived:"Quasar hat diese Zahlung nicht erhalten. Wenn sie Ihr Wallet verlassen hat, wenden Sie sich mit dem Transaktions-Hash an {merchant}.",unconfirmedClosed:"Quasar hat diese Zahlung innerhalb von 24 Stunden nicht im Netzwerk gefunden und pr\xFCft sie nicht mehr. Wenn sie Ihr Wallet verlassen hat, wenden Sie sich mit dem Transaktions-Hash an {merchant}.",unconfirmedRetrying:"Diese Seite \xFCbergibt Ihre Zahlung weiterhin an Quasar. Lassen Sie sie ge\xF6ffnet, bis die Zahlung hier erscheint.",unconfirmedInvoiceFull:"Diese Rechnung nimmt keine weiteren Zahlungen an, und Quasar verfolgt diese Zahlung nicht. Zahlen Sie nicht erneut; wenn sie Ihr Wallet verlassen hat, wenden Sie sich mit dem Transaktions-Hash an {merchant}.",unconfirmedTakenElsewhere:"Diese Transaktion wurde zuerst f\xFCr eine andere Rechnung \xFCbergeben. Quasar schreibt sie der Rechnung gut, die das sendende Wallet best\xE4tigt hat, und diese Seite zeigt das Ergebnis, w\xE4hrend sie die Zahlung verfolgt. Zahlen Sie nicht erneut; wenn Ihre Zahlung hier nicht erscheint, wenden Sie sich mit dem Transaktions-Hash an {merchant}.",unconfirmedUnmined:"Quasar liest diese Zahlung eine Woche lang, nachdem es von ihr erfahren hat, und erfasst sie, wenn sie durchgeht. Pr\xFCfen Sie Ihre Wallet; wenn sie abgegangen ist und Sie Hilfe brauchen, wenden Sie sich mit diesem Transaktions-Hash an {merchant}.",unconfirmedNonceSpent:"Ihre Wallet hat die Nummer dieser Transaktion f\xFCr eine andere verwendet, die Quasar nicht finden konnte. Es kann also Geld aus Ihrer Wallet abgeflossen sein. Zahlen Sie vorerst nicht erneut. Wenn Sie sie beschleunigt haben, geben Sie unten ihren Hash an, sonst wenden Sie sich mit diesem Transaktions-Hash an {merchant}.",unconfirmedSettlementFailed:"Das Netzwerk hat Ihre Zahlung best\xE4tigt, aber Quasar hat sie nicht erfasst. Zahlen Sie nicht erneut; wenden Sie sich mit dem Transaktions-Hash an {merchant}.",unconfirmedSettlementRetrying:"Das Netzwerk hat Ihre Zahlung best\xE4tigt, aber Quasar hat sie noch nicht erfasst. Quasar versucht es t\xE4glich erneut, 30 Tage lang ab Kenntnis der Zahlung. Zahlen Sie nicht erneut; wenden Sie sich mit dem Transaktions-Hash an {merchant}.",followingUntil:"Diese Seite verfolgt die Zahlung bis {time}. Laden Sie sie danach neu, um das Ergebnis zu sehen.",nameHash:"Zeigt Ihr Wallet eine andere Transaktion?",nameHashField:"Transaktions-Hash",nameHashSend:"Diese Transaktion pr\xFCfen",nameHashInvalid:"Das ist keine Transaktion dieses Netzwerks.",nameHashRefused:"Quasar konnte diese Transaktion nicht annehmen. Wenden Sie sich mit ihrem Hash an den Verk\xE4ufer.",unconfirmedPayAgain:"Die Zahlung hat mein Wallet nicht verlassen",cancelledTitle:"Diese Rechnung wurde storniert",cancelledText:"{merchant} hat sie storniert; es wurde nichts berechnet.",cancelledWhilePaying:"{merchant} hat sie storniert. Wenn Ihre Zahlung eingeht, wird sie erfasst und {merchant} angezeigt, der sie annimmt oder erstattet.",cancelledAfterQr:"{merchant} hat sie storniert. Wenn Sie per QR-Code bezahlt haben, nimmt {merchant} die Zahlung bei Eingang an oder erstattet sie.",replacedTitle:"{merchant} hat diese Rechnung korrigiert",replacedText:"{number} ersetzt sie. Diese Rechnung kann nicht mehr bezahlt werden.",replacedPaid:"Bereits bezahlt? Ihre Zahlung wurde auf die neue Rechnung \xFCbertragen.",openReplacement:"{number} \xF6ffnen",blockedTitle:"Dieses Wallet kann diese Rechnung nicht bezahlen",blockedText:"Die Wallet-Pr\xFCfung wurde nicht bestanden. Es wurde nichts gesendet. Verbinden Sie ein anderes Wallet oder wenden Sie sich an {merchant}.",useAnotherWallet:"Anderes Wallet verwenden",contact:"{merchant} kontaktieren",contactSubject:"Rechnung {number}"},leave:{title:"Checkout verlassen?",text:"Es wurde noch nichts gesendet. Die Rechnung bleibt bis {date} offen: \xD6ffnen Sie sie \xFCber den Link in Ihrer E-Mail oder auf der Website des Verk\xE4ufers erneut.",textNoDate:"Es wurde noch nichts gesendet. Die Rechnung bleibt offen: \xD6ffnen Sie sie \xFCber den Link in Ihrer E-Mail oder auf der Website des Verk\xE4ufers erneut.",price:"Der festgelegte Preis wird freigegeben; wenn Sie zur\xFCckkehren, erhalten Sie einen neuen.",stay:"Bleiben und zahlen",leave:"Verlassen"},summary:{test:"Test",testHint:"Testrechnung: Sie wird in einem Testnetzwerk bezahlt.",sellerDetails:"Angaben zum Verk\xE4ufer",registration:"Registernummer",taxId:"USt-IdNr. / Steuernummer",terms:"AGB",refundPolicy:"Erstattungsrichtlinie",privacy:"Datenschutz",sellerRole:"{seller} ist der Verk\xE4ufer. Quasar ist die Zahlungssoftware: Quasar verwahrt Ihre Mittel nie und ist nicht Partei dieses Kaufvertrags.",payWithin:"Zahlungsfrist",refundAfter:"Erstattung m\xF6glich nach",until:"bis {date}",minutesLeft:"Noch {minutes} Minuten zum Bezahlen",oneMinuteLeft:"Noch 1 Minute zum Bezahlen",invoice:"Rechnung",quantity:"{quantity} \xD7 {price}",subtotal:"Zwischensumme",taxRate:"USt. {rate}\xA0%",tax:"USt.",total:"Gesamt",secured:"Gesichert durch Quasar",help:"Hilfe",compact:"{count} Positionen \xB7 inkl. USt. {tax}",compactOne:"{count} Position \xB7 inkl. USt. {tax}",compactNoTax:"{count} Positionen",compactNoTaxOne:"{count} Position",showOrder:"Details"},refund:{button:"Erstatten",title:"Erstattung f\xFCr {invoice}",amountTitle:"Was erstattet werden soll",modeFiat:"Ein Betrag",modeFiatText:"In {currency}, zum aktuellen Kurs umgerechnet",modeExact:"Alles Erhaltene",modeExactText:"Die Token der Zahlung, so wie sie sind",amount:"Betrag, {currency}",amountHint:"Bis zu {amount}",reason:"Grund (optional)",continue:"Weiter",movedTitle:"Der Preis hat sich ge\xE4ndert",movedText:"Der Preis von {symbol} hat sich seit der Zahlung ge\xE4ndert, daher erfordert dieser Betrag eine andere Anzahl Token.",movedSend:"Diese Erstattung sendet",movedAtPayment:"Zum Kurs der Zahlung",movedReceived:"Die Zahlung brachte",movedExact:"Um die Token so zur\xFCckzugeben, wie sie eingegangen sind, gehen Sie zur\xFCck und w\xE4hlen Sie \u201E{exact}\u201C.",movedContinue:"Mit diesem Betrag fortfahren",movedBack:"Zur\xFCck",requesting:"Erstattung wird bei Quasar angefragt\u2026",connectTitle:"Wallet verbinden",connectText:"Die Erstattung l\xE4uft \xFCber {network}, das Netzwerk der Zahlung. Jedes Wallet, das dort {symbol} h\xE4lt, kann sie senden.",connect:"Wallet verbinden",connectUnavailable:"Diese Seite kann kein Wallet verbinden. Senden Sie die Erstattung aus Ihrem Wallet und erfassen Sie sie anschlie\xDFend.",confirmTitle:"Erstattung best\xE4tigen",send:"Senden",to:"An",thePayer:"den Zahler",theSender:"den Absender dieses Transfers",from:"Von",balance:"Enth\xE4lt {amount}",networkFee:"Netzwerkgeb\xFChr",feeEstimate:"\u2248 {amount} \xB7 aus Ihrem Wallet",sendRefund:"Erstattung senden",switchTo:"Zu {network} wechseln",walletTitle:"In {wallet} best\xE4tigen",walletText:"Best\xE4tigen Sie den Transfer von {amount} im Netzwerk {network}.",switchTitle:"Wechsel in {wallet} best\xE4tigen",submitting:"Erstattung wird an Quasar \xFCbergeben\u2026",onItsWay:"Unterwegs",status:"Status",pending:"Ausstehend",transaction:"Transaktion",network:"Netzwerk",waiting:"{network} \xB7 Warten auf Best\xE4tigung",canClose:"Sie k\xF6nnen dieses Fenster schlie\xDFen: Die Rechnung zeigt, wie die Erstattung verl\xE4uft.",refunded:"Erstattet",creditNote:"Rechnungskorrektur",done:"Fertig",failedShort:"Ein Teil der R\xFCckerstattung hat den K\xE4ufer erreicht. Senden Sie sie erneut: Es geht nur der fehlende Betrag.",failedTitle:"Die Erstattung ist fehlgeschlagen",failedWithdrawnTitle:"Sie haben die Erstattung zur\xFCckgezogen",failedCancelledTitle:"Sie haben die Erstattung abgebrochen",failedByHand:"Die Transaktion dieser Erstattung kann sie nicht abschlie\xDFen: Pr\xFCfen Sie sie von Hand anhand der Erstattungen der Rechnung.",failedText:"Die Transaktion ist im Netzwerk {network} fehlgeschlagen; es wurde nur die Netzwerkgeb\xFChr verbraucht. Senden Sie die Erstattung erneut.",failedFromBuyer:"Sie wurde von dem Wallet gesendet, an das sie zur\xFCckgehen sollte, oder von einem Wallet, das die Rechnung bezahlt hat, daher ging nichts zur\xFCck. Senden Sie sie erneut von einem anderen Wallet.",failedNotFound:"Die Transaktion wurde nicht rechtzeitig gefunden oder wurde ersetzt: Sie kann trotzdem angekommen sein.",failedDropped:"Die Transaktion wurde im Netzwerk nicht gefunden: Sie kann trotzdem angekommen sein.",failedTooEarly:"Die Transaktion ist \xE4lter als die Zahlung und geh\xF6rt nicht zu dieser R\xFCckerstattung.",failedNoTransfer:"Die Transaktion hat nichts an das Ziel-Wallet gesendet, was Quasar sehen k\xF6nnte.",failedWithdrawn:"Sie haben sie vor dem Senden zur\xFCckgezogen.",failedCancelling:"Sie haben sie in Ihrer Wallet abgebrochen. Sie kann erneut gesendet werden, sobald der Abbruch endg\xFCltig ist, meist nach wenigen Minuten.",failedCancelled:"Sie haben sie in Ihrer Wallet abgebrochen, es wurde also nichts gesendet. Sie k\xF6nnen sie erneut senden.",failedResendConfirmed:"Sie haben best\xE4tigt, dass sie Ihr Wallet nicht verlassen hat: Sie kann erneut gesendet werden.",failedHeldNote:"Der Transfer bleibt einbehalten. Schlie\xDFen Sie dieses Fenster: In seiner Zeile steht, wie es weitergeht.",notSent:"Nicht gesendet",notEnough:"Nicht genug {symbol} auf {address}: Das Guthaben betr\xE4gt {balance}.",declined:"Sie haben die Anfrage in {wallet} abgelehnt.",unsupported:"{wallet} kann diese Erstattung nicht senden.",wrongNetwork:"{wallet} ist in einem anderen Netzwerk, daher wurde nichts gesendet. Wechseln Sie zu {network} und senden Sie erneut.",failed:"Das Wallet hat die Erstattung nicht gesendet. Versuchen Sie es erneut.",noRecipient:"Das Wallet des Zahlers ist nicht bekannt, daher kann diese Erstattung nicht von hier gesendet werden.",unreachable:"Quasar antwortet nicht, daher wurde nichts gesendet. Versuchen Sie es gleich noch einmal.",refusedAmount:"Der Betrag ist h\xF6her als das, was noch zu erstatten ist.",refusedNotRefundable:"Diese Zahlung kann nicht mehr erstattet werden.",refusedWhole:"Eine zur\xFCckgehaltene \xDCberweisung wird nur vollst\xE4ndig zur\xFCckgegeben.",refusedBlocked:"Eine Compliance-Pr\xFCfung sperrt das Wallet f\xFCr die Erstattung. Es kann nichts dorthin gesendet werden.",refusedNotWaiting:"Diese Erstattung wartet nicht mehr auf eine Transaktion. Es wurde nichts gesendet.",refusedMayHaveLanded:"Eine fr\xFChere Transaktion dieser Erstattung k\xF6nnte durchgegangen sein. Pr\xFCfen Sie sie, bevor Sie erneut anfragen.",refusedPrice:"Der Preis kann gerade nicht gelesen werden. Versuchen Sie es gleich noch einmal.",refusedTestOnly:"Dieser Knoten akzeptiert nur Testnetze.",refusedOther:"Quasar hat diese Erstattung abgelehnt. Es wurde nichts gesendet.",slowNote:"Quasar sieht diese Transaktion noch nicht im Netzwerk. Wenn Ihr Wallet einen anderen Hash zeigt, weil sie dort beschleunigt oder abgebrochen wurde, erfassen Sie diesen.",nothingSent:"Es wurde nichts gesendet: Die Erstattung wartet auf ihre Transaktion.",notHandedOver:"Die Erstattung wurde gesendet, aber Quasar hat ihre Transaktion noch nicht \xFCbernommen. \xDCbergeben Sie sie erneut: Es wird nichts doppelt gesendet.",handOver:"Erneut \xFCbergeben",record:"Erstattung erfassen",recordHint:"Auf anderem Weg gesendet? Erfassen Sie die Erstattung mit ihrer Transaktion: Quasar pr\xFCft sie on-chain.",close:"Schlie\xDFen",txTitle:"Erstattung f\xFCr {invoice}",txDescription:"{amount} an den Zahler",txDescriptionSender:"{amount} an den Absender des Transfers"}};exports.deLabels=e;