From 2623e9247a1d970f4842cf71922fe6d48220ea8c Mon Sep 17 00:00:00 2001
From: jackstar12 <62219658+jackstar12@users.noreply.github.com>
Date: Mon, 28 Aug 2023 12:00:59 +0200
Subject: [PATCH] track fiat value of payments (#1789)
* save fiat_amounts on payment creation
* show fiat amount in frontend
* add lnbits_default_accounting_currency
* extract fiat calculation logic into service
* move all currency conversions to calc_fiat_amounts
move all conversion logic into create_invoice so extensions can benefit aswell
* show user-defined and wallet-defined currency in frontend
* remove sat from fiat units
* make bundle
* improve tests
* debug log
---
lnbits/core/crud.py | 26 +++++---
lnbits/core/migrations.py | 8 +++
lnbits/core/models.py | 1 +
lnbits/core/services.py | 52 ++++++++++++++-
lnbits/core/static/js/service-worker.js | 2 +-
lnbits/core/static/js/wallet.js | 19 +++---
lnbits/core/templates/admin/_tab_server.html | 12 ++++
lnbits/core/templates/core/wallet.html | 52 +++++++++++++--
lnbits/core/views/api.py | 23 +++----
lnbits/settings.py | 1 +
lnbits/static/bundle.min.js | 2 +-
lnbits/static/i18n/en.js | 3 +
lnbits/static/js/base.js | 7 +-
tests/core/views/test_api.py | 67 ++++++++++++++++++++
14 files changed, 233 insertions(+), 42 deletions(-)
diff --git a/lnbits/core/crud.py b/lnbits/core/crud.py
index 10b9a02fd..112d9f0ea 100644
--- a/lnbits/core/crud.py
+++ b/lnbits/core/crud.py
@@ -238,15 +238,25 @@ async def create_wallet(
async def update_wallet(
- wallet_id: str, new_name: str, conn: Optional[Connection] = None
+ wallet_id: str,
+ name: Optional[str] = None,
+ currency: Optional[str] = None,
+ conn: Optional[Connection] = None,
) -> Optional[Wallet]:
+ set_clause = []
+ values = []
+ if name:
+ set_clause.append("name = ?")
+ values.append(name)
+ if currency is not None:
+ set_clause.append("currency = ?")
+ values.append(currency)
+ values.append(wallet_id)
await (conn or db).execute(
- """
- UPDATE wallets SET
- name = ?
- WHERE id = ?
+ f"""
+ UPDATE wallets SET {', '.join(set_clause)} WHERE id = ?
""",
- (new_name, wallet_id),
+ tuple(values),
)
wallet = await get_wallet(wallet_id=wallet_id, conn=conn)
assert wallet, "updated created wallet couldn't be retrieved"
@@ -519,8 +529,8 @@ async def create_payment(
conn: Optional[Connection] = None,
) -> Payment:
# todo: add this when tests are fixed
- # previous_payment = await get_wallet_payment(wallet_id, payment_hash, conn=conn)
- # assert previous_payment is None, "Payment already exists"
+ previous_payment = await get_wallet_payment(wallet_id, payment_hash, conn=conn)
+ assert previous_payment is None, "Payment already exists"
try:
invoice = bolt11.decode(payment_request)
diff --git a/lnbits/core/migrations.py b/lnbits/core/migrations.py
index fce8e480e..e90a088e1 100644
--- a/lnbits/core/migrations.py
+++ b/lnbits/core/migrations.py
@@ -319,3 +319,11 @@ async def m011_optimize_balances_view(db):
GROUP BY wallet
"""
)
+
+
+async def m012_add_currency_to_wallet(db):
+ await db.execute(
+ """
+ ALTER TABLE wallets ADD COLUMN currency TEXT
+ """
+ )
diff --git a/lnbits/core/models.py b/lnbits/core/models.py
index e64fd7e66..762516755 100644
--- a/lnbits/core/models.py
+++ b/lnbits/core/models.py
@@ -27,6 +27,7 @@ class Wallet(BaseModel):
user: str
adminkey: str
inkey: str
+ currency: Optional[str]
balance_msat: int
@property
diff --git a/lnbits/core/services.py b/lnbits/core/services.py
index c12525653..a0cebe3fc 100644
--- a/lnbits/core/services.py
+++ b/lnbits/core/services.py
@@ -21,6 +21,7 @@ from lnbits.settings import (
send_admin_user_to_saas,
settings,
)
+from lnbits.utils.exchange_rates import fiat_amount_as_satoshis, satoshis_amount_as_fiat
from lnbits.wallets import FAKE_WALLET, get_wallet_class, set_wallet_class
from lnbits.wallets.base import PaymentResponse, PaymentStatus
@@ -55,10 +56,47 @@ class InvoiceFailure(Exception):
pass
+async def calculate_fiat_amounts(
+ amount: float,
+ wallet_id: str,
+ currency: Optional[str] = None,
+ extra: Optional[Dict] = None,
+ conn: Optional[Connection] = None,
+) -> Tuple[int, Optional[Dict]]:
+ wallet = await get_wallet(wallet_id, conn=conn)
+ assert wallet, "invalid wallet_id"
+ wallet_currency = wallet.currency or settings.lnbits_default_accounting_currency
+
+ if currency and currency != "sat":
+ amount_sat = await fiat_amount_as_satoshis(amount, currency)
+ extra = extra or {}
+ if currency != wallet_currency:
+ extra["fiat_currency"] = currency
+ extra["fiat_amount"] = round(amount, ndigits=3)
+ extra["fiat_rate"] = amount_sat / amount
+ else:
+ amount_sat = int(amount)
+
+ if wallet_currency:
+ if wallet_currency == currency:
+ fiat_amount = amount
+ else:
+ fiat_amount = await satoshis_amount_as_fiat(amount_sat, wallet_currency)
+ extra = extra or {}
+ extra["wallet_fiat_currency"] = wallet_currency
+ extra["wallet_fiat_amount"] = round(fiat_amount, ndigits=3)
+ extra["wallet_fiat_rate"] = amount_sat / fiat_amount
+
+ logger.debug(f"Calculated fiat amounts for {wallet}: {extra=}")
+
+ return amount_sat, extra
+
+
async def create_invoice(
*,
wallet_id: str,
- amount: int, # in satoshis
+ amount: float,
+ currency: Optional[str] = "sat",
memo: str,
description_hash: Optional[bytes] = None,
unhashed_description: Optional[bytes] = None,
@@ -76,8 +114,12 @@ async def create_invoice(
# use the fake wallet if the invoice is for internal use only
wallet = FAKE_WALLET if internal else get_wallet_class()
+ amount_sat, extra = await calculate_fiat_amounts(
+ amount, wallet_id, currency=currency, extra=extra, conn=conn
+ )
+
ok, checking_id, payment_request, error_message = await wallet.create_invoice(
- amount=amount,
+ amount=amount_sat,
memo=invoice_memo,
description_hash=description_hash,
unhashed_description=unhashed_description,
@@ -88,7 +130,7 @@ async def create_invoice(
invoice = bolt11.decode(payment_request)
- amount_msat = amount * 1000
+ amount_msat = 1000 * amount_sat
await create_payment(
wallet_id=wallet_id,
checking_id=checking_id,
@@ -134,6 +176,10 @@ async def pay_invoice(
if max_sat and invoice.amount_msat > max_sat * 1000:
raise ValueError("Amount in invoice is too high.")
+ _, extra = await calculate_fiat_amounts(
+ invoice.amount_msat, wallet_id, extra=extra, conn=conn
+ )
+
# put all parameters that don't change here
class PaymentKwargs(TypedDict):
wallet_id: str
diff --git a/lnbits/core/static/js/service-worker.js b/lnbits/core/static/js/service-worker.js
index e4926ea14..5e2b8b6d4 100644
--- a/lnbits/core/static/js/service-worker.js
+++ b/lnbits/core/static/js/service-worker.js
@@ -1,6 +1,6 @@
// update cache version every time there is a new deployment
// so the service worker reinitializes the cache
-const CACHE_VERSION = 52
+const CACHE_VERSION = 53
const CURRENT_CACHE = `lnbits-${CACHE_VERSION}-`
const getApiKey = request => {
diff --git a/lnbits/core/static/js/wallet.js b/lnbits/core/static/js/wallet.js
index 485450550..67c674158 100644
--- a/lnbits/core/static/js/wallet.js
+++ b/lnbits/core/static/js/wallet.js
@@ -256,7 +256,10 @@ new Vue({
},
balance: 0,
credit: 0,
- newName: ''
+ update: {
+ name: null,
+ currency: null
+ }
}
},
computed: {
@@ -717,16 +720,12 @@ new Vue({
}
})
},
- updateWalletName: function () {
- let newName = this.newName
- let adminkey = this.g.wallet.adminkey
- if (!newName || !newName.length) return
+ updateWallet: function (data) {
LNbits.api
- .request('PUT', '/api/v1/wallet/' + newName, adminkey, {})
+ .request('PATCH', '/api/v1/wallet', this.g.wallet.adminkey, data)
.then(res => {
- this.newName = ''
this.$q.notify({
- message: `Wallet named updated.`,
+ message: `Wallet updated.`,
type: 'positive',
timeout: 3500
})
@@ -737,7 +736,6 @@ new Vue({
)
})
.catch(err => {
- this.newName = ''
LNbits.utils.notifyApiError(err)
})
},
@@ -811,6 +809,9 @@ new Vue({
this.fetchBalance()
this.fetchPayments()
+ this.update.name = this.g.wallet.name
+ this.update.currency = this.g.wallet.currency
+
LNbits.api
.request('GET', '/api/v1/currencies')
.then(response => {
diff --git a/lnbits/core/templates/admin/_tab_server.html b/lnbits/core/templates/admin/_tab_server.html
index e8cec2208..ce266b749 100644
--- a/lnbits/core/templates/admin/_tab_server.html
+++ b/lnbits/core/templates/admin/_tab_server.html
@@ -67,6 +67,18 @@
>
+
Default Accounting Currency
+LNURL-withdraw
per prelevare tutti i fondi da questo portafoglio. Non condividerlo con nessuno. È compatibile con balanceCheck
e balanceNotify
, di conseguenza il vostro portafoglio può continuare a prelevare continuamente i fondi da qui dopo il primo prelievo",i_understand:"Ho capito",copy_wallet_url:"Copia URL portafoglio",disclaimer_dialog:"La funzionalità di login sarà rilasciata in un futuro aggiornamento; per ora, assicuratevi di salvare tra i preferiti questa pagina per accedere nuovamente in futuro a questo portafoglio! Questo servizio è in fase BETA e non ci assumiamo alcuna responsabilità per la perdita all'accesso dei fondi",no_transactions:"Nessuna transazione effettuata",manage_extensions:"Gestisci le estensioni",manage_server:"Gestisci server",estensioni:"Estensioni",no_extensions:"Non ci sono estensioni installate :(",created:"Creato",payment_hash:"Hash del pagamento",fee:"Tariffa",amount:"Importo",unit:"Unità",description:"Descrizione",expiry:"Scadenza",webhook:"Webhook",prova_di_pagamento:"Prova di pagamento"},window.localisation.jp={server:"サーバー",theme:"テーマ",funding:"資金調達",users:"ユーザー",restart:"サーバーを再起動する",save:"保存",unit:"単位",save_tooltip:"変更を保存する",topup:"トップアップ",topup_wallet:"ウォレットをトップアップする",topup_hint:"ウォレットIDを使用して、任意のウォレットをトップアップできます",restart_tooltip:"サーバーを再起動して変更を適用します",add_funds_tooltip:"ウォレットに資金を追加します。",reset_defaults:"リセット",reset_defaults_tooltip:"すべての設定を削除してデフォルトに戻します。",download_backup:"データベースのバックアップをダウンロードする",name_your_wallet:"あなたのウォレットの名前 %{name}",paste_invoice_label:"請求書を貼り付けてください",lnbits_description:"簡単にインストールでき、軽量で、LNbitsは現在LND、Core Lightning、OpenNode、LNPay、さらにLNbits自身で動作する任意のLightningネットワークの資金源で実行できます! LNbitsを自分で実行することも、他の人に優れたソリューションを提供することもできます。各ウォレットには独自のAPIキーがあり、作成できるウォレットの数に制限はありません。資金を分割する機能は、LNbitsを資金管理ツールとして使用したり、開発ツールとして使用したりするための便利なツールです。拡張機能は、LNbitsに追加の機能を追加します。そのため、LNbitsは最先端の技術をネットワークLightningで試すことができます。拡張機能を開発するのは簡単で、無料でオープンソースのプロジェクトであるため、人々が自分で開発し、自分の貢献を送信することを奨励しています。",export_to_phone:"電話にエクスポート",export_to_phone_desc:"ウォレットを電話にエクスポートすると、ウォレットを削除する前にウォレットを復元できます。ウォレットを削除すると、ウォレットの秘密鍵が削除され、ウォレットを復元することはできません。",wallets:"ウォレット",add_wallet:"ウォレットを追加",delete_wallet:"ウォレットを削除",delete_wallet_desc:"ウォレットを削除すると、ウォレットの秘密鍵が削除され、ウォレットを復元することはできません。",rename_wallet:"ウォレットの名前を変更",update_name:"名前を更新",press_to_claim:"クレームするには押してください",donate:"寄付",voidwallet_active:"Voidwalletアクティブ",use_with_caution:"注意して使用してください",toggle_dark_mode:"ダークモードを切り替える",view_swagger_docs:"Swaggerドキュメントを表示",api_docs:"APIドキュメント",commit_version:"コミットバージョン",runs_on:"で実行",credit_hint:"クレジットカードを使用して資金を追加するには、LNbitsを使用してください。",credit_label:"クレジットカード",paste_request:"リクエストを貼り付ける",create_invoice:"請求書を作成する",camera_tooltip:"QRコードを読み取る",export_csv:"CSVでエクスポート",transactions:"トランザクション",chart_tooltip:"チャートを表示するには、グラフの上にカーソルを合わせます",pending:"保留中",copy_invoice:"請求書をコピー",close:"閉じる",cancel:"キャンセル",scan:"スキャン",read:"読む",pay:"支払う",memo:"メモ",date:"日付",processing_payment:"支払い処理中",not_enough_funds:"資金が不足しています",search_by_tag_memo_amount:"タグ、メモ、金額で検索",invoice_waiting:"請求書を待っています",payment_received:"お支払いありがとうございます",payment_sent:"支払いが完了しました",receive:"受け取る",send:"送信",outgoing_payment_pending:"支払い保留中",drain_funds:"資金を排出する",drain_funds_desc:"ウォレットの残高をすべて他のウォレットに送金します",i_understand:"理解した",copy_wallet_url:"ウォレットURLをコピー",disclaimer_dialog:"ウォレットを削除すると、ウォレットの秘密鍵が削除され、ウォレットを復元することはできません。ウォレットを削除する前に、ウォレットをエクスポートしてください。",no_transactions:"トランザクションはありません",manage_server:"サーバーを管理する",extensions:"拡張機能",no_extensions:"拡張機能はありません",created:"作成済み",search_extensions:"検索拡張機能",warning:"警告",manage:"管理",repository:"リポジトリ",confirm_continue:"続行してもよろしいですか?",manage_extension_details:"拡張機能のインストール/アンインストール",install:"インストール",uninstall:"アンインストール",open:"開く",enable:"有効",enable_extension_details:"現在のユーザーの拡張機能を有効にする",disable:"無効",installed:"インストール済み",activated:"有効化",deactivated:"無効化",release_notes:"リリースノート",activate_extension_details:"拡張機能をユーザーが利用できるようにする/利用できないようにする",featured:"特集",all:"すべて",only_admins_can_install:"(管理者アカウントのみが拡張機能をインストールできます)",new_version:"新しいバージョン",extension_depends_on:"依存先:",extension_rating_soon:"評価は近日公開",extension_installed_version:"インストール済みバージョン",extension_uninstall_warning:"すべてのユーザーの拡張機能を削除しようとしています.",uninstall_confirm:"はい、アンインストールします",extension_min_lnbits_version:"このリリースには少なくとも LNbits バージョンが必要です",payment_hash:"支払いハッシュ",fee:"料金",amount:"量",description:"説明",expiry:"有効期限",webhook:"ウェブフック",payment_proof:"支払い証明"},window.localisation.cn={confirm:"确定",server:"服务器",theme:"主题",funding:"资金",users:"用户",restart:"重新启动服务器",save:"保存",save_tooltip:"保存更改",topup:"充值",topup_wallet:"给钱包充值",topup_hint:"使用钱包ID为任何钱包充值",restart_tooltip:"重新启动服务器以使更改生效",add_funds_tooltip:"为钱包添加资金",reset_defaults:"重置为默认设置",reset_defaults_tooltip:"删除所有设置并重置为默认设置",download_backup:"下载数据库备份",name_your_wallet:"给你的 %{name}钱包起个名字",paste_invoice_label:"粘贴发票,付款请求或lnurl*",lnbits_description:"LNbits 设置简单、轻量级,可以运行在任何闪电网络的版本上,目前支持 LND、Core Lightning、OpenNode、LNPay,甚至 LNbits 本身!您可以为自己运行 LNbits,或者为他人轻松提供资金托管。每个钱包都有自己的 API 密钥,你可以创建的钱包数量没有限制。能够把资金分开管理使 LNbits 成为一款有用的资金管理和开发工具。扩展程序增加了 LNbits 的额外功能,所以你可以在闪电网络上尝试各种尖端技术。我们已经尽可能简化了开发扩展程序的过程,作为一个免费和开源的项目,我们鼓励人们开发并提交自己的扩展程序。",export_to_phone:"通过二维码导出到手机",export_to_phone_desc:"这个二维码包含您钱包的URL。您可以使用手机扫描的方式打开您的钱包。",wallets:"钱包",add_wallet:"添加新钱包",delete_wallet:"删除钱包",delete_wallet_desc:"整个钱包将被删除,资金将无法恢复",rename_wallet:"重命名钱包",update_name:"更新名称",press_to_claim:"点击领取比特币",donate:"捐献",view_github:"在GitHub上查看",voidwallet_active:"VoidWallet 已激活!付款功能已禁用。",use_with_caution:"请谨慎使用 - %{name}钱包还处于测试版阶段",toggle_darkmode:"切换暗黑模式",view_swagger_docs:"查看 LNbits Swagger API 文档",api_docs:"API文档",commit_version:"提交版本",lnbits_version:"LNbits版本",runs_on:"可运行在",credit_hint:"按 Enter 键充值账户",credit_label:"%{denomination} 充值",paste_request:"粘贴请求",create_invoice:"创建发票",camera_tooltip:"用相机扫描发票/二维码",export_csv:"导出为CSV",transactions:"交易记录",chart_tooltip:"显示图表",pending:"待处理",copy_invoice:"复制发票",close:"关闭",cancel:"取消",scan:"扫描",read:"读取",pay:"付款",memo:"备注",date:"日期",processing_payment:"正在处理支付...",not_enough_funds:"资金不足!",search_by_tag_memo_amount:"按标签、备注、金额搜索",invoice_waiting:"待支付的发票",payment_received:"收到付款",payment_sent:"付款已发送",receive:"收款",send:"付款",outgoing_payment_pending:"付款正在等待处理",drain_funds:"清空资金",drain_funds_desc:"这是一个 LNURL-取款的二维码,用于从该钱包中提取全部资金。请不要与他人分享。它与 balanceCheck 和 balanceNotify 兼容,因此在第一次取款后,您的钱包还可能会持续从这里提取资金",i_understand:"我明白",copy_wallet_url:"复制钱包URL",disclaimer_dialog:"登录功能将在以后的更新中发布,请将此页面加为书签,以便将来访问您的钱包!此服务处于测试阶段,我们不对资金的丢失承担任何责任。",no_transactions:"尚未进行任何交易",manage_server:"管理服务器",extensions:"扩展程序",no_extensions:"你没有安装任何扩展程序 :(",created:"已创建",search_extensions:"搜索扩展程序",warning:"警告",manage:"管理",repository:"代码库",confirm_continue:"你确定要继续吗?",manage_extension_details:"安装/卸载扩展程序",install:"安装",uninstall:"卸载",drop_db:"删除数据",open:"打开",enable:"启用",enable_extension_details:"为当前用户启用扩展程序",disable:"禁用",installed:"已安装",activated:"已激活",deactivated:"已停用",release_notes:"发布说明",activate_extension_details:"对用户开放或禁用扩展程序",featured:"精选",all:"全部",only_admins_can_install:"(只有管理员账户可以安装扩展)",admin_only:"仅限管理员",new_version:"新版本",extension_depends_on:"依赖于:",extension_rating_soon:"即将推出评分",extension_installed_version:"已安装的版本",extension_uninstall_warning:"您即将对所有用户删除该扩展程序。",uninstall_confirm:"是的,卸载",extension_db_drop_info:"该扩展程序的所有数据将被永久删除。此操作无法撤销!",extension_db_drop_warning:"您即将删除该扩展的所有数据。请继续输入扩展程序名称以确认操作:",extension_min_lnbits_version:"此版本要求最低的 LNbits 版本为",payment_hash:"付款哈希",fee:"费",amount:"金额",unit:"单位",description:"详情",expiry:"过期时间",webhook:"Webhook",payment_proof:"付款证明"},window.localisation.nl={server:"Server",theme:"Thema",funding:"Financiering",users:"Gebruikers",restart:"Server opnieuw opstarten",save:"Opslaan",save_tooltip:"Sla uw wijzigingen op",topup:"Bijvullen",topup_wallet:"Een portemonnee bijvullen",topup_hint:"Gebruik de portemonnee-ID om elke portemonnee bij te vullen",restart_tooltip:"Start de server opnieuw op zodat wijzigingen van kracht worden",add_funds_tooltip:"Voeg geld toe aan een portemonnee.",reset_defaults:"Standaardinstellingen herstellen",reset_defaults_tooltip:"Wis alle instellingen en herstel de standaardinstellingen.",download_backup:"Databaseback-up downloaden",name_your_wallet:"Geef je %{name} portemonnee een naam",paste_invoice_label:"Plak een factuur, betalingsverzoek of lnurl-code*",lnbits_description:"Gemakkelijk in te stellen en lichtgewicht, LNbits kan op elke lightning-netwerkfinancieringsbron draaien, ondersteunt op dit moment LND, Core Lightning, OpenNode, LNPay en zelfs LNbits zelf! U kunt LNbits voor uzelf laten draaien of gemakkelijk een bewaardersoplossing voor anderen bieden. Elke portemonnee heeft zijn eigen API-sleutels en er is geen limiet aan het aantal portemonnees dat u kunt maken. Het kunnen partitioneren van fondsen maakt LNbits een nuttige tool voor geldbeheer en als ontwikkelingstool. Extensies voegen extra functionaliteit toe aan LNbits, zodat u kunt experimenteren met een reeks toonaangevende technologieën op het bliksemschichtnetwerk. We hebben het ontwikkelen van extensies zo eenvoudig mogelijk gemaakt en als een gratis en opensource-project moedigen we mensen aan om hun eigen ontwikkelingen in te dienen.",export_to_phone:"Exporteren naar telefoon met QR-code",export_to_phone_desc:"Deze QR-code bevat uw portemonnee-URL met volledige toegang. U kunt het vanaf uw telefoon scannen om uw portemonnee van daaruit te openen.",wallets:"Portemonnees",add_wallet:"Een nieuwe portemonnee toevoegen",delete_wallet:"Portemonnee verwijderen",delete_wallet_desc:"Deze hele portemonnee wordt verwijderd, de fondsen worden NIET TERUGGEVONDEN.",rename_wallet:"Portemonnee hernoemen",update_name:"Naam bijwerken",press_to_claim:"Druk om bitcoin te claimen",donate:"Doneren",view_github:"Bekijken op GitHub",voidwallet_active:"VoidWallet is actief! Betalingen uitgeschakeld",use_with_caution:"GEBRUIK MET VOORZICHTIGHEID - %{name} portemonnee is nog in BETA",toggle_darkmode:"Donkere modus aan/uit",view_swagger_docs:"Bekijk LNbits Swagger API-documentatie",api_docs:"API-documentatie",commit_version:"Commit-versie",lnbits_version:"LNbits-versie",runs_on:"Draait op",credit_hint:"Druk op Enter om de rekening te crediteren",credit_label:"%{denomination} te crediteren",paste_request:"Verzoek plakken",create_invoice:"Factuur aanmaken",camera_tooltip:"Gebruik de camera om een factuur/QR-code te scannen",export_csv:"Exporteer naar CSV",transactions:"Transacties",chart_tooltip:"Toon grafiek",pending:"In behandeling",copy_invoice:"Kopieer factuur",close:"Sluiten",cancel:"Annuleren",scan:"Scannen",read:"Lezen",pay:"Betalen",memo:"Memo",date:"Datum",processing_payment:"Verwerking betaling...",not_enough_funds:"Onvoldoende saldo!",search_by_tag_memo_amount:"Zoeken op tag, memo, bedrag",invoice_waiting:"Factuur wachtend op betaling",payment_received:"Betaling ontvangen",payment_sent:"Betaling verzonden",receive:"ontvangen",send:"versturen",voutgoing_payment_pending:"Uitgaande betaling in behandeling",drain_funds:"Geld opnemen",drain_funds_desc:"Dit is een LNURL-withdraw QR-code om alles uit deze portemonnee te halen. Deel deze code niet met anderen. Het is compatibel met balanceCheck en balanceNotify zodat jouw portemonnee continu geld kan blijven opnemen vanaf hier na de eerste opname.",i_understand:"Ik begrijp het",copy_wallet_url:"Kopieer portemonnee-URL",disclaimer_dialog:"Inlogfunctionaliteit wordt uitgebracht in een toekomstige update. Zorg er nu voor dat je deze pagina als favoriet markeert om in de toekomst toegang te krijgen tot je portemonnee! Deze service is in BETA en we zijn niet verantwoordelijk voor mensen die de toegang tot hun fondsen verliezen.",no_transactions:"Er zijn nog geen transacties gedaan",manage_extensions:"Beheer extensies",manage_server:"Beheer server",extensions:"Extensies",no_extensions:"Je hebt geen extensies geïnstalleerd :(",created:"Aangemaakt",payment_hash:"Betalings-hash",fee:"Kosten",amount:"Bedrag",unit:"Eenheid",description:"Beschrijving",expiry:"Vervaldatum",webhook:"Webhook",payment_proof:"Betalingsbewijs"},window.localisation.pi={server:"Cap`n",theme:"Theme",funding:"Funding",users:"Buccaneers",restart:"Arr, restart Cap`n",save:"Bury Treasure",save_tooltip:"Bury yer changes, matey",topup:"Top up the Chest",topup_wallet:"Add more doubloons to the chest",topup_hint:"Use the chest ID to top up any chest",restart_tooltip:"Restart the Cap`n for changes to take effect, arr!",add_funds_tooltip:"Add doubloons to a chest and make it heavier",reset_defaults:"Reset to Davy Jones Locker",reset_defaults_tooltip:"Scuttle all settings and reset to Davy Jones Locker. Aye, start anew!",download_backup:"Download database booty",name_your_wallet:"Name yer %{name} treasure chest",paste_invoice_label:"Paste a booty, payment request or lnurl code, matey!",lnbits_description:"Arr, easy to set up and lightweight, LNbits can run on any lightning-network funding source, currently supporting LND, Core Lightning, OpenNode, LNPay and even LNbits itself! Ye can run LNbits for yourself, or easily offer a custodian solution for others. Each chest has its own API keys and there be no limit to the number of chests ye can make. Being able to partition booty makes LNbits a useful tool for money management and as a development tool. Arr, extensions add extra functionality to LNbits so ye can experiment with a range of cutting-edge technologies on the lightning network. We have made developing extensions as easy as possible, and as a free and open-source project, we encourage scallywags to develop and submit their own.",export_to_phone:"Export to Phone with QR Code, me hearties",export_to_phone_desc:"This QR code contains yer chest URL with full access. Ye can scan it from yer phone to open yer chest from there, arr!",wallets:"Treasure Chests",add_wallet:"Add a new chest and fill it with doubloons!",delete_wallet:"Scuttle the Chest",delete_wallet_desc:"This whole chest will be scuttled, the booty will be UNRECOVERABLE. Aye, be warned!",rename_wallet:"Rename the Chest, me hearty",update_name:"Update name like a captain",press_to_claim:"Press to claim gold doubloons, matey!",donate:"Donate like a true pirate!",view_github:"View on GitHub and find treasures",voidwallet_active:"VoidWallet be active! Payments disabled",use_with_caution:"USE WITH CAUTION - %{name} chest be still in BETA. Aye, be careful!",toggle_darkmode:"Toggle Dark Mode, arr!",view_swagger_docs:"View LNbits Swagger API docs and learn the secrets",api_docs:"API docs for the scallywags",commit_version:"Commit version like a true pirate",lnbits_version:"LNbits version, arr!",runs_on:"Runs on, matey",credit_hint:"Press Enter to credit account and make it richer",credit_label:"%{denomination} to credit, arr!",paste_request:"Paste Request and find treasures",create_invoice:"Create Booty Request and get rich, me hearties!",camera_tooltip:"Use spyglass to scan a booty/QR, arr!",export_csv:"Export to CSV and keep track of the booty",transactions:"Pirate Transactions and loot",chart_tooltip:"Show ye chart, me hearty",pending:"Pendin like a ship at anchor",copy_invoice:"Copy booty request, arrr",close:"Batten down the hatches, we be closin",cancel:"Abandon ship! We be retreatin",scan:"Avast! Scan me beauty, arrr",read:"Read it, if ye dare",pay:"Pay up or walk the plank, ye scallywag",memo:"Message in a bottle, argh",date:"Date of the map, me matey",processing_payment:"Processing yer payment... don´t make me say it again",not_enough_funds:"Arrr, ye don´t have enough doubloons! Walk the plank!",search_by_tag_memo_amount:"Search by tag, message, or booty amount, savvy",invoice_waiting:"Invoice waiting to be plundered, arrr",payment_received:"Payment Received like a treasure, argh",payment_sent:"Payment Sent, hoist the colors! We´ve got some doubloons!",receive:"booty",send:"hoist",outgoing_payment_pending:"Outgoing payment pending in the port, ye scurvy dog",drain_funds:"Plunder all the doubloons, ye buccaneer",drain_funds_desc:"This be an LNURL-withdraw QR code for slurpin everything from this wallet. Don`t share with anyone. It be compatible with balanceCheck and balanceNotify so yer wallet may keep pullin` the funds continuously from here after the first withdraw.",i_understand:"I understand, yo ho ho and a bottle of rum!",copy_wallet_url:"Copy wallet URL like a map, savvy",disclaimer_dialog:"Login functionality to be released in a future update, for now, make sure ye bookmark this page for future access to your booty! This service be in BETA, and we hold no responsibility for people losing access to doubloons.",no_transactions:"No transactions made yet, me hearties. Belay that!",manage_extensions:"Manage Yer Extensions, ye landlubber",manage_server:"Manage Yer Server, me hearty",extensions:"Yer Extensions, ye scurvy dog",no_extensions:"Ye don't have any extensions installed, ye scallywag :(. Where be yer loot?",created:"Created like a legend, savvy",payment_hash:"Payment Hash like a treasure map, arrr",fee:"Fee like a toll to cross a strait, matey",amount:"Amount of doubloons, arrr",unit:"Unit of measurement like a fathom, ye buccaneer",description:"Description like a tale of adventure, arrr",expiry:"Expiry like the food on a ship, ye landlubber",webhook:"Webhook like a fishing line, arrr",payment_proof:"Payment Proof like a seal of authenticity, argh"},window.localisation.pl={server:"Serwer",theme:"Motyw",funding:"Finansowanie",users:"Użytkownicy",restart:"Restart serwera",save:"Zapisz",save_tooltip:"Zapisz zmiany",topup:"Doładowanie",topup_wallet:"Doładuj portfel",topup_hint:"Użyj ID portfela aby go doładować",restart_tooltip:"Zrestartuj serwer aby aktywować zmiany",add_funds_tooltip:"Dodaj środki do portfela.",reset_defaults:"Powrót do ustawień domyślnych",reset_defaults_tooltip:"Wymaż wszystkie ustawienia i ustaw domyślne.",download_backup:"Pobierz kopię zapasową bazy danych",name_your_wallet:"Nazwij swój portfel %{name}",paste_invoice_label:"Wklej fakturę, żądanie zapłaty lub kod lnurl *",lnbits_description:"Łatwy i lekki w konfiguracji, LNbits może działać w oparciu o dowolne źródło finansowania w sieci lightning, obecnie wspiera LND, Core Lightning, OpenNode, LNPay czy nawet inną instancję LNbits! Możesz uruchomić instancję LNbits dla siebie lub dla innych. Każdy portfel ma swoje klucze API i nie ma ograniczeń jeśli chodzi o ilość portfeli. LNbits umożliwia dzielenie środków w celu zarządzania nimi, jest również dobrym narzędziem deweloperskim. Rozszerzenia zwiększają funkcjonalność LNbits co umożliwia eksperymentowanie z nowym technologiami w sieci lightning. Tworzenie rozszerzeń jest proste dlatego zachęcamy innych deweloperów do tworzenia dodatkowych funkcjonalności i wysyłanie do nas PR",export_to_phone:"Eksport kodu QR na telefon",export_to_phone_desc:"Ten kod QR zawiera adres URL Twojego portfela z pełnym dostępem do niego. Możesz go zeskanować na swoim telefonie aby otworzyć na nim ten portfel.",wallets:"Portfele",add_wallet:"Dodaj portfel",delete_wallet:"Usuń portfel",delete_wallet_desc:"Ten portfel zostanie usunięty, środków na nim zgromadzonych NIE BĘDZIE MOŻNA ODZYSKAĆ.",rename_wallet:"Zmień nazwę portfela",update_name:"Zaktualizuj nazwę",press_to_claim:"Naciśnij aby odebrać Bitcoiny",donate:"Podaruj",view_github:"Otwórz GitHub",voidwallet_active:"VoidWallet jest aktywny! Płatności są niemożliwe",use_with_caution:"KORZYSTAJ Z ROZWAGĄ - portfel %{name} jest w wersji BETA",toggle_darkmode:"Tryb nocny",view_swagger_docs:"Dokumentacja Swagger API",api_docs:"Dokumentacja API",commit_version:"Commit",lnbits_version:"Wersja LNbits",runs_on:"Działa na",credit_hint:"Naciśnij Enter aby doładować konto",credit_label:"%{denomination} doładowanie",paste_request:"Wklej żądanie",create_invoice:"Utwórz fakturę",camera_tooltip:"Użyj kamery aby zeskanować fakturę lub kod QR",export_csv:"Eksport do CSV",transactions:"Transakcje",chart_tooltip:"Wykres",pending:"W toku",copy_invoice:"Skopiuj fakturę",close:"Zamknij",cancel:"Anuluj",scan:"Skanuj",read:"Odczytaj",pay:"Zapłać",memo:"Memo",date:"Data",processing_payment:"Przetwarzam płatność...",not_enough_funds:"Brak wystarczających środków!",search_by_tag_memo_amount:"Szukaj po tagu, memo czy wartości",invoice_waiting:"Faktura oczekuje na zapłatę",payment_received:"Otrzymano płatność",payment_sent:"Wysłano płatność",receive:"odbierać",send:"wysłać",outgoing_payment_pending:"Płatność wychodząca w toku",drain_funds:"Opróżnij środki",drain_funds_desc:"To jest kod QR służący do opróżnienia portfela (LNURL-withdraw). Nie udostępniaj go nikomu. Ten kod jest kompatybilny z funkcjami, które umożliwiają wielokrotne żądania aż do zupełnego opróżnienia portfela.",i_understand:"Rozumiem",copy_wallet_url:"Skopiuj URL portfela",disclaimer_dialog:"Funkcja logowania zostanie uruchomiona w przyszłości. Póki co upewnij się, że zapisałeś adres URL tej strony aby mieć dostęp do tego portfela. Nie udostępniaj adresu tej strony nikomu, kto nie ma mieć do tego portfela dostępu! Ta usługa działa w wersji BETA, nie odpowiadamy za utratę dostępu do środków przez osoby używające LNbits.",no_transactions:"Brak transakcji",manage_extensions:"Zarządzaj rozszerzeniami",manage_server:"Zarządzaj serwerem",extensions:"Rozszerzenia",no_extensions:"Nie masz zainstalowanych żadnych rozszerzeń :(",created:"Utworzono",payment_hash:"Hash Płatności",fee:"Opłata",amount:"Wartość",unit:"Jednostka",description:"Opis",expiry:"Wygasa",webhook:"Webhook",payment_proof:"Potwierdzenie płatności"},window.localisation.fr={server:"Serveur",theme:"Thème",funding:"Financement",users:"Utilisateurs",restart:"Redémarrer le serveur",save:"Enregistrer",save_tooltip:"Enregistrer vos modifications",topup:"Renflouer",topup_wallet:"Reflouer un portefeuille",topup_hint:"Utilisez l'ID du portefeuille pour recharger n'importe quel portefeuille",restart_tooltip:"Redémarrez le serveur pour que les changements prennent effet",add_funds_tooltip:"Ajouter des fonds à un portefeuille.",reset_defaults:"Réinitialiser aux valeurs par défaut",reset_defaults_tooltip:"Supprimer tous les paramètres et les réinitialiser aux valeurs par défaut.",download_backup:"Télécharger la sauvegarde de la base de données",name_your_wallet:"Nommez votre portefeuille %{name}",paste_invoice_label:"Coller une facture, une demande de paiement ou un code lnurl *",lnbits_description:"Facile à installer et léger, LNbits peut fonctionner sur n'importe quelle source de financement du réseau Lightning, prenant actuellement en charge LND, Core Lightning, OpenNode, LNPay et même LNbits lui-même! Vous pouvez exécuter LNbits pour vous-même ou offrir facilement une solution de gardien pour les autres. Chaque portefeuille a ses propres clés API et il n'y a pas de limite au nombre de portefeuilles que vous pouvez créer. La capacité de partitionner les fonds rend LNbits un outil utile pour la gestion de l'argent et comme outil de développement. Les extensions ajoutent une fonctionnalité supplémentaire à LNbits afin que vous puissiez expérimenter une gamme de technologies de pointe sur le réseau Lightning. Nous avons rendu le développement d'extensions aussi simple que possible et, en tant que projet gratuit et open source, nous encourageons les gens à développer et à soumettre les leurs.",export_to_phone:"Exporter vers le téléphone avec un code QR",export_to_phone_desc:"Ce code QR contient l'URL de votre portefeuille avec un accès complet. Vous pouvez le scanner depuis votre téléphone pour ouvrir votre portefeuille depuis là-bas.",wallets:"Portefeuilles",add_wallet:"Ajouter un nouveau portefeuille",delete_wallet:"Supprimer le portefeuille",delete_wallet_desc:"Ce portefeuille entier sera supprimé et les fonds seront IRRECUPERABLES.",rename_wallet:"Renommer le portefeuille",update_name:"Mettre à jour le nom",press_to_claim:"Appuyez pour demander du Bitcoin",donate:"Donner",view_github:"Voir sur GitHub",voidwallet_active:"VoidWallet est actif! Paiements désactivés",use_with_caution:"UTILISER AVEC PRUDENCE - Le portefeuille %{name} est toujours en version BETA",toggle_darkmode:"Basculer le mode sombre",view_swagger_docs:"Voir les documents de l'API Swagger de LNbits",api_docs:"Documents de l'API",commit_version:"Version de commit",lnbits_version:"Version de LNbits",runs_on:"Fonctionne sur",credit_hint:"Appuyez sur Entrée pour créditer le compte",credit_label:"%{denomination} à créditer",paste_request:"Coller la requête",create_invoice:"Créer une facture",camera_tooltip:"Utiliser la caméra pour scanner une facture / un code QR",export_csv:"Exporter vers CSV",transactions:"Transactions",chart_tooltip:"Afficher le graphique",pending:"En attente",copy_invoice:"Copier la facture",close:"Fermer",cancel:"Annuler",scan:"Scanner",read:"Lire",pay:"Payer",memo:"Mémo",date:"Date",processing_payment:"Traitement du paiement...",not_enough_funds:"Fonds insuffisants !",search_by_tag_memo_amount:"Rechercher par tag, mémo, montant",invoice_waiting:"Facture en attente de paiement",payment_received:"Paiement reçu",payment_sent:"Paiement envoyé",receive:"recevoir",send:"envoyer",outgoing_payment_pending:"Paiement sortant en attente",drain_funds:"Vider les fonds",drain_funds_desc:"Il s'agit d'un code QR LNURL-withdraw pour tout aspirer de ce portefeuille. Ne le partagez avec personne. Il est compatible avec balanceCheck et balanceNotify, de sorte que votre portefeuille peut continuer à retirer les fonds continuellement à partir d'ici après le premier retrait.",i_understand:"J'ai compris",copy_wallet_url:"Copier l'URL du portefeuille",disclaimer_dialog:"La fonctionnalité de connexion sera publiée dans une future mise à jour, pour l'instant, assurez-vous de mettre cette page en favori pour accéder à votre portefeuille ultérieurement ! Ce service est en BETA, et nous ne sommes pas responsables des personnes qui perdent l'accès à leurs fonds.",no_transactions:"Aucune transaction effectuée pour le moment",manage_extensions:"Gérer les extensions",manage_server:"Gérer le serveur",extensions:"Extensions",no_extensions:"Vous n'avez installé aucune extension :(",created:"Créé",payment_hash:"Hash de paiement",fee:"Frais",amount:"Montant",unit:"Unité",description:"Description",expiry:"Expiration",webhook:"Webhook",payment_proof:"Preuve de paiement"},window.localisation.nl={server:"Server",theme:"Thema",funding:"Financiering",users:"Gebruikers",restart:"Server opnieuw opstarten",save:"Opslaan",save_tooltip:"Sla uw wijzigingen op",topup:"Bijvullen",topup_wallet:"Een portemonnee bijvullen",topup_hint:"Gebruik de portemonnee-ID om elke portemonnee bij te vullen",restart_tooltip:"Start de server opnieuw op zodat wijzigingen van kracht worden",add_funds_tooltip:"Voeg geld toe aan een portemonnee.",reset_defaults:"Standaardinstellingen herstellen",reset_defaults_tooltip:"Wis alle instellingen en herstel de standaardinstellingen.",download_backup:"Databaseback-up downloaden",name_your_wallet:"Geef je %{name} portemonnee een naam",paste_invoice_label:"Plak een factuur, betalingsverzoek of lnurl-code*",lnbits_description:"Gemakkelijk in te stellen en lichtgewicht, LNbits kan op elke lightning-netwerkfinancieringsbron draaien, ondersteunt op dit moment LND, Core Lightning, OpenNode, LNPay en zelfs LNbits zelf! U kunt LNbits voor uzelf laten draaien of gemakkelijk een bewaardersoplossing voor anderen bieden. Elke portemonnee heeft zijn eigen API-sleutels en er is geen limiet aan het aantal portemonnees dat u kunt maken. Het kunnen partitioneren van fondsen maakt LNbits een nuttige tool voor geldbeheer en als ontwikkelingstool. Extensies voegen extra functionaliteit toe aan LNbits, zodat u kunt experimenteren met een reeks toonaangevende technologieën op het bliksemschichtnetwerk. We hebben het ontwikkelen van extensies zo eenvoudig mogelijk gemaakt en als een gratis en opensource-project moedigen we mensen aan om hun eigen ontwikkelingen in te dienen.",export_to_phone:"Exporteren naar telefoon met QR-code",export_to_phone_desc:"Deze QR-code bevat uw portemonnee-URL met volledige toegang. U kunt het vanaf uw telefoon scannen om uw portemonnee van daaruit te openen.",wallets:"Portemonnees",add_wallet:"Een nieuwe portemonnee toevoegen",delete_wallet:"Portemonnee verwijderen",delete_wallet_desc:"Deze hele portemonnee wordt verwijderd, de fondsen worden NIET TERUGGEVONDEN.",rename_wallet:"Portemonnee hernoemen",update_name:"Naam bijwerken",press_to_claim:"Druk om bitcoin te claimen",donate:"Doneren",view_github:"Bekijken op GitHub",voidwallet_active:"VoidWallet is actief! Betalingen uitgeschakeld",use_with_caution:"GEBRUIK MET VOORZICHTIGHEID - %{name} portemonnee is nog in BETA",toggle_darkmode:"Donkere modus aan/uit",view_swagger_docs:"Bekijk LNbits Swagger API-documentatie",api_docs:"API-documentatie",commit_version:"Commit-versie",lnbits_version:"LNbits-versie",runs_on:"Draait op",credit_hint:"Druk op Enter om de rekening te crediteren",credit_label:"%{denomination} te crediteren",paste_request:"Verzoek plakken",create_invoice:"Factuur aanmaken",camera_tooltip:"Gebruik de camera om een factuur/QR-code te scannen",export_csv:"Exporteer naar CSV",transactions:"Transacties",chart_tooltip:"Toon grafiek",pending:"In behandeling",copy_invoice:"Kopieer factuur",close:"Sluiten",cancel:"Annuleren",scan:"Scannen",read:"Lezen",pay:"Betalen",memo:"Memo",date:"Datum",processing_payment:"Verwerking betaling...",not_enough_funds:"Onvoldoende saldo!",search_by_tag_memo_amount:"Zoeken op tag, memo, bedrag",invoice_waiting:"Factuur wachtend op betaling",payment_received:"Betaling ontvangen",payment_sent:"Betaling verzonden",receive:"ontvangen",send:"versturen",voutgoing_payment_pending:"Uitgaande betaling in behandeling",drain_funds:"Geld opnemen",drain_funds_desc:"Dit is een LNURL-withdraw QR-code om alles uit deze portemonnee te halen. Deel deze code niet met anderen. Het is compatibel met balanceCheck en balanceNotify zodat jouw portemonnee continu geld kan blijven opnemen vanaf hier na de eerste opname.",i_understand:"Ik begrijp het",copy_wallet_url:"Kopieer portemonnee-URL",disclaimer_dialog:"Inlogfunctionaliteit wordt uitgebracht in een toekomstige update. Zorg er nu voor dat je deze pagina als favoriet markeert om in de toekomst toegang te krijgen tot je portemonnee! Deze service is in BETA en we zijn niet verantwoordelijk voor mensen die de toegang tot hun fondsen verliezen.",no_transactions:"Er zijn nog geen transacties gedaan",manage_extensions:"Beheer extensies",manage_server:"Beheer server",extensions:"Extensies",no_extensions:"Je hebt geen extensies geïnstalleerd :(",created:"Aangemaakt",payment_hash:"Betalings-hash",fee:"Kosten",amount:"Bedrag",unit:"Eenheid",description:"Beschrijving",expiry:"Vervaldatum",webhook:"Webhook",payment_proof:"Betalingsbewijs"},window.localisation.we={server:"Gweinydd",theme:"Thema",funding:"Arian fyndio",users:"Defnyddwyr",restart:"Ailgychwyn gweinydd",save:"Save",save_tooltip:"cadw eich newidiadau",topup:"Topup",topup_wallet:"Atodi waled",topup_hint:"Defnyddiwch ID y waled i ychwanegu at unrhyw waled",restart_tooltip:"Ailgychwyn y gweinydd er mwyn i newidiadau ddod i rym",add_funds_tooltip:"Ychwanegu arian at waled.",reset_defaults:"Ailosod i`r rhagosodiadau",reset_defaults_tooltip:"Dileu pob gosodiad ac ailosod i`r rhagosodiadau.",download_backup:"Lawrlwytho copi wrth gefn cronfa ddata",name_your_wallet:"Enwch eich waled %{name}",paste_invoice_label:"Gludwch anfoneb, cais am daliad neu god lnurl *",lnbits_description:"Yn hawdd iw sefydlu ac yn ysgafn, gall LNbits redeg ar unrhyw ffynhonnell ariannu rhwydwaith mellt, ar hyn o bryd yn cefnogi LND, Core Lightning, OpenNode, LNPay a hyd yn oed LNbits ei hun! Gallwch redeg LNbits i chi`ch hun, neu gynnig datrysiad ceidwad i eraill yn hawdd. Mae gan bob waled ei allweddi API ei hun ac nid oes cyfyngiad ar nifer y waledi y gallwch eu gwneud. Mae gallu rhannu cronfeydd yn gwneud LNbits yn arf defnyddiol ar gyfer rheoli arian ac fel offeryn datblygu. Mae estyniadau yn ychwanegu ymarferoldeb ychwanegol at LNbits fel y gallwch arbrofi gydag ystod o dechnolegau blaengar ar y rhwydwaith mellt. Rydym wedi gwneud datblygu estyniadau mor hawdd â phosibl, ac fel prosiect ffynhonnell agored am ddim, rydym yn annog pobl i ddatblygu a chyflwyno eu rhai eu hunain.",export_to_phone:"Allforio i Ffôn gyda chod QR",export_to_phone_desc:"Mae`r cod QR hwn yn cynnwys URL eich waled gyda mynediad llawn. Gallwch ei sganio o`ch ffôn i agor eich waled oddi yno.",waledi:"Waledi",add_wallet:"Ychwanegu waled newydd",delete_wallet:"Dileu waled",delete_wallet_desc:"Bydd y waled gyfan hon yn cael ei dileu, ni fydd modd adennill yr arian.",rename_wallet:"Ailenwi waled",update_name:"Diweddaru enw",press_to_claim:"Pwyswch i hawlio bitcoin",Donate:"Rhoi",view_github:"Gweld ar GitHub",voidwallet_active:" Mae VoidWallet yn weithredol! Taliadau wedi`u hanalluogi",use_with_caution:"DEFNYDDIO GYDA GOFAL - mae waled %{name} yn dal yn BETA",toggle_darkmode:"Toglo Modd Tywyll",view_swagger_docs:"Gweld dogfennau API LNbits Swagger",api_docs:"Api docs",commit_version:"fersiwn ymrwymo",lnbits_version:"Fersiwn LNbits",Runs_on:"Yn rhedeg ymlaen",credit_hint:"Pwyswch Enter i gyfrif credyd",credit_label:"%{enomination} i gredyd",paste_request:"Gludo Cais",create_invoice:"Creu Anfoneb",camera_tooltip:"Defnyddio camera i sganio anfoneb/QR",export_csv:"Allforio i CSV",trafodion:"Trafodion",chart_tooltip:"Dangos siart",pending:"yn yr arfaeth",copy_invoice:"Copi anfoneb",Close:"cau",cancel:"Canslo",scan:"Sgan",read:"Darllen",talu:"Pay",memo:"Memo",date:"Dyddiad",processing_payment:"Prosesu taliad...",not_enough_funds:"Dim digon o arian!",search_by_tag_memo_amount:"Chwilio yn ôl tag, memo, swm",invoice_waiting:"Anfoneb yn aros i gael ei thalu",payment_received:"Taliad a Dderbyniwyd",payment_sent:"Taliad a Anfonwyd",receive:"derbyn",send:"anfon",outgoing_payment_pending:"Taliad sy`n aros yn yr arfaeth",drain_funds:"Cronfeydd Draenio",drain_funds_desc:"Cod QR Tynnu`n ôl LNURL yw hwn ar gyfer slurpio popeth o`r waled hon. Peidiwch â rhannu gyda neb. Mae`n gydnaws â balanceCheck a balanceNotify felly efallai y bydd eich waled yn tynnu`r arian yn barhaus o`r fan hon ar ôl y codiad cyntaf.",i_understand:"Rwy`n deall",copy_wallet_url:"Copi URL waled",disclaimer_dialog:"Swyddogaeth mewngofnodi i`w ryddhau mewn diweddariad yn y dyfodol, am y tro, gwnewch yn siŵr eich bod yn rhoi nod tudalen ar y dudalen hon ar gyfer mynediad i`ch waled yn y dyfodol! Mae`r gwasanaeth hwn yn BETA, ac nid ydym yn gyfrifol am bobl sy`n colli mynediad at arian.",no_transactions:"Dim trafodion wedi`u gwneud eto",manage_extensions:"Rheoli Estyniadau",manage_server:"Rheoli Gweinydd",Extensions:"Estyniadau",no_extensions:"Nid oes gennych unrhyw estyniadau wedi'u gosod :(",create:"Crëwyd",payment_hash:"Hais Taliad",fee:"Fee",amount:"swm",unit:"Uned",description:"Disgrifiad",expiry:"dod i ben",webhook:"bachyn we",payment_proof:"prawf taliad"},window.localisation.pt={server:"Servidor",theme:"Tema",funding:"Financiamento",users:"Usuários",restart:"Reiniciar servidor",save:"Gravar",save_tooltip:"Gravar as alterações",topup:"Reforçar conta",topup_wallet:"Recarregar uma carteira",topup_hint:"Use o ID da carteira para recarregar qualquer carteira",restart_tooltip:"Reinicie o servidor para que as alterações tenham efeito",add_funds_tooltip:"Adicionar fundos a uma carteira.",reset_defaults:"Redefinir para padrões",reset_defaults_tooltip:"Apagar todas as configurações e redefinir para os padrões.",download_backup:"Fazer backup da base de dados",name_your_wallet:"Nomeie sua carteira %{name}",paste_invoice_label:"Cole uma fatura, pedido de pagamento ou código lnurl *",lnbits_description:"Fácil de configurar e leve, o LNbits pode ser executado em qualquer fonte de financiamento da lightning-network, atualmente suportando LND, c-lightning, OpenNode, LNPay e até mesmo o LNbits em si! Você pode executar o LNbits para si mesmo ou oferecer facilmente uma solução de custódia para outros. Cada carteira tem suas próprias chaves de API e não há limite para o número de carteiras que você pode criar. Ser capaz de particionar fundos torna o LNbits uma ferramenta útil para gerenciamento de dinheiro e como uma ferramenta de desenvolvimento. As extensões adicionam funcionalidades extras ao LNbits para que você possa experimentar uma série de tecnologias de ponta na rede lightning. Nós tornamos o desenvolvimento de extensões o mais fácil possível e, como um projeto gratuito e de código aberto, incentivamos as pessoas a desenvolver e enviar as suas próprias.",export_to_phone:"Exportar para o telefone com código QR",export_to_phone_desc:"Este código QR contém a URL da sua carteira com acesso total. Você pode escaneá-lo do seu telefone para abrir sua carteira a partir dele.",wallets:"Carteiras",add_wallet:"Adicionar nova carteira",delete_wallet:"Excluir carteira",delete_wallet_desc:"Toda a carteira será excluída, os fundos serão IRRECUPERÁVEIS.",rename_wallet:"Renomear carteira",update_name:"Atualizar nome",press_to_claim:"Pressione para solicitar bitcoin",donate:"Doar",view_github:"Ver no GitHub",voidwallet_active:"VoidWallet está ativo! Pagamentos desabilitados",use_with_caution:"USE COM CAUTELA - a carteira %{name} ainda está em BETA",toggle_darkmode:"Alternar modo escuro",view_swagger_docs:"Ver a documentação da API do LNbits Swagger",api_docs:"Documentação da API",commit_version:"Versão de commit",lnbits_version:"Versão do LNbits",runs_on:"Executa em",credit_hint:"Pressione Enter para creditar a conta",credit_label:"%{denomination} para creditar",paste_request:"Colar Pedido",create_invoice:"Criar Fatura",camera_tooltip:"Usar a câmara para escanear uma fatura / QR",export_csv:"Exportar para CSV",transactions:"Transações",chart_tooltip:"Mostrar gráfico",pending:"Pendente",copy_invoice:"Copiar fatura",close:"Fechar",cancel:"Cancelar",scan:"Escanear",read:"Ler",pay:"Pagar",memo:"Memo",date:"Data",processing_payment:"Processando pagamento...",not_enough_funds:"Fundos insuficientes!",search_by_tag_memo_amount:"Pesquisar por tag, memo, quantidade",invoice_waiting:"Fatura aguardando pagamento",payment_received:"Pagamento Recebido",payment_sent:"Pagamento Enviado",receive:"receber",send:"enviar",outgoing_payment_pending:"Pagamento de saída pendente",drain_funds:"Esvasiar carteira",drain_funds_desc:"Este é um código QR de saque LNURL para sacar tudo desta carteira. Não o partilhe com ninguém. É compatível com balanceCheck e balanceNotify para que a sua carteira possa continuar levantando os fundos continuamente daqui após o primeiro saque.",i_understand:"Eu entendo",copy_wallet_url:"Copiar URL da carteira",disclaimer_dialog:"Funcionalidade de login a ser lançada numa atualização futura, por enquanto, certifique-se que marca esta página para acesso futuro à sua carteira! Este serviço está em BETA, e não nos responsabilizamos por pessoas que perderem o acesso aos fundos.",no_transactions:"Ainda não foram feitas transações",manage_extensions:"Gerir extensões",manage_server:"Gerir servidor",extensions:"Extensões",no_extensions:"Não há nenhuma extensão instalada :(",created:"Criado",payment_hash:"Hash de pagamento",fee:"Taxa",amount:"Quantidade",unit:"Unidade",description:"Descrição",expiry:"Validade",webhook:"Webhook",payment_proof:"Comprovativo de pagamento"},window.localisation.br={server:"Servidor",theme:"Tema",funding:"Financiamento",users:"Usuários",restart:"Reiniciar servidor",save:"Salvar",save_tooltip:"Salvar suas alterações",topup:"Recarregar",topup_wallet:"Recarregar uma carteira",topup_hint:"Use o ID da carteira para recarregar qualquer carteira",restart_tooltip:"Reinicie o servidor para que as alterações tenham efeito",add_funds_tooltip:"Adicionar fundos a uma carteira.",reset_defaults:"Redefinir para padrões",reset_defaults_tooltip:"Apagar todas as configurações e redefinir para os padrões.",download_backup:"Fazer backup do banco de dados",name_your_wallet:"Nomeie sua carteira %{name}",paste_invoice_label:"Cole uma fatura, pedido de pagamento ou código lnurl *",lnbits_description:"Fácil de configurar e leve, o LNbits pode ser executado em qualquer fonte de financiamento da lightning-network, atualmente suportando LND, c-lightning, OpenNode, LNPay e até mesmo o LNbits em si! Você pode executar o LNbits para si mesmo ou oferecer facilmente uma solução de custódia para outros. Cada carteira tem suas próprias chaves de API e não há limite para o número de carteiras que você pode criar. Ser capaz de particionar fundos torna o LNbits uma ferramenta útil para gerenciamento de dinheiro e como uma ferramenta de desenvolvimento. As extensões adicionam funcionalidades extras ao LNbits para que você possa experimentar uma série de tecnologias de ponta na rede lightning. Nós tornamos o desenvolvimento de extensões o mais fácil possível e, como um projeto gratuito e de código aberto, incentivamos as pessoas a desenvolver e enviar as suas próprias.",export_to_phone:"Exportar para o telefone com código QR",export_to_phone_desc:"Este código QR contém a URL da sua carteira com acesso total. Você pode escaneá-lo do seu telefone para abrir sua carteira a partir dele.",wallets:"Carteiras",add_wallet:"Adicionar nova carteira",delete_wallet:"Excluir carteira",delete_wallet_desc:"Toda a carteira será excluída, os fundos serão IRRECUPERÁVEIS.",rename_wallet:"Renomear carteira",update_name:"Atualizar nome",press_to_claim:"Pressione para solicitar bitcoin",donate:"Doar",view_github:"Ver no GitHub",voidwallet_active:"VoidWallet está ativo! Pagamentos desabilitados",use_with_caution:"USE COM CAUTELA - a carteira %{name} ainda está em BETA",toggle_darkmode:"Alternar modo escuro",view_swagger_docs:"Ver a documentação da API do LNbits Swagger",api_docs:"Documentação da API",commit_version:"Versão de commit",lnbits_version:"Versão do LNbits",runs_on:"Executa em",credit_hint:"Pressione Enter para creditar a conta",credit_label:"%{denomination} para creditar",paste_request:"Colar Pedido",create_invoice:"Criar Fatura",camera_tooltip:"Usar a câmara para escanear uma fatura / QR",export_csv:"Exportar para CSV",transactions:"Transações",chart_tooltip:"Mostrar gráfico",pending:"Pendente",copy_invoice:"Copiar fatura",close:"Fechar",cancel:"Cancelar",scan:"Escanear",read:"Ler",pay:"Pagar",memo:"Memo",date:"Data",processing_payment:"Processando pagamento...",not_enough_funds:"Fundos insuficientes!",search_by_tag_memo_amount:"Pesquisar por tag, memo, quantidade",invoice_waiting:"Fatura aguardando pagamento",payment_received:"Pagamento Recebido",payment_sent:"Pagamento Enviado",receive:"receber",send:"enviar",outgoing_payment_pending:"Pagamento pendente de saída",drain_funds:"Drenar Fundos",drain_funds_desc:"Este é um código QR de retirada do LNURL para sugar tudo desta carteira. Não compartilhe com ninguém. É compatível com balanceCheck e balanceNotify para que sua carteira possa continuar retirando os fundos continuamente daqui após a primeira retirada.",i_understand:"Eu entendo",copy_wallet_url:"Copiar URL da carteira",disclaimer_dialog:"Funcionalidade de login a ser lançada em uma atualização futura, por enquanto, certifique-se de marcar esta página para acesso futuro à sua carteira! Este serviço está em BETA, e não nos responsabilizamos por pessoas que perderem o acesso aos fundos.",no_transactions:"Ainda não foram feitas transações",manage_extensions:"Gerenciar extensões",manage_server:"Gerenciar servidor",extensions:"Extensões",no_extensions:"Você não possui nenhuma extensão instalada :(",created:"Criado",payment_hash:"Hash de pagamento",fee:"Taxa",amount:"Quantidade",unit:"Unidade",description:"Descrição",expiry:"Validade",webhook:"Webhook",payment_proof:"Comprovante de pagamento"},Vue.use(VueI18n),window.LOCALE="en",window.i18n=new VueI18n({locale:window.LOCALE,fallbackLocale:window.LOCALE,messages:window.localisation}),window.EventHub=new Vue,window.LNbits={api:{request:function(t,e,n,i){return axios({method:t,url:e,headers:{"X-Api-Key":n},data:i})},createInvoice:async function(t,e,n,i="sat",r=null){return this.request("post","/api/v1/payments",t.inkey,{out:!1,amount:e,memo:n,unit:i,lnurl_callback:r})},payInvoice:function(t,e){return this.request("post","/api/v1/payments",t.adminkey,{out:!0,bolt11:e})},payLnurl:function(t,e,n,i,r="",o=""){return this.request("post","/api/v1/payments/lnurl",t.adminkey,{callback:e,description_hash:n,amount:i,comment:o,description:r})},authLnurl:function(t,e){return this.request("post","/api/v1/lnurlauth",t.adminkey,{callback:e})},getWallet:function(t){return this.request("get","/api/v1/wallet",t.inkey)},getPayments:function(t,e){const n=new URLSearchParams(e);return this.request("get","/api/v1/payments/paginated?"+n,t.inkey)},getPayment:function(t,e){return this.request("get","/api/v1/payments/"+e,t.inkey)}},events:{onInvoicePaid:function(t,e){let n=t=>{e(JSON.parse(t.data))};return this.listenersCount=this.listenersCount||{[t.inkey]:0},this.listenersCount[t.inkey]++,this.listeners=this.listeners||{},t.inkey in this.listeners||(this.listeners[t.inkey]=new EventSource("/api/v1/payments/sse?api-key="+t.inkey)),this.listeners[t.inkey].addEventListener("payment-received",n),()=>{this.listeners[t.inkey].removeEventListener("payment-received",n),this.listenersCount[t.inkey]--,this.listenersCount[t.inkey]<=0&&(this.listeners[t.inkey].close(),delete this.listeners[t.inkey])}}},href:{createWallet:function(t,e){window.location.href="/wallet?"+(e?"usr="+e+"&":"")+"nme="+t},updateWallet:function(t,e,n){window.location.href=`/wallet?usr=${e}&wal=${n}&nme=${t}`},deleteWallet:function(t,e){window.location.href="/deletewallet?usr="+e+"&wal="+t}},map:{extension:function(t){var e=_.object(["code","isValid","isAdminOnly","name","shortDescription","tile","contributors","hidden"],t);return e.url=["/",e.code,"/"].join(""),e},user:function(t){var e={id:t.id,admin:t.admin,email:t.email,extensions:t.extensions,wallets:t.wallets,admin:t.admin},n=this.wallet;return e.wallets=e.wallets.map((function(t){return n(t)})).sort((function(t,e){return t.name.localeCompare(e.name)})),e.walletOptions=e.wallets.map((function(t){return{label:[t.name," - ",t.id].join(""),value:t.id}})),e},wallet:function(t){return newWallet={id:t.id,name:t.name,adminkey:t.adminkey,inkey:t.inkey},newWallet.msat=t.balance_msat,newWallet.sat=Math.round(t.balance_msat/1e3),newWallet.fsat=new Intl.NumberFormat(window.LOCALE).format(newWallet.sat),newWallet.url=["/wallet?usr=",t.user,"&wal=",t.id].join(""),newWallet},payment:function(t){return obj={checking_id:t.checking_id,pending:t.pending,amount:t.amount,fee:t.fee,memo:t.memo,time:t.time,bolt11:t.bolt11,preimage:t.preimage,payment_hash:t.payment_hash,expiry:t.expiry,extra:t.extra,wallet_id:t.wallet_id,webhook:t.webhook,webhook_status:t.webhook_status},obj.date=Quasar.utils.date.formatDate(new Date(1e3*obj.time),"YYYY-MM-DD HH:mm"),obj.dateFrom=moment(obj.date).fromNow(),obj.expirydate=Quasar.utils.date.formatDate(new Date(1e3*obj.expiry),"YYYY-MM-DD HH:mm"),obj.expirydateFrom=moment(obj.expirydate).fromNow(),obj.msat=obj.amount,obj.sat=obj.msat/1e3,obj.tag=obj.extra.tag,obj.fsat=new Intl.NumberFormat(window.LOCALE).format(obj.sat),obj.isIn=obj.amount>0,obj.isOut=obj.amount<0,obj.isPaid=!obj.pending,obj._q=[obj.memo,obj.sat].join(" ").toLowerCase(),obj}},utils:{confirmDialog:function(t){return Quasar.plugins.Dialog.create({message:t,ok:{flat:!0,color:"orange"},cancel:{flat:!0,color:"grey"}})},digestMessage:async function(t){const e=(new TextEncoder).encode(t),n=await crypto.subtle.digest("SHA-256",e);return Array.from(new Uint8Array(n)).map((t=>t.toString(16).padStart(2,"0"))).join("")},formatCurrency:function(t,e){return new Intl.NumberFormat(window.LOCALE,{style:"currency",currency:e}).format(t)},formatSat:function(t){return new Intl.NumberFormat(window.LOCALE).format(t)},notifyApiError:function(t){Quasar.plugins.Notify.create({timeout:5e3,type:{400:"warning",401:"warning",500:"negative"}[t.response.status]||"warning",message:t.response.data.message||t.response.data.detail||null,caption:[t.response.status," ",t.response.statusText].join("").toUpperCase()||null,icon:null})},search:function(t,e,n,i){try{var r=e.toLowerCase().split(i||" ");return t.filter((function(t){var e=0;return _.each(r,(function(i){-1!==t[n].indexOf(i)&&e++})),e===r.length}))}catch(e){return t}},exportCSV:function(t,e,n){var i=function(t,e){var n=void 0!==e?e(t):t;return`"${n=(n=null==n?"":String(n)).split('"').join('""')}"`},r=[t.map((function(t){return i(t.label)}))].concat(e.map((function(e){return t.map((function(t){return i("function"==typeof t.field?t.field(e):e[void 0===t.field?t.name:t.field],t.format)})).join(",")}))).join("\r\n");!0!==Quasar.utils.exportFile(`${n||"table-export"}.csv`,r,"text/csv")&&Quasar.plugins.Notify.create({message:"Browser denied file download...",color:"negative",icon:null})}}},window.windowMixin={i18n:window.i18n,data:function(){return{g:{offline:!navigator.onLine,visibleDrawer:!1,extensions:[],user:null,wallet:null,payments:[],allowedThemes:null,langs:[]}}},methods:{activeLanguage:function(t){return window.i18n.locale===t},changeLanguage:function(t){window.i18n.locale=t,this.$q.localStorage.set("lnbits.lang",t)},changeColor:function(t){document.body.setAttribute("data-theme",t),this.$q.localStorage.set("lnbits.theme",t)},toggleDarkMode:function(){this.$q.dark.toggle(),this.$q.localStorage.set("lnbits.darkMode",this.$q.dark.isActive)},copyText:function(t,e,n){var i=this.$q.notify;Quasar.utils.copyToClipboard(t).then((function(){i({message:e||"Copied to clipboard!",position:n||"bottom"})}))}},created:function(){1==this.$q.localStorage.getItem("lnbits.darkMode")||0==this.$q.localStorage.getItem("lnbits.darkMode")?this.$q.dark.set(this.$q.localStorage.getItem("lnbits.darkMode")):this.$q.dark.set(!0),this.g.allowedThemes=window.allowedThemes??["bitcoin"];let t=this.$q.localStorage.getItem("lnbits.lang");if(t&&(window.LOCALE=t,window.i18n.locale=t),this.g.langs=window.langs??[],addEventListener("offline",(t=>{this.g.offline=!0})),addEventListener("online",(t=>{this.g.offline=!1})),this.$q.localStorage.getItem("lnbits.theme")||this.changeColor(this.g.allowedThemes[0]),this.$q.localStorage.getItem("lnbits.theme")&&!this.g.allowedThemes.includes(this.$q.localStorage.getItem("lnbits.theme"))&&this.changeColor(this.g.allowedThemes[0]),this.$q.localStorage.getItem("lnbits.theme")&&document.body.setAttribute("data-theme",this.$q.localStorage.getItem("lnbits.theme")),window.user&&(this.g.user=Object.freeze(window.LNbits.map.user(window.user))),window.wallet&&(this.g.wallet=Object.freeze(window.LNbits.map.wallet(window.wallet))),window.extensions){var e=this.g.user;const t=Object.freeze(window.extensions.map((function(t){return window.LNbits.map.extension(t)})).filter((function(t){return!t.hidden})).filter((function(t){return window.user.admin?t:!t.isAdminOnly})).map((function(t){return t.isEnabled=!!e&&-1!==e.extensions.indexOf(t.code),t})).sort((function(t,e){const n=t.name.toUpperCase(),i=e.name.toUpperCase();return ni?1:0})));this.g.extensions=t}}},window.decryptLnurlPayAES=function(t,e){let n=new Uint8Array(e.match(/[\da-f]{2}/gi).map((t=>parseInt(t,16))));return crypto.subtle.importKey("raw",n,{name:"AES-CBC",length:256},!1,["decrypt"]).then((e=>{let n=Uint8Array.from(window.atob(t.iv),(t=>t.charCodeAt(0))),i=Uint8Array.from(window.atob(t.ciphertext),(t=>t.charCodeAt(0)));return crypto.subtle.decrypt({name:"AES-CBC",iv:n},e,i)})).then((t=>new TextDecoder("utf-8").decode(t)))},Vue.component("lnbits-fsat",{props:{amount:{type:Number,default:0}},template:"{{ fsat }}",computed:{fsat:function(){return LNbits.utils.formatSat(this.amount)}}}),Vue.component("lnbits-wallet-list",{data:function(){return{user:null,activeWallet:null,activeBalance:[],showForm:!1,walletName:"",LNBITS_DENOMINATION:LNBITS_DENOMINATION}},template:'\n {{ success_action.message || success_action.description }}
\n\n {{ decryptedValue }}\n
\n \n LNURL-withdraw
per prelevare tutti i fondi da questo portafoglio. Non condividerlo con nessuno. È compatibile con balanceCheck
e balanceNotify
, di conseguenza il vostro portafoglio può continuare a prelevare continuamente i fondi da qui dopo il primo prelievo",i_understand:"Ho capito",copy_wallet_url:"Copia URL portafoglio",disclaimer_dialog:"La funzionalità di login sarà rilasciata in un futuro aggiornamento; per ora, assicuratevi di salvare tra i preferiti questa pagina per accedere nuovamente in futuro a questo portafoglio! Questo servizio è in fase BETA e non ci assumiamo alcuna responsabilità per la perdita all'accesso dei fondi",no_transactions:"Nessuna transazione effettuata",manage_extensions:"Gestisci le estensioni",manage_server:"Gestisci server",estensioni:"Estensioni",no_extensions:"Non ci sono estensioni installate :(",created:"Creato",payment_hash:"Hash del pagamento",fee:"Tariffa",amount:"Importo",unit:"Unità",description:"Descrizione",expiry:"Scadenza",webhook:"Webhook",prova_di_pagamento:"Prova di pagamento"},window.localisation.jp={server:"サーバー",theme:"テーマ",funding:"資金調達",users:"ユーザー",restart:"サーバーを再起動する",save:"保存",unit:"単位",save_tooltip:"変更を保存する",topup:"トップアップ",topup_wallet:"ウォレットをトップアップする",topup_hint:"ウォレットIDを使用して、任意のウォレットをトップアップできます",restart_tooltip:"サーバーを再起動して変更を適用します",add_funds_tooltip:"ウォレットに資金を追加します。",reset_defaults:"リセット",reset_defaults_tooltip:"すべての設定を削除してデフォルトに戻します。",download_backup:"データベースのバックアップをダウンロードする",name_your_wallet:"あなたのウォレットの名前 %{name}",paste_invoice_label:"請求書を貼り付けてください",lnbits_description:"簡単にインストールでき、軽量で、LNbitsは現在LND、Core Lightning、OpenNode、LNPay、さらにLNbits自身で動作する任意のLightningネットワークの資金源で実行できます! LNbitsを自分で実行することも、他の人に優れたソリューションを提供することもできます。各ウォレットには独自のAPIキーがあり、作成できるウォレットの数に制限はありません。資金を分割する機能は、LNbitsを資金管理ツールとして使用したり、開発ツールとして使用したりするための便利なツールです。拡張機能は、LNbitsに追加の機能を追加します。そのため、LNbitsは最先端の技術をネットワークLightningで試すことができます。拡張機能を開発するのは簡単で、無料でオープンソースのプロジェクトであるため、人々が自分で開発し、自分の貢献を送信することを奨励しています。",export_to_phone:"電話にエクスポート",export_to_phone_desc:"ウォレットを電話にエクスポートすると、ウォレットを削除する前にウォレットを復元できます。ウォレットを削除すると、ウォレットの秘密鍵が削除され、ウォレットを復元することはできません。",wallets:"ウォレット",add_wallet:"ウォレットを追加",delete_wallet:"ウォレットを削除",delete_wallet_desc:"ウォレットを削除すると、ウォレットの秘密鍵が削除され、ウォレットを復元することはできません。",rename_wallet:"ウォレットの名前を変更",update_name:"名前を更新",press_to_claim:"クレームするには押してください",donate:"寄付",voidwallet_active:"Voidwalletアクティブ",use_with_caution:"注意して使用してください",toggle_dark_mode:"ダークモードを切り替える",view_swagger_docs:"Swaggerドキュメントを表示",api_docs:"APIドキュメント",commit_version:"コミットバージョン",runs_on:"で実行",credit_hint:"クレジットカードを使用して資金を追加するには、LNbitsを使用してください。",credit_label:"クレジットカード",paste_request:"リクエストを貼り付ける",create_invoice:"請求書を作成する",camera_tooltip:"QRコードを読み取る",export_csv:"CSVでエクスポート",transactions:"トランザクション",chart_tooltip:"チャートを表示するには、グラフの上にカーソルを合わせます",pending:"保留中",copy_invoice:"請求書をコピー",close:"閉じる",cancel:"キャンセル",scan:"スキャン",read:"読む",pay:"支払う",memo:"メモ",date:"日付",processing_payment:"支払い処理中",not_enough_funds:"資金が不足しています",search_by_tag_memo_amount:"タグ、メモ、金額で検索",invoice_waiting:"請求書を待っています",payment_received:"お支払いありがとうございます",payment_sent:"支払いが完了しました",receive:"受け取る",send:"送信",outgoing_payment_pending:"支払い保留中",drain_funds:"資金を排出する",drain_funds_desc:"ウォレットの残高をすべて他のウォレットに送金します",i_understand:"理解した",copy_wallet_url:"ウォレットURLをコピー",disclaimer_dialog:"ウォレットを削除すると、ウォレットの秘密鍵が削除され、ウォレットを復元することはできません。ウォレットを削除する前に、ウォレットをエクスポートしてください。",no_transactions:"トランザクションはありません",manage_server:"サーバーを管理する",extensions:"拡張機能",no_extensions:"拡張機能はありません",created:"作成済み",search_extensions:"検索拡張機能",warning:"警告",manage:"管理",repository:"リポジトリ",confirm_continue:"続行してもよろしいですか?",manage_extension_details:"拡張機能のインストール/アンインストール",install:"インストール",uninstall:"アンインストール",open:"開く",enable:"有効",enable_extension_details:"現在のユーザーの拡張機能を有効にする",disable:"無効",installed:"インストール済み",activated:"有効化",deactivated:"無効化",release_notes:"リリースノート",activate_extension_details:"拡張機能をユーザーが利用できるようにする/利用できないようにする",featured:"特集",all:"すべて",only_admins_can_install:"(管理者アカウントのみが拡張機能をインストールできます)",new_version:"新しいバージョン",extension_depends_on:"依存先:",extension_rating_soon:"評価は近日公開",extension_installed_version:"インストール済みバージョン",extension_uninstall_warning:"すべてのユーザーの拡張機能を削除しようとしています.",uninstall_confirm:"はい、アンインストールします",extension_min_lnbits_version:"このリリースには少なくとも LNbits バージョンが必要です",payment_hash:"支払いハッシュ",fee:"料金",amount:"量",description:"説明",expiry:"有効期限",webhook:"ウェブフック",payment_proof:"支払い証明"},window.localisation.cn={confirm:"确定",server:"服务器",theme:"主题",funding:"资金",users:"用户",restart:"重新启动服务器",save:"保存",save_tooltip:"保存更改",topup:"充值",topup_wallet:"给钱包充值",topup_hint:"使用钱包ID为任何钱包充值",restart_tooltip:"重新启动服务器以使更改生效",add_funds_tooltip:"为钱包添加资金",reset_defaults:"重置为默认设置",reset_defaults_tooltip:"删除所有设置并重置为默认设置",download_backup:"下载数据库备份",name_your_wallet:"给你的 %{name}钱包起个名字",paste_invoice_label:"粘贴发票,付款请求或lnurl*",lnbits_description:"LNbits 设置简单、轻量级,可以运行在任何闪电网络的版本上,目前支持 LND、Core Lightning、OpenNode、LNPay,甚至 LNbits 本身!您可以为自己运行 LNbits,或者为他人轻松提供资金托管。每个钱包都有自己的 API 密钥,你可以创建的钱包数量没有限制。能够把资金分开管理使 LNbits 成为一款有用的资金管理和开发工具。扩展程序增加了 LNbits 的额外功能,所以你可以在闪电网络上尝试各种尖端技术。我们已经尽可能简化了开发扩展程序的过程,作为一个免费和开源的项目,我们鼓励人们开发并提交自己的扩展程序。",export_to_phone:"通过二维码导出到手机",export_to_phone_desc:"这个二维码包含您钱包的URL。您可以使用手机扫描的方式打开您的钱包。",wallets:"钱包",add_wallet:"添加新钱包",delete_wallet:"删除钱包",delete_wallet_desc:"整个钱包将被删除,资金将无法恢复",rename_wallet:"重命名钱包",update_name:"更新名称",press_to_claim:"点击领取比特币",donate:"捐献",view_github:"在GitHub上查看",voidwallet_active:"VoidWallet 已激活!付款功能已禁用。",use_with_caution:"请谨慎使用 - %{name}钱包还处于测试版阶段",toggle_darkmode:"切换暗黑模式",view_swagger_docs:"查看 LNbits Swagger API 文档",api_docs:"API文档",commit_version:"提交版本",lnbits_version:"LNbits版本",runs_on:"可运行在",credit_hint:"按 Enter 键充值账户",credit_label:"%{denomination} 充值",paste_request:"粘贴请求",create_invoice:"创建发票",camera_tooltip:"用相机扫描发票/二维码",export_csv:"导出为CSV",transactions:"交易记录",chart_tooltip:"显示图表",pending:"待处理",copy_invoice:"复制发票",close:"关闭",cancel:"取消",scan:"扫描",read:"读取",pay:"付款",memo:"备注",date:"日期",processing_payment:"正在处理支付...",not_enough_funds:"资金不足!",search_by_tag_memo_amount:"按标签、备注、金额搜索",invoice_waiting:"待支付的发票",payment_received:"收到付款",payment_sent:"付款已发送",receive:"收款",send:"付款",outgoing_payment_pending:"付款正在等待处理",drain_funds:"清空资金",drain_funds_desc:"这是一个 LNURL-取款的二维码,用于从该钱包中提取全部资金。请不要与他人分享。它与 balanceCheck 和 balanceNotify 兼容,因此在第一次取款后,您的钱包还可能会持续从这里提取资金",i_understand:"我明白",copy_wallet_url:"复制钱包URL",disclaimer_dialog:"登录功能将在以后的更新中发布,请将此页面加为书签,以便将来访问您的钱包!此服务处于测试阶段,我们不对资金的丢失承担任何责任。",no_transactions:"尚未进行任何交易",manage_server:"管理服务器",extensions:"扩展程序",no_extensions:"你没有安装任何扩展程序 :(",created:"已创建",search_extensions:"搜索扩展程序",warning:"警告",manage:"管理",repository:"代码库",confirm_continue:"你确定要继续吗?",manage_extension_details:"安装/卸载扩展程序",install:"安装",uninstall:"卸载",drop_db:"删除数据",open:"打开",enable:"启用",enable_extension_details:"为当前用户启用扩展程序",disable:"禁用",installed:"已安装",activated:"已激活",deactivated:"已停用",release_notes:"发布说明",activate_extension_details:"对用户开放或禁用扩展程序",featured:"精选",all:"全部",only_admins_can_install:"(只有管理员账户可以安装扩展)",admin_only:"仅限管理员",new_version:"新版本",extension_depends_on:"依赖于:",extension_rating_soon:"即将推出评分",extension_installed_version:"已安装的版本",extension_uninstall_warning:"您即将对所有用户删除该扩展程序。",uninstall_confirm:"是的,卸载",extension_db_drop_info:"该扩展程序的所有数据将被永久删除。此操作无法撤销!",extension_db_drop_warning:"您即将删除该扩展的所有数据。请继续输入扩展程序名称以确认操作:",extension_min_lnbits_version:"此版本要求最低的 LNbits 版本为",payment_hash:"付款哈希",fee:"费",amount:"金额",unit:"单位",description:"详情",expiry:"过期时间",webhook:"Webhook",payment_proof:"付款证明"},window.localisation.nl={server:"Server",theme:"Thema",funding:"Financiering",users:"Gebruikers",restart:"Server opnieuw opstarten",save:"Opslaan",save_tooltip:"Sla uw wijzigingen op",topup:"Bijvullen",topup_wallet:"Een portemonnee bijvullen",topup_hint:"Gebruik de portemonnee-ID om elke portemonnee bij te vullen",restart_tooltip:"Start de server opnieuw op zodat wijzigingen van kracht worden",add_funds_tooltip:"Voeg geld toe aan een portemonnee.",reset_defaults:"Standaardinstellingen herstellen",reset_defaults_tooltip:"Wis alle instellingen en herstel de standaardinstellingen.",download_backup:"Databaseback-up downloaden",name_your_wallet:"Geef je %{name} portemonnee een naam",paste_invoice_label:"Plak een factuur, betalingsverzoek of lnurl-code*",lnbits_description:"Gemakkelijk in te stellen en lichtgewicht, LNbits kan op elke lightning-netwerkfinancieringsbron draaien, ondersteunt op dit moment LND, Core Lightning, OpenNode, LNPay en zelfs LNbits zelf! U kunt LNbits voor uzelf laten draaien of gemakkelijk een bewaardersoplossing voor anderen bieden. Elke portemonnee heeft zijn eigen API-sleutels en er is geen limiet aan het aantal portemonnees dat u kunt maken. Het kunnen partitioneren van fondsen maakt LNbits een nuttige tool voor geldbeheer en als ontwikkelingstool. Extensies voegen extra functionaliteit toe aan LNbits, zodat u kunt experimenteren met een reeks toonaangevende technologieën op het bliksemschichtnetwerk. We hebben het ontwikkelen van extensies zo eenvoudig mogelijk gemaakt en als een gratis en opensource-project moedigen we mensen aan om hun eigen ontwikkelingen in te dienen.",export_to_phone:"Exporteren naar telefoon met QR-code",export_to_phone_desc:"Deze QR-code bevat uw portemonnee-URL met volledige toegang. U kunt het vanaf uw telefoon scannen om uw portemonnee van daaruit te openen.",wallets:"Portemonnees",add_wallet:"Een nieuwe portemonnee toevoegen",delete_wallet:"Portemonnee verwijderen",delete_wallet_desc:"Deze hele portemonnee wordt verwijderd, de fondsen worden NIET TERUGGEVONDEN.",rename_wallet:"Portemonnee hernoemen",update_name:"Naam bijwerken",press_to_claim:"Druk om bitcoin te claimen",donate:"Doneren",view_github:"Bekijken op GitHub",voidwallet_active:"VoidWallet is actief! Betalingen uitgeschakeld",use_with_caution:"GEBRUIK MET VOORZICHTIGHEID - %{name} portemonnee is nog in BETA",toggle_darkmode:"Donkere modus aan/uit",view_swagger_docs:"Bekijk LNbits Swagger API-documentatie",api_docs:"API-documentatie",commit_version:"Commit-versie",lnbits_version:"LNbits-versie",runs_on:"Draait op",credit_hint:"Druk op Enter om de rekening te crediteren",credit_label:"%{denomination} te crediteren",paste_request:"Verzoek plakken",create_invoice:"Factuur aanmaken",camera_tooltip:"Gebruik de camera om een factuur/QR-code te scannen",export_csv:"Exporteer naar CSV",transactions:"Transacties",chart_tooltip:"Toon grafiek",pending:"In behandeling",copy_invoice:"Kopieer factuur",close:"Sluiten",cancel:"Annuleren",scan:"Scannen",read:"Lezen",pay:"Betalen",memo:"Memo",date:"Datum",processing_payment:"Verwerking betaling...",not_enough_funds:"Onvoldoende saldo!",search_by_tag_memo_amount:"Zoeken op tag, memo, bedrag",invoice_waiting:"Factuur wachtend op betaling",payment_received:"Betaling ontvangen",payment_sent:"Betaling verzonden",receive:"ontvangen",send:"versturen",voutgoing_payment_pending:"Uitgaande betaling in behandeling",drain_funds:"Geld opnemen",drain_funds_desc:"Dit is een LNURL-withdraw QR-code om alles uit deze portemonnee te halen. Deel deze code niet met anderen. Het is compatibel met balanceCheck en balanceNotify zodat jouw portemonnee continu geld kan blijven opnemen vanaf hier na de eerste opname.",i_understand:"Ik begrijp het",copy_wallet_url:"Kopieer portemonnee-URL",disclaimer_dialog:"Inlogfunctionaliteit wordt uitgebracht in een toekomstige update. Zorg er nu voor dat je deze pagina als favoriet markeert om in de toekomst toegang te krijgen tot je portemonnee! Deze service is in BETA en we zijn niet verantwoordelijk voor mensen die de toegang tot hun fondsen verliezen.",no_transactions:"Er zijn nog geen transacties gedaan",manage_extensions:"Beheer extensies",manage_server:"Beheer server",extensions:"Extensies",no_extensions:"Je hebt geen extensies geïnstalleerd :(",created:"Aangemaakt",payment_hash:"Betalings-hash",fee:"Kosten",amount:"Bedrag",unit:"Eenheid",description:"Beschrijving",expiry:"Vervaldatum",webhook:"Webhook",payment_proof:"Betalingsbewijs"},window.localisation.pi={server:"Cap`n",theme:"Theme",funding:"Funding",users:"Buccaneers",restart:"Arr, restart Cap`n",save:"Bury Treasure",save_tooltip:"Bury yer changes, matey",topup:"Top up the Chest",topup_wallet:"Add more doubloons to the chest",topup_hint:"Use the chest ID to top up any chest",restart_tooltip:"Restart the Cap`n for changes to take effect, arr!",add_funds_tooltip:"Add doubloons to a chest and make it heavier",reset_defaults:"Reset to Davy Jones Locker",reset_defaults_tooltip:"Scuttle all settings and reset to Davy Jones Locker. Aye, start anew!",download_backup:"Download database booty",name_your_wallet:"Name yer %{name} treasure chest",paste_invoice_label:"Paste a booty, payment request or lnurl code, matey!",lnbits_description:"Arr, easy to set up and lightweight, LNbits can run on any lightning-network funding source, currently supporting LND, Core Lightning, OpenNode, LNPay and even LNbits itself! Ye can run LNbits for yourself, or easily offer a custodian solution for others. Each chest has its own API keys and there be no limit to the number of chests ye can make. Being able to partition booty makes LNbits a useful tool for money management and as a development tool. Arr, extensions add extra functionality to LNbits so ye can experiment with a range of cutting-edge technologies on the lightning network. We have made developing extensions as easy as possible, and as a free and open-source project, we encourage scallywags to develop and submit their own.",export_to_phone:"Export to Phone with QR Code, me hearties",export_to_phone_desc:"This QR code contains yer chest URL with full access. Ye can scan it from yer phone to open yer chest from there, arr!",wallets:"Treasure Chests",add_wallet:"Add a new chest and fill it with doubloons!",delete_wallet:"Scuttle the Chest",delete_wallet_desc:"This whole chest will be scuttled, the booty will be UNRECOVERABLE. Aye, be warned!",rename_wallet:"Rename the Chest, me hearty",update_name:"Update name like a captain",press_to_claim:"Press to claim gold doubloons, matey!",donate:"Donate like a true pirate!",view_github:"View on GitHub and find treasures",voidwallet_active:"VoidWallet be active! Payments disabled",use_with_caution:"USE WITH CAUTION - %{name} chest be still in BETA. Aye, be careful!",toggle_darkmode:"Toggle Dark Mode, arr!",view_swagger_docs:"View LNbits Swagger API docs and learn the secrets",api_docs:"API docs for the scallywags",commit_version:"Commit version like a true pirate",lnbits_version:"LNbits version, arr!",runs_on:"Runs on, matey",credit_hint:"Press Enter to credit account and make it richer",credit_label:"%{denomination} to credit, arr!",paste_request:"Paste Request and find treasures",create_invoice:"Create Booty Request and get rich, me hearties!",camera_tooltip:"Use spyglass to scan a booty/QR, arr!",export_csv:"Export to CSV and keep track of the booty",transactions:"Pirate Transactions and loot",chart_tooltip:"Show ye chart, me hearty",pending:"Pendin like a ship at anchor",copy_invoice:"Copy booty request, arrr",close:"Batten down the hatches, we be closin",cancel:"Abandon ship! We be retreatin",scan:"Avast! Scan me beauty, arrr",read:"Read it, if ye dare",pay:"Pay up or walk the plank, ye scallywag",memo:"Message in a bottle, argh",date:"Date of the map, me matey",processing_payment:"Processing yer payment... don´t make me say it again",not_enough_funds:"Arrr, ye don´t have enough doubloons! Walk the plank!",search_by_tag_memo_amount:"Search by tag, message, or booty amount, savvy",invoice_waiting:"Invoice waiting to be plundered, arrr",payment_received:"Payment Received like a treasure, argh",payment_sent:"Payment Sent, hoist the colors! We´ve got some doubloons!",receive:"booty",send:"hoist",outgoing_payment_pending:"Outgoing payment pending in the port, ye scurvy dog",drain_funds:"Plunder all the doubloons, ye buccaneer",drain_funds_desc:"This be an LNURL-withdraw QR code for slurpin everything from this wallet. Don`t share with anyone. It be compatible with balanceCheck and balanceNotify so yer wallet may keep pullin` the funds continuously from here after the first withdraw.",i_understand:"I understand, yo ho ho and a bottle of rum!",copy_wallet_url:"Copy wallet URL like a map, savvy",disclaimer_dialog:"Login functionality to be released in a future update, for now, make sure ye bookmark this page for future access to your booty! This service be in BETA, and we hold no responsibility for people losing access to doubloons.",no_transactions:"No transactions made yet, me hearties. Belay that!",manage_extensions:"Manage Yer Extensions, ye landlubber",manage_server:"Manage Yer Server, me hearty",extensions:"Yer Extensions, ye scurvy dog",no_extensions:"Ye don't have any extensions installed, ye scallywag :(. Where be yer loot?",created:"Created like a legend, savvy",payment_hash:"Payment Hash like a treasure map, arrr",fee:"Fee like a toll to cross a strait, matey",amount:"Amount of doubloons, arrr",unit:"Unit of measurement like a fathom, ye buccaneer",description:"Description like a tale of adventure, arrr",expiry:"Expiry like the food on a ship, ye landlubber",webhook:"Webhook like a fishing line, arrr",payment_proof:"Payment Proof like a seal of authenticity, argh"},window.localisation.pl={server:"Serwer",theme:"Motyw",funding:"Finansowanie",users:"Użytkownicy",restart:"Restart serwera",save:"Zapisz",save_tooltip:"Zapisz zmiany",topup:"Doładowanie",topup_wallet:"Doładuj portfel",topup_hint:"Użyj ID portfela aby go doładować",restart_tooltip:"Zrestartuj serwer aby aktywować zmiany",add_funds_tooltip:"Dodaj środki do portfela.",reset_defaults:"Powrót do ustawień domyślnych",reset_defaults_tooltip:"Wymaż wszystkie ustawienia i ustaw domyślne.",download_backup:"Pobierz kopię zapasową bazy danych",name_your_wallet:"Nazwij swój portfel %{name}",paste_invoice_label:"Wklej fakturę, żądanie zapłaty lub kod lnurl *",lnbits_description:"Łatwy i lekki w konfiguracji, LNbits może działać w oparciu o dowolne źródło finansowania w sieci lightning, obecnie wspiera LND, Core Lightning, OpenNode, LNPay czy nawet inną instancję LNbits! Możesz uruchomić instancję LNbits dla siebie lub dla innych. Każdy portfel ma swoje klucze API i nie ma ograniczeń jeśli chodzi o ilość portfeli. LNbits umożliwia dzielenie środków w celu zarządzania nimi, jest również dobrym narzędziem deweloperskim. Rozszerzenia zwiększają funkcjonalność LNbits co umożliwia eksperymentowanie z nowym technologiami w sieci lightning. Tworzenie rozszerzeń jest proste dlatego zachęcamy innych deweloperów do tworzenia dodatkowych funkcjonalności i wysyłanie do nas PR",export_to_phone:"Eksport kodu QR na telefon",export_to_phone_desc:"Ten kod QR zawiera adres URL Twojego portfela z pełnym dostępem do niego. Możesz go zeskanować na swoim telefonie aby otworzyć na nim ten portfel.",wallets:"Portfele",add_wallet:"Dodaj portfel",delete_wallet:"Usuń portfel",delete_wallet_desc:"Ten portfel zostanie usunięty, środków na nim zgromadzonych NIE BĘDZIE MOŻNA ODZYSKAĆ.",rename_wallet:"Zmień nazwę portfela",update_name:"Zaktualizuj nazwę",press_to_claim:"Naciśnij aby odebrać Bitcoiny",donate:"Podaruj",view_github:"Otwórz GitHub",voidwallet_active:"VoidWallet jest aktywny! Płatności są niemożliwe",use_with_caution:"KORZYSTAJ Z ROZWAGĄ - portfel %{name} jest w wersji BETA",toggle_darkmode:"Tryb nocny",view_swagger_docs:"Dokumentacja Swagger API",api_docs:"Dokumentacja API",commit_version:"Commit",lnbits_version:"Wersja LNbits",runs_on:"Działa na",credit_hint:"Naciśnij Enter aby doładować konto",credit_label:"%{denomination} doładowanie",paste_request:"Wklej żądanie",create_invoice:"Utwórz fakturę",camera_tooltip:"Użyj kamery aby zeskanować fakturę lub kod QR",export_csv:"Eksport do CSV",transactions:"Transakcje",chart_tooltip:"Wykres",pending:"W toku",copy_invoice:"Skopiuj fakturę",close:"Zamknij",cancel:"Anuluj",scan:"Skanuj",read:"Odczytaj",pay:"Zapłać",memo:"Memo",date:"Data",processing_payment:"Przetwarzam płatność...",not_enough_funds:"Brak wystarczających środków!",search_by_tag_memo_amount:"Szukaj po tagu, memo czy wartości",invoice_waiting:"Faktura oczekuje na zapłatę",payment_received:"Otrzymano płatność",payment_sent:"Wysłano płatność",receive:"odbierać",send:"wysłać",outgoing_payment_pending:"Płatność wychodząca w toku",drain_funds:"Opróżnij środki",drain_funds_desc:"To jest kod QR służący do opróżnienia portfela (LNURL-withdraw). Nie udostępniaj go nikomu. Ten kod jest kompatybilny z funkcjami, które umożliwiają wielokrotne żądania aż do zupełnego opróżnienia portfela.",i_understand:"Rozumiem",copy_wallet_url:"Skopiuj URL portfela",disclaimer_dialog:"Funkcja logowania zostanie uruchomiona w przyszłości. Póki co upewnij się, że zapisałeś adres URL tej strony aby mieć dostęp do tego portfela. Nie udostępniaj adresu tej strony nikomu, kto nie ma mieć do tego portfela dostępu! Ta usługa działa w wersji BETA, nie odpowiadamy za utratę dostępu do środków przez osoby używające LNbits.",no_transactions:"Brak transakcji",manage_extensions:"Zarządzaj rozszerzeniami",manage_server:"Zarządzaj serwerem",extensions:"Rozszerzenia",no_extensions:"Nie masz zainstalowanych żadnych rozszerzeń :(",created:"Utworzono",payment_hash:"Hash Płatności",fee:"Opłata",amount:"Wartość",unit:"Jednostka",description:"Opis",expiry:"Wygasa",webhook:"Webhook",payment_proof:"Potwierdzenie płatności"},window.localisation.fr={server:"Serveur",theme:"Thème",funding:"Financement",users:"Utilisateurs",restart:"Redémarrer le serveur",save:"Enregistrer",save_tooltip:"Enregistrer vos modifications",topup:"Renflouer",topup_wallet:"Reflouer un portefeuille",topup_hint:"Utilisez l'ID du portefeuille pour recharger n'importe quel portefeuille",restart_tooltip:"Redémarrez le serveur pour que les changements prennent effet",add_funds_tooltip:"Ajouter des fonds à un portefeuille.",reset_defaults:"Réinitialiser aux valeurs par défaut",reset_defaults_tooltip:"Supprimer tous les paramètres et les réinitialiser aux valeurs par défaut.",download_backup:"Télécharger la sauvegarde de la base de données",name_your_wallet:"Nommez votre portefeuille %{name}",paste_invoice_label:"Coller une facture, une demande de paiement ou un code lnurl *",lnbits_description:"Facile à installer et léger, LNbits peut fonctionner sur n'importe quelle source de financement du réseau Lightning, prenant actuellement en charge LND, Core Lightning, OpenNode, LNPay et même LNbits lui-même! Vous pouvez exécuter LNbits pour vous-même ou offrir facilement une solution de gardien pour les autres. Chaque portefeuille a ses propres clés API et il n'y a pas de limite au nombre de portefeuilles que vous pouvez créer. La capacité de partitionner les fonds rend LNbits un outil utile pour la gestion de l'argent et comme outil de développement. Les extensions ajoutent une fonctionnalité supplémentaire à LNbits afin que vous puissiez expérimenter une gamme de technologies de pointe sur le réseau Lightning. Nous avons rendu le développement d'extensions aussi simple que possible et, en tant que projet gratuit et open source, nous encourageons les gens à développer et à soumettre les leurs.",export_to_phone:"Exporter vers le téléphone avec un code QR",export_to_phone_desc:"Ce code QR contient l'URL de votre portefeuille avec un accès complet. Vous pouvez le scanner depuis votre téléphone pour ouvrir votre portefeuille depuis là-bas.",wallets:"Portefeuilles",add_wallet:"Ajouter un nouveau portefeuille",delete_wallet:"Supprimer le portefeuille",delete_wallet_desc:"Ce portefeuille entier sera supprimé et les fonds seront IRRECUPERABLES.",rename_wallet:"Renommer le portefeuille",update_name:"Mettre à jour le nom",press_to_claim:"Appuyez pour demander du Bitcoin",donate:"Donner",view_github:"Voir sur GitHub",voidwallet_active:"VoidWallet est actif! Paiements désactivés",use_with_caution:"UTILISER AVEC PRUDENCE - Le portefeuille %{name} est toujours en version BETA",toggle_darkmode:"Basculer le mode sombre",view_swagger_docs:"Voir les documents de l'API Swagger de LNbits",api_docs:"Documents de l'API",commit_version:"Version de commit",lnbits_version:"Version de LNbits",runs_on:"Fonctionne sur",credit_hint:"Appuyez sur Entrée pour créditer le compte",credit_label:"%{denomination} à créditer",paste_request:"Coller la requête",create_invoice:"Créer une facture",camera_tooltip:"Utiliser la caméra pour scanner une facture / un code QR",export_csv:"Exporter vers CSV",transactions:"Transactions",chart_tooltip:"Afficher le graphique",pending:"En attente",copy_invoice:"Copier la facture",close:"Fermer",cancel:"Annuler",scan:"Scanner",read:"Lire",pay:"Payer",memo:"Mémo",date:"Date",processing_payment:"Traitement du paiement...",not_enough_funds:"Fonds insuffisants !",search_by_tag_memo_amount:"Rechercher par tag, mémo, montant",invoice_waiting:"Facture en attente de paiement",payment_received:"Paiement reçu",payment_sent:"Paiement envoyé",receive:"recevoir",send:"envoyer",outgoing_payment_pending:"Paiement sortant en attente",drain_funds:"Vider les fonds",drain_funds_desc:"Il s'agit d'un code QR LNURL-withdraw pour tout aspirer de ce portefeuille. Ne le partagez avec personne. Il est compatible avec balanceCheck et balanceNotify, de sorte que votre portefeuille peut continuer à retirer les fonds continuellement à partir d'ici après le premier retrait.",i_understand:"J'ai compris",copy_wallet_url:"Copier l'URL du portefeuille",disclaimer_dialog:"La fonctionnalité de connexion sera publiée dans une future mise à jour, pour l'instant, assurez-vous de mettre cette page en favori pour accéder à votre portefeuille ultérieurement ! Ce service est en BETA, et nous ne sommes pas responsables des personnes qui perdent l'accès à leurs fonds.",no_transactions:"Aucune transaction effectuée pour le moment",manage_extensions:"Gérer les extensions",manage_server:"Gérer le serveur",extensions:"Extensions",no_extensions:"Vous n'avez installé aucune extension :(",created:"Créé",payment_hash:"Hash de paiement",fee:"Frais",amount:"Montant",unit:"Unité",description:"Description",expiry:"Expiration",webhook:"Webhook",payment_proof:"Preuve de paiement"},window.localisation.nl={server:"Server",theme:"Thema",funding:"Financiering",users:"Gebruikers",restart:"Server opnieuw opstarten",save:"Opslaan",save_tooltip:"Sla uw wijzigingen op",topup:"Bijvullen",topup_wallet:"Een portemonnee bijvullen",topup_hint:"Gebruik de portemonnee-ID om elke portemonnee bij te vullen",restart_tooltip:"Start de server opnieuw op zodat wijzigingen van kracht worden",add_funds_tooltip:"Voeg geld toe aan een portemonnee.",reset_defaults:"Standaardinstellingen herstellen",reset_defaults_tooltip:"Wis alle instellingen en herstel de standaardinstellingen.",download_backup:"Databaseback-up downloaden",name_your_wallet:"Geef je %{name} portemonnee een naam",paste_invoice_label:"Plak een factuur, betalingsverzoek of lnurl-code*",lnbits_description:"Gemakkelijk in te stellen en lichtgewicht, LNbits kan op elke lightning-netwerkfinancieringsbron draaien, ondersteunt op dit moment LND, Core Lightning, OpenNode, LNPay en zelfs LNbits zelf! U kunt LNbits voor uzelf laten draaien of gemakkelijk een bewaardersoplossing voor anderen bieden. Elke portemonnee heeft zijn eigen API-sleutels en er is geen limiet aan het aantal portemonnees dat u kunt maken. Het kunnen partitioneren van fondsen maakt LNbits een nuttige tool voor geldbeheer en als ontwikkelingstool. Extensies voegen extra functionaliteit toe aan LNbits, zodat u kunt experimenteren met een reeks toonaangevende technologieën op het bliksemschichtnetwerk. We hebben het ontwikkelen van extensies zo eenvoudig mogelijk gemaakt en als een gratis en opensource-project moedigen we mensen aan om hun eigen ontwikkelingen in te dienen.",export_to_phone:"Exporteren naar telefoon met QR-code",export_to_phone_desc:"Deze QR-code bevat uw portemonnee-URL met volledige toegang. U kunt het vanaf uw telefoon scannen om uw portemonnee van daaruit te openen.",wallets:"Portemonnees",add_wallet:"Een nieuwe portemonnee toevoegen",delete_wallet:"Portemonnee verwijderen",delete_wallet_desc:"Deze hele portemonnee wordt verwijderd, de fondsen worden NIET TERUGGEVONDEN.",rename_wallet:"Portemonnee hernoemen",update_name:"Naam bijwerken",press_to_claim:"Druk om bitcoin te claimen",donate:"Doneren",view_github:"Bekijken op GitHub",voidwallet_active:"VoidWallet is actief! Betalingen uitgeschakeld",use_with_caution:"GEBRUIK MET VOORZICHTIGHEID - %{name} portemonnee is nog in BETA",toggle_darkmode:"Donkere modus aan/uit",view_swagger_docs:"Bekijk LNbits Swagger API-documentatie",api_docs:"API-documentatie",commit_version:"Commit-versie",lnbits_version:"LNbits-versie",runs_on:"Draait op",credit_hint:"Druk op Enter om de rekening te crediteren",credit_label:"%{denomination} te crediteren",paste_request:"Verzoek plakken",create_invoice:"Factuur aanmaken",camera_tooltip:"Gebruik de camera om een factuur/QR-code te scannen",export_csv:"Exporteer naar CSV",transactions:"Transacties",chart_tooltip:"Toon grafiek",pending:"In behandeling",copy_invoice:"Kopieer factuur",close:"Sluiten",cancel:"Annuleren",scan:"Scannen",read:"Lezen",pay:"Betalen",memo:"Memo",date:"Datum",processing_payment:"Verwerking betaling...",not_enough_funds:"Onvoldoende saldo!",search_by_tag_memo_amount:"Zoeken op tag, memo, bedrag",invoice_waiting:"Factuur wachtend op betaling",payment_received:"Betaling ontvangen",payment_sent:"Betaling verzonden",receive:"ontvangen",send:"versturen",voutgoing_payment_pending:"Uitgaande betaling in behandeling",drain_funds:"Geld opnemen",drain_funds_desc:"Dit is een LNURL-withdraw QR-code om alles uit deze portemonnee te halen. Deel deze code niet met anderen. Het is compatibel met balanceCheck en balanceNotify zodat jouw portemonnee continu geld kan blijven opnemen vanaf hier na de eerste opname.",i_understand:"Ik begrijp het",copy_wallet_url:"Kopieer portemonnee-URL",disclaimer_dialog:"Inlogfunctionaliteit wordt uitgebracht in een toekomstige update. Zorg er nu voor dat je deze pagina als favoriet markeert om in de toekomst toegang te krijgen tot je portemonnee! Deze service is in BETA en we zijn niet verantwoordelijk voor mensen die de toegang tot hun fondsen verliezen.",no_transactions:"Er zijn nog geen transacties gedaan",manage_extensions:"Beheer extensies",manage_server:"Beheer server",extensions:"Extensies",no_extensions:"Je hebt geen extensies geïnstalleerd :(",created:"Aangemaakt",payment_hash:"Betalings-hash",fee:"Kosten",amount:"Bedrag",unit:"Eenheid",description:"Beschrijving",expiry:"Vervaldatum",webhook:"Webhook",payment_proof:"Betalingsbewijs"},window.localisation.we={server:"Gweinydd",theme:"Thema",funding:"Arian fyndio",users:"Defnyddwyr",restart:"Ailgychwyn gweinydd",save:"Save",save_tooltip:"cadw eich newidiadau",topup:"Topup",topup_wallet:"Atodi waled",topup_hint:"Defnyddiwch ID y waled i ychwanegu at unrhyw waled",restart_tooltip:"Ailgychwyn y gweinydd er mwyn i newidiadau ddod i rym",add_funds_tooltip:"Ychwanegu arian at waled.",reset_defaults:"Ailosod i`r rhagosodiadau",reset_defaults_tooltip:"Dileu pob gosodiad ac ailosod i`r rhagosodiadau.",download_backup:"Lawrlwytho copi wrth gefn cronfa ddata",name_your_wallet:"Enwch eich waled %{name}",paste_invoice_label:"Gludwch anfoneb, cais am daliad neu god lnurl *",lnbits_description:"Yn hawdd iw sefydlu ac yn ysgafn, gall LNbits redeg ar unrhyw ffynhonnell ariannu rhwydwaith mellt, ar hyn o bryd yn cefnogi LND, Core Lightning, OpenNode, LNPay a hyd yn oed LNbits ei hun! Gallwch redeg LNbits i chi`ch hun, neu gynnig datrysiad ceidwad i eraill yn hawdd. Mae gan bob waled ei allweddi API ei hun ac nid oes cyfyngiad ar nifer y waledi y gallwch eu gwneud. Mae gallu rhannu cronfeydd yn gwneud LNbits yn arf defnyddiol ar gyfer rheoli arian ac fel offeryn datblygu. Mae estyniadau yn ychwanegu ymarferoldeb ychwanegol at LNbits fel y gallwch arbrofi gydag ystod o dechnolegau blaengar ar y rhwydwaith mellt. Rydym wedi gwneud datblygu estyniadau mor hawdd â phosibl, ac fel prosiect ffynhonnell agored am ddim, rydym yn annog pobl i ddatblygu a chyflwyno eu rhai eu hunain.",export_to_phone:"Allforio i Ffôn gyda chod QR",export_to_phone_desc:"Mae`r cod QR hwn yn cynnwys URL eich waled gyda mynediad llawn. Gallwch ei sganio o`ch ffôn i agor eich waled oddi yno.",waledi:"Waledi",add_wallet:"Ychwanegu waled newydd",delete_wallet:"Dileu waled",delete_wallet_desc:"Bydd y waled gyfan hon yn cael ei dileu, ni fydd modd adennill yr arian.",rename_wallet:"Ailenwi waled",update_name:"Diweddaru enw",press_to_claim:"Pwyswch i hawlio bitcoin",Donate:"Rhoi",view_github:"Gweld ar GitHub",voidwallet_active:" Mae VoidWallet yn weithredol! Taliadau wedi`u hanalluogi",use_with_caution:"DEFNYDDIO GYDA GOFAL - mae waled %{name} yn dal yn BETA",toggle_darkmode:"Toglo Modd Tywyll",view_swagger_docs:"Gweld dogfennau API LNbits Swagger",api_docs:"Api docs",commit_version:"fersiwn ymrwymo",lnbits_version:"Fersiwn LNbits",Runs_on:"Yn rhedeg ymlaen",credit_hint:"Pwyswch Enter i gyfrif credyd",credit_label:"%{enomination} i gredyd",paste_request:"Gludo Cais",create_invoice:"Creu Anfoneb",camera_tooltip:"Defnyddio camera i sganio anfoneb/QR",export_csv:"Allforio i CSV",trafodion:"Trafodion",chart_tooltip:"Dangos siart",pending:"yn yr arfaeth",copy_invoice:"Copi anfoneb",Close:"cau",cancel:"Canslo",scan:"Sgan",read:"Darllen",talu:"Pay",memo:"Memo",date:"Dyddiad",processing_payment:"Prosesu taliad...",not_enough_funds:"Dim digon o arian!",search_by_tag_memo_amount:"Chwilio yn ôl tag, memo, swm",invoice_waiting:"Anfoneb yn aros i gael ei thalu",payment_received:"Taliad a Dderbyniwyd",payment_sent:"Taliad a Anfonwyd",receive:"derbyn",send:"anfon",outgoing_payment_pending:"Taliad sy`n aros yn yr arfaeth",drain_funds:"Cronfeydd Draenio",drain_funds_desc:"Cod QR Tynnu`n ôl LNURL yw hwn ar gyfer slurpio popeth o`r waled hon. Peidiwch â rhannu gyda neb. Mae`n gydnaws â balanceCheck a balanceNotify felly efallai y bydd eich waled yn tynnu`r arian yn barhaus o`r fan hon ar ôl y codiad cyntaf.",i_understand:"Rwy`n deall",copy_wallet_url:"Copi URL waled",disclaimer_dialog:"Swyddogaeth mewngofnodi i`w ryddhau mewn diweddariad yn y dyfodol, am y tro, gwnewch yn siŵr eich bod yn rhoi nod tudalen ar y dudalen hon ar gyfer mynediad i`ch waled yn y dyfodol! Mae`r gwasanaeth hwn yn BETA, ac nid ydym yn gyfrifol am bobl sy`n colli mynediad at arian.",no_transactions:"Dim trafodion wedi`u gwneud eto",manage_extensions:"Rheoli Estyniadau",manage_server:"Rheoli Gweinydd",Extensions:"Estyniadau",no_extensions:"Nid oes gennych unrhyw estyniadau wedi'u gosod :(",create:"Crëwyd",payment_hash:"Hais Taliad",fee:"Fee",amount:"swm",unit:"Uned",description:"Disgrifiad",expiry:"dod i ben",webhook:"bachyn we",payment_proof:"prawf taliad"},window.localisation.pt={server:"Servidor",theme:"Tema",funding:"Financiamento",users:"Usuários",restart:"Reiniciar servidor",save:"Gravar",save_tooltip:"Gravar as alterações",topup:"Reforçar conta",topup_wallet:"Recarregar uma carteira",topup_hint:"Use o ID da carteira para recarregar qualquer carteira",restart_tooltip:"Reinicie o servidor para que as alterações tenham efeito",add_funds_tooltip:"Adicionar fundos a uma carteira.",reset_defaults:"Redefinir para padrões",reset_defaults_tooltip:"Apagar todas as configurações e redefinir para os padrões.",download_backup:"Fazer backup da base de dados",name_your_wallet:"Nomeie sua carteira %{name}",paste_invoice_label:"Cole uma fatura, pedido de pagamento ou código lnurl *",lnbits_description:"Fácil de configurar e leve, o LNbits pode ser executado em qualquer fonte de financiamento da lightning-network, atualmente suportando LND, c-lightning, OpenNode, LNPay e até mesmo o LNbits em si! Você pode executar o LNbits para si mesmo ou oferecer facilmente uma solução de custódia para outros. Cada carteira tem suas próprias chaves de API e não há limite para o número de carteiras que você pode criar. Ser capaz de particionar fundos torna o LNbits uma ferramenta útil para gerenciamento de dinheiro e como uma ferramenta de desenvolvimento. As extensões adicionam funcionalidades extras ao LNbits para que você possa experimentar uma série de tecnologias de ponta na rede lightning. Nós tornamos o desenvolvimento de extensões o mais fácil possível e, como um projeto gratuito e de código aberto, incentivamos as pessoas a desenvolver e enviar as suas próprias.",export_to_phone:"Exportar para o telefone com código QR",export_to_phone_desc:"Este código QR contém a URL da sua carteira com acesso total. Você pode escaneá-lo do seu telefone para abrir sua carteira a partir dele.",wallets:"Carteiras",add_wallet:"Adicionar nova carteira",delete_wallet:"Excluir carteira",delete_wallet_desc:"Toda a carteira será excluída, os fundos serão IRRECUPERÁVEIS.",rename_wallet:"Renomear carteira",update_name:"Atualizar nome",press_to_claim:"Pressione para solicitar bitcoin",donate:"Doar",view_github:"Ver no GitHub",voidwallet_active:"VoidWallet está ativo! Pagamentos desabilitados",use_with_caution:"USE COM CAUTELA - a carteira %{name} ainda está em BETA",toggle_darkmode:"Alternar modo escuro",view_swagger_docs:"Ver a documentação da API do LNbits Swagger",api_docs:"Documentação da API",commit_version:"Versão de commit",lnbits_version:"Versão do LNbits",runs_on:"Executa em",credit_hint:"Pressione Enter para creditar a conta",credit_label:"%{denomination} para creditar",paste_request:"Colar Pedido",create_invoice:"Criar Fatura",camera_tooltip:"Usar a câmara para escanear uma fatura / QR",export_csv:"Exportar para CSV",transactions:"Transações",chart_tooltip:"Mostrar gráfico",pending:"Pendente",copy_invoice:"Copiar fatura",close:"Fechar",cancel:"Cancelar",scan:"Escanear",read:"Ler",pay:"Pagar",memo:"Memo",date:"Data",processing_payment:"Processando pagamento...",not_enough_funds:"Fundos insuficientes!",search_by_tag_memo_amount:"Pesquisar por tag, memo, quantidade",invoice_waiting:"Fatura aguardando pagamento",payment_received:"Pagamento Recebido",payment_sent:"Pagamento Enviado",receive:"receber",send:"enviar",outgoing_payment_pending:"Pagamento de saída pendente",drain_funds:"Esvasiar carteira",drain_funds_desc:"Este é um código QR de saque LNURL para sacar tudo desta carteira. Não o partilhe com ninguém. É compatível com balanceCheck e balanceNotify para que a sua carteira possa continuar levantando os fundos continuamente daqui após o primeiro saque.",i_understand:"Eu entendo",copy_wallet_url:"Copiar URL da carteira",disclaimer_dialog:"Funcionalidade de login a ser lançada numa atualização futura, por enquanto, certifique-se que marca esta página para acesso futuro à sua carteira! Este serviço está em BETA, e não nos responsabilizamos por pessoas que perderem o acesso aos fundos.",no_transactions:"Ainda não foram feitas transações",manage_extensions:"Gerir extensões",manage_server:"Gerir servidor",extensions:"Extensões",no_extensions:"Não há nenhuma extensão instalada :(",created:"Criado",payment_hash:"Hash de pagamento",fee:"Taxa",amount:"Quantidade",unit:"Unidade",description:"Descrição",expiry:"Validade",webhook:"Webhook",payment_proof:"Comprovativo de pagamento"},window.localisation.br={server:"Servidor",theme:"Tema",funding:"Financiamento",users:"Usuários",restart:"Reiniciar servidor",save:"Salvar",save_tooltip:"Salvar suas alterações",topup:"Recarregar",topup_wallet:"Recarregar uma carteira",topup_hint:"Use o ID da carteira para recarregar qualquer carteira",restart_tooltip:"Reinicie o servidor para que as alterações tenham efeito",add_funds_tooltip:"Adicionar fundos a uma carteira.",reset_defaults:"Redefinir para padrões",reset_defaults_tooltip:"Apagar todas as configurações e redefinir para os padrões.",download_backup:"Fazer backup do banco de dados",name_your_wallet:"Nomeie sua carteira %{name}",paste_invoice_label:"Cole uma fatura, pedido de pagamento ou código lnurl *",lnbits_description:"Fácil de configurar e leve, o LNbits pode ser executado em qualquer fonte de financiamento da lightning-network, atualmente suportando LND, c-lightning, OpenNode, LNPay e até mesmo o LNbits em si! Você pode executar o LNbits para si mesmo ou oferecer facilmente uma solução de custódia para outros. Cada carteira tem suas próprias chaves de API e não há limite para o número de carteiras que você pode criar. Ser capaz de particionar fundos torna o LNbits uma ferramenta útil para gerenciamento de dinheiro e como uma ferramenta de desenvolvimento. As extensões adicionam funcionalidades extras ao LNbits para que você possa experimentar uma série de tecnologias de ponta na rede lightning. Nós tornamos o desenvolvimento de extensões o mais fácil possível e, como um projeto gratuito e de código aberto, incentivamos as pessoas a desenvolver e enviar as suas próprias.",export_to_phone:"Exportar para o telefone com código QR",export_to_phone_desc:"Este código QR contém a URL da sua carteira com acesso total. Você pode escaneá-lo do seu telefone para abrir sua carteira a partir dele.",wallets:"Carteiras",add_wallet:"Adicionar nova carteira",delete_wallet:"Excluir carteira",delete_wallet_desc:"Toda a carteira será excluída, os fundos serão IRRECUPERÁVEIS.",rename_wallet:"Renomear carteira",update_name:"Atualizar nome",press_to_claim:"Pressione para solicitar bitcoin",donate:"Doar",view_github:"Ver no GitHub",voidwallet_active:"VoidWallet está ativo! Pagamentos desabilitados",use_with_caution:"USE COM CAUTELA - a carteira %{name} ainda está em BETA",toggle_darkmode:"Alternar modo escuro",view_swagger_docs:"Ver a documentação da API do LNbits Swagger",api_docs:"Documentação da API",commit_version:"Versão de commit",lnbits_version:"Versão do LNbits",runs_on:"Executa em",credit_hint:"Pressione Enter para creditar a conta",credit_label:"%{denomination} para creditar",paste_request:"Colar Pedido",create_invoice:"Criar Fatura",camera_tooltip:"Usar a câmara para escanear uma fatura / QR",export_csv:"Exportar para CSV",transactions:"Transações",chart_tooltip:"Mostrar gráfico",pending:"Pendente",copy_invoice:"Copiar fatura",close:"Fechar",cancel:"Cancelar",scan:"Escanear",read:"Ler",pay:"Pagar",memo:"Memo",date:"Data",processing_payment:"Processando pagamento...",not_enough_funds:"Fundos insuficientes!",search_by_tag_memo_amount:"Pesquisar por tag, memo, quantidade",invoice_waiting:"Fatura aguardando pagamento",payment_received:"Pagamento Recebido",payment_sent:"Pagamento Enviado",receive:"receber",send:"enviar",outgoing_payment_pending:"Pagamento pendente de saída",drain_funds:"Drenar Fundos",drain_funds_desc:"Este é um código QR de retirada do LNURL para sugar tudo desta carteira. Não compartilhe com ninguém. É compatível com balanceCheck e balanceNotify para que sua carteira possa continuar retirando os fundos continuamente daqui após a primeira retirada.",i_understand:"Eu entendo",copy_wallet_url:"Copiar URL da carteira",disclaimer_dialog:"Funcionalidade de login a ser lançada em uma atualização futura, por enquanto, certifique-se de marcar esta página para acesso futuro à sua carteira! Este serviço está em BETA, e não nos responsabilizamos por pessoas que perderem o acesso aos fundos.",no_transactions:"Ainda não foram feitas transações",manage_extensions:"Gerenciar extensões",manage_server:"Gerenciar servidor",extensions:"Extensões",no_extensions:"Você não possui nenhuma extensão instalada :(",created:"Criado",payment_hash:"Hash de pagamento",fee:"Taxa",amount:"Quantidade",unit:"Unidade",description:"Descrição",expiry:"Validade",webhook:"Webhook",payment_proof:"Comprovante de pagamento"},Vue.use(VueI18n),window.LOCALE="en",window.i18n=new VueI18n({locale:window.LOCALE,fallbackLocale:window.LOCALE,messages:window.localisation}),window.EventHub=new Vue,window.LNbits={api:{request:function(t,e,n,i){return axios({method:t,url:e,headers:{"X-Api-Key":n},data:i})},createInvoice:async function(t,e,n,i="sat",r=null){return this.request("post","/api/v1/payments",t.inkey,{out:!1,amount:e,memo:n,unit:i,lnurl_callback:r})},payInvoice:function(t,e){return this.request("post","/api/v1/payments",t.adminkey,{out:!0,bolt11:e})},payLnurl:function(t,e,n,i,r="",o=""){return this.request("post","/api/v1/payments/lnurl",t.adminkey,{callback:e,description_hash:n,amount:i,comment:o,description:r})},authLnurl:function(t,e){return this.request("post","/api/v1/lnurlauth",t.adminkey,{callback:e})},getWallet:function(t){return this.request("get","/api/v1/wallet",t.inkey)},getPayments:function(t,e){const n=new URLSearchParams(e);return this.request("get","/api/v1/payments/paginated?"+n,t.inkey)},getPayment:function(t,e){return this.request("get","/api/v1/payments/"+e,t.inkey)}},events:{onInvoicePaid:function(t,e){let n=t=>{e(JSON.parse(t.data))};return this.listenersCount=this.listenersCount||{[t.inkey]:0},this.listenersCount[t.inkey]++,this.listeners=this.listeners||{},t.inkey in this.listeners||(this.listeners[t.inkey]=new EventSource("/api/v1/payments/sse?api-key="+t.inkey)),this.listeners[t.inkey].addEventListener("payment-received",n),()=>{this.listeners[t.inkey].removeEventListener("payment-received",n),this.listenersCount[t.inkey]--,this.listenersCount[t.inkey]<=0&&(this.listeners[t.inkey].close(),delete this.listeners[t.inkey])}}},href:{createWallet:function(t,e){window.location.href="/wallet?"+(e?"usr="+e+"&":"")+"nme="+t},updateWallet:function(t,e,n){window.location.href=`/wallet?usr=${e}&wal=${n}&nme=${t}`},deleteWallet:function(t,e){window.location.href="/deletewallet?usr="+e+"&wal="+t}},map:{extension:function(t){var e=_.object(["code","isValid","isAdminOnly","name","shortDescription","tile","contributors","hidden"],t);return e.url=["/",e.code,"/"].join(""),e},user:function(t){var e={id:t.id,admin:t.admin,email:t.email,extensions:t.extensions,wallets:t.wallets,admin:t.admin},n=this.wallet;return e.wallets=e.wallets.map((function(t){return n(t)})).sort((function(t,e){return t.name.localeCompare(e.name)})),e.walletOptions=e.wallets.map((function(t){return{label:[t.name," - ",t.id].join(""),value:t.id}})),e},wallet:function(t){return newWallet={id:t.id,name:t.name,adminkey:t.adminkey,inkey:t.inkey,currency:t.currency},newWallet.msat=t.balance_msat,newWallet.sat=Math.round(t.balance_msat/1e3),newWallet.fsat=new Intl.NumberFormat(window.LOCALE).format(newWallet.sat),newWallet.url=["/wallet?usr=",t.user,"&wal=",t.id].join(""),newWallet},payment:function(t){return obj={checking_id:t.checking_id,pending:t.pending,amount:t.amount,fee:t.fee,memo:t.memo,time:t.time,bolt11:t.bolt11,preimage:t.preimage,payment_hash:t.payment_hash,expiry:t.expiry,extra:t.extra,wallet_id:t.wallet_id,webhook:t.webhook,webhook_status:t.webhook_status,fiat_amount:t.fiat_amount,fiat_currency:t.fiat_currency},obj.date=Quasar.utils.date.formatDate(new Date(1e3*obj.time),"YYYY-MM-DD HH:mm"),obj.dateFrom=moment(obj.date).fromNow(),obj.expirydate=Quasar.utils.date.formatDate(new Date(1e3*obj.expiry),"YYYY-MM-DD HH:mm"),obj.expirydateFrom=moment(obj.expirydate).fromNow(),obj.msat=obj.amount,obj.sat=obj.msat/1e3,obj.tag=obj.extra.tag,obj.fsat=new Intl.NumberFormat(window.LOCALE).format(obj.sat),obj.isIn=obj.amount>0,obj.isOut=obj.amount<0,obj.isPaid=!obj.pending,obj._q=[obj.memo,obj.sat].join(" ").toLowerCase(),obj}},utils:{confirmDialog:function(t){return Quasar.plugins.Dialog.create({message:t,ok:{flat:!0,color:"orange"},cancel:{flat:!0,color:"grey"}})},digestMessage:async function(t){const e=(new TextEncoder).encode(t),n=await crypto.subtle.digest("SHA-256",e);return Array.from(new Uint8Array(n)).map((t=>t.toString(16).padStart(2,"0"))).join("")},formatCurrency:function(t,e){return new Intl.NumberFormat(window.LOCALE,{style:"currency",currency:e}).format(t)},formatSat:function(t){return new Intl.NumberFormat(window.LOCALE).format(t)},notifyApiError:function(t){Quasar.plugins.Notify.create({timeout:5e3,type:{400:"warning",401:"warning",500:"negative"}[t.response.status]||"warning",message:t.response.data.message||t.response.data.detail||null,caption:[t.response.status," ",t.response.statusText].join("").toUpperCase()||null,icon:null})},search:function(t,e,n,i){try{var r=e.toLowerCase().split(i||" ");return t.filter((function(t){var e=0;return _.each(r,(function(i){-1!==t[n].indexOf(i)&&e++})),e===r.length}))}catch(e){return t}},exportCSV:function(t,e,n){var i=function(t,e){var n=void 0!==e?e(t):t;return`"${n=(n=null==n?"":String(n)).split('"').join('""')}"`},r=[t.map((function(t){return i(t.label)}))].concat(e.map((function(e){return t.map((function(t){return i("function"==typeof t.field?t.field(e):e[void 0===t.field?t.name:t.field],t.format)})).join(",")}))).join("\r\n");!0!==Quasar.utils.exportFile(`${n||"table-export"}.csv`,r,"text/csv")&&Quasar.plugins.Notify.create({message:"Browser denied file download...",color:"negative",icon:null})}}},window.windowMixin={i18n:window.i18n,data:function(){return{g:{offline:!navigator.onLine,visibleDrawer:!1,extensions:[],user:null,wallet:null,payments:[],allowedThemes:null,langs:[]}}},methods:{activeLanguage:function(t){return window.i18n.locale===t},changeLanguage:function(t){window.i18n.locale=t,this.$q.localStorage.set("lnbits.lang",t)},changeColor:function(t){document.body.setAttribute("data-theme",t),this.$q.localStorage.set("lnbits.theme",t)},toggleDarkMode:function(){this.$q.dark.toggle(),this.$q.localStorage.set("lnbits.darkMode",this.$q.dark.isActive)},copyText:function(t,e,n){var i=this.$q.notify;Quasar.utils.copyToClipboard(t).then((function(){i({message:e||"Copied to clipboard!",position:n||"bottom"})}))}},created:function(){1==this.$q.localStorage.getItem("lnbits.darkMode")||0==this.$q.localStorage.getItem("lnbits.darkMode")?this.$q.dark.set(this.$q.localStorage.getItem("lnbits.darkMode")):this.$q.dark.set(!0),this.g.allowedThemes=window.allowedThemes??["bitcoin"];let t=this.$q.localStorage.getItem("lnbits.lang");if(t&&(window.LOCALE=t,window.i18n.locale=t),this.g.langs=window.langs??[],addEventListener("offline",(t=>{this.g.offline=!0})),addEventListener("online",(t=>{this.g.offline=!1})),this.$q.localStorage.getItem("lnbits.theme")||this.changeColor(this.g.allowedThemes[0]),this.$q.localStorage.getItem("lnbits.theme")&&!this.g.allowedThemes.includes(this.$q.localStorage.getItem("lnbits.theme"))&&this.changeColor(this.g.allowedThemes[0]),this.$q.localStorage.getItem("lnbits.theme")&&document.body.setAttribute("data-theme",this.$q.localStorage.getItem("lnbits.theme")),window.user&&(this.g.user=Object.freeze(window.LNbits.map.user(window.user))),window.wallet&&(this.g.wallet=Object.freeze(window.LNbits.map.wallet(window.wallet))),window.extensions){var e=this.g.user;const t=Object.freeze(window.extensions.map((function(t){return window.LNbits.map.extension(t)})).filter((function(t){return!t.hidden})).filter((function(t){return window.user.admin?t:!t.isAdminOnly})).map((function(t){return t.isEnabled=!!e&&-1!==e.extensions.indexOf(t.code),t})).sort((function(t,e){const n=t.name.toUpperCase(),i=e.name.toUpperCase();return ni?1:0})));this.g.extensions=t}}},window.decryptLnurlPayAES=function(t,e){let n=new Uint8Array(e.match(/[\da-f]{2}/gi).map((t=>parseInt(t,16))));return crypto.subtle.importKey("raw",n,{name:"AES-CBC",length:256},!1,["decrypt"]).then((e=>{let n=Uint8Array.from(window.atob(t.iv),(t=>t.charCodeAt(0))),i=Uint8Array.from(window.atob(t.ciphertext),(t=>t.charCodeAt(0)));return crypto.subtle.decrypt({name:"AES-CBC",iv:n},e,i)})).then((t=>new TextDecoder("utf-8").decode(t)))},Vue.component("lnbits-fsat",{props:{amount:{type:Number,default:0}},template:"{{ fsat }}",computed:{fsat:function(){return LNbits.utils.formatSat(this.amount)}}}),Vue.component("lnbits-wallet-list",{data:function(){return{user:null,activeWallet:null,activeBalance:[],showForm:!1,walletName:"",LNBITS_DENOMINATION:LNBITS_DENOMINATION}},template:'\n {{ success_action.message || success_action.description }}
\n\n {{ decryptedValue }}\n
\n \n