diff --git a/.env.example b/.env.example
index 7424da0c..a81f74e6 100644
--- a/.env.example
+++ b/.env.example
@@ -101,8 +101,10 @@ ALBY_ACCESS_TOKEN=ALBY_ACCESS_TOKEN
# BoltzWallet
BOLTZ_CLIENT_ENDPOINT=127.0.0.1:9002
-BOLTZ_CLIENT_MACAROON="/home/bob/.boltz/macaroon" # or HEXSTRING
-BOLTZ_CLIENT_CERT="/home/bob/.boltz/tls.cert" # or HEXSTRING
+# HEXSTRING instead of path also possible
+BOLTZ_CLIENT_MACAROON="/home/bob/.boltz/macaroons/admin.macaroon"
+# HEXSTRING instead of path also possible
+BOLTZ_CLIENT_CERT="/home/bob/.boltz/tls.cert"
BOLTZ_CLIENT_WALLET="lnbits"
# StrikeWallet
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 60c1bca1..69875181 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -51,3 +51,14 @@ jobs:
platforms: linux/amd64,linux/arm64
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
+
+ - name: Build and push boltz
+ uses: docker/build-push-action@v5
+ with:
+ context: .
+ file: Dockerfile.boltz
+ push: true
+ tags: ${{ secrets.DOCKER_USERNAME }}/lnbits-boltz:${{ inputs.tag }}
+ platforms: linux/amd64,linux/arm64
+ cache-from: type=local,src=/tmp/.buildx-cache
+ cache-to: type=local,dest=/tmp/.buildx-cache
diff --git a/Dockerfile.boltz b/Dockerfile.boltz
new file mode 100644
index 00000000..5b55026c
--- /dev/null
+++ b/Dockerfile.boltz
@@ -0,0 +1,30 @@
+FROM boltz/boltz-client:latest AS boltz
+
+FROM lnbits/lnbits:latest
+
+COPY --from=boltz /bin/boltzd /bin/boltzcli /usr/local/bin/
+RUN ls -l /usr/local/bin/boltzd
+RUN apt-get update && apt-get -y upgrade && \
+ apt-get install -y netcat-openbsd
+
+# Reinstall dependencies just in case (needed for CMD usage)
+ARG POETRY_INSTALL_ARGS="--only main"
+RUN poetry install ${POETRY_INSTALL_ARGS}
+
+# LNbits + boltzd configuration
+ENV LNBITS_PORT="5000"
+ENV LNBITS_HOST="0.0.0.0"
+ENV LNBITS_BACKEND_WALLET_CLASS="BoltzWallet"
+ENV FUNDING_SOURCE_MAX_RETRIES=10
+ENV BOLTZ_CLIENT_ENDPOINT="127.0.0.1:9002"
+ENV BOLTZ_CLIENT_MACAROON="/root/.boltz/macaroons/admin.macaroon"
+ENV BOLTZ_CLIENT_CERT="/root/.boltz/tls.cert"
+ENV BOLTZ_CLIENT_WALLET="lnbits"
+
+EXPOSE 5000
+
+# Entrypoint to start boltzd and LNbits
+COPY dockerboltz.sh /dockerboltz.sh
+RUN chmod +x /dockerboltz.sh
+
+CMD ["/dockerboltz.sh"]
diff --git a/dockerboltz.sh b/dockerboltz.sh
new file mode 100644
index 00000000..7386ee50
--- /dev/null
+++ b/dockerboltz.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+set -e
+
+boltzd --standalone --referralId lnbits &
+
+# Capture boltzd PID to monitor if needed
+BOLTZ_PID=$!
+
+# Wait for boltzd to start
+for i in {1..10}; do
+ if nc -z localhost 9002; then
+ echo "boltzd is up!"
+ break
+ fi
+ echo "Waiting for boltzd to start..."
+ sleep 1
+done
+
+# Optional: check if still not up
+if ! nc -z localhost 9002; then
+ echo "boltzd did not start successfully."
+ exit 1
+fi
+
+echo "Starting LNbits on $LNBITS_HOST:$LNBITS_PORT..."
+exec poetry run lnbits --port "$LNBITS_PORT" --host "$LNBITS_HOST" --forwarded-allow-ips='*'
diff --git a/lnbits/settings.py b/lnbits/settings.py
index e9ba91d5..fd12592e 100644
--- a/lnbits/settings.py
+++ b/lnbits/settings.py
@@ -553,7 +553,9 @@ class BoltzFundingSource(LNbitsSettings):
boltz_client_endpoint: str | None = Field(default="127.0.0.1:9002")
boltz_client_macaroon: str | None = Field(default=None)
boltz_client_wallet: str | None = Field(default="lnbits")
+ boltz_client_password: str = Field(default="")
boltz_client_cert: str | None = Field(default=None)
+ boltz_mnemonic: str | None = Field(default=None)
class StrikeFundingSource(LNbitsSettings):
diff --git a/lnbits/static/bundle-components.min.js b/lnbits/static/bundle-components.min.js
index 72aa3558..f126b954 100644
--- a/lnbits/static/bundle-components.min.js
+++ b/lnbits/static/bundle-components.min.js
@@ -1 +1 @@
-window.app.component("lnbits-funding-sources",{template:"#lnbits-funding-sources",mixins:[window.windowMixin],props:["form-data","allowed-funding-sources"],methods:{getFundingSourceLabel(t){const e=this.rawFundingSources.find((e=>e[0]===t));return e?e[1]:t}},computed:{fundingSources(){let t=[];for(const[e,i,s]of this.rawFundingSources){const i={};if(null!==s)for(let[t,e]of Object.entries(s))i[t]={label:e,value:null};t.push([e,i])}return new Map(t)},sortedAllowedFundingSources(){return this.allowedFundingSources.sort()}},data:()=>({hideInput:!0,rawFundingSources:[["VoidWallet","Void Wallet",null],["FakeWallet","Fake Wallet",{fake_wallet_secret:"Secret",lnbits_denomination:'"sats" or 3 Letter Custom Denomination'}],["CoreLightningWallet","Core Lightning",{corelightning_rpc:"Endpoint",corelightning_pay_command:"Custom Pay Command"}],["CoreLightningRestWallet","Core Lightning Rest",{corelightning_rest_url:"Endpoint",corelightning_rest_cert:"Certificate",corelightning_rest_macaroon:"Macaroon"}],["LndRestWallet","Lightning Network Daemon (LND Rest)",{lnd_rest_endpoint:"Endpoint",lnd_rest_cert:"Certificate",lnd_rest_macaroon:"Macaroon",lnd_rest_macaroon_encrypted:"Encrypted Macaroon",lnd_rest_route_hints:"Enable Route Hints",lnd_rest_allow_self_payment:"Allow Self Payment"}],["LndWallet","Lightning Network Daemon (LND)",{lnd_grpc_endpoint:"Endpoint",lnd_grpc_cert:"Certificate",lnd_grpc_port:"Port",lnd_grpc_admin_macaroon:"Admin Macaroon",lnd_grpc_macaroon_encrypted:"Encrypted Macaroon"}],["LnTipsWallet","LN.Tips",{lntips_api_endpoint:"Endpoint",lntips_api_key:"API Key"}],["LNPayWallet","LN Pay",{lnpay_api_endpoint:"Endpoint",lnpay_api_key:"API Key",lnpay_wallet_key:"Wallet Key"}],["EclairWallet","Eclair (ACINQ)",{eclair_url:"URL",eclair_pass:"Password"}],["LNbitsWallet","LNbits",{lnbits_endpoint:"Endpoint",lnbits_key:"Admin Key"}],["BlinkWallet","Blink",{blink_api_endpoint:"Endpoint",blink_ws_endpoint:"WebSocket",blink_token:"Key"}],["AlbyWallet","Alby",{alby_api_endpoint:"Endpoint",alby_access_token:"Key"}],["BoltzWallet","Boltz",{boltz_client_endpoint:"Endpoint",boltz_client_macaroon:"Admin Macaroon path or hex",boltz_client_cert:"Certificate path or hex",boltz_client_wallet:"Wallet Name"}],["ZBDWallet","ZBD",{zbd_api_endpoint:"Endpoint",zbd_api_key:"Key"}],["PhoenixdWallet","Phoenixd",{phoenixd_api_endpoint:"Endpoint",phoenixd_api_password:"Key"}],["OpenNodeWallet","OpenNode",{opennode_api_endpoint:"Endpoint",opennode_key:"Key"}],["ClicheWallet","Cliche (NBD)",{cliche_endpoint:"Endpoint"}],["SparkWallet","Spark",{spark_url:"Endpoint",spark_token:"Token"}],["NWCWallet","Nostr Wallet Connect",{nwc_pairing_url:"Pairing URL"}],["BreezSdkWallet","Breez SDK",{breez_api_key:"Breez API Key",breez_greenlight_seed:"Greenlight Seed",breez_greenlight_device_key:"Greenlight Device Key",breez_greenlight_device_cert:"Greenlight Device Cert",breez_greenlight_invite_code:"Greenlight Invite Code"}],["StrikeWallet","Strike (alpha)",{strike_api_endpoint:"API Endpoint",strike_api_key:"API Key"}]]})}),window.app.component("lnbits-extension-settings-form",{name:"lnbits-extension-settings-form",template:"#lnbits-extension-settings-form",props:["options","adminkey","endpoint"],methods:{async updateSettings(){if(!this.settings)return Quasar.Notify.create({message:"No settings to update",type:"negative"});try{const{data:t}=await LNbits.api.request("PUT",this.endpoint,this.adminkey,this.settings);this.settings=t}catch(t){LNbits.utils.notifyApiError(t)}},async getSettings(){try{const{data:t}=await LNbits.api.request("GET",this.endpoint,this.adminkey);this.settings=t}catch(t){LNbits.utils.notifyApiError(t)}},async resetSettings(){LNbits.utils.confirmDialog("Are you sure you want to reset the settings?").onOk((async()=>{try{await LNbits.api.request("DELETE",this.endpoint,this.adminkey),await this.getSettings()}catch(t){LNbits.utils.notifyApiError(t)}}))}},async created(){await this.getSettings()},data:()=>({settings:void 0})}),window.app.component("lnbits-extension-settings-btn-dialog",{template:"#lnbits-extension-settings-btn-dialog",name:"lnbits-extension-settings-btn-dialog",props:["options","adminkey","endpoint"],data:()=>({show:!1})}),window.app.component("payment-list",{name:"payment-list",template:"#payment-list",props:["update","lazy","wallet"],mixins:[window.windowMixin],data(){return{denomination:LNBITS_DENOMINATION,payments:[],paymentsTable:{columns:[{name:"time",align:"left",label:this.$t("memo")+"/"+this.$t("date"),field:"date",sortable:!0},{name:"amount",align:"right",label:this.$t("amount")+" ("+LNBITS_DENOMINATION+")",field:"sat",sortable:!0}],pagination:{rowsPerPage:10,page:1,sortBy:"time",descending:!0,rowsNumber:10},search:"",filter:{"status[ne]":"failed"},loading:!1},searchDate:{from:null,to:null},searchStatus:{success:!0,pending:!0,failed:!1,incoming:!0,outgoing:!0},exportTagName:"",exportPaymentTagList:[],paymentsCSV:{columns:[{name:"pending",align:"left",label:"Pending",field:"pending"},{name:"memo",align:"left",label:this.$t("memo"),field:"memo"},{name:"time",align:"left",label:this.$t("date"),field:"date",sortable:!0},{name:"amount",align:"right",label:this.$t("amount")+" ("+LNBITS_DENOMINATION+")",field:"sat",sortable:!0},{name:"fee",align:"right",label:this.$t("fee")+" (m"+LNBITS_DENOMINATION+")",field:"fee"},{name:"tag",align:"right",label:this.$t("tag"),field:"tag"},{name:"payment_hash",align:"right",label:this.$t("payment_hash"),field:"payment_hash"},{name:"payment_proof",align:"right",label:this.$t("payment_proof"),field:"payment_proof"},{name:"webhook",align:"right",label:this.$t("webhook"),field:"webhook"},{name:"fiat_currency",align:"right",label:"Fiat Currency",field:t=>t.extra.wallet_fiat_currency},{name:"fiat_amount",align:"right",label:"Fiat Amount",field:t=>t.extra.wallet_fiat_amount}],loading:!1}}},computed:{currentWallet(){return this.wallet||this.g.wallet},filteredPayments(){const t=this.paymentsTable.search;return t&&""!==t?LNbits.utils.search(this.payments,t):this.payments},paymentsOmitter(){return this.$q.screen.lt.md&&this.mobileSimple?this.payments.length>0?[this.payments[0]]:[]:this.payments},pendingPaymentsExist(){return-1!==this.payments.findIndex((t=>t.pending))}},methods:{searchByDate(){"string"==typeof this.searchDate&&(this.searchDate={from:this.searchDate,to:this.searchDate}),this.searchDate.from&&(this.paymentsTable.filter["time[ge]"]=this.searchDate.from+"T00:00:00"),this.searchDate.to&&(this.paymentsTable.filter["time[le]"]=this.searchDate.to+"T23:59:59"),this.fetchPayments()},clearDateSeach(){this.searchDate={from:null,to:null},delete this.paymentsTable.filter["time[ge]"],delete this.paymentsTable.filter["time[le]"],this.fetchPayments()},fetchPayments(t){this.$emit("filter-changed",{...this.paymentsTable.filter});const e=LNbits.utils.prepareFilterQuery(this.paymentsTable,t);return LNbits.api.getPayments(this.currentWallet,e).then((t=>{this.paymentsTable.loading=!1,this.paymentsTable.pagination.rowsNumber=t.data.total,this.payments=t.data.data.map((t=>LNbits.map.payment(t)))})).catch((t=>{this.paymentsTable.loading=!1,g.user.admin?this.fetchPaymentsAsAdmin(this.currentWallet.id,e):LNbits.utils.notifyApiError(t)}))},fetchPaymentsAsAdmin(t,e){return e=(e||"")+"&wallet_id="+t,LNbits.api.request("GET","/api/v1/payments/all/paginated?"+e).then((t=>{this.paymentsTable.loading=!1,this.paymentsTable.pagination.rowsNumber=t.data.total,this.payments=t.data.data.map((t=>LNbits.map.payment(t)))})).catch((t=>{this.paymentsTable.loading=!1,LNbits.utils.notifyApiError(t)}))},checkPayment(t){LNbits.api.getPayment(this.g.wallet,t).then((t=>{this.update=!this.update,"success"==t.data.status&&Quasar.Notify.create({type:"positive",message:this.$t("payment_successful")}),"pending"==t.data.status&&Quasar.Notify.create({type:"info",message:this.$t("payment_pending")})})).catch(LNbits.utils.notifyApiError)},paymentTableRowKey:t=>t.payment_hash+t.amount,exportCSV(t=!1){const e=this.paymentsTable.pagination,i={sortby:e.sortBy??"time",direction:e.descending?"desc":"asc"},s=new URLSearchParams(i);LNbits.api.getPayments(this.g.wallet,s).then((e=>{let i=e.data.data.map(LNbits.map.payment),s=this.paymentsCSV.columns;if(t){this.exportPaymentTagList.length&&(i=i.filter((t=>this.exportPaymentTagList.includes(t.tag))));const t=Object.keys(i.reduce(((t,e)=>({...t,...e.details})),{})).map((t=>({name:t,align:"right",label:t.charAt(0).toUpperCase()+t.slice(1).replace(/([A-Z])/g," $1"),field:e=>e.details[t],format:t=>"object"==typeof t?JSON.stringify(t):t})));s=this.paymentsCSV.columns.concat(t)}LNbits.utils.exportCSV(s,i,this.g.wallet.name+"-payments")}))},addFilterTag(){if(!this.exportTagName)return;const t=this.exportTagName.trim();this.exportPaymentTagList=this.exportPaymentTagList.filter((e=>e!==t)),this.exportPaymentTagList.push(t),this.exportTagName=""},removeExportTag(t){this.exportPaymentTagList=this.exportPaymentTagList.filter((e=>e!==t))},formatCurrency(t,e){try{return LNbits.utils.formatCurrency(t,e)}catch(e){return console.error(e),`${t} ???`}},handleFilterChanged(){const{success:t,pending:e,failed:i,incoming:s,outgoing:n}=this.searchStatus;delete this.paymentsTable.filter["status[ne]"],delete this.paymentsTable.filter["status[eq]"],t&&e&&i||(t&&e?this.paymentsTable.filter["status[ne]"]="failed":t&&i?this.paymentsTable.filter["status[ne]"]="pending":i&&e?this.paymentsTable.filter["status[ne]"]="success":t?this.paymentsTable.filter["status[eq]"]="success":e?this.paymentsTable.filter["status[eq]"]="pending":i&&(this.paymentsTable.filter["status[eq]"]="failed")),delete this.paymentsTable.filter["amount[ge]"],delete this.paymentsTable.filter["amount[le]"],s&&n||(s?this.paymentsTable.filter["amount[ge]"]=0:n&&(this.paymentsTable.filter["amount[le]"]=0))}},watch:{"paymentsTable.search":{handler(){const t={};this.paymentsTable.search&&(t.search=this.paymentsTable.search),this.fetchPayments()}},lazy(t){!0===t&&this.fetchPayments()},update(){this.fetchPayments()},"g.updatePayments"(){this.fetchPayments()},"g.wallet":{handler(t){this.fetchPayments()},deep:!0}},created(){void 0===this.lazy&&this.fetchPayments()}}),window.app.component(QrcodeVue),window.app.component("lnbits-extension-rating",{template:"#lnbits-extension-rating",name:"lnbits-extension-rating",props:["rating"]}),window.app.component("lnbits-fsat",{template:"{{ fsat }}",props:{amount:{type:Number,default:0}},computed:{fsat(){return LNbits.utils.formatSat(this.amount)}}}),window.app.component("lnbits-wallet-list",{mixins:[window.windowMixin],template:"#lnbits-wallet-list",props:["balance"],data:()=>({activeWallet:null,balance:0,showForm:!1,walletName:"",LNBITS_DENOMINATION:LNBITS_DENOMINATION}),methods:{createWallet(){LNbits.api.createWallet(this.g.user.wallets[0],this.walletName)}},created(){document.addEventListener("updateWalletBalance",this.updateWalletBalance)}}),window.app.component("lnbits-extension-list",{mixins:[window.windowMixin],template:"#lnbits-extension-list",data:()=>({extensions:[],searchTerm:""}),watch:{"g.user.extensions":{handler(t){this.loadExtensions()},deep:!0}},computed:{userExtensions(){return this.updateUserExtensions(this.searchTerm)}},methods:{async loadExtensions(){try{const{data:t}=await LNbits.api.request("GET","/api/v1/extension");this.extensions=t.map((t=>LNbits.map.extension(t))).sort(((t,e)=>t.name.localeCompare(e.name)))}catch(t){LNbits.utils.notifyApiError(t)}},updateUserExtensions(t){const e=window.location.pathname,i=this.g.user.extensions;return this.extensions.filter((t=>i.includes(t.code))).filter((e=>!t||`${e.code} ${e.name} ${e.short_description} ${e.url}`.toLocaleLowerCase().includes(t.toLocaleLowerCase()))).map((t=>(t.isActive=e.startsWith(t.url),t)))}},async created(){await this.loadExtensions()}}),window.app.component("lnbits-manage",{mixins:[window.windowMixin],template:"#lnbits-manage",props:["showAdmin","showNode","showExtensions","showUsers","showAudit"],methods:{isActive:t=>window.location.pathname===t},data:()=>({extensions:[]})}),window.app.component("lnbits-payment-details",{mixins:[window.windowMixin],template:"#lnbits-payment-details",props:["payment"],mixins:[window.windowMixin],data:()=>({LNBITS_DENOMINATION:LNBITS_DENOMINATION}),computed:{hasPreimage(){return this.payment.preimage&&"0000000000000000000000000000000000000000000000000000000000000000"!==this.payment.preimage},hasExpiry(){return!!this.payment.expiry},hasSuccessAction(){return this.hasPreimage&&this.payment.extra&&this.payment.extra.success_action},webhookStatusColor(){return this.payment.webhook_status>=300||this.payment.webhook_status<0?"red-10":this.payment.webhook_status?"green-10":"cyan-7"},webhookStatusText(){return this.payment.webhook_status?this.payment.webhook_status:"not sent yet"},hasTag(){return this.payment.extra&&!!this.payment.extra.tag},extras(){if(!this.payment.extra)return[];let t=_.omit(this.payment.extra,["tag","success_action"]);return Object.keys(t).map((e=>({key:e,value:t[e]})))}}}),window.app.component("lnbits-lnurlpay-success-action",{mixins:[window.windowMixin],template:"#lnbits-lnurlpay-success-action",props:["payment","success_action"],data(){return{decryptedValue:this.success_action.ciphertext}},mounted(){if("aes"!==this.success_action.tag)return null;decryptLnurlPayAES(this.success_action,this.payment.preimage).then((t=>{this.decryptedValue=t}))}}),window.app.component("lnbits-qrcode",{mixins:[window.windowMixin],template:"#lnbits-qrcode",components:{QrcodeVue:QrcodeVue},props:{value:{type:String,required:!0},options:Object},data:()=>({custom:{margin:3,width:350,size:350,logo:LNBITS_QR_LOGO}}),created(){this.custom={...this.custom,...this.options}}}),window.app.component("lnbits-notifications-btn",{template:"#lnbits-notifications-btn",mixins:[window.windowMixin],props:["pubkey"],data:()=>({isSupported:!1,isSubscribed:!1,isPermissionGranted:!1,isPermissionDenied:!1}),methods:{urlB64ToUint8Array(t){const e=(t+"=".repeat((4-t.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),i=atob(e),s=new Uint8Array(i.length);for(let t=0;te!==t)),this.$q.localStorage.set("lnbits.webpush.subscribedUsers",JSON.stringify(e))},isUserSubscribed(t){return(JSON.parse(this.$q.localStorage.getItem("lnbits.webpush.subscribedUsers"))||[]).includes(t)},subscribe(){this.isSupported&&!this.isPermissionDenied&&(Notification.requestPermission().then((t=>{this.isPermissionGranted="granted"===t,this.isPermissionDenied="denied"===t})).catch(console.log),navigator.serviceWorker.ready.then((t=>{navigator.serviceWorker.getRegistration().then((t=>{t.pushManager.getSubscription().then((e=>{if(null===e||!this.isUserSubscribed(this.g.user.id)){const e={applicationServerKey:this.urlB64ToUint8Array(this.pubkey),userVisibleOnly:!0};t.pushManager.subscribe(e).then((t=>{LNbits.api.request("POST","/api/v1/webpush",null,{subscription:JSON.stringify(t)}).then((t=>{this.saveUserSubscribed(t.data.user),this.isSubscribed=!0})).catch(LNbits.utils.notifyApiError)}))}})).catch(console.log)}))})))},unsubscribe(){navigator.serviceWorker.ready.then((t=>{t.pushManager.getSubscription().then((t=>{t&&LNbits.api.request("DELETE","/api/v1/webpush?endpoint="+btoa(t.endpoint),null).then((()=>{this.removeUserSubscribed(this.g.user.id),this.isSubscribed=!1})).catch(LNbits.utils.notifyApiError)}))})).catch(console.log)},checkSupported(){let t="https:"===window.location.protocol,e="serviceWorker"in navigator,i="Notification"in window,s="PushManager"in window;return this.isSupported=t&&e&&i&&s,this.isSupported||console.log("Notifications disabled because requirements are not met:",{HTTPS:t,"Service Worker API":e,"Notification API":i,"Push API":s}),this.isSupported},async updateSubscriptionStatus(){await navigator.serviceWorker.ready.then((t=>{t.pushManager.getSubscription().then((t=>{this.isSubscribed=!!t&&this.isUserSubscribed(this.g.user.id)}))})).catch(console.log)}},created(){this.isPermissionDenied="denied"===Notification.permission,this.checkSupported()&&this.updateSubscriptionStatus()}}),window.app.component("lnbits-dynamic-fields",{template:"#lnbits-dynamic-fields",mixins:[window.windowMixin],props:["options","modelValue"],data:()=>({formData:null,rules:[t=>!!t||"Field is required"]}),methods:{applyRules(t){return t?this.rules:[]},buildData(t,e={}){return t.reduce(((t,i)=>(i.options?.length?t[i.name]=this.buildData(i.options,e[i.name]):t[i.name]=e[i.name]??i.default,t)),{})},handleValueChanged(){this.$emit("update:model-value",this.formData)}},created(){this.formData=this.buildData(this.options,this.modelValue)}}),window.app.component("lnbits-dynamic-chips",{template:"#lnbits-dynamic-chips",mixins:[window.windowMixin],props:["modelValue"],data:()=>({chip:"",chips:[]}),methods:{addChip(){this.chip&&(this.chips.push(this.chip),this.chip="",this.$emit("update:model-value",this.chips.join(",")))},removeChip(t){this.chips.splice(t,1),this.$emit("update:model-value",this.chips.join(","))}},created(){"string"==typeof this.modelValue?this.chips=this.modelValue.split(","):this.chips=[...this.modelValue]}}),window.app.component("lnbits-update-balance",{template:"#lnbits-update-balance",mixins:[window.windowMixin],props:["wallet_id","small_btn"],computed:{denomination:()=>LNBITS_DENOMINATION,admin:()=>user.super_user},data:()=>({credit:0}),methods:{updateBalance(t){LNbits.api.updateBalance(t.value,this.wallet_id).then((e=>{if(!0!==e.data.success)throw new Error(e.data);credit=parseInt(t.value),Quasar.Notify.create({type:"positive",message:this.$t("credit_ok",{amount:credit}),icon:null}),this.credit=0,t.value=0,t.set()})).catch(LNbits.utils.notifyApiError)}}}),window.app.component("user-id-only",{template:"#user-id-only",mixins:[window.windowMixin],props:{allowed_new_users:Boolean,authAction:String,authMethod:String,usr:String,wallet:String},data(){return{user:this.usr,walletName:this.wallet}},methods:{showLogin(t){this.$emit("show-login",t)},showRegister(t){this.$emit("show-register",t)},loginUsr(){this.$emit("update:usr",this.user),this.$emit("login-usr")},createWallet(){this.$emit("update:wallet",this.walletName),this.$emit("create-wallet")}},computed:{showInstantLogin(){return"username-password"!==this.authMethod||"register"!==this.authAction}},created(){}}),window.app.component("username-password",{template:"#username-password",mixins:[window.windowMixin],props:{allowed_new_users:Boolean,authMethods:Array,authAction:String,username:String,password_1:String,password_2:String,resetKey:String},data(){return{oauth:["nostr-auth-nip98","google-auth","github-auth","keycloak-auth"],username:this.userName,password:this.password_1,passwordRepeat:this.password_2,reset_key:this.resetKey,keycloakOrg:LNBITS_AUTH_KEYCLOAK_ORG||"Keycloak",keycloakIcon:LNBITS_AUTH_KEYCLOAK_ICON}},methods:{login(){this.$emit("update:userName",this.username),this.$emit("update:password_1",this.password),this.$emit("login")},register(){this.$emit("update:userName",this.username),this.$emit("update:password_1",this.password),this.$emit("update:password_2",this.passwordRepeat),this.$emit("register")},reset(){this.$emit("update:resetKey",this.reset_key),this.$emit("update:password_1",this.password),this.$emit("update:password_2",this.passwordRepeat),this.$emit("reset")},validateUsername:t=>new RegExp("^(?=[a-zA-Z0-9._]{2,20}$)(?!.*[_.]{2})[^_.].*[^_.]$").test(t),async signInWithNostr(){try{const t=await this.createNostrToken();if(!t)return;resp=await LNbits.api.loginByProvider("nostr",{Authorization:t},{}),window.location.href="/wallet"}catch(t){console.warn(t);const e=t?.response?.data?.detail||`${t}`;Quasar.Notify.create({type:"negative",message:"Failed to sign in with Nostr.",caption:e})}},async createNostrToken(){try{if(!window.nostr?.signEvent)return void Quasar.Notify.create({type:"negative",message:"No Nostr signing app detected.",caption:'Is "window.nostr" present?'});const t=`${window.location}nostr`,e="POST",i=await NostrTools.nip98.getToken(t,e,(t=>async function(t){try{const{data:e}=await LNbits.api.getServerHealth();return t.created_at=e.server_time,await window.nostr.signEvent(t)}catch(t){console.error(t),Quasar.Notify.create({type:"negative",message:"Failed to sign nostr event.",caption:`${t}`})}}(t)),!0);if(!await NostrTools.nip98.validateToken(i,t,e))throw new Error("Invalid signed token!");return i}catch(t){console.warn(t),Quasar.Notify.create({type:"negative",message:"Failed create Nostr event.",caption:`${t}`})}}},computed:{showOauth(){return this.oauth.some((t=>this.authMethods.includes(t)))}},created(){}}),window.app.component("separator-text",{template:"#separator-text",props:{text:String,uppercase:{type:Boolean,default:!1},color:{type:String,default:"grey"}}});const DynamicComponent={props:{fetchUrl:{type:String,required:!0},scripts:{type:Array,default:()=>[]}},data:()=>({keys:[]}),async mounted(){await this.loadDynamicContent()},methods:{loadScript:async t=>new Promise(((e,i)=>{const s=document.querySelector(`script[src="${t}"]`);s&&s.remove();const n=document.createElement("script");n.src=t,n.async=!0,n.onload=e,n.onerror=()=>i(new Error(`Failed to load script: ${t}`)),document.head.appendChild(n)})),async loadDynamicContent(){this.$q.loading.show();try{const t=this.fetchUrl.split("#")[0],e=await fetch(t,{credentials:"include",headers:{Accept:"text/html","X-Requested-With":"XMLHttpRequest"}}),i=await e.text(),s=new DOMParser,n=s.parseFromString(i,"text/html").querySelector("#window-vars-script");n&&new Function(n.innerHTML)(),await this.loadScript("/static/js/base.js");for(const t of this.scripts)await this.loadScript(t);const a=this.$router.currentRoute.value.meta.previousRouteName;a&&window.app._context.components[a]&&delete window.app._context.components[a];const o=`${this.$route.name}PageLogic`,r=window[o];if(!r)throw new Error(`Component logic '${o}' not found. Ensure it is defined in the script.`);r.mixins=r.mixins||[],window.windowMixin&&r.mixins.push(window.windowMixin),window.app.component(this.$route.name,{...r,template:i}),delete window[o],this.$forceUpdate()}catch(t){console.error("Error loading dynamic content:",t)}finally{this.$q.loading.hide()}}},watch:{$route(t,e){routes.map((t=>t.name)).includes(t.name)?(this.$router.currentRoute.value.meta.previousRouteName=e.name,this.loadDynamicContent()):console.log(`Route '${t.name}' is not valid. Leave this one to Fastapi.`)}},template:'\n \n '},routes=[{path:"/wallet",name:"Wallet",component:DynamicComponent,props:t=>{let e="/wallet";if(Object.keys(t.query).length>0){e+="?";for(const[i,s]of Object.entries(t.query))e+=`${i}=${s}&`;e=e.slice(0,-1)}return{fetchUrl:e,scripts:["/static/js/wallet.js"]}}},{path:"/admin",name:"Admin",component:DynamicComponent,props:{fetchUrl:"/admin",scripts:["/static/js/admin.js"]}},{path:"/users",name:"Users",component:DynamicComponent,props:{fetchUrl:"/users",scripts:["/static/js/users.js"]}},{path:"/audit",name:"Audit",component:DynamicComponent,props:{fetchUrl:"/audit",scripts:["/static/js/audit.js"]}},{path:"/payments",name:"Payments",component:DynamicComponent,props:{fetchUrl:"/payments",scripts:["/static/js/payments.js"]}},{path:"/extensions",name:"Extensions",component:DynamicComponent,props:{fetchUrl:"/extensions",scripts:["/static/js/extensions.js"]}},{path:"/account",name:"Account",component:DynamicComponent,props:{fetchUrl:"/account",scripts:["/static/js/account.js"]}},{path:"/wallets",name:"Wallets",component:DynamicComponent,props:{fetchUrl:"/wallets",scripts:["/static/js/wallets.js"]}},{path:"/node",name:"Node",component:DynamicComponent,props:{fetchUrl:"/node",scripts:["/static/js/node.js"]}}];window.router=VueRouter.createRouter({history:VueRouter.createWebHistory(),routes:routes}),window.app.mixin({computed:{isVueRoute(){const t=window.location.pathname,e=window.router.resolve(t);return e?.matched?.length>0}}}),window.app.use(VueQrcodeReader),window.app.use(Quasar,{config:{loading:{spinner:Quasar.QSpinnerBars}}}),window.app.use(window.i18n),window.app.provide("g",g),window.app.use(window.router),window.app.component("DynamicComponent",DynamicComponent),window.app.mount("#vue");
+window.app.component("lnbits-funding-sources",{template:"#lnbits-funding-sources",mixins:[window.windowMixin],props:["form-data","allowed-funding-sources"],methods:{getFundingSourceLabel(t){const e=this.rawFundingSources.find((e=>e[0]===t));return e?e[1]:t},showQRValue(t){this.qrValue=t,this.showQRDialog=!0}},computed:{fundingSources(){let t=[];for(const[e,i,s]of this.rawFundingSources){const i={};if(null!==s)for(let[t,e]of Object.entries(s))i[t]="string"==typeof e?{label:e,value:null}:e||{};t.push([e,i])}return new Map(t)},sortedAllowedFundingSources(){return this.allowedFundingSources.sort()}},data:()=>({hideInput:!0,showQRDialog:!1,qrValue:"",rawFundingSources:[["VoidWallet","Void Wallet",null],["FakeWallet","Fake Wallet",{fake_wallet_secret:"Secret",lnbits_denomination:'"sats" or 3 Letter Custom Denomination'}],["CoreLightningWallet","Core Lightning",{corelightning_rpc:"Endpoint",corelightning_pay_command:"Custom Pay Command"}],["CoreLightningRestWallet","Core Lightning Rest",{corelightning_rest_url:"Endpoint",corelightning_rest_cert:"Certificate",corelightning_rest_macaroon:"Macaroon"}],["LndRestWallet","Lightning Network Daemon (LND Rest)",{lnd_rest_endpoint:"Endpoint",lnd_rest_cert:"Certificate",lnd_rest_macaroon:"Macaroon",lnd_rest_macaroon_encrypted:"Encrypted Macaroon",lnd_rest_route_hints:"Enable Route Hints",lnd_rest_allow_self_payment:"Allow Self Payment"}],["LndWallet","Lightning Network Daemon (LND)",{lnd_grpc_endpoint:"Endpoint",lnd_grpc_cert:"Certificate",lnd_grpc_port:"Port",lnd_grpc_admin_macaroon:"Admin Macaroon",lnd_grpc_macaroon_encrypted:"Encrypted Macaroon"}],["LnTipsWallet","LN.Tips",{lntips_api_endpoint:"Endpoint",lntips_api_key:"API Key"}],["LNPayWallet","LN Pay",{lnpay_api_endpoint:"Endpoint",lnpay_api_key:"API Key",lnpay_wallet_key:"Wallet Key"}],["EclairWallet","Eclair (ACINQ)",{eclair_url:"URL",eclair_pass:"Password"}],["LNbitsWallet","LNbits",{lnbits_endpoint:"Endpoint",lnbits_key:"Admin Key"}],["BlinkWallet","Blink",{blink_api_endpoint:"Endpoint",blink_ws_endpoint:"WebSocket",blink_token:"Key"}],["AlbyWallet","Alby",{alby_api_endpoint:"Endpoint",alby_access_token:"Key"}],["BoltzWallet","Boltz",{boltz_client_endpoint:"Endpoint",boltz_client_macaroon:"Admin Macaroon path or hex",boltz_client_cert:"Certificate path or hex",boltz_client_wallet:"Wallet Name",boltz_client_password:"Wallet Password (can be empty)",boltz_mnemonic:{label:"Liquid mnemonic (copy into greenwallet)",readonly:!0,copy:!0,qrcode:!0}}],["ZBDWallet","ZBD",{zbd_api_endpoint:"Endpoint",zbd_api_key:"Key"}],["PhoenixdWallet","Phoenixd",{phoenixd_api_endpoint:"Endpoint",phoenixd_api_password:"Key"}],["OpenNodeWallet","OpenNode",{opennode_api_endpoint:"Endpoint",opennode_key:"Key"}],["ClicheWallet","Cliche (NBD)",{cliche_endpoint:"Endpoint"}],["SparkWallet","Spark",{spark_url:"Endpoint",spark_token:"Token"}],["NWCWallet","Nostr Wallet Connect",{nwc_pairing_url:"Pairing URL"}],["BreezSdkWallet","Breez SDK",{breez_api_key:"Breez API Key",breez_greenlight_seed:"Greenlight Seed",breez_greenlight_device_key:"Greenlight Device Key",breez_greenlight_device_cert:"Greenlight Device Cert",breez_greenlight_invite_code:"Greenlight Invite Code"}],["StrikeWallet","Strike (alpha)",{strike_api_endpoint:"API Endpoint",strike_api_key:"API Key"}]]})}),window.app.component("lnbits-extension-settings-form",{name:"lnbits-extension-settings-form",template:"#lnbits-extension-settings-form",props:["options","adminkey","endpoint"],methods:{async updateSettings(){if(!this.settings)return Quasar.Notify.create({message:"No settings to update",type:"negative"});try{const{data:t}=await LNbits.api.request("PUT",this.endpoint,this.adminkey,this.settings);this.settings=t}catch(t){LNbits.utils.notifyApiError(t)}},async getSettings(){try{const{data:t}=await LNbits.api.request("GET",this.endpoint,this.adminkey);this.settings=t}catch(t){LNbits.utils.notifyApiError(t)}},async resetSettings(){LNbits.utils.confirmDialog("Are you sure you want to reset the settings?").onOk((async()=>{try{await LNbits.api.request("DELETE",this.endpoint,this.adminkey),await this.getSettings()}catch(t){LNbits.utils.notifyApiError(t)}}))}},async created(){await this.getSettings()},data:()=>({settings:void 0})}),window.app.component("lnbits-extension-settings-btn-dialog",{template:"#lnbits-extension-settings-btn-dialog",name:"lnbits-extension-settings-btn-dialog",props:["options","adminkey","endpoint"],data:()=>({show:!1})}),window.app.component("payment-list",{name:"payment-list",template:"#payment-list",props:["update","lazy","wallet"],mixins:[window.windowMixin],data(){return{denomination:LNBITS_DENOMINATION,payments:[],paymentsTable:{columns:[{name:"time",align:"left",label:this.$t("memo")+"/"+this.$t("date"),field:"date",sortable:!0},{name:"amount",align:"right",label:this.$t("amount")+" ("+LNBITS_DENOMINATION+")",field:"sat",sortable:!0}],pagination:{rowsPerPage:10,page:1,sortBy:"time",descending:!0,rowsNumber:10},search:"",filter:{"status[ne]":"failed"},loading:!1},searchDate:{from:null,to:null},searchStatus:{success:!0,pending:!0,failed:!1,incoming:!0,outgoing:!0},exportTagName:"",exportPaymentTagList:[],paymentsCSV:{columns:[{name:"pending",align:"left",label:"Pending",field:"pending"},{name:"memo",align:"left",label:this.$t("memo"),field:"memo"},{name:"time",align:"left",label:this.$t("date"),field:"date",sortable:!0},{name:"amount",align:"right",label:this.$t("amount")+" ("+LNBITS_DENOMINATION+")",field:"sat",sortable:!0},{name:"fee",align:"right",label:this.$t("fee")+" (m"+LNBITS_DENOMINATION+")",field:"fee"},{name:"tag",align:"right",label:this.$t("tag"),field:"tag"},{name:"payment_hash",align:"right",label:this.$t("payment_hash"),field:"payment_hash"},{name:"payment_proof",align:"right",label:this.$t("payment_proof"),field:"payment_proof"},{name:"webhook",align:"right",label:this.$t("webhook"),field:"webhook"},{name:"fiat_currency",align:"right",label:"Fiat Currency",field:t=>t.extra.wallet_fiat_currency},{name:"fiat_amount",align:"right",label:"Fiat Amount",field:t=>t.extra.wallet_fiat_amount}],loading:!1}}},computed:{currentWallet(){return this.wallet||this.g.wallet},filteredPayments(){const t=this.paymentsTable.search;return t&&""!==t?LNbits.utils.search(this.payments,t):this.payments},paymentsOmitter(){return this.$q.screen.lt.md&&this.mobileSimple?this.payments.length>0?[this.payments[0]]:[]:this.payments},pendingPaymentsExist(){return-1!==this.payments.findIndex((t=>t.pending))}},methods:{searchByDate(){"string"==typeof this.searchDate&&(this.searchDate={from:this.searchDate,to:this.searchDate}),this.searchDate.from&&(this.paymentsTable.filter["time[ge]"]=this.searchDate.from+"T00:00:00"),this.searchDate.to&&(this.paymentsTable.filter["time[le]"]=this.searchDate.to+"T23:59:59"),this.fetchPayments()},clearDateSeach(){this.searchDate={from:null,to:null},delete this.paymentsTable.filter["time[ge]"],delete this.paymentsTable.filter["time[le]"],this.fetchPayments()},fetchPayments(t){this.$emit("filter-changed",{...this.paymentsTable.filter});const e=LNbits.utils.prepareFilterQuery(this.paymentsTable,t);return LNbits.api.getPayments(this.currentWallet,e).then((t=>{this.paymentsTable.loading=!1,this.paymentsTable.pagination.rowsNumber=t.data.total,this.payments=t.data.data.map((t=>LNbits.map.payment(t)))})).catch((t=>{this.paymentsTable.loading=!1,g.user.admin?this.fetchPaymentsAsAdmin(this.currentWallet.id,e):LNbits.utils.notifyApiError(t)}))},fetchPaymentsAsAdmin(t,e){return e=(e||"")+"&wallet_id="+t,LNbits.api.request("GET","/api/v1/payments/all/paginated?"+e).then((t=>{this.paymentsTable.loading=!1,this.paymentsTable.pagination.rowsNumber=t.data.total,this.payments=t.data.data.map((t=>LNbits.map.payment(t)))})).catch((t=>{this.paymentsTable.loading=!1,LNbits.utils.notifyApiError(t)}))},checkPayment(t){LNbits.api.getPayment(this.g.wallet,t).then((t=>{this.update=!this.update,"success"==t.data.status&&Quasar.Notify.create({type:"positive",message:this.$t("payment_successful")}),"pending"==t.data.status&&Quasar.Notify.create({type:"info",message:this.$t("payment_pending")})})).catch(LNbits.utils.notifyApiError)},paymentTableRowKey:t=>t.payment_hash+t.amount,exportCSV(t=!1){const e=this.paymentsTable.pagination,i={sortby:e.sortBy??"time",direction:e.descending?"desc":"asc"},s=new URLSearchParams(i);LNbits.api.getPayments(this.g.wallet,s).then((e=>{let i=e.data.data.map(LNbits.map.payment),s=this.paymentsCSV.columns;if(t){this.exportPaymentTagList.length&&(i=i.filter((t=>this.exportPaymentTagList.includes(t.tag))));const t=Object.keys(i.reduce(((t,e)=>({...t,...e.details})),{})).map((t=>({name:t,align:"right",label:t.charAt(0).toUpperCase()+t.slice(1).replace(/([A-Z])/g," $1"),field:e=>e.details[t],format:t=>"object"==typeof t?JSON.stringify(t):t})));s=this.paymentsCSV.columns.concat(t)}LNbits.utils.exportCSV(s,i,this.g.wallet.name+"-payments")}))},addFilterTag(){if(!this.exportTagName)return;const t=this.exportTagName.trim();this.exportPaymentTagList=this.exportPaymentTagList.filter((e=>e!==t)),this.exportPaymentTagList.push(t),this.exportTagName=""},removeExportTag(t){this.exportPaymentTagList=this.exportPaymentTagList.filter((e=>e!==t))},formatCurrency(t,e){try{return LNbits.utils.formatCurrency(t,e)}catch(e){return console.error(e),`${t} ???`}},handleFilterChanged(){const{success:t,pending:e,failed:i,incoming:s,outgoing:n}=this.searchStatus;delete this.paymentsTable.filter["status[ne]"],delete this.paymentsTable.filter["status[eq]"],t&&e&&i||(t&&e?this.paymentsTable.filter["status[ne]"]="failed":t&&i?this.paymentsTable.filter["status[ne]"]="pending":i&&e?this.paymentsTable.filter["status[ne]"]="success":t?this.paymentsTable.filter["status[eq]"]="success":e?this.paymentsTable.filter["status[eq]"]="pending":i&&(this.paymentsTable.filter["status[eq]"]="failed")),delete this.paymentsTable.filter["amount[ge]"],delete this.paymentsTable.filter["amount[le]"],s&&n||(s?this.paymentsTable.filter["amount[ge]"]=0:n&&(this.paymentsTable.filter["amount[le]"]=0))}},watch:{"paymentsTable.search":{handler(){const t={};this.paymentsTable.search&&(t.search=this.paymentsTable.search),this.fetchPayments()}},lazy(t){!0===t&&this.fetchPayments()},update(){this.fetchPayments()},"g.updatePayments"(){this.fetchPayments()},"g.wallet":{handler(t){this.fetchPayments()},deep:!0}},created(){void 0===this.lazy&&this.fetchPayments()}}),window.app.component(QrcodeVue),window.app.component("lnbits-extension-rating",{template:"#lnbits-extension-rating",name:"lnbits-extension-rating",props:["rating"]}),window.app.component("lnbits-fsat",{template:"{{ fsat }}",props:{amount:{type:Number,default:0}},computed:{fsat(){return LNbits.utils.formatSat(this.amount)}}}),window.app.component("lnbits-wallet-list",{mixins:[window.windowMixin],template:"#lnbits-wallet-list",props:["balance"],data:()=>({activeWallet:null,balance:0,showForm:!1,walletName:"",LNBITS_DENOMINATION:LNBITS_DENOMINATION}),methods:{createWallet(){LNbits.api.createWallet(this.g.user.wallets[0],this.walletName)}},created(){document.addEventListener("updateWalletBalance",this.updateWalletBalance)}}),window.app.component("lnbits-extension-list",{mixins:[window.windowMixin],template:"#lnbits-extension-list",data:()=>({extensions:[],searchTerm:""}),watch:{"g.user.extensions":{handler(t){this.loadExtensions()},deep:!0}},computed:{userExtensions(){return this.updateUserExtensions(this.searchTerm)}},methods:{async loadExtensions(){try{const{data:t}=await LNbits.api.request("GET","/api/v1/extension");this.extensions=t.map((t=>LNbits.map.extension(t))).sort(((t,e)=>t.name.localeCompare(e.name)))}catch(t){LNbits.utils.notifyApiError(t)}},updateUserExtensions(t){const e=window.location.pathname,i=this.g.user.extensions;return this.extensions.filter((t=>i.includes(t.code))).filter((e=>!t||`${e.code} ${e.name} ${e.short_description} ${e.url}`.toLocaleLowerCase().includes(t.toLocaleLowerCase()))).map((t=>(t.isActive=e.startsWith(t.url),t)))}},async created(){await this.loadExtensions()}}),window.app.component("lnbits-manage",{mixins:[window.windowMixin],template:"#lnbits-manage",props:["showAdmin","showNode","showExtensions","showUsers","showAudit"],methods:{isActive:t=>window.location.pathname===t},data:()=>({extensions:[]})}),window.app.component("lnbits-payment-details",{mixins:[window.windowMixin],template:"#lnbits-payment-details",props:["payment"],mixins:[window.windowMixin],data:()=>({LNBITS_DENOMINATION:LNBITS_DENOMINATION}),computed:{hasPreimage(){return this.payment.preimage&&"0000000000000000000000000000000000000000000000000000000000000000"!==this.payment.preimage},hasExpiry(){return!!this.payment.expiry},hasSuccessAction(){return this.hasPreimage&&this.payment.extra&&this.payment.extra.success_action},webhookStatusColor(){return this.payment.webhook_status>=300||this.payment.webhook_status<0?"red-10":this.payment.webhook_status?"green-10":"cyan-7"},webhookStatusText(){return this.payment.webhook_status?this.payment.webhook_status:"not sent yet"},hasTag(){return this.payment.extra&&!!this.payment.extra.tag},extras(){if(!this.payment.extra)return[];let t=_.omit(this.payment.extra,["tag","success_action"]);return Object.keys(t).map((e=>({key:e,value:t[e]})))}}}),window.app.component("lnbits-lnurlpay-success-action",{mixins:[window.windowMixin],template:"#lnbits-lnurlpay-success-action",props:["payment","success_action"],data(){return{decryptedValue:this.success_action.ciphertext}},mounted(){if("aes"!==this.success_action.tag)return null;decryptLnurlPayAES(this.success_action,this.payment.preimage).then((t=>{this.decryptedValue=t}))}}),window.app.component("lnbits-qrcode",{mixins:[window.windowMixin],template:"#lnbits-qrcode",components:{QrcodeVue:QrcodeVue},props:{value:{type:String,required:!0},options:Object},data:()=>({custom:{margin:3,width:350,size:350,logo:LNBITS_QR_LOGO}}),created(){this.custom={...this.custom,...this.options}}}),window.app.component("lnbits-notifications-btn",{template:"#lnbits-notifications-btn",mixins:[window.windowMixin],props:["pubkey"],data:()=>({isSupported:!1,isSubscribed:!1,isPermissionGranted:!1,isPermissionDenied:!1}),methods:{urlB64ToUint8Array(t){const e=(t+"=".repeat((4-t.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),i=atob(e),s=new Uint8Array(i.length);for(let t=0;te!==t)),this.$q.localStorage.set("lnbits.webpush.subscribedUsers",JSON.stringify(e))},isUserSubscribed(t){return(JSON.parse(this.$q.localStorage.getItem("lnbits.webpush.subscribedUsers"))||[]).includes(t)},subscribe(){this.isSupported&&!this.isPermissionDenied&&(Notification.requestPermission().then((t=>{this.isPermissionGranted="granted"===t,this.isPermissionDenied="denied"===t})).catch(console.log),navigator.serviceWorker.ready.then((t=>{navigator.serviceWorker.getRegistration().then((t=>{t.pushManager.getSubscription().then((e=>{if(null===e||!this.isUserSubscribed(this.g.user.id)){const e={applicationServerKey:this.urlB64ToUint8Array(this.pubkey),userVisibleOnly:!0};t.pushManager.subscribe(e).then((t=>{LNbits.api.request("POST","/api/v1/webpush",null,{subscription:JSON.stringify(t)}).then((t=>{this.saveUserSubscribed(t.data.user),this.isSubscribed=!0})).catch(LNbits.utils.notifyApiError)}))}})).catch(console.log)}))})))},unsubscribe(){navigator.serviceWorker.ready.then((t=>{t.pushManager.getSubscription().then((t=>{t&&LNbits.api.request("DELETE","/api/v1/webpush?endpoint="+btoa(t.endpoint),null).then((()=>{this.removeUserSubscribed(this.g.user.id),this.isSubscribed=!1})).catch(LNbits.utils.notifyApiError)}))})).catch(console.log)},checkSupported(){let t="https:"===window.location.protocol,e="serviceWorker"in navigator,i="Notification"in window,s="PushManager"in window;return this.isSupported=t&&e&&i&&s,this.isSupported||console.log("Notifications disabled because requirements are not met:",{HTTPS:t,"Service Worker API":e,"Notification API":i,"Push API":s}),this.isSupported},async updateSubscriptionStatus(){await navigator.serviceWorker.ready.then((t=>{t.pushManager.getSubscription().then((t=>{this.isSubscribed=!!t&&this.isUserSubscribed(this.g.user.id)}))})).catch(console.log)}},created(){this.isPermissionDenied="denied"===Notification.permission,this.checkSupported()&&this.updateSubscriptionStatus()}}),window.app.component("lnbits-dynamic-fields",{template:"#lnbits-dynamic-fields",mixins:[window.windowMixin],props:["options","modelValue"],data:()=>({formData:null,rules:[t=>!!t||"Field is required"]}),methods:{applyRules(t){return t?this.rules:[]},buildData(t,e={}){return t.reduce(((t,i)=>(i.options?.length?t[i.name]=this.buildData(i.options,e[i.name]):t[i.name]=e[i.name]??i.default,t)),{})},handleValueChanged(){this.$emit("update:model-value",this.formData)}},created(){this.formData=this.buildData(this.options,this.modelValue)}}),window.app.component("lnbits-dynamic-chips",{template:"#lnbits-dynamic-chips",mixins:[window.windowMixin],props:["modelValue"],data:()=>({chip:"",chips:[]}),methods:{addChip(){this.chip&&(this.chips.push(this.chip),this.chip="",this.$emit("update:model-value",this.chips.join(",")))},removeChip(t){this.chips.splice(t,1),this.$emit("update:model-value",this.chips.join(","))}},created(){"string"==typeof this.modelValue?this.chips=this.modelValue.split(","):this.chips=[...this.modelValue]}}),window.app.component("lnbits-update-balance",{template:"#lnbits-update-balance",mixins:[window.windowMixin],props:["wallet_id","small_btn"],computed:{denomination:()=>LNBITS_DENOMINATION,admin:()=>user.super_user},data:()=>({credit:0}),methods:{updateBalance(t){LNbits.api.updateBalance(t.value,this.wallet_id).then((e=>{if(!0!==e.data.success)throw new Error(e.data);credit=parseInt(t.value),Quasar.Notify.create({type:"positive",message:this.$t("credit_ok",{amount:credit}),icon:null}),this.credit=0,t.value=0,t.set()})).catch(LNbits.utils.notifyApiError)}}}),window.app.component("user-id-only",{template:"#user-id-only",mixins:[window.windowMixin],props:{allowed_new_users:Boolean,authAction:String,authMethod:String,usr:String,wallet:String},data(){return{user:this.usr,walletName:this.wallet}},methods:{showLogin(t){this.$emit("show-login",t)},showRegister(t){this.$emit("show-register",t)},loginUsr(){this.$emit("update:usr",this.user),this.$emit("login-usr")},createWallet(){this.$emit("update:wallet",this.walletName),this.$emit("create-wallet")}},computed:{showInstantLogin(){return"username-password"!==this.authMethod||"register"!==this.authAction}},created(){}}),window.app.component("username-password",{template:"#username-password",mixins:[window.windowMixin],props:{allowed_new_users:Boolean,authMethods:Array,authAction:String,username:String,password_1:String,password_2:String,resetKey:String},data(){return{oauth:["nostr-auth-nip98","google-auth","github-auth","keycloak-auth"],username:this.userName,password:this.password_1,passwordRepeat:this.password_2,reset_key:this.resetKey,keycloakOrg:LNBITS_AUTH_KEYCLOAK_ORG||"Keycloak",keycloakIcon:LNBITS_AUTH_KEYCLOAK_ICON}},methods:{login(){this.$emit("update:userName",this.username),this.$emit("update:password_1",this.password),this.$emit("login")},register(){this.$emit("update:userName",this.username),this.$emit("update:password_1",this.password),this.$emit("update:password_2",this.passwordRepeat),this.$emit("register")},reset(){this.$emit("update:resetKey",this.reset_key),this.$emit("update:password_1",this.password),this.$emit("update:password_2",this.passwordRepeat),this.$emit("reset")},validateUsername:t=>new RegExp("^(?=[a-zA-Z0-9._]{2,20}$)(?!.*[_.]{2})[^_.].*[^_.]$").test(t),async signInWithNostr(){try{const t=await this.createNostrToken();if(!t)return;resp=await LNbits.api.loginByProvider("nostr",{Authorization:t},{}),window.location.href="/wallet"}catch(t){console.warn(t);const e=t?.response?.data?.detail||`${t}`;Quasar.Notify.create({type:"negative",message:"Failed to sign in with Nostr.",caption:e})}},async createNostrToken(){try{if(!window.nostr?.signEvent)return void Quasar.Notify.create({type:"negative",message:"No Nostr signing app detected.",caption:'Is "window.nostr" present?'});const t=`${window.location}nostr`,e="POST",i=await NostrTools.nip98.getToken(t,e,(t=>async function(t){try{const{data:e}=await LNbits.api.getServerHealth();return t.created_at=e.server_time,await window.nostr.signEvent(t)}catch(t){console.error(t),Quasar.Notify.create({type:"negative",message:"Failed to sign nostr event.",caption:`${t}`})}}(t)),!0);if(!await NostrTools.nip98.validateToken(i,t,e))throw new Error("Invalid signed token!");return i}catch(t){console.warn(t),Quasar.Notify.create({type:"negative",message:"Failed create Nostr event.",caption:`${t}`})}}},computed:{showOauth(){return this.oauth.some((t=>this.authMethods.includes(t)))}},created(){}}),window.app.component("separator-text",{template:"#separator-text",props:{text:String,uppercase:{type:Boolean,default:!1},color:{type:String,default:"grey"}}});const DynamicComponent={props:{fetchUrl:{type:String,required:!0},scripts:{type:Array,default:()=>[]}},data:()=>({keys:[]}),async mounted(){await this.loadDynamicContent()},methods:{loadScript:async t=>new Promise(((e,i)=>{const s=document.querySelector(`script[src="${t}"]`);s&&s.remove();const n=document.createElement("script");n.src=t,n.async=!0,n.onload=e,n.onerror=()=>i(new Error(`Failed to load script: ${t}`)),document.head.appendChild(n)})),async loadDynamicContent(){this.$q.loading.show();try{const t=this.fetchUrl.split("#")[0],e=await fetch(t,{credentials:"include",headers:{Accept:"text/html","X-Requested-With":"XMLHttpRequest"}}),i=await e.text(),s=new DOMParser,n=s.parseFromString(i,"text/html").querySelector("#window-vars-script");n&&new Function(n.innerHTML)(),await this.loadScript("/static/js/base.js");for(const t of this.scripts)await this.loadScript(t);const a=this.$router.currentRoute.value.meta.previousRouteName;a&&window.app._context.components[a]&&delete window.app._context.components[a];const o=`${this.$route.name}PageLogic`,r=window[o];if(!r)throw new Error(`Component logic '${o}' not found. Ensure it is defined in the script.`);r.mixins=r.mixins||[],window.windowMixin&&r.mixins.push(window.windowMixin),window.app.component(this.$route.name,{...r,template:i}),delete window[o],this.$forceUpdate()}catch(t){console.error("Error loading dynamic content:",t)}finally{this.$q.loading.hide()}}},watch:{$route(t,e){routes.map((t=>t.name)).includes(t.name)?(this.$router.currentRoute.value.meta.previousRouteName=e.name,this.loadDynamicContent()):console.log(`Route '${t.name}' is not valid. Leave this one to Fastapi.`)}},template:'\n \n '},routes=[{path:"/wallet",name:"Wallet",component:DynamicComponent,props:t=>{let e="/wallet";if(Object.keys(t.query).length>0){e+="?";for(const[i,s]of Object.entries(t.query))e+=`${i}=${s}&`;e=e.slice(0,-1)}return{fetchUrl:e,scripts:["/static/js/wallet.js"]}}},{path:"/admin",name:"Admin",component:DynamicComponent,props:{fetchUrl:"/admin",scripts:["/static/js/admin.js"]}},{path:"/users",name:"Users",component:DynamicComponent,props:{fetchUrl:"/users",scripts:["/static/js/users.js"]}},{path:"/audit",name:"Audit",component:DynamicComponent,props:{fetchUrl:"/audit",scripts:["/static/js/audit.js"]}},{path:"/payments",name:"Payments",component:DynamicComponent,props:{fetchUrl:"/payments",scripts:["/static/js/payments.js"]}},{path:"/extensions",name:"Extensions",component:DynamicComponent,props:{fetchUrl:"/extensions",scripts:["/static/js/extensions.js"]}},{path:"/account",name:"Account",component:DynamicComponent,props:{fetchUrl:"/account",scripts:["/static/js/account.js"]}},{path:"/wallets",name:"Wallets",component:DynamicComponent,props:{fetchUrl:"/wallets",scripts:["/static/js/wallets.js"]}},{path:"/node",name:"Node",component:DynamicComponent,props:{fetchUrl:"/node",scripts:["/static/js/node.js"]}}];window.router=VueRouter.createRouter({history:VueRouter.createWebHistory(),routes:routes}),window.app.mixin({computed:{isVueRoute(){const t=window.location.pathname,e=window.router.resolve(t);return e?.matched?.length>0}}}),window.app.use(VueQrcodeReader),window.app.use(Quasar,{config:{loading:{spinner:Quasar.QSpinnerBars}}}),window.app.use(window.i18n),window.app.provide("g",g),window.app.use(window.router),window.app.component("DynamicComponent",DynamicComponent),window.app.mount("#vue");
diff --git a/lnbits/static/js/components/lnbits-funding-sources.js b/lnbits/static/js/components/lnbits-funding-sources.js
index 7a53108f..3d8fff65 100644
--- a/lnbits/static/js/components/lnbits-funding-sources.js
+++ b/lnbits/static/js/components/lnbits-funding-sources.js
@@ -8,6 +8,10 @@ window.app.component('lnbits-funding-sources', {
fundingSource => fundingSource[0] === item
)
return fundingSource ? fundingSource[1] : item
+ },
+ showQRValue(value) {
+ this.qrValue = value
+ this.showQRDialog = true
}
},
computed: {
@@ -17,7 +21,8 @@ window.app.component('lnbits-funding-sources', {
const tmpObj = {}
if (obj !== null) {
for (let [k, v] of Object.entries(obj)) {
- tmpObj[k] = {label: v, value: null}
+ tmpObj[k] =
+ typeof v === 'string' ? {label: v, value: null} : v || {}
}
}
tmp.push([key, tmpObj])
@@ -31,6 +36,8 @@ window.app.component('lnbits-funding-sources', {
data() {
return {
hideInput: true,
+ showQRDialog: false,
+ qrValue: '',
rawFundingSources: [
['VoidWallet', 'Void Wallet', null],
[
@@ -138,7 +145,14 @@ window.app.component('lnbits-funding-sources', {
boltz_client_endpoint: 'Endpoint',
boltz_client_macaroon: 'Admin Macaroon path or hex',
boltz_client_cert: 'Certificate path or hex',
- boltz_client_wallet: 'Wallet Name'
+ boltz_client_wallet: 'Wallet Name',
+ boltz_client_password: 'Wallet Password (can be empty)',
+ boltz_mnemonic: {
+ label: 'Liquid mnemonic (copy into greenwallet)',
+ readonly: true,
+ copy: true,
+ qrcode: true
+ }
}
],
[
diff --git a/lnbits/templates/components.vue b/lnbits/templates/components.vue
index e0bfc8e1..82251796 100644
--- a/lnbits/templates/components.vue
+++ b/lnbits/templates/components.vue
@@ -1141,12 +1141,41 @@
:type="hideInput ? 'password' : 'text'"
:label="prop.label"
:hint="prop.hint"
+ :readonly="prop.readonly || false"
>
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lnbits/wallets/boltz.py b/lnbits/wallets/boltz.py
index d4eb16de..7df4d0f6 100644
--- a/lnbits/wallets/boltz.py
+++ b/lnbits/wallets/boltz.py
@@ -63,6 +63,27 @@ class BoltzWallet(Wallet):
self.rpc = boltzrpc_pb2_grpc.BoltzStub(channel)
self.wallet_id: int = 0
+ # Auto-create wallet if running in Docker mode
+ async def _init_boltz_wallet():
+ try:
+ wallet_name = settings.boltz_client_wallet or "lnbits"
+ mnemonic = await self._fetch_wallet(wallet_name)
+ if mnemonic:
+ logger.info(
+ "✅ Mnemonic found for Boltz wallet, saving to settings"
+ )
+ settings.boltz_mnemonic = mnemonic
+
+ from lnbits.core.crud.settings import set_settings_field
+
+ await set_settings_field("boltz_mnemonic", mnemonic)
+ else:
+ logger.warning("⚠️ No mnemonic returned from Boltz")
+ except Exception as e:
+ logger.error(f"❌ Failed to auto-create Boltz wallet: {e}")
+
+ self._init_wallet_task = asyncio.create_task(_init_boltz_wallet())
+
async def status(self) -> StatusResponse:
try:
request = boltzrpc_pb2.GetWalletRequest(name=settings.boltz_client_wallet)
@@ -70,9 +91,10 @@ class BoltzWallet(Wallet):
request, metadata=self.metadata
)
except AioRpcError as exc:
+ logger.warning(exc)
return StatusResponse(
- exc.details()
- + " make sure you have macaroon and certificate configured, unless your client runs without", # noqa: E501
+ "make sure you have macaroon and certificate configured,"
+ "unless your client runs without",
0,
)
@@ -193,7 +215,10 @@ class BoltzWallet(Wallet):
async def get_payment_status(self, checking_id: str) -> PaymentStatus:
try:
response: boltzrpc_pb2.GetSwapInfoResponse = await self.rpc.GetSwapInfo(
- boltzrpc_pb2.GetSwapInfoRequest(id=checking_id), metadata=self.metadata
+ boltzrpc_pb2.GetSwapInfoRequest(
+ payment_hash=bytes.fromhex(checking_id)
+ ),
+ metadata=self.metadata,
)
swap = response.swap
except AioRpcError:
@@ -225,3 +250,25 @@ class BoltzWallet(Wallet):
" 5 seconds"
)
await asyncio.sleep(5)
+
+ async def _fetch_wallet(self, wallet_name: str) -> Optional[str]:
+ try:
+ request = boltzrpc_pb2.GetWalletRequest(name=wallet_name)
+ response = await self.rpc.GetWallet(request, metadata=self.metadata)
+ logger.info(f"Wallet '{wallet_name}' already exists with ID {response.id}")
+ return settings.boltz_mnemonic
+ except AioRpcError as exc:
+ details = exc.details() or "unknown error"
+ if exc.code() != grpc.StatusCode.NOT_FOUND:
+ logger.error(f"Error checking wallet existence: {details}")
+ raise
+
+ logger.info(f"Creating new wallet '{wallet_name}'")
+ params = boltzrpc_pb2.WalletParams(
+ name=wallet_name,
+ currency=boltzrpc_pb2.LBTC,
+ password=settings.boltz_client_password,
+ )
+ create_request = boltzrpc_pb2.CreateWalletRequest(params=params)
+ response = await self.rpc.CreateWallet(create_request, metadata=self.metadata)
+ return response.mnemonic
diff --git a/lnbits/wallets/boltz_grpc_files/boltzrpc.proto b/lnbits/wallets/boltz_grpc_files/boltzrpc.proto
index 74b51ee1..803b93fa 100644
--- a/lnbits/wallets/boltz_grpc_files/boltzrpc.proto
+++ b/lnbits/wallets/boltz_grpc_files/boltzrpc.proto
@@ -1,7 +1,7 @@
syntax = "proto3";
package boltzrpc;
-option go_package = "github.com/BoltzExchange/boltz-client/boltzrpc";
+option go_package = "github.com/BoltzExchange/boltz-client/v2/pkg/boltzrpc";
import "google/protobuf/empty.proto";
service Boltz {
@@ -122,6 +122,23 @@ service Boltz {
*/
rpc GetWallet (GetWalletRequest) returns (Wallet);
+ /*
+ Calculates the fee for an equivalent `WalletSend` request.
+ If `address` is left empty, a dummy swap address will be used, allowing for a fee estimation of a swap lockup transaction.
+ */
+ rpc GetWalletSendFee (WalletSendRequest) returns (WalletSendFee);
+
+ /*
+ Returns recent transactions from a wallet.
+ */
+ rpc ListWalletTransactions (ListWalletTransactionsRequest) returns (ListWalletTransactionsResponse);
+
+ /*
+ Increase the fee of a transaction using RBF.
+ The transaction has to belong to one of the clients wallets.
+ */
+ rpc BumpTransaction (BumpTransactionRequest) returns (BumpTransactionResponse);
+
/*
Returns the credentials of a wallet. The password will be required if the wallet is encrypted.
*/
@@ -132,6 +149,16 @@ service Boltz {
*/
rpc RemoveWallet (RemoveWalletRequest) returns (RemoveWalletResponse);
+ /*
+ Send coins from a wallet. Only the confirmed balance can be spent.
+ */
+ rpc WalletSend (WalletSendRequest) returns (WalletSendResponse);
+
+ /*
+ Get a new address of the wallet.
+ */
+ rpc WalletReceive (WalletReceiveRequest) returns (WalletReceiveResponse);
+
/*
Gracefully stops the daemon.
*/
@@ -265,11 +292,12 @@ message SwapInfo {
repeated ChannelId chan_ids = 14;
optional string blinding_key = 15;
int64 created_at = 16;
- optional uint64 service_fee = 17;
+ optional int64 service_fee = 17;
optional uint64 onchain_fee = 18;
// internal wallet which was used to pay the swap
optional uint64 wallet_id = 20;
uint64 tenant_id = 21;
+ bool is_auto = 23;
}
enum SwapType {
@@ -322,7 +350,8 @@ message ReverseSwapInfo {
string redeem_script = 7;
string invoice = 8;
string claim_address = 9;
- int64 onchain_amount = 10;
+ uint64 onchain_amount = 10;
+ uint64 invoice_amount = 25;
uint32 timeout_block_height = 11;
string lockup_transaction_id = 12;
string claim_transaction_id = 13;
@@ -331,11 +360,12 @@ message ReverseSwapInfo {
optional string blinding_key = 16;
int64 created_at = 17;
optional int64 paid_at = 23; // the time when the invoice was paid
- optional uint64 service_fee = 18;
+ optional int64 service_fee = 18;
optional uint64 onchain_fee = 19;
optional uint64 routing_fee_msat = 20;
bool external_pay = 21;
uint64 tenant_id = 22;
+ bool is_auto = 24;
}
message BlockHeights {
@@ -406,17 +436,44 @@ enum IncludeSwaps {
AUTO = 2;
}
+message AnySwapInfo {
+ string id = 1;
+ SwapType type = 2;
+ Pair pair = 3;
+ SwapState state = 4;
+ optional string error = 5;
+ string status = 6;
+ // The expected amount to be sent to the lockup address for submarine and chain swaps and
+ // the invoice amount for reverse swaps.
+ uint64 from_amount = 7;
+ // `from_amount` minus the service and network fee.
+ uint64 to_amount = 13;
+ int64 created_at = 8;
+ optional int64 service_fee = 9;
+ // inclues the routing fee for reverse swaps
+ optional uint64 onchain_fee = 10;
+ bool is_auto = 11;
+ uint64 tenant_id = 12;
+}
+
message ListSwapsRequest {
optional Currency from = 1;
optional Currency to = 2;
optional SwapState state = 4;
IncludeSwaps include = 5;
+ optional uint64 limit = 6;
+ optional uint64 offset = 7;
+ // wether to return swaps in the shared `all_swaps` list or in the detailed lists.
+ // the `limit` and `offset` are only considered when `unify` is true.
+ optional bool unify = 8;
}
message ListSwapsResponse {
repeated SwapInfo swaps = 1;
- repeated CombinedChannelSwapInfo channel_creations = 2;
+ repeated CombinedChannelSwapInfo channel_creations = 2 [deprecated = true];
repeated ReverseSwapInfo reverse_swaps = 3;
repeated ChainSwapInfo chain_swaps = 4;
+ // populated when `unify` is set to true in the request
+ repeated AnySwapInfo all_swaps = 5;
}
message GetStatsRequest {
@@ -448,7 +505,12 @@ message ClaimSwapsResponse {
}
message GetSwapInfoRequest {
- string id = 1;
+ string id = 1 [deprecated = true];
+ oneof identifier {
+ string swap_id = 2;
+ // Only implemented for submarine swaps
+ bytes payment_hash = 3;
+ }
}
message GetSwapInfoResponse {
SwapInfo swap = 1;
@@ -471,22 +533,29 @@ message DepositResponse {
}
message CreateSwapRequest {
+ // amount of sats to be received on lightning.
+ // related: `invoice` field
uint64 amount = 1;
Pair pair = 2;
- // not yet supported
- // repeated string chan_ids = 3;
- // the daemon will pay the swap using the onchain wallet specified in the `wallet` field or any wallet otherwise.
+ // the daemon will pay the swap using the onchain wallet specified in the `wallet` field
+ // or the first internal wallet with the correct currency otherwise.
bool send_from_internal = 4;
// address where the coins should go if the swap fails. Refunds will go to any of the daemons wallets otherwise.
optional string refund_address = 5;
// wallet to pay swap from. only used if `send_from_internal` is set to true
optional uint64 wallet_id = 6;
- // invoice to use for the swap. if not set, the daemon will get a new invoice from the lightning node
+ // bolt11 invoice, lnurl, or lnaddress to use for the swap.
+ // required in standalone mode.
+ // when connected to a lightning node, a new invoice for `amount` sats will be fetched
+ // the `amount` field has to be populated in case of a lnurl and lnaddress
optional string invoice = 7;
- // Boltz does not accept 0-conf for Liquid transactions with a fee of 0.01 sat/vByte;
- // when `zero_conf` is enabled, a fee of 0.1 sat/vByte will be used for Liquid lockup transactions
- optional bool zero_conf = 8;
+ optional bool zero_conf = 8 [deprecated = true];
+ // Fee rate to use when sending from internal wallet
+ optional double sat_per_vbyte = 9;
+ // Rates to accept for the swap. Queries latest from boltz otherwise
+ // The recommended way to use this is to pass a user approved value from a previous `GetPairInfo` call
+ optional PairInfo accepted_pair = 10;
}
message CreateSwapResponse {
string id = 1;
@@ -530,6 +599,16 @@ message CreateReverseSwapRequest {
optional bool external_pay = 8;
// Description of the invoice which will be created for the swap
optional string description = 9;
+ // Description hash of the invoice which will be created for the swap. Takes precedence over `description`
+ optional bytes description_hash = 10;
+ // Expiry of the reverse swap invoice in seconds
+ optional uint64 invoice_expiry = 11;
+ // Rates to accept for the swap. Queries latest from boltz otherwise
+ // The recommended way to use this is to pass a user approved value from a previous `GetPairInfo` call
+ optional PairInfo accepted_pair = 12;
+
+ // The routing fee limit for paying the lightning invoice in ppm (parts per million)
+ optional uint64 routing_fee_limit_ppm = 13;
}
message CreateReverseSwapResponse {
string id = 1;
@@ -545,7 +624,8 @@ message CreateReverseSwapResponse {
message CreateChainSwapRequest {
// Amount of satoshis to swap. It is the amount expected to be sent to the lockup address.
- uint64 amount = 1;
+ // If left empty, any amount within the limits will be accepted.
+ optional uint64 amount = 1;
Pair pair = 2;
// Address where funds will be swept to if the swap succeeds
optional string to_address = 3;
@@ -561,9 +641,12 @@ message CreateChainSwapRequest {
optional bool accept_zero_conf = 7;
// If set, the daemon will not pay the swap from an internal wallet.
optional bool external_pay = 8;
- // Boltz does not accept 0-conf for Liquid transactions with a fee of 0.01 sat/vByte;
- // when `lockup_zero_conf` is enabled, a fee of 0.1 sat/vByte will be used for Liquid lockup transactions
- optional bool lockup_zero_conf = 9;
+ optional bool lockup_zero_conf = 9 [deprecated = true];
+ // Fee rate to use when sending from internal wallet
+ optional double sat_per_vbyte = 10;
+ // Rates to accept for the swap. Queries latest from boltz otherwise
+ // The recommended way to use this is to pass a user approved value from a previous `GetPairInfo` call
+ optional PairInfo accepted_pair = 11;
}
message ChainSwapInfo {
@@ -574,7 +657,7 @@ message ChainSwapInfo {
string status = 5;
string preimage = 6;
bool is_auto = 8;
- optional uint64 service_fee = 9;
+ optional int64 service_fee = 9;
double service_fee_percent = 10;
optional uint64 onchain_fee = 11;
int64 created_at = 12;
@@ -614,9 +697,9 @@ message LightningChannel {
}
message SwapStats {
- uint64 total_fees = 1;
+ int64 total_fees = 1;
uint64 total_amount = 2;
- uint64 avg_fees = 3;
+ int64 avg_fees = 3;
uint64 avg_amount = 4;
uint64 count = 5;
uint64 success_count = 6;
@@ -687,6 +770,75 @@ message GetWalletRequest {
optional uint64 id = 2;
}
+message WalletSendFee {
+ // amount of sats which would be sent
+ uint64 amount = 1;
+ uint64 fee = 2;
+ // the fee rate used for the estimation in sat/vbyte
+ double fee_rate = 3;
+}
+
+message ListWalletTransactionsRequest {
+ uint64 id = 1;
+ optional bool exclude_swap_related = 2;
+ optional uint64 limit = 3;
+ optional uint64 offset = 4;
+}
+
+enum TransactionType {
+ UNKNOWN = 0;
+ LOCKUP = 1;
+ REFUND = 2;
+ CLAIM = 3;
+ CONSOLIDATION = 4;
+}
+
+message WalletTransaction {
+ string id = 1;
+ // balance change of the wallet in satoshis.
+ // its the sum of all output values minus the sum of all input values which are controlled by the wallet.
+ // positive values indicate incoming transactions, negative values outgoing transactions
+ int64 balance_change = 2;
+ int64 timestamp = 3;
+ repeated TransactionOutput outputs = 4;
+ uint32 block_height = 6;
+ // additional informations about the tx (type, related swaps etc.)
+ repeated TransactionInfo infos = 7;
+}
+
+message BumpTransactionRequest {
+ oneof previous {
+ // Id of the transaction to bump. The transaction has to belong to one of the clients wallets
+ string tx_id = 1;
+ // Depending on the state of the swap, the lockup, refund or claim transaction will be bumped
+ string swap_id = 2;
+ }
+ // Fee rate for the new transaction. if not specified, the daemon will query the fee rate from the configured provider
+ // and bump the fee by at least 1 sat/vbyte.
+ optional double sat_per_vbyte = 3;
+}
+
+message BumpTransactionResponse {
+ string tx_id = 1;
+}
+
+message TransactionInfo {
+ // will be populated for LOCKUP, REFUND and CLAIM
+ optional string swap_id = 1;
+ TransactionType type = 2;
+}
+
+message TransactionOutput {
+ string address = 1;
+ uint64 amount = 2;
+ // wether the address is controlled by the wallet
+ bool is_our_address = 3;
+}
+
+message ListWalletTransactionsResponse {
+ repeated WalletTransaction transactions = 1;
+}
+
message GetWalletCredentialsRequest {
uint64 id = 1;
optional string password = 2;
@@ -696,6 +848,31 @@ message RemoveWalletRequest {
uint64 id = 1;
}
+message WalletSendRequest {
+ uint64 id = 1;
+ string address = 2;
+ // Amount of satoshis to be sent to 'address`
+ uint64 amount = 3;
+ // Fee rate to use for the transaction
+ optional double sat_per_vbyte = 4;
+ // Sends all available funds to the address. The `amount` field is ignored.
+ optional bool send_all = 5;
+ // whether `address` is the lockup of a swap.
+ optional bool is_swap_address = 6;
+}
+
+message WalletSendResponse {
+ string tx_id = 1;
+}
+
+message WalletReceiveRequest {
+ uint64 id = 1;
+}
+
+message WalletReceiveResponse {
+ string address = 1;
+}
+
message Wallet {
uint64 id = 1;
@@ -720,6 +897,7 @@ message Subaccount {
Balance balance = 1;
uint64 pointer = 2;
string type = 3;
+ repeated string descriptors = 4;
}
message RemoveWalletResponse {}
diff --git a/lnbits/wallets/boltz_grpc_files/boltzrpc_pb2.py b/lnbits/wallets/boltz_grpc_files/boltzrpc_pb2.py
index 9467afc5..73fb8fb0 100644
--- a/lnbits/wallets/boltz_grpc_files/boltzrpc_pb2.py
+++ b/lnbits/wallets/boltz_grpc_files/boltzrpc_pb2.py
@@ -1,13 +1,22 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: lnbits/wallets/boltz_grpc_files/boltzrpc.proto
-# Protobuf Python Version: 5.26.1
+# NO CHECKED-IN PROTOBUF GENCODE
+# source: boltz_grpc_files/boltzrpc.proto
+# Protobuf Python Version: 5.29.0
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import runtime_version as _runtime_version
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
-
+_runtime_version.ValidateProtobufRuntimeVersion(
+ _runtime_version.Domain.PUBLIC,
+ 5,
+ 29,
+ 0,
+ '',
+ 'boltz_grpc_files/boltzrpc.proto'
+)
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
@@ -16,206 +25,220 @@ _sym_db = _symbol_database.Default()
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
- b'\n.lnbits/wallets/boltz_grpc_files/boltzrpc.proto\x12\x08\x62oltzrpc\x1a\x1bgoogle/protobuf/empty.proto"#\n\x13\x43reateTenantRequest\x12\x0c\n\x04name\x18\x01 \x01(\t"\x14\n\x12ListTenantsRequest"8\n\x13ListTenantsResponse\x12!\n\x07tenants\x18\x01 \x03(\x0b\x32\x10.boltzrpc.Tenant" \n\x10GetTenantRequest\x12\x0c\n\x04name\x18\x01 \x01(\t""\n\x06Tenant\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t"?\n\x13MacaroonPermissions\x12(\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32\x18.boltzrpc.MacaroonAction"o\n\x13\x42\x61keMacaroonRequest\x12\x16\n\ttenant_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x32\n\x0bpermissions\x18\x02 \x03(\x0b\x32\x1d.boltzrpc.MacaroonPermissionsB\x0c\n\n_tenant_id"(\n\x14\x42\x61keMacaroonResponse\x12\x10\n\x08macaroon\x18\x01 \x01(\t"H\n\x04Pair\x12 \n\x04\x66rom\x18\x01 \x01(\x0e\x32\x12.boltzrpc.Currency\x12\x1e\n\x02to\x18\x02 \x01(\x0e\x32\x12.boltzrpc.Currency"\xf7\x04\n\x08SwapInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1c\n\x04pair\x18\x16 \x01(\x0b\x32\x0e.boltzrpc.Pair\x12"\n\x05state\x18\x02 \x01(\x0e\x32\x13.boltzrpc.SwapState\x12\r\n\x05\x65rror\x18\x03 \x01(\t\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x13\n\x0bprivate_key\x18\x05 \x01(\t\x12\x10\n\x08preimage\x18\x06 \x01(\t\x12\x15\n\rredeem_script\x18\x07 \x01(\t\x12\x0f\n\x07invoice\x18\x08 \x01(\t\x12\x16\n\x0elockup_address\x18\t \x01(\t\x12\x17\n\x0f\x65xpected_amount\x18\n \x01(\x04\x12\x1c\n\x14timeout_block_height\x18\x0b \x01(\r\x12\x1d\n\x15lockup_transaction_id\x18\x0c \x01(\t\x12\x1d\n\x15refund_transaction_id\x18\r \x01(\t\x12\x1b\n\x0erefund_address\x18\x13 \x01(\tH\x00\x88\x01\x01\x12%\n\x08\x63han_ids\x18\x0e \x03(\x0b\x32\x13.boltzrpc.ChannelId\x12\x19\n\x0c\x62linding_key\x18\x0f \x01(\tH\x01\x88\x01\x01\x12\x12\n\ncreated_at\x18\x10 \x01(\x03\x12\x18\n\x0bservice_fee\x18\x11 \x01(\x04H\x02\x88\x01\x01\x12\x18\n\x0bonchain_fee\x18\x12 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\twallet_id\x18\x14 \x01(\x04H\x04\x88\x01\x01\x12\x11\n\ttenant_id\x18\x15 \x01(\x04\x42\x11\n\x0f_refund_addressB\x0f\n\r_blinding_keyB\x0e\n\x0c_service_feeB\x0e\n\x0c_onchain_feeB\x0c\n\n_wallet_id"T\n\x12GetPairInfoRequest\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.boltzrpc.SwapType\x12\x1c\n\x04pair\x18\x02 \x01(\x0b\x32\x0e.boltzrpc.Pair"z\n\x08PairInfo\x12\x1c\n\x04pair\x18\x01 \x01(\x0b\x32\x0e.boltzrpc.Pair\x12 \n\x04\x66\x65\x65s\x18\x02 \x01(\x0b\x32\x12.boltzrpc.SwapFees\x12 \n\x06limits\x18\x03 \x01(\x0b\x32\x10.boltzrpc.Limits\x12\x0c\n\x04hash\x18\x04 \x01(\t"\xa8\x01\n\x13\x43hannelCreationInfo\x12\x0f\n\x07swap_id\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x19\n\x11inbound_liquidity\x18\x03 \x01(\r\x12\x0f\n\x07private\x18\x04 \x01(\x08\x12\x1e\n\x16\x66unding_transaction_id\x18\x05 \x01(\t\x12 \n\x18\x66unding_transaction_vout\x18\x06 \x01(\r:\x02\x18\x01"x\n\x17\x43ombinedChannelSwapInfo\x12 \n\x04swap\x18\x01 \x01(\x0b\x32\x12.boltzrpc.SwapInfo\x12\x37\n\x10\x63hannel_creation\x18\x02 \x01(\x0b\x32\x1d.boltzrpc.ChannelCreationInfo:\x02\x18\x01"\x91\x05\n\x0fReverseSwapInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12"\n\x05state\x18\x02 \x01(\x0e\x32\x13.boltzrpc.SwapState\x12\r\n\x05\x65rror\x18\x03 \x01(\t\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x13\n\x0bprivate_key\x18\x05 \x01(\t\x12\x10\n\x08preimage\x18\x06 \x01(\t\x12\x15\n\rredeem_script\x18\x07 \x01(\t\x12\x0f\n\x07invoice\x18\x08 \x01(\t\x12\x15\n\rclaim_address\x18\t \x01(\t\x12\x16\n\x0eonchain_amount\x18\n \x01(\x03\x12\x1c\n\x14timeout_block_height\x18\x0b \x01(\r\x12\x1d\n\x15lockup_transaction_id\x18\x0c \x01(\t\x12\x1c\n\x14\x63laim_transaction_id\x18\r \x01(\t\x12\x1c\n\x04pair\x18\x0e \x01(\x0b\x32\x0e.boltzrpc.Pair\x12%\n\x08\x63han_ids\x18\x0f \x03(\x0b\x32\x13.boltzrpc.ChannelId\x12\x19\n\x0c\x62linding_key\x18\x10 \x01(\tH\x00\x88\x01\x01\x12\x12\n\ncreated_at\x18\x11 \x01(\x03\x12\x14\n\x07paid_at\x18\x17 \x01(\x03H\x01\x88\x01\x01\x12\x18\n\x0bservice_fee\x18\x12 \x01(\x04H\x02\x88\x01\x01\x12\x18\n\x0bonchain_fee\x18\x13 \x01(\x04H\x03\x88\x01\x01\x12\x1d\n\x10routing_fee_msat\x18\x14 \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x0c\x65xternal_pay\x18\x15 \x01(\x08\x12\x11\n\ttenant_id\x18\x16 \x01(\x04\x42\x0f\n\r_blinding_keyB\n\n\x08_paid_atB\x0e\n\x0c_service_feeB\x0e\n\x0c_onchain_feeB\x13\n\x11_routing_fee_msat";\n\x0c\x42lockHeights\x12\x0b\n\x03\x62tc\x18\x01 \x01(\r\x12\x13\n\x06liquid\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\t\n\x07_liquid"\x10\n\x0eGetInfoRequest"\x88\x03\n\x0fGetInfoResponse\x12\x0f\n\x07version\x18\t \x01(\t\x12\x0c\n\x04node\x18\n \x01(\t\x12\x0f\n\x07network\x18\x02 \x01(\t\x12\x13\n\x0bnode_pubkey\x18\x07 \x01(\t\x12\x18\n\x10\x61uto_swap_status\x18\x0b \x01(\t\x12-\n\rblock_heights\x18\x08 \x01(\x0b\x32\x16.boltzrpc.BlockHeights\x12\x18\n\x10refundable_swaps\x18\x0c \x03(\t\x12%\n\x06tenant\x18\r \x01(\x0b\x32\x10.boltzrpc.TenantH\x00\x88\x01\x01\x12\x17\n\x0f\x63laimable_swaps\x18\x0e \x03(\t\x12\x12\n\x06symbol\x18\x01 \x01(\tB\x02\x18\x01\x12\x16\n\nlnd_pubkey\x18\x03 \x01(\tB\x02\x18\x01\x12\x18\n\x0c\x62lock_height\x18\x04 \x01(\rB\x02\x18\x01\x12\x19\n\rpending_swaps\x18\x05 \x03(\tB\x02\x18\x01\x12!\n\x15pending_reverse_swaps\x18\x06 \x03(\tB\x02\x18\x01\x42\t\n\x07_tenant"L\n\x06Limits\x12\x0f\n\x07minimal\x18\x01 \x01(\x04\x12\x0f\n\x07maximal\x18\x02 \x01(\x04\x12 \n\x18maximal_zero_conf_amount\x18\x03 \x01(\x04"2\n\x08SwapFees\x12\x12\n\npercentage\x18\x01 \x01(\x01\x12\x12\n\nminer_fees\x18\x02 \x01(\x04"\x81\x01\n\x10GetPairsResponse\x12%\n\tsubmarine\x18\x01 \x03(\x0b\x32\x12.boltzrpc.PairInfo\x12#\n\x07reverse\x18\x02 \x03(\x0b\x32\x12.boltzrpc.PairInfo\x12!\n\x05\x63hain\x18\x03 \x03(\x0b\x32\x12.boltzrpc.PairInfo",\n\tMinerFees\x12\x0e\n\x06normal\x18\x01 \x01(\r\x12\x0f\n\x07reverse\x18\x02 \x01(\r">\n\x04\x46\x65\x65s\x12\x12\n\npercentage\x18\x01 \x01(\x02\x12"\n\x05miner\x18\x02 \x01(\x0b\x32\x13.boltzrpc.MinerFees"\x17\n\x15GetServiceInfoRequest"X\n\x16GetServiceInfoResponse\x12\x1c\n\x04\x66\x65\x65s\x18\x01 \x01(\x0b\x32\x0e.boltzrpc.Fees\x12 \n\x06limits\x18\x02 \x01(\x0b\x32\x10.boltzrpc.Limits"\xca\x01\n\x10ListSwapsRequest\x12%\n\x04\x66rom\x18\x01 \x01(\x0e\x32\x12.boltzrpc.CurrencyH\x00\x88\x01\x01\x12#\n\x02to\x18\x02 \x01(\x0e\x32\x12.boltzrpc.CurrencyH\x01\x88\x01\x01\x12\'\n\x05state\x18\x04 \x01(\x0e\x32\x13.boltzrpc.SwapStateH\x02\x88\x01\x01\x12\'\n\x07include\x18\x05 \x01(\x0e\x32\x16.boltzrpc.IncludeSwapsB\x07\n\x05_fromB\x05\n\x03_toB\x08\n\x06_state"\xd4\x01\n\x11ListSwapsResponse\x12!\n\x05swaps\x18\x01 \x03(\x0b\x32\x12.boltzrpc.SwapInfo\x12<\n\x11\x63hannel_creations\x18\x02 \x03(\x0b\x32!.boltzrpc.CombinedChannelSwapInfo\x12\x30\n\rreverse_swaps\x18\x03 \x03(\x0b\x32\x19.boltzrpc.ReverseSwapInfo\x12,\n\x0b\x63hain_swaps\x18\x04 \x03(\x0b\x32\x17.boltzrpc.ChainSwapInfo":\n\x0fGetStatsRequest\x12\'\n\x07include\x18\x01 \x01(\x0e\x32\x16.boltzrpc.IncludeSwaps"6\n\x10GetStatsResponse\x12"\n\x05stats\x18\x01 \x01(\x0b\x32\x13.boltzrpc.SwapStats"V\n\x11RefundSwapRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x12\x13\n\twallet_id\x18\x03 \x01(\x04H\x00\x42\r\n\x0b\x64\x65stination"\\\n\x11\x43laimSwapsRequest\x12\x10\n\x08swap_ids\x18\x01 \x03(\t\x12\x11\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x12\x13\n\twallet_id\x18\x03 \x01(\x04H\x00\x42\r\n\x0b\x64\x65stination",\n\x12\x43laimSwapsResponse\x12\x16\n\x0etransaction_id\x18\x01 \x01(\t" \n\x12GetSwapInfoRequest\x12\n\n\x02id\x18\x01 \x01(\t"\xce\x01\n\x13GetSwapInfoResponse\x12 \n\x04swap\x18\x01 \x01(\x0b\x32\x12.boltzrpc.SwapInfo\x12\x37\n\x10\x63hannel_creation\x18\x02 \x01(\x0b\x32\x1d.boltzrpc.ChannelCreationInfo\x12/\n\x0creverse_swap\x18\x03 \x01(\x0b\x32\x19.boltzrpc.ReverseSwapInfo\x12+\n\nchain_swap\x18\x04 \x01(\x0b\x32\x17.boltzrpc.ChainSwapInfo"+\n\x0e\x44\x65positRequest\x12\x19\n\x11inbound_liquidity\x18\x01 \x01(\r"L\n\x0f\x44\x65positResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x1c\n\x14timeout_block_height\x18\x03 \x01(\r"\xfb\x01\n\x11\x43reateSwapRequest\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x04\x12\x1c\n\x04pair\x18\x02 \x01(\x0b\x32\x0e.boltzrpc.Pair\x12\x1a\n\x12send_from_internal\x18\x04 \x01(\x08\x12\x1b\n\x0erefund_address\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x16\n\twallet_id\x18\x06 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x07invoice\x18\x07 \x01(\tH\x02\x88\x01\x01\x12\x16\n\tzero_conf\x18\x08 \x01(\x08H\x03\x88\x01\x01\x42\x11\n\x0f_refund_addressB\x0c\n\n_wallet_idB\n\n\x08_invoiceB\x0c\n\n_zero_conf"\x9d\x01\n\x12\x43reateSwapResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x17\n\x0f\x65xpected_amount\x18\x03 \x01(\x04\x12\r\n\x05\x62ip21\x18\x04 \x01(\t\x12\r\n\x05tx_id\x18\x05 \x01(\t\x12\x1c\n\x14timeout_block_height\x18\x06 \x01(\r\x12\x15\n\rtimeout_hours\x18\x07 \x01(\x02"R\n\x14\x43reateChannelRequest\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x03\x12\x19\n\x11inbound_liquidity\x18\x02 \x01(\r\x12\x0f\n\x07private\x18\x03 \x01(\x08"\xb9\x02\n\x18\x43reateReverseSwapRequest\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x04\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x18\n\x10\x61\x63\x63\x65pt_zero_conf\x18\x03 \x01(\x08\x12\x1c\n\x04pair\x18\x04 \x01(\x0b\x32\x0e.boltzrpc.Pair\x12\x10\n\x08\x63han_ids\x18\x05 \x03(\t\x12\x16\n\twallet_id\x18\x06 \x01(\x04H\x00\x88\x01\x01\x12\x1f\n\x12return_immediately\x18\x07 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0c\x65xternal_pay\x18\x08 \x01(\x08H\x02\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\t \x01(\tH\x03\x88\x01\x01\x42\x0c\n\n_wallet_idB\x15\n\x13_return_immediatelyB\x0f\n\r_external_payB\x0e\n\x0c_description"\xdb\x01\n\x19\x43reateReverseSwapResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0elockup_address\x18\x02 \x01(\t\x12"\n\x15routing_fee_milli_sat\x18\x03 \x01(\x04H\x00\x88\x01\x01\x12!\n\x14\x63laim_transaction_id\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07invoice\x18\x05 \x01(\tH\x02\x88\x01\x01\x42\x18\n\x16_routing_fee_milli_satB\x17\n\x15_claim_transaction_idB\n\n\x08_invoice"\x8e\x03\n\x16\x43reateChainSwapRequest\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x04\x12\x1c\n\x04pair\x18\x02 \x01(\x0b\x32\x0e.boltzrpc.Pair\x12\x17\n\nto_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0erefund_address\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0e\x66rom_wallet_id\x18\x05 \x01(\x04H\x02\x88\x01\x01\x12\x19\n\x0cto_wallet_id\x18\x06 \x01(\x04H\x03\x88\x01\x01\x12\x1d\n\x10\x61\x63\x63\x65pt_zero_conf\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x19\n\x0c\x65xternal_pay\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10lockup_zero_conf\x18\t \x01(\x08H\x06\x88\x01\x01\x42\r\n\x0b_to_addressB\x11\n\x0f_refund_addressB\x11\n\x0f_from_wallet_idB\x0f\n\r_to_wallet_idB\x13\n\x11_accept_zero_confB\x0f\n\r_external_payB\x13\n\x11_lockup_zero_conf"\x8d\x03\n\rChainSwapInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1c\n\x04pair\x18\x02 \x01(\x0b\x32\x0e.boltzrpc.Pair\x12"\n\x05state\x18\x03 \x01(\x0e\x32\x13.boltzrpc.SwapState\x12\r\n\x05\x65rror\x18\x04 \x01(\t\x12\x0e\n\x06status\x18\x05 \x01(\t\x12\x10\n\x08preimage\x18\x06 \x01(\t\x12\x0f\n\x07is_auto\x18\x08 \x01(\x08\x12\x18\n\x0bservice_fee\x18\t \x01(\x04H\x00\x88\x01\x01\x12\x1b\n\x13service_fee_percent\x18\n \x01(\x01\x12\x18\n\x0bonchain_fee\x18\x0b \x01(\x04H\x01\x88\x01\x01\x12\x12\n\ncreated_at\x18\x0c \x01(\x03\x12\x11\n\ttenant_id\x18\r \x01(\x04\x12*\n\tfrom_data\x18\x0e \x01(\x0b\x32\x17.boltzrpc.ChainSwapData\x12(\n\x07to_data\x18\x0f \x01(\x0b\x32\x17.boltzrpc.ChainSwapDataB\x0e\n\x0c_service_feeB\x0e\n\x0c_onchain_fee"\x98\x03\n\rChainSwapData\x12\n\n\x02id\x18\x01 \x01(\t\x12$\n\x08\x63urrency\x18\x02 \x01(\x0e\x32\x12.boltzrpc.Currency\x12\x13\n\x0bprivate_key\x18\x03 \x01(\t\x12\x18\n\x10their_public_key\x18\x04 \x01(\t\x12\x0e\n\x06\x61mount\x18\x06 \x01(\x04\x12\x1c\n\x14timeout_block_height\x18\x07 \x01(\r\x12"\n\x15lockup_transaction_id\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0etransaction_id\x18\t \x01(\tH\x01\x88\x01\x01\x12\x16\n\twallet_id\x18\x14 \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x0c \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0c\x62linding_key\x18\r \x01(\tH\x04\x88\x01\x01\x12\x16\n\x0elockup_address\x18\x0e \x01(\tB\x18\n\x16_lockup_transaction_idB\x11\n\x0f_transaction_idB\x0c\n\n_wallet_idB\n\n\x08_addressB\x0f\n\r_blinding_key"%\n\tChannelId\x12\x0b\n\x03\x63ln\x18\x01 \x01(\t\x12\x0b\n\x03lnd\x18\x02 \x01(\x04"\x81\x01\n\x10LightningChannel\x12\x1f\n\x02id\x18\x01 \x01(\x0b\x32\x13.boltzrpc.ChannelId\x12\x10\n\x08\x63\x61pacity\x18\x02 \x01(\x04\x12\x14\n\x0coutbound_sat\x18\x03 \x01(\x04\x12\x13\n\x0binbound_sat\x18\x04 \x01(\x04\x12\x0f\n\x07peer_id\x18\x05 \x01(\t"\x81\x01\n\tSwapStats\x12\x12\n\ntotal_fees\x18\x01 \x01(\x04\x12\x14\n\x0ctotal_amount\x18\x02 \x01(\x04\x12\x10\n\x08\x61vg_fees\x18\x03 \x01(\x04\x12\x12\n\navg_amount\x18\x04 \x01(\x04\x12\r\n\x05\x63ount\x18\x05 \x01(\x04\x12\x15\n\rsuccess_count\x18\x06 \x01(\x04"P\n\x06\x42udget\x12\r\n\x05total\x18\x01 \x01(\x04\x12\x11\n\tremaining\x18\x02 \x01(\x03\x12\x12\n\nstart_date\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_date\x18\x04 \x01(\x03"\xad\x01\n\x11WalletCredentials\x12\x15\n\x08mnemonic\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04xpub\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0f\x63ore_descriptor\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nsubaccount\x18\x04 \x01(\x04H\x03\x88\x01\x01\x42\x0b\n\t_mnemonicB\x07\n\x05_xpubB\x12\n\x10_core_descriptorB\r\n\x0b_subaccount"f\n\x0cWalletParams\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\x08\x63urrency\x18\x02 \x01(\x0e\x32\x12.boltzrpc.Currency\x12\x15\n\x08password\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_password"o\n\x13ImportWalletRequest\x12\x30\n\x0b\x63redentials\x18\x01 \x01(\x0b\x32\x1b.boltzrpc.WalletCredentials\x12&\n\x06params\x18\x02 \x01(\x0b\x32\x16.boltzrpc.WalletParams"=\n\x13\x43reateWalletRequest\x12&\n\x06params\x18\x02 \x01(\x0b\x32\x16.boltzrpc.WalletParams"J\n\x14\x43reateWalletResponse\x12\x10\n\x08mnemonic\x18\x01 \x01(\t\x12 \n\x06wallet\x18\x02 \x01(\x0b\x32\x10.boltzrpc.Wallet"Q\n\x14SetSubaccountRequest\x12\x11\n\twallet_id\x18\x01 \x01(\x04\x12\x17\n\nsubaccount\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\r\n\x0b_subaccount"*\n\x15GetSubaccountsRequest\x12\x11\n\twallet_id\x18\x01 \x01(\x04"e\n\x16GetSubaccountsResponse\x12\x14\n\x07\x63urrent\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12)\n\x0bsubaccounts\x18\x02 \x03(\x0b\x32\x14.boltzrpc.SubaccountB\n\n\x08_current"\x16\n\x14ImportWalletResponse"\x7f\n\x11GetWalletsRequest\x12)\n\x08\x63urrency\x18\x01 \x01(\x0e\x32\x12.boltzrpc.CurrencyH\x00\x88\x01\x01\x12\x1d\n\x10include_readonly\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0b\n\t_currencyB\x13\n\x11_include_readonly"F\n\x10GetWalletRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x07\n\x05_nameB\x05\n\x03_id"M\n\x1bGetWalletCredentialsRequest\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x15\n\x08password\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_password"!\n\x13RemoveWalletRequest\x12\n\n\x02id\x18\x01 \x01(\x04"\x91\x01\n\x06Wallet\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12$\n\x08\x63urrency\x18\x03 \x01(\x0e\x32\x12.boltzrpc.Currency\x12\x10\n\x08readonly\x18\x04 \x01(\x08\x12"\n\x07\x62\x61lance\x18\x05 \x01(\x0b\x32\x11.boltzrpc.Balance\x12\x11\n\ttenant_id\x18\x06 \x01(\x04",\n\x07Wallets\x12!\n\x07wallets\x18\x01 \x03(\x0b\x32\x10.boltzrpc.Wallet"@\n\x07\x42\x61lance\x12\r\n\x05total\x18\x01 \x01(\x04\x12\x11\n\tconfirmed\x18\x02 \x01(\x04\x12\x13\n\x0bunconfirmed\x18\x03 \x01(\x04"O\n\nSubaccount\x12"\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32\x11.boltzrpc.Balance\x12\x0f\n\x07pointer\x18\x02 \x01(\x04\x12\x0c\n\x04type\x18\x03 \x01(\t"\x16\n\x14RemoveWalletResponse"!\n\rUnlockRequest\x12\x10\n\x08password\x18\x01 \x01(\t"/\n\x1bVerifyWalletPasswordRequest\x12\x10\n\x08password\x18\x01 \x01(\t"/\n\x1cVerifyWalletPasswordResponse\x12\x0f\n\x07\x63orrect\x18\x01 \x01(\x08"7\n\x1b\x43hangeWalletPasswordRequest\x12\x0b\n\x03old\x18\x01 \x01(\t\x12\x0b\n\x03new\x18\x02 \x01(\t*%\n\x0eMacaroonAction\x12\x08\n\x04READ\x10\x00\x12\t\n\x05WRITE\x10\x01*b\n\tSwapState\x12\x0b\n\x07PENDING\x10\x00\x12\x0e\n\nSUCCESSFUL\x10\x01\x12\t\n\x05\x45RROR\x10\x02\x12\x10\n\x0cSERVER_ERROR\x10\x03\x12\x0c\n\x08REFUNDED\x10\x04\x12\r\n\tABANDONED\x10\x05*\x1d\n\x08\x43urrency\x12\x07\n\x03\x42TC\x10\x00\x12\x08\n\x04LBTC\x10\x01*1\n\x08SwapType\x12\r\n\tSUBMARINE\x10\x00\x12\x0b\n\x07REVERSE\x10\x01\x12\t\n\x05\x43HAIN\x10\x02*-\n\x0cIncludeSwaps\x12\x07\n\x03\x41LL\x10\x00\x12\n\n\x06MANUAL\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\x32\x84\x12\n\x05\x42oltz\x12>\n\x07GetInfo\x12\x18.boltzrpc.GetInfoRequest\x1a\x19.boltzrpc.GetInfoResponse\x12X\n\x0eGetServiceInfo\x12\x1f.boltzrpc.GetServiceInfoRequest\x1a .boltzrpc.GetServiceInfoResponse"\x03\x88\x02\x01\x12?\n\x0bGetPairInfo\x12\x1c.boltzrpc.GetPairInfoRequest\x1a\x12.boltzrpc.PairInfo\x12>\n\x08GetPairs\x12\x16.google.protobuf.Empty\x1a\x1a.boltzrpc.GetPairsResponse\x12\x44\n\tListSwaps\x12\x1a.boltzrpc.ListSwapsRequest\x1a\x1b.boltzrpc.ListSwapsResponse\x12\x41\n\x08GetStats\x12\x19.boltzrpc.GetStatsRequest\x1a\x1a.boltzrpc.GetStatsResponse\x12H\n\nRefundSwap\x12\x1b.boltzrpc.RefundSwapRequest\x1a\x1d.boltzrpc.GetSwapInfoResponse\x12G\n\nClaimSwaps\x12\x1b.boltzrpc.ClaimSwapsRequest\x1a\x1c.boltzrpc.ClaimSwapsResponse\x12J\n\x0bGetSwapInfo\x12\x1c.boltzrpc.GetSwapInfoRequest\x1a\x1d.boltzrpc.GetSwapInfoResponse\x12R\n\x11GetSwapInfoStream\x12\x1c.boltzrpc.GetSwapInfoRequest\x1a\x1d.boltzrpc.GetSwapInfoResponse0\x01\x12\x43\n\x07\x44\x65posit\x12\x18.boltzrpc.DepositRequest\x1a\x19.boltzrpc.DepositResponse"\x03\x88\x02\x01\x12G\n\nCreateSwap\x12\x1b.boltzrpc.CreateSwapRequest\x1a\x1c.boltzrpc.CreateSwapResponse\x12R\n\rCreateChannel\x12\x1e.boltzrpc.CreateChannelRequest\x1a\x1c.boltzrpc.CreateSwapResponse"\x03\x88\x02\x01\x12\\\n\x11\x43reateReverseSwap\x12".boltzrpc.CreateReverseSwapRequest\x1a#.boltzrpc.CreateReverseSwapResponse\x12L\n\x0f\x43reateChainSwap\x12 .boltzrpc.CreateChainSwapRequest\x1a\x17.boltzrpc.ChainSwapInfo\x12M\n\x0c\x43reateWallet\x12\x1d.boltzrpc.CreateWalletRequest\x1a\x1e.boltzrpc.CreateWalletResponse\x12?\n\x0cImportWallet\x12\x1d.boltzrpc.ImportWalletRequest\x1a\x10.boltzrpc.Wallet\x12\x45\n\rSetSubaccount\x12\x1e.boltzrpc.SetSubaccountRequest\x1a\x14.boltzrpc.Subaccount\x12S\n\x0eGetSubaccounts\x12\x1f.boltzrpc.GetSubaccountsRequest\x1a .boltzrpc.GetSubaccountsResponse\x12<\n\nGetWallets\x12\x1b.boltzrpc.GetWalletsRequest\x1a\x11.boltzrpc.Wallets\x12\x39\n\tGetWallet\x12\x1a.boltzrpc.GetWalletRequest\x1a\x10.boltzrpc.Wallet\x12Z\n\x14GetWalletCredentials\x12%.boltzrpc.GetWalletCredentialsRequest\x1a\x1b.boltzrpc.WalletCredentials\x12M\n\x0cRemoveWallet\x12\x1d.boltzrpc.RemoveWalletRequest\x1a\x1e.boltzrpc.RemoveWalletResponse\x12\x36\n\x04Stop\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\x12\x39\n\x06Unlock\x12\x17.boltzrpc.UnlockRequest\x1a\x16.google.protobuf.Empty\x12\x65\n\x14VerifyWalletPassword\x12%.boltzrpc.VerifyWalletPasswordRequest\x1a&.boltzrpc.VerifyWalletPasswordResponse\x12U\n\x14\x43hangeWalletPassword\x12%.boltzrpc.ChangeWalletPasswordRequest\x1a\x16.google.protobuf.Empty\x12?\n\x0c\x43reateTenant\x12\x1d.boltzrpc.CreateTenantRequest\x1a\x10.boltzrpc.Tenant\x12J\n\x0bListTenants\x12\x1c.boltzrpc.ListTenantsRequest\x1a\x1d.boltzrpc.ListTenantsResponse\x12\x39\n\tGetTenant\x12\x1a.boltzrpc.GetTenantRequest\x1a\x10.boltzrpc.Tenant\x12M\n\x0c\x42\x61keMacaroon\x12\x1d.boltzrpc.BakeMacaroonRequest\x1a\x1e.boltzrpc.BakeMacaroonResponseB0Z.github.com/BoltzExchange/boltz-client/boltzrpcb\x06proto3'
-)
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x62oltz_grpc_files/boltzrpc.proto\x12\x08\x62oltzrpc\x1a\x1bgoogle/protobuf/empty.proto\"#\n\x13\x43reateTenantRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x14\n\x12ListTenantsRequest\"8\n\x13ListTenantsResponse\x12!\n\x07tenants\x18\x01 \x03(\x0b\x32\x10.boltzrpc.Tenant\" \n\x10GetTenantRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\"\n\x06Tenant\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"?\n\x13MacaroonPermissions\x12(\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32\x18.boltzrpc.MacaroonAction\"o\n\x13\x42\x61keMacaroonRequest\x12\x16\n\ttenant_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x32\n\x0bpermissions\x18\x02 \x03(\x0b\x32\x1d.boltzrpc.MacaroonPermissionsB\x0c\n\n_tenant_id\"(\n\x14\x42\x61keMacaroonResponse\x12\x10\n\x08macaroon\x18\x01 \x01(\t\"H\n\x04Pair\x12 \n\x04\x66rom\x18\x01 \x01(\x0e\x32\x12.boltzrpc.Currency\x12\x1e\n\x02to\x18\x02 \x01(\x0e\x32\x12.boltzrpc.Currency\"\x88\x05\n\x08SwapInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1c\n\x04pair\x18\x16 \x01(\x0b\x32\x0e.boltzrpc.Pair\x12\"\n\x05state\x18\x02 \x01(\x0e\x32\x13.boltzrpc.SwapState\x12\r\n\x05\x65rror\x18\x03 \x01(\t\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x13\n\x0bprivate_key\x18\x05 \x01(\t\x12\x10\n\x08preimage\x18\x06 \x01(\t\x12\x15\n\rredeem_script\x18\x07 \x01(\t\x12\x0f\n\x07invoice\x18\x08 \x01(\t\x12\x16\n\x0elockup_address\x18\t \x01(\t\x12\x17\n\x0f\x65xpected_amount\x18\n \x01(\x04\x12\x1c\n\x14timeout_block_height\x18\x0b \x01(\r\x12\x1d\n\x15lockup_transaction_id\x18\x0c \x01(\t\x12\x1d\n\x15refund_transaction_id\x18\r \x01(\t\x12\x1b\n\x0erefund_address\x18\x13 \x01(\tH\x00\x88\x01\x01\x12%\n\x08\x63han_ids\x18\x0e \x03(\x0b\x32\x13.boltzrpc.ChannelId\x12\x19\n\x0c\x62linding_key\x18\x0f \x01(\tH\x01\x88\x01\x01\x12\x12\n\ncreated_at\x18\x10 \x01(\x03\x12\x18\n\x0bservice_fee\x18\x11 \x01(\x03H\x02\x88\x01\x01\x12\x18\n\x0bonchain_fee\x18\x12 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\twallet_id\x18\x14 \x01(\x04H\x04\x88\x01\x01\x12\x11\n\ttenant_id\x18\x15 \x01(\x04\x12\x0f\n\x07is_auto\x18\x17 \x01(\x08\x42\x11\n\x0f_refund_addressB\x0f\n\r_blinding_keyB\x0e\n\x0c_service_feeB\x0e\n\x0c_onchain_feeB\x0c\n\n_wallet_id\"T\n\x12GetPairInfoRequest\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.boltzrpc.SwapType\x12\x1c\n\x04pair\x18\x02 \x01(\x0b\x32\x0e.boltzrpc.Pair\"z\n\x08PairInfo\x12\x1c\n\x04pair\x18\x01 \x01(\x0b\x32\x0e.boltzrpc.Pair\x12 \n\x04\x66\x65\x65s\x18\x02 \x01(\x0b\x32\x12.boltzrpc.SwapFees\x12 \n\x06limits\x18\x03 \x01(\x0b\x32\x10.boltzrpc.Limits\x12\x0c\n\x04hash\x18\x04 \x01(\t\"\xa8\x01\n\x13\x43hannelCreationInfo\x12\x0f\n\x07swap_id\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x19\n\x11inbound_liquidity\x18\x03 \x01(\r\x12\x0f\n\x07private\x18\x04 \x01(\x08\x12\x1e\n\x16\x66unding_transaction_id\x18\x05 \x01(\t\x12 \n\x18\x66unding_transaction_vout\x18\x06 \x01(\r:\x02\x18\x01\"x\n\x17\x43ombinedChannelSwapInfo\x12 \n\x04swap\x18\x01 \x01(\x0b\x32\x12.boltzrpc.SwapInfo\x12\x37\n\x10\x63hannel_creation\x18\x02 \x01(\x0b\x32\x1d.boltzrpc.ChannelCreationInfo:\x02\x18\x01\"\xba\x05\n\x0fReverseSwapInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\"\n\x05state\x18\x02 \x01(\x0e\x32\x13.boltzrpc.SwapState\x12\r\n\x05\x65rror\x18\x03 \x01(\t\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x13\n\x0bprivate_key\x18\x05 \x01(\t\x12\x10\n\x08preimage\x18\x06 \x01(\t\x12\x15\n\rredeem_script\x18\x07 \x01(\t\x12\x0f\n\x07invoice\x18\x08 \x01(\t\x12\x15\n\rclaim_address\x18\t \x01(\t\x12\x16\n\x0eonchain_amount\x18\n \x01(\x04\x12\x16\n\x0einvoice_amount\x18\x19 \x01(\x04\x12\x1c\n\x14timeout_block_height\x18\x0b \x01(\r\x12\x1d\n\x15lockup_transaction_id\x18\x0c \x01(\t\x12\x1c\n\x14\x63laim_transaction_id\x18\r \x01(\t\x12\x1c\n\x04pair\x18\x0e \x01(\x0b\x32\x0e.boltzrpc.Pair\x12%\n\x08\x63han_ids\x18\x0f \x03(\x0b\x32\x13.boltzrpc.ChannelId\x12\x19\n\x0c\x62linding_key\x18\x10 \x01(\tH\x00\x88\x01\x01\x12\x12\n\ncreated_at\x18\x11 \x01(\x03\x12\x14\n\x07paid_at\x18\x17 \x01(\x03H\x01\x88\x01\x01\x12\x18\n\x0bservice_fee\x18\x12 \x01(\x03H\x02\x88\x01\x01\x12\x18\n\x0bonchain_fee\x18\x13 \x01(\x04H\x03\x88\x01\x01\x12\x1d\n\x10routing_fee_msat\x18\x14 \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x0c\x65xternal_pay\x18\x15 \x01(\x08\x12\x11\n\ttenant_id\x18\x16 \x01(\x04\x12\x0f\n\x07is_auto\x18\x18 \x01(\x08\x42\x0f\n\r_blinding_keyB\n\n\x08_paid_atB\x0e\n\x0c_service_feeB\x0e\n\x0c_onchain_feeB\x13\n\x11_routing_fee_msat\";\n\x0c\x42lockHeights\x12\x0b\n\x03\x62tc\x18\x01 \x01(\r\x12\x13\n\x06liquid\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\t\n\x07_liquid\"\x10\n\x0eGetInfoRequest\"\x88\x03\n\x0fGetInfoResponse\x12\x0f\n\x07version\x18\t \x01(\t\x12\x0c\n\x04node\x18\n \x01(\t\x12\x0f\n\x07network\x18\x02 \x01(\t\x12\x13\n\x0bnode_pubkey\x18\x07 \x01(\t\x12\x18\n\x10\x61uto_swap_status\x18\x0b \x01(\t\x12-\n\rblock_heights\x18\x08 \x01(\x0b\x32\x16.boltzrpc.BlockHeights\x12\x18\n\x10refundable_swaps\x18\x0c \x03(\t\x12%\n\x06tenant\x18\r \x01(\x0b\x32\x10.boltzrpc.TenantH\x00\x88\x01\x01\x12\x17\n\x0f\x63laimable_swaps\x18\x0e \x03(\t\x12\x12\n\x06symbol\x18\x01 \x01(\tB\x02\x18\x01\x12\x16\n\nlnd_pubkey\x18\x03 \x01(\tB\x02\x18\x01\x12\x18\n\x0c\x62lock_height\x18\x04 \x01(\rB\x02\x18\x01\x12\x19\n\rpending_swaps\x18\x05 \x03(\tB\x02\x18\x01\x12!\n\x15pending_reverse_swaps\x18\x06 \x03(\tB\x02\x18\x01\x42\t\n\x07_tenant\"L\n\x06Limits\x12\x0f\n\x07minimal\x18\x01 \x01(\x04\x12\x0f\n\x07maximal\x18\x02 \x01(\x04\x12 \n\x18maximal_zero_conf_amount\x18\x03 \x01(\x04\"2\n\x08SwapFees\x12\x12\n\npercentage\x18\x01 \x01(\x01\x12\x12\n\nminer_fees\x18\x02 \x01(\x04\"\x81\x01\n\x10GetPairsResponse\x12%\n\tsubmarine\x18\x01 \x03(\x0b\x32\x12.boltzrpc.PairInfo\x12#\n\x07reverse\x18\x02 \x03(\x0b\x32\x12.boltzrpc.PairInfo\x12!\n\x05\x63hain\x18\x03 \x03(\x0b\x32\x12.boltzrpc.PairInfo\",\n\tMinerFees\x12\x0e\n\x06normal\x18\x01 \x01(\r\x12\x0f\n\x07reverse\x18\x02 \x01(\r\">\n\x04\x46\x65\x65s\x12\x12\n\npercentage\x18\x01 \x01(\x02\x12\"\n\x05miner\x18\x02 \x01(\x0b\x32\x13.boltzrpc.MinerFees\"\x17\n\x15GetServiceInfoRequest\"X\n\x16GetServiceInfoResponse\x12\x1c\n\x04\x66\x65\x65s\x18\x01 \x01(\x0b\x32\x0e.boltzrpc.Fees\x12 \n\x06limits\x18\x02 \x01(\x0b\x32\x10.boltzrpc.Limits\"\xdf\x02\n\x0b\x41nySwapInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12 \n\x04type\x18\x02 \x01(\x0e\x32\x12.boltzrpc.SwapType\x12\x1c\n\x04pair\x18\x03 \x01(\x0b\x32\x0e.boltzrpc.Pair\x12\"\n\x05state\x18\x04 \x01(\x0e\x32\x13.boltzrpc.SwapState\x12\x12\n\x05\x65rror\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06status\x18\x06 \x01(\t\x12\x13\n\x0b\x66rom_amount\x18\x07 \x01(\x04\x12\x11\n\tto_amount\x18\r \x01(\x04\x12\x12\n\ncreated_at\x18\x08 \x01(\x03\x12\x18\n\x0bservice_fee\x18\t \x01(\x03H\x01\x88\x01\x01\x12\x18\n\x0bonchain_fee\x18\n \x01(\x04H\x02\x88\x01\x01\x12\x0f\n\x07is_auto\x18\x0b \x01(\x08\x12\x11\n\ttenant_id\x18\x0c \x01(\x04\x42\x08\n\x06_errorB\x0e\n\x0c_service_feeB\x0e\n\x0c_onchain_fee\"\xa6\x02\n\x10ListSwapsRequest\x12%\n\x04\x66rom\x18\x01 \x01(\x0e\x32\x12.boltzrpc.CurrencyH\x00\x88\x01\x01\x12#\n\x02to\x18\x02 \x01(\x0e\x32\x12.boltzrpc.CurrencyH\x01\x88\x01\x01\x12\'\n\x05state\x18\x04 \x01(\x0e\x32\x13.boltzrpc.SwapStateH\x02\x88\x01\x01\x12\'\n\x07include\x18\x05 \x01(\x0e\x32\x16.boltzrpc.IncludeSwaps\x12\x12\n\x05limit\x18\x06 \x01(\x04H\x03\x88\x01\x01\x12\x13\n\x06offset\x18\x07 \x01(\x04H\x04\x88\x01\x01\x12\x12\n\x05unify\x18\x08 \x01(\x08H\x05\x88\x01\x01\x42\x07\n\x05_fromB\x05\n\x03_toB\x08\n\x06_stateB\x08\n\x06_limitB\t\n\x07_offsetB\x08\n\x06_unify\"\x82\x02\n\x11ListSwapsResponse\x12!\n\x05swaps\x18\x01 \x03(\x0b\x32\x12.boltzrpc.SwapInfo\x12@\n\x11\x63hannel_creations\x18\x02 \x03(\x0b\x32!.boltzrpc.CombinedChannelSwapInfoB\x02\x18\x01\x12\x30\n\rreverse_swaps\x18\x03 \x03(\x0b\x32\x19.boltzrpc.ReverseSwapInfo\x12,\n\x0b\x63hain_swaps\x18\x04 \x03(\x0b\x32\x17.boltzrpc.ChainSwapInfo\x12(\n\tall_swaps\x18\x05 \x03(\x0b\x32\x15.boltzrpc.AnySwapInfo\":\n\x0fGetStatsRequest\x12\'\n\x07include\x18\x01 \x01(\x0e\x32\x16.boltzrpc.IncludeSwaps\"6\n\x10GetStatsResponse\x12\"\n\x05stats\x18\x01 \x01(\x0b\x32\x13.boltzrpc.SwapStats\"V\n\x11RefundSwapRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x12\x13\n\twallet_id\x18\x03 \x01(\x04H\x00\x42\r\n\x0b\x64\x65stination\"\\\n\x11\x43laimSwapsRequest\x12\x10\n\x08swap_ids\x18\x01 \x03(\t\x12\x11\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x12\x13\n\twallet_id\x18\x03 \x01(\x04H\x00\x42\r\n\x0b\x64\x65stination\",\n\x12\x43laimSwapsResponse\x12\x16\n\x0etransaction_id\x18\x01 \x01(\t\"]\n\x12GetSwapInfoRequest\x12\x0e\n\x02id\x18\x01 \x01(\tB\x02\x18\x01\x12\x11\n\x07swap_id\x18\x02 \x01(\tH\x00\x12\x16\n\x0cpayment_hash\x18\x03 \x01(\x0cH\x00\x42\x0c\n\nidentifier\"\xce\x01\n\x13GetSwapInfoResponse\x12 \n\x04swap\x18\x01 \x01(\x0b\x32\x12.boltzrpc.SwapInfo\x12\x37\n\x10\x63hannel_creation\x18\x02 \x01(\x0b\x32\x1d.boltzrpc.ChannelCreationInfo\x12/\n\x0creverse_swap\x18\x03 \x01(\x0b\x32\x19.boltzrpc.ReverseSwapInfo\x12+\n\nchain_swap\x18\x04 \x01(\x0b\x32\x17.boltzrpc.ChainSwapInfo\"+\n\x0e\x44\x65positRequest\x12\x19\n\x11inbound_liquidity\x18\x01 \x01(\r\"L\n\x0f\x44\x65positResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x1c\n\x14timeout_block_height\x18\x03 \x01(\r\"\xef\x02\n\x11\x43reateSwapRequest\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x04\x12\x1c\n\x04pair\x18\x02 \x01(\x0b\x32\x0e.boltzrpc.Pair\x12\x1a\n\x12send_from_internal\x18\x04 \x01(\x08\x12\x1b\n\x0erefund_address\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x16\n\twallet_id\x18\x06 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x07invoice\x18\x07 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tzero_conf\x18\x08 \x01(\x08\x42\x02\x18\x01H\x03\x88\x01\x01\x12\x1a\n\rsat_per_vbyte\x18\t \x01(\x01H\x04\x88\x01\x01\x12.\n\raccepted_pair\x18\n \x01(\x0b\x32\x12.boltzrpc.PairInfoH\x05\x88\x01\x01\x42\x11\n\x0f_refund_addressB\x0c\n\n_wallet_idB\n\n\x08_invoiceB\x0c\n\n_zero_confB\x10\n\x0e_sat_per_vbyteB\x10\n\x0e_accepted_pair\"\x9d\x01\n\x12\x43reateSwapResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x17\n\x0f\x65xpected_amount\x18\x03 \x01(\x04\x12\r\n\x05\x62ip21\x18\x04 \x01(\t\x12\r\n\x05tx_id\x18\x05 \x01(\t\x12\x1c\n\x14timeout_block_height\x18\x06 \x01(\r\x12\x15\n\rtimeout_hours\x18\x07 \x01(\x02\"R\n\x14\x43reateChannelRequest\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x03\x12\x19\n\x11inbound_liquidity\x18\x02 \x01(\r\x12\x0f\n\x07private\x18\x03 \x01(\x08\"\x9d\x04\n\x18\x43reateReverseSwapRequest\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x04\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x18\n\x10\x61\x63\x63\x65pt_zero_conf\x18\x03 \x01(\x08\x12\x1c\n\x04pair\x18\x04 \x01(\x0b\x32\x0e.boltzrpc.Pair\x12\x10\n\x08\x63han_ids\x18\x05 \x03(\t\x12\x16\n\twallet_id\x18\x06 \x01(\x04H\x00\x88\x01\x01\x12\x1f\n\x12return_immediately\x18\x07 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0c\x65xternal_pay\x18\x08 \x01(\x08H\x02\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\t \x01(\tH\x03\x88\x01\x01\x12\x1d\n\x10\x64\x65scription_hash\x18\n \x01(\x0cH\x04\x88\x01\x01\x12\x1b\n\x0einvoice_expiry\x18\x0b \x01(\x04H\x05\x88\x01\x01\x12.\n\raccepted_pair\x18\x0c \x01(\x0b\x32\x12.boltzrpc.PairInfoH\x06\x88\x01\x01\x12\"\n\x15routing_fee_limit_ppm\x18\r \x01(\x04H\x07\x88\x01\x01\x42\x0c\n\n_wallet_idB\x15\n\x13_return_immediatelyB\x0f\n\r_external_payB\x0e\n\x0c_descriptionB\x13\n\x11_description_hashB\x11\n\x0f_invoice_expiryB\x10\n\x0e_accepted_pairB\x18\n\x16_routing_fee_limit_ppm\"\xdb\x01\n\x19\x43reateReverseSwapResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0elockup_address\x18\x02 \x01(\t\x12\"\n\x15routing_fee_milli_sat\x18\x03 \x01(\x04H\x00\x88\x01\x01\x12!\n\x14\x63laim_transaction_id\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07invoice\x18\x05 \x01(\tH\x02\x88\x01\x01\x42\x18\n\x16_routing_fee_milli_satB\x17\n\x15_claim_transaction_idB\n\n\x08_invoice\"\x92\x04\n\x16\x43reateChainSwapRequest\x12\x13\n\x06\x61mount\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x1c\n\x04pair\x18\x02 \x01(\x0b\x32\x0e.boltzrpc.Pair\x12\x17\n\nto_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0erefund_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x0e\x66rom_wallet_id\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x19\n\x0cto_wallet_id\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x1d\n\x10\x61\x63\x63\x65pt_zero_conf\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x19\n\x0c\x65xternal_pay\x18\x08 \x01(\x08H\x06\x88\x01\x01\x12!\n\x10lockup_zero_conf\x18\t \x01(\x08\x42\x02\x18\x01H\x07\x88\x01\x01\x12\x1a\n\rsat_per_vbyte\x18\n \x01(\x01H\x08\x88\x01\x01\x12.\n\raccepted_pair\x18\x0b \x01(\x0b\x32\x12.boltzrpc.PairInfoH\t\x88\x01\x01\x42\t\n\x07_amountB\r\n\x0b_to_addressB\x11\n\x0f_refund_addressB\x11\n\x0f_from_wallet_idB\x0f\n\r_to_wallet_idB\x13\n\x11_accept_zero_confB\x0f\n\r_external_payB\x13\n\x11_lockup_zero_confB\x10\n\x0e_sat_per_vbyteB\x10\n\x0e_accepted_pair\"\x8d\x03\n\rChainSwapInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1c\n\x04pair\x18\x02 \x01(\x0b\x32\x0e.boltzrpc.Pair\x12\"\n\x05state\x18\x03 \x01(\x0e\x32\x13.boltzrpc.SwapState\x12\r\n\x05\x65rror\x18\x04 \x01(\t\x12\x0e\n\x06status\x18\x05 \x01(\t\x12\x10\n\x08preimage\x18\x06 \x01(\t\x12\x0f\n\x07is_auto\x18\x08 \x01(\x08\x12\x18\n\x0bservice_fee\x18\t \x01(\x03H\x00\x88\x01\x01\x12\x1b\n\x13service_fee_percent\x18\n \x01(\x01\x12\x18\n\x0bonchain_fee\x18\x0b \x01(\x04H\x01\x88\x01\x01\x12\x12\n\ncreated_at\x18\x0c \x01(\x03\x12\x11\n\ttenant_id\x18\r \x01(\x04\x12*\n\tfrom_data\x18\x0e \x01(\x0b\x32\x17.boltzrpc.ChainSwapData\x12(\n\x07to_data\x18\x0f \x01(\x0b\x32\x17.boltzrpc.ChainSwapDataB\x0e\n\x0c_service_feeB\x0e\n\x0c_onchain_fee\"\x98\x03\n\rChainSwapData\x12\n\n\x02id\x18\x01 \x01(\t\x12$\n\x08\x63urrency\x18\x02 \x01(\x0e\x32\x12.boltzrpc.Currency\x12\x13\n\x0bprivate_key\x18\x03 \x01(\t\x12\x18\n\x10their_public_key\x18\x04 \x01(\t\x12\x0e\n\x06\x61mount\x18\x06 \x01(\x04\x12\x1c\n\x14timeout_block_height\x18\x07 \x01(\r\x12\"\n\x15lockup_transaction_id\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0etransaction_id\x18\t \x01(\tH\x01\x88\x01\x01\x12\x16\n\twallet_id\x18\x14 \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x0c \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0c\x62linding_key\x18\r \x01(\tH\x04\x88\x01\x01\x12\x16\n\x0elockup_address\x18\x0e \x01(\tB\x18\n\x16_lockup_transaction_idB\x11\n\x0f_transaction_idB\x0c\n\n_wallet_idB\n\n\x08_addressB\x0f\n\r_blinding_key\"%\n\tChannelId\x12\x0b\n\x03\x63ln\x18\x01 \x01(\t\x12\x0b\n\x03lnd\x18\x02 \x01(\x04\"\x81\x01\n\x10LightningChannel\x12\x1f\n\x02id\x18\x01 \x01(\x0b\x32\x13.boltzrpc.ChannelId\x12\x10\n\x08\x63\x61pacity\x18\x02 \x01(\x04\x12\x14\n\x0coutbound_sat\x18\x03 \x01(\x04\x12\x13\n\x0binbound_sat\x18\x04 \x01(\x04\x12\x0f\n\x07peer_id\x18\x05 \x01(\t\"\x81\x01\n\tSwapStats\x12\x12\n\ntotal_fees\x18\x01 \x01(\x03\x12\x14\n\x0ctotal_amount\x18\x02 \x01(\x04\x12\x10\n\x08\x61vg_fees\x18\x03 \x01(\x03\x12\x12\n\navg_amount\x18\x04 \x01(\x04\x12\r\n\x05\x63ount\x18\x05 \x01(\x04\x12\x15\n\rsuccess_count\x18\x06 \x01(\x04\"P\n\x06\x42udget\x12\r\n\x05total\x18\x01 \x01(\x04\x12\x11\n\tremaining\x18\x02 \x01(\x03\x12\x12\n\nstart_date\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_date\x18\x04 \x01(\x03\"\xad\x01\n\x11WalletCredentials\x12\x15\n\x08mnemonic\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04xpub\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0f\x63ore_descriptor\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nsubaccount\x18\x04 \x01(\x04H\x03\x88\x01\x01\x42\x0b\n\t_mnemonicB\x07\n\x05_xpubB\x12\n\x10_core_descriptorB\r\n\x0b_subaccount\"f\n\x0cWalletParams\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\x08\x63urrency\x18\x02 \x01(\x0e\x32\x12.boltzrpc.Currency\x12\x15\n\x08password\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_password\"o\n\x13ImportWalletRequest\x12\x30\n\x0b\x63redentials\x18\x01 \x01(\x0b\x32\x1b.boltzrpc.WalletCredentials\x12&\n\x06params\x18\x02 \x01(\x0b\x32\x16.boltzrpc.WalletParams\"=\n\x13\x43reateWalletRequest\x12&\n\x06params\x18\x02 \x01(\x0b\x32\x16.boltzrpc.WalletParams\"J\n\x14\x43reateWalletResponse\x12\x10\n\x08mnemonic\x18\x01 \x01(\t\x12 \n\x06wallet\x18\x02 \x01(\x0b\x32\x10.boltzrpc.Wallet\"Q\n\x14SetSubaccountRequest\x12\x11\n\twallet_id\x18\x01 \x01(\x04\x12\x17\n\nsubaccount\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\r\n\x0b_subaccount\"*\n\x15GetSubaccountsRequest\x12\x11\n\twallet_id\x18\x01 \x01(\x04\"e\n\x16GetSubaccountsResponse\x12\x14\n\x07\x63urrent\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12)\n\x0bsubaccounts\x18\x02 \x03(\x0b\x32\x14.boltzrpc.SubaccountB\n\n\x08_current\"\x16\n\x14ImportWalletResponse\"\x7f\n\x11GetWalletsRequest\x12)\n\x08\x63urrency\x18\x01 \x01(\x0e\x32\x12.boltzrpc.CurrencyH\x00\x88\x01\x01\x12\x1d\n\x10include_readonly\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0b\n\t_currencyB\x13\n\x11_include_readonly\"F\n\x10GetWalletRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x07\n\x05_nameB\x05\n\x03_id\">\n\rWalletSendFee\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x04\x12\x0b\n\x03\x66\x65\x65\x18\x02 \x01(\x04\x12\x10\n\x08\x66\x65\x65_rate\x18\x03 \x01(\x01\"\xa5\x01\n\x1dListWalletTransactionsRequest\x12\n\n\x02id\x18\x01 \x01(\x04\x12!\n\x14\x65xclude_swap_related\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x13\n\x06offset\x18\x04 \x01(\x04H\x02\x88\x01\x01\x42\x17\n\x15_exclude_swap_relatedB\x08\n\x06_limitB\t\n\x07_offset\"\xb8\x01\n\x11WalletTransaction\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0e\x62\x61lance_change\x18\x02 \x01(\x03\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\x12,\n\x07outputs\x18\x04 \x03(\x0b\x32\x1b.boltzrpc.TransactionOutput\x12\x14\n\x0c\x62lock_height\x18\x06 \x01(\r\x12(\n\x05infos\x18\x07 \x03(\x0b\x32\x19.boltzrpc.TransactionInfo\"v\n\x16\x42umpTransactionRequest\x12\x0f\n\x05tx_id\x18\x01 \x01(\tH\x00\x12\x11\n\x07swap_id\x18\x02 \x01(\tH\x00\x12\x1a\n\rsat_per_vbyte\x18\x03 \x01(\x01H\x01\x88\x01\x01\x42\n\n\x08previousB\x10\n\x0e_sat_per_vbyte\"(\n\x17\x42umpTransactionResponse\x12\r\n\x05tx_id\x18\x01 \x01(\t\"\\\n\x0fTransactionInfo\x12\x14\n\x07swap_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\'\n\x04type\x18\x02 \x01(\x0e\x32\x19.boltzrpc.TransactionTypeB\n\n\x08_swap_id\"L\n\x11TransactionOutput\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x04\x12\x16\n\x0eis_our_address\x18\x03 \x01(\x08\"S\n\x1eListWalletTransactionsResponse\x12\x31\n\x0ctransactions\x18\x01 \x03(\x0b\x32\x1b.boltzrpc.WalletTransaction\"M\n\x1bGetWalletCredentialsRequest\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x15\n\x08password\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_password\"!\n\x13RemoveWalletRequest\x12\n\n\x02id\x18\x01 \x01(\x04\"\xc4\x01\n\x11WalletSendRequest\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x0e\n\x06\x61mount\x18\x03 \x01(\x04\x12\x1a\n\rsat_per_vbyte\x18\x04 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08send_all\x18\x05 \x01(\x08H\x01\x88\x01\x01\x12\x1c\n\x0fis_swap_address\x18\x06 \x01(\x08H\x02\x88\x01\x01\x42\x10\n\x0e_sat_per_vbyteB\x0b\n\t_send_allB\x12\n\x10_is_swap_address\"#\n\x12WalletSendResponse\x12\r\n\x05tx_id\x18\x01 \x01(\t\"\"\n\x14WalletReceiveRequest\x12\n\n\x02id\x18\x01 \x01(\x04\"(\n\x15WalletReceiveResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"\x91\x01\n\x06Wallet\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12$\n\x08\x63urrency\x18\x03 \x01(\x0e\x32\x12.boltzrpc.Currency\x12\x10\n\x08readonly\x18\x04 \x01(\x08\x12\"\n\x07\x62\x61lance\x18\x05 \x01(\x0b\x32\x11.boltzrpc.Balance\x12\x11\n\ttenant_id\x18\x06 \x01(\x04\",\n\x07Wallets\x12!\n\x07wallets\x18\x01 \x03(\x0b\x32\x10.boltzrpc.Wallet\"@\n\x07\x42\x61lance\x12\r\n\x05total\x18\x01 \x01(\x04\x12\x11\n\tconfirmed\x18\x02 \x01(\x04\x12\x13\n\x0bunconfirmed\x18\x03 \x01(\x04\"d\n\nSubaccount\x12\"\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32\x11.boltzrpc.Balance\x12\x0f\n\x07pointer\x18\x02 \x01(\x04\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scriptors\x18\x04 \x03(\t\"\x16\n\x14RemoveWalletResponse\"!\n\rUnlockRequest\x12\x10\n\x08password\x18\x01 \x01(\t\"/\n\x1bVerifyWalletPasswordRequest\x12\x10\n\x08password\x18\x01 \x01(\t\"/\n\x1cVerifyWalletPasswordResponse\x12\x0f\n\x07\x63orrect\x18\x01 \x01(\x08\"7\n\x1b\x43hangeWalletPasswordRequest\x12\x0b\n\x03old\x18\x01 \x01(\t\x12\x0b\n\x03new\x18\x02 \x01(\t*%\n\x0eMacaroonAction\x12\x08\n\x04READ\x10\x00\x12\t\n\x05WRITE\x10\x01*b\n\tSwapState\x12\x0b\n\x07PENDING\x10\x00\x12\x0e\n\nSUCCESSFUL\x10\x01\x12\t\n\x05\x45RROR\x10\x02\x12\x10\n\x0cSERVER_ERROR\x10\x03\x12\x0c\n\x08REFUNDED\x10\x04\x12\r\n\tABANDONED\x10\x05*\x1d\n\x08\x43urrency\x12\x07\n\x03\x42TC\x10\x00\x12\x08\n\x04LBTC\x10\x01*1\n\x08SwapType\x12\r\n\tSUBMARINE\x10\x00\x12\x0b\n\x07REVERSE\x10\x01\x12\t\n\x05\x43HAIN\x10\x02*-\n\x0cIncludeSwaps\x12\x07\n\x03\x41LL\x10\x00\x12\n\n\x06MANUAL\x10\x01\x12\x08\n\x04\x41UTO\x10\x02*T\n\x0fTransactionType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06LOCKUP\x10\x01\x12\n\n\x06REFUND\x10\x02\x12\t\n\x05\x43LAIM\x10\x03\x12\x11\n\rCONSOLIDATION\x10\x04\x32\xae\x15\n\x05\x42oltz\x12>\n\x07GetInfo\x12\x18.boltzrpc.GetInfoRequest\x1a\x19.boltzrpc.GetInfoResponse\x12X\n\x0eGetServiceInfo\x12\x1f.boltzrpc.GetServiceInfoRequest\x1a .boltzrpc.GetServiceInfoResponse\"\x03\x88\x02\x01\x12?\n\x0bGetPairInfo\x12\x1c.boltzrpc.GetPairInfoRequest\x1a\x12.boltzrpc.PairInfo\x12>\n\x08GetPairs\x12\x16.google.protobuf.Empty\x1a\x1a.boltzrpc.GetPairsResponse\x12\x44\n\tListSwaps\x12\x1a.boltzrpc.ListSwapsRequest\x1a\x1b.boltzrpc.ListSwapsResponse\x12\x41\n\x08GetStats\x12\x19.boltzrpc.GetStatsRequest\x1a\x1a.boltzrpc.GetStatsResponse\x12H\n\nRefundSwap\x12\x1b.boltzrpc.RefundSwapRequest\x1a\x1d.boltzrpc.GetSwapInfoResponse\x12G\n\nClaimSwaps\x12\x1b.boltzrpc.ClaimSwapsRequest\x1a\x1c.boltzrpc.ClaimSwapsResponse\x12J\n\x0bGetSwapInfo\x12\x1c.boltzrpc.GetSwapInfoRequest\x1a\x1d.boltzrpc.GetSwapInfoResponse\x12R\n\x11GetSwapInfoStream\x12\x1c.boltzrpc.GetSwapInfoRequest\x1a\x1d.boltzrpc.GetSwapInfoResponse0\x01\x12\x43\n\x07\x44\x65posit\x12\x18.boltzrpc.DepositRequest\x1a\x19.boltzrpc.DepositResponse\"\x03\x88\x02\x01\x12G\n\nCreateSwap\x12\x1b.boltzrpc.CreateSwapRequest\x1a\x1c.boltzrpc.CreateSwapResponse\x12R\n\rCreateChannel\x12\x1e.boltzrpc.CreateChannelRequest\x1a\x1c.boltzrpc.CreateSwapResponse\"\x03\x88\x02\x01\x12\\\n\x11\x43reateReverseSwap\x12\".boltzrpc.CreateReverseSwapRequest\x1a#.boltzrpc.CreateReverseSwapResponse\x12L\n\x0f\x43reateChainSwap\x12 .boltzrpc.CreateChainSwapRequest\x1a\x17.boltzrpc.ChainSwapInfo\x12M\n\x0c\x43reateWallet\x12\x1d.boltzrpc.CreateWalletRequest\x1a\x1e.boltzrpc.CreateWalletResponse\x12?\n\x0cImportWallet\x12\x1d.boltzrpc.ImportWalletRequest\x1a\x10.boltzrpc.Wallet\x12\x45\n\rSetSubaccount\x12\x1e.boltzrpc.SetSubaccountRequest\x1a\x14.boltzrpc.Subaccount\x12S\n\x0eGetSubaccounts\x12\x1f.boltzrpc.GetSubaccountsRequest\x1a .boltzrpc.GetSubaccountsResponse\x12<\n\nGetWallets\x12\x1b.boltzrpc.GetWalletsRequest\x1a\x11.boltzrpc.Wallets\x12\x39\n\tGetWallet\x12\x1a.boltzrpc.GetWalletRequest\x1a\x10.boltzrpc.Wallet\x12H\n\x10GetWalletSendFee\x12\x1b.boltzrpc.WalletSendRequest\x1a\x17.boltzrpc.WalletSendFee\x12k\n\x16ListWalletTransactions\x12\'.boltzrpc.ListWalletTransactionsRequest\x1a(.boltzrpc.ListWalletTransactionsResponse\x12V\n\x0f\x42umpTransaction\x12 .boltzrpc.BumpTransactionRequest\x1a!.boltzrpc.BumpTransactionResponse\x12Z\n\x14GetWalletCredentials\x12%.boltzrpc.GetWalletCredentialsRequest\x1a\x1b.boltzrpc.WalletCredentials\x12M\n\x0cRemoveWallet\x12\x1d.boltzrpc.RemoveWalletRequest\x1a\x1e.boltzrpc.RemoveWalletResponse\x12G\n\nWalletSend\x12\x1b.boltzrpc.WalletSendRequest\x1a\x1c.boltzrpc.WalletSendResponse\x12P\n\rWalletReceive\x12\x1e.boltzrpc.WalletReceiveRequest\x1a\x1f.boltzrpc.WalletReceiveResponse\x12\x36\n\x04Stop\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\x12\x39\n\x06Unlock\x12\x17.boltzrpc.UnlockRequest\x1a\x16.google.protobuf.Empty\x12\x65\n\x14VerifyWalletPassword\x12%.boltzrpc.VerifyWalletPasswordRequest\x1a&.boltzrpc.VerifyWalletPasswordResponse\x12U\n\x14\x43hangeWalletPassword\x12%.boltzrpc.ChangeWalletPasswordRequest\x1a\x16.google.protobuf.Empty\x12?\n\x0c\x43reateTenant\x12\x1d.boltzrpc.CreateTenantRequest\x1a\x10.boltzrpc.Tenant\x12J\n\x0bListTenants\x12\x1c.boltzrpc.ListTenantsRequest\x1a\x1d.boltzrpc.ListTenantsResponse\x12\x39\n\tGetTenant\x12\x1a.boltzrpc.GetTenantRequest\x1a\x10.boltzrpc.Tenant\x12M\n\x0c\x42\x61keMacaroon\x12\x1d.boltzrpc.BakeMacaroonRequest\x1a\x1e.boltzrpc.BakeMacaroonResponseB7Z5github.com/BoltzExchange/boltz-client/v2/pkg/boltzrpcb\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
-_builder.BuildTopDescriptorsAndMessages(
- DESCRIPTOR, "lnbits.wallets.boltz_grpc_files.boltzrpc_pb2", _globals
-)
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'boltz_grpc_files.boltzrpc_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
- _globals["DESCRIPTOR"]._loaded_options = None
- _globals["DESCRIPTOR"]._serialized_options = (
- b"Z.github.com/BoltzExchange/boltz-client/boltzrpc"
- )
- _globals["_CHANNELCREATIONINFO"]._loaded_options = None
- _globals["_CHANNELCREATIONINFO"]._serialized_options = b"\030\001"
- _globals["_COMBINEDCHANNELSWAPINFO"]._loaded_options = None
- _globals["_COMBINEDCHANNELSWAPINFO"]._serialized_options = b"\030\001"
- _globals["_GETINFORESPONSE"].fields_by_name["symbol"]._loaded_options = None
- _globals["_GETINFORESPONSE"].fields_by_name[
- "symbol"
- ]._serialized_options = b"\030\001"
- _globals["_GETINFORESPONSE"].fields_by_name["lnd_pubkey"]._loaded_options = None
- _globals["_GETINFORESPONSE"].fields_by_name[
- "lnd_pubkey"
- ]._serialized_options = b"\030\001"
- _globals["_GETINFORESPONSE"].fields_by_name["block_height"]._loaded_options = None
- _globals["_GETINFORESPONSE"].fields_by_name[
- "block_height"
- ]._serialized_options = b"\030\001"
- _globals["_GETINFORESPONSE"].fields_by_name["pending_swaps"]._loaded_options = None
- _globals["_GETINFORESPONSE"].fields_by_name[
- "pending_swaps"
- ]._serialized_options = b"\030\001"
- _globals["_GETINFORESPONSE"].fields_by_name[
- "pending_reverse_swaps"
- ]._loaded_options = None
- _globals["_GETINFORESPONSE"].fields_by_name[
- "pending_reverse_swaps"
- ]._serialized_options = b"\030\001"
- _globals["_BOLTZ"].methods_by_name["GetServiceInfo"]._loaded_options = None
- _globals["_BOLTZ"].methods_by_name[
- "GetServiceInfo"
- ]._serialized_options = b"\210\002\001"
- _globals["_BOLTZ"].methods_by_name["Deposit"]._loaded_options = None
- _globals["_BOLTZ"].methods_by_name["Deposit"]._serialized_options = b"\210\002\001"
- _globals["_BOLTZ"].methods_by_name["CreateChannel"]._loaded_options = None
- _globals["_BOLTZ"].methods_by_name[
- "CreateChannel"
- ]._serialized_options = b"\210\002\001"
- _globals["_MACAROONACTION"]._serialized_start = 8747
- _globals["_MACAROONACTION"]._serialized_end = 8784
- _globals["_SWAPSTATE"]._serialized_start = 8786
- _globals["_SWAPSTATE"]._serialized_end = 8884
- _globals["_CURRENCY"]._serialized_start = 8886
- _globals["_CURRENCY"]._serialized_end = 8915
- _globals["_SWAPTYPE"]._serialized_start = 8917
- _globals["_SWAPTYPE"]._serialized_end = 8966
- _globals["_INCLUDESWAPS"]._serialized_start = 8968
- _globals["_INCLUDESWAPS"]._serialized_end = 9013
- _globals["_CREATETENANTREQUEST"]._serialized_start = 89
- _globals["_CREATETENANTREQUEST"]._serialized_end = 124
- _globals["_LISTTENANTSREQUEST"]._serialized_start = 126
- _globals["_LISTTENANTSREQUEST"]._serialized_end = 146
- _globals["_LISTTENANTSRESPONSE"]._serialized_start = 148
- _globals["_LISTTENANTSRESPONSE"]._serialized_end = 204
- _globals["_GETTENANTREQUEST"]._serialized_start = 206
- _globals["_GETTENANTREQUEST"]._serialized_end = 238
- _globals["_TENANT"]._serialized_start = 240
- _globals["_TENANT"]._serialized_end = 274
- _globals["_MACAROONPERMISSIONS"]._serialized_start = 276
- _globals["_MACAROONPERMISSIONS"]._serialized_end = 339
- _globals["_BAKEMACAROONREQUEST"]._serialized_start = 341
- _globals["_BAKEMACAROONREQUEST"]._serialized_end = 452
- _globals["_BAKEMACAROONRESPONSE"]._serialized_start = 454
- _globals["_BAKEMACAROONRESPONSE"]._serialized_end = 494
- _globals["_PAIR"]._serialized_start = 496
- _globals["_PAIR"]._serialized_end = 568
- _globals["_SWAPINFO"]._serialized_start = 571
- _globals["_SWAPINFO"]._serialized_end = 1202
- _globals["_GETPAIRINFOREQUEST"]._serialized_start = 1204
- _globals["_GETPAIRINFOREQUEST"]._serialized_end = 1288
- _globals["_PAIRINFO"]._serialized_start = 1290
- _globals["_PAIRINFO"]._serialized_end = 1412
- _globals["_CHANNELCREATIONINFO"]._serialized_start = 1415
- _globals["_CHANNELCREATIONINFO"]._serialized_end = 1583
- _globals["_COMBINEDCHANNELSWAPINFO"]._serialized_start = 1585
- _globals["_COMBINEDCHANNELSWAPINFO"]._serialized_end = 1705
- _globals["_REVERSESWAPINFO"]._serialized_start = 1708
- _globals["_REVERSESWAPINFO"]._serialized_end = 2365
- _globals["_BLOCKHEIGHTS"]._serialized_start = 2367
- _globals["_BLOCKHEIGHTS"]._serialized_end = 2426
- _globals["_GETINFOREQUEST"]._serialized_start = 2428
- _globals["_GETINFOREQUEST"]._serialized_end = 2444
- _globals["_GETINFORESPONSE"]._serialized_start = 2447
- _globals["_GETINFORESPONSE"]._serialized_end = 2839
- _globals["_LIMITS"]._serialized_start = 2841
- _globals["_LIMITS"]._serialized_end = 2917
- _globals["_SWAPFEES"]._serialized_start = 2919
- _globals["_SWAPFEES"]._serialized_end = 2969
- _globals["_GETPAIRSRESPONSE"]._serialized_start = 2972
- _globals["_GETPAIRSRESPONSE"]._serialized_end = 3101
- _globals["_MINERFEES"]._serialized_start = 3103
- _globals["_MINERFEES"]._serialized_end = 3147
- _globals["_FEES"]._serialized_start = 3149
- _globals["_FEES"]._serialized_end = 3211
- _globals["_GETSERVICEINFOREQUEST"]._serialized_start = 3213
- _globals["_GETSERVICEINFOREQUEST"]._serialized_end = 3236
- _globals["_GETSERVICEINFORESPONSE"]._serialized_start = 3238
- _globals["_GETSERVICEINFORESPONSE"]._serialized_end = 3326
- _globals["_LISTSWAPSREQUEST"]._serialized_start = 3329
- _globals["_LISTSWAPSREQUEST"]._serialized_end = 3531
- _globals["_LISTSWAPSRESPONSE"]._serialized_start = 3534
- _globals["_LISTSWAPSRESPONSE"]._serialized_end = 3746
- _globals["_GETSTATSREQUEST"]._serialized_start = 3748
- _globals["_GETSTATSREQUEST"]._serialized_end = 3806
- _globals["_GETSTATSRESPONSE"]._serialized_start = 3808
- _globals["_GETSTATSRESPONSE"]._serialized_end = 3862
- _globals["_REFUNDSWAPREQUEST"]._serialized_start = 3864
- _globals["_REFUNDSWAPREQUEST"]._serialized_end = 3950
- _globals["_CLAIMSWAPSREQUEST"]._serialized_start = 3952
- _globals["_CLAIMSWAPSREQUEST"]._serialized_end = 4044
- _globals["_CLAIMSWAPSRESPONSE"]._serialized_start = 4046
- _globals["_CLAIMSWAPSRESPONSE"]._serialized_end = 4090
- _globals["_GETSWAPINFOREQUEST"]._serialized_start = 4092
- _globals["_GETSWAPINFOREQUEST"]._serialized_end = 4124
- _globals["_GETSWAPINFORESPONSE"]._serialized_start = 4127
- _globals["_GETSWAPINFORESPONSE"]._serialized_end = 4333
- _globals["_DEPOSITREQUEST"]._serialized_start = 4335
- _globals["_DEPOSITREQUEST"]._serialized_end = 4378
- _globals["_DEPOSITRESPONSE"]._serialized_start = 4380
- _globals["_DEPOSITRESPONSE"]._serialized_end = 4456
- _globals["_CREATESWAPREQUEST"]._serialized_start = 4459
- _globals["_CREATESWAPREQUEST"]._serialized_end = 4710
- _globals["_CREATESWAPRESPONSE"]._serialized_start = 4713
- _globals["_CREATESWAPRESPONSE"]._serialized_end = 4870
- _globals["_CREATECHANNELREQUEST"]._serialized_start = 4872
- _globals["_CREATECHANNELREQUEST"]._serialized_end = 4954
- _globals["_CREATEREVERSESWAPREQUEST"]._serialized_start = 4957
- _globals["_CREATEREVERSESWAPREQUEST"]._serialized_end = 5270
- _globals["_CREATEREVERSESWAPRESPONSE"]._serialized_start = 5273
- _globals["_CREATEREVERSESWAPRESPONSE"]._serialized_end = 5492
- _globals["_CREATECHAINSWAPREQUEST"]._serialized_start = 5495
- _globals["_CREATECHAINSWAPREQUEST"]._serialized_end = 5893
- _globals["_CHAINSWAPINFO"]._serialized_start = 5896
- _globals["_CHAINSWAPINFO"]._serialized_end = 6293
- _globals["_CHAINSWAPDATA"]._serialized_start = 6296
- _globals["_CHAINSWAPDATA"]._serialized_end = 6704
- _globals["_CHANNELID"]._serialized_start = 6706
- _globals["_CHANNELID"]._serialized_end = 6743
- _globals["_LIGHTNINGCHANNEL"]._serialized_start = 6746
- _globals["_LIGHTNINGCHANNEL"]._serialized_end = 6875
- _globals["_SWAPSTATS"]._serialized_start = 6878
- _globals["_SWAPSTATS"]._serialized_end = 7007
- _globals["_BUDGET"]._serialized_start = 7009
- _globals["_BUDGET"]._serialized_end = 7089
- _globals["_WALLETCREDENTIALS"]._serialized_start = 7092
- _globals["_WALLETCREDENTIALS"]._serialized_end = 7265
- _globals["_WALLETPARAMS"]._serialized_start = 7267
- _globals["_WALLETPARAMS"]._serialized_end = 7369
- _globals["_IMPORTWALLETREQUEST"]._serialized_start = 7371
- _globals["_IMPORTWALLETREQUEST"]._serialized_end = 7482
- _globals["_CREATEWALLETREQUEST"]._serialized_start = 7484
- _globals["_CREATEWALLETREQUEST"]._serialized_end = 7545
- _globals["_CREATEWALLETRESPONSE"]._serialized_start = 7547
- _globals["_CREATEWALLETRESPONSE"]._serialized_end = 7621
- _globals["_SETSUBACCOUNTREQUEST"]._serialized_start = 7623
- _globals["_SETSUBACCOUNTREQUEST"]._serialized_end = 7704
- _globals["_GETSUBACCOUNTSREQUEST"]._serialized_start = 7706
- _globals["_GETSUBACCOUNTSREQUEST"]._serialized_end = 7748
- _globals["_GETSUBACCOUNTSRESPONSE"]._serialized_start = 7750
- _globals["_GETSUBACCOUNTSRESPONSE"]._serialized_end = 7851
- _globals["_IMPORTWALLETRESPONSE"]._serialized_start = 7853
- _globals["_IMPORTWALLETRESPONSE"]._serialized_end = 7875
- _globals["_GETWALLETSREQUEST"]._serialized_start = 7877
- _globals["_GETWALLETSREQUEST"]._serialized_end = 8004
- _globals["_GETWALLETREQUEST"]._serialized_start = 8006
- _globals["_GETWALLETREQUEST"]._serialized_end = 8076
- _globals["_GETWALLETCREDENTIALSREQUEST"]._serialized_start = 8078
- _globals["_GETWALLETCREDENTIALSREQUEST"]._serialized_end = 8155
- _globals["_REMOVEWALLETREQUEST"]._serialized_start = 8157
- _globals["_REMOVEWALLETREQUEST"]._serialized_end = 8190
- _globals["_WALLET"]._serialized_start = 8193
- _globals["_WALLET"]._serialized_end = 8338
- _globals["_WALLETS"]._serialized_start = 8340
- _globals["_WALLETS"]._serialized_end = 8384
- _globals["_BALANCE"]._serialized_start = 8386
- _globals["_BALANCE"]._serialized_end = 8450
- _globals["_SUBACCOUNT"]._serialized_start = 8452
- _globals["_SUBACCOUNT"]._serialized_end = 8531
- _globals["_REMOVEWALLETRESPONSE"]._serialized_start = 8533
- _globals["_REMOVEWALLETRESPONSE"]._serialized_end = 8555
- _globals["_UNLOCKREQUEST"]._serialized_start = 8557
- _globals["_UNLOCKREQUEST"]._serialized_end = 8590
- _globals["_VERIFYWALLETPASSWORDREQUEST"]._serialized_start = 8592
- _globals["_VERIFYWALLETPASSWORDREQUEST"]._serialized_end = 8639
- _globals["_VERIFYWALLETPASSWORDRESPONSE"]._serialized_start = 8641
- _globals["_VERIFYWALLETPASSWORDRESPONSE"]._serialized_end = 8688
- _globals["_CHANGEWALLETPASSWORDREQUEST"]._serialized_start = 8690
- _globals["_CHANGEWALLETPASSWORDREQUEST"]._serialized_end = 8745
- _globals["_BOLTZ"]._serialized_start = 9016
- _globals["_BOLTZ"]._serialized_end = 11324
+ _globals['DESCRIPTOR']._loaded_options = None
+ _globals['DESCRIPTOR']._serialized_options = b'Z5github.com/BoltzExchange/boltz-client/v2/pkg/boltzrpc'
+ _globals['_CHANNELCREATIONINFO']._loaded_options = None
+ _globals['_CHANNELCREATIONINFO']._serialized_options = b'\030\001'
+ _globals['_COMBINEDCHANNELSWAPINFO']._loaded_options = None
+ _globals['_COMBINEDCHANNELSWAPINFO']._serialized_options = b'\030\001'
+ _globals['_GETINFORESPONSE'].fields_by_name['symbol']._loaded_options = None
+ _globals['_GETINFORESPONSE'].fields_by_name['symbol']._serialized_options = b'\030\001'
+ _globals['_GETINFORESPONSE'].fields_by_name['lnd_pubkey']._loaded_options = None
+ _globals['_GETINFORESPONSE'].fields_by_name['lnd_pubkey']._serialized_options = b'\030\001'
+ _globals['_GETINFORESPONSE'].fields_by_name['block_height']._loaded_options = None
+ _globals['_GETINFORESPONSE'].fields_by_name['block_height']._serialized_options = b'\030\001'
+ _globals['_GETINFORESPONSE'].fields_by_name['pending_swaps']._loaded_options = None
+ _globals['_GETINFORESPONSE'].fields_by_name['pending_swaps']._serialized_options = b'\030\001'
+ _globals['_GETINFORESPONSE'].fields_by_name['pending_reverse_swaps']._loaded_options = None
+ _globals['_GETINFORESPONSE'].fields_by_name['pending_reverse_swaps']._serialized_options = b'\030\001'
+ _globals['_LISTSWAPSRESPONSE'].fields_by_name['channel_creations']._loaded_options = None
+ _globals['_LISTSWAPSRESPONSE'].fields_by_name['channel_creations']._serialized_options = b'\030\001'
+ _globals['_GETSWAPINFOREQUEST'].fields_by_name['id']._loaded_options = None
+ _globals['_GETSWAPINFOREQUEST'].fields_by_name['id']._serialized_options = b'\030\001'
+ _globals['_CREATESWAPREQUEST'].fields_by_name['zero_conf']._loaded_options = None
+ _globals['_CREATESWAPREQUEST'].fields_by_name['zero_conf']._serialized_options = b'\030\001'
+ _globals['_CREATECHAINSWAPREQUEST'].fields_by_name['lockup_zero_conf']._loaded_options = None
+ _globals['_CREATECHAINSWAPREQUEST'].fields_by_name['lockup_zero_conf']._serialized_options = b'\030\001'
+ _globals['_BOLTZ'].methods_by_name['GetServiceInfo']._loaded_options = None
+ _globals['_BOLTZ'].methods_by_name['GetServiceInfo']._serialized_options = b'\210\002\001'
+ _globals['_BOLTZ'].methods_by_name['Deposit']._loaded_options = None
+ _globals['_BOLTZ'].methods_by_name['Deposit']._serialized_options = b'\210\002\001'
+ _globals['_BOLTZ'].methods_by_name['CreateChannel']._loaded_options = None
+ _globals['_BOLTZ'].methods_by_name['CreateChannel']._serialized_options = b'\210\002\001'
+ _globals['_MACAROONACTION']._serialized_start=10992
+ _globals['_MACAROONACTION']._serialized_end=11029
+ _globals['_SWAPSTATE']._serialized_start=11031
+ _globals['_SWAPSTATE']._serialized_end=11129
+ _globals['_CURRENCY']._serialized_start=11131
+ _globals['_CURRENCY']._serialized_end=11160
+ _globals['_SWAPTYPE']._serialized_start=11162
+ _globals['_SWAPTYPE']._serialized_end=11211
+ _globals['_INCLUDESWAPS']._serialized_start=11213
+ _globals['_INCLUDESWAPS']._serialized_end=11258
+ _globals['_TRANSACTIONTYPE']._serialized_start=11260
+ _globals['_TRANSACTIONTYPE']._serialized_end=11344
+ _globals['_CREATETENANTREQUEST']._serialized_start=74
+ _globals['_CREATETENANTREQUEST']._serialized_end=109
+ _globals['_LISTTENANTSREQUEST']._serialized_start=111
+ _globals['_LISTTENANTSREQUEST']._serialized_end=131
+ _globals['_LISTTENANTSRESPONSE']._serialized_start=133
+ _globals['_LISTTENANTSRESPONSE']._serialized_end=189
+ _globals['_GETTENANTREQUEST']._serialized_start=191
+ _globals['_GETTENANTREQUEST']._serialized_end=223
+ _globals['_TENANT']._serialized_start=225
+ _globals['_TENANT']._serialized_end=259
+ _globals['_MACAROONPERMISSIONS']._serialized_start=261
+ _globals['_MACAROONPERMISSIONS']._serialized_end=324
+ _globals['_BAKEMACAROONREQUEST']._serialized_start=326
+ _globals['_BAKEMACAROONREQUEST']._serialized_end=437
+ _globals['_BAKEMACAROONRESPONSE']._serialized_start=439
+ _globals['_BAKEMACAROONRESPONSE']._serialized_end=479
+ _globals['_PAIR']._serialized_start=481
+ _globals['_PAIR']._serialized_end=553
+ _globals['_SWAPINFO']._serialized_start=556
+ _globals['_SWAPINFO']._serialized_end=1204
+ _globals['_GETPAIRINFOREQUEST']._serialized_start=1206
+ _globals['_GETPAIRINFOREQUEST']._serialized_end=1290
+ _globals['_PAIRINFO']._serialized_start=1292
+ _globals['_PAIRINFO']._serialized_end=1414
+ _globals['_CHANNELCREATIONINFO']._serialized_start=1417
+ _globals['_CHANNELCREATIONINFO']._serialized_end=1585
+ _globals['_COMBINEDCHANNELSWAPINFO']._serialized_start=1587
+ _globals['_COMBINEDCHANNELSWAPINFO']._serialized_end=1707
+ _globals['_REVERSESWAPINFO']._serialized_start=1710
+ _globals['_REVERSESWAPINFO']._serialized_end=2408
+ _globals['_BLOCKHEIGHTS']._serialized_start=2410
+ _globals['_BLOCKHEIGHTS']._serialized_end=2469
+ _globals['_GETINFOREQUEST']._serialized_start=2471
+ _globals['_GETINFOREQUEST']._serialized_end=2487
+ _globals['_GETINFORESPONSE']._serialized_start=2490
+ _globals['_GETINFORESPONSE']._serialized_end=2882
+ _globals['_LIMITS']._serialized_start=2884
+ _globals['_LIMITS']._serialized_end=2960
+ _globals['_SWAPFEES']._serialized_start=2962
+ _globals['_SWAPFEES']._serialized_end=3012
+ _globals['_GETPAIRSRESPONSE']._serialized_start=3015
+ _globals['_GETPAIRSRESPONSE']._serialized_end=3144
+ _globals['_MINERFEES']._serialized_start=3146
+ _globals['_MINERFEES']._serialized_end=3190
+ _globals['_FEES']._serialized_start=3192
+ _globals['_FEES']._serialized_end=3254
+ _globals['_GETSERVICEINFOREQUEST']._serialized_start=3256
+ _globals['_GETSERVICEINFOREQUEST']._serialized_end=3279
+ _globals['_GETSERVICEINFORESPONSE']._serialized_start=3281
+ _globals['_GETSERVICEINFORESPONSE']._serialized_end=3369
+ _globals['_ANYSWAPINFO']._serialized_start=3372
+ _globals['_ANYSWAPINFO']._serialized_end=3723
+ _globals['_LISTSWAPSREQUEST']._serialized_start=3726
+ _globals['_LISTSWAPSREQUEST']._serialized_end=4020
+ _globals['_LISTSWAPSRESPONSE']._serialized_start=4023
+ _globals['_LISTSWAPSRESPONSE']._serialized_end=4281
+ _globals['_GETSTATSREQUEST']._serialized_start=4283
+ _globals['_GETSTATSREQUEST']._serialized_end=4341
+ _globals['_GETSTATSRESPONSE']._serialized_start=4343
+ _globals['_GETSTATSRESPONSE']._serialized_end=4397
+ _globals['_REFUNDSWAPREQUEST']._serialized_start=4399
+ _globals['_REFUNDSWAPREQUEST']._serialized_end=4485
+ _globals['_CLAIMSWAPSREQUEST']._serialized_start=4487
+ _globals['_CLAIMSWAPSREQUEST']._serialized_end=4579
+ _globals['_CLAIMSWAPSRESPONSE']._serialized_start=4581
+ _globals['_CLAIMSWAPSRESPONSE']._serialized_end=4625
+ _globals['_GETSWAPINFOREQUEST']._serialized_start=4627
+ _globals['_GETSWAPINFOREQUEST']._serialized_end=4720
+ _globals['_GETSWAPINFORESPONSE']._serialized_start=4723
+ _globals['_GETSWAPINFORESPONSE']._serialized_end=4929
+ _globals['_DEPOSITREQUEST']._serialized_start=4931
+ _globals['_DEPOSITREQUEST']._serialized_end=4974
+ _globals['_DEPOSITRESPONSE']._serialized_start=4976
+ _globals['_DEPOSITRESPONSE']._serialized_end=5052
+ _globals['_CREATESWAPREQUEST']._serialized_start=5055
+ _globals['_CREATESWAPREQUEST']._serialized_end=5422
+ _globals['_CREATESWAPRESPONSE']._serialized_start=5425
+ _globals['_CREATESWAPRESPONSE']._serialized_end=5582
+ _globals['_CREATECHANNELREQUEST']._serialized_start=5584
+ _globals['_CREATECHANNELREQUEST']._serialized_end=5666
+ _globals['_CREATEREVERSESWAPREQUEST']._serialized_start=5669
+ _globals['_CREATEREVERSESWAPREQUEST']._serialized_end=6210
+ _globals['_CREATEREVERSESWAPRESPONSE']._serialized_start=6213
+ _globals['_CREATEREVERSESWAPRESPONSE']._serialized_end=6432
+ _globals['_CREATECHAINSWAPREQUEST']._serialized_start=6435
+ _globals['_CREATECHAINSWAPREQUEST']._serialized_end=6965
+ _globals['_CHAINSWAPINFO']._serialized_start=6968
+ _globals['_CHAINSWAPINFO']._serialized_end=7365
+ _globals['_CHAINSWAPDATA']._serialized_start=7368
+ _globals['_CHAINSWAPDATA']._serialized_end=7776
+ _globals['_CHANNELID']._serialized_start=7778
+ _globals['_CHANNELID']._serialized_end=7815
+ _globals['_LIGHTNINGCHANNEL']._serialized_start=7818
+ _globals['_LIGHTNINGCHANNEL']._serialized_end=7947
+ _globals['_SWAPSTATS']._serialized_start=7950
+ _globals['_SWAPSTATS']._serialized_end=8079
+ _globals['_BUDGET']._serialized_start=8081
+ _globals['_BUDGET']._serialized_end=8161
+ _globals['_WALLETCREDENTIALS']._serialized_start=8164
+ _globals['_WALLETCREDENTIALS']._serialized_end=8337
+ _globals['_WALLETPARAMS']._serialized_start=8339
+ _globals['_WALLETPARAMS']._serialized_end=8441
+ _globals['_IMPORTWALLETREQUEST']._serialized_start=8443
+ _globals['_IMPORTWALLETREQUEST']._serialized_end=8554
+ _globals['_CREATEWALLETREQUEST']._serialized_start=8556
+ _globals['_CREATEWALLETREQUEST']._serialized_end=8617
+ _globals['_CREATEWALLETRESPONSE']._serialized_start=8619
+ _globals['_CREATEWALLETRESPONSE']._serialized_end=8693
+ _globals['_SETSUBACCOUNTREQUEST']._serialized_start=8695
+ _globals['_SETSUBACCOUNTREQUEST']._serialized_end=8776
+ _globals['_GETSUBACCOUNTSREQUEST']._serialized_start=8778
+ _globals['_GETSUBACCOUNTSREQUEST']._serialized_end=8820
+ _globals['_GETSUBACCOUNTSRESPONSE']._serialized_start=8822
+ _globals['_GETSUBACCOUNTSRESPONSE']._serialized_end=8923
+ _globals['_IMPORTWALLETRESPONSE']._serialized_start=8925
+ _globals['_IMPORTWALLETRESPONSE']._serialized_end=8947
+ _globals['_GETWALLETSREQUEST']._serialized_start=8949
+ _globals['_GETWALLETSREQUEST']._serialized_end=9076
+ _globals['_GETWALLETREQUEST']._serialized_start=9078
+ _globals['_GETWALLETREQUEST']._serialized_end=9148
+ _globals['_WALLETSENDFEE']._serialized_start=9150
+ _globals['_WALLETSENDFEE']._serialized_end=9212
+ _globals['_LISTWALLETTRANSACTIONSREQUEST']._serialized_start=9215
+ _globals['_LISTWALLETTRANSACTIONSREQUEST']._serialized_end=9380
+ _globals['_WALLETTRANSACTION']._serialized_start=9383
+ _globals['_WALLETTRANSACTION']._serialized_end=9567
+ _globals['_BUMPTRANSACTIONREQUEST']._serialized_start=9569
+ _globals['_BUMPTRANSACTIONREQUEST']._serialized_end=9687
+ _globals['_BUMPTRANSACTIONRESPONSE']._serialized_start=9689
+ _globals['_BUMPTRANSACTIONRESPONSE']._serialized_end=9729
+ _globals['_TRANSACTIONINFO']._serialized_start=9731
+ _globals['_TRANSACTIONINFO']._serialized_end=9823
+ _globals['_TRANSACTIONOUTPUT']._serialized_start=9825
+ _globals['_TRANSACTIONOUTPUT']._serialized_end=9901
+ _globals['_LISTWALLETTRANSACTIONSRESPONSE']._serialized_start=9903
+ _globals['_LISTWALLETTRANSACTIONSRESPONSE']._serialized_end=9986
+ _globals['_GETWALLETCREDENTIALSREQUEST']._serialized_start=9988
+ _globals['_GETWALLETCREDENTIALSREQUEST']._serialized_end=10065
+ _globals['_REMOVEWALLETREQUEST']._serialized_start=10067
+ _globals['_REMOVEWALLETREQUEST']._serialized_end=10100
+ _globals['_WALLETSENDREQUEST']._serialized_start=10103
+ _globals['_WALLETSENDREQUEST']._serialized_end=10299
+ _globals['_WALLETSENDRESPONSE']._serialized_start=10301
+ _globals['_WALLETSENDRESPONSE']._serialized_end=10336
+ _globals['_WALLETRECEIVEREQUEST']._serialized_start=10338
+ _globals['_WALLETRECEIVEREQUEST']._serialized_end=10372
+ _globals['_WALLETRECEIVERESPONSE']._serialized_start=10374
+ _globals['_WALLETRECEIVERESPONSE']._serialized_end=10414
+ _globals['_WALLET']._serialized_start=10417
+ _globals['_WALLET']._serialized_end=10562
+ _globals['_WALLETS']._serialized_start=10564
+ _globals['_WALLETS']._serialized_end=10608
+ _globals['_BALANCE']._serialized_start=10610
+ _globals['_BALANCE']._serialized_end=10674
+ _globals['_SUBACCOUNT']._serialized_start=10676
+ _globals['_SUBACCOUNT']._serialized_end=10776
+ _globals['_REMOVEWALLETRESPONSE']._serialized_start=10778
+ _globals['_REMOVEWALLETRESPONSE']._serialized_end=10800
+ _globals['_UNLOCKREQUEST']._serialized_start=10802
+ _globals['_UNLOCKREQUEST']._serialized_end=10835
+ _globals['_VERIFYWALLETPASSWORDREQUEST']._serialized_start=10837
+ _globals['_VERIFYWALLETPASSWORDREQUEST']._serialized_end=10884
+ _globals['_VERIFYWALLETPASSWORDRESPONSE']._serialized_start=10886
+ _globals['_VERIFYWALLETPASSWORDRESPONSE']._serialized_end=10933
+ _globals['_CHANGEWALLETPASSWORDREQUEST']._serialized_start=10935
+ _globals['_CHANGEWALLETPASSWORDREQUEST']._serialized_end=10990
+ _globals['_BOLTZ']._serialized_start=11347
+ _globals['_BOLTZ']._serialized_end=14081
# @@protoc_insertion_point(module_scope)
diff --git a/lnbits/wallets/boltz_grpc_files/boltzrpc_pb2.pyi b/lnbits/wallets/boltz_grpc_files/boltzrpc_pb2.pyi
index f55520d0..b177895b 100644
--- a/lnbits/wallets/boltz_grpc_files/boltzrpc_pb2.pyi
+++ b/lnbits/wallets/boltz_grpc_files/boltzrpc_pb2.pyi
@@ -3,13 +3,7 @@ from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
-from typing import (
- ClassVar as _ClassVar,
- Iterable as _Iterable,
- Mapping as _Mapping,
- Optional as _Optional,
- Union as _Union,
-)
+from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor
@@ -44,6 +38,13 @@ class IncludeSwaps(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
MANUAL: _ClassVar[IncludeSwaps]
AUTO: _ClassVar[IncludeSwaps]
+class TransactionType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ UNKNOWN: _ClassVar[TransactionType]
+ LOCKUP: _ClassVar[TransactionType]
+ REFUND: _ClassVar[TransactionType]
+ CLAIM: _ClassVar[TransactionType]
+ CONSOLIDATION: _ClassVar[TransactionType]
READ: MacaroonAction
WRITE: MacaroonAction
PENDING: SwapState
@@ -60,6 +61,11 @@ CHAIN: SwapType
ALL: IncludeSwaps
MANUAL: IncludeSwaps
AUTO: IncludeSwaps
+UNKNOWN: TransactionType
+LOCKUP: TransactionType
+REFUND: TransactionType
+CLAIM: TransactionType
+CONSOLIDATION: TransactionType
class CreateTenantRequest(_message.Message):
__slots__ = ("name",)
@@ -75,9 +81,7 @@ class ListTenantsResponse(_message.Message):
__slots__ = ("tenants",)
TENANTS_FIELD_NUMBER: _ClassVar[int]
tenants: _containers.RepeatedCompositeFieldContainer[Tenant]
- def __init__(
- self, tenants: _Optional[_Iterable[_Union[Tenant, _Mapping]]] = ...
- ) -> None: ...
+ def __init__(self, tenants: _Optional[_Iterable[_Union[Tenant, _Mapping]]] = ...) -> None: ...
class GetTenantRequest(_message.Message):
__slots__ = ("name",)
@@ -91,17 +95,13 @@ class Tenant(_message.Message):
NAME_FIELD_NUMBER: _ClassVar[int]
id: int
name: str
- def __init__(
- self, id: _Optional[int] = ..., name: _Optional[str] = ...
- ) -> None: ...
+ def __init__(self, id: _Optional[int] = ..., name: _Optional[str] = ...) -> None: ...
class MacaroonPermissions(_message.Message):
__slots__ = ("action",)
ACTION_FIELD_NUMBER: _ClassVar[int]
action: MacaroonAction
- def __init__(
- self, action: _Optional[_Union[MacaroonAction, str]] = ...
- ) -> None: ...
+ def __init__(self, action: _Optional[_Union[MacaroonAction, str]] = ...) -> None: ...
class BakeMacaroonRequest(_message.Message):
__slots__ = ("tenant_id", "permissions")
@@ -109,11 +109,7 @@ class BakeMacaroonRequest(_message.Message):
PERMISSIONS_FIELD_NUMBER: _ClassVar[int]
tenant_id: int
permissions: _containers.RepeatedCompositeFieldContainer[MacaroonPermissions]
- def __init__(
- self,
- tenant_id: _Optional[int] = ...,
- permissions: _Optional[_Iterable[_Union[MacaroonPermissions, _Mapping]]] = ...,
- ) -> None: ...
+ def __init__(self, tenant_id: _Optional[int] = ..., permissions: _Optional[_Iterable[_Union[MacaroonPermissions, _Mapping]]] = ...) -> None: ...
class BakeMacaroonResponse(_message.Message):
__slots__ = ("macaroon",)
@@ -126,35 +122,10 @@ class Pair(_message.Message):
FROM_FIELD_NUMBER: _ClassVar[int]
TO_FIELD_NUMBER: _ClassVar[int]
to: Currency
- def __init__(
- self, to: _Optional[_Union[Currency, str]] = ..., **kwargs
- ) -> None: ...
+ def __init__(self, to: _Optional[_Union[Currency, str]] = ..., **kwargs) -> None: ...
class SwapInfo(_message.Message):
- __slots__ = (
- "id",
- "pair",
- "state",
- "error",
- "status",
- "private_key",
- "preimage",
- "redeem_script",
- "invoice",
- "lockup_address",
- "expected_amount",
- "timeout_block_height",
- "lockup_transaction_id",
- "refund_transaction_id",
- "refund_address",
- "chan_ids",
- "blinding_key",
- "created_at",
- "service_fee",
- "onchain_fee",
- "wallet_id",
- "tenant_id",
- )
+ __slots__ = ("id", "pair", "state", "error", "status", "private_key", "preimage", "redeem_script", "invoice", "lockup_address", "expected_amount", "timeout_block_height", "lockup_transaction_id", "refund_transaction_id", "refund_address", "chan_ids", "blinding_key", "created_at", "service_fee", "onchain_fee", "wallet_id", "tenant_id", "is_auto")
ID_FIELD_NUMBER: _ClassVar[int]
PAIR_FIELD_NUMBER: _ClassVar[int]
STATE_FIELD_NUMBER: _ClassVar[int]
@@ -177,6 +148,7 @@ class SwapInfo(_message.Message):
ONCHAIN_FEE_FIELD_NUMBER: _ClassVar[int]
WALLET_ID_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
+ IS_AUTO_FIELD_NUMBER: _ClassVar[int]
id: str
pair: Pair
state: SwapState
@@ -199,31 +171,8 @@ class SwapInfo(_message.Message):
onchain_fee: int
wallet_id: int
tenant_id: int
- def __init__(
- self,
- id: _Optional[str] = ...,
- pair: _Optional[_Union[Pair, _Mapping]] = ...,
- state: _Optional[_Union[SwapState, str]] = ...,
- error: _Optional[str] = ...,
- status: _Optional[str] = ...,
- private_key: _Optional[str] = ...,
- preimage: _Optional[str] = ...,
- redeem_script: _Optional[str] = ...,
- invoice: _Optional[str] = ...,
- lockup_address: _Optional[str] = ...,
- expected_amount: _Optional[int] = ...,
- timeout_block_height: _Optional[int] = ...,
- lockup_transaction_id: _Optional[str] = ...,
- refund_transaction_id: _Optional[str] = ...,
- refund_address: _Optional[str] = ...,
- chan_ids: _Optional[_Iterable[_Union[ChannelId, _Mapping]]] = ...,
- blinding_key: _Optional[str] = ...,
- created_at: _Optional[int] = ...,
- service_fee: _Optional[int] = ...,
- onchain_fee: _Optional[int] = ...,
- wallet_id: _Optional[int] = ...,
- tenant_id: _Optional[int] = ...,
- ) -> None: ...
+ is_auto: bool
+ def __init__(self, id: _Optional[str] = ..., pair: _Optional[_Union[Pair, _Mapping]] = ..., state: _Optional[_Union[SwapState, str]] = ..., error: _Optional[str] = ..., status: _Optional[str] = ..., private_key: _Optional[str] = ..., preimage: _Optional[str] = ..., redeem_script: _Optional[str] = ..., invoice: _Optional[str] = ..., lockup_address: _Optional[str] = ..., expected_amount: _Optional[int] = ..., timeout_block_height: _Optional[int] = ..., lockup_transaction_id: _Optional[str] = ..., refund_transaction_id: _Optional[str] = ..., refund_address: _Optional[str] = ..., chan_ids: _Optional[_Iterable[_Union[ChannelId, _Mapping]]] = ..., blinding_key: _Optional[str] = ..., created_at: _Optional[int] = ..., service_fee: _Optional[int] = ..., onchain_fee: _Optional[int] = ..., wallet_id: _Optional[int] = ..., tenant_id: _Optional[int] = ..., is_auto: bool = ...) -> None: ...
class GetPairInfoRequest(_message.Message):
__slots__ = ("type", "pair")
@@ -231,11 +180,7 @@ class GetPairInfoRequest(_message.Message):
PAIR_FIELD_NUMBER: _ClassVar[int]
type: SwapType
pair: Pair
- def __init__(
- self,
- type: _Optional[_Union[SwapType, str]] = ...,
- pair: _Optional[_Union[Pair, _Mapping]] = ...,
- ) -> None: ...
+ def __init__(self, type: _Optional[_Union[SwapType, str]] = ..., pair: _Optional[_Union[Pair, _Mapping]] = ...) -> None: ...
class PairInfo(_message.Message):
__slots__ = ("pair", "fees", "limits", "hash")
@@ -247,23 +192,10 @@ class PairInfo(_message.Message):
fees: SwapFees
limits: Limits
hash: str
- def __init__(
- self,
- pair: _Optional[_Union[Pair, _Mapping]] = ...,
- fees: _Optional[_Union[SwapFees, _Mapping]] = ...,
- limits: _Optional[_Union[Limits, _Mapping]] = ...,
- hash: _Optional[str] = ...,
- ) -> None: ...
+ def __init__(self, pair: _Optional[_Union[Pair, _Mapping]] = ..., fees: _Optional[_Union[SwapFees, _Mapping]] = ..., limits: _Optional[_Union[Limits, _Mapping]] = ..., hash: _Optional[str] = ...) -> None: ...
class ChannelCreationInfo(_message.Message):
- __slots__ = (
- "swap_id",
- "status",
- "inbound_liquidity",
- "private",
- "funding_transaction_id",
- "funding_transaction_vout",
- )
+ __slots__ = ("swap_id", "status", "inbound_liquidity", "private", "funding_transaction_id", "funding_transaction_vout")
SWAP_ID_FIELD_NUMBER: _ClassVar[int]
STATUS_FIELD_NUMBER: _ClassVar[int]
INBOUND_LIQUIDITY_FIELD_NUMBER: _ClassVar[int]
@@ -276,15 +208,7 @@ class ChannelCreationInfo(_message.Message):
private: bool
funding_transaction_id: str
funding_transaction_vout: int
- def __init__(
- self,
- swap_id: _Optional[str] = ...,
- status: _Optional[str] = ...,
- inbound_liquidity: _Optional[int] = ...,
- private: bool = ...,
- funding_transaction_id: _Optional[str] = ...,
- funding_transaction_vout: _Optional[int] = ...,
- ) -> None: ...
+ def __init__(self, swap_id: _Optional[str] = ..., status: _Optional[str] = ..., inbound_liquidity: _Optional[int] = ..., private: bool = ..., funding_transaction_id: _Optional[str] = ..., funding_transaction_vout: _Optional[int] = ...) -> None: ...
class CombinedChannelSwapInfo(_message.Message):
__slots__ = ("swap", "channel_creation")
@@ -292,38 +216,10 @@ class CombinedChannelSwapInfo(_message.Message):
CHANNEL_CREATION_FIELD_NUMBER: _ClassVar[int]
swap: SwapInfo
channel_creation: ChannelCreationInfo
- def __init__(
- self,
- swap: _Optional[_Union[SwapInfo, _Mapping]] = ...,
- channel_creation: _Optional[_Union[ChannelCreationInfo, _Mapping]] = ...,
- ) -> None: ...
+ def __init__(self, swap: _Optional[_Union[SwapInfo, _Mapping]] = ..., channel_creation: _Optional[_Union[ChannelCreationInfo, _Mapping]] = ...) -> None: ...
class ReverseSwapInfo(_message.Message):
- __slots__ = (
- "id",
- "state",
- "error",
- "status",
- "private_key",
- "preimage",
- "redeem_script",
- "invoice",
- "claim_address",
- "onchain_amount",
- "timeout_block_height",
- "lockup_transaction_id",
- "claim_transaction_id",
- "pair",
- "chan_ids",
- "blinding_key",
- "created_at",
- "paid_at",
- "service_fee",
- "onchain_fee",
- "routing_fee_msat",
- "external_pay",
- "tenant_id",
- )
+ __slots__ = ("id", "state", "error", "status", "private_key", "preimage", "redeem_script", "invoice", "claim_address", "onchain_amount", "invoice_amount", "timeout_block_height", "lockup_transaction_id", "claim_transaction_id", "pair", "chan_ids", "blinding_key", "created_at", "paid_at", "service_fee", "onchain_fee", "routing_fee_msat", "external_pay", "tenant_id", "is_auto")
ID_FIELD_NUMBER: _ClassVar[int]
STATE_FIELD_NUMBER: _ClassVar[int]
ERROR_FIELD_NUMBER: _ClassVar[int]
@@ -334,6 +230,7 @@ class ReverseSwapInfo(_message.Message):
INVOICE_FIELD_NUMBER: _ClassVar[int]
CLAIM_ADDRESS_FIELD_NUMBER: _ClassVar[int]
ONCHAIN_AMOUNT_FIELD_NUMBER: _ClassVar[int]
+ INVOICE_AMOUNT_FIELD_NUMBER: _ClassVar[int]
TIMEOUT_BLOCK_HEIGHT_FIELD_NUMBER: _ClassVar[int]
LOCKUP_TRANSACTION_ID_FIELD_NUMBER: _ClassVar[int]
CLAIM_TRANSACTION_ID_FIELD_NUMBER: _ClassVar[int]
@@ -347,6 +244,7 @@ class ReverseSwapInfo(_message.Message):
ROUTING_FEE_MSAT_FIELD_NUMBER: _ClassVar[int]
EXTERNAL_PAY_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
+ IS_AUTO_FIELD_NUMBER: _ClassVar[int]
id: str
state: SwapState
error: str
@@ -357,6 +255,7 @@ class ReverseSwapInfo(_message.Message):
invoice: str
claim_address: str
onchain_amount: int
+ invoice_amount: int
timeout_block_height: int
lockup_transaction_id: str
claim_transaction_id: str
@@ -370,32 +269,8 @@ class ReverseSwapInfo(_message.Message):
routing_fee_msat: int
external_pay: bool
tenant_id: int
- def __init__(
- self,
- id: _Optional[str] = ...,
- state: _Optional[_Union[SwapState, str]] = ...,
- error: _Optional[str] = ...,
- status: _Optional[str] = ...,
- private_key: _Optional[str] = ...,
- preimage: _Optional[str] = ...,
- redeem_script: _Optional[str] = ...,
- invoice: _Optional[str] = ...,
- claim_address: _Optional[str] = ...,
- onchain_amount: _Optional[int] = ...,
- timeout_block_height: _Optional[int] = ...,
- lockup_transaction_id: _Optional[str] = ...,
- claim_transaction_id: _Optional[str] = ...,
- pair: _Optional[_Union[Pair, _Mapping]] = ...,
- chan_ids: _Optional[_Iterable[_Union[ChannelId, _Mapping]]] = ...,
- blinding_key: _Optional[str] = ...,
- created_at: _Optional[int] = ...,
- paid_at: _Optional[int] = ...,
- service_fee: _Optional[int] = ...,
- onchain_fee: _Optional[int] = ...,
- routing_fee_msat: _Optional[int] = ...,
- external_pay: bool = ...,
- tenant_id: _Optional[int] = ...,
- ) -> None: ...
+ is_auto: bool
+ def __init__(self, id: _Optional[str] = ..., state: _Optional[_Union[SwapState, str]] = ..., error: _Optional[str] = ..., status: _Optional[str] = ..., private_key: _Optional[str] = ..., preimage: _Optional[str] = ..., redeem_script: _Optional[str] = ..., invoice: _Optional[str] = ..., claim_address: _Optional[str] = ..., onchain_amount: _Optional[int] = ..., invoice_amount: _Optional[int] = ..., timeout_block_height: _Optional[int] = ..., lockup_transaction_id: _Optional[str] = ..., claim_transaction_id: _Optional[str] = ..., pair: _Optional[_Union[Pair, _Mapping]] = ..., chan_ids: _Optional[_Iterable[_Union[ChannelId, _Mapping]]] = ..., blinding_key: _Optional[str] = ..., created_at: _Optional[int] = ..., paid_at: _Optional[int] = ..., service_fee: _Optional[int] = ..., onchain_fee: _Optional[int] = ..., routing_fee_msat: _Optional[int] = ..., external_pay: bool = ..., tenant_id: _Optional[int] = ..., is_auto: bool = ...) -> None: ...
class BlockHeights(_message.Message):
__slots__ = ("btc", "liquid")
@@ -403,31 +278,14 @@ class BlockHeights(_message.Message):
LIQUID_FIELD_NUMBER: _ClassVar[int]
btc: int
liquid: int
- def __init__(
- self, btc: _Optional[int] = ..., liquid: _Optional[int] = ...
- ) -> None: ...
+ def __init__(self, btc: _Optional[int] = ..., liquid: _Optional[int] = ...) -> None: ...
class GetInfoRequest(_message.Message):
__slots__ = ()
def __init__(self) -> None: ...
class GetInfoResponse(_message.Message):
- __slots__ = (
- "version",
- "node",
- "network",
- "node_pubkey",
- "auto_swap_status",
- "block_heights",
- "refundable_swaps",
- "tenant",
- "claimable_swaps",
- "symbol",
- "lnd_pubkey",
- "block_height",
- "pending_swaps",
- "pending_reverse_swaps",
- )
+ __slots__ = ("version", "node", "network", "node_pubkey", "auto_swap_status", "block_heights", "refundable_swaps", "tenant", "claimable_swaps", "symbol", "lnd_pubkey", "block_height", "pending_swaps", "pending_reverse_swaps")
VERSION_FIELD_NUMBER: _ClassVar[int]
NODE_FIELD_NUMBER: _ClassVar[int]
NETWORK_FIELD_NUMBER: _ClassVar[int]
@@ -456,23 +314,7 @@ class GetInfoResponse(_message.Message):
block_height: int
pending_swaps: _containers.RepeatedScalarFieldContainer[str]
pending_reverse_swaps: _containers.RepeatedScalarFieldContainer[str]
- def __init__(
- self,
- version: _Optional[str] = ...,
- node: _Optional[str] = ...,
- network: _Optional[str] = ...,
- node_pubkey: _Optional[str] = ...,
- auto_swap_status: _Optional[str] = ...,
- block_heights: _Optional[_Union[BlockHeights, _Mapping]] = ...,
- refundable_swaps: _Optional[_Iterable[str]] = ...,
- tenant: _Optional[_Union[Tenant, _Mapping]] = ...,
- claimable_swaps: _Optional[_Iterable[str]] = ...,
- symbol: _Optional[str] = ...,
- lnd_pubkey: _Optional[str] = ...,
- block_height: _Optional[int] = ...,
- pending_swaps: _Optional[_Iterable[str]] = ...,
- pending_reverse_swaps: _Optional[_Iterable[str]] = ...,
- ) -> None: ...
+ def __init__(self, version: _Optional[str] = ..., node: _Optional[str] = ..., network: _Optional[str] = ..., node_pubkey: _Optional[str] = ..., auto_swap_status: _Optional[str] = ..., block_heights: _Optional[_Union[BlockHeights, _Mapping]] = ..., refundable_swaps: _Optional[_Iterable[str]] = ..., tenant: _Optional[_Union[Tenant, _Mapping]] = ..., claimable_swaps: _Optional[_Iterable[str]] = ..., symbol: _Optional[str] = ..., lnd_pubkey: _Optional[str] = ..., block_height: _Optional[int] = ..., pending_swaps: _Optional[_Iterable[str]] = ..., pending_reverse_swaps: _Optional[_Iterable[str]] = ...) -> None: ...
class Limits(_message.Message):
__slots__ = ("minimal", "maximal", "maximal_zero_conf_amount")
@@ -482,12 +324,7 @@ class Limits(_message.Message):
minimal: int
maximal: int
maximal_zero_conf_amount: int
- def __init__(
- self,
- minimal: _Optional[int] = ...,
- maximal: _Optional[int] = ...,
- maximal_zero_conf_amount: _Optional[int] = ...,
- ) -> None: ...
+ def __init__(self, minimal: _Optional[int] = ..., maximal: _Optional[int] = ..., maximal_zero_conf_amount: _Optional[int] = ...) -> None: ...
class SwapFees(_message.Message):
__slots__ = ("percentage", "miner_fees")
@@ -495,9 +332,7 @@ class SwapFees(_message.Message):
MINER_FEES_FIELD_NUMBER: _ClassVar[int]
percentage: float
miner_fees: int
- def __init__(
- self, percentage: _Optional[float] = ..., miner_fees: _Optional[int] = ...
- ) -> None: ...
+ def __init__(self, percentage: _Optional[float] = ..., miner_fees: _Optional[int] = ...) -> None: ...
class GetPairsResponse(_message.Message):
__slots__ = ("submarine", "reverse", "chain")
@@ -507,12 +342,7 @@ class GetPairsResponse(_message.Message):
submarine: _containers.RepeatedCompositeFieldContainer[PairInfo]
reverse: _containers.RepeatedCompositeFieldContainer[PairInfo]
chain: _containers.RepeatedCompositeFieldContainer[PairInfo]
- def __init__(
- self,
- submarine: _Optional[_Iterable[_Union[PairInfo, _Mapping]]] = ...,
- reverse: _Optional[_Iterable[_Union[PairInfo, _Mapping]]] = ...,
- chain: _Optional[_Iterable[_Union[PairInfo, _Mapping]]] = ...,
- ) -> None: ...
+ def __init__(self, submarine: _Optional[_Iterable[_Union[PairInfo, _Mapping]]] = ..., reverse: _Optional[_Iterable[_Union[PairInfo, _Mapping]]] = ..., chain: _Optional[_Iterable[_Union[PairInfo, _Mapping]]] = ...) -> None: ...
class MinerFees(_message.Message):
__slots__ = ("normal", "reverse")
@@ -520,9 +350,7 @@ class MinerFees(_message.Message):
REVERSE_FIELD_NUMBER: _ClassVar[int]
normal: int
reverse: int
- def __init__(
- self, normal: _Optional[int] = ..., reverse: _Optional[int] = ...
- ) -> None: ...
+ def __init__(self, normal: _Optional[int] = ..., reverse: _Optional[int] = ...) -> None: ...
class Fees(_message.Message):
__slots__ = ("percentage", "miner")
@@ -530,11 +358,7 @@ class Fees(_message.Message):
MINER_FIELD_NUMBER: _ClassVar[int]
percentage: float
miner: MinerFees
- def __init__(
- self,
- percentage: _Optional[float] = ...,
- miner: _Optional[_Union[MinerFees, _Mapping]] = ...,
- ) -> None: ...
+ def __init__(self, percentage: _Optional[float] = ..., miner: _Optional[_Union[MinerFees, _Mapping]] = ...) -> None: ...
class GetServiceInfoRequest(_message.Message):
__slots__ = ()
@@ -546,50 +370,68 @@ class GetServiceInfoResponse(_message.Message):
LIMITS_FIELD_NUMBER: _ClassVar[int]
fees: Fees
limits: Limits
- def __init__(
- self,
- fees: _Optional[_Union[Fees, _Mapping]] = ...,
- limits: _Optional[_Union[Limits, _Mapping]] = ...,
- ) -> None: ...
+ def __init__(self, fees: _Optional[_Union[Fees, _Mapping]] = ..., limits: _Optional[_Union[Limits, _Mapping]] = ...) -> None: ...
+
+class AnySwapInfo(_message.Message):
+ __slots__ = ("id", "type", "pair", "state", "error", "status", "from_amount", "to_amount", "created_at", "service_fee", "onchain_fee", "is_auto", "tenant_id")
+ ID_FIELD_NUMBER: _ClassVar[int]
+ TYPE_FIELD_NUMBER: _ClassVar[int]
+ PAIR_FIELD_NUMBER: _ClassVar[int]
+ STATE_FIELD_NUMBER: _ClassVar[int]
+ ERROR_FIELD_NUMBER: _ClassVar[int]
+ STATUS_FIELD_NUMBER: _ClassVar[int]
+ FROM_AMOUNT_FIELD_NUMBER: _ClassVar[int]
+ TO_AMOUNT_FIELD_NUMBER: _ClassVar[int]
+ CREATED_AT_FIELD_NUMBER: _ClassVar[int]
+ SERVICE_FEE_FIELD_NUMBER: _ClassVar[int]
+ ONCHAIN_FEE_FIELD_NUMBER: _ClassVar[int]
+ IS_AUTO_FIELD_NUMBER: _ClassVar[int]
+ TENANT_ID_FIELD_NUMBER: _ClassVar[int]
+ id: str
+ type: SwapType
+ pair: Pair
+ state: SwapState
+ error: str
+ status: str
+ from_amount: int
+ to_amount: int
+ created_at: int
+ service_fee: int
+ onchain_fee: int
+ is_auto: bool
+ tenant_id: int
+ def __init__(self, id: _Optional[str] = ..., type: _Optional[_Union[SwapType, str]] = ..., pair: _Optional[_Union[Pair, _Mapping]] = ..., state: _Optional[_Union[SwapState, str]] = ..., error: _Optional[str] = ..., status: _Optional[str] = ..., from_amount: _Optional[int] = ..., to_amount: _Optional[int] = ..., created_at: _Optional[int] = ..., service_fee: _Optional[int] = ..., onchain_fee: _Optional[int] = ..., is_auto: bool = ..., tenant_id: _Optional[int] = ...) -> None: ...
class ListSwapsRequest(_message.Message):
- __slots__ = ("to", "state", "include")
+ __slots__ = ("to", "state", "include", "limit", "offset", "unify")
FROM_FIELD_NUMBER: _ClassVar[int]
TO_FIELD_NUMBER: _ClassVar[int]
STATE_FIELD_NUMBER: _ClassVar[int]
INCLUDE_FIELD_NUMBER: _ClassVar[int]
+ LIMIT_FIELD_NUMBER: _ClassVar[int]
+ OFFSET_FIELD_NUMBER: _ClassVar[int]
+ UNIFY_FIELD_NUMBER: _ClassVar[int]
to: Currency
state: SwapState
include: IncludeSwaps
- def __init__(
- self,
- to: _Optional[_Union[Currency, str]] = ...,
- state: _Optional[_Union[SwapState, str]] = ...,
- include: _Optional[_Union[IncludeSwaps, str]] = ...,
- **kwargs
- ) -> None: ...
+ limit: int
+ offset: int
+ unify: bool
+ def __init__(self, to: _Optional[_Union[Currency, str]] = ..., state: _Optional[_Union[SwapState, str]] = ..., include: _Optional[_Union[IncludeSwaps, str]] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ..., unify: bool = ..., **kwargs) -> None: ...
class ListSwapsResponse(_message.Message):
- __slots__ = ("swaps", "channel_creations", "reverse_swaps", "chain_swaps")
+ __slots__ = ("swaps", "channel_creations", "reverse_swaps", "chain_swaps", "all_swaps")
SWAPS_FIELD_NUMBER: _ClassVar[int]
CHANNEL_CREATIONS_FIELD_NUMBER: _ClassVar[int]
REVERSE_SWAPS_FIELD_NUMBER: _ClassVar[int]
CHAIN_SWAPS_FIELD_NUMBER: _ClassVar[int]
+ ALL_SWAPS_FIELD_NUMBER: _ClassVar[int]
swaps: _containers.RepeatedCompositeFieldContainer[SwapInfo]
- channel_creations: _containers.RepeatedCompositeFieldContainer[
- CombinedChannelSwapInfo
- ]
+ channel_creations: _containers.RepeatedCompositeFieldContainer[CombinedChannelSwapInfo]
reverse_swaps: _containers.RepeatedCompositeFieldContainer[ReverseSwapInfo]
chain_swaps: _containers.RepeatedCompositeFieldContainer[ChainSwapInfo]
- def __init__(
- self,
- swaps: _Optional[_Iterable[_Union[SwapInfo, _Mapping]]] = ...,
- channel_creations: _Optional[
- _Iterable[_Union[CombinedChannelSwapInfo, _Mapping]]
- ] = ...,
- reverse_swaps: _Optional[_Iterable[_Union[ReverseSwapInfo, _Mapping]]] = ...,
- chain_swaps: _Optional[_Iterable[_Union[ChainSwapInfo, _Mapping]]] = ...,
- ) -> None: ...
+ all_swaps: _containers.RepeatedCompositeFieldContainer[AnySwapInfo]
+ def __init__(self, swaps: _Optional[_Iterable[_Union[SwapInfo, _Mapping]]] = ..., channel_creations: _Optional[_Iterable[_Union[CombinedChannelSwapInfo, _Mapping]]] = ..., reverse_swaps: _Optional[_Iterable[_Union[ReverseSwapInfo, _Mapping]]] = ..., chain_swaps: _Optional[_Iterable[_Union[ChainSwapInfo, _Mapping]]] = ..., all_swaps: _Optional[_Iterable[_Union[AnySwapInfo, _Mapping]]] = ...) -> None: ...
class GetStatsRequest(_message.Message):
__slots__ = ("include",)
@@ -611,12 +453,7 @@ class RefundSwapRequest(_message.Message):
id: str
address: str
wallet_id: int
- def __init__(
- self,
- id: _Optional[str] = ...,
- address: _Optional[str] = ...,
- wallet_id: _Optional[int] = ...,
- ) -> None: ...
+ def __init__(self, id: _Optional[str] = ..., address: _Optional[str] = ..., wallet_id: _Optional[int] = ...) -> None: ...
class ClaimSwapsRequest(_message.Message):
__slots__ = ("swap_ids", "address", "wallet_id")
@@ -626,12 +463,7 @@ class ClaimSwapsRequest(_message.Message):
swap_ids: _containers.RepeatedScalarFieldContainer[str]
address: str
wallet_id: int
- def __init__(
- self,
- swap_ids: _Optional[_Iterable[str]] = ...,
- address: _Optional[str] = ...,
- wallet_id: _Optional[int] = ...,
- ) -> None: ...
+ def __init__(self, swap_ids: _Optional[_Iterable[str]] = ..., address: _Optional[str] = ..., wallet_id: _Optional[int] = ...) -> None: ...
class ClaimSwapsResponse(_message.Message):
__slots__ = ("transaction_id",)
@@ -640,10 +472,14 @@ class ClaimSwapsResponse(_message.Message):
def __init__(self, transaction_id: _Optional[str] = ...) -> None: ...
class GetSwapInfoRequest(_message.Message):
- __slots__ = ("id",)
+ __slots__ = ("id", "swap_id", "payment_hash")
ID_FIELD_NUMBER: _ClassVar[int]
+ SWAP_ID_FIELD_NUMBER: _ClassVar[int]
+ PAYMENT_HASH_FIELD_NUMBER: _ClassVar[int]
id: str
- def __init__(self, id: _Optional[str] = ...) -> None: ...
+ swap_id: str
+ payment_hash: bytes
+ def __init__(self, id: _Optional[str] = ..., swap_id: _Optional[str] = ..., payment_hash: _Optional[bytes] = ...) -> None: ...
class GetSwapInfoResponse(_message.Message):
__slots__ = ("swap", "channel_creation", "reverse_swap", "chain_swap")
@@ -655,13 +491,7 @@ class GetSwapInfoResponse(_message.Message):
channel_creation: ChannelCreationInfo
reverse_swap: ReverseSwapInfo
chain_swap: ChainSwapInfo
- def __init__(
- self,
- swap: _Optional[_Union[SwapInfo, _Mapping]] = ...,
- channel_creation: _Optional[_Union[ChannelCreationInfo, _Mapping]] = ...,
- reverse_swap: _Optional[_Union[ReverseSwapInfo, _Mapping]] = ...,
- chain_swap: _Optional[_Union[ChainSwapInfo, _Mapping]] = ...,
- ) -> None: ...
+ def __init__(self, swap: _Optional[_Union[SwapInfo, _Mapping]] = ..., channel_creation: _Optional[_Union[ChannelCreationInfo, _Mapping]] = ..., reverse_swap: _Optional[_Union[ReverseSwapInfo, _Mapping]] = ..., chain_swap: _Optional[_Union[ChainSwapInfo, _Mapping]] = ...) -> None: ...
class DepositRequest(_message.Message):
__slots__ = ("inbound_liquidity",)
@@ -677,23 +507,10 @@ class DepositResponse(_message.Message):
id: str
address: str
timeout_block_height: int
- def __init__(
- self,
- id: _Optional[str] = ...,
- address: _Optional[str] = ...,
- timeout_block_height: _Optional[int] = ...,
- ) -> None: ...
+ def __init__(self, id: _Optional[str] = ..., address: _Optional[str] = ..., timeout_block_height: _Optional[int] = ...) -> None: ...
class CreateSwapRequest(_message.Message):
- __slots__ = (
- "amount",
- "pair",
- "send_from_internal",
- "refund_address",
- "wallet_id",
- "invoice",
- "zero_conf",
- )
+ __slots__ = ("amount", "pair", "send_from_internal", "refund_address", "wallet_id", "invoice", "zero_conf", "sat_per_vbyte", "accepted_pair")
AMOUNT_FIELD_NUMBER: _ClassVar[int]
PAIR_FIELD_NUMBER: _ClassVar[int]
SEND_FROM_INTERNAL_FIELD_NUMBER: _ClassVar[int]
@@ -701,6 +518,8 @@ class CreateSwapRequest(_message.Message):
WALLET_ID_FIELD_NUMBER: _ClassVar[int]
INVOICE_FIELD_NUMBER: _ClassVar[int]
ZERO_CONF_FIELD_NUMBER: _ClassVar[int]
+ SAT_PER_VBYTE_FIELD_NUMBER: _ClassVar[int]
+ ACCEPTED_PAIR_FIELD_NUMBER: _ClassVar[int]
amount: int
pair: Pair
send_from_internal: bool
@@ -708,27 +527,12 @@ class CreateSwapRequest(_message.Message):
wallet_id: int
invoice: str
zero_conf: bool
- def __init__(
- self,
- amount: _Optional[int] = ...,
- pair: _Optional[_Union[Pair, _Mapping]] = ...,
- send_from_internal: bool = ...,
- refund_address: _Optional[str] = ...,
- wallet_id: _Optional[int] = ...,
- invoice: _Optional[str] = ...,
- zero_conf: bool = ...,
- ) -> None: ...
+ sat_per_vbyte: float
+ accepted_pair: PairInfo
+ def __init__(self, amount: _Optional[int] = ..., pair: _Optional[_Union[Pair, _Mapping]] = ..., send_from_internal: bool = ..., refund_address: _Optional[str] = ..., wallet_id: _Optional[int] = ..., invoice: _Optional[str] = ..., zero_conf: bool = ..., sat_per_vbyte: _Optional[float] = ..., accepted_pair: _Optional[_Union[PairInfo, _Mapping]] = ...) -> None: ...
class CreateSwapResponse(_message.Message):
- __slots__ = (
- "id",
- "address",
- "expected_amount",
- "bip21",
- "tx_id",
- "timeout_block_height",
- "timeout_hours",
- )
+ __slots__ = ("id", "address", "expected_amount", "bip21", "tx_id", "timeout_block_height", "timeout_hours")
ID_FIELD_NUMBER: _ClassVar[int]
ADDRESS_FIELD_NUMBER: _ClassVar[int]
EXPECTED_AMOUNT_FIELD_NUMBER: _ClassVar[int]
@@ -743,16 +547,7 @@ class CreateSwapResponse(_message.Message):
tx_id: str
timeout_block_height: int
timeout_hours: float
- def __init__(
- self,
- id: _Optional[str] = ...,
- address: _Optional[str] = ...,
- expected_amount: _Optional[int] = ...,
- bip21: _Optional[str] = ...,
- tx_id: _Optional[str] = ...,
- timeout_block_height: _Optional[int] = ...,
- timeout_hours: _Optional[float] = ...,
- ) -> None: ...
+ def __init__(self, id: _Optional[str] = ..., address: _Optional[str] = ..., expected_amount: _Optional[int] = ..., bip21: _Optional[str] = ..., tx_id: _Optional[str] = ..., timeout_block_height: _Optional[int] = ..., timeout_hours: _Optional[float] = ...) -> None: ...
class CreateChannelRequest(_message.Message):
__slots__ = ("amount", "inbound_liquidity", "private")
@@ -762,25 +557,10 @@ class CreateChannelRequest(_message.Message):
amount: int
inbound_liquidity: int
private: bool
- def __init__(
- self,
- amount: _Optional[int] = ...,
- inbound_liquidity: _Optional[int] = ...,
- private: bool = ...,
- ) -> None: ...
+ def __init__(self, amount: _Optional[int] = ..., inbound_liquidity: _Optional[int] = ..., private: bool = ...) -> None: ...
class CreateReverseSwapRequest(_message.Message):
- __slots__ = (
- "amount",
- "address",
- "accept_zero_conf",
- "pair",
- "chan_ids",
- "wallet_id",
- "return_immediately",
- "external_pay",
- "description",
- )
+ __slots__ = ("amount", "address", "accept_zero_conf", "pair", "chan_ids", "wallet_id", "return_immediately", "external_pay", "description", "description_hash", "invoice_expiry", "accepted_pair", "routing_fee_limit_ppm")
AMOUNT_FIELD_NUMBER: _ClassVar[int]
ADDRESS_FIELD_NUMBER: _ClassVar[int]
ACCEPT_ZERO_CONF_FIELD_NUMBER: _ClassVar[int]
@@ -790,6 +570,10 @@ class CreateReverseSwapRequest(_message.Message):
RETURN_IMMEDIATELY_FIELD_NUMBER: _ClassVar[int]
EXTERNAL_PAY_FIELD_NUMBER: _ClassVar[int]
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
+ DESCRIPTION_HASH_FIELD_NUMBER: _ClassVar[int]
+ INVOICE_EXPIRY_FIELD_NUMBER: _ClassVar[int]
+ ACCEPTED_PAIR_FIELD_NUMBER: _ClassVar[int]
+ ROUTING_FEE_LIMIT_PPM_FIELD_NUMBER: _ClassVar[int]
amount: int
address: str
accept_zero_conf: bool
@@ -799,27 +583,14 @@ class CreateReverseSwapRequest(_message.Message):
return_immediately: bool
external_pay: bool
description: str
- def __init__(
- self,
- amount: _Optional[int] = ...,
- address: _Optional[str] = ...,
- accept_zero_conf: bool = ...,
- pair: _Optional[_Union[Pair, _Mapping]] = ...,
- chan_ids: _Optional[_Iterable[str]] = ...,
- wallet_id: _Optional[int] = ...,
- return_immediately: bool = ...,
- external_pay: bool = ...,
- description: _Optional[str] = ...,
- ) -> None: ...
+ description_hash: bytes
+ invoice_expiry: int
+ accepted_pair: PairInfo
+ routing_fee_limit_ppm: int
+ def __init__(self, amount: _Optional[int] = ..., address: _Optional[str] = ..., accept_zero_conf: bool = ..., pair: _Optional[_Union[Pair, _Mapping]] = ..., chan_ids: _Optional[_Iterable[str]] = ..., wallet_id: _Optional[int] = ..., return_immediately: bool = ..., external_pay: bool = ..., description: _Optional[str] = ..., description_hash: _Optional[bytes] = ..., invoice_expiry: _Optional[int] = ..., accepted_pair: _Optional[_Union[PairInfo, _Mapping]] = ..., routing_fee_limit_ppm: _Optional[int] = ...) -> None: ...
class CreateReverseSwapResponse(_message.Message):
- __slots__ = (
- "id",
- "lockup_address",
- "routing_fee_milli_sat",
- "claim_transaction_id",
- "invoice",
- )
+ __slots__ = ("id", "lockup_address", "routing_fee_milli_sat", "claim_transaction_id", "invoice")
ID_FIELD_NUMBER: _ClassVar[int]
LOCKUP_ADDRESS_FIELD_NUMBER: _ClassVar[int]
ROUTING_FEE_MILLI_SAT_FIELD_NUMBER: _ClassVar[int]
@@ -830,27 +601,10 @@ class CreateReverseSwapResponse(_message.Message):
routing_fee_milli_sat: int
claim_transaction_id: str
invoice: str
- def __init__(
- self,
- id: _Optional[str] = ...,
- lockup_address: _Optional[str] = ...,
- routing_fee_milli_sat: _Optional[int] = ...,
- claim_transaction_id: _Optional[str] = ...,
- invoice: _Optional[str] = ...,
- ) -> None: ...
+ def __init__(self, id: _Optional[str] = ..., lockup_address: _Optional[str] = ..., routing_fee_milli_sat: _Optional[int] = ..., claim_transaction_id: _Optional[str] = ..., invoice: _Optional[str] = ...) -> None: ...
class CreateChainSwapRequest(_message.Message):
- __slots__ = (
- "amount",
- "pair",
- "to_address",
- "refund_address",
- "from_wallet_id",
- "to_wallet_id",
- "accept_zero_conf",
- "external_pay",
- "lockup_zero_conf",
- )
+ __slots__ = ("amount", "pair", "to_address", "refund_address", "from_wallet_id", "to_wallet_id", "accept_zero_conf", "external_pay", "lockup_zero_conf", "sat_per_vbyte", "accepted_pair")
AMOUNT_FIELD_NUMBER: _ClassVar[int]
PAIR_FIELD_NUMBER: _ClassVar[int]
TO_ADDRESS_FIELD_NUMBER: _ClassVar[int]
@@ -860,6 +614,8 @@ class CreateChainSwapRequest(_message.Message):
ACCEPT_ZERO_CONF_FIELD_NUMBER: _ClassVar[int]
EXTERNAL_PAY_FIELD_NUMBER: _ClassVar[int]
LOCKUP_ZERO_CONF_FIELD_NUMBER: _ClassVar[int]
+ SAT_PER_VBYTE_FIELD_NUMBER: _ClassVar[int]
+ ACCEPTED_PAIR_FIELD_NUMBER: _ClassVar[int]
amount: int
pair: Pair
to_address: str
@@ -869,36 +625,12 @@ class CreateChainSwapRequest(_message.Message):
accept_zero_conf: bool
external_pay: bool
lockup_zero_conf: bool
- def __init__(
- self,
- amount: _Optional[int] = ...,
- pair: _Optional[_Union[Pair, _Mapping]] = ...,
- to_address: _Optional[str] = ...,
- refund_address: _Optional[str] = ...,
- from_wallet_id: _Optional[int] = ...,
- to_wallet_id: _Optional[int] = ...,
- accept_zero_conf: bool = ...,
- external_pay: bool = ...,
- lockup_zero_conf: bool = ...,
- ) -> None: ...
+ sat_per_vbyte: float
+ accepted_pair: PairInfo
+ def __init__(self, amount: _Optional[int] = ..., pair: _Optional[_Union[Pair, _Mapping]] = ..., to_address: _Optional[str] = ..., refund_address: _Optional[str] = ..., from_wallet_id: _Optional[int] = ..., to_wallet_id: _Optional[int] = ..., accept_zero_conf: bool = ..., external_pay: bool = ..., lockup_zero_conf: bool = ..., sat_per_vbyte: _Optional[float] = ..., accepted_pair: _Optional[_Union[PairInfo, _Mapping]] = ...) -> None: ...
class ChainSwapInfo(_message.Message):
- __slots__ = (
- "id",
- "pair",
- "state",
- "error",
- "status",
- "preimage",
- "is_auto",
- "service_fee",
- "service_fee_percent",
- "onchain_fee",
- "created_at",
- "tenant_id",
- "from_data",
- "to_data",
- )
+ __slots__ = ("id", "pair", "state", "error", "status", "preimage", "is_auto", "service_fee", "service_fee_percent", "onchain_fee", "created_at", "tenant_id", "from_data", "to_data")
ID_FIELD_NUMBER: _ClassVar[int]
PAIR_FIELD_NUMBER: _ClassVar[int]
STATE_FIELD_NUMBER: _ClassVar[int]
@@ -927,39 +659,10 @@ class ChainSwapInfo(_message.Message):
tenant_id: int
from_data: ChainSwapData
to_data: ChainSwapData
- def __init__(
- self,
- id: _Optional[str] = ...,
- pair: _Optional[_Union[Pair, _Mapping]] = ...,
- state: _Optional[_Union[SwapState, str]] = ...,
- error: _Optional[str] = ...,
- status: _Optional[str] = ...,
- preimage: _Optional[str] = ...,
- is_auto: bool = ...,
- service_fee: _Optional[int] = ...,
- service_fee_percent: _Optional[float] = ...,
- onchain_fee: _Optional[int] = ...,
- created_at: _Optional[int] = ...,
- tenant_id: _Optional[int] = ...,
- from_data: _Optional[_Union[ChainSwapData, _Mapping]] = ...,
- to_data: _Optional[_Union[ChainSwapData, _Mapping]] = ...,
- ) -> None: ...
+ def __init__(self, id: _Optional[str] = ..., pair: _Optional[_Union[Pair, _Mapping]] = ..., state: _Optional[_Union[SwapState, str]] = ..., error: _Optional[str] = ..., status: _Optional[str] = ..., preimage: _Optional[str] = ..., is_auto: bool = ..., service_fee: _Optional[int] = ..., service_fee_percent: _Optional[float] = ..., onchain_fee: _Optional[int] = ..., created_at: _Optional[int] = ..., tenant_id: _Optional[int] = ..., from_data: _Optional[_Union[ChainSwapData, _Mapping]] = ..., to_data: _Optional[_Union[ChainSwapData, _Mapping]] = ...) -> None: ...
class ChainSwapData(_message.Message):
- __slots__ = (
- "id",
- "currency",
- "private_key",
- "their_public_key",
- "amount",
- "timeout_block_height",
- "lockup_transaction_id",
- "transaction_id",
- "wallet_id",
- "address",
- "blinding_key",
- "lockup_address",
- )
+ __slots__ = ("id", "currency", "private_key", "their_public_key", "amount", "timeout_block_height", "lockup_transaction_id", "transaction_id", "wallet_id", "address", "blinding_key", "lockup_address")
ID_FIELD_NUMBER: _ClassVar[int]
CURRENCY_FIELD_NUMBER: _ClassVar[int]
PRIVATE_KEY_FIELD_NUMBER: _ClassVar[int]
@@ -984,21 +687,7 @@ class ChainSwapData(_message.Message):
address: str
blinding_key: str
lockup_address: str
- def __init__(
- self,
- id: _Optional[str] = ...,
- currency: _Optional[_Union[Currency, str]] = ...,
- private_key: _Optional[str] = ...,
- their_public_key: _Optional[str] = ...,
- amount: _Optional[int] = ...,
- timeout_block_height: _Optional[int] = ...,
- lockup_transaction_id: _Optional[str] = ...,
- transaction_id: _Optional[str] = ...,
- wallet_id: _Optional[int] = ...,
- address: _Optional[str] = ...,
- blinding_key: _Optional[str] = ...,
- lockup_address: _Optional[str] = ...,
- ) -> None: ...
+ def __init__(self, id: _Optional[str] = ..., currency: _Optional[_Union[Currency, str]] = ..., private_key: _Optional[str] = ..., their_public_key: _Optional[str] = ..., amount: _Optional[int] = ..., timeout_block_height: _Optional[int] = ..., lockup_transaction_id: _Optional[str] = ..., transaction_id: _Optional[str] = ..., wallet_id: _Optional[int] = ..., address: _Optional[str] = ..., blinding_key: _Optional[str] = ..., lockup_address: _Optional[str] = ...) -> None: ...
class ChannelId(_message.Message):
__slots__ = ("cln", "lnd")
@@ -1006,9 +695,7 @@ class ChannelId(_message.Message):
LND_FIELD_NUMBER: _ClassVar[int]
cln: str
lnd: int
- def __init__(
- self, cln: _Optional[str] = ..., lnd: _Optional[int] = ...
- ) -> None: ...
+ def __init__(self, cln: _Optional[str] = ..., lnd: _Optional[int] = ...) -> None: ...
class LightningChannel(_message.Message):
__slots__ = ("id", "capacity", "outbound_sat", "inbound_sat", "peer_id")
@@ -1022,24 +709,10 @@ class LightningChannel(_message.Message):
outbound_sat: int
inbound_sat: int
peer_id: str
- def __init__(
- self,
- id: _Optional[_Union[ChannelId, _Mapping]] = ...,
- capacity: _Optional[int] = ...,
- outbound_sat: _Optional[int] = ...,
- inbound_sat: _Optional[int] = ...,
- peer_id: _Optional[str] = ...,
- ) -> None: ...
+ def __init__(self, id: _Optional[_Union[ChannelId, _Mapping]] = ..., capacity: _Optional[int] = ..., outbound_sat: _Optional[int] = ..., inbound_sat: _Optional[int] = ..., peer_id: _Optional[str] = ...) -> None: ...
class SwapStats(_message.Message):
- __slots__ = (
- "total_fees",
- "total_amount",
- "avg_fees",
- "avg_amount",
- "count",
- "success_count",
- )
+ __slots__ = ("total_fees", "total_amount", "avg_fees", "avg_amount", "count", "success_count")
TOTAL_FEES_FIELD_NUMBER: _ClassVar[int]
TOTAL_AMOUNT_FIELD_NUMBER: _ClassVar[int]
AVG_FEES_FIELD_NUMBER: _ClassVar[int]
@@ -1052,15 +725,7 @@ class SwapStats(_message.Message):
avg_amount: int
count: int
success_count: int
- def __init__(
- self,
- total_fees: _Optional[int] = ...,
- total_amount: _Optional[int] = ...,
- avg_fees: _Optional[int] = ...,
- avg_amount: _Optional[int] = ...,
- count: _Optional[int] = ...,
- success_count: _Optional[int] = ...,
- ) -> None: ...
+ def __init__(self, total_fees: _Optional[int] = ..., total_amount: _Optional[int] = ..., avg_fees: _Optional[int] = ..., avg_amount: _Optional[int] = ..., count: _Optional[int] = ..., success_count: _Optional[int] = ...) -> None: ...
class Budget(_message.Message):
__slots__ = ("total", "remaining", "start_date", "end_date")
@@ -1072,13 +737,7 @@ class Budget(_message.Message):
remaining: int
start_date: int
end_date: int
- def __init__(
- self,
- total: _Optional[int] = ...,
- remaining: _Optional[int] = ...,
- start_date: _Optional[int] = ...,
- end_date: _Optional[int] = ...,
- ) -> None: ...
+ def __init__(self, total: _Optional[int] = ..., remaining: _Optional[int] = ..., start_date: _Optional[int] = ..., end_date: _Optional[int] = ...) -> None: ...
class WalletCredentials(_message.Message):
__slots__ = ("mnemonic", "xpub", "core_descriptor", "subaccount")
@@ -1090,13 +749,7 @@ class WalletCredentials(_message.Message):
xpub: str
core_descriptor: str
subaccount: int
- def __init__(
- self,
- mnemonic: _Optional[str] = ...,
- xpub: _Optional[str] = ...,
- core_descriptor: _Optional[str] = ...,
- subaccount: _Optional[int] = ...,
- ) -> None: ...
+ def __init__(self, mnemonic: _Optional[str] = ..., xpub: _Optional[str] = ..., core_descriptor: _Optional[str] = ..., subaccount: _Optional[int] = ...) -> None: ...
class WalletParams(_message.Message):
__slots__ = ("name", "currency", "password")
@@ -1106,12 +759,7 @@ class WalletParams(_message.Message):
name: str
currency: Currency
password: str
- def __init__(
- self,
- name: _Optional[str] = ...,
- currency: _Optional[_Union[Currency, str]] = ...,
- password: _Optional[str] = ...,
- ) -> None: ...
+ def __init__(self, name: _Optional[str] = ..., currency: _Optional[_Union[Currency, str]] = ..., password: _Optional[str] = ...) -> None: ...
class ImportWalletRequest(_message.Message):
__slots__ = ("credentials", "params")
@@ -1119,19 +767,13 @@ class ImportWalletRequest(_message.Message):
PARAMS_FIELD_NUMBER: _ClassVar[int]
credentials: WalletCredentials
params: WalletParams
- def __init__(
- self,
- credentials: _Optional[_Union[WalletCredentials, _Mapping]] = ...,
- params: _Optional[_Union[WalletParams, _Mapping]] = ...,
- ) -> None: ...
+ def __init__(self, credentials: _Optional[_Union[WalletCredentials, _Mapping]] = ..., params: _Optional[_Union[WalletParams, _Mapping]] = ...) -> None: ...
class CreateWalletRequest(_message.Message):
__slots__ = ("params",)
PARAMS_FIELD_NUMBER: _ClassVar[int]
params: WalletParams
- def __init__(
- self, params: _Optional[_Union[WalletParams, _Mapping]] = ...
- ) -> None: ...
+ def __init__(self, params: _Optional[_Union[WalletParams, _Mapping]] = ...) -> None: ...
class CreateWalletResponse(_message.Message):
__slots__ = ("mnemonic", "wallet")
@@ -1139,11 +781,7 @@ class CreateWalletResponse(_message.Message):
WALLET_FIELD_NUMBER: _ClassVar[int]
mnemonic: str
wallet: Wallet
- def __init__(
- self,
- mnemonic: _Optional[str] = ...,
- wallet: _Optional[_Union[Wallet, _Mapping]] = ...,
- ) -> None: ...
+ def __init__(self, mnemonic: _Optional[str] = ..., wallet: _Optional[_Union[Wallet, _Mapping]] = ...) -> None: ...
class SetSubaccountRequest(_message.Message):
__slots__ = ("wallet_id", "subaccount")
@@ -1151,9 +789,7 @@ class SetSubaccountRequest(_message.Message):
SUBACCOUNT_FIELD_NUMBER: _ClassVar[int]
wallet_id: int
subaccount: int
- def __init__(
- self, wallet_id: _Optional[int] = ..., subaccount: _Optional[int] = ...
- ) -> None: ...
+ def __init__(self, wallet_id: _Optional[int] = ..., subaccount: _Optional[int] = ...) -> None: ...
class GetSubaccountsRequest(_message.Message):
__slots__ = ("wallet_id",)
@@ -1167,11 +803,7 @@ class GetSubaccountsResponse(_message.Message):
SUBACCOUNTS_FIELD_NUMBER: _ClassVar[int]
current: int
subaccounts: _containers.RepeatedCompositeFieldContainer[Subaccount]
- def __init__(
- self,
- current: _Optional[int] = ...,
- subaccounts: _Optional[_Iterable[_Union[Subaccount, _Mapping]]] = ...,
- ) -> None: ...
+ def __init__(self, current: _Optional[int] = ..., subaccounts: _Optional[_Iterable[_Union[Subaccount, _Mapping]]] = ...) -> None: ...
class ImportWalletResponse(_message.Message):
__slots__ = ()
@@ -1183,11 +815,7 @@ class GetWalletsRequest(_message.Message):
INCLUDE_READONLY_FIELD_NUMBER: _ClassVar[int]
currency: Currency
include_readonly: bool
- def __init__(
- self,
- currency: _Optional[_Union[Currency, str]] = ...,
- include_readonly: bool = ...,
- ) -> None: ...
+ def __init__(self, currency: _Optional[_Union[Currency, str]] = ..., include_readonly: bool = ...) -> None: ...
class GetWalletRequest(_message.Message):
__slots__ = ("name", "id")
@@ -1195,9 +823,85 @@ class GetWalletRequest(_message.Message):
ID_FIELD_NUMBER: _ClassVar[int]
name: str
id: int
- def __init__(
- self, name: _Optional[str] = ..., id: _Optional[int] = ...
- ) -> None: ...
+ def __init__(self, name: _Optional[str] = ..., id: _Optional[int] = ...) -> None: ...
+
+class WalletSendFee(_message.Message):
+ __slots__ = ("amount", "fee", "fee_rate")
+ AMOUNT_FIELD_NUMBER: _ClassVar[int]
+ FEE_FIELD_NUMBER: _ClassVar[int]
+ FEE_RATE_FIELD_NUMBER: _ClassVar[int]
+ amount: int
+ fee: int
+ fee_rate: float
+ def __init__(self, amount: _Optional[int] = ..., fee: _Optional[int] = ..., fee_rate: _Optional[float] = ...) -> None: ...
+
+class ListWalletTransactionsRequest(_message.Message):
+ __slots__ = ("id", "exclude_swap_related", "limit", "offset")
+ ID_FIELD_NUMBER: _ClassVar[int]
+ EXCLUDE_SWAP_RELATED_FIELD_NUMBER: _ClassVar[int]
+ LIMIT_FIELD_NUMBER: _ClassVar[int]
+ OFFSET_FIELD_NUMBER: _ClassVar[int]
+ id: int
+ exclude_swap_related: bool
+ limit: int
+ offset: int
+ def __init__(self, id: _Optional[int] = ..., exclude_swap_related: bool = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ...) -> None: ...
+
+class WalletTransaction(_message.Message):
+ __slots__ = ("id", "balance_change", "timestamp", "outputs", "block_height", "infos")
+ ID_FIELD_NUMBER: _ClassVar[int]
+ BALANCE_CHANGE_FIELD_NUMBER: _ClassVar[int]
+ TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
+ OUTPUTS_FIELD_NUMBER: _ClassVar[int]
+ BLOCK_HEIGHT_FIELD_NUMBER: _ClassVar[int]
+ INFOS_FIELD_NUMBER: _ClassVar[int]
+ id: str
+ balance_change: int
+ timestamp: int
+ outputs: _containers.RepeatedCompositeFieldContainer[TransactionOutput]
+ block_height: int
+ infos: _containers.RepeatedCompositeFieldContainer[TransactionInfo]
+ def __init__(self, id: _Optional[str] = ..., balance_change: _Optional[int] = ..., timestamp: _Optional[int] = ..., outputs: _Optional[_Iterable[_Union[TransactionOutput, _Mapping]]] = ..., block_height: _Optional[int] = ..., infos: _Optional[_Iterable[_Union[TransactionInfo, _Mapping]]] = ...) -> None: ...
+
+class BumpTransactionRequest(_message.Message):
+ __slots__ = ("tx_id", "swap_id", "sat_per_vbyte")
+ TX_ID_FIELD_NUMBER: _ClassVar[int]
+ SWAP_ID_FIELD_NUMBER: _ClassVar[int]
+ SAT_PER_VBYTE_FIELD_NUMBER: _ClassVar[int]
+ tx_id: str
+ swap_id: str
+ sat_per_vbyte: float
+ def __init__(self, tx_id: _Optional[str] = ..., swap_id: _Optional[str] = ..., sat_per_vbyte: _Optional[float] = ...) -> None: ...
+
+class BumpTransactionResponse(_message.Message):
+ __slots__ = ("tx_id",)
+ TX_ID_FIELD_NUMBER: _ClassVar[int]
+ tx_id: str
+ def __init__(self, tx_id: _Optional[str] = ...) -> None: ...
+
+class TransactionInfo(_message.Message):
+ __slots__ = ("swap_id", "type")
+ SWAP_ID_FIELD_NUMBER: _ClassVar[int]
+ TYPE_FIELD_NUMBER: _ClassVar[int]
+ swap_id: str
+ type: TransactionType
+ def __init__(self, swap_id: _Optional[str] = ..., type: _Optional[_Union[TransactionType, str]] = ...) -> None: ...
+
+class TransactionOutput(_message.Message):
+ __slots__ = ("address", "amount", "is_our_address")
+ ADDRESS_FIELD_NUMBER: _ClassVar[int]
+ AMOUNT_FIELD_NUMBER: _ClassVar[int]
+ IS_OUR_ADDRESS_FIELD_NUMBER: _ClassVar[int]
+ address: str
+ amount: int
+ is_our_address: bool
+ def __init__(self, address: _Optional[str] = ..., amount: _Optional[int] = ..., is_our_address: bool = ...) -> None: ...
+
+class ListWalletTransactionsResponse(_message.Message):
+ __slots__ = ("transactions",)
+ TRANSACTIONS_FIELD_NUMBER: _ClassVar[int]
+ transactions: _containers.RepeatedCompositeFieldContainer[WalletTransaction]
+ def __init__(self, transactions: _Optional[_Iterable[_Union[WalletTransaction, _Mapping]]] = ...) -> None: ...
class GetWalletCredentialsRequest(_message.Message):
__slots__ = ("id", "password")
@@ -1205,9 +909,7 @@ class GetWalletCredentialsRequest(_message.Message):
PASSWORD_FIELD_NUMBER: _ClassVar[int]
id: int
password: str
- def __init__(
- self, id: _Optional[int] = ..., password: _Optional[str] = ...
- ) -> None: ...
+ def __init__(self, id: _Optional[int] = ..., password: _Optional[str] = ...) -> None: ...
class RemoveWalletRequest(_message.Message):
__slots__ = ("id",)
@@ -1215,6 +917,40 @@ class RemoveWalletRequest(_message.Message):
id: int
def __init__(self, id: _Optional[int] = ...) -> None: ...
+class WalletSendRequest(_message.Message):
+ __slots__ = ("id", "address", "amount", "sat_per_vbyte", "send_all", "is_swap_address")
+ ID_FIELD_NUMBER: _ClassVar[int]
+ ADDRESS_FIELD_NUMBER: _ClassVar[int]
+ AMOUNT_FIELD_NUMBER: _ClassVar[int]
+ SAT_PER_VBYTE_FIELD_NUMBER: _ClassVar[int]
+ SEND_ALL_FIELD_NUMBER: _ClassVar[int]
+ IS_SWAP_ADDRESS_FIELD_NUMBER: _ClassVar[int]
+ id: int
+ address: str
+ amount: int
+ sat_per_vbyte: float
+ send_all: bool
+ is_swap_address: bool
+ def __init__(self, id: _Optional[int] = ..., address: _Optional[str] = ..., amount: _Optional[int] = ..., sat_per_vbyte: _Optional[float] = ..., send_all: bool = ..., is_swap_address: bool = ...) -> None: ...
+
+class WalletSendResponse(_message.Message):
+ __slots__ = ("tx_id",)
+ TX_ID_FIELD_NUMBER: _ClassVar[int]
+ tx_id: str
+ def __init__(self, tx_id: _Optional[str] = ...) -> None: ...
+
+class WalletReceiveRequest(_message.Message):
+ __slots__ = ("id",)
+ ID_FIELD_NUMBER: _ClassVar[int]
+ id: int
+ def __init__(self, id: _Optional[int] = ...) -> None: ...
+
+class WalletReceiveResponse(_message.Message):
+ __slots__ = ("address",)
+ ADDRESS_FIELD_NUMBER: _ClassVar[int]
+ address: str
+ def __init__(self, address: _Optional[str] = ...) -> None: ...
+
class Wallet(_message.Message):
__slots__ = ("id", "name", "currency", "readonly", "balance", "tenant_id")
ID_FIELD_NUMBER: _ClassVar[int]
@@ -1229,23 +965,13 @@ class Wallet(_message.Message):
readonly: bool
balance: Balance
tenant_id: int
- def __init__(
- self,
- id: _Optional[int] = ...,
- name: _Optional[str] = ...,
- currency: _Optional[_Union[Currency, str]] = ...,
- readonly: bool = ...,
- balance: _Optional[_Union[Balance, _Mapping]] = ...,
- tenant_id: _Optional[int] = ...,
- ) -> None: ...
+ def __init__(self, id: _Optional[int] = ..., name: _Optional[str] = ..., currency: _Optional[_Union[Currency, str]] = ..., readonly: bool = ..., balance: _Optional[_Union[Balance, _Mapping]] = ..., tenant_id: _Optional[int] = ...) -> None: ...
class Wallets(_message.Message):
__slots__ = ("wallets",)
WALLETS_FIELD_NUMBER: _ClassVar[int]
wallets: _containers.RepeatedCompositeFieldContainer[Wallet]
- def __init__(
- self, wallets: _Optional[_Iterable[_Union[Wallet, _Mapping]]] = ...
- ) -> None: ...
+ def __init__(self, wallets: _Optional[_Iterable[_Union[Wallet, _Mapping]]] = ...) -> None: ...
class Balance(_message.Message):
__slots__ = ("total", "confirmed", "unconfirmed")
@@ -1255,27 +981,19 @@ class Balance(_message.Message):
total: int
confirmed: int
unconfirmed: int
- def __init__(
- self,
- total: _Optional[int] = ...,
- confirmed: _Optional[int] = ...,
- unconfirmed: _Optional[int] = ...,
- ) -> None: ...
+ def __init__(self, total: _Optional[int] = ..., confirmed: _Optional[int] = ..., unconfirmed: _Optional[int] = ...) -> None: ...
class Subaccount(_message.Message):
- __slots__ = ("balance", "pointer", "type")
+ __slots__ = ("balance", "pointer", "type", "descriptors")
BALANCE_FIELD_NUMBER: _ClassVar[int]
POINTER_FIELD_NUMBER: _ClassVar[int]
TYPE_FIELD_NUMBER: _ClassVar[int]
+ DESCRIPTORS_FIELD_NUMBER: _ClassVar[int]
balance: Balance
pointer: int
type: str
- def __init__(
- self,
- balance: _Optional[_Union[Balance, _Mapping]] = ...,
- pointer: _Optional[int] = ...,
- type: _Optional[str] = ...,
- ) -> None: ...
+ descriptors: _containers.RepeatedScalarFieldContainer[str]
+ def __init__(self, balance: _Optional[_Union[Balance, _Mapping]] = ..., pointer: _Optional[int] = ..., type: _Optional[str] = ..., descriptors: _Optional[_Iterable[str]] = ...) -> None: ...
class RemoveWalletResponse(_message.Message):
__slots__ = ()
@@ -1305,6 +1023,4 @@ class ChangeWalletPasswordRequest(_message.Message):
NEW_FIELD_NUMBER: _ClassVar[int]
old: str
new: str
- def __init__(
- self, old: _Optional[str] = ..., new: _Optional[str] = ...
- ) -> None: ...
+ def __init__(self, old: _Optional[str] = ..., new: _Optional[str] = ...) -> None: ...
diff --git a/lnbits/wallets/boltz_grpc_files/boltzrpc_pb2_grpc.py b/lnbits/wallets/boltz_grpc_files/boltzrpc_pb2_grpc.py
index b294f207..83d76135 100644
--- a/lnbits/wallets/boltz_grpc_files/boltzrpc_pb2_grpc.py
+++ b/lnbits/wallets/boltz_grpc_files/boltzrpc_pb2_grpc.py
@@ -3,36 +3,26 @@
import grpc
import warnings
+from . import boltzrpc_pb2 as boltz__grpc__files_dot_boltzrpc__pb2
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
-from lnbits.wallets.boltz_grpc_files import (
- boltzrpc_pb2 as lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2,
-)
-GRPC_GENERATED_VERSION = "1.65.4"
+GRPC_GENERATED_VERSION = '1.69.0'
GRPC_VERSION = grpc.__version__
-EXPECTED_ERROR_RELEASE = "1.66.0"
-SCHEDULED_RELEASE_DATE = "August 6, 2024"
_version_not_supported = False
try:
from grpc._utilities import first_version_is_lower
-
- _version_not_supported = first_version_is_lower(
- GRPC_VERSION, GRPC_GENERATED_VERSION
- )
+ _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
except ImportError:
_version_not_supported = True
if _version_not_supported:
- warnings.warn(
- f"The grpc package installed is at version {GRPC_VERSION},"
- + f" but the generated code in lnbits/wallets/boltz_grpc_files/boltzrpc_pb2_grpc.py depends on"
- + f" grpcio>={GRPC_GENERATED_VERSION}."
- + f" Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}"
- + f" or downgrade your generated code using grpcio-tools<={GRPC_VERSION}."
- + f" This warning will become an error in {EXPECTED_ERROR_RELEASE},"
- + f" scheduled for release on {SCHEDULED_RELEASE_DATE}.",
- RuntimeWarning,
+ raise RuntimeError(
+ f'The grpc package installed is at version {GRPC_VERSION},'
+ + f' but the generated code in boltz_grpc_files/boltzrpc_pb2_grpc.py depends on'
+ + f' grpcio>={GRPC_GENERATED_VERSION}.'
+ + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
+ + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
)
@@ -46,191 +36,185 @@ class BoltzStub(object):
channel: A grpc.Channel.
"""
self.GetInfo = channel.unary_unary(
- "/boltzrpc.Boltz/GetInfo",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetInfoRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetInfoResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/GetInfo',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetInfoRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetInfoResponse.FromString,
+ _registered_method=True)
self.GetServiceInfo = channel.unary_unary(
- "/boltzrpc.Boltz/GetServiceInfo",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetServiceInfoRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetServiceInfoResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/GetServiceInfo',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetServiceInfoRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetServiceInfoResponse.FromString,
+ _registered_method=True)
self.GetPairInfo = channel.unary_unary(
- "/boltzrpc.Boltz/GetPairInfo",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetPairInfoRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.PairInfo.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/GetPairInfo',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetPairInfoRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.PairInfo.FromString,
+ _registered_method=True)
self.GetPairs = channel.unary_unary(
- "/boltzrpc.Boltz/GetPairs",
- request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetPairsResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/GetPairs',
+ request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetPairsResponse.FromString,
+ _registered_method=True)
self.ListSwaps = channel.unary_unary(
- "/boltzrpc.Boltz/ListSwaps",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ListSwapsRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ListSwapsResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/ListSwaps',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.ListSwapsRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.ListSwapsResponse.FromString,
+ _registered_method=True)
self.GetStats = channel.unary_unary(
- "/boltzrpc.Boltz/GetStats",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetStatsRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetStatsResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/GetStats',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetStatsRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetStatsResponse.FromString,
+ _registered_method=True)
self.RefundSwap = channel.unary_unary(
- "/boltzrpc.Boltz/RefundSwap",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.RefundSwapRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/RefundSwap',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.RefundSwapRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.FromString,
+ _registered_method=True)
self.ClaimSwaps = channel.unary_unary(
- "/boltzrpc.Boltz/ClaimSwaps",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ClaimSwapsRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ClaimSwapsResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/ClaimSwaps',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.ClaimSwapsRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.ClaimSwapsResponse.FromString,
+ _registered_method=True)
self.GetSwapInfo = channel.unary_unary(
- "/boltzrpc.Boltz/GetSwapInfo",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/GetSwapInfo',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.FromString,
+ _registered_method=True)
self.GetSwapInfoStream = channel.unary_stream(
- "/boltzrpc.Boltz/GetSwapInfoStream",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/GetSwapInfoStream',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.FromString,
+ _registered_method=True)
self.Deposit = channel.unary_unary(
- "/boltzrpc.Boltz/Deposit",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.DepositRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.DepositResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/Deposit',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.DepositRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.DepositResponse.FromString,
+ _registered_method=True)
self.CreateSwap = channel.unary_unary(
- "/boltzrpc.Boltz/CreateSwap",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/CreateSwap',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapResponse.FromString,
+ _registered_method=True)
self.CreateChannel = channel.unary_unary(
- "/boltzrpc.Boltz/CreateChannel",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateChannelRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/CreateChannel',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateChannelRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapResponse.FromString,
+ _registered_method=True)
self.CreateReverseSwap = channel.unary_unary(
- "/boltzrpc.Boltz/CreateReverseSwap",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateReverseSwapRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateReverseSwapResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/CreateReverseSwap',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateReverseSwapRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateReverseSwapResponse.FromString,
+ _registered_method=True)
self.CreateChainSwap = channel.unary_unary(
- "/boltzrpc.Boltz/CreateChainSwap",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateChainSwapRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ChainSwapInfo.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/CreateChainSwap',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateChainSwapRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.ChainSwapInfo.FromString,
+ _registered_method=True)
self.CreateWallet = channel.unary_unary(
- "/boltzrpc.Boltz/CreateWallet",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateWalletRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateWalletResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/CreateWallet',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateWalletRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateWalletResponse.FromString,
+ _registered_method=True)
self.ImportWallet = channel.unary_unary(
- "/boltzrpc.Boltz/ImportWallet",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ImportWalletRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Wallet.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/ImportWallet',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.ImportWalletRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.Wallet.FromString,
+ _registered_method=True)
self.SetSubaccount = channel.unary_unary(
- "/boltzrpc.Boltz/SetSubaccount",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.SetSubaccountRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Subaccount.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/SetSubaccount',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.SetSubaccountRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.Subaccount.FromString,
+ _registered_method=True)
self.GetSubaccounts = channel.unary_unary(
- "/boltzrpc.Boltz/GetSubaccounts",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSubaccountsRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSubaccountsResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/GetSubaccounts',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetSubaccountsRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetSubaccountsResponse.FromString,
+ _registered_method=True)
self.GetWallets = channel.unary_unary(
- "/boltzrpc.Boltz/GetWallets",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetWalletsRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Wallets.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/GetWallets',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetWalletsRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.Wallets.FromString,
+ _registered_method=True)
self.GetWallet = channel.unary_unary(
- "/boltzrpc.Boltz/GetWallet",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetWalletRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Wallet.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/GetWallet',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetWalletRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.Wallet.FromString,
+ _registered_method=True)
+ self.GetWalletSendFee = channel.unary_unary(
+ '/boltzrpc.Boltz/GetWalletSendFee',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.WalletSendRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.WalletSendFee.FromString,
+ _registered_method=True)
+ self.ListWalletTransactions = channel.unary_unary(
+ '/boltzrpc.Boltz/ListWalletTransactions',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.ListWalletTransactionsRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.ListWalletTransactionsResponse.FromString,
+ _registered_method=True)
+ self.BumpTransaction = channel.unary_unary(
+ '/boltzrpc.Boltz/BumpTransaction',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.BumpTransactionRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.BumpTransactionResponse.FromString,
+ _registered_method=True)
self.GetWalletCredentials = channel.unary_unary(
- "/boltzrpc.Boltz/GetWalletCredentials",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetWalletCredentialsRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.WalletCredentials.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/GetWalletCredentials',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetWalletCredentialsRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.WalletCredentials.FromString,
+ _registered_method=True)
self.RemoveWallet = channel.unary_unary(
- "/boltzrpc.Boltz/RemoveWallet",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.RemoveWalletRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.RemoveWalletResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/RemoveWallet',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.RemoveWalletRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.RemoveWalletResponse.FromString,
+ _registered_method=True)
+ self.WalletSend = channel.unary_unary(
+ '/boltzrpc.Boltz/WalletSend',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.WalletSendRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.WalletSendResponse.FromString,
+ _registered_method=True)
+ self.WalletReceive = channel.unary_unary(
+ '/boltzrpc.Boltz/WalletReceive',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.WalletReceiveRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.WalletReceiveResponse.FromString,
+ _registered_method=True)
self.Stop = channel.unary_unary(
- "/boltzrpc.Boltz/Stop",
- request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
- response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/Stop',
+ request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
+ response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
+ _registered_method=True)
self.Unlock = channel.unary_unary(
- "/boltzrpc.Boltz/Unlock",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.UnlockRequest.SerializeToString,
- response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/Unlock',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.UnlockRequest.SerializeToString,
+ response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
+ _registered_method=True)
self.VerifyWalletPassword = channel.unary_unary(
- "/boltzrpc.Boltz/VerifyWalletPassword",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.VerifyWalletPasswordRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.VerifyWalletPasswordResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/VerifyWalletPassword',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.VerifyWalletPasswordRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.VerifyWalletPasswordResponse.FromString,
+ _registered_method=True)
self.ChangeWalletPassword = channel.unary_unary(
- "/boltzrpc.Boltz/ChangeWalletPassword",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ChangeWalletPasswordRequest.SerializeToString,
- response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/ChangeWalletPassword',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.ChangeWalletPasswordRequest.SerializeToString,
+ response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
+ _registered_method=True)
self.CreateTenant = channel.unary_unary(
- "/boltzrpc.Boltz/CreateTenant",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateTenantRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Tenant.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/CreateTenant',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateTenantRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.Tenant.FromString,
+ _registered_method=True)
self.ListTenants = channel.unary_unary(
- "/boltzrpc.Boltz/ListTenants",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ListTenantsRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ListTenantsResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/ListTenants',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.ListTenantsRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.ListTenantsResponse.FromString,
+ _registered_method=True)
self.GetTenant = channel.unary_unary(
- "/boltzrpc.Boltz/GetTenant",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetTenantRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Tenant.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/GetTenant',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetTenantRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.Tenant.FromString,
+ _registered_method=True)
self.BakeMacaroon = channel.unary_unary(
- "/boltzrpc.Boltz/BakeMacaroon",
- request_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.BakeMacaroonRequest.SerializeToString,
- response_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.BakeMacaroonResponse.FromString,
- _registered_method=True,
- )
+ '/boltzrpc.Boltz/BakeMacaroon',
+ request_serializer=boltz__grpc__files_dot_boltzrpc__pb2.BakeMacaroonRequest.SerializeToString,
+ response_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.BakeMacaroonResponse.FromString,
+ _registered_method=True)
class BoltzServicer(object):
@@ -242,48 +226,48 @@ class BoltzServicer(object):
and the IDs of pending swaps.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def GetServiceInfo(self, request, context):
"""
Fetches the latest limits and fees from the Boltz backend API it is connected to.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def GetPairInfo(self, request, context):
"""
Fetches information about a specific pair for a chain swap.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def GetPairs(self, request, context):
"""
Fetches all available pairs for submarine and reverse swaps.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def ListSwaps(self, request, context):
"""
Returns a list of all swaps, reverse swaps, and chain swaps in the database.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def GetStats(self, request, context):
"""
Returns stats of all swaps, reverse swaps, and chain swaps in the database.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def RefundSwap(self, request, context):
"""
@@ -291,8 +275,8 @@ class BoltzServicer(object):
This is only required when no refund address has been set and the swap does not have an associated wallet.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def ClaimSwaps(self, request, context):
"""
@@ -300,16 +284,16 @@ class BoltzServicer(object):
This is only required when no claim address has been set and the swap does not have an associated wallet.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def GetSwapInfo(self, request, context):
"""
Gets all available information about a swap from the database.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def GetSwapInfoStream(self, request, context):
"""
@@ -317,8 +301,8 @@ class BoltzServicer(object):
If the swap id is empty or "*" updates for all swaps will be streamed.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def Deposit(self, request, context):
"""
@@ -328,16 +312,16 @@ class BoltzServicer(object):
will try to pay it and if that is not possible, create a new channel to make the swap succeed.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def CreateSwap(self, request, context):
"""
Creates a new swap from onchain to lightning.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def CreateChannel(self, request, context):
"""
@@ -345,8 +329,8 @@ class BoltzServicer(object):
is coming trough a new channel channel opened by Boltz.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def CreateReverseSwap(self, request, context):
"""
@@ -354,8 +338,8 @@ class BoltzServicer(object):
will not wait until the lockup transaction from Boltz is confirmed in a block, but will claim it instantly.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def CreateChainSwap(self, request, context):
"""
@@ -363,128 +347,170 @@ class BoltzServicer(object):
will not wait until the lockup transaction from Boltz is confirmed in a block, but will claim it instantly.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def CreateWallet(self, request, context):
"""
Creates a new liquid wallet and returns the mnemonic.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def ImportWallet(self, request, context):
"""
Imports an existing wallet.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def SetSubaccount(self, request, context):
"""
Sets the subaccount of a wallet. Not supported for readonly wallets.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def GetSubaccounts(self, request, context):
"""
Returns all subaccounts for a given wallet. Not supported for readonly wallets.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def GetWallets(self, request, context):
"""
Returns all available wallets.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def GetWallet(self, request, context):
"""
Returns the current balance and subaccount of a wallet.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def GetWalletSendFee(self, request, context):
+ """
+ Calculates the fee for an equivalent `WalletSend` request.
+ If `address` is left empty, a dummy swap address will be used, allowing for a fee estimation of a swap lockup transaction.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def ListWalletTransactions(self, request, context):
+ """
+ Returns recent transactions from a wallet.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def BumpTransaction(self, request, context):
+ """
+ Increase the fee of a transaction using RBF.
+ The transaction has to belong to one of the clients wallets.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def GetWalletCredentials(self, request, context):
"""
Returns the credentials of a wallet. The password will be required if the wallet is encrypted.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def RemoveWallet(self, request, context):
"""
Removes a wallet.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def WalletSend(self, request, context):
+ """
+ Send coins from a wallet. Only the confirmed balance can be spent.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def WalletReceive(self, request, context):
+ """
+ Get a new address of the wallet.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def Stop(self, request, context):
"""
Gracefully stops the daemon.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def Unlock(self, request, context):
"""
Unlocks the server. This will be required on startup if there are any encrypted wallets.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def VerifyWalletPassword(self, request, context):
"""
Check if the password is correct.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def ChangeWalletPassword(self, request, context):
"""
Changes the password for wallet encryption.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def CreateTenant(self, request, context):
"""
Creates a new tenant which can be used to bake restricted macaroons.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def ListTenants(self, request, context):
"""
Returns all tenants.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def GetTenant(self, request, context):
"""
Get a specifiy tenant.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def BakeMacaroon(self, request, context):
"""
@@ -494,198 +520,220 @@ class BoltzServicer(object):
- the lightning node connected to the daemon can not be used to pay or create invoices for swaps.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
- context.set_details("Method not implemented!")
- raise NotImplementedError("Method not implemented!")
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
def add_BoltzServicer_to_server(servicer, server):
rpc_method_handlers = {
- "GetInfo": grpc.unary_unary_rpc_method_handler(
- servicer.GetInfo,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetInfoRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetInfoResponse.SerializeToString,
- ),
- "GetServiceInfo": grpc.unary_unary_rpc_method_handler(
- servicer.GetServiceInfo,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetServiceInfoRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetServiceInfoResponse.SerializeToString,
- ),
- "GetPairInfo": grpc.unary_unary_rpc_method_handler(
- servicer.GetPairInfo,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetPairInfoRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.PairInfo.SerializeToString,
- ),
- "GetPairs": grpc.unary_unary_rpc_method_handler(
- servicer.GetPairs,
- request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetPairsResponse.SerializeToString,
- ),
- "ListSwaps": grpc.unary_unary_rpc_method_handler(
- servicer.ListSwaps,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ListSwapsRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ListSwapsResponse.SerializeToString,
- ),
- "GetStats": grpc.unary_unary_rpc_method_handler(
- servicer.GetStats,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetStatsRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetStatsResponse.SerializeToString,
- ),
- "RefundSwap": grpc.unary_unary_rpc_method_handler(
- servicer.RefundSwap,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.RefundSwapRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.SerializeToString,
- ),
- "ClaimSwaps": grpc.unary_unary_rpc_method_handler(
- servicer.ClaimSwaps,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ClaimSwapsRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ClaimSwapsResponse.SerializeToString,
- ),
- "GetSwapInfo": grpc.unary_unary_rpc_method_handler(
- servicer.GetSwapInfo,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.SerializeToString,
- ),
- "GetSwapInfoStream": grpc.unary_stream_rpc_method_handler(
- servicer.GetSwapInfoStream,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.SerializeToString,
- ),
- "Deposit": grpc.unary_unary_rpc_method_handler(
- servicer.Deposit,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.DepositRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.DepositResponse.SerializeToString,
- ),
- "CreateSwap": grpc.unary_unary_rpc_method_handler(
- servicer.CreateSwap,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapResponse.SerializeToString,
- ),
- "CreateChannel": grpc.unary_unary_rpc_method_handler(
- servicer.CreateChannel,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateChannelRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapResponse.SerializeToString,
- ),
- "CreateReverseSwap": grpc.unary_unary_rpc_method_handler(
- servicer.CreateReverseSwap,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateReverseSwapRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateReverseSwapResponse.SerializeToString,
- ),
- "CreateChainSwap": grpc.unary_unary_rpc_method_handler(
- servicer.CreateChainSwap,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateChainSwapRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ChainSwapInfo.SerializeToString,
- ),
- "CreateWallet": grpc.unary_unary_rpc_method_handler(
- servicer.CreateWallet,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateWalletRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateWalletResponse.SerializeToString,
- ),
- "ImportWallet": grpc.unary_unary_rpc_method_handler(
- servicer.ImportWallet,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ImportWalletRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Wallet.SerializeToString,
- ),
- "SetSubaccount": grpc.unary_unary_rpc_method_handler(
- servicer.SetSubaccount,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.SetSubaccountRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Subaccount.SerializeToString,
- ),
- "GetSubaccounts": grpc.unary_unary_rpc_method_handler(
- servicer.GetSubaccounts,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSubaccountsRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSubaccountsResponse.SerializeToString,
- ),
- "GetWallets": grpc.unary_unary_rpc_method_handler(
- servicer.GetWallets,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetWalletsRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Wallets.SerializeToString,
- ),
- "GetWallet": grpc.unary_unary_rpc_method_handler(
- servicer.GetWallet,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetWalletRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Wallet.SerializeToString,
- ),
- "GetWalletCredentials": grpc.unary_unary_rpc_method_handler(
- servicer.GetWalletCredentials,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetWalletCredentialsRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.WalletCredentials.SerializeToString,
- ),
- "RemoveWallet": grpc.unary_unary_rpc_method_handler(
- servicer.RemoveWallet,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.RemoveWalletRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.RemoveWalletResponse.SerializeToString,
- ),
- "Stop": grpc.unary_unary_rpc_method_handler(
- servicer.Stop,
- request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
- response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
- ),
- "Unlock": grpc.unary_unary_rpc_method_handler(
- servicer.Unlock,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.UnlockRequest.FromString,
- response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
- ),
- "VerifyWalletPassword": grpc.unary_unary_rpc_method_handler(
- servicer.VerifyWalletPassword,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.VerifyWalletPasswordRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.VerifyWalletPasswordResponse.SerializeToString,
- ),
- "ChangeWalletPassword": grpc.unary_unary_rpc_method_handler(
- servicer.ChangeWalletPassword,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ChangeWalletPasswordRequest.FromString,
- response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
- ),
- "CreateTenant": grpc.unary_unary_rpc_method_handler(
- servicer.CreateTenant,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateTenantRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Tenant.SerializeToString,
- ),
- "ListTenants": grpc.unary_unary_rpc_method_handler(
- servicer.ListTenants,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ListTenantsRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ListTenantsResponse.SerializeToString,
- ),
- "GetTenant": grpc.unary_unary_rpc_method_handler(
- servicer.GetTenant,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetTenantRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Tenant.SerializeToString,
- ),
- "BakeMacaroon": grpc.unary_unary_rpc_method_handler(
- servicer.BakeMacaroon,
- request_deserializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.BakeMacaroonRequest.FromString,
- response_serializer=lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.BakeMacaroonResponse.SerializeToString,
- ),
+ 'GetInfo': grpc.unary_unary_rpc_method_handler(
+ servicer.GetInfo,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetInfoRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetInfoResponse.SerializeToString,
+ ),
+ 'GetServiceInfo': grpc.unary_unary_rpc_method_handler(
+ servicer.GetServiceInfo,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetServiceInfoRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetServiceInfoResponse.SerializeToString,
+ ),
+ 'GetPairInfo': grpc.unary_unary_rpc_method_handler(
+ servicer.GetPairInfo,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetPairInfoRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.PairInfo.SerializeToString,
+ ),
+ 'GetPairs': grpc.unary_unary_rpc_method_handler(
+ servicer.GetPairs,
+ request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetPairsResponse.SerializeToString,
+ ),
+ 'ListSwaps': grpc.unary_unary_rpc_method_handler(
+ servicer.ListSwaps,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.ListSwapsRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.ListSwapsResponse.SerializeToString,
+ ),
+ 'GetStats': grpc.unary_unary_rpc_method_handler(
+ servicer.GetStats,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetStatsRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetStatsResponse.SerializeToString,
+ ),
+ 'RefundSwap': grpc.unary_unary_rpc_method_handler(
+ servicer.RefundSwap,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.RefundSwapRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.SerializeToString,
+ ),
+ 'ClaimSwaps': grpc.unary_unary_rpc_method_handler(
+ servicer.ClaimSwaps,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.ClaimSwapsRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.ClaimSwapsResponse.SerializeToString,
+ ),
+ 'GetSwapInfo': grpc.unary_unary_rpc_method_handler(
+ servicer.GetSwapInfo,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.SerializeToString,
+ ),
+ 'GetSwapInfoStream': grpc.unary_stream_rpc_method_handler(
+ servicer.GetSwapInfoStream,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.SerializeToString,
+ ),
+ 'Deposit': grpc.unary_unary_rpc_method_handler(
+ servicer.Deposit,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.DepositRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.DepositResponse.SerializeToString,
+ ),
+ 'CreateSwap': grpc.unary_unary_rpc_method_handler(
+ servicer.CreateSwap,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapResponse.SerializeToString,
+ ),
+ 'CreateChannel': grpc.unary_unary_rpc_method_handler(
+ servicer.CreateChannel,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateChannelRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapResponse.SerializeToString,
+ ),
+ 'CreateReverseSwap': grpc.unary_unary_rpc_method_handler(
+ servicer.CreateReverseSwap,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateReverseSwapRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateReverseSwapResponse.SerializeToString,
+ ),
+ 'CreateChainSwap': grpc.unary_unary_rpc_method_handler(
+ servicer.CreateChainSwap,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateChainSwapRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.ChainSwapInfo.SerializeToString,
+ ),
+ 'CreateWallet': grpc.unary_unary_rpc_method_handler(
+ servicer.CreateWallet,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateWalletRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateWalletResponse.SerializeToString,
+ ),
+ 'ImportWallet': grpc.unary_unary_rpc_method_handler(
+ servicer.ImportWallet,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.ImportWalletRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.Wallet.SerializeToString,
+ ),
+ 'SetSubaccount': grpc.unary_unary_rpc_method_handler(
+ servicer.SetSubaccount,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.SetSubaccountRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.Subaccount.SerializeToString,
+ ),
+ 'GetSubaccounts': grpc.unary_unary_rpc_method_handler(
+ servicer.GetSubaccounts,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetSubaccountsRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.GetSubaccountsResponse.SerializeToString,
+ ),
+ 'GetWallets': grpc.unary_unary_rpc_method_handler(
+ servicer.GetWallets,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetWalletsRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.Wallets.SerializeToString,
+ ),
+ 'GetWallet': grpc.unary_unary_rpc_method_handler(
+ servicer.GetWallet,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetWalletRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.Wallet.SerializeToString,
+ ),
+ 'GetWalletSendFee': grpc.unary_unary_rpc_method_handler(
+ servicer.GetWalletSendFee,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.WalletSendRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.WalletSendFee.SerializeToString,
+ ),
+ 'ListWalletTransactions': grpc.unary_unary_rpc_method_handler(
+ servicer.ListWalletTransactions,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.ListWalletTransactionsRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.ListWalletTransactionsResponse.SerializeToString,
+ ),
+ 'BumpTransaction': grpc.unary_unary_rpc_method_handler(
+ servicer.BumpTransaction,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.BumpTransactionRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.BumpTransactionResponse.SerializeToString,
+ ),
+ 'GetWalletCredentials': grpc.unary_unary_rpc_method_handler(
+ servicer.GetWalletCredentials,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetWalletCredentialsRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.WalletCredentials.SerializeToString,
+ ),
+ 'RemoveWallet': grpc.unary_unary_rpc_method_handler(
+ servicer.RemoveWallet,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.RemoveWalletRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.RemoveWalletResponse.SerializeToString,
+ ),
+ 'WalletSend': grpc.unary_unary_rpc_method_handler(
+ servicer.WalletSend,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.WalletSendRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.WalletSendResponse.SerializeToString,
+ ),
+ 'WalletReceive': grpc.unary_unary_rpc_method_handler(
+ servicer.WalletReceive,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.WalletReceiveRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.WalletReceiveResponse.SerializeToString,
+ ),
+ 'Stop': grpc.unary_unary_rpc_method_handler(
+ servicer.Stop,
+ request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
+ response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
+ ),
+ 'Unlock': grpc.unary_unary_rpc_method_handler(
+ servicer.Unlock,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.UnlockRequest.FromString,
+ response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
+ ),
+ 'VerifyWalletPassword': grpc.unary_unary_rpc_method_handler(
+ servicer.VerifyWalletPassword,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.VerifyWalletPasswordRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.VerifyWalletPasswordResponse.SerializeToString,
+ ),
+ 'ChangeWalletPassword': grpc.unary_unary_rpc_method_handler(
+ servicer.ChangeWalletPassword,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.ChangeWalletPasswordRequest.FromString,
+ response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
+ ),
+ 'CreateTenant': grpc.unary_unary_rpc_method_handler(
+ servicer.CreateTenant,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.CreateTenantRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.Tenant.SerializeToString,
+ ),
+ 'ListTenants': grpc.unary_unary_rpc_method_handler(
+ servicer.ListTenants,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.ListTenantsRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.ListTenantsResponse.SerializeToString,
+ ),
+ 'GetTenant': grpc.unary_unary_rpc_method_handler(
+ servicer.GetTenant,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.GetTenantRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.Tenant.SerializeToString,
+ ),
+ 'BakeMacaroon': grpc.unary_unary_rpc_method_handler(
+ servicer.BakeMacaroon,
+ request_deserializer=boltz__grpc__files_dot_boltzrpc__pb2.BakeMacaroonRequest.FromString,
+ response_serializer=boltz__grpc__files_dot_boltzrpc__pb2.BakeMacaroonResponse.SerializeToString,
+ ),
}
generic_handler = grpc.method_handlers_generic_handler(
- "boltzrpc.Boltz", rpc_method_handlers
- )
+ 'boltzrpc.Boltz', rpc_method_handlers)
server.add_generic_rpc_handlers((generic_handler,))
- server.add_registered_method_handlers("boltzrpc.Boltz", rpc_method_handlers)
+ server.add_registered_method_handlers('boltzrpc.Boltz', rpc_method_handlers)
-# This class is part of an EXPERIMENTAL API.
+ # This class is part of an EXPERIMENTAL API.
class Boltz(object):
"""Missing associated documentation comment in .proto file."""
@staticmethod
- def GetInfo(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def GetInfo(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/GetInfo",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetInfoRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetInfoResponse.FromString,
+ '/boltzrpc.Boltz/GetInfo',
+ boltz__grpc__files_dot_boltzrpc__pb2.GetInfoRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.GetInfoResponse.FromString,
options,
channel_credentials,
insecure,
@@ -694,28 +742,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def GetServiceInfo(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def GetServiceInfo(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/GetServiceInfo",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetServiceInfoRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetServiceInfoResponse.FromString,
+ '/boltzrpc.Boltz/GetServiceInfo',
+ boltz__grpc__files_dot_boltzrpc__pb2.GetServiceInfoRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.GetServiceInfoResponse.FromString,
options,
channel_credentials,
insecure,
@@ -724,28 +769,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def GetPairInfo(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def GetPairInfo(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/GetPairInfo",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetPairInfoRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.PairInfo.FromString,
+ '/boltzrpc.Boltz/GetPairInfo',
+ boltz__grpc__files_dot_boltzrpc__pb2.GetPairInfoRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.PairInfo.FromString,
options,
channel_credentials,
insecure,
@@ -754,28 +796,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def GetPairs(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def GetPairs(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/GetPairs",
+ '/boltzrpc.Boltz/GetPairs',
google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetPairsResponse.FromString,
+ boltz__grpc__files_dot_boltzrpc__pb2.GetPairsResponse.FromString,
options,
channel_credentials,
insecure,
@@ -784,28 +823,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def ListSwaps(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def ListSwaps(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/ListSwaps",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ListSwapsRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ListSwapsResponse.FromString,
+ '/boltzrpc.Boltz/ListSwaps',
+ boltz__grpc__files_dot_boltzrpc__pb2.ListSwapsRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.ListSwapsResponse.FromString,
options,
channel_credentials,
insecure,
@@ -814,28 +850,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def GetStats(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def GetStats(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/GetStats",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetStatsRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetStatsResponse.FromString,
+ '/boltzrpc.Boltz/GetStats',
+ boltz__grpc__files_dot_boltzrpc__pb2.GetStatsRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.GetStatsResponse.FromString,
options,
channel_credentials,
insecure,
@@ -844,28 +877,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def RefundSwap(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def RefundSwap(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/RefundSwap",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.RefundSwapRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.FromString,
+ '/boltzrpc.Boltz/RefundSwap',
+ boltz__grpc__files_dot_boltzrpc__pb2.RefundSwapRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.FromString,
options,
channel_credentials,
insecure,
@@ -874,28 +904,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def ClaimSwaps(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def ClaimSwaps(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/ClaimSwaps",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ClaimSwapsRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ClaimSwapsResponse.FromString,
+ '/boltzrpc.Boltz/ClaimSwaps',
+ boltz__grpc__files_dot_boltzrpc__pb2.ClaimSwapsRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.ClaimSwapsResponse.FromString,
options,
channel_credentials,
insecure,
@@ -904,28 +931,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def GetSwapInfo(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def GetSwapInfo(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/GetSwapInfo",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.FromString,
+ '/boltzrpc.Boltz/GetSwapInfo',
+ boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.FromString,
options,
channel_credentials,
insecure,
@@ -934,28 +958,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def GetSwapInfoStream(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def GetSwapInfoStream(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_stream(
request,
target,
- "/boltzrpc.Boltz/GetSwapInfoStream",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.FromString,
+ '/boltzrpc.Boltz/GetSwapInfoStream',
+ boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.GetSwapInfoResponse.FromString,
options,
channel_credentials,
insecure,
@@ -964,28 +985,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def Deposit(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def Deposit(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/Deposit",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.DepositRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.DepositResponse.FromString,
+ '/boltzrpc.Boltz/Deposit',
+ boltz__grpc__files_dot_boltzrpc__pb2.DepositRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.DepositResponse.FromString,
options,
channel_credentials,
insecure,
@@ -994,28 +1012,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def CreateSwap(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def CreateSwap(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/CreateSwap",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapResponse.FromString,
+ '/boltzrpc.Boltz/CreateSwap',
+ boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapResponse.FromString,
options,
channel_credentials,
insecure,
@@ -1024,28 +1039,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def CreateChannel(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def CreateChannel(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/CreateChannel",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateChannelRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapResponse.FromString,
+ '/boltzrpc.Boltz/CreateChannel',
+ boltz__grpc__files_dot_boltzrpc__pb2.CreateChannelRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.CreateSwapResponse.FromString,
options,
channel_credentials,
insecure,
@@ -1054,28 +1066,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def CreateReverseSwap(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def CreateReverseSwap(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/CreateReverseSwap",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateReverseSwapRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateReverseSwapResponse.FromString,
+ '/boltzrpc.Boltz/CreateReverseSwap',
+ boltz__grpc__files_dot_boltzrpc__pb2.CreateReverseSwapRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.CreateReverseSwapResponse.FromString,
options,
channel_credentials,
insecure,
@@ -1084,28 +1093,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def CreateChainSwap(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def CreateChainSwap(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/CreateChainSwap",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateChainSwapRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ChainSwapInfo.FromString,
+ '/boltzrpc.Boltz/CreateChainSwap',
+ boltz__grpc__files_dot_boltzrpc__pb2.CreateChainSwapRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.ChainSwapInfo.FromString,
options,
channel_credentials,
insecure,
@@ -1114,28 +1120,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def CreateWallet(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def CreateWallet(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/CreateWallet",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateWalletRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateWalletResponse.FromString,
+ '/boltzrpc.Boltz/CreateWallet',
+ boltz__grpc__files_dot_boltzrpc__pb2.CreateWalletRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.CreateWalletResponse.FromString,
options,
channel_credentials,
insecure,
@@ -1144,28 +1147,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def ImportWallet(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def ImportWallet(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/ImportWallet",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ImportWalletRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Wallet.FromString,
+ '/boltzrpc.Boltz/ImportWallet',
+ boltz__grpc__files_dot_boltzrpc__pb2.ImportWalletRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.Wallet.FromString,
options,
channel_credentials,
insecure,
@@ -1174,28 +1174,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def SetSubaccount(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def SetSubaccount(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/SetSubaccount",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.SetSubaccountRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Subaccount.FromString,
+ '/boltzrpc.Boltz/SetSubaccount',
+ boltz__grpc__files_dot_boltzrpc__pb2.SetSubaccountRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.Subaccount.FromString,
options,
channel_credentials,
insecure,
@@ -1204,28 +1201,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def GetSubaccounts(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def GetSubaccounts(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/GetSubaccounts",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSubaccountsRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetSubaccountsResponse.FromString,
+ '/boltzrpc.Boltz/GetSubaccounts',
+ boltz__grpc__files_dot_boltzrpc__pb2.GetSubaccountsRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.GetSubaccountsResponse.FromString,
options,
channel_credentials,
insecure,
@@ -1234,28 +1228,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def GetWallets(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def GetWallets(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/GetWallets",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetWalletsRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Wallets.FromString,
+ '/boltzrpc.Boltz/GetWallets',
+ boltz__grpc__files_dot_boltzrpc__pb2.GetWalletsRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.Wallets.FromString,
options,
channel_credentials,
insecure,
@@ -1264,28 +1255,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def GetWallet(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def GetWallet(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/GetWallet",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetWalletRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Wallet.FromString,
+ '/boltzrpc.Boltz/GetWallet',
+ boltz__grpc__files_dot_boltzrpc__pb2.GetWalletRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.Wallet.FromString,
options,
channel_credentials,
insecure,
@@ -1294,28 +1282,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def GetWalletCredentials(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def GetWalletSendFee(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/GetWalletCredentials",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetWalletCredentialsRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.WalletCredentials.FromString,
+ '/boltzrpc.Boltz/GetWalletSendFee',
+ boltz__grpc__files_dot_boltzrpc__pb2.WalletSendRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.WalletSendFee.FromString,
options,
channel_credentials,
insecure,
@@ -1324,28 +1309,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def RemoveWallet(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def ListWalletTransactions(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/RemoveWallet",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.RemoveWalletRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.RemoveWalletResponse.FromString,
+ '/boltzrpc.Boltz/ListWalletTransactions',
+ boltz__grpc__files_dot_boltzrpc__pb2.ListWalletTransactionsRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.ListWalletTransactionsResponse.FromString,
options,
channel_credentials,
insecure,
@@ -1354,26 +1336,158 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def Stop(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def BumpTransaction(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/Stop",
+ '/boltzrpc.Boltz/BumpTransaction',
+ boltz__grpc__files_dot_boltzrpc__pb2.BumpTransactionRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.BumpTransactionResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def GetWalletCredentials(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/boltzrpc.Boltz/GetWalletCredentials',
+ boltz__grpc__files_dot_boltzrpc__pb2.GetWalletCredentialsRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.WalletCredentials.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def RemoveWallet(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/boltzrpc.Boltz/RemoveWallet',
+ boltz__grpc__files_dot_boltzrpc__pb2.RemoveWalletRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.RemoveWalletResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def WalletSend(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/boltzrpc.Boltz/WalletSend',
+ boltz__grpc__files_dot_boltzrpc__pb2.WalletSendRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.WalletSendResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def WalletReceive(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/boltzrpc.Boltz/WalletReceive',
+ boltz__grpc__files_dot_boltzrpc__pb2.WalletReceiveRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.WalletReceiveResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ _registered_method=True)
+
+ @staticmethod
+ def Stop(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ '/boltzrpc.Boltz/Stop',
google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
google_dot_protobuf_dot_empty__pb2.Empty.FromString,
options,
@@ -1384,27 +1498,24 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def Unlock(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def Unlock(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/Unlock",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.UnlockRequest.SerializeToString,
+ '/boltzrpc.Boltz/Unlock',
+ boltz__grpc__files_dot_boltzrpc__pb2.UnlockRequest.SerializeToString,
google_dot_protobuf_dot_empty__pb2.Empty.FromString,
options,
channel_credentials,
@@ -1414,28 +1525,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def VerifyWalletPassword(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def VerifyWalletPassword(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/VerifyWalletPassword",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.VerifyWalletPasswordRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.VerifyWalletPasswordResponse.FromString,
+ '/boltzrpc.Boltz/VerifyWalletPassword',
+ boltz__grpc__files_dot_boltzrpc__pb2.VerifyWalletPasswordRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.VerifyWalletPasswordResponse.FromString,
options,
channel_credentials,
insecure,
@@ -1444,27 +1552,24 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def ChangeWalletPassword(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def ChangeWalletPassword(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/ChangeWalletPassword",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ChangeWalletPasswordRequest.SerializeToString,
+ '/boltzrpc.Boltz/ChangeWalletPassword',
+ boltz__grpc__files_dot_boltzrpc__pb2.ChangeWalletPasswordRequest.SerializeToString,
google_dot_protobuf_dot_empty__pb2.Empty.FromString,
options,
channel_credentials,
@@ -1474,28 +1579,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def CreateTenant(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def CreateTenant(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/CreateTenant",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.CreateTenantRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Tenant.FromString,
+ '/boltzrpc.Boltz/CreateTenant',
+ boltz__grpc__files_dot_boltzrpc__pb2.CreateTenantRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.Tenant.FromString,
options,
channel_credentials,
insecure,
@@ -1504,28 +1606,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def ListTenants(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def ListTenants(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/ListTenants",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ListTenantsRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.ListTenantsResponse.FromString,
+ '/boltzrpc.Boltz/ListTenants',
+ boltz__grpc__files_dot_boltzrpc__pb2.ListTenantsRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.ListTenantsResponse.FromString,
options,
channel_credentials,
insecure,
@@ -1534,28 +1633,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def GetTenant(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def GetTenant(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/GetTenant",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.GetTenantRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.Tenant.FromString,
+ '/boltzrpc.Boltz/GetTenant',
+ boltz__grpc__files_dot_boltzrpc__pb2.GetTenantRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.Tenant.FromString,
options,
channel_credentials,
insecure,
@@ -1564,28 +1660,25 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
@staticmethod
- def BakeMacaroon(
- request,
- target,
- options=(),
- channel_credentials=None,
- call_credentials=None,
- insecure=False,
- compression=None,
- wait_for_ready=None,
- timeout=None,
- metadata=None,
- ):
+ def BakeMacaroon(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
return grpc.experimental.unary_unary(
request,
target,
- "/boltzrpc.Boltz/BakeMacaroon",
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.BakeMacaroonRequest.SerializeToString,
- lnbits_dot_wallets_dot_boltz__grpc__files_dot_boltzrpc__pb2.BakeMacaroonResponse.FromString,
+ '/boltzrpc.Boltz/BakeMacaroon',
+ boltz__grpc__files_dot_boltzrpc__pb2.BakeMacaroonRequest.SerializeToString,
+ boltz__grpc__files_dot_boltzrpc__pb2.BakeMacaroonResponse.FromString,
options,
channel_credentials,
insecure,
@@ -1594,5 +1687,4 @@ class Boltz(object):
wait_for_ready,
timeout,
metadata,
- _registered_method=True,
- )
+ _registered_method=True)
diff --git a/lnbits/wallets/boltz_grpc_files/update.sh b/lnbits/wallets/boltz_grpc_files/update.sh
index 7998248a..9b99525c 100755
--- a/lnbits/wallets/boltz_grpc_files/update.sh
+++ b/lnbits/wallets/boltz_grpc_files/update.sh
@@ -1,3 +1,3 @@
-wget https://raw.githubusercontent.com/BoltzExchange/boltz-client/master/boltzrpc/boltzrpc.proto -O lnbits/wallets/boltz_grpc_files/boltzrpc.proto
-poetry run python -m grpc_tools.protoc -I . --python_out=. --grpc_python_out=. --pyi_out=. lnbits/wallets/boltz_grpc_files/boltzrpc.proto
+wget https://raw.githubusercontent.com/BoltzExchange/boltz-client/refs/heads/master/pkg/boltzrpc/boltzrpc.proto -O boltz_grpc_files/boltzrpc.proto
+poetry run python -m grpc_tools.protoc -I . --python_out=. --grpc_python_out=. --pyi_out=. boltz_grpc_files/boltzrpc.proto
diff --git a/poetry.lock b/poetry.lock
index 87f9f956..1ed6a242 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -2216,23 +2216,23 @@ virtualenv = ">=20.10.0"
[[package]]
name = "protobuf"
-version = "5.28.0"
+version = "5.29.1"
description = ""
optional = false
python-versions = ">=3.8"
groups = ["main", "dev"]
files = [
- {file = "protobuf-5.28.0-cp310-abi3-win32.whl", hash = "sha256:66c3edeedb774a3508ae70d87b3a19786445fe9a068dd3585e0cefa8a77b83d0"},
- {file = "protobuf-5.28.0-cp310-abi3-win_amd64.whl", hash = "sha256:6d7cc9e60f976cf3e873acb9a40fed04afb5d224608ed5c1a105db4a3f09c5b6"},
- {file = "protobuf-5.28.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:532627e8fdd825cf8767a2d2b94d77e874d5ddb0adefb04b237f7cc296748681"},
- {file = "protobuf-5.28.0-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:018db9056b9d75eb93d12a9d35120f97a84d9a919bcab11ed56ad2d399d6e8dd"},
- {file = "protobuf-5.28.0-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:6206afcb2d90181ae8722798dcb56dc76675ab67458ac24c0dd7d75d632ac9bd"},
- {file = "protobuf-5.28.0-cp38-cp38-win32.whl", hash = "sha256:eef7a8a2f4318e2cb2dee8666d26e58eaf437c14788f3a2911d0c3da40405ae8"},
- {file = "protobuf-5.28.0-cp38-cp38-win_amd64.whl", hash = "sha256:d001a73c8bc2bf5b5c1360d59dd7573744e163b3607fa92788b7f3d5fefbd9a5"},
- {file = "protobuf-5.28.0-cp39-cp39-win32.whl", hash = "sha256:dde9fcaa24e7a9654f4baf2a55250b13a5ea701493d904c54069776b99a8216b"},
- {file = "protobuf-5.28.0-cp39-cp39-win_amd64.whl", hash = "sha256:853db610214e77ee817ecf0514e0d1d052dff7f63a0c157aa6eabae98db8a8de"},
- {file = "protobuf-5.28.0-py3-none-any.whl", hash = "sha256:510ed78cd0980f6d3218099e874714cdf0d8a95582e7b059b06cabad855ed0a0"},
- {file = "protobuf-5.28.0.tar.gz", hash = "sha256:dde74af0fa774fa98892209992295adbfb91da3fa98c8f67a88afe8f5a349add"},
+ {file = "protobuf-5.29.1-cp310-abi3-win32.whl", hash = "sha256:22c1f539024241ee545cbcb00ee160ad1877975690b16656ff87dde107b5f110"},
+ {file = "protobuf-5.29.1-cp310-abi3-win_amd64.whl", hash = "sha256:1fc55267f086dd4050d18ef839d7bd69300d0d08c2a53ca7df3920cc271a3c34"},
+ {file = "protobuf-5.29.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:d473655e29c0c4bbf8b69e9a8fb54645bc289dead6d753b952e7aa660254ae18"},
+ {file = "protobuf-5.29.1-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:b5ba1d0e4c8a40ae0496d0e2ecfdbb82e1776928a205106d14ad6985a09ec155"},
+ {file = "protobuf-5.29.1-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:8ee1461b3af56145aca2800e6a3e2f928108c749ba8feccc6f5dd0062c410c0d"},
+ {file = "protobuf-5.29.1-cp38-cp38-win32.whl", hash = "sha256:50879eb0eb1246e3a5eabbbe566b44b10348939b7cc1b267567e8c3d07213853"},
+ {file = "protobuf-5.29.1-cp38-cp38-win_amd64.whl", hash = "sha256:027fbcc48cea65a6b17028510fdd054147057fa78f4772eb547b9274e5219331"},
+ {file = "protobuf-5.29.1-cp39-cp39-win32.whl", hash = "sha256:5a41deccfa5e745cef5c65a560c76ec0ed8e70908a67cc8f4da5fce588b50d57"},
+ {file = "protobuf-5.29.1-cp39-cp39-win_amd64.whl", hash = "sha256:012ce28d862ff417fd629285aca5d9772807f15ceb1a0dbd15b88f58c776c98c"},
+ {file = "protobuf-5.29.1-py3-none-any.whl", hash = "sha256:32600ddb9c2a53dedc25b8581ea0f1fd8ea04956373c0c07577ce58d312522e0"},
+ {file = "protobuf-5.29.1.tar.gz", hash = "sha256:683be02ca21a6ffe80db6dd02c0b5b2892322c59ca57fd6c872d652cb80549cb"},
]
[[package]]
@@ -3747,4 +3747,4 @@ liquid = ["wallycore"]
[metadata]
lock-version = "2.1"
python-versions = "~3.12 | ~3.11 | ~3.10"
-content-hash = "9259359a900bdf58e224f8e0e8cedd54dfb256a126baa0e3d0262a15ccc4d768"
+content-hash = "8a345c03b3103cce8b278612308d7aa787dda35fc1bfece6d22cc858f618f527"
diff --git a/pyproject.toml b/pyproject.toml
index a50e56e6..59932161 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -33,7 +33,7 @@ uvloop = "0.21.0"
websockets = "11.0.3"
loguru = "0.7.2"
grpcio = "1.69.0"
-protobuf = "5.28.0"
+protobuf = "5.29.1"
pyln-client = "24.11"
pywebpush = "1.14.1"
slowapi = "0.1.9"