From 659ec31edd5089306d61ea98579eb2c6031dfc5f Mon Sep 17 00:00:00 2001 From: Arc <33088785+arcbtc@users.noreply.github.com> Date: Wed, 25 Jun 2025 11:20:46 +0100 Subject: [PATCH] CI: lnbits-boltz docker, for those who want instant payments + boltz funding source UX tweak (#3192) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: jackstar12 <62219658+jackstar12@users.noreply.github.com> Co-authored-by: Vlad Stan Co-authored-by: dni ⚡ --- .env.example | 6 +- .github/workflows/docker.yml | 11 + Dockerfile.boltz | 30 + dockerboltz.sh | 26 + lnbits/settings.py | 2 + lnbits/static/bundle-components.min.js | 2 +- .../js/components/lnbits-funding-sources.js | 18 +- lnbits/templates/components.vue | 29 + lnbits/wallets/boltz.py | 53 +- .../wallets/boltz_grpc_files/boltzrpc.proto | 218 +- .../wallets/boltz_grpc_files/boltzrpc_pb2.py | 425 ++-- .../wallets/boltz_grpc_files/boltzrpc_pb2.pyi | 806 +++---- .../boltz_grpc_files/boltzrpc_pb2_grpc.py | 1926 +++++++++-------- lnbits/wallets/boltz_grpc_files/update.sh | 4 +- poetry.lock | 26 +- pyproject.toml | 2 +- 16 files changed, 1877 insertions(+), 1707 deletions(-) create mode 100644 Dockerfile.boltz create mode 100644 dockerboltz.sh 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"