From 91d67ab4ee1234d9945a7188dfa8b10d93aaed81 Mon Sep 17 00:00:00 2001 From: hatim boufnichel Date: Sat, 19 Nov 2022 23:02:05 +0100 Subject: [PATCH] lnurl withdraw + lnurl pay --- example.env | 1 + package-lock.json | 421 + package.json | 9 +- proto/autogenerated/debug.txt | 882 +- proto/autogenerated/ts/express_server.ts | 89 +- proto/autogenerated/ts/http_client.ts | 171 +- proto/autogenerated/ts/types.ts | 633 +- proto/lnd/invoices.client.d.ts | 122 - proto/lnd/invoices.client.js | 76 - proto/lnd/invoices.client.ts | 20 +- proto/lnd/invoices.d.ts | 318 - proto/lnd/invoices.js | 495 - proto/lnd/invoices.ts | 4 +- proto/lnd/lightning.client.d.ts | 1481 -- proto/lnd/lightning.client.js | 901 - proto/lnd/lightning.client.ts | 248 +- proto/lnd/lightning.d.ts | 9340 ---------- proto/lnd/lightning.js | 14457 ---------------- proto/lnd/router.client.d.ts | 390 - proto/lnd/router.client.js | 238 - proto/lnd/router.client.ts | 62 +- proto/lnd/router.d.ts | 1649 -- proto/lnd/router.js | 2519 --- proto/lnd/router.ts | 16 +- proto/protoc-gen-pub.exe | Bin 8686592 -> 8686592 bytes proto/service/methods.proto | 33 +- proto/service/structs.proto | 61 +- src/index.spec.ts | 37 +- src/nostrMiddleware.ts | 31 +- src/services/lnd/index.spec.ts | 3 +- src/services/lnd/index.ts | 8 +- src/services/main/index.ts | 105 +- src/services/nostr/handler.ts | 124 + src/services/nostr/index.spec.ts | 33 +- src/services/nostr/index.ts | 79 +- src/services/serverMethods/index.ts | 47 +- src/services/storage/db.ts | 3 +- .../entity/AddressReceivingTransaction.ts | 5 +- src/services/storage/entity/UserBasicAuth.ts | 5 +- .../storage/entity/UserEphemeralKey.ts | 20 + .../storage/entity/UserInvoicePayment.ts | 5 +- src/services/storage/entity/UserNostrAuth.ts | 5 +- .../storage/entity/UserReceivingAddress.ts | 5 +- .../storage/entity/UserReceivingInvoice.ts | 5 +- .../storage/entity/UserTransactionPayment.ts | 5 +- src/services/storage/index.ts | 22 + src/test.ts | 1 - testRunner.ts => src/testRunner.ts | 8 +- 48 files changed, 2287 insertions(+), 32905 deletions(-) delete mode 100644 proto/lnd/invoices.client.d.ts delete mode 100644 proto/lnd/invoices.client.js delete mode 100644 proto/lnd/invoices.d.ts delete mode 100644 proto/lnd/invoices.js delete mode 100644 proto/lnd/lightning.client.d.ts delete mode 100644 proto/lnd/lightning.client.js delete mode 100644 proto/lnd/lightning.d.ts delete mode 100644 proto/lnd/lightning.js delete mode 100644 proto/lnd/router.client.d.ts delete mode 100644 proto/lnd/router.client.js delete mode 100644 proto/lnd/router.d.ts delete mode 100644 proto/lnd/router.js create mode 100644 src/services/nostr/handler.ts create mode 100644 src/services/storage/entity/UserEphemeralKey.ts rename testRunner.ts => src/testRunner.ts (86%) diff --git a/example.env b/example.env index 8bdf0bf2..dcd65529 100644 --- a/example.env +++ b/example.env @@ -9,6 +9,7 @@ SERVICE_FEE_INCOMING_TX_PERCENT=0 SERVICE_FEE_OUTGOING_TX_PERCENT=0 SERVICE_FEE_INCOMING_INVOICE_PERCENT=0 SERVICE_FEE_OUTGOING_INVOICE_PERCENT=0 +SERVICE_URL=http://localhost:8080 NOSTR_PUBLIC_KEY= NOSTR_PRIVATE_KEY= NOSTR_RELAYS= diff --git a/package-lock.json b/package-lock.json index d93831db..18e3f115 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "@types/node": "^17.0.31", "@types/secp256k1": "^4.0.3", "axios": "^0.27.2", + "bech32": "^2.0.0", "chai": "^4.3.7", "copyfiles": "^2.4.1", "cors": "^2.8.5", @@ -48,6 +49,7 @@ "@types/lodash": "^4.14.182", "@types/node": "^16.11.10", "@types/uuid": "^8.3.4", + "nodemon": "^2.0.20", "ts-node": "10.7.0", "typescript": "4.5.2" } @@ -663,6 +665,19 @@ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/app-root-path": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", @@ -771,6 +786,20 @@ } ] }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -1018,6 +1047,33 @@ "node": "*" } }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -1733,6 +1789,20 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -2087,6 +2157,12 @@ "node": ">= 4" } }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -2139,6 +2215,18 @@ "node": ">= 0.10" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -2773,6 +2861,79 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/nodemon": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", + "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/noms": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", @@ -2796,6 +2957,15 @@ "node": ">=6" } }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/nostr-tools": { "version": "0.24.1", "resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-0.24.1.tgz", @@ -3125,6 +3295,12 @@ "node": ">= 0.10" } }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -3191,6 +3367,18 @@ "string_decoder": "~0.10.x" } }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/reflect-metadata": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", @@ -3414,6 +3602,27 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/simple-update-notifier": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz", + "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==", + "dev": true, + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", @@ -3676,6 +3885,33 @@ "node": ">=0.6" } }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/touch/node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -4041,6 +4277,12 @@ "node": ">=4.2.0" } }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, "node_modules/unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -4796,6 +5038,16 @@ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "app-root-path": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", @@ -4880,6 +5132,17 @@ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, + "bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -5078,6 +5341,22 @@ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==" }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -5658,6 +5937,13 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -5920,6 +6206,12 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -5963,6 +6255,15 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -6470,6 +6771,62 @@ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==" }, + "nodemon": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", + "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "dev": true, + "requires": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "noms": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", @@ -6487,6 +6844,12 @@ "abbrev": "1" } }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, "nostr-tools": { "version": "0.24.1", "resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-0.24.1.tgz", @@ -6743,6 +7106,12 @@ "ipaddr.js": "1.9.1" } }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, "qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -6783,6 +7152,15 @@ "string_decoder": "~0.10.x" } }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, "reflect-metadata": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", @@ -6942,6 +7320,23 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "simple-update-notifier": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz", + "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==", + "dev": true, + "requires": { + "semver": "~7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, "slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", @@ -7144,6 +7539,26 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "requires": { + "abbrev": "1" + } + } + } + }, "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -7363,6 +7778,12 @@ "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", "devOptional": true }, + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", diff --git a/package.json b/package.json index 99922485..46b800f0 100644 --- a/package.json +++ b/package.json @@ -4,12 +4,13 @@ "description": "", "main": "index.js", "scripts": { - "test": " ts-node testRunner.ts", - "start": "ts-node src/index.ts", + "test": " tsc && node build/src/testRunner.js", + "start": "tsc && cd build && node src/index.js", "build_autogenerated": "cd proto && rimraf autogenerated && protoc -I ./service --pub_out=. service/*", "build_lnd_client_1": "cd proto && protoc -I ./others --plugin=.\\node_modules\\.bin\\protoc-gen-ts_proto.cmd --ts_proto_out=./lnd --ts_proto_opt=esModuleInterop=true others/* ", "build_lnd_client": "cd proto && rimraf lnd/* && npx protoc --ts_out ./lnd --ts_opt long_type_string --proto_path others others/* ", - "typeorm": "typeorm-ts-node-commonjs" + "typeorm": "typeorm-ts-node-commonjs", + "aa": "tsc && cd build && node src/services/nostr/index.js" }, "repository": { "type": "git", @@ -31,6 +32,7 @@ "@types/node": "^17.0.31", "@types/secp256k1": "^4.0.3", "axios": "^0.27.2", + "bech32": "^2.0.0", "chai": "^4.3.7", "copyfiles": "^2.4.1", "cors": "^2.8.5", @@ -62,6 +64,7 @@ "@types/lodash": "^4.14.182", "@types/node": "^16.11.10", "@types/uuid": "^8.3.4", + "nodemon": "^2.0.20", "ts-node": "10.7.0", "typescript": "4.5.2" } diff --git a/proto/autogenerated/debug.txt b/proto/autogenerated/debug.txt index 0a3a5ab6..36cc8024 100644 --- a/proto/autogenerated/debug.txt +++ b/proto/autogenerated/debug.txt @@ -1,5 +1,5 @@ -([]*main.Method) (len=11 cap=16) { - (*main.Method)(0xc0002ba730)({ +([]*main.Method) (len=16 cap=16) { + (*main.Method)(0xc0002be730)({ in: (main.MethodMessage) { name: (string) (len=5) "Empty", hasZeroFields: (bool) true @@ -9,8 +9,8 @@ name: (string) (len=5) "Empty", hasZeroFields: (bool) true }, - opts: (*main.methodOptions)(0xc0003fc4e0)({ - authType: (*main.supportedAuth)(0xc00040c030)({ + opts: (*main.methodOptions)(0xc0002caa80)({ + authType: (*main.supportedAuth)(0xc000424780)({ id: (string) (len=5) "guest", name: (string) (len=5) "Guest", encrypted: (bool) false, @@ -25,7 +25,7 @@ query: ([]string) }) }), - (*main.Method)(0xc0002ba780)({ + (*main.Method)(0xc0002be780)({ in: (main.MethodMessage) { name: (string) (len=25) "EncryptionExchangeRequest", hasZeroFields: (bool) false @@ -35,8 +35,8 @@ name: (string) (len=5) "Empty", hasZeroFields: (bool) true }, - opts: (*main.methodOptions)(0xc0003fc660)({ - authType: (*main.supportedAuth)(0xc00040c120)({ + opts: (*main.methodOptions)(0xc0002cac00)({ + authType: (*main.supportedAuth)(0xc000424870)({ id: (string) (len=5) "guest", name: (string) (len=5) "Guest", encrypted: (bool) false, @@ -51,7 +51,7 @@ query: ([]string) }) }), - (*main.Method)(0xc0002ba7d0)({ + (*main.Method)(0xc0002be7d0)({ in: (main.MethodMessage) { name: (string) (len=17) "LndGetInfoRequest", hasZeroFields: (bool) false @@ -61,8 +61,8 @@ name: (string) (len=18) "LndGetInfoResponse", hasZeroFields: (bool) false }, - opts: (*main.methodOptions)(0xc0003fc7e0)({ - authType: (*main.supportedAuth)(0xc00040c1e0)({ + opts: (*main.methodOptions)(0xc0002cad80)({ + authType: (*main.supportedAuth)(0xc000424930)({ id: (string) (len=5) "admin", name: (string) (len=5) "Admin", encrypted: (bool) true, @@ -78,7 +78,7 @@ query: ([]string) }) }), - (*main.Method)(0xc0002ba820)({ + (*main.Method)(0xc0002be820)({ in: (main.MethodMessage) { name: (string) (len=14) "AddUserRequest", hasZeroFields: (bool) false @@ -88,8 +88,8 @@ name: (string) (len=15) "AddUserResponse", hasZeroFields: (bool) false }, - opts: (*main.methodOptions)(0xc0003fc960)({ - authType: (*main.supportedAuth)(0xc00040c2a0)({ + opts: (*main.methodOptions)(0xc0002caf00)({ + authType: (*main.supportedAuth)(0xc0004249f0)({ id: (string) (len=5) "guest", name: (string) (len=5) "Guest", encrypted: (bool) false, @@ -104,7 +104,7 @@ query: ([]string) }) }), - (*main.Method)(0xc0002ba870)({ + (*main.Method)(0xc0002be870)({ in: (main.MethodMessage) { name: (string) (len=15) "AuthUserRequest", hasZeroFields: (bool) false @@ -114,8 +114,8 @@ name: (string) (len=16) "AuthUserResponse", hasZeroFields: (bool) false }, - opts: (*main.methodOptions)(0xc0003fcae0)({ - authType: (*main.supportedAuth)(0xc00040c360)({ + opts: (*main.methodOptions)(0xc0002cb080)({ + authType: (*main.supportedAuth)(0xc000424ab0)({ id: (string) (len=5) "guest", name: (string) (len=5) "Guest", encrypted: (bool) false, @@ -130,7 +130,7 @@ query: ([]string) }) }), - (*main.Method)(0xc0002ba910)({ + (*main.Method)(0xc0002be910)({ in: (main.MethodMessage) { name: (string) (len=17) "NewAddressRequest", hasZeroFields: (bool) false @@ -140,8 +140,8 @@ name: (string) (len=18) "NewAddressResponse", hasZeroFields: (bool) false }, - opts: (*main.methodOptions)(0xc0003fcc60)({ - authType: (*main.supportedAuth)(0xc00040c420)({ + opts: (*main.methodOptions)(0xc0002cb200)({ + authType: (*main.supportedAuth)(0xc000424b70)({ id: (string) (len=4) "user", name: (string) (len=4) "User", encrypted: (bool) false, @@ -157,7 +157,7 @@ query: ([]string) }) }), - (*main.Method)(0xc0002ba9b0)({ + (*main.Method)(0xc0002be9b0)({ in: (main.MethodMessage) { name: (string) (len=17) "PayAddressRequest", hasZeroFields: (bool) false @@ -167,8 +167,8 @@ name: (string) (len=18) "PayAddressResponse", hasZeroFields: (bool) false }, - opts: (*main.methodOptions)(0xc0003fcde0)({ - authType: (*main.supportedAuth)(0xc00040c4e0)({ + opts: (*main.methodOptions)(0xc0002cb380)({ + authType: (*main.supportedAuth)(0xc000424c30)({ id: (string) (len=4) "user", name: (string) (len=4) "User", encrypted: (bool) false, @@ -184,7 +184,7 @@ query: ([]string) }) }), - (*main.Method)(0xc0002baa50)({ + (*main.Method)(0xc0002bea50)({ in: (main.MethodMessage) { name: (string) (len=17) "NewInvoiceRequest", hasZeroFields: (bool) false @@ -194,8 +194,8 @@ name: (string) (len=18) "NewInvoiceResponse", hasZeroFields: (bool) false }, - opts: (*main.methodOptions)(0xc0003fcf60)({ - authType: (*main.supportedAuth)(0xc00040c5a0)({ + opts: (*main.methodOptions)(0xc0002cb500)({ + authType: (*main.supportedAuth)(0xc000424cf0)({ id: (string) (len=4) "user", name: (string) (len=4) "User", encrypted: (bool) false, @@ -211,7 +211,7 @@ query: ([]string) }) }), - (*main.Method)(0xc0002baaf0)({ + (*main.Method)(0xc0002beaf0)({ in: (main.MethodMessage) { name: (string) (len=17) "PayInvoiceRequest", hasZeroFields: (bool) false @@ -221,8 +221,8 @@ name: (string) (len=18) "PayInvoiceResponse", hasZeroFields: (bool) false }, - opts: (*main.methodOptions)(0xc0003fd0e0)({ - authType: (*main.supportedAuth)(0xc00040c660)({ + opts: (*main.methodOptions)(0xc0002cb680)({ + authType: (*main.supportedAuth)(0xc000424db0)({ id: (string) (len=4) "user", name: (string) (len=4) "User", encrypted: (bool) false, @@ -238,7 +238,7 @@ query: ([]string) }) }), - (*main.Method)(0xc0002bab90)({ + (*main.Method)(0xc0002beb90)({ in: (main.MethodMessage) { name: (string) (len=18) "OpenChannelRequest", hasZeroFields: (bool) false @@ -248,8 +248,8 @@ name: (string) (len=19) "OpenChannelResponse", hasZeroFields: (bool) false }, - opts: (*main.methodOptions)(0xc0003fd260)({ - authType: (*main.supportedAuth)(0xc00040c720)({ + opts: (*main.methodOptions)(0xc0002cb800)({ + authType: (*main.supportedAuth)(0xc000424e70)({ id: (string) (len=4) "user", name: (string) (len=4) "User", encrypted: (bool) false, @@ -265,18 +265,159 @@ query: ([]string) }) }), - (*main.Method)(0xc0002babe0)({ + (*main.Method)(0xc0002bec30)({ in: (main.MethodMessage) { name: (string) (len=5) "Empty", hasZeroFields: (bool) true }, - name: (string) (len=19) "GetOpenChannelLNURL", + name: (string) (len=20) "GetLnurlWithdrawLink", out: (main.MethodMessage) { - name: (string) (len=27) "GetOpenChannelLNURLResponse", + name: (string) (len=17) "LnurlLinkResponse", hasZeroFields: (bool) false }, - opts: (*main.methodOptions)(0xc0003fd3e0)({ - authType: (*main.supportedAuth)(0xc00040c7e0)({ + opts: (*main.methodOptions)(0xc0002cb980)({ + authType: (*main.supportedAuth)(0xc000424f30)({ + id: (string) (len=4) "user", + name: (string) (len=4) "User", + encrypted: (bool) false, + context: (map[string]string) (len=1) { + (string) (len=7) "user_id": (string) (len=6) "string" + } + }), + method: (string) (len=3) "get", + route: (main.decodedRoute) { + route: (string) (len=29) "/api/user/lnurl_withdraw/link", + params: ([]string) + }, + query: ([]string) + }) + }), + (*main.Method)(0xc0002becd0)({ + in: (main.MethodMessage) { + name: (string) (len=5) "Empty", + hasZeroFields: (bool) true + }, + name: (string) (len=20) "GetLnurlWithdrawInfo", + out: (main.MethodMessage) { + name: (string) (len=25) "LnurlWithdrawInfoResponse", + hasZeroFields: (bool) false + }, + opts: (*main.methodOptions)(0xc0002cbce0)({ + authType: (*main.supportedAuth)(0xc0004250b0)({ + id: (string) (len=5) "guest", + name: (string) (len=5) "Guest", + encrypted: (bool) false, + context: (map[string]string) { + } + }), + method: (string) (len=3) "get", + route: (main.decodedRoute) { + route: (string) (len=30) "/api/guest/lnurl_withdraw/info", + params: ([]string) + }, + query: ([]string) (len=1 cap=1) { + (string) (len=2) "k1" + } + }) + }), + (*main.Method)(0xc0002bed70)({ + in: (main.MethodMessage) { + name: (string) (len=5) "Empty", + hasZeroFields: (bool) true + }, + name: (string) (len=19) "HandleLnurlWithdraw", + out: (main.MethodMessage) { + name: (string) (len=5) "Empty", + hasZeroFields: (bool) true + }, + opts: (*main.methodOptions)(0xc00042e060)({ + authType: (*main.supportedAuth)(0xc000425230)({ + id: (string) (len=5) "guest", + name: (string) (len=5) "Guest", + encrypted: (bool) false, + context: (map[string]string) { + } + }), + method: (string) (len=3) "get", + route: (main.decodedRoute) { + route: (string) (len=32) "/api/guest/lnurl_withdraw/handle", + params: ([]string) + }, + query: ([]string) (len=2 cap=2) { + (string) (len=2) "k1", + (string) (len=2) "pr" + } + }) + }), + (*main.Method)(0xc0002bee10)({ + in: (main.MethodMessage) { + name: (string) (len=5) "Empty", + hasZeroFields: (bool) true + }, + name: (string) (len=15) "GetLnurlPayInfo", + out: (main.MethodMessage) { + name: (string) (len=20) "LnurlPayInfoResponse", + hasZeroFields: (bool) false + }, + opts: (*main.methodOptions)(0xc00042e3c0)({ + authType: (*main.supportedAuth)(0xc000425380)({ + id: (string) (len=5) "guest", + name: (string) (len=5) "Guest", + encrypted: (bool) false, + context: (map[string]string) { + } + }), + method: (string) (len=3) "get", + route: (main.decodedRoute) { + route: (string) (len=25) "/api/guest/lnurl_pay/info", + params: ([]string) + }, + query: ([]string) (len=1 cap=1) { + (string) (len=2) "k1" + } + }) + }), + (*main.Method)(0xc0002beeb0)({ + in: (main.MethodMessage) { + name: (string) (len=5) "Empty", + hasZeroFields: (bool) true + }, + name: (string) (len=14) "HandleLnurlPay", + out: (main.MethodMessage) { + name: (string) (len=22) "HandleLnurlPayResponse", + hasZeroFields: (bool) false + }, + opts: (*main.methodOptions)(0xc00042e720)({ + authType: (*main.supportedAuth)(0xc000425500)({ + id: (string) (len=5) "guest", + name: (string) (len=5) "Guest", + encrypted: (bool) false, + context: (map[string]string) { + } + }), + method: (string) (len=3) "get", + route: (main.decodedRoute) { + route: (string) (len=27) "/api/guest/lnurl_pay/handle", + params: ([]string) + }, + query: ([]string) (len=2 cap=2) { + (string) (len=2) "k1", + (string) (len=6) "amount" + } + }) + }), + (*main.Method)(0xc0002bef50)({ + in: (main.MethodMessage) { + name: (string) (len=5) "Empty", + hasZeroFields: (bool) true + }, + name: (string) (len=19) "GetLNURLChannelLink", + out: (main.MethodMessage) { + name: (string) (len=17) "LnurlLinkResponse", + hasZeroFields: (bool) false + }, + opts: (*main.methodOptions)(0xc00042e8a0)({ + authType: (*main.supportedAuth)(0xc0004255c0)({ id: (string) (len=4) "user", name: (string) (len=4) "User", encrypted: (bool) false, @@ -286,7 +427,7 @@ }), method: (string) (len=4) "post", route: (main.decodedRoute) { - route: (string) (len=23) "/api/user/lnurl_channel", + route: (string) (len=27) "/api/user/lnurl_channel/url", params: ([]string) }, query: ([]string) @@ -295,7 +436,7 @@ } ([]*main.Enum) (len=1 cap=1) { - (*main.Enum)(0xc0003cf8c0)({ + (*main.Enum)(0xc000424030)({ name: (string) (len=11) "AddressType", values: ([]main.EnumValue) (len=3 cap=4) { (main.EnumValue) { @@ -314,13 +455,18 @@ }) } -(map[string]*main.Message) (len=19) { - (string) (len=19) "OpenChannelResponse": (*main.Message)(0xc000249440)({ - fullName: (string) (len=19) "OpenChannelResponse", - name: (string) (len=19) "OpenChannelResponse", +(map[string]*main.Message) (len=22) { + (string) (len=5) "Empty": (*main.Message)(0xc000247200)({ + fullName: (string) (len=5) "Empty", + name: (string) (len=5) "Empty", + fields: ([]*main.Field) + }), + (string) (len=18) "NewAddressResponse": (*main.Message)(0xc000247340)({ + fullName: (string) (len=18) "NewAddressResponse", + name: (string) (len=18) "NewAddressResponse", fields: ([]*main.Field) (len=1 cap=1) { - (*main.Field)(0xc0003cf680)({ - name: (string) (len=10) "channel_id", + (*main.Field)(0xc0003df800)({ + name: (string) (len=7) "address", kind: (string) (len=6) "string", isMap: (bool) false, isArray: (bool) false, @@ -330,27 +476,12 @@ }) } }), - (string) (len=27) "GetOpenChannelLNURLResponse": (*main.Message)(0xc000249480)({ - fullName: (string) (len=27) "GetOpenChannelLNURLResponse", - name: (string) (len=27) "GetOpenChannelLNURLResponse", - fields: ([]*main.Field) (len=1 cap=1) { - (*main.Field)(0xc0003cf6b0)({ - name: (string) (len=5) "lnurl", - kind: (string) (len=6) "string", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }) - } - }), - (string) (len=15) "AddUserResponse": (*main.Message)(0xc000249500)({ - fullName: (string) (len=15) "AddUserResponse", - name: (string) (len=15) "AddUserResponse", - fields: ([]*main.Field) (len=2 cap=2) { - (*main.Field)(0xc0003cf770)({ - name: (string) (len=7) "user_id", + (string) (len=18) "OpenChannelRequest": (*main.Message)(0xc000247500)({ + fullName: (string) (len=18) "OpenChannelRequest", + name: (string) (len=18) "OpenChannelRequest", + fields: ([]*main.Field) (len=4 cap=4) { + (*main.Field)(0xc0003dfa10)({ + name: (string) (len=11) "destination", kind: (string) (len=6) "string", isMap: (bool) false, isArray: (bool) false, @@ -358,8 +489,26 @@ isMessage: (bool) false, isOptional: (bool) false }), - (*main.Field)(0xc0003cf7a0)({ - name: (string) (len=10) "auth_token", + (*main.Field)(0xc0003dfa40)({ + name: (string) (len=13) "fundingAmount", + kind: (string) (len=5) "int64", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dfa70)({ + name: (string) (len=10) "pushAmount", + kind: (string) (len=5) "int64", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dfaa0)({ + name: (string) (len=12) "closeAddress", kind: (string) (len=6) "string", isMap: (bool) false, isArray: (bool) false, @@ -369,12 +518,12 @@ }) } }), - (string) (len=25) "EncryptionExchangeRequest": (*main.Message)(0xc000249140)({ - fullName: (string) (len=25) "EncryptionExchangeRequest", - name: (string) (len=25) "EncryptionExchangeRequest", - fields: ([]*main.Field) (len=2 cap=2) { - (*main.Field)(0xc0003cf2f0)({ - name: (string) (len=10) "public_key", + (string) (len=20) "LnurlPayInfoResponse": (*main.Message)(0xc000247680)({ + fullName: (string) (len=20) "LnurlPayInfoResponse", + name: (string) (len=20) "LnurlPayInfoResponse", + fields: ([]*main.Field) (len=5 cap=8) { + (*main.Field)(0xc0003dfce0)({ + name: (string) (len=3) "tag", kind: (string) (len=6) "string", isMap: (bool) false, isArray: (bool) false, @@ -382,8 +531,35 @@ isMessage: (bool) false, isOptional: (bool) false }), - (*main.Field)(0xc0003cf320)({ - name: (string) (len=9) "device_id", + (*main.Field)(0xc0003dfd10)({ + name: (string) (len=8) "callback", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dfd40)({ + name: (string) (len=11) "maxSendable", + kind: (string) (len=5) "int64", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dfd70)({ + name: (string) (len=11) "minSendable", + kind: (string) (len=5) "int64", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dfda0)({ + name: (string) (len=8) "metadata", kind: (string) (len=6) "string", isMap: (bool) false, isArray: (bool) false, @@ -393,11 +569,11 @@ }) } }), - (string) (len=18) "NewInvoiceResponse": (*main.Message)(0xc000249340)({ - fullName: (string) (len=18) "NewInvoiceResponse", - name: (string) (len=18) "NewInvoiceResponse", - fields: ([]*main.Field) (len=1 cap=1) { - (*main.Field)(0xc0003cf500)({ + (string) (len=17) "PayInvoiceRequest": (*main.Message)(0xc000247480)({ + fullName: (string) (len=17) "PayInvoiceRequest", + name: (string) (len=17) "PayInvoiceRequest", + fields: ([]*main.Field) (len=2 cap=2) { + (*main.Field)(0xc0003df980)({ name: (string) (len=7) "invoice", kind: (string) (len=6) "string", isMap: (bool) false, @@ -405,14 +581,23 @@ isEnum: (bool) false, isMessage: (bool) false, isOptional: (bool) false + }), + (*main.Field)(0xc0003df9b0)({ + name: (string) (len=6) "amount", + kind: (string) (len=5) "int64", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false }) } }), - (string) (len=18) "PayInvoiceResponse": (*main.Message)(0xc0002493c0)({ + (string) (len=18) "PayInvoiceResponse": (*main.Message)(0xc0002474c0)({ fullName: (string) (len=18) "PayInvoiceResponse", name: (string) (len=18) "PayInvoiceResponse", fields: ([]*main.Field) (len=1 cap=1) { - (*main.Field)(0xc0003cf590)({ + (*main.Field)(0xc0003df9e0)({ name: (string) (len=8) "preimage", kind: (string) (len=6) "string", isMap: (bool) false, @@ -423,11 +608,44 @@ }) } }), - (string) (len=15) "AuthUserRequest": (*main.Message)(0xc000249540)({ - fullName: (string) (len=15) "AuthUserRequest", - name: (string) (len=15) "AuthUserRequest", + (string) (len=17) "LnurlLinkResponse": (*main.Message)(0xc000247580)({ + fullName: (string) (len=17) "LnurlLinkResponse", + name: (string) (len=17) "LnurlLinkResponse", fields: ([]*main.Field) (len=2 cap=2) { - (*main.Field)(0xc0003cf7d0)({ + (*main.Field)(0xc0003dfb00)({ + name: (string) (len=5) "lnurl", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dfb30)({ + name: (string) (len=2) "k1", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }) + } + }), + (string) (len=14) "AddUserRequest": (*main.Message)(0xc000247700)({ + fullName: (string) (len=14) "AddUserRequest", + name: (string) (len=14) "AddUserRequest", + fields: ([]*main.Field) (len=3 cap=4) { + (*main.Field)(0xc0003dfe30)({ + name: (string) (len=11) "callbackUrl", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dfe60)({ name: (string) (len=4) "name", kind: (string) (len=6) "string", isMap: (bool) false, @@ -436,7 +654,7 @@ isMessage: (bool) false, isOptional: (bool) false }), - (*main.Field)(0xc0003cf800)({ + (*main.Field)(0xc0003dfe90)({ name: (string) (len=6) "secret", kind: (string) (len=6) "string", isMap: (bool) false, @@ -447,11 +665,185 @@ }) } }), - (string) (len=18) "LndGetInfoResponse": (*main.Message)(0xc0002491c0)({ + (string) (len=16) "AuthUserResponse": (*main.Message)(0xc0002477c0)({ + fullName: (string) (len=16) "AuthUserResponse", + name: (string) (len=16) "AuthUserResponse", + fields: ([]*main.Field) (len=2 cap=2) { + (*main.Field)(0xc0003dff80)({ + name: (string) (len=6) "userId", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dffb0)({ + name: (string) (len=9) "authToken", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }) + } + }), + (string) (len=25) "EncryptionExchangeRequest": (*main.Message)(0xc000247240)({ + fullName: (string) (len=25) "EncryptionExchangeRequest", + name: (string) (len=25) "EncryptionExchangeRequest", + fields: ([]*main.Field) (len=2 cap=2) { + (*main.Field)(0xc0003df710)({ + name: (string) (len=9) "publicKey", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003df740)({ + name: (string) (len=8) "deviceId", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }) + } + }), + (string) (len=17) "LndGetInfoRequest": (*main.Message)(0xc000247280)({ + fullName: (string) (len=17) "LndGetInfoRequest", + name: (string) (len=17) "LndGetInfoRequest", + fields: ([]*main.Field) (len=1 cap=1) { + (*main.Field)(0xc0003df770)({ + name: (string) (len=6) "nodeId", + kind: (string) (len=5) "int64", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }) + } + }), + (string) (len=17) "PayAddressRequest": (*main.Message)(0xc000247380)({ + fullName: (string) (len=17) "PayAddressRequest", + name: (string) (len=17) "PayAddressRequest", + fields: ([]*main.Field) (len=3 cap=4) { + (*main.Field)(0xc0003df830)({ + name: (string) (len=7) "address", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003df860)({ + name: (string) (len=9) "amoutSats", + kind: (string) (len=5) "int64", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003df890)({ + name: (string) (len=10) "targetConf", + kind: (string) (len=5) "int64", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }) + } + }), + (string) (len=18) "NewInvoiceResponse": (*main.Message)(0xc000247440)({ + fullName: (string) (len=18) "NewInvoiceResponse", + name: (string) (len=18) "NewInvoiceResponse", + fields: ([]*main.Field) (len=1 cap=1) { + (*main.Field)(0xc0003df950)({ + name: (string) (len=7) "invoice", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }) + } + }), + (string) (len=19) "OpenChannelResponse": (*main.Message)(0xc000247540)({ + fullName: (string) (len=19) "OpenChannelResponse", + name: (string) (len=19) "OpenChannelResponse", + fields: ([]*main.Field) (len=1 cap=1) { + (*main.Field)(0xc0003dfad0)({ + name: (string) (len=9) "channelId", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }) + } + }), + (string) (len=15) "AddUserResponse": (*main.Message)(0xc000247740)({ + fullName: (string) (len=15) "AddUserResponse", + name: (string) (len=15) "AddUserResponse", + fields: ([]*main.Field) (len=2 cap=2) { + (*main.Field)(0xc0003dfec0)({ + name: (string) (len=6) "userId", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dfef0)({ + name: (string) (len=9) "authToken", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }) + } + }), + (string) (len=15) "AuthUserRequest": (*main.Message)(0xc000247780)({ + fullName: (string) (len=15) "AuthUserRequest", + name: (string) (len=15) "AuthUserRequest", + fields: ([]*main.Field) (len=2 cap=2) { + (*main.Field)(0xc0003dff20)({ + name: (string) (len=4) "name", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dff50)({ + name: (string) (len=6) "secret", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }) + } + }), + (string) (len=18) "LndGetInfoResponse": (*main.Message)(0xc0002472c0)({ fullName: (string) (len=18) "LndGetInfoResponse", name: (string) (len=18) "LndGetInfoResponse", fields: ([]*main.Field) (len=1 cap=1) { - (*main.Field)(0xc0003cf380)({ + (*main.Field)(0xc0003df7a0)({ name: (string) (len=5) "alias", kind: (string) (len=6) "string", isMap: (bool) false, @@ -462,12 +854,12 @@ }) } }), - (string) (len=17) "NewAddressRequest": (*main.Message)(0xc000249200)({ + (string) (len=17) "NewAddressRequest": (*main.Message)(0xc000247300)({ fullName: (string) (len=17) "NewAddressRequest", name: (string) (len=17) "NewAddressRequest", fields: ([]*main.Field) (len=1 cap=1) { - (*main.Field)(0xc0003cf3b0)({ - name: (string) (len=12) "address_type", + (*main.Field)(0xc0003df7d0)({ + name: (string) (len=11) "addressType", kind: (string) (len=11) "AddressType", isMap: (bool) false, isArray: (bool) false, @@ -477,194 +869,12 @@ }) } }), - (string) (len=17) "NewInvoiceRequest": (*main.Message)(0xc000249300)({ - fullName: (string) (len=17) "NewInvoiceRequest", - name: (string) (len=17) "NewInvoiceRequest", - fields: ([]*main.Field) (len=1 cap=1) { - (*main.Field)(0xc0003cf4d0)({ - name: (string) (len=11) "amount_sats", - kind: (string) (len=5) "int64", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }) - } - }), - (string) (len=18) "OpenChannelRequest": (*main.Message)(0xc000249400)({ - fullName: (string) (len=18) "OpenChannelRequest", - name: (string) (len=18) "OpenChannelRequest", - fields: ([]*main.Field) (len=4 cap=4) { - (*main.Field)(0xc0003cf5c0)({ - name: (string) (len=11) "destination", - kind: (string) (len=6) "string", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }), - (*main.Field)(0xc0003cf5f0)({ - name: (string) (len=14) "funding_amount", - kind: (string) (len=5) "int64", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }), - (*main.Field)(0xc0003cf620)({ - name: (string) (len=11) "push_amount", - kind: (string) (len=5) "int64", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }), - (*main.Field)(0xc0003cf650)({ - name: (string) (len=13) "close_address", - kind: (string) (len=6) "string", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }) - } - }), - (string) (len=14) "AddUserRequest": (*main.Message)(0xc0002494c0)({ - fullName: (string) (len=14) "AddUserRequest", - name: (string) (len=14) "AddUserRequest", - fields: ([]*main.Field) (len=3 cap=4) { - (*main.Field)(0xc0003cf6e0)({ - name: (string) (len=12) "callback_url", - kind: (string) (len=6) "string", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }), - (*main.Field)(0xc0003cf710)({ - name: (string) (len=4) "name", - kind: (string) (len=6) "string", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }), - (*main.Field)(0xc0003cf740)({ - name: (string) (len=6) "secret", - kind: (string) (len=6) "string", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }) - } - }), - (string) (len=16) "AuthUserResponse": (*main.Message)(0xc000249580)({ - fullName: (string) (len=16) "AuthUserResponse", - name: (string) (len=16) "AuthUserResponse", - fields: ([]*main.Field) (len=2 cap=2) { - (*main.Field)(0xc0003cf830)({ - name: (string) (len=7) "user_id", - kind: (string) (len=6) "string", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }), - (*main.Field)(0xc0003cf860)({ - name: (string) (len=10) "auth_token", - kind: (string) (len=6) "string", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }) - } - }), - (string) (len=5) "Empty": (*main.Message)(0xc000249100)({ - fullName: (string) (len=5) "Empty", - name: (string) (len=5) "Empty", - fields: ([]*main.Field) - }), - (string) (len=17) "LndGetInfoRequest": (*main.Message)(0xc000249180)({ - fullName: (string) (len=17) "LndGetInfoRequest", - name: (string) (len=17) "LndGetInfoRequest", - fields: ([]*main.Field) (len=1 cap=1) { - (*main.Field)(0xc0003cf350)({ - name: (string) (len=7) "node_id", - kind: (string) (len=5) "int64", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }) - } - }), - (string) (len=18) "NewAddressResponse": (*main.Message)(0xc000249240)({ - fullName: (string) (len=18) "NewAddressResponse", - name: (string) (len=18) "NewAddressResponse", - fields: ([]*main.Field) (len=1 cap=1) { - (*main.Field)(0xc0003cf3e0)({ - name: (string) (len=7) "address", - kind: (string) (len=6) "string", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }) - } - }), - (string) (len=17) "PayAddressRequest": (*main.Message)(0xc000249280)({ - fullName: (string) (len=17) "PayAddressRequest", - name: (string) (len=17) "PayAddressRequest", - fields: ([]*main.Field) (len=3 cap=4) { - (*main.Field)(0xc0003cf410)({ - name: (string) (len=7) "address", - kind: (string) (len=6) "string", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }), - (*main.Field)(0xc0003cf440)({ - name: (string) (len=10) "amout_sats", - kind: (string) (len=5) "int64", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }), - (*main.Field)(0xc0003cf470)({ - name: (string) (len=11) "target_conf", - kind: (string) (len=5) "int64", - isMap: (bool) false, - isArray: (bool) false, - isEnum: (bool) false, - isMessage: (bool) false, - isOptional: (bool) false - }) - } - }), - (string) (len=18) "PayAddressResponse": (*main.Message)(0xc0002492c0)({ + (string) (len=18) "PayAddressResponse": (*main.Message)(0xc0002473c0)({ fullName: (string) (len=18) "PayAddressResponse", name: (string) (len=18) "PayAddressResponse", fields: ([]*main.Field) (len=1 cap=1) { - (*main.Field)(0xc0003cf4a0)({ - name: (string) (len=5) "tx_id", + (*main.Field)(0xc0003df8c0)({ + name: (string) (len=4) "txId", kind: (string) (len=6) "string", isMap: (bool) false, isArray: (bool) false, @@ -674,12 +884,36 @@ }) } }), - (string) (len=17) "PayInvoiceRequest": (*main.Message)(0xc000249380)({ - fullName: (string) (len=17) "PayInvoiceRequest", - name: (string) (len=17) "PayInvoiceRequest", + (string) (len=17) "NewInvoiceRequest": (*main.Message)(0xc000247400)({ + fullName: (string) (len=17) "NewInvoiceRequest", + name: (string) (len=17) "NewInvoiceRequest", fields: ([]*main.Field) (len=2 cap=2) { - (*main.Field)(0xc0003cf530)({ - name: (string) (len=7) "invoice", + (*main.Field)(0xc0003df8f0)({ + name: (string) (len=10) "amountSats", + kind: (string) (len=5) "int64", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003df920)({ + name: (string) (len=4) "memo", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }) + } + }), + (string) (len=25) "LnurlWithdrawInfoResponse": (*main.Message)(0xc000247600)({ + fullName: (string) (len=25) "LnurlWithdrawInfoResponse", + name: (string) (len=25) "LnurlWithdrawInfoResponse", + fields: ([]*main.Field) (len=8 cap=8) { + (*main.Field)(0xc0003dfb60)({ + name: (string) (len=3) "tag", kind: (string) (len=6) "string", isMap: (bool) false, isArray: (bool) false, @@ -687,20 +921,98 @@ isMessage: (bool) false, isOptional: (bool) false }), - (*main.Field)(0xc0003cf560)({ - name: (string) (len=6) "amount", + (*main.Field)(0xc0003dfb90)({ + name: (string) (len=8) "callback", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dfbc0)({ + name: (string) (len=2) "k1", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dfbf0)({ + name: (string) (len=18) "defaultDescription", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dfc20)({ + name: (string) (len=15) "minWithdrawable", kind: (string) (len=5) "int64", isMap: (bool) false, isArray: (bool) false, isEnum: (bool) false, isMessage: (bool) false, isOptional: (bool) false + }), + (*main.Field)(0xc0003dfc50)({ + name: (string) (len=15) "maxWithdrawable", + kind: (string) (len=5) "int64", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dfc80)({ + name: (string) (len=12) "balanceCheck", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dfcb0)({ + name: (string) (len=7) "payLink", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }) + } + }), + (string) (len=22) "HandleLnurlPayResponse": (*main.Message)(0xc0002476c0)({ + fullName: (string) (len=22) "HandleLnurlPayResponse", + name: (string) (len=22) "HandleLnurlPayResponse", + fields: ([]*main.Field) (len=2 cap=2) { + (*main.Field)(0xc0003dfdd0)({ + name: (string) (len=2) "pr", + kind: (string) (len=6) "string", + isMap: (bool) false, + isArray: (bool) false, + isEnum: (bool) false, + isMessage: (bool) false, + isOptional: (bool) false + }), + (*main.Field)(0xc0003dfe00)({ + name: (string) (len=6) "routes", + kind: (string) (len=5) "Empty", + isMap: (bool) false, + isArray: (bool) true, + isEnum: (bool) false, + isMessage: (bool) true, + isOptional: (bool) false }) } }) } -parsing file: structs 19 +parsing file: structs 22 parsing file: methods 2 -> [{guest Guest false map[]} {user User false map[user_id:string]} {admin Admin true map[admin_id:string]}] diff --git a/proto/autogenerated/ts/express_server.ts b/proto/autogenerated/ts/express_server.ts index 885fc0f0..de16ef2d 100644 --- a/proto/autogenerated/ts/express_server.ts +++ b/proto/autogenerated/ts/express_server.ts @@ -21,7 +21,7 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => { const logger = opts.logger || { log: console.log, error: console.error } const app = express() if (opts.allowCors) { - app.use(cors()) + app.use(cors()) } app.use(json()) app.use(urlencoded({ extended: true })) @@ -33,7 +33,7 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => { const query = req.query const params = req.params await methods.Health({ ...authContext, ...query, ...params }) - res.json({ status: 'OK' }) + res.json({status: 'OK'}) } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } }) if (!opts.allowNotImplementedMethods && !methods.EncryptionExchange) throw new Error('method: EncryptionExchange is not implemented') @@ -47,7 +47,7 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => { const query = req.query const params = req.params await methods.EncryptionExchange({ ...authContext, ...query, ...params }, request) - res.json({ status: 'OK' }) + res.json({status: 'OK'}) } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } }) if (!opts.allowNotImplementedMethods && !methods.LndGetInfo) throw new Error('method: LndGetInfo is not implemented') @@ -63,7 +63,7 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => { const query = req.query const params = req.params const response = await methods.LndGetInfo({ ...authContext, ...query, ...params }, request) - res.json({ status: 'OK', result: await opts.encryptCallback(encryptionDeviceId, response) }) + res.json({status: 'OK', ...await opts.encryptCallback(encryptionDeviceId, response)}) } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } }) if (!opts.allowNotImplementedMethods && !methods.AddUser) throw new Error('method: AddUser is not implemented') @@ -77,7 +77,7 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => { const query = req.query const params = req.params const response = await methods.AddUser({ ...authContext, ...query, ...params }, request) - res.json({ status: 'OK', result: response }) + res.json({status: 'OK', ...response}) } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } }) if (!opts.allowNotImplementedMethods && !methods.AuthUser) throw new Error('method: AuthUser is not implemented') @@ -91,7 +91,7 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => { const query = req.query const params = req.params const response = await methods.AuthUser({ ...authContext, ...query, ...params }, request) - res.json({ status: 'OK', result: response }) + res.json({status: 'OK', ...response}) } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } }) if (!opts.allowNotImplementedMethods && !methods.NewAddress) throw new Error('method: NewAddress is not implemented') @@ -105,7 +105,7 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => { const query = req.query const params = req.params const response = await methods.NewAddress({ ...authContext, ...query, ...params }, request) - res.json({ status: 'OK', result: response }) + res.json({status: 'OK', ...response}) } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } }) if (!opts.allowNotImplementedMethods && !methods.PayAddress) throw new Error('method: PayAddress is not implemented') @@ -119,7 +119,7 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => { const query = req.query const params = req.params const response = await methods.PayAddress({ ...authContext, ...query, ...params }, request) - res.json({ status: 'OK', result: response }) + res.json({status: 'OK', ...response}) } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } }) if (!opts.allowNotImplementedMethods && !methods.NewInvoice) throw new Error('method: NewInvoice is not implemented') @@ -133,7 +133,7 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => { const query = req.query const params = req.params const response = await methods.NewInvoice({ ...authContext, ...query, ...params }, request) - res.json({ status: 'OK', result: response }) + res.json({status: 'OK', ...response}) } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } }) if (!opts.allowNotImplementedMethods && !methods.PayInvoice) throw new Error('method: PayInvoice is not implemented') @@ -147,7 +147,7 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => { const query = req.query const params = req.params const response = await methods.PayInvoice({ ...authContext, ...query, ...params }, request) - res.json({ status: 'OK', result: response }) + res.json({status: 'OK', ...response}) } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } }) if (!opts.allowNotImplementedMethods && !methods.OpenChannel) throw new Error('method: OpenChannel is not implemented') @@ -161,22 +161,77 @@ export default (methods: Types.ServerMethods, opts: ServerOptions) => { const query = req.query const params = req.params const response = await methods.OpenChannel({ ...authContext, ...query, ...params }, request) - res.json({ status: 'OK', result: response }) + res.json({status: 'OK', ...response}) } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } }) - if (!opts.allowNotImplementedMethods && !methods.GetOpenChannelLNURL) throw new Error('method: GetOpenChannelLNURL is not implemented') - app.post('/api/user/lnurl_channel', async (req, res) => { + if (!opts.allowNotImplementedMethods && !methods.GetLnurlWithdrawLink) throw new Error('method: GetLnurlWithdrawLink is not implemented') + app.get('/api/user/lnurl_withdraw/link', async (req, res) => { try { - if (!methods.GetOpenChannelLNURL) throw new Error('method: GetOpenChannelLNURL is not implemented') + if (!methods.GetLnurlWithdrawLink) throw new Error('method: GetLnurlWithdrawLink is not implemented') const authContext = await opts.UserAuthGuard(req.headers['authorization']) const query = req.query const params = req.params - const response = await methods.GetOpenChannelLNURL({ ...authContext, ...query, ...params }) - res.json({ status: 'OK', result: response }) + const response = await methods.GetLnurlWithdrawLink({ ...authContext, ...query, ...params }) + res.json({status: 'OK', ...response}) + } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } + }) + if (!opts.allowNotImplementedMethods && !methods.GetLnurlWithdrawInfo) throw new Error('method: GetLnurlWithdrawInfo is not implemented') + app.get('/api/guest/lnurl_withdraw/info', async (req, res) => { + try { + if (!methods.GetLnurlWithdrawInfo) throw new Error('method: GetLnurlWithdrawInfo is not implemented') + const authContext = await opts.GuestAuthGuard(req.headers['authorization']) + const query = req.query + const params = req.params + const response = await methods.GetLnurlWithdrawInfo({ ...authContext, ...query, ...params }) + res.json({status: 'OK', ...response}) + } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } + }) + if (!opts.allowNotImplementedMethods && !methods.HandleLnurlWithdraw) throw new Error('method: HandleLnurlWithdraw is not implemented') + app.get('/api/guest/lnurl_withdraw/handle', async (req, res) => { + try { + if (!methods.HandleLnurlWithdraw) throw new Error('method: HandleLnurlWithdraw is not implemented') + const authContext = await opts.GuestAuthGuard(req.headers['authorization']) + const query = req.query + const params = req.params + await methods.HandleLnurlWithdraw({ ...authContext, ...query, ...params }) + res.json({status: 'OK'}) + } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } + }) + if (!opts.allowNotImplementedMethods && !methods.GetLnurlPayInfo) throw new Error('method: GetLnurlPayInfo is not implemented') + app.get('/api/guest/lnurl_pay/info', async (req, res) => { + try { + if (!methods.GetLnurlPayInfo) throw new Error('method: GetLnurlPayInfo is not implemented') + const authContext = await opts.GuestAuthGuard(req.headers['authorization']) + const query = req.query + const params = req.params + const response = await methods.GetLnurlPayInfo({ ...authContext, ...query, ...params }) + res.json({status: 'OK', ...response}) + } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } + }) + if (!opts.allowNotImplementedMethods && !methods.HandleLnurlPay) throw new Error('method: HandleLnurlPay is not implemented') + app.get('/api/guest/lnurl_pay/handle', async (req, res) => { + try { + if (!methods.HandleLnurlPay) throw new Error('method: HandleLnurlPay is not implemented') + const authContext = await opts.GuestAuthGuard(req.headers['authorization']) + const query = req.query + const params = req.params + const response = await methods.HandleLnurlPay({ ...authContext, ...query, ...params }) + res.json({status: 'OK', ...response}) + } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } + }) + if (!opts.allowNotImplementedMethods && !methods.GetLNURLChannelLink) throw new Error('method: GetLNURLChannelLink is not implemented') + app.post('/api/user/lnurl_channel/url', async (req, res) => { + try { + if (!methods.GetLNURLChannelLink) throw new Error('method: GetLNURLChannelLink is not implemented') + const authContext = await opts.UserAuthGuard(req.headers['authorization']) + const query = req.query + const params = req.params + const response = await methods.GetLNURLChannelLink({ ...authContext, ...query, ...params }) + res.json({status: 'OK', ...response}) } catch (ex) { const e = ex as any; logErrorAndReturnResponse(e, e.message || e, res, logger); if (opts.throwErrors) throw e } }) if (opts.staticFiles) { - app.use(express.static(opts.staticFiles)) + app.use(express.static(opts.staticFiles)) } var server: { close: () => void } | undefined return { diff --git a/proto/autogenerated/ts/http_client.ts b/proto/autogenerated/ts/http_client.ts index b563440d..fdd6aac4 100644 --- a/proto/autogenerated/ts/http_client.ts +++ b/proto/autogenerated/ts/http_client.ts @@ -11,144 +11,229 @@ export type ClientParams = { encryptCallback: (plain: any) => Promise decryptCallback: (encrypted: any) => Promise deviceId: string + checkResult?: true } export default (params: ClientParams) => ({ - Health: async (): Promise => { + Health: async (): Promise => { const auth = await params.retrieveGuestAuth() if (auth === null) throw new Error('retrieveGuestAuth() returned null') let finalRoute = '/api/health' const { data } = await axios.get(params.baseUrl + finalRoute, { headers: { 'authorization': auth } }) if (data.status === 'ERROR' && typeof data.reason === 'string') return data - if (data.status === 'OK') { + if (data.status === 'OK') { return data } return { status: 'ERROR', reason: 'invalid response' } }, - EncryptionExchange: async (request: Types.EncryptionExchangeRequest): Promise => { + EncryptionExchange: async (request: Types.EncryptionExchangeRequest): Promise => { const auth = await params.retrieveGuestAuth() if (auth === null) throw new Error('retrieveGuestAuth() returned null') let finalRoute = '/api/encryption/exchange' const { data } = await axios.post(params.baseUrl + finalRoute, request, { headers: { 'authorization': auth } }) if (data.status === 'ERROR' && typeof data.reason === 'string') return data - if (data.status === 'OK') { + if (data.status === 'OK') { return data } return { status: 'ERROR', reason: 'invalid response' } }, - LndGetInfo: async (request: Types.LndGetInfoRequest): Promise => { + LndGetInfo: async (request: Types.LndGetInfoRequest): Promise => { const auth = await params.retrieveAdminAuth() if (auth === null) throw new Error('retrieveAdminAuth() returned null') let finalRoute = '/api/lnd/getinfo' - const { data } = await axios.post(params.baseUrl + finalRoute, await params.encryptCallback(request), { headers: { 'authorization': auth, 'x-e2ee-device-id-x': params.deviceId } }) + const { data } = await axios.post(params.baseUrl + finalRoute, await params.encryptCallback(request), { headers: { 'authorization': auth, 'x-e2ee-device-id-x': params.deviceId } }) if (data.status === 'ERROR' && typeof data.reason === 'string') return data - if (data.status === 'OK') { - const result = await params.decryptCallback(data.result) + if (data.status === 'OK') { + const result = await params.decryptCallback(data) + if(!params.checkResult) return { status: 'OK', ...result } const error = Types.LndGetInfoResponseValidate(result) - if (error === null) { return { status: 'OK', result: result } } else return { status: 'ERROR', reason: error.message } + if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message } } return { status: 'ERROR', reason: 'invalid response' } }, - AddUser: async (request: Types.AddUserRequest): Promise => { + AddUser: async (request: Types.AddUserRequest): Promise => { const auth = await params.retrieveGuestAuth() if (auth === null) throw new Error('retrieveGuestAuth() returned null') let finalRoute = '/api/user/add' const { data } = await axios.post(params.baseUrl + finalRoute, request, { headers: { 'authorization': auth } }) if (data.status === 'ERROR' && typeof data.reason === 'string') return data - if (data.status === 'OK') { - const result = data.result + if (data.status === 'OK') { + const result = data + if(!params.checkResult) return { status: 'OK', ...result } const error = Types.AddUserResponseValidate(result) - if (error === null) { return { status: 'OK', result: result } } else return { status: 'ERROR', reason: error.message } + if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message } } return { status: 'ERROR', reason: 'invalid response' } }, - AuthUser: async (request: Types.AuthUserRequest): Promise => { + AuthUser: async (request: Types.AuthUserRequest): Promise => { const auth = await params.retrieveGuestAuth() if (auth === null) throw new Error('retrieveGuestAuth() returned null') let finalRoute = '/api/user/auth' const { data } = await axios.post(params.baseUrl + finalRoute, request, { headers: { 'authorization': auth } }) if (data.status === 'ERROR' && typeof data.reason === 'string') return data - if (data.status === 'OK') { - const result = data.result + if (data.status === 'OK') { + const result = data + if(!params.checkResult) return { status: 'OK', ...result } const error = Types.AuthUserResponseValidate(result) - if (error === null) { return { status: 'OK', result: result } } else return { status: 'ERROR', reason: error.message } + if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message } } return { status: 'ERROR', reason: 'invalid response' } }, - NewAddress: async (request: Types.NewAddressRequest): Promise => { + NewAddress: async (request: Types.NewAddressRequest): Promise => { const auth = await params.retrieveUserAuth() if (auth === null) throw new Error('retrieveUserAuth() returned null') let finalRoute = '/api/user/chain/new' const { data } = await axios.post(params.baseUrl + finalRoute, request, { headers: { 'authorization': auth } }) if (data.status === 'ERROR' && typeof data.reason === 'string') return data - if (data.status === 'OK') { - const result = data.result + if (data.status === 'OK') { + const result = data + if(!params.checkResult) return { status: 'OK', ...result } const error = Types.NewAddressResponseValidate(result) - if (error === null) { return { status: 'OK', result: result } } else return { status: 'ERROR', reason: error.message } + if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message } } return { status: 'ERROR', reason: 'invalid response' } }, - PayAddress: async (request: Types.PayAddressRequest): Promise => { + PayAddress: async (request: Types.PayAddressRequest): Promise => { const auth = await params.retrieveUserAuth() if (auth === null) throw new Error('retrieveUserAuth() returned null') let finalRoute = '/api/user/chain/pay' const { data } = await axios.post(params.baseUrl + finalRoute, request, { headers: { 'authorization': auth } }) if (data.status === 'ERROR' && typeof data.reason === 'string') return data - if (data.status === 'OK') { - const result = data.result + if (data.status === 'OK') { + const result = data + if(!params.checkResult) return { status: 'OK', ...result } const error = Types.PayAddressResponseValidate(result) - if (error === null) { return { status: 'OK', result: result } } else return { status: 'ERROR', reason: error.message } + if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message } } return { status: 'ERROR', reason: 'invalid response' } }, - NewInvoice: async (request: Types.NewInvoiceRequest): Promise => { + NewInvoice: async (request: Types.NewInvoiceRequest): Promise => { const auth = await params.retrieveUserAuth() if (auth === null) throw new Error('retrieveUserAuth() returned null') let finalRoute = '/api/user/invoice/new' const { data } = await axios.post(params.baseUrl + finalRoute, request, { headers: { 'authorization': auth } }) if (data.status === 'ERROR' && typeof data.reason === 'string') return data - if (data.status === 'OK') { - const result = data.result + if (data.status === 'OK') { + const result = data + if(!params.checkResult) return { status: 'OK', ...result } const error = Types.NewInvoiceResponseValidate(result) - if (error === null) { return { status: 'OK', result: result } } else return { status: 'ERROR', reason: error.message } + if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message } } return { status: 'ERROR', reason: 'invalid response' } }, - PayInvoice: async (request: Types.PayInvoiceRequest): Promise => { + PayInvoice: async (request: Types.PayInvoiceRequest): Promise => { const auth = await params.retrieveUserAuth() if (auth === null) throw new Error('retrieveUserAuth() returned null') let finalRoute = '/api/user/invoice/pay' const { data } = await axios.post(params.baseUrl + finalRoute, request, { headers: { 'authorization': auth } }) if (data.status === 'ERROR' && typeof data.reason === 'string') return data - if (data.status === 'OK') { - const result = data.result + if (data.status === 'OK') { + const result = data + if(!params.checkResult) return { status: 'OK', ...result } const error = Types.PayInvoiceResponseValidate(result) - if (error === null) { return { status: 'OK', result: result } } else return { status: 'ERROR', reason: error.message } + if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message } } return { status: 'ERROR', reason: 'invalid response' } }, - OpenChannel: async (request: Types.OpenChannelRequest): Promise => { + OpenChannel: async (request: Types.OpenChannelRequest): Promise => { const auth = await params.retrieveUserAuth() if (auth === null) throw new Error('retrieveUserAuth() returned null') let finalRoute = '/api/user/open/channel' const { data } = await axios.post(params.baseUrl + finalRoute, request, { headers: { 'authorization': auth } }) if (data.status === 'ERROR' && typeof data.reason === 'string') return data - if (data.status === 'OK') { - const result = data.result + if (data.status === 'OK') { + const result = data + if(!params.checkResult) return { status: 'OK', ...result } const error = Types.OpenChannelResponseValidate(result) - if (error === null) { return { status: 'OK', result: result } } else return { status: 'ERROR', reason: error.message } + if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message } } return { status: 'ERROR', reason: 'invalid response' } }, - GetOpenChannelLNURL: async (): Promise => { + GetLnurlWithdrawLink: async (): Promise => { const auth = await params.retrieveUserAuth() if (auth === null) throw new Error('retrieveUserAuth() returned null') - let finalRoute = '/api/user/lnurl_channel' + let finalRoute = '/api/user/lnurl_withdraw/link' + const { data } = await axios.get(params.baseUrl + finalRoute, { headers: { 'authorization': auth } }) + if (data.status === 'ERROR' && typeof data.reason === 'string') return data + if (data.status === 'OK') { + const result = data + if(!params.checkResult) return { status: 'OK', ...result } + const error = Types.LnurlLinkResponseValidate(result) + if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message } + } + return { status: 'ERROR', reason: 'invalid response' } + }, + GetLnurlWithdrawInfo: async (query: Types.GetLnurlWithdrawInfo_Query): Promise => { + const auth = await params.retrieveGuestAuth() + if (auth === null) throw new Error('retrieveGuestAuth() returned null') + let finalRoute = '/api/guest/lnurl_withdraw/info' + const q = (new URLSearchParams(query)).toString() + finalRoute = finalRoute + (q === '' ? '' : '?' + q) + const { data } = await axios.get(params.baseUrl + finalRoute, { headers: { 'authorization': auth } }) + if (data.status === 'ERROR' && typeof data.reason === 'string') return data + if (data.status === 'OK') { + const result = data + if(!params.checkResult) return { status: 'OK', ...result } + const error = Types.LnurlWithdrawInfoResponseValidate(result) + if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message } + } + return { status: 'ERROR', reason: 'invalid response' } + }, + HandleLnurlWithdraw: async (query: Types.HandleLnurlWithdraw_Query): Promise => { + const auth = await params.retrieveGuestAuth() + if (auth === null) throw new Error('retrieveGuestAuth() returned null') + let finalRoute = '/api/guest/lnurl_withdraw/handle' + const q = (new URLSearchParams(query)).toString() + finalRoute = finalRoute + (q === '' ? '' : '?' + q) + const { data } = await axios.get(params.baseUrl + finalRoute, { headers: { 'authorization': auth } }) + if (data.status === 'ERROR' && typeof data.reason === 'string') return data + if (data.status === 'OK') { + return data + } + return { status: 'ERROR', reason: 'invalid response' } + }, + GetLnurlPayInfo: async (query: Types.GetLnurlPayInfo_Query): Promise => { + const auth = await params.retrieveGuestAuth() + if (auth === null) throw new Error('retrieveGuestAuth() returned null') + let finalRoute = '/api/guest/lnurl_pay/info' + const q = (new URLSearchParams(query)).toString() + finalRoute = finalRoute + (q === '' ? '' : '?' + q) + const { data } = await axios.get(params.baseUrl + finalRoute, { headers: { 'authorization': auth } }) + if (data.status === 'ERROR' && typeof data.reason === 'string') return data + if (data.status === 'OK') { + const result = data + if(!params.checkResult) return { status: 'OK', ...result } + const error = Types.LnurlPayInfoResponseValidate(result) + if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message } + } + return { status: 'ERROR', reason: 'invalid response' } + }, + HandleLnurlPay: async (query: Types.HandleLnurlPay_Query): Promise => { + const auth = await params.retrieveGuestAuth() + if (auth === null) throw new Error('retrieveGuestAuth() returned null') + let finalRoute = '/api/guest/lnurl_pay/handle' + const q = (new URLSearchParams(query)).toString() + finalRoute = finalRoute + (q === '' ? '' : '?' + q) + const { data } = await axios.get(params.baseUrl + finalRoute, { headers: { 'authorization': auth } }) + if (data.status === 'ERROR' && typeof data.reason === 'string') return data + if (data.status === 'OK') { + const result = data + if(!params.checkResult) return { status: 'OK', ...result } + const error = Types.HandleLnurlPayResponseValidate(result) + if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message } + } + return { status: 'ERROR', reason: 'invalid response' } + }, + GetLNURLChannelLink: async (): Promise => { + const auth = await params.retrieveUserAuth() + if (auth === null) throw new Error('retrieveUserAuth() returned null') + let finalRoute = '/api/user/lnurl_channel/url' const { data } = await axios.post(params.baseUrl + finalRoute, {}, { headers: { 'authorization': auth } }) if (data.status === 'ERROR' && typeof data.reason === 'string') return data - if (data.status === 'OK') { - const result = data.result - const error = Types.GetOpenChannelLNURLResponseValidate(result) - if (error === null) { return { status: 'OK', result: result } } else return { status: 'ERROR', reason: error.message } + if (data.status === 'OK') { + const result = data + if(!params.checkResult) return { status: 'OK', ...result } + const error = Types.LnurlLinkResponseValidate(result) + if (error === null) { return { status: 'OK', ...result } } else return { status: 'ERROR', reason: error.message } } return { status: 'ERROR', reason: 'invalid response' } }, diff --git a/proto/autogenerated/ts/types.ts b/proto/autogenerated/ts/types.ts index 87eaadaa..a198cf78 100644 --- a/proto/autogenerated/ts/types.ts +++ b/proto/autogenerated/ts/types.ts @@ -60,11 +60,42 @@ export type OpenChannel_Query = { export type OpenChannel_RouteParams = { } export type OpenChannel_Context = OpenChannel_Query & OpenChannel_RouteParams & UserContext -export type GetOpenChannelLNURL_Query = { +export type GetLnurlWithdrawLink_Query = { } -export type GetOpenChannelLNURL_RouteParams = { +export type GetLnurlWithdrawLink_RouteParams = { } -export type GetOpenChannelLNURL_Context = GetOpenChannelLNURL_Query & GetOpenChannelLNURL_RouteParams & UserContext +export type GetLnurlWithdrawLink_Context = GetLnurlWithdrawLink_Query & GetLnurlWithdrawLink_RouteParams & UserContext +export type GetLnurlWithdrawInfo_Query = { + k1?: string +} +export type GetLnurlWithdrawInfo_RouteParams = { +} +export type GetLnurlWithdrawInfo_Context = GetLnurlWithdrawInfo_Query & GetLnurlWithdrawInfo_RouteParams & GuestContext +export type HandleLnurlWithdraw_Query = { + k1?: string + pr?: string +} +export type HandleLnurlWithdraw_RouteParams = { +} +export type HandleLnurlWithdraw_Context = HandleLnurlWithdraw_Query & HandleLnurlWithdraw_RouteParams & GuestContext +export type GetLnurlPayInfo_Query = { + k1?: string +} +export type GetLnurlPayInfo_RouteParams = { +} +export type GetLnurlPayInfo_Context = GetLnurlPayInfo_Query & GetLnurlPayInfo_RouteParams & GuestContext +export type HandleLnurlPay_Query = { + k1?: string + amount?: string +} +export type HandleLnurlPay_RouteParams = { +} +export type HandleLnurlPay_Context = HandleLnurlPay_Query & HandleLnurlPay_RouteParams & GuestContext +export type GetLNURLChannelLink_Query = { +} +export type GetLNURLChannelLink_RouteParams = { +} +export type GetLNURLChannelLink_Context = GetLNURLChannelLink_Query & GetLNURLChannelLink_RouteParams & UserContext export type ServerMethods = { Health?: (ctx: Health_Context) => Promise EncryptionExchange?: (ctx: EncryptionExchange_Context, req: EncryptionExchangeRequest) => Promise @@ -76,7 +107,12 @@ export type ServerMethods = { NewInvoice?: (ctx: NewInvoice_Context, req: NewInvoiceRequest) => Promise PayInvoice?: (ctx: PayInvoice_Context, req: PayInvoiceRequest) => Promise OpenChannel?: (ctx: OpenChannel_Context, req: OpenChannelRequest) => Promise - GetOpenChannelLNURL?: (ctx: GetOpenChannelLNURL_Context) => Promise + GetLnurlWithdrawLink?: (ctx: GetLnurlWithdrawLink_Context) => Promise + GetLnurlWithdrawInfo?: (ctx: GetLnurlWithdrawInfo_Context) => Promise + HandleLnurlWithdraw?: (ctx: HandleLnurlWithdraw_Context) => Promise + GetLnurlPayInfo?: (ctx: GetLnurlPayInfo_Context) => Promise + HandleLnurlPay?: (ctx: HandleLnurlPay_Context) => Promise + GetLNURLChannelLink?: (ctx: GetLNURLChannelLink_Context) => Promise } export enum AddressType { @@ -93,6 +129,202 @@ export type OptionsBaseMessage = { allOptionalsAreSet?: true } +export type NewInvoiceRequest = { + amountSats: number + memo: string +} +export const NewInvoiceRequestOptionalFields: [] = [] +export type NewInvoiceRequestOptions = OptionsBaseMessage & { + checkOptionalsAreSet?: [] + amountSats_CustomCheck?: (v: number) => boolean + memo_CustomCheck?: (v: string) => boolean +} +export const NewInvoiceRequestValidate = (o?: NewInvoiceRequest, opts: NewInvoiceRequestOptions = {}, path: string = 'NewInvoiceRequest::root.'): Error | null => { + if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') + if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') + + if (typeof o.amountSats !== 'number') return new Error(`${path}.amountSats: is not a number`) + if (opts.amountSats_CustomCheck && !opts.amountSats_CustomCheck(o.amountSats)) return new Error(`${path}.amountSats: custom check failed`) + + if (typeof o.memo !== 'string') return new Error(`${path}.memo: is not a string`) + if (opts.memo_CustomCheck && !opts.memo_CustomCheck(o.memo)) return new Error(`${path}.memo: custom check failed`) + + return null +} + +export type LnurlWithdrawInfoResponse = { + tag: string + callback: string + k1: string + defaultDescription: string + minWithdrawable: number + maxWithdrawable: number + balanceCheck: string + payLink: string +} +export const LnurlWithdrawInfoResponseOptionalFields: [] = [] +export type LnurlWithdrawInfoResponseOptions = OptionsBaseMessage & { + checkOptionalsAreSet?: [] + tag_CustomCheck?: (v: string) => boolean + callback_CustomCheck?: (v: string) => boolean + k1_CustomCheck?: (v: string) => boolean + defaultDescription_CustomCheck?: (v: string) => boolean + minWithdrawable_CustomCheck?: (v: number) => boolean + maxWithdrawable_CustomCheck?: (v: number) => boolean + balanceCheck_CustomCheck?: (v: string) => boolean + payLink_CustomCheck?: (v: string) => boolean +} +export const LnurlWithdrawInfoResponseValidate = (o?: LnurlWithdrawInfoResponse, opts: LnurlWithdrawInfoResponseOptions = {}, path: string = 'LnurlWithdrawInfoResponse::root.'): Error | null => { + if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') + if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') + + if (typeof o.tag !== 'string') return new Error(`${path}.tag: is not a string`) + if (opts.tag_CustomCheck && !opts.tag_CustomCheck(o.tag)) return new Error(`${path}.tag: custom check failed`) + + if (typeof o.callback !== 'string') return new Error(`${path}.callback: is not a string`) + if (opts.callback_CustomCheck && !opts.callback_CustomCheck(o.callback)) return new Error(`${path}.callback: custom check failed`) + + if (typeof o.k1 !== 'string') return new Error(`${path}.k1: is not a string`) + if (opts.k1_CustomCheck && !opts.k1_CustomCheck(o.k1)) return new Error(`${path}.k1: custom check failed`) + + if (typeof o.defaultDescription !== 'string') return new Error(`${path}.defaultDescription: is not a string`) + if (opts.defaultDescription_CustomCheck && !opts.defaultDescription_CustomCheck(o.defaultDescription)) return new Error(`${path}.defaultDescription: custom check failed`) + + if (typeof o.minWithdrawable !== 'number') return new Error(`${path}.minWithdrawable: is not a number`) + if (opts.minWithdrawable_CustomCheck && !opts.minWithdrawable_CustomCheck(o.minWithdrawable)) return new Error(`${path}.minWithdrawable: custom check failed`) + + if (typeof o.maxWithdrawable !== 'number') return new Error(`${path}.maxWithdrawable: is not a number`) + if (opts.maxWithdrawable_CustomCheck && !opts.maxWithdrawable_CustomCheck(o.maxWithdrawable)) return new Error(`${path}.maxWithdrawable: custom check failed`) + + if (typeof o.balanceCheck !== 'string') return new Error(`${path}.balanceCheck: is not a string`) + if (opts.balanceCheck_CustomCheck && !opts.balanceCheck_CustomCheck(o.balanceCheck)) return new Error(`${path}.balanceCheck: custom check failed`) + + if (typeof o.payLink !== 'string') return new Error(`${path}.payLink: is not a string`) + if (opts.payLink_CustomCheck && !opts.payLink_CustomCheck(o.payLink)) return new Error(`${path}.payLink: custom check failed`) + + return null +} + +export type HandleLnurlPayResponse = { + pr: string + routes: Empty[] +} +export const HandleLnurlPayResponseOptionalFields: [] = [] +export type HandleLnurlPayResponseOptions = OptionsBaseMessage & { + checkOptionalsAreSet?: [] + pr_CustomCheck?: (v: string) => boolean + routes_ItemOptions?: EmptyOptions + routes_CustomCheck?: (v: Empty[]) => boolean +} +export const HandleLnurlPayResponseValidate = (o?: HandleLnurlPayResponse, opts: HandleLnurlPayResponseOptions = {}, path: string = 'HandleLnurlPayResponse::root.'): Error | null => { + if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') + if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') + + if (typeof o.pr !== 'string') return new Error(`${path}.pr: is not a string`) + if (opts.pr_CustomCheck && !opts.pr_CustomCheck(o.pr)) return new Error(`${path}.pr: custom check failed`) + + if (!Array.isArray(o.routes)) return new Error(`${path}.routes: is not an array`) + for (let index = 0; index < o.routes.length; index++) { + const routesErr = EmptyValidate(o.routes[index], opts.routes_ItemOptions, `${path}.routes[${index}]`) + if (routesErr !== null) return routesErr + } + if (opts.routes_CustomCheck && !opts.routes_CustomCheck(o.routes)) return new Error(`${path}.routes: custom check failed`) + + return null +} + +export type LndGetInfoResponse = { + alias: string +} +export const LndGetInfoResponseOptionalFields: [] = [] +export type LndGetInfoResponseOptions = OptionsBaseMessage & { + checkOptionalsAreSet?: [] + alias_CustomCheck?: (v: string) => boolean +} +export const LndGetInfoResponseValidate = (o?: LndGetInfoResponse, opts: LndGetInfoResponseOptions = {}, path: string = 'LndGetInfoResponse::root.'): Error | null => { + if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') + if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') + + if (typeof o.alias !== 'string') return new Error(`${path}.alias: is not a string`) + if (opts.alias_CustomCheck && !opts.alias_CustomCheck(o.alias)) return new Error(`${path}.alias: custom check failed`) + + return null +} + +export type NewAddressRequest = { + addressType: AddressType +} +export const NewAddressRequestOptionalFields: [] = [] +export type NewAddressRequestOptions = OptionsBaseMessage & { + checkOptionalsAreSet?: [] + addressType_CustomCheck?: (v: AddressType) => boolean +} +export const NewAddressRequestValidate = (o?: NewAddressRequest, opts: NewAddressRequestOptions = {}, path: string = 'NewAddressRequest::root.'): Error | null => { + if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') + if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') + + if (!enumCheckAddressType(o.addressType)) return new Error(`${path}.addressType: is not a valid AddressType`) + if (opts.addressType_CustomCheck && !opts.addressType_CustomCheck(o.addressType)) return new Error(`${path}.addressType: custom check failed`) + + return null +} + +export type PayAddressResponse = { + txId: string +} +export const PayAddressResponseOptionalFields: [] = [] +export type PayAddressResponseOptions = OptionsBaseMessage & { + checkOptionalsAreSet?: [] + txId_CustomCheck?: (v: string) => boolean +} +export const PayAddressResponseValidate = (o?: PayAddressResponse, opts: PayAddressResponseOptions = {}, path: string = 'PayAddressResponse::root.'): Error | null => { + if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') + if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') + + if (typeof o.txId !== 'string') return new Error(`${path}.txId: is not a string`) + if (opts.txId_CustomCheck && !opts.txId_CustomCheck(o.txId)) return new Error(`${path}.txId: custom check failed`) + + return null +} + +export type LnurlPayInfoResponse = { + tag: string + callback: string + maxSendable: number + minSendable: number + metadata: string +} +export const LnurlPayInfoResponseOptionalFields: [] = [] +export type LnurlPayInfoResponseOptions = OptionsBaseMessage & { + checkOptionalsAreSet?: [] + tag_CustomCheck?: (v: string) => boolean + callback_CustomCheck?: (v: string) => boolean + maxSendable_CustomCheck?: (v: number) => boolean + minSendable_CustomCheck?: (v: number) => boolean + metadata_CustomCheck?: (v: string) => boolean +} +export const LnurlPayInfoResponseValidate = (o?: LnurlPayInfoResponse, opts: LnurlPayInfoResponseOptions = {}, path: string = 'LnurlPayInfoResponse::root.'): Error | null => { + if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') + if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') + + if (typeof o.tag !== 'string') return new Error(`${path}.tag: is not a string`) + if (opts.tag_CustomCheck && !opts.tag_CustomCheck(o.tag)) return new Error(`${path}.tag: custom check failed`) + + if (typeof o.callback !== 'string') return new Error(`${path}.callback: is not a string`) + if (opts.callback_CustomCheck && !opts.callback_CustomCheck(o.callback)) return new Error(`${path}.callback: custom check failed`) + + if (typeof o.maxSendable !== 'number') return new Error(`${path}.maxSendable: is not a number`) + if (opts.maxSendable_CustomCheck && !opts.maxSendable_CustomCheck(o.maxSendable)) return new Error(`${path}.maxSendable: custom check failed`) + + if (typeof o.minSendable !== 'number') return new Error(`${path}.minSendable: is not a number`) + if (opts.minSendable_CustomCheck && !opts.minSendable_CustomCheck(o.minSendable)) return new Error(`${path}.minSendable: custom check failed`) + + if (typeof o.metadata !== 'string') return new Error(`${path}.metadata: is not a string`) + if (opts.metadata_CustomCheck && !opts.metadata_CustomCheck(o.metadata)) return new Error(`${path}.metadata: custom check failed`) + + return null +} + export type Empty = { } export const EmptyOptionalFields: [] = [] @@ -106,24 +338,6 @@ export const EmptyValidate = (o?: Empty, opts: EmptyOptions = {}, path: string = return null } -export type LndGetInfoRequest = { - node_id: number -} -export const LndGetInfoRequestOptionalFields: [] = [] -export type LndGetInfoRequestOptions = OptionsBaseMessage & { - checkOptionalsAreSet?: [] - node_id_CustomCheck?: (v: number) => boolean -} -export const LndGetInfoRequestValidate = (o?: LndGetInfoRequest, opts: LndGetInfoRequestOptions = {}, path: string = 'LndGetInfoRequest::root.'): Error | null => { - if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') - if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') - - if (typeof o.node_id !== 'number') return new Error(`${path}.node_id: is not a number`) - if (opts.node_id_CustomCheck && !opts.node_id_CustomCheck(o.node_id)) return new Error(`${path}.node_id: custom check failed`) - - return null -} - export type NewAddressResponse = { address: string } @@ -142,48 +356,63 @@ export const NewAddressResponseValidate = (o?: NewAddressResponse, opts: NewAddr return null } -export type PayAddressRequest = { - address: string - amout_sats: number - target_conf: number +export type OpenChannelRequest = { + destination: string + fundingAmount: number + pushAmount: number + closeAddress: string } -export const PayAddressRequestOptionalFields: [] = [] -export type PayAddressRequestOptions = OptionsBaseMessage & { +export const OpenChannelRequestOptionalFields: [] = [] +export type OpenChannelRequestOptions = OptionsBaseMessage & { checkOptionalsAreSet?: [] - address_CustomCheck?: (v: string) => boolean - amout_sats_CustomCheck?: (v: number) => boolean - target_conf_CustomCheck?: (v: number) => boolean + destination_CustomCheck?: (v: string) => boolean + fundingAmount_CustomCheck?: (v: number) => boolean + pushAmount_CustomCheck?: (v: number) => boolean + closeAddress_CustomCheck?: (v: string) => boolean } -export const PayAddressRequestValidate = (o?: PayAddressRequest, opts: PayAddressRequestOptions = {}, path: string = 'PayAddressRequest::root.'): Error | null => { +export const OpenChannelRequestValidate = (o?: OpenChannelRequest, opts: OpenChannelRequestOptions = {}, path: string = 'OpenChannelRequest::root.'): Error | null => { if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') - if (typeof o.address !== 'string') return new Error(`${path}.address: is not a string`) - if (opts.address_CustomCheck && !opts.address_CustomCheck(o.address)) return new Error(`${path}.address: custom check failed`) + if (typeof o.destination !== 'string') return new Error(`${path}.destination: is not a string`) + if (opts.destination_CustomCheck && !opts.destination_CustomCheck(o.destination)) return new Error(`${path}.destination: custom check failed`) - if (typeof o.amout_sats !== 'number') return new Error(`${path}.amout_sats: is not a number`) - if (opts.amout_sats_CustomCheck && !opts.amout_sats_CustomCheck(o.amout_sats)) return new Error(`${path}.amout_sats: custom check failed`) + if (typeof o.fundingAmount !== 'number') return new Error(`${path}.fundingAmount: is not a number`) + if (opts.fundingAmount_CustomCheck && !opts.fundingAmount_CustomCheck(o.fundingAmount)) return new Error(`${path}.fundingAmount: custom check failed`) - if (typeof o.target_conf !== 'number') return new Error(`${path}.target_conf: is not a number`) - if (opts.target_conf_CustomCheck && !opts.target_conf_CustomCheck(o.target_conf)) return new Error(`${path}.target_conf: custom check failed`) + if (typeof o.pushAmount !== 'number') return new Error(`${path}.pushAmount: is not a number`) + if (opts.pushAmount_CustomCheck && !opts.pushAmount_CustomCheck(o.pushAmount)) return new Error(`${path}.pushAmount: custom check failed`) + + if (typeof o.closeAddress !== 'string') return new Error(`${path}.closeAddress: is not a string`) + if (opts.closeAddress_CustomCheck && !opts.closeAddress_CustomCheck(o.closeAddress)) return new Error(`${path}.closeAddress: custom check failed`) return null } -export type PayAddressResponse = { - tx_id: string +export type AddUserRequest = { + callbackUrl: string + name: string + secret: string } -export const PayAddressResponseOptionalFields: [] = [] -export type PayAddressResponseOptions = OptionsBaseMessage & { +export const AddUserRequestOptionalFields: [] = [] +export type AddUserRequestOptions = OptionsBaseMessage & { checkOptionalsAreSet?: [] - tx_id_CustomCheck?: (v: string) => boolean + callbackUrl_CustomCheck?: (v: string) => boolean + name_CustomCheck?: (v: string) => boolean + secret_CustomCheck?: (v: string) => boolean } -export const PayAddressResponseValidate = (o?: PayAddressResponse, opts: PayAddressResponseOptions = {}, path: string = 'PayAddressResponse::root.'): Error | null => { +export const AddUserRequestValidate = (o?: AddUserRequest, opts: AddUserRequestOptions = {}, path: string = 'AddUserRequest::root.'): Error | null => { if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') - if (typeof o.tx_id !== 'string') return new Error(`${path}.tx_id: is not a string`) - if (opts.tx_id_CustomCheck && !opts.tx_id_CustomCheck(o.tx_id)) return new Error(`${path}.tx_id: custom check failed`) + if (typeof o.callbackUrl !== 'string') return new Error(`${path}.callbackUrl: is not a string`) + if (opts.callbackUrl_CustomCheck && !opts.callbackUrl_CustomCheck(o.callbackUrl)) return new Error(`${path}.callbackUrl: custom check failed`) + + if (typeof o.name !== 'string') return new Error(`${path}.name: is not a string`) + if (opts.name_CustomCheck && !opts.name_CustomCheck(o.name)) return new Error(`${path}.name: custom check failed`) + + if (typeof o.secret !== 'string') return new Error(`${path}.secret: is not a string`) + if (opts.secret_CustomCheck && !opts.secret_CustomCheck(o.secret)) return new Error(`${path}.secret: custom check failed`) return null } @@ -211,84 +440,43 @@ export const PayInvoiceRequestValidate = (o?: PayInvoiceRequest, opts: PayInvoic return null } -export type OpenChannelResponse = { - channel_id: string +export type PayInvoiceResponse = { + preimage: string } -export const OpenChannelResponseOptionalFields: [] = [] -export type OpenChannelResponseOptions = OptionsBaseMessage & { +export const PayInvoiceResponseOptionalFields: [] = [] +export type PayInvoiceResponseOptions = OptionsBaseMessage & { checkOptionalsAreSet?: [] - channel_id_CustomCheck?: (v: string) => boolean + preimage_CustomCheck?: (v: string) => boolean } -export const OpenChannelResponseValidate = (o?: OpenChannelResponse, opts: OpenChannelResponseOptions = {}, path: string = 'OpenChannelResponse::root.'): Error | null => { +export const PayInvoiceResponseValidate = (o?: PayInvoiceResponse, opts: PayInvoiceResponseOptions = {}, path: string = 'PayInvoiceResponse::root.'): Error | null => { if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') - if (typeof o.channel_id !== 'string') return new Error(`${path}.channel_id: is not a string`) - if (opts.channel_id_CustomCheck && !opts.channel_id_CustomCheck(o.channel_id)) return new Error(`${path}.channel_id: custom check failed`) + if (typeof o.preimage !== 'string') return new Error(`${path}.preimage: is not a string`) + if (opts.preimage_CustomCheck && !opts.preimage_CustomCheck(o.preimage)) return new Error(`${path}.preimage: custom check failed`) return null } -export type GetOpenChannelLNURLResponse = { +export type LnurlLinkResponse = { lnurl: string + k1: string } -export const GetOpenChannelLNURLResponseOptionalFields: [] = [] -export type GetOpenChannelLNURLResponseOptions = OptionsBaseMessage & { +export const LnurlLinkResponseOptionalFields: [] = [] +export type LnurlLinkResponseOptions = OptionsBaseMessage & { checkOptionalsAreSet?: [] lnurl_CustomCheck?: (v: string) => boolean + k1_CustomCheck?: (v: string) => boolean } -export const GetOpenChannelLNURLResponseValidate = (o?: GetOpenChannelLNURLResponse, opts: GetOpenChannelLNURLResponseOptions = {}, path: string = 'GetOpenChannelLNURLResponse::root.'): Error | null => { +export const LnurlLinkResponseValidate = (o?: LnurlLinkResponse, opts: LnurlLinkResponseOptions = {}, path: string = 'LnurlLinkResponse::root.'): Error | null => { if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') if (typeof o.lnurl !== 'string') return new Error(`${path}.lnurl: is not a string`) if (opts.lnurl_CustomCheck && !opts.lnurl_CustomCheck(o.lnurl)) return new Error(`${path}.lnurl: custom check failed`) - return null -} - -export type AddUserResponse = { - user_id: string - auth_token: string -} -export const AddUserResponseOptionalFields: [] = [] -export type AddUserResponseOptions = OptionsBaseMessage & { - checkOptionalsAreSet?: [] - user_id_CustomCheck?: (v: string) => boolean - auth_token_CustomCheck?: (v: string) => boolean -} -export const AddUserResponseValidate = (o?: AddUserResponse, opts: AddUserResponseOptions = {}, path: string = 'AddUserResponse::root.'): Error | null => { - if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') - if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') - - if (typeof o.user_id !== 'string') return new Error(`${path}.user_id: is not a string`) - if (opts.user_id_CustomCheck && !opts.user_id_CustomCheck(o.user_id)) return new Error(`${path}.user_id: custom check failed`) - - if (typeof o.auth_token !== 'string') return new Error(`${path}.auth_token: is not a string`) - if (opts.auth_token_CustomCheck && !opts.auth_token_CustomCheck(o.auth_token)) return new Error(`${path}.auth_token: custom check failed`) - - return null -} - -export type EncryptionExchangeRequest = { - public_key: string - device_id: string -} -export const EncryptionExchangeRequestOptionalFields: [] = [] -export type EncryptionExchangeRequestOptions = OptionsBaseMessage & { - checkOptionalsAreSet?: [] - public_key_CustomCheck?: (v: string) => boolean - device_id_CustomCheck?: (v: string) => boolean -} -export const EncryptionExchangeRequestValidate = (o?: EncryptionExchangeRequest, opts: EncryptionExchangeRequestOptions = {}, path: string = 'EncryptionExchangeRequest::root.'): Error | null => { - if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') - if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') - - if (typeof o.public_key !== 'string') return new Error(`${path}.public_key: is not a string`) - if (opts.public_key_CustomCheck && !opts.public_key_CustomCheck(o.public_key)) return new Error(`${path}.public_key: custom check failed`) - - if (typeof o.device_id !== 'string') return new Error(`${path}.device_id: is not a string`) - if (opts.device_id_CustomCheck && !opts.device_id_CustomCheck(o.device_id)) return new Error(`${path}.device_id: custom check failed`) + if (typeof o.k1 !== 'string') return new Error(`${path}.k1: is not a string`) + if (opts.k1_CustomCheck && !opts.k1_CustomCheck(o.k1)) return new Error(`${path}.k1: custom check failed`) return null } @@ -311,20 +499,43 @@ export const NewInvoiceResponseValidate = (o?: NewInvoiceResponse, opts: NewInvo return null } -export type PayInvoiceResponse = { - preimage: string +export type OpenChannelResponse = { + channelId: string } -export const PayInvoiceResponseOptionalFields: [] = [] -export type PayInvoiceResponseOptions = OptionsBaseMessage & { +export const OpenChannelResponseOptionalFields: [] = [] +export type OpenChannelResponseOptions = OptionsBaseMessage & { checkOptionalsAreSet?: [] - preimage_CustomCheck?: (v: string) => boolean + channelId_CustomCheck?: (v: string) => boolean } -export const PayInvoiceResponseValidate = (o?: PayInvoiceResponse, opts: PayInvoiceResponseOptions = {}, path: string = 'PayInvoiceResponse::root.'): Error | null => { +export const OpenChannelResponseValidate = (o?: OpenChannelResponse, opts: OpenChannelResponseOptions = {}, path: string = 'OpenChannelResponse::root.'): Error | null => { if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') - if (typeof o.preimage !== 'string') return new Error(`${path}.preimage: is not a string`) - if (opts.preimage_CustomCheck && !opts.preimage_CustomCheck(o.preimage)) return new Error(`${path}.preimage: custom check failed`) + if (typeof o.channelId !== 'string') return new Error(`${path}.channelId: is not a string`) + if (opts.channelId_CustomCheck && !opts.channelId_CustomCheck(o.channelId)) return new Error(`${path}.channelId: custom check failed`) + + return null +} + +export type AddUserResponse = { + userId: string + authToken: string +} +export const AddUserResponseOptionalFields: [] = [] +export type AddUserResponseOptions = OptionsBaseMessage & { + checkOptionalsAreSet?: [] + userId_CustomCheck?: (v: string) => boolean + authToken_CustomCheck?: (v: string) => boolean +} +export const AddUserResponseValidate = (o?: AddUserResponse, opts: AddUserResponseOptions = {}, path: string = 'AddUserResponse::root.'): Error | null => { + if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') + if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') + + if (typeof o.userId !== 'string') return new Error(`${path}.userId: is not a string`) + if (opts.userId_CustomCheck && !opts.userId_CustomCheck(o.userId)) return new Error(`${path}.userId: custom check failed`) + + if (typeof o.authToken !== 'string') return new Error(`${path}.authToken: is not a string`) + if (opts.authToken_CustomCheck && !opts.authToken_CustomCheck(o.authToken)) return new Error(`${path}.authToken: custom check failed`) return null } @@ -352,140 +563,94 @@ export const AuthUserRequestValidate = (o?: AuthUserRequest, opts: AuthUserReque return null } -export type LndGetInfoResponse = { - alias: string -} -export const LndGetInfoResponseOptionalFields: [] = [] -export type LndGetInfoResponseOptions = OptionsBaseMessage & { - checkOptionalsAreSet?: [] - alias_CustomCheck?: (v: string) => boolean -} -export const LndGetInfoResponseValidate = (o?: LndGetInfoResponse, opts: LndGetInfoResponseOptions = {}, path: string = 'LndGetInfoResponse::root.'): Error | null => { - if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') - if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') - - if (typeof o.alias !== 'string') return new Error(`${path}.alias: is not a string`) - if (opts.alias_CustomCheck && !opts.alias_CustomCheck(o.alias)) return new Error(`${path}.alias: custom check failed`) - - return null -} - -export type NewAddressRequest = { - address_type: AddressType -} -export const NewAddressRequestOptionalFields: [] = [] -export type NewAddressRequestOptions = OptionsBaseMessage & { - checkOptionalsAreSet?: [] - address_type_CustomCheck?: (v: AddressType) => boolean -} -export const NewAddressRequestValidate = (o?: NewAddressRequest, opts: NewAddressRequestOptions = {}, path: string = 'NewAddressRequest::root.'): Error | null => { - if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') - if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') - - if (!enumCheckAddressType(o.address_type)) return new Error(`${path}.address_type: is not a valid AddressType`) - if (opts.address_type_CustomCheck && !opts.address_type_CustomCheck(o.address_type)) return new Error(`${path}.address_type: custom check failed`) - - return null -} - -export type NewInvoiceRequest = { - amount_sats: number -} -export const NewInvoiceRequestOptionalFields: [] = [] -export type NewInvoiceRequestOptions = OptionsBaseMessage & { - checkOptionalsAreSet?: [] - amount_sats_CustomCheck?: (v: number) => boolean -} -export const NewInvoiceRequestValidate = (o?: NewInvoiceRequest, opts: NewInvoiceRequestOptions = {}, path: string = 'NewInvoiceRequest::root.'): Error | null => { - if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') - if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') - - if (typeof o.amount_sats !== 'number') return new Error(`${path}.amount_sats: is not a number`) - if (opts.amount_sats_CustomCheck && !opts.amount_sats_CustomCheck(o.amount_sats)) return new Error(`${path}.amount_sats: custom check failed`) - - return null -} - -export type OpenChannelRequest = { - destination: string - funding_amount: number - push_amount: number - close_address: string -} -export const OpenChannelRequestOptionalFields: [] = [] -export type OpenChannelRequestOptions = OptionsBaseMessage & { - checkOptionalsAreSet?: [] - destination_CustomCheck?: (v: string) => boolean - funding_amount_CustomCheck?: (v: number) => boolean - push_amount_CustomCheck?: (v: number) => boolean - close_address_CustomCheck?: (v: string) => boolean -} -export const OpenChannelRequestValidate = (o?: OpenChannelRequest, opts: OpenChannelRequestOptions = {}, path: string = 'OpenChannelRequest::root.'): Error | null => { - if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') - if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') - - if (typeof o.destination !== 'string') return new Error(`${path}.destination: is not a string`) - if (opts.destination_CustomCheck && !opts.destination_CustomCheck(o.destination)) return new Error(`${path}.destination: custom check failed`) - - if (typeof o.funding_amount !== 'number') return new Error(`${path}.funding_amount: is not a number`) - if (opts.funding_amount_CustomCheck && !opts.funding_amount_CustomCheck(o.funding_amount)) return new Error(`${path}.funding_amount: custom check failed`) - - if (typeof o.push_amount !== 'number') return new Error(`${path}.push_amount: is not a number`) - if (opts.push_amount_CustomCheck && !opts.push_amount_CustomCheck(o.push_amount)) return new Error(`${path}.push_amount: custom check failed`) - - if (typeof o.close_address !== 'string') return new Error(`${path}.close_address: is not a string`) - if (opts.close_address_CustomCheck && !opts.close_address_CustomCheck(o.close_address)) return new Error(`${path}.close_address: custom check failed`) - - return null -} - -export type AddUserRequest = { - callback_url: string - name: string - secret: string -} -export const AddUserRequestOptionalFields: [] = [] -export type AddUserRequestOptions = OptionsBaseMessage & { - checkOptionalsAreSet?: [] - callback_url_CustomCheck?: (v: string) => boolean - name_CustomCheck?: (v: string) => boolean - secret_CustomCheck?: (v: string) => boolean -} -export const AddUserRequestValidate = (o?: AddUserRequest, opts: AddUserRequestOptions = {}, path: string = 'AddUserRequest::root.'): Error | null => { - if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') - if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') - - if (typeof o.callback_url !== 'string') return new Error(`${path}.callback_url: is not a string`) - if (opts.callback_url_CustomCheck && !opts.callback_url_CustomCheck(o.callback_url)) return new Error(`${path}.callback_url: custom check failed`) - - if (typeof o.name !== 'string') return new Error(`${path}.name: is not a string`) - if (opts.name_CustomCheck && !opts.name_CustomCheck(o.name)) return new Error(`${path}.name: custom check failed`) - - if (typeof o.secret !== 'string') return new Error(`${path}.secret: is not a string`) - if (opts.secret_CustomCheck && !opts.secret_CustomCheck(o.secret)) return new Error(`${path}.secret: custom check failed`) - - return null -} - export type AuthUserResponse = { - user_id: string - auth_token: string + userId: string + authToken: string } export const AuthUserResponseOptionalFields: [] = [] export type AuthUserResponseOptions = OptionsBaseMessage & { checkOptionalsAreSet?: [] - user_id_CustomCheck?: (v: string) => boolean - auth_token_CustomCheck?: (v: string) => boolean + userId_CustomCheck?: (v: string) => boolean + authToken_CustomCheck?: (v: string) => boolean } export const AuthUserResponseValidate = (o?: AuthUserResponse, opts: AuthUserResponseOptions = {}, path: string = 'AuthUserResponse::root.'): Error | null => { if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') - if (typeof o.user_id !== 'string') return new Error(`${path}.user_id: is not a string`) - if (opts.user_id_CustomCheck && !opts.user_id_CustomCheck(o.user_id)) return new Error(`${path}.user_id: custom check failed`) + if (typeof o.userId !== 'string') return new Error(`${path}.userId: is not a string`) + if (opts.userId_CustomCheck && !opts.userId_CustomCheck(o.userId)) return new Error(`${path}.userId: custom check failed`) - if (typeof o.auth_token !== 'string') return new Error(`${path}.auth_token: is not a string`) - if (opts.auth_token_CustomCheck && !opts.auth_token_CustomCheck(o.auth_token)) return new Error(`${path}.auth_token: custom check failed`) + if (typeof o.authToken !== 'string') return new Error(`${path}.authToken: is not a string`) + if (opts.authToken_CustomCheck && !opts.authToken_CustomCheck(o.authToken)) return new Error(`${path}.authToken: custom check failed`) + + return null +} + +export type EncryptionExchangeRequest = { + publicKey: string + deviceId: string +} +export const EncryptionExchangeRequestOptionalFields: [] = [] +export type EncryptionExchangeRequestOptions = OptionsBaseMessage & { + checkOptionalsAreSet?: [] + publicKey_CustomCheck?: (v: string) => boolean + deviceId_CustomCheck?: (v: string) => boolean +} +export const EncryptionExchangeRequestValidate = (o?: EncryptionExchangeRequest, opts: EncryptionExchangeRequestOptions = {}, path: string = 'EncryptionExchangeRequest::root.'): Error | null => { + if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') + if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') + + if (typeof o.publicKey !== 'string') return new Error(`${path}.publicKey: is not a string`) + if (opts.publicKey_CustomCheck && !opts.publicKey_CustomCheck(o.publicKey)) return new Error(`${path}.publicKey: custom check failed`) + + if (typeof o.deviceId !== 'string') return new Error(`${path}.deviceId: is not a string`) + if (opts.deviceId_CustomCheck && !opts.deviceId_CustomCheck(o.deviceId)) return new Error(`${path}.deviceId: custom check failed`) + + return null +} + +export type LndGetInfoRequest = { + nodeId: number +} +export const LndGetInfoRequestOptionalFields: [] = [] +export type LndGetInfoRequestOptions = OptionsBaseMessage & { + checkOptionalsAreSet?: [] + nodeId_CustomCheck?: (v: number) => boolean +} +export const LndGetInfoRequestValidate = (o?: LndGetInfoRequest, opts: LndGetInfoRequestOptions = {}, path: string = 'LndGetInfoRequest::root.'): Error | null => { + if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') + if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') + + if (typeof o.nodeId !== 'number') return new Error(`${path}.nodeId: is not a number`) + if (opts.nodeId_CustomCheck && !opts.nodeId_CustomCheck(o.nodeId)) return new Error(`${path}.nodeId: custom check failed`) + + return null +} + +export type PayAddressRequest = { + address: string + amoutSats: number + targetConf: number +} +export const PayAddressRequestOptionalFields: [] = [] +export type PayAddressRequestOptions = OptionsBaseMessage & { + checkOptionalsAreSet?: [] + address_CustomCheck?: (v: string) => boolean + amoutSats_CustomCheck?: (v: number) => boolean + targetConf_CustomCheck?: (v: number) => boolean +} +export const PayAddressRequestValidate = (o?: PayAddressRequest, opts: PayAddressRequestOptions = {}, path: string = 'PayAddressRequest::root.'): Error | null => { + if (opts.checkOptionalsAreSet && opts.allOptionalsAreSet) return new Error(path + ': only one of checkOptionalsAreSet or allOptionalNonDefault can be set for each message') + if (typeof o !== 'object' || o === null) return new Error(path + ': object is not an instance of an object or is null') + + if (typeof o.address !== 'string') return new Error(`${path}.address: is not a string`) + if (opts.address_CustomCheck && !opts.address_CustomCheck(o.address)) return new Error(`${path}.address: custom check failed`) + + if (typeof o.amoutSats !== 'number') return new Error(`${path}.amoutSats: is not a number`) + if (opts.amoutSats_CustomCheck && !opts.amoutSats_CustomCheck(o.amoutSats)) return new Error(`${path}.amoutSats: custom check failed`) + + if (typeof o.targetConf !== 'number') return new Error(`${path}.targetConf: is not a number`) + if (opts.targetConf_CustomCheck && !opts.targetConf_CustomCheck(o.targetConf)) return new Error(`${path}.targetConf: custom check failed`) return null } diff --git a/proto/lnd/invoices.client.d.ts b/proto/lnd/invoices.client.d.ts deleted file mode 100644 index 00dca87d..00000000 --- a/proto/lnd/invoices.client.d.ts +++ /dev/null @@ -1,122 +0,0 @@ -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "invoices.proto" (package "invoicesrpc", syntax proto3) -// tslint:disable -import type { RpcTransport } from "@protobuf-ts/runtime-rpc"; -import type { ServiceInfo } from "@protobuf-ts/runtime-rpc"; -import type { LookupInvoiceMsg } from "./invoices"; -import type { SettleInvoiceResp } from "./invoices"; -import type { SettleInvoiceMsg } from "./invoices"; -import type { AddHoldInvoiceResp } from "./invoices"; -import type { AddHoldInvoiceRequest } from "./invoices"; -import type { CancelInvoiceResp } from "./invoices"; -import type { CancelInvoiceMsg } from "./invoices"; -import type { UnaryCall } from "@protobuf-ts/runtime-rpc"; -import type { Invoice } from "./lightning"; -import type { SubscribeSingleInvoiceRequest } from "./invoices"; -import type { ServerStreamingCall } from "@protobuf-ts/runtime-rpc"; -import type { RpcOptions } from "@protobuf-ts/runtime-rpc"; -/** - * Invoices is a service that can be used to create, accept, settle and cancel - * invoices. - * - * @generated from protobuf service invoicesrpc.Invoices - */ -export interface IInvoicesClient { - /** - * - * SubscribeSingleInvoice returns a uni-directional stream (server -> client) - * to notify the client of state transitions of the specified invoice. - * Initially the current invoice state is always sent out. - * - * @generated from protobuf rpc: SubscribeSingleInvoice(invoicesrpc.SubscribeSingleInvoiceRequest) returns (stream lnrpc.Invoice); - */ - subscribeSingleInvoice(input: SubscribeSingleInvoiceRequest, options?: RpcOptions): ServerStreamingCall; - /** - * - * CancelInvoice cancels a currently open invoice. If the invoice is already - * canceled, this call will succeed. If the invoice is already settled, it will - * fail. - * - * @generated from protobuf rpc: CancelInvoice(invoicesrpc.CancelInvoiceMsg) returns (invoicesrpc.CancelInvoiceResp); - */ - cancelInvoice(input: CancelInvoiceMsg, options?: RpcOptions): UnaryCall; - /** - * - * AddHoldInvoice creates a hold invoice. It ties the invoice to the hash - * supplied in the request. - * - * @generated from protobuf rpc: AddHoldInvoice(invoicesrpc.AddHoldInvoiceRequest) returns (invoicesrpc.AddHoldInvoiceResp); - */ - addHoldInvoice(input: AddHoldInvoiceRequest, options?: RpcOptions): UnaryCall; - /** - * - * SettleInvoice settles an accepted invoice. If the invoice is already - * settled, this call will succeed. - * - * @generated from protobuf rpc: SettleInvoice(invoicesrpc.SettleInvoiceMsg) returns (invoicesrpc.SettleInvoiceResp); - */ - settleInvoice(input: SettleInvoiceMsg, options?: RpcOptions): UnaryCall; - /** - * - * LookupInvoiceV2 attempts to look up at invoice. An invoice can be refrenced - * using either its payment hash, payment address, or set ID. - * - * @generated from protobuf rpc: LookupInvoiceV2(invoicesrpc.LookupInvoiceMsg) returns (lnrpc.Invoice); - */ - lookupInvoiceV2(input: LookupInvoiceMsg, options?: RpcOptions): UnaryCall; -} -/** - * Invoices is a service that can be used to create, accept, settle and cancel - * invoices. - * - * @generated from protobuf service invoicesrpc.Invoices - */ -export declare class InvoicesClient implements IInvoicesClient, ServiceInfo { - private readonly _transport; - typeName: any; - methods: any; - options: any; - constructor(_transport: RpcTransport); - /** - * - * SubscribeSingleInvoice returns a uni-directional stream (server -> client) - * to notify the client of state transitions of the specified invoice. - * Initially the current invoice state is always sent out. - * - * @generated from protobuf rpc: SubscribeSingleInvoice(invoicesrpc.SubscribeSingleInvoiceRequest) returns (stream lnrpc.Invoice); - */ - subscribeSingleInvoice(input: SubscribeSingleInvoiceRequest, options?: RpcOptions): ServerStreamingCall; - /** - * - * CancelInvoice cancels a currently open invoice. If the invoice is already - * canceled, this call will succeed. If the invoice is already settled, it will - * fail. - * - * @generated from protobuf rpc: CancelInvoice(invoicesrpc.CancelInvoiceMsg) returns (invoicesrpc.CancelInvoiceResp); - */ - cancelInvoice(input: CancelInvoiceMsg, options?: RpcOptions): UnaryCall; - /** - * - * AddHoldInvoice creates a hold invoice. It ties the invoice to the hash - * supplied in the request. - * - * @generated from protobuf rpc: AddHoldInvoice(invoicesrpc.AddHoldInvoiceRequest) returns (invoicesrpc.AddHoldInvoiceResp); - */ - addHoldInvoice(input: AddHoldInvoiceRequest, options?: RpcOptions): UnaryCall; - /** - * - * SettleInvoice settles an accepted invoice. If the invoice is already - * settled, this call will succeed. - * - * @generated from protobuf rpc: SettleInvoice(invoicesrpc.SettleInvoiceMsg) returns (invoicesrpc.SettleInvoiceResp); - */ - settleInvoice(input: SettleInvoiceMsg, options?: RpcOptions): UnaryCall; - /** - * - * LookupInvoiceV2 attempts to look up at invoice. An invoice can be refrenced - * using either its payment hash, payment address, or set ID. - * - * @generated from protobuf rpc: LookupInvoiceV2(invoicesrpc.LookupInvoiceMsg) returns (lnrpc.Invoice); - */ - lookupInvoiceV2(input: LookupInvoiceMsg, options?: RpcOptions): UnaryCall; -} diff --git a/proto/lnd/invoices.client.js b/proto/lnd/invoices.client.js deleted file mode 100644 index a4130b7c..00000000 --- a/proto/lnd/invoices.client.js +++ /dev/null @@ -1,76 +0,0 @@ -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "invoices.proto" (package "invoicesrpc", syntax proto3) -// tslint:disable -import { Invoices } from "./invoices.js"; -import { stackIntercept } from "@protobuf-ts/runtime-rpc"; -/** - * Invoices is a service that can be used to create, accept, settle and cancel - * invoices. - * - * @generated from protobuf service invoicesrpc.Invoices - */ -export class InvoicesClient { - constructor(_transport) { - this._transport = _transport; - this.typeName = Invoices.typeName; - this.methods = Invoices.methods; - this.options = Invoices.options; - } - /** - * - * SubscribeSingleInvoice returns a uni-directional stream (server -> client) - * to notify the client of state transitions of the specified invoice. - * Initially the current invoice state is always sent out. - * - * @generated from protobuf rpc: SubscribeSingleInvoice(invoicesrpc.SubscribeSingleInvoiceRequest) returns (stream lnrpc.Invoice); - */ - subscribeSingleInvoice(input, options) { - const method = this.methods[0], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * - * CancelInvoice cancels a currently open invoice. If the invoice is already - * canceled, this call will succeed. If the invoice is already settled, it will - * fail. - * - * @generated from protobuf rpc: CancelInvoice(invoicesrpc.CancelInvoiceMsg) returns (invoicesrpc.CancelInvoiceResp); - */ - cancelInvoice(input, options) { - const method = this.methods[1], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * AddHoldInvoice creates a hold invoice. It ties the invoice to the hash - * supplied in the request. - * - * @generated from protobuf rpc: AddHoldInvoice(invoicesrpc.AddHoldInvoiceRequest) returns (invoicesrpc.AddHoldInvoiceResp); - */ - addHoldInvoice(input, options) { - const method = this.methods[2], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * SettleInvoice settles an accepted invoice. If the invoice is already - * settled, this call will succeed. - * - * @generated from protobuf rpc: SettleInvoice(invoicesrpc.SettleInvoiceMsg) returns (invoicesrpc.SettleInvoiceResp); - */ - settleInvoice(input, options) { - const method = this.methods[3], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * LookupInvoiceV2 attempts to look up at invoice. An invoice can be refrenced - * using either its payment hash, payment address, or set ID. - * - * @generated from protobuf rpc: LookupInvoiceV2(invoicesrpc.LookupInvoiceMsg) returns (lnrpc.Invoice); - */ - lookupInvoiceV2(input, options) { - const method = this.methods[4], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } -} diff --git a/proto/lnd/invoices.client.ts b/proto/lnd/invoices.client.ts index 1ce32b68..54fc20e2 100644 --- a/proto/lnd/invoices.client.ts +++ b/proto/lnd/invoices.client.ts @@ -3,18 +3,18 @@ // tslint:disable import type { RpcTransport } from "@protobuf-ts/runtime-rpc"; import type { ServiceInfo } from "@protobuf-ts/runtime-rpc"; -import { Invoices } from "./invoices"; -import type { LookupInvoiceMsg } from "./invoices"; -import type { SettleInvoiceResp } from "./invoices"; -import type { SettleInvoiceMsg } from "./invoices"; -import type { AddHoldInvoiceResp } from "./invoices"; -import type { AddHoldInvoiceRequest } from "./invoices"; -import type { CancelInvoiceResp } from "./invoices"; -import type { CancelInvoiceMsg } from "./invoices"; +import { Invoices } from "./invoices.js"; +import type { LookupInvoiceMsg } from "./invoices.js"; +import type { SettleInvoiceResp } from "./invoices.js"; +import type { SettleInvoiceMsg } from "./invoices.js"; +import type { AddHoldInvoiceResp } from "./invoices.js"; +import type { AddHoldInvoiceRequest } from "./invoices.js"; +import type { CancelInvoiceResp } from "./invoices.js"; +import type { CancelInvoiceMsg } from "./invoices.js"; import type { UnaryCall } from "@protobuf-ts/runtime-rpc"; import { stackIntercept } from "@protobuf-ts/runtime-rpc"; -import type { Invoice } from "./lightning"; -import type { SubscribeSingleInvoiceRequest } from "./invoices"; +import type { Invoice } from "./lightning.js"; +import type { SubscribeSingleInvoiceRequest } from "./invoices.js"; import type { ServerStreamingCall } from "@protobuf-ts/runtime-rpc"; import type { RpcOptions } from "@protobuf-ts/runtime-rpc"; /** diff --git a/proto/lnd/invoices.d.ts b/proto/lnd/invoices.d.ts deleted file mode 100644 index 19c87f2c..00000000 --- a/proto/lnd/invoices.d.ts +++ /dev/null @@ -1,318 +0,0 @@ -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "invoices.proto" (package "invoicesrpc", syntax proto3) -// tslint:disable -import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; -import type { IBinaryWriter } from "@protobuf-ts/runtime"; -import type { BinaryReadOptions } from "@protobuf-ts/runtime"; -import type { IBinaryReader } from "@protobuf-ts/runtime"; -import type { PartialMessage } from "@protobuf-ts/runtime"; -import { MessageType } from "@protobuf-ts/runtime"; -import { RouteHint } from "./lightning"; -/** - * @generated from protobuf message invoicesrpc.CancelInvoiceMsg - */ -export interface CancelInvoiceMsg { - /** - * Hash corresponding to the (hold) invoice to cancel. When using - * REST, this field must be encoded as base64. - * - * @generated from protobuf field: bytes payment_hash = 1; - */ - paymentHash: Uint8Array; -} -/** - * @generated from protobuf message invoicesrpc.CancelInvoiceResp - */ -export interface CancelInvoiceResp { -} -/** - * @generated from protobuf message invoicesrpc.AddHoldInvoiceRequest - */ -export interface AddHoldInvoiceRequest { - /** - * - * An optional memo to attach along with the invoice. Used for record keeping - * purposes for the invoice's creator, and will also be set in the description - * field of the encoded payment request if the description_hash field is not - * being used. - * - * @generated from protobuf field: string memo = 1; - */ - memo: string; - /** - * The hash of the preimage - * - * @generated from protobuf field: bytes hash = 2; - */ - hash: Uint8Array; - /** - * - * The value of this invoice in satoshis - * - * The fields value and value_msat are mutually exclusive. - * - * @generated from protobuf field: int64 value = 3; - */ - value: number; - /** - * - * The value of this invoice in millisatoshis - * - * The fields value and value_msat are mutually exclusive. - * - * @generated from protobuf field: int64 value_msat = 10; - */ - valueMsat: number; - /** - * - * Hash (SHA-256) of a description of the payment. Used if the description of - * payment (memo) is too long to naturally fit within the description field - * of an encoded payment request. - * - * @generated from protobuf field: bytes description_hash = 4; - */ - descriptionHash: Uint8Array; - /** - * Payment request expiry time in seconds. Default is 3600 (1 hour). - * - * @generated from protobuf field: int64 expiry = 5; - */ - expiry: number; - /** - * Fallback on-chain address. - * - * @generated from protobuf field: string fallback_addr = 6; - */ - fallbackAddr: string; - /** - * Delta to use for the time-lock of the CLTV extended to the final hop. - * - * @generated from protobuf field: uint64 cltv_expiry = 7; - */ - cltvExpiry: number; - /** - * - * Route hints that can each be individually used to assist in reaching the - * invoice's destination. - * - * @generated from protobuf field: repeated lnrpc.RouteHint route_hints = 8; - */ - routeHints: RouteHint[]; - /** - * Whether this invoice should include routing hints for private channels. - * - * @generated from protobuf field: bool private = 9; - */ - private: boolean; -} -/** - * @generated from protobuf message invoicesrpc.AddHoldInvoiceResp - */ -export interface AddHoldInvoiceResp { - /** - * - * A bare-bones invoice for a payment within the Lightning Network. With the - * details of the invoice, the sender has all the data necessary to send a - * payment to the recipient. - * - * @generated from protobuf field: string payment_request = 1; - */ - paymentRequest: string; - /** - * - * The "add" index of this invoice. Each newly created invoice will increment - * this index making it monotonically increasing. Callers to the - * SubscribeInvoices call can use this to instantly get notified of all added - * invoices with an add_index greater than this one. - * - * @generated from protobuf field: uint64 add_index = 2; - */ - addIndex: number; - /** - * - * The payment address of the generated invoice. This value should be used - * in all payments for this invoice as we require it for end to end - * security. - * - * @generated from protobuf field: bytes payment_addr = 3; - */ - paymentAddr: Uint8Array; -} -/** - * @generated from protobuf message invoicesrpc.SettleInvoiceMsg - */ -export interface SettleInvoiceMsg { - /** - * Externally discovered pre-image that should be used to settle the hold - * invoice. - * - * @generated from protobuf field: bytes preimage = 1; - */ - preimage: Uint8Array; -} -/** - * @generated from protobuf message invoicesrpc.SettleInvoiceResp - */ -export interface SettleInvoiceResp { -} -/** - * @generated from protobuf message invoicesrpc.SubscribeSingleInvoiceRequest - */ -export interface SubscribeSingleInvoiceRequest { - /** - * Hash corresponding to the (hold) invoice to subscribe to. When using - * REST, this field must be encoded as base64url. - * - * @generated from protobuf field: bytes r_hash = 2; - */ - rHash: Uint8Array; -} -/** - * @generated from protobuf message invoicesrpc.LookupInvoiceMsg - */ -export interface LookupInvoiceMsg { - /** - * @generated from protobuf oneof: invoice_ref - */ - invoiceRef: { - oneofKind: "paymentHash"; - /** - * When using REST, this field must be encoded as base64. - * - * @generated from protobuf field: bytes payment_hash = 1; - */ - paymentHash: Uint8Array; - } | { - oneofKind: "paymentAddr"; - /** - * @generated from protobuf field: bytes payment_addr = 2; - */ - paymentAddr: Uint8Array; - } | { - oneofKind: "setId"; - /** - * @generated from protobuf field: bytes set_id = 3; - */ - setId: Uint8Array; - } | { - oneofKind: undefined; - }; - /** - * @generated from protobuf field: invoicesrpc.LookupModifier lookup_modifier = 4; - */ - lookupModifier: LookupModifier; -} -/** - * @generated from protobuf enum invoicesrpc.LookupModifier - */ -export declare enum LookupModifier { - /** - * The default look up modifier, no look up behavior is changed. - * - * @generated from protobuf enum value: DEFAULT = 0; - */ - DEFAULT = 0, - /** - * - * Indicates that when a look up is done based on a set_id, then only that set - * of HTLCs related to that set ID should be returned. - * - * @generated from protobuf enum value: HTLC_SET_ONLY = 1; - */ - HTLC_SET_ONLY = 1, - /** - * - * Indicates that when a look up is done using a payment_addr, then no HTLCs - * related to the payment_addr should be returned. This is useful when one - * wants to be able to obtain the set of associated setIDs with a given - * invoice, then look up the sub-invoices "projected" by that set ID. - * - * @generated from protobuf enum value: HTLC_SET_BLANK = 2; - */ - HTLC_SET_BLANK = 2 -} -declare class CancelInvoiceMsg$Type extends MessageType { - constructor(); - create(value?: PartialMessage): CancelInvoiceMsg; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CancelInvoiceMsg): CancelInvoiceMsg; - internalBinaryWrite(message: CancelInvoiceMsg, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message invoicesrpc.CancelInvoiceMsg - */ -export declare const CancelInvoiceMsg: CancelInvoiceMsg$Type; -declare class CancelInvoiceResp$Type extends MessageType { - constructor(); - create(value?: PartialMessage): CancelInvoiceResp; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CancelInvoiceResp): CancelInvoiceResp; - internalBinaryWrite(message: CancelInvoiceResp, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message invoicesrpc.CancelInvoiceResp - */ -export declare const CancelInvoiceResp: CancelInvoiceResp$Type; -declare class AddHoldInvoiceRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): AddHoldInvoiceRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AddHoldInvoiceRequest): AddHoldInvoiceRequest; - internalBinaryWrite(message: AddHoldInvoiceRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message invoicesrpc.AddHoldInvoiceRequest - */ -export declare const AddHoldInvoiceRequest: AddHoldInvoiceRequest$Type; -declare class AddHoldInvoiceResp$Type extends MessageType { - constructor(); - create(value?: PartialMessage): AddHoldInvoiceResp; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AddHoldInvoiceResp): AddHoldInvoiceResp; - internalBinaryWrite(message: AddHoldInvoiceResp, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message invoicesrpc.AddHoldInvoiceResp - */ -export declare const AddHoldInvoiceResp: AddHoldInvoiceResp$Type; -declare class SettleInvoiceMsg$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SettleInvoiceMsg; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SettleInvoiceMsg): SettleInvoiceMsg; - internalBinaryWrite(message: SettleInvoiceMsg, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message invoicesrpc.SettleInvoiceMsg - */ -export declare const SettleInvoiceMsg: SettleInvoiceMsg$Type; -declare class SettleInvoiceResp$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SettleInvoiceResp; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SettleInvoiceResp): SettleInvoiceResp; - internalBinaryWrite(message: SettleInvoiceResp, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message invoicesrpc.SettleInvoiceResp - */ -export declare const SettleInvoiceResp: SettleInvoiceResp$Type; -declare class SubscribeSingleInvoiceRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SubscribeSingleInvoiceRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscribeSingleInvoiceRequest): SubscribeSingleInvoiceRequest; - internalBinaryWrite(message: SubscribeSingleInvoiceRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message invoicesrpc.SubscribeSingleInvoiceRequest - */ -export declare const SubscribeSingleInvoiceRequest: SubscribeSingleInvoiceRequest$Type; -declare class LookupInvoiceMsg$Type extends MessageType { - constructor(); - create(value?: PartialMessage): LookupInvoiceMsg; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LookupInvoiceMsg): LookupInvoiceMsg; - internalBinaryWrite(message: LookupInvoiceMsg, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message invoicesrpc.LookupInvoiceMsg - */ -export declare const LookupInvoiceMsg: LookupInvoiceMsg$Type; -/** - * @generated ServiceType for protobuf service invoicesrpc.Invoices - */ -export declare const Invoices: any; -export {}; diff --git a/proto/lnd/invoices.js b/proto/lnd/invoices.js deleted file mode 100644 index 4f3f7d6b..00000000 --- a/proto/lnd/invoices.js +++ /dev/null @@ -1,495 +0,0 @@ -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "invoices.proto" (package "invoicesrpc", syntax proto3) -// tslint:disable -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "invoices.proto" (package "invoicesrpc", syntax proto3) -// tslint:disable -import { Invoice } from "./lightning.js"; -import { ServiceType } from "@protobuf-ts/runtime-rpc"; -import { WireType } from "@protobuf-ts/runtime"; -import { UnknownFieldHandler } from "@protobuf-ts/runtime"; -import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; -import { MessageType } from "@protobuf-ts/runtime"; -import { RouteHint } from "./lightning.js"; -/** - * @generated from protobuf enum invoicesrpc.LookupModifier - */ -export var LookupModifier; -(function (LookupModifier) { - /** - * The default look up modifier, no look up behavior is changed. - * - * @generated from protobuf enum value: DEFAULT = 0; - */ - LookupModifier[LookupModifier["DEFAULT"] = 0] = "DEFAULT"; - /** - * - * Indicates that when a look up is done based on a set_id, then only that set - * of HTLCs related to that set ID should be returned. - * - * @generated from protobuf enum value: HTLC_SET_ONLY = 1; - */ - LookupModifier[LookupModifier["HTLC_SET_ONLY"] = 1] = "HTLC_SET_ONLY"; - /** - * - * Indicates that when a look up is done using a payment_addr, then no HTLCs - * related to the payment_addr should be returned. This is useful when one - * wants to be able to obtain the set of associated setIDs with a given - * invoice, then look up the sub-invoices "projected" by that set ID. - * - * @generated from protobuf enum value: HTLC_SET_BLANK = 2; - */ - LookupModifier[LookupModifier["HTLC_SET_BLANK"] = 2] = "HTLC_SET_BLANK"; -})(LookupModifier || (LookupModifier = {})); -// @generated message type with reflection information, may provide speed optimized methods -class CancelInvoiceMsg$Type extends MessageType { - constructor() { - super("invoicesrpc.CancelInvoiceMsg", [ - { no: 1, name: "payment_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { paymentHash: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes payment_hash */ 1: - message.paymentHash = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes payment_hash = 1; */ - if (message.paymentHash.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.paymentHash); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message invoicesrpc.CancelInvoiceMsg - */ -export const CancelInvoiceMsg = new CancelInvoiceMsg$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class CancelInvoiceResp$Type extends MessageType { - constructor() { - super("invoicesrpc.CancelInvoiceResp", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message invoicesrpc.CancelInvoiceResp - */ -export const CancelInvoiceResp = new CancelInvoiceResp$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class AddHoldInvoiceRequest$Type extends MessageType { - constructor() { - super("invoicesrpc.AddHoldInvoiceRequest", [ - { no: 1, name: "memo", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "value", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 10, name: "value_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "description_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 5, name: "expiry", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "fallback_addr", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 7, name: "cltv_expiry", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "route_hints", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => RouteHint }, - { no: 9, name: "private", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { memo: "", hash: new Uint8Array(0), value: 0, valueMsat: 0, descriptionHash: new Uint8Array(0), expiry: 0, fallbackAddr: "", cltvExpiry: 0, routeHints: [], private: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string memo */ 1: - message.memo = reader.string(); - break; - case /* bytes hash */ 2: - message.hash = reader.bytes(); - break; - case /* int64 value */ 3: - message.value = reader.int64().toNumber(); - break; - case /* int64 value_msat */ 10: - message.valueMsat = reader.int64().toNumber(); - break; - case /* bytes description_hash */ 4: - message.descriptionHash = reader.bytes(); - break; - case /* int64 expiry */ 5: - message.expiry = reader.int64().toNumber(); - break; - case /* string fallback_addr */ 6: - message.fallbackAddr = reader.string(); - break; - case /* uint64 cltv_expiry */ 7: - message.cltvExpiry = reader.uint64().toNumber(); - break; - case /* repeated lnrpc.RouteHint route_hints */ 8: - message.routeHints.push(RouteHint.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* bool private */ 9: - message.private = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string memo = 1; */ - if (message.memo !== "") - writer.tag(1, WireType.LengthDelimited).string(message.memo); - /* bytes hash = 2; */ - if (message.hash.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.hash); - /* int64 value = 3; */ - if (message.value !== 0) - writer.tag(3, WireType.Varint).int64(message.value); - /* int64 value_msat = 10; */ - if (message.valueMsat !== 0) - writer.tag(10, WireType.Varint).int64(message.valueMsat); - /* bytes description_hash = 4; */ - if (message.descriptionHash.length) - writer.tag(4, WireType.LengthDelimited).bytes(message.descriptionHash); - /* int64 expiry = 5; */ - if (message.expiry !== 0) - writer.tag(5, WireType.Varint).int64(message.expiry); - /* string fallback_addr = 6; */ - if (message.fallbackAddr !== "") - writer.tag(6, WireType.LengthDelimited).string(message.fallbackAddr); - /* uint64 cltv_expiry = 7; */ - if (message.cltvExpiry !== 0) - writer.tag(7, WireType.Varint).uint64(message.cltvExpiry); - /* repeated lnrpc.RouteHint route_hints = 8; */ - for (let i = 0; i < message.routeHints.length; i++) - RouteHint.internalBinaryWrite(message.routeHints[i], writer.tag(8, WireType.LengthDelimited).fork(), options).join(); - /* bool private = 9; */ - if (message.private !== false) - writer.tag(9, WireType.Varint).bool(message.private); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message invoicesrpc.AddHoldInvoiceRequest - */ -export const AddHoldInvoiceRequest = new AddHoldInvoiceRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class AddHoldInvoiceResp$Type extends MessageType { - constructor() { - super("invoicesrpc.AddHoldInvoiceResp", [ - { no: 1, name: "payment_request", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "add_index", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "payment_addr", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { paymentRequest: "", addIndex: 0, paymentAddr: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string payment_request */ 1: - message.paymentRequest = reader.string(); - break; - case /* uint64 add_index */ 2: - message.addIndex = reader.uint64().toNumber(); - break; - case /* bytes payment_addr */ 3: - message.paymentAddr = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string payment_request = 1; */ - if (message.paymentRequest !== "") - writer.tag(1, WireType.LengthDelimited).string(message.paymentRequest); - /* uint64 add_index = 2; */ - if (message.addIndex !== 0) - writer.tag(2, WireType.Varint).uint64(message.addIndex); - /* bytes payment_addr = 3; */ - if (message.paymentAddr.length) - writer.tag(3, WireType.LengthDelimited).bytes(message.paymentAddr); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message invoicesrpc.AddHoldInvoiceResp - */ -export const AddHoldInvoiceResp = new AddHoldInvoiceResp$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SettleInvoiceMsg$Type extends MessageType { - constructor() { - super("invoicesrpc.SettleInvoiceMsg", [ - { no: 1, name: "preimage", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { preimage: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes preimage */ 1: - message.preimage = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes preimage = 1; */ - if (message.preimage.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.preimage); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message invoicesrpc.SettleInvoiceMsg - */ -export const SettleInvoiceMsg = new SettleInvoiceMsg$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SettleInvoiceResp$Type extends MessageType { - constructor() { - super("invoicesrpc.SettleInvoiceResp", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message invoicesrpc.SettleInvoiceResp - */ -export const SettleInvoiceResp = new SettleInvoiceResp$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SubscribeSingleInvoiceRequest$Type extends MessageType { - constructor() { - super("invoicesrpc.SubscribeSingleInvoiceRequest", [ - { no: 2, name: "r_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { rHash: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes r_hash */ 2: - message.rHash = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes r_hash = 2; */ - if (message.rHash.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.rHash); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message invoicesrpc.SubscribeSingleInvoiceRequest - */ -export const SubscribeSingleInvoiceRequest = new SubscribeSingleInvoiceRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class LookupInvoiceMsg$Type extends MessageType { - constructor() { - super("invoicesrpc.LookupInvoiceMsg", [ - { no: 1, name: "payment_hash", kind: "scalar", oneof: "invoiceRef", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "payment_addr", kind: "scalar", oneof: "invoiceRef", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "set_id", kind: "scalar", oneof: "invoiceRef", T: 12 /*ScalarType.BYTES*/ }, - { no: 4, name: "lookup_modifier", kind: "enum", T: () => ["invoicesrpc.LookupModifier", LookupModifier] } - ]); - } - create(value) { - const message = { invoiceRef: { oneofKind: undefined }, lookupModifier: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes payment_hash */ 1: - message.invoiceRef = { - oneofKind: "paymentHash", - paymentHash: reader.bytes() - }; - break; - case /* bytes payment_addr */ 2: - message.invoiceRef = { - oneofKind: "paymentAddr", - paymentAddr: reader.bytes() - }; - break; - case /* bytes set_id */ 3: - message.invoiceRef = { - oneofKind: "setId", - setId: reader.bytes() - }; - break; - case /* invoicesrpc.LookupModifier lookup_modifier */ 4: - message.lookupModifier = reader.int32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes payment_hash = 1; */ - if (message.invoiceRef.oneofKind === "paymentHash") - writer.tag(1, WireType.LengthDelimited).bytes(message.invoiceRef.paymentHash); - /* bytes payment_addr = 2; */ - if (message.invoiceRef.oneofKind === "paymentAddr") - writer.tag(2, WireType.LengthDelimited).bytes(message.invoiceRef.paymentAddr); - /* bytes set_id = 3; */ - if (message.invoiceRef.oneofKind === "setId") - writer.tag(3, WireType.LengthDelimited).bytes(message.invoiceRef.setId); - /* invoicesrpc.LookupModifier lookup_modifier = 4; */ - if (message.lookupModifier !== 0) - writer.tag(4, WireType.Varint).int32(message.lookupModifier); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message invoicesrpc.LookupInvoiceMsg - */ -export const LookupInvoiceMsg = new LookupInvoiceMsg$Type(); -/** - * @generated ServiceType for protobuf service invoicesrpc.Invoices - */ -export const Invoices = new ServiceType("invoicesrpc.Invoices", [ - { name: "SubscribeSingleInvoice", serverStreaming: true, options: {}, I: SubscribeSingleInvoiceRequest, O: Invoice }, - { name: "CancelInvoice", options: {}, I: CancelInvoiceMsg, O: CancelInvoiceResp }, - { name: "AddHoldInvoice", options: {}, I: AddHoldInvoiceRequest, O: AddHoldInvoiceResp }, - { name: "SettleInvoice", options: {}, I: SettleInvoiceMsg, O: SettleInvoiceResp }, - { name: "LookupInvoiceV2", options: {}, I: LookupInvoiceMsg, O: Invoice } -]); diff --git a/proto/lnd/invoices.ts b/proto/lnd/invoices.ts index d9e8f5b8..a42660cb 100644 --- a/proto/lnd/invoices.ts +++ b/proto/lnd/invoices.ts @@ -1,7 +1,7 @@ // @generated by protobuf-ts 2.8.1 with parameter long_type_number // @generated from protobuf file "invoices.proto" (package "invoicesrpc", syntax proto3) // tslint:disable -import { Invoice } from "./lightning"; +import { Invoice } from "./lightning.js"; import { ServiceType } from "@protobuf-ts/runtime-rpc"; import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; import type { IBinaryWriter } from "@protobuf-ts/runtime"; @@ -13,7 +13,7 @@ import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; -import { RouteHint } from "./lightning"; +import { RouteHint } from "./lightning.js"; /** * @generated from protobuf message invoicesrpc.CancelInvoiceMsg */ diff --git a/proto/lnd/lightning.client.d.ts b/proto/lnd/lightning.client.d.ts deleted file mode 100644 index 67e3176a..00000000 --- a/proto/lnd/lightning.client.d.ts +++ /dev/null @@ -1,1481 +0,0 @@ -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "lightning.proto" (package "lnrpc", syntax proto3) -// tslint:disable -import type { RpcTransport } from "@protobuf-ts/runtime-rpc"; -import type { ServiceInfo } from "@protobuf-ts/runtime-rpc"; -import type { LookupHtlcResponse } from "./lightning"; -import type { LookupHtlcRequest } from "./lightning"; -import type { ListAliasesResponse } from "./lightning"; -import type { ListAliasesRequest } from "./lightning"; -import type { CustomMessage } from "./lightning"; -import type { SubscribeCustomMessagesRequest } from "./lightning"; -import type { SendCustomMessageResponse } from "./lightning"; -import type { SendCustomMessageRequest } from "./lightning"; -import type { RPCMiddlewareRequest } from "./lightning"; -import type { RPCMiddlewareResponse } from "./lightning"; -import type { CheckMacPermResponse } from "./lightning"; -import type { CheckMacPermRequest } from "./lightning"; -import type { ListPermissionsResponse } from "./lightning"; -import type { ListPermissionsRequest } from "./lightning"; -import type { DeleteMacaroonIDResponse } from "./lightning"; -import type { DeleteMacaroonIDRequest } from "./lightning"; -import type { ListMacaroonIDsResponse } from "./lightning"; -import type { ListMacaroonIDsRequest } from "./lightning"; -import type { BakeMacaroonResponse } from "./lightning"; -import type { BakeMacaroonRequest } from "./lightning"; -import type { ChannelBackupSubscription } from "./lightning"; -import type { RestoreBackupResponse } from "./lightning"; -import type { RestoreChanBackupRequest } from "./lightning"; -import type { VerifyChanBackupResponse } from "./lightning"; -import type { ChanBackupSnapshot } from "./lightning"; -import type { ChanBackupExportRequest } from "./lightning"; -import type { ChannelBackup } from "./lightning"; -import type { ExportChannelBackupRequest } from "./lightning"; -import type { ForwardingHistoryResponse } from "./lightning"; -import type { ForwardingHistoryRequest } from "./lightning"; -import type { PolicyUpdateResponse } from "./lightning"; -import type { PolicyUpdateRequest } from "./lightning"; -import type { FeeReportResponse } from "./lightning"; -import type { FeeReportRequest } from "./lightning"; -import type { DebugLevelResponse } from "./lightning"; -import type { DebugLevelRequest } from "./lightning"; -import type { GraphTopologyUpdate } from "./lightning"; -import type { GraphTopologySubscription } from "./lightning"; -import type { StopResponse } from "./lightning"; -import type { StopRequest } from "./lightning"; -import type { NetworkInfo } from "./lightning"; -import type { NetworkInfoRequest } from "./lightning"; -import type { QueryRoutesResponse } from "./lightning"; -import type { QueryRoutesRequest } from "./lightning"; -import type { NodeInfo } from "./lightning"; -import type { NodeInfoRequest } from "./lightning"; -import type { ChannelEdge } from "./lightning"; -import type { ChanInfoRequest } from "./lightning"; -import type { NodeMetricsResponse } from "./lightning"; -import type { NodeMetricsRequest } from "./lightning"; -import type { ChannelGraph } from "./lightning"; -import type { ChannelGraphRequest } from "./lightning"; -import type { DeleteAllPaymentsResponse } from "./lightning"; -import type { DeleteAllPaymentsRequest } from "./lightning"; -import type { DeletePaymentResponse } from "./lightning"; -import type { DeletePaymentRequest } from "./lightning"; -import type { ListPaymentsResponse } from "./lightning"; -import type { ListPaymentsRequest } from "./lightning"; -import type { PayReq } from "./lightning"; -import type { PayReqString } from "./lightning"; -import type { InvoiceSubscription } from "./lightning"; -import type { PaymentHash } from "./lightning"; -import type { ListInvoiceResponse } from "./lightning"; -import type { ListInvoiceRequest } from "./lightning"; -import type { AddInvoiceResponse } from "./lightning"; -import type { Invoice } from "./lightning"; -import type { SendToRouteRequest } from "./lightning"; -import type { SendResponse } from "./lightning"; -import type { SendRequest } from "./lightning"; -import type { AbandonChannelResponse } from "./lightning"; -import type { AbandonChannelRequest } from "./lightning"; -import type { CloseStatusUpdate } from "./lightning"; -import type { CloseChannelRequest } from "./lightning"; -import type { ChannelAcceptRequest } from "./lightning"; -import type { ChannelAcceptResponse } from "./lightning"; -import type { DuplexStreamingCall } from "@protobuf-ts/runtime-rpc"; -import type { FundingStateStepResp } from "./lightning"; -import type { FundingTransitionMsg } from "./lightning"; -import type { BatchOpenChannelResponse } from "./lightning"; -import type { BatchOpenChannelRequest } from "./lightning"; -import type { OpenStatusUpdate } from "./lightning"; -import type { ChannelPoint } from "./lightning"; -import type { OpenChannelRequest } from "./lightning"; -import type { ClosedChannelsResponse } from "./lightning"; -import type { ClosedChannelsRequest } from "./lightning"; -import type { ChannelEventUpdate } from "./lightning"; -import type { ChannelEventSubscription } from "./lightning"; -import type { ListChannelsResponse } from "./lightning"; -import type { ListChannelsRequest } from "./lightning"; -import type { PendingChannelsResponse } from "./lightning"; -import type { PendingChannelsRequest } from "./lightning"; -import type { GetRecoveryInfoResponse } from "./lightning"; -import type { GetRecoveryInfoRequest } from "./lightning"; -import type { GetInfoResponse } from "./lightning"; -import type { GetInfoRequest } from "./lightning"; -import type { PeerEvent } from "./lightning"; -import type { PeerEventSubscription } from "./lightning"; -import type { ListPeersResponse } from "./lightning"; -import type { ListPeersRequest } from "./lightning"; -import type { DisconnectPeerResponse } from "./lightning"; -import type { DisconnectPeerRequest } from "./lightning"; -import type { ConnectPeerResponse } from "./lightning"; -import type { ConnectPeerRequest } from "./lightning"; -import type { VerifyMessageResponse } from "./lightning"; -import type { VerifyMessageRequest } from "./lightning"; -import type { SignMessageResponse } from "./lightning"; -import type { SignMessageRequest } from "./lightning"; -import type { NewAddressResponse } from "./lightning"; -import type { NewAddressRequest } from "./lightning"; -import type { SendManyResponse } from "./lightning"; -import type { SendManyRequest } from "./lightning"; -import type { Transaction } from "./lightning"; -import type { ServerStreamingCall } from "@protobuf-ts/runtime-rpc"; -import type { ListUnspentResponse } from "./lightning"; -import type { ListUnspentRequest } from "./lightning"; -import type { SendCoinsResponse } from "./lightning"; -import type { SendCoinsRequest } from "./lightning"; -import type { EstimateFeeResponse } from "./lightning"; -import type { EstimateFeeRequest } from "./lightning"; -import type { TransactionDetails } from "./lightning"; -import type { GetTransactionsRequest } from "./lightning"; -import type { ChannelBalanceResponse } from "./lightning"; -import type { ChannelBalanceRequest } from "./lightning"; -import type { WalletBalanceResponse } from "./lightning"; -import type { WalletBalanceRequest } from "./lightning"; -import type { UnaryCall } from "@protobuf-ts/runtime-rpc"; -import type { RpcOptions } from "@protobuf-ts/runtime-rpc"; -/** - * Lightning is the main RPC server of the daemon. - * - * @generated from protobuf service lnrpc.Lightning - */ -export interface ILightningClient { - /** - * lncli: `walletbalance` - * WalletBalance returns total unspent outputs(confirmed and unconfirmed), all - * confirmed unspent outputs and all unconfirmed unspent outputs under control - * of the wallet. - * - * @generated from protobuf rpc: WalletBalance(lnrpc.WalletBalanceRequest) returns (lnrpc.WalletBalanceResponse); - */ - walletBalance(input: WalletBalanceRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `channelbalance` - * ChannelBalance returns a report on the total funds across all open channels, - * categorized in local/remote, pending local/remote and unsettled local/remote - * balances. - * - * @generated from protobuf rpc: ChannelBalance(lnrpc.ChannelBalanceRequest) returns (lnrpc.ChannelBalanceResponse); - */ - channelBalance(input: ChannelBalanceRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `listchaintxns` - * GetTransactions returns a list describing all the known transactions - * relevant to the wallet. - * - * @generated from protobuf rpc: GetTransactions(lnrpc.GetTransactionsRequest) returns (lnrpc.TransactionDetails); - */ - getTransactions(input: GetTransactionsRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `estimatefee` - * EstimateFee asks the chain backend to estimate the fee rate and total fees - * for a transaction that pays to multiple specified outputs. - * - * When using REST, the `AddrToAmount` map type can be set by appending - * `&AddrToAmount[
]=` to the URL. Unfortunately this - * map type doesn't appear in the REST API documentation because of a bug in - * the grpc-gateway library. - * - * @generated from protobuf rpc: EstimateFee(lnrpc.EstimateFeeRequest) returns (lnrpc.EstimateFeeResponse); - */ - estimateFee(input: EstimateFeeRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `sendcoins` - * SendCoins executes a request to send coins to a particular address. Unlike - * SendMany, this RPC call only allows creating a single output at a time. If - * neither target_conf, or sat_per_vbyte are set, then the internal wallet will - * consult its fee model to determine a fee for the default confirmation - * target. - * - * @generated from protobuf rpc: SendCoins(lnrpc.SendCoinsRequest) returns (lnrpc.SendCoinsResponse); - */ - sendCoins(input: SendCoinsRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `listunspent` - * Deprecated, use walletrpc.ListUnspent instead. - * - * ListUnspent returns a list of all utxos spendable by the wallet with a - * number of confirmations between the specified minimum and maximum. - * - * @generated from protobuf rpc: ListUnspent(lnrpc.ListUnspentRequest) returns (lnrpc.ListUnspentResponse); - */ - listUnspent(input: ListUnspentRequest, options?: RpcOptions): UnaryCall; - /** - * - * SubscribeTransactions creates a uni-directional stream from the server to - * the client in which any newly discovered transactions relevant to the - * wallet are sent over. - * - * @generated from protobuf rpc: SubscribeTransactions(lnrpc.GetTransactionsRequest) returns (stream lnrpc.Transaction); - */ - subscribeTransactions(input: GetTransactionsRequest, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `sendmany` - * SendMany handles a request for a transaction that creates multiple specified - * outputs in parallel. If neither target_conf, or sat_per_vbyte are set, then - * the internal wallet will consult its fee model to determine a fee for the - * default confirmation target. - * - * @generated from protobuf rpc: SendMany(lnrpc.SendManyRequest) returns (lnrpc.SendManyResponse); - */ - sendMany(input: SendManyRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `newaddress` - * NewAddress creates a new address under control of the local wallet. - * - * @generated from protobuf rpc: NewAddress(lnrpc.NewAddressRequest) returns (lnrpc.NewAddressResponse); - */ - newAddress(input: NewAddressRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `signmessage` - * SignMessage signs a message with this node's private key. The returned - * signature string is `zbase32` encoded and pubkey recoverable, meaning that - * only the message digest and signature are needed for verification. - * - * @generated from protobuf rpc: SignMessage(lnrpc.SignMessageRequest) returns (lnrpc.SignMessageResponse); - */ - signMessage(input: SignMessageRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `verifymessage` - * VerifyMessage verifies a signature over a msg. The signature must be - * zbase32 encoded and signed by an active node in the resident node's - * channel database. In addition to returning the validity of the signature, - * VerifyMessage also returns the recovered pubkey from the signature. - * - * @generated from protobuf rpc: VerifyMessage(lnrpc.VerifyMessageRequest) returns (lnrpc.VerifyMessageResponse); - */ - verifyMessage(input: VerifyMessageRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `connect` - * ConnectPeer attempts to establish a connection to a remote peer. This is at - * the networking level, and is used for communication between nodes. This is - * distinct from establishing a channel with a peer. - * - * @generated from protobuf rpc: ConnectPeer(lnrpc.ConnectPeerRequest) returns (lnrpc.ConnectPeerResponse); - */ - connectPeer(input: ConnectPeerRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `disconnect` - * DisconnectPeer attempts to disconnect one peer from another identified by a - * given pubKey. In the case that we currently have a pending or active channel - * with the target peer, then this action will be not be allowed. - * - * @generated from protobuf rpc: DisconnectPeer(lnrpc.DisconnectPeerRequest) returns (lnrpc.DisconnectPeerResponse); - */ - disconnectPeer(input: DisconnectPeerRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `listpeers` - * ListPeers returns a verbose listing of all currently active peers. - * - * @generated from protobuf rpc: ListPeers(lnrpc.ListPeersRequest) returns (lnrpc.ListPeersResponse); - */ - listPeers(input: ListPeersRequest, options?: RpcOptions): UnaryCall; - /** - * - * SubscribePeerEvents creates a uni-directional stream from the server to - * the client in which any events relevant to the state of peers are sent - * over. Events include peers going online and offline. - * - * @generated from protobuf rpc: SubscribePeerEvents(lnrpc.PeerEventSubscription) returns (stream lnrpc.PeerEvent); - */ - subscribePeerEvents(input: PeerEventSubscription, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `getinfo` - * GetInfo returns general information concerning the lightning node including - * it's identity pubkey, alias, the chains it is connected to, and information - * concerning the number of open+pending channels. - * - * @generated from protobuf rpc: GetInfo(lnrpc.GetInfoRequest) returns (lnrpc.GetInfoResponse); - */ - getInfo(input: GetInfoRequest, options?: RpcOptions): UnaryCall; - /** - * * lncli: `getrecoveryinfo` - * GetRecoveryInfo returns information concerning the recovery mode including - * whether it's in a recovery mode, whether the recovery is finished, and the - * progress made so far. - * - * @generated from protobuf rpc: GetRecoveryInfo(lnrpc.GetRecoveryInfoRequest) returns (lnrpc.GetRecoveryInfoResponse); - */ - getRecoveryInfo(input: GetRecoveryInfoRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `pendingchannels` - * PendingChannels returns a list of all the channels that are currently - * considered "pending". A channel is pending if it has finished the funding - * workflow and is waiting for confirmations for the funding txn, or is in the - * process of closure, either initiated cooperatively or non-cooperatively. - * - * @generated from protobuf rpc: PendingChannels(lnrpc.PendingChannelsRequest) returns (lnrpc.PendingChannelsResponse); - */ - pendingChannels(input: PendingChannelsRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `listchannels` - * ListChannels returns a description of all the open channels that this node - * is a participant in. - * - * @generated from protobuf rpc: ListChannels(lnrpc.ListChannelsRequest) returns (lnrpc.ListChannelsResponse); - */ - listChannels(input: ListChannelsRequest, options?: RpcOptions): UnaryCall; - /** - * - * SubscribeChannelEvents creates a uni-directional stream from the server to - * the client in which any updates relevant to the state of the channels are - * sent over. Events include new active channels, inactive channels, and closed - * channels. - * - * @generated from protobuf rpc: SubscribeChannelEvents(lnrpc.ChannelEventSubscription) returns (stream lnrpc.ChannelEventUpdate); - */ - subscribeChannelEvents(input: ChannelEventSubscription, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `closedchannels` - * ClosedChannels returns a description of all the closed channels that - * this node was a participant in. - * - * @generated from protobuf rpc: ClosedChannels(lnrpc.ClosedChannelsRequest) returns (lnrpc.ClosedChannelsResponse); - */ - closedChannels(input: ClosedChannelsRequest, options?: RpcOptions): UnaryCall; - /** - * - * OpenChannelSync is a synchronous version of the OpenChannel RPC call. This - * call is meant to be consumed by clients to the REST proxy. As with all - * other sync calls, all byte slices are intended to be populated as hex - * encoded strings. - * - * @generated from protobuf rpc: OpenChannelSync(lnrpc.OpenChannelRequest) returns (lnrpc.ChannelPoint); - */ - openChannelSync(input: OpenChannelRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `openchannel` - * OpenChannel attempts to open a singly funded channel specified in the - * request to a remote peer. Users are able to specify a target number of - * blocks that the funding transaction should be confirmed in, or a manual fee - * rate to us for the funding transaction. If neither are specified, then a - * lax block confirmation target is used. Each OpenStatusUpdate will return - * the pending channel ID of the in-progress channel. Depending on the - * arguments specified in the OpenChannelRequest, this pending channel ID can - * then be used to manually progress the channel funding flow. - * - * @generated from protobuf rpc: OpenChannel(lnrpc.OpenChannelRequest) returns (stream lnrpc.OpenStatusUpdate); - */ - openChannel(input: OpenChannelRequest, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `batchopenchannel` - * BatchOpenChannel attempts to open multiple single-funded channels in a - * single transaction in an atomic way. This means either all channel open - * requests succeed at once or all attempts are aborted if any of them fail. - * This is the safer variant of using PSBTs to manually fund a batch of - * channels through the OpenChannel RPC. - * - * @generated from protobuf rpc: BatchOpenChannel(lnrpc.BatchOpenChannelRequest) returns (lnrpc.BatchOpenChannelResponse); - */ - batchOpenChannel(input: BatchOpenChannelRequest, options?: RpcOptions): UnaryCall; - /** - * - * FundingStateStep is an advanced funding related call that allows the caller - * to either execute some preparatory steps for a funding workflow, or - * manually progress a funding workflow. The primary way a funding flow is - * identified is via its pending channel ID. As an example, this method can be - * used to specify that we're expecting a funding flow for a particular - * pending channel ID, for which we need to use specific parameters. - * Alternatively, this can be used to interactively drive PSBT signing for - * funding for partially complete funding transactions. - * - * @generated from protobuf rpc: FundingStateStep(lnrpc.FundingTransitionMsg) returns (lnrpc.FundingStateStepResp); - */ - fundingStateStep(input: FundingTransitionMsg, options?: RpcOptions): UnaryCall; - /** - * - * ChannelAcceptor dispatches a bi-directional streaming RPC in which - * OpenChannel requests are sent to the client and the client responds with - * a boolean that tells LND whether or not to accept the channel. This allows - * node operators to specify their own criteria for accepting inbound channels - * through a single persistent connection. - * - * @generated from protobuf rpc: ChannelAcceptor(stream lnrpc.ChannelAcceptResponse) returns (stream lnrpc.ChannelAcceptRequest); - */ - channelAcceptor(options?: RpcOptions): DuplexStreamingCall; - /** - * lncli: `closechannel` - * CloseChannel attempts to close an active channel identified by its channel - * outpoint (ChannelPoint). The actions of this method can additionally be - * augmented to attempt a force close after a timeout period in the case of an - * inactive peer. If a non-force close (cooperative closure) is requested, - * then the user can specify either a target number of blocks until the - * closure transaction is confirmed, or a manual fee rate. If neither are - * specified, then a default lax, block confirmation target is used. - * - * @generated from protobuf rpc: CloseChannel(lnrpc.CloseChannelRequest) returns (stream lnrpc.CloseStatusUpdate); - */ - closeChannel(input: CloseChannelRequest, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `abandonchannel` - * AbandonChannel removes all channel state from the database except for a - * close summary. This method can be used to get rid of permanently unusable - * channels due to bugs fixed in newer versions of lnd. This method can also be - * used to remove externally funded channels where the funding transaction was - * never broadcast. Only available for non-externally funded channels in dev - * build. - * - * @generated from protobuf rpc: AbandonChannel(lnrpc.AbandonChannelRequest) returns (lnrpc.AbandonChannelResponse); - */ - abandonChannel(input: AbandonChannelRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `sendpayment` - * Deprecated, use routerrpc.SendPaymentV2. SendPayment dispatches a - * bi-directional streaming RPC for sending payments through the Lightning - * Network. A single RPC invocation creates a persistent bi-directional - * stream allowing clients to rapidly send payments through the Lightning - * Network with a single persistent connection. - * - * @deprecated - * @generated from protobuf rpc: SendPayment(stream lnrpc.SendRequest) returns (stream lnrpc.SendResponse); - */ - sendPayment(options?: RpcOptions): DuplexStreamingCall; - /** - * - * SendPaymentSync is the synchronous non-streaming version of SendPayment. - * This RPC is intended to be consumed by clients of the REST proxy. - * Additionally, this RPC expects the destination's public key and the payment - * hash (if any) to be encoded as hex strings. - * - * @generated from protobuf rpc: SendPaymentSync(lnrpc.SendRequest) returns (lnrpc.SendResponse); - */ - sendPaymentSync(input: SendRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `sendtoroute` - * Deprecated, use routerrpc.SendToRouteV2. SendToRoute is a bi-directional - * streaming RPC for sending payment through the Lightning Network. This - * method differs from SendPayment in that it allows users to specify a full - * route manually. This can be used for things like rebalancing, and atomic - * swaps. - * - * @deprecated - * @generated from protobuf rpc: SendToRoute(stream lnrpc.SendToRouteRequest) returns (stream lnrpc.SendResponse); - */ - sendToRoute(options?: RpcOptions): DuplexStreamingCall; - /** - * - * SendToRouteSync is a synchronous version of SendToRoute. It Will block - * until the payment either fails or succeeds. - * - * @generated from protobuf rpc: SendToRouteSync(lnrpc.SendToRouteRequest) returns (lnrpc.SendResponse); - */ - sendToRouteSync(input: SendToRouteRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `addinvoice` - * AddInvoice attempts to add a new invoice to the invoice database. Any - * duplicated invoices are rejected, therefore all invoices *must* have a - * unique payment preimage. - * - * @generated from protobuf rpc: AddInvoice(lnrpc.Invoice) returns (lnrpc.AddInvoiceResponse); - */ - addInvoice(input: Invoice, options?: RpcOptions): UnaryCall; - /** - * lncli: `listinvoices` - * ListInvoices returns a list of all the invoices currently stored within the - * database. Any active debug invoices are ignored. It has full support for - * paginated responses, allowing users to query for specific invoices through - * their add_index. This can be done by using either the first_index_offset or - * last_index_offset fields included in the response as the index_offset of the - * next request. By default, the first 100 invoices created will be returned. - * Backwards pagination is also supported through the Reversed flag. - * - * @generated from protobuf rpc: ListInvoices(lnrpc.ListInvoiceRequest) returns (lnrpc.ListInvoiceResponse); - */ - listInvoices(input: ListInvoiceRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `lookupinvoice` - * LookupInvoice attempts to look up an invoice according to its payment hash. - * The passed payment hash *must* be exactly 32 bytes, if not, an error is - * returned. - * - * @generated from protobuf rpc: LookupInvoice(lnrpc.PaymentHash) returns (lnrpc.Invoice); - */ - lookupInvoice(input: PaymentHash, options?: RpcOptions): UnaryCall; - /** - * - * SubscribeInvoices returns a uni-directional stream (server -> client) for - * notifying the client of newly added/settled invoices. The caller can - * optionally specify the add_index and/or the settle_index. If the add_index - * is specified, then we'll first start by sending add invoice events for all - * invoices with an add_index greater than the specified value. If the - * settle_index is specified, the next, we'll send out all settle events for - * invoices with a settle_index greater than the specified value. One or both - * of these fields can be set. If no fields are set, then we'll only send out - * the latest add/settle events. - * - * @generated from protobuf rpc: SubscribeInvoices(lnrpc.InvoiceSubscription) returns (stream lnrpc.Invoice); - */ - subscribeInvoices(input: InvoiceSubscription, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `decodepayreq` - * DecodePayReq takes an encoded payment request string and attempts to decode - * it, returning a full description of the conditions encoded within the - * payment request. - * - * @generated from protobuf rpc: DecodePayReq(lnrpc.PayReqString) returns (lnrpc.PayReq); - */ - decodePayReq(input: PayReqString, options?: RpcOptions): UnaryCall; - /** - * lncli: `listpayments` - * ListPayments returns a list of all outgoing payments. - * - * @generated from protobuf rpc: ListPayments(lnrpc.ListPaymentsRequest) returns (lnrpc.ListPaymentsResponse); - */ - listPayments(input: ListPaymentsRequest, options?: RpcOptions): UnaryCall; - /** - * - * DeletePayment deletes an outgoing payment from DB. Note that it will not - * attempt to delete an In-Flight payment, since that would be unsafe. - * - * @generated from protobuf rpc: DeletePayment(lnrpc.DeletePaymentRequest) returns (lnrpc.DeletePaymentResponse); - */ - deletePayment(input: DeletePaymentRequest, options?: RpcOptions): UnaryCall; - /** - * - * DeleteAllPayments deletes all outgoing payments from DB. Note that it will - * not attempt to delete In-Flight payments, since that would be unsafe. - * - * @generated from protobuf rpc: DeleteAllPayments(lnrpc.DeleteAllPaymentsRequest) returns (lnrpc.DeleteAllPaymentsResponse); - */ - deleteAllPayments(input: DeleteAllPaymentsRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `describegraph` - * DescribeGraph returns a description of the latest graph state from the - * point of view of the node. The graph information is partitioned into two - * components: all the nodes/vertexes, and all the edges that connect the - * vertexes themselves. As this is a directed graph, the edges also contain - * the node directional specific routing policy which includes: the time lock - * delta, fee information, etc. - * - * @generated from protobuf rpc: DescribeGraph(lnrpc.ChannelGraphRequest) returns (lnrpc.ChannelGraph); - */ - describeGraph(input: ChannelGraphRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `getnodemetrics` - * GetNodeMetrics returns node metrics calculated from the graph. Currently - * the only supported metric is betweenness centrality of individual nodes. - * - * @generated from protobuf rpc: GetNodeMetrics(lnrpc.NodeMetricsRequest) returns (lnrpc.NodeMetricsResponse); - */ - getNodeMetrics(input: NodeMetricsRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `getchaninfo` - * GetChanInfo returns the latest authenticated network announcement for the - * given channel identified by its channel ID: an 8-byte integer which - * uniquely identifies the location of transaction's funding output within the - * blockchain. - * - * @generated from protobuf rpc: GetChanInfo(lnrpc.ChanInfoRequest) returns (lnrpc.ChannelEdge); - */ - getChanInfo(input: ChanInfoRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `getnodeinfo` - * GetNodeInfo returns the latest advertised, aggregated, and authenticated - * channel information for the specified node identified by its public key. - * - * @generated from protobuf rpc: GetNodeInfo(lnrpc.NodeInfoRequest) returns (lnrpc.NodeInfo); - */ - getNodeInfo(input: NodeInfoRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `queryroutes` - * QueryRoutes attempts to query the daemon's Channel Router for a possible - * route to a target destination capable of carrying a specific amount of - * satoshis. The returned route contains the full details required to craft and - * send an HTLC, also including the necessary information that should be - * present within the Sphinx packet encapsulated within the HTLC. - * - * When using REST, the `dest_custom_records` map type can be set by appending - * `&dest_custom_records[]=` - * to the URL. Unfortunately this map type doesn't appear in the REST API - * documentation because of a bug in the grpc-gateway library. - * - * @generated from protobuf rpc: QueryRoutes(lnrpc.QueryRoutesRequest) returns (lnrpc.QueryRoutesResponse); - */ - queryRoutes(input: QueryRoutesRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `getnetworkinfo` - * GetNetworkInfo returns some basic stats about the known channel graph from - * the point of view of the node. - * - * @generated from protobuf rpc: GetNetworkInfo(lnrpc.NetworkInfoRequest) returns (lnrpc.NetworkInfo); - */ - getNetworkInfo(input: NetworkInfoRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `stop` - * StopDaemon will send a shutdown request to the interrupt handler, triggering - * a graceful shutdown of the daemon. - * - * @generated from protobuf rpc: StopDaemon(lnrpc.StopRequest) returns (lnrpc.StopResponse); - */ - stopDaemon(input: StopRequest, options?: RpcOptions): UnaryCall; - /** - * - * SubscribeChannelGraph launches a streaming RPC that allows the caller to - * receive notifications upon any changes to the channel graph topology from - * the point of view of the responding node. Events notified include: new - * nodes coming online, nodes updating their authenticated attributes, new - * channels being advertised, updates in the routing policy for a directional - * channel edge, and when channels are closed on-chain. - * - * @generated from protobuf rpc: SubscribeChannelGraph(lnrpc.GraphTopologySubscription) returns (stream lnrpc.GraphTopologyUpdate); - */ - subscribeChannelGraph(input: GraphTopologySubscription, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `debuglevel` - * DebugLevel allows a caller to programmatically set the logging verbosity of - * lnd. The logging can be targeted according to a coarse daemon-wide logging - * level, or in a granular fashion to specify the logging for a target - * sub-system. - * - * @generated from protobuf rpc: DebugLevel(lnrpc.DebugLevelRequest) returns (lnrpc.DebugLevelResponse); - */ - debugLevel(input: DebugLevelRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `feereport` - * FeeReport allows the caller to obtain a report detailing the current fee - * schedule enforced by the node globally for each channel. - * - * @generated from protobuf rpc: FeeReport(lnrpc.FeeReportRequest) returns (lnrpc.FeeReportResponse); - */ - feeReport(input: FeeReportRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `updatechanpolicy` - * UpdateChannelPolicy allows the caller to update the fee schedule and - * channel policies for all channels globally, or a particular channel. - * - * @generated from protobuf rpc: UpdateChannelPolicy(lnrpc.PolicyUpdateRequest) returns (lnrpc.PolicyUpdateResponse); - */ - updateChannelPolicy(input: PolicyUpdateRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `fwdinghistory` - * ForwardingHistory allows the caller to query the htlcswitch for a record of - * all HTLCs forwarded within the target time range, and integer offset - * within that time range, for a maximum number of events. If no maximum number - * of events is specified, up to 100 events will be returned. If no time-range - * is specified, then events will be returned in the order that they occured. - * - * A list of forwarding events are returned. The size of each forwarding event - * is 40 bytes, and the max message size able to be returned in gRPC is 4 MiB. - * As a result each message can only contain 50k entries. Each response has - * the index offset of the last entry. The index offset can be provided to the - * request to allow the caller to skip a series of records. - * - * @generated from protobuf rpc: ForwardingHistory(lnrpc.ForwardingHistoryRequest) returns (lnrpc.ForwardingHistoryResponse); - */ - forwardingHistory(input: ForwardingHistoryRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `exportchanbackup` - * ExportChannelBackup attempts to return an encrypted static channel backup - * for the target channel identified by it channel point. The backup is - * encrypted with a key generated from the aezeed seed of the user. The - * returned backup can either be restored using the RestoreChannelBackup - * method once lnd is running, or via the InitWallet and UnlockWallet methods - * from the WalletUnlocker service. - * - * @generated from protobuf rpc: ExportChannelBackup(lnrpc.ExportChannelBackupRequest) returns (lnrpc.ChannelBackup); - */ - exportChannelBackup(input: ExportChannelBackupRequest, options?: RpcOptions): UnaryCall; - /** - * - * ExportAllChannelBackups returns static channel backups for all existing - * channels known to lnd. A set of regular singular static channel backups for - * each channel are returned. Additionally, a multi-channel backup is returned - * as well, which contains a single encrypted blob containing the backups of - * each channel. - * - * @generated from protobuf rpc: ExportAllChannelBackups(lnrpc.ChanBackupExportRequest) returns (lnrpc.ChanBackupSnapshot); - */ - exportAllChannelBackups(input: ChanBackupExportRequest, options?: RpcOptions): UnaryCall; - /** - * - * VerifyChanBackup allows a caller to verify the integrity of a channel backup - * snapshot. This method will accept either a packed Single or a packed Multi. - * Specifying both will result in an error. - * - * @generated from protobuf rpc: VerifyChanBackup(lnrpc.ChanBackupSnapshot) returns (lnrpc.VerifyChanBackupResponse); - */ - verifyChanBackup(input: ChanBackupSnapshot, options?: RpcOptions): UnaryCall; - /** - * lncli: `restorechanbackup` - * RestoreChannelBackups accepts a set of singular channel backups, or a - * single encrypted multi-chan backup and attempts to recover any funds - * remaining within the channel. If we are able to unpack the backup, then the - * new channel will be shown under listchannels, as well as pending channels. - * - * @generated from protobuf rpc: RestoreChannelBackups(lnrpc.RestoreChanBackupRequest) returns (lnrpc.RestoreBackupResponse); - */ - restoreChannelBackups(input: RestoreChanBackupRequest, options?: RpcOptions): UnaryCall; - /** - * - * SubscribeChannelBackups allows a client to sub-subscribe to the most up to - * date information concerning the state of all channel backups. Each time a - * new channel is added, we return the new set of channels, along with a - * multi-chan backup containing the backup info for all channels. Each time a - * channel is closed, we send a new update, which contains new new chan back - * ups, but the updated set of encrypted multi-chan backups with the closed - * channel(s) removed. - * - * @generated from protobuf rpc: SubscribeChannelBackups(lnrpc.ChannelBackupSubscription) returns (stream lnrpc.ChanBackupSnapshot); - */ - subscribeChannelBackups(input: ChannelBackupSubscription, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `bakemacaroon` - * BakeMacaroon allows the creation of a new macaroon with custom read and - * write permissions. No first-party caveats are added since this can be done - * offline. - * - * @generated from protobuf rpc: BakeMacaroon(lnrpc.BakeMacaroonRequest) returns (lnrpc.BakeMacaroonResponse); - */ - bakeMacaroon(input: BakeMacaroonRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `listmacaroonids` - * ListMacaroonIDs returns all root key IDs that are in use. - * - * @generated from protobuf rpc: ListMacaroonIDs(lnrpc.ListMacaroonIDsRequest) returns (lnrpc.ListMacaroonIDsResponse); - */ - listMacaroonIDs(input: ListMacaroonIDsRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `deletemacaroonid` - * DeleteMacaroonID deletes the specified macaroon ID and invalidates all - * macaroons derived from that ID. - * - * @generated from protobuf rpc: DeleteMacaroonID(lnrpc.DeleteMacaroonIDRequest) returns (lnrpc.DeleteMacaroonIDResponse); - */ - deleteMacaroonID(input: DeleteMacaroonIDRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `listpermissions` - * ListPermissions lists all RPC method URIs and their required macaroon - * permissions to access them. - * - * @generated from protobuf rpc: ListPermissions(lnrpc.ListPermissionsRequest) returns (lnrpc.ListPermissionsResponse); - */ - listPermissions(input: ListPermissionsRequest, options?: RpcOptions): UnaryCall; - /** - * - * CheckMacaroonPermissions checks whether a request follows the constraints - * imposed on the macaroon and that the macaroon is authorized to follow the - * provided permissions. - * - * @generated from protobuf rpc: CheckMacaroonPermissions(lnrpc.CheckMacPermRequest) returns (lnrpc.CheckMacPermResponse); - */ - checkMacaroonPermissions(input: CheckMacPermRequest, options?: RpcOptions): UnaryCall; - /** - * - * RegisterRPCMiddleware adds a new gRPC middleware to the interceptor chain. A - * gRPC middleware is software component external to lnd that aims to add - * additional business logic to lnd by observing/intercepting/validating - * incoming gRPC client requests and (if needed) replacing/overwriting outgoing - * messages before they're sent to the client. When registering the middleware - * must identify itself and indicate what custom macaroon caveats it wants to - * be responsible for. Only requests that contain a macaroon with that specific - * custom caveat are then sent to the middleware for inspection. The other - * option is to register for the read-only mode in which all requests/responses - * are forwarded for interception to the middleware but the middleware is not - * allowed to modify any responses. As a security measure, _no_ middleware can - * modify responses for requests made with _unencumbered_ macaroons! - * - * @generated from protobuf rpc: RegisterRPCMiddleware(stream lnrpc.RPCMiddlewareResponse) returns (stream lnrpc.RPCMiddlewareRequest); - */ - registerRPCMiddleware(options?: RpcOptions): DuplexStreamingCall; - /** - * lncli: `sendcustom` - * SendCustomMessage sends a custom peer message. - * - * @generated from protobuf rpc: SendCustomMessage(lnrpc.SendCustomMessageRequest) returns (lnrpc.SendCustomMessageResponse); - */ - sendCustomMessage(input: SendCustomMessageRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `subscribecustom` - * SubscribeCustomMessages subscribes to a stream of incoming custom peer - * messages. - * - * @generated from protobuf rpc: SubscribeCustomMessages(lnrpc.SubscribeCustomMessagesRequest) returns (stream lnrpc.CustomMessage); - */ - subscribeCustomMessages(input: SubscribeCustomMessagesRequest, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `listaliases` - * ListAliases returns the set of all aliases that have ever existed with - * their confirmed SCID (if it exists) and/or the base SCID (in the case of - * zero conf). - * - * @generated from protobuf rpc: ListAliases(lnrpc.ListAliasesRequest) returns (lnrpc.ListAliasesResponse); - */ - listAliases(input: ListAliasesRequest, options?: RpcOptions): UnaryCall; - /** - * @generated from protobuf rpc: LookupHtlc(lnrpc.LookupHtlcRequest) returns (lnrpc.LookupHtlcResponse); - */ - lookupHtlc(input: LookupHtlcRequest, options?: RpcOptions): UnaryCall; -} -/** - * Lightning is the main RPC server of the daemon. - * - * @generated from protobuf service lnrpc.Lightning - */ -export declare class LightningClient implements ILightningClient, ServiceInfo { - private readonly _transport; - typeName: any; - methods: any; - options: any; - constructor(_transport: RpcTransport); - /** - * lncli: `walletbalance` - * WalletBalance returns total unspent outputs(confirmed and unconfirmed), all - * confirmed unspent outputs and all unconfirmed unspent outputs under control - * of the wallet. - * - * @generated from protobuf rpc: WalletBalance(lnrpc.WalletBalanceRequest) returns (lnrpc.WalletBalanceResponse); - */ - walletBalance(input: WalletBalanceRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `channelbalance` - * ChannelBalance returns a report on the total funds across all open channels, - * categorized in local/remote, pending local/remote and unsettled local/remote - * balances. - * - * @generated from protobuf rpc: ChannelBalance(lnrpc.ChannelBalanceRequest) returns (lnrpc.ChannelBalanceResponse); - */ - channelBalance(input: ChannelBalanceRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `listchaintxns` - * GetTransactions returns a list describing all the known transactions - * relevant to the wallet. - * - * @generated from protobuf rpc: GetTransactions(lnrpc.GetTransactionsRequest) returns (lnrpc.TransactionDetails); - */ - getTransactions(input: GetTransactionsRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `estimatefee` - * EstimateFee asks the chain backend to estimate the fee rate and total fees - * for a transaction that pays to multiple specified outputs. - * - * When using REST, the `AddrToAmount` map type can be set by appending - * `&AddrToAmount[
]=` to the URL. Unfortunately this - * map type doesn't appear in the REST API documentation because of a bug in - * the grpc-gateway library. - * - * @generated from protobuf rpc: EstimateFee(lnrpc.EstimateFeeRequest) returns (lnrpc.EstimateFeeResponse); - */ - estimateFee(input: EstimateFeeRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `sendcoins` - * SendCoins executes a request to send coins to a particular address. Unlike - * SendMany, this RPC call only allows creating a single output at a time. If - * neither target_conf, or sat_per_vbyte are set, then the internal wallet will - * consult its fee model to determine a fee for the default confirmation - * target. - * - * @generated from protobuf rpc: SendCoins(lnrpc.SendCoinsRequest) returns (lnrpc.SendCoinsResponse); - */ - sendCoins(input: SendCoinsRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `listunspent` - * Deprecated, use walletrpc.ListUnspent instead. - * - * ListUnspent returns a list of all utxos spendable by the wallet with a - * number of confirmations between the specified minimum and maximum. - * - * @generated from protobuf rpc: ListUnspent(lnrpc.ListUnspentRequest) returns (lnrpc.ListUnspentResponse); - */ - listUnspent(input: ListUnspentRequest, options?: RpcOptions): UnaryCall; - /** - * - * SubscribeTransactions creates a uni-directional stream from the server to - * the client in which any newly discovered transactions relevant to the - * wallet are sent over. - * - * @generated from protobuf rpc: SubscribeTransactions(lnrpc.GetTransactionsRequest) returns (stream lnrpc.Transaction); - */ - subscribeTransactions(input: GetTransactionsRequest, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `sendmany` - * SendMany handles a request for a transaction that creates multiple specified - * outputs in parallel. If neither target_conf, or sat_per_vbyte are set, then - * the internal wallet will consult its fee model to determine a fee for the - * default confirmation target. - * - * @generated from protobuf rpc: SendMany(lnrpc.SendManyRequest) returns (lnrpc.SendManyResponse); - */ - sendMany(input: SendManyRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `newaddress` - * NewAddress creates a new address under control of the local wallet. - * - * @generated from protobuf rpc: NewAddress(lnrpc.NewAddressRequest) returns (lnrpc.NewAddressResponse); - */ - newAddress(input: NewAddressRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `signmessage` - * SignMessage signs a message with this node's private key. The returned - * signature string is `zbase32` encoded and pubkey recoverable, meaning that - * only the message digest and signature are needed for verification. - * - * @generated from protobuf rpc: SignMessage(lnrpc.SignMessageRequest) returns (lnrpc.SignMessageResponse); - */ - signMessage(input: SignMessageRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `verifymessage` - * VerifyMessage verifies a signature over a msg. The signature must be - * zbase32 encoded and signed by an active node in the resident node's - * channel database. In addition to returning the validity of the signature, - * VerifyMessage also returns the recovered pubkey from the signature. - * - * @generated from protobuf rpc: VerifyMessage(lnrpc.VerifyMessageRequest) returns (lnrpc.VerifyMessageResponse); - */ - verifyMessage(input: VerifyMessageRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `connect` - * ConnectPeer attempts to establish a connection to a remote peer. This is at - * the networking level, and is used for communication between nodes. This is - * distinct from establishing a channel with a peer. - * - * @generated from protobuf rpc: ConnectPeer(lnrpc.ConnectPeerRequest) returns (lnrpc.ConnectPeerResponse); - */ - connectPeer(input: ConnectPeerRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `disconnect` - * DisconnectPeer attempts to disconnect one peer from another identified by a - * given pubKey. In the case that we currently have a pending or active channel - * with the target peer, then this action will be not be allowed. - * - * @generated from protobuf rpc: DisconnectPeer(lnrpc.DisconnectPeerRequest) returns (lnrpc.DisconnectPeerResponse); - */ - disconnectPeer(input: DisconnectPeerRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `listpeers` - * ListPeers returns a verbose listing of all currently active peers. - * - * @generated from protobuf rpc: ListPeers(lnrpc.ListPeersRequest) returns (lnrpc.ListPeersResponse); - */ - listPeers(input: ListPeersRequest, options?: RpcOptions): UnaryCall; - /** - * - * SubscribePeerEvents creates a uni-directional stream from the server to - * the client in which any events relevant to the state of peers are sent - * over. Events include peers going online and offline. - * - * @generated from protobuf rpc: SubscribePeerEvents(lnrpc.PeerEventSubscription) returns (stream lnrpc.PeerEvent); - */ - subscribePeerEvents(input: PeerEventSubscription, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `getinfo` - * GetInfo returns general information concerning the lightning node including - * it's identity pubkey, alias, the chains it is connected to, and information - * concerning the number of open+pending channels. - * - * @generated from protobuf rpc: GetInfo(lnrpc.GetInfoRequest) returns (lnrpc.GetInfoResponse); - */ - getInfo(input: GetInfoRequest, options?: RpcOptions): UnaryCall; - /** - * * lncli: `getrecoveryinfo` - * GetRecoveryInfo returns information concerning the recovery mode including - * whether it's in a recovery mode, whether the recovery is finished, and the - * progress made so far. - * - * @generated from protobuf rpc: GetRecoveryInfo(lnrpc.GetRecoveryInfoRequest) returns (lnrpc.GetRecoveryInfoResponse); - */ - getRecoveryInfo(input: GetRecoveryInfoRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `pendingchannels` - * PendingChannels returns a list of all the channels that are currently - * considered "pending". A channel is pending if it has finished the funding - * workflow and is waiting for confirmations for the funding txn, or is in the - * process of closure, either initiated cooperatively or non-cooperatively. - * - * @generated from protobuf rpc: PendingChannels(lnrpc.PendingChannelsRequest) returns (lnrpc.PendingChannelsResponse); - */ - pendingChannels(input: PendingChannelsRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `listchannels` - * ListChannels returns a description of all the open channels that this node - * is a participant in. - * - * @generated from protobuf rpc: ListChannels(lnrpc.ListChannelsRequest) returns (lnrpc.ListChannelsResponse); - */ - listChannels(input: ListChannelsRequest, options?: RpcOptions): UnaryCall; - /** - * - * SubscribeChannelEvents creates a uni-directional stream from the server to - * the client in which any updates relevant to the state of the channels are - * sent over. Events include new active channels, inactive channels, and closed - * channels. - * - * @generated from protobuf rpc: SubscribeChannelEvents(lnrpc.ChannelEventSubscription) returns (stream lnrpc.ChannelEventUpdate); - */ - subscribeChannelEvents(input: ChannelEventSubscription, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `closedchannels` - * ClosedChannels returns a description of all the closed channels that - * this node was a participant in. - * - * @generated from protobuf rpc: ClosedChannels(lnrpc.ClosedChannelsRequest) returns (lnrpc.ClosedChannelsResponse); - */ - closedChannels(input: ClosedChannelsRequest, options?: RpcOptions): UnaryCall; - /** - * - * OpenChannelSync is a synchronous version of the OpenChannel RPC call. This - * call is meant to be consumed by clients to the REST proxy. As with all - * other sync calls, all byte slices are intended to be populated as hex - * encoded strings. - * - * @generated from protobuf rpc: OpenChannelSync(lnrpc.OpenChannelRequest) returns (lnrpc.ChannelPoint); - */ - openChannelSync(input: OpenChannelRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `openchannel` - * OpenChannel attempts to open a singly funded channel specified in the - * request to a remote peer. Users are able to specify a target number of - * blocks that the funding transaction should be confirmed in, or a manual fee - * rate to us for the funding transaction. If neither are specified, then a - * lax block confirmation target is used. Each OpenStatusUpdate will return - * the pending channel ID of the in-progress channel. Depending on the - * arguments specified in the OpenChannelRequest, this pending channel ID can - * then be used to manually progress the channel funding flow. - * - * @generated from protobuf rpc: OpenChannel(lnrpc.OpenChannelRequest) returns (stream lnrpc.OpenStatusUpdate); - */ - openChannel(input: OpenChannelRequest, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `batchopenchannel` - * BatchOpenChannel attempts to open multiple single-funded channels in a - * single transaction in an atomic way. This means either all channel open - * requests succeed at once or all attempts are aborted if any of them fail. - * This is the safer variant of using PSBTs to manually fund a batch of - * channels through the OpenChannel RPC. - * - * @generated from protobuf rpc: BatchOpenChannel(lnrpc.BatchOpenChannelRequest) returns (lnrpc.BatchOpenChannelResponse); - */ - batchOpenChannel(input: BatchOpenChannelRequest, options?: RpcOptions): UnaryCall; - /** - * - * FundingStateStep is an advanced funding related call that allows the caller - * to either execute some preparatory steps for a funding workflow, or - * manually progress a funding workflow. The primary way a funding flow is - * identified is via its pending channel ID. As an example, this method can be - * used to specify that we're expecting a funding flow for a particular - * pending channel ID, for which we need to use specific parameters. - * Alternatively, this can be used to interactively drive PSBT signing for - * funding for partially complete funding transactions. - * - * @generated from protobuf rpc: FundingStateStep(lnrpc.FundingTransitionMsg) returns (lnrpc.FundingStateStepResp); - */ - fundingStateStep(input: FundingTransitionMsg, options?: RpcOptions): UnaryCall; - /** - * - * ChannelAcceptor dispatches a bi-directional streaming RPC in which - * OpenChannel requests are sent to the client and the client responds with - * a boolean that tells LND whether or not to accept the channel. This allows - * node operators to specify their own criteria for accepting inbound channels - * through a single persistent connection. - * - * @generated from protobuf rpc: ChannelAcceptor(stream lnrpc.ChannelAcceptResponse) returns (stream lnrpc.ChannelAcceptRequest); - */ - channelAcceptor(options?: RpcOptions): DuplexStreamingCall; - /** - * lncli: `closechannel` - * CloseChannel attempts to close an active channel identified by its channel - * outpoint (ChannelPoint). The actions of this method can additionally be - * augmented to attempt a force close after a timeout period in the case of an - * inactive peer. If a non-force close (cooperative closure) is requested, - * then the user can specify either a target number of blocks until the - * closure transaction is confirmed, or a manual fee rate. If neither are - * specified, then a default lax, block confirmation target is used. - * - * @generated from protobuf rpc: CloseChannel(lnrpc.CloseChannelRequest) returns (stream lnrpc.CloseStatusUpdate); - */ - closeChannel(input: CloseChannelRequest, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `abandonchannel` - * AbandonChannel removes all channel state from the database except for a - * close summary. This method can be used to get rid of permanently unusable - * channels due to bugs fixed in newer versions of lnd. This method can also be - * used to remove externally funded channels where the funding transaction was - * never broadcast. Only available for non-externally funded channels in dev - * build. - * - * @generated from protobuf rpc: AbandonChannel(lnrpc.AbandonChannelRequest) returns (lnrpc.AbandonChannelResponse); - */ - abandonChannel(input: AbandonChannelRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `sendpayment` - * Deprecated, use routerrpc.SendPaymentV2. SendPayment dispatches a - * bi-directional streaming RPC for sending payments through the Lightning - * Network. A single RPC invocation creates a persistent bi-directional - * stream allowing clients to rapidly send payments through the Lightning - * Network with a single persistent connection. - * - * @deprecated - * @generated from protobuf rpc: SendPayment(stream lnrpc.SendRequest) returns (stream lnrpc.SendResponse); - */ - sendPayment(options?: RpcOptions): DuplexStreamingCall; - /** - * - * SendPaymentSync is the synchronous non-streaming version of SendPayment. - * This RPC is intended to be consumed by clients of the REST proxy. - * Additionally, this RPC expects the destination's public key and the payment - * hash (if any) to be encoded as hex strings. - * - * @generated from protobuf rpc: SendPaymentSync(lnrpc.SendRequest) returns (lnrpc.SendResponse); - */ - sendPaymentSync(input: SendRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `sendtoroute` - * Deprecated, use routerrpc.SendToRouteV2. SendToRoute is a bi-directional - * streaming RPC for sending payment through the Lightning Network. This - * method differs from SendPayment in that it allows users to specify a full - * route manually. This can be used for things like rebalancing, and atomic - * swaps. - * - * @deprecated - * @generated from protobuf rpc: SendToRoute(stream lnrpc.SendToRouteRequest) returns (stream lnrpc.SendResponse); - */ - sendToRoute(options?: RpcOptions): DuplexStreamingCall; - /** - * - * SendToRouteSync is a synchronous version of SendToRoute. It Will block - * until the payment either fails or succeeds. - * - * @generated from protobuf rpc: SendToRouteSync(lnrpc.SendToRouteRequest) returns (lnrpc.SendResponse); - */ - sendToRouteSync(input: SendToRouteRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `addinvoice` - * AddInvoice attempts to add a new invoice to the invoice database. Any - * duplicated invoices are rejected, therefore all invoices *must* have a - * unique payment preimage. - * - * @generated from protobuf rpc: AddInvoice(lnrpc.Invoice) returns (lnrpc.AddInvoiceResponse); - */ - addInvoice(input: Invoice, options?: RpcOptions): UnaryCall; - /** - * lncli: `listinvoices` - * ListInvoices returns a list of all the invoices currently stored within the - * database. Any active debug invoices are ignored. It has full support for - * paginated responses, allowing users to query for specific invoices through - * their add_index. This can be done by using either the first_index_offset or - * last_index_offset fields included in the response as the index_offset of the - * next request. By default, the first 100 invoices created will be returned. - * Backwards pagination is also supported through the Reversed flag. - * - * @generated from protobuf rpc: ListInvoices(lnrpc.ListInvoiceRequest) returns (lnrpc.ListInvoiceResponse); - */ - listInvoices(input: ListInvoiceRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `lookupinvoice` - * LookupInvoice attempts to look up an invoice according to its payment hash. - * The passed payment hash *must* be exactly 32 bytes, if not, an error is - * returned. - * - * @generated from protobuf rpc: LookupInvoice(lnrpc.PaymentHash) returns (lnrpc.Invoice); - */ - lookupInvoice(input: PaymentHash, options?: RpcOptions): UnaryCall; - /** - * - * SubscribeInvoices returns a uni-directional stream (server -> client) for - * notifying the client of newly added/settled invoices. The caller can - * optionally specify the add_index and/or the settle_index. If the add_index - * is specified, then we'll first start by sending add invoice events for all - * invoices with an add_index greater than the specified value. If the - * settle_index is specified, the next, we'll send out all settle events for - * invoices with a settle_index greater than the specified value. One or both - * of these fields can be set. If no fields are set, then we'll only send out - * the latest add/settle events. - * - * @generated from protobuf rpc: SubscribeInvoices(lnrpc.InvoiceSubscription) returns (stream lnrpc.Invoice); - */ - subscribeInvoices(input: InvoiceSubscription, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `decodepayreq` - * DecodePayReq takes an encoded payment request string and attempts to decode - * it, returning a full description of the conditions encoded within the - * payment request. - * - * @generated from protobuf rpc: DecodePayReq(lnrpc.PayReqString) returns (lnrpc.PayReq); - */ - decodePayReq(input: PayReqString, options?: RpcOptions): UnaryCall; - /** - * lncli: `listpayments` - * ListPayments returns a list of all outgoing payments. - * - * @generated from protobuf rpc: ListPayments(lnrpc.ListPaymentsRequest) returns (lnrpc.ListPaymentsResponse); - */ - listPayments(input: ListPaymentsRequest, options?: RpcOptions): UnaryCall; - /** - * - * DeletePayment deletes an outgoing payment from DB. Note that it will not - * attempt to delete an In-Flight payment, since that would be unsafe. - * - * @generated from protobuf rpc: DeletePayment(lnrpc.DeletePaymentRequest) returns (lnrpc.DeletePaymentResponse); - */ - deletePayment(input: DeletePaymentRequest, options?: RpcOptions): UnaryCall; - /** - * - * DeleteAllPayments deletes all outgoing payments from DB. Note that it will - * not attempt to delete In-Flight payments, since that would be unsafe. - * - * @generated from protobuf rpc: DeleteAllPayments(lnrpc.DeleteAllPaymentsRequest) returns (lnrpc.DeleteAllPaymentsResponse); - */ - deleteAllPayments(input: DeleteAllPaymentsRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `describegraph` - * DescribeGraph returns a description of the latest graph state from the - * point of view of the node. The graph information is partitioned into two - * components: all the nodes/vertexes, and all the edges that connect the - * vertexes themselves. As this is a directed graph, the edges also contain - * the node directional specific routing policy which includes: the time lock - * delta, fee information, etc. - * - * @generated from protobuf rpc: DescribeGraph(lnrpc.ChannelGraphRequest) returns (lnrpc.ChannelGraph); - */ - describeGraph(input: ChannelGraphRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `getnodemetrics` - * GetNodeMetrics returns node metrics calculated from the graph. Currently - * the only supported metric is betweenness centrality of individual nodes. - * - * @generated from protobuf rpc: GetNodeMetrics(lnrpc.NodeMetricsRequest) returns (lnrpc.NodeMetricsResponse); - */ - getNodeMetrics(input: NodeMetricsRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `getchaninfo` - * GetChanInfo returns the latest authenticated network announcement for the - * given channel identified by its channel ID: an 8-byte integer which - * uniquely identifies the location of transaction's funding output within the - * blockchain. - * - * @generated from protobuf rpc: GetChanInfo(lnrpc.ChanInfoRequest) returns (lnrpc.ChannelEdge); - */ - getChanInfo(input: ChanInfoRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `getnodeinfo` - * GetNodeInfo returns the latest advertised, aggregated, and authenticated - * channel information for the specified node identified by its public key. - * - * @generated from protobuf rpc: GetNodeInfo(lnrpc.NodeInfoRequest) returns (lnrpc.NodeInfo); - */ - getNodeInfo(input: NodeInfoRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `queryroutes` - * QueryRoutes attempts to query the daemon's Channel Router for a possible - * route to a target destination capable of carrying a specific amount of - * satoshis. The returned route contains the full details required to craft and - * send an HTLC, also including the necessary information that should be - * present within the Sphinx packet encapsulated within the HTLC. - * - * When using REST, the `dest_custom_records` map type can be set by appending - * `&dest_custom_records[]=` - * to the URL. Unfortunately this map type doesn't appear in the REST API - * documentation because of a bug in the grpc-gateway library. - * - * @generated from protobuf rpc: QueryRoutes(lnrpc.QueryRoutesRequest) returns (lnrpc.QueryRoutesResponse); - */ - queryRoutes(input: QueryRoutesRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `getnetworkinfo` - * GetNetworkInfo returns some basic stats about the known channel graph from - * the point of view of the node. - * - * @generated from protobuf rpc: GetNetworkInfo(lnrpc.NetworkInfoRequest) returns (lnrpc.NetworkInfo); - */ - getNetworkInfo(input: NetworkInfoRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `stop` - * StopDaemon will send a shutdown request to the interrupt handler, triggering - * a graceful shutdown of the daemon. - * - * @generated from protobuf rpc: StopDaemon(lnrpc.StopRequest) returns (lnrpc.StopResponse); - */ - stopDaemon(input: StopRequest, options?: RpcOptions): UnaryCall; - /** - * - * SubscribeChannelGraph launches a streaming RPC that allows the caller to - * receive notifications upon any changes to the channel graph topology from - * the point of view of the responding node. Events notified include: new - * nodes coming online, nodes updating their authenticated attributes, new - * channels being advertised, updates in the routing policy for a directional - * channel edge, and when channels are closed on-chain. - * - * @generated from protobuf rpc: SubscribeChannelGraph(lnrpc.GraphTopologySubscription) returns (stream lnrpc.GraphTopologyUpdate); - */ - subscribeChannelGraph(input: GraphTopologySubscription, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `debuglevel` - * DebugLevel allows a caller to programmatically set the logging verbosity of - * lnd. The logging can be targeted according to a coarse daemon-wide logging - * level, or in a granular fashion to specify the logging for a target - * sub-system. - * - * @generated from protobuf rpc: DebugLevel(lnrpc.DebugLevelRequest) returns (lnrpc.DebugLevelResponse); - */ - debugLevel(input: DebugLevelRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `feereport` - * FeeReport allows the caller to obtain a report detailing the current fee - * schedule enforced by the node globally for each channel. - * - * @generated from protobuf rpc: FeeReport(lnrpc.FeeReportRequest) returns (lnrpc.FeeReportResponse); - */ - feeReport(input: FeeReportRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `updatechanpolicy` - * UpdateChannelPolicy allows the caller to update the fee schedule and - * channel policies for all channels globally, or a particular channel. - * - * @generated from protobuf rpc: UpdateChannelPolicy(lnrpc.PolicyUpdateRequest) returns (lnrpc.PolicyUpdateResponse); - */ - updateChannelPolicy(input: PolicyUpdateRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `fwdinghistory` - * ForwardingHistory allows the caller to query the htlcswitch for a record of - * all HTLCs forwarded within the target time range, and integer offset - * within that time range, for a maximum number of events. If no maximum number - * of events is specified, up to 100 events will be returned. If no time-range - * is specified, then events will be returned in the order that they occured. - * - * A list of forwarding events are returned. The size of each forwarding event - * is 40 bytes, and the max message size able to be returned in gRPC is 4 MiB. - * As a result each message can only contain 50k entries. Each response has - * the index offset of the last entry. The index offset can be provided to the - * request to allow the caller to skip a series of records. - * - * @generated from protobuf rpc: ForwardingHistory(lnrpc.ForwardingHistoryRequest) returns (lnrpc.ForwardingHistoryResponse); - */ - forwardingHistory(input: ForwardingHistoryRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `exportchanbackup` - * ExportChannelBackup attempts to return an encrypted static channel backup - * for the target channel identified by it channel point. The backup is - * encrypted with a key generated from the aezeed seed of the user. The - * returned backup can either be restored using the RestoreChannelBackup - * method once lnd is running, or via the InitWallet and UnlockWallet methods - * from the WalletUnlocker service. - * - * @generated from protobuf rpc: ExportChannelBackup(lnrpc.ExportChannelBackupRequest) returns (lnrpc.ChannelBackup); - */ - exportChannelBackup(input: ExportChannelBackupRequest, options?: RpcOptions): UnaryCall; - /** - * - * ExportAllChannelBackups returns static channel backups for all existing - * channels known to lnd. A set of regular singular static channel backups for - * each channel are returned. Additionally, a multi-channel backup is returned - * as well, which contains a single encrypted blob containing the backups of - * each channel. - * - * @generated from protobuf rpc: ExportAllChannelBackups(lnrpc.ChanBackupExportRequest) returns (lnrpc.ChanBackupSnapshot); - */ - exportAllChannelBackups(input: ChanBackupExportRequest, options?: RpcOptions): UnaryCall; - /** - * - * VerifyChanBackup allows a caller to verify the integrity of a channel backup - * snapshot. This method will accept either a packed Single or a packed Multi. - * Specifying both will result in an error. - * - * @generated from protobuf rpc: VerifyChanBackup(lnrpc.ChanBackupSnapshot) returns (lnrpc.VerifyChanBackupResponse); - */ - verifyChanBackup(input: ChanBackupSnapshot, options?: RpcOptions): UnaryCall; - /** - * lncli: `restorechanbackup` - * RestoreChannelBackups accepts a set of singular channel backups, or a - * single encrypted multi-chan backup and attempts to recover any funds - * remaining within the channel. If we are able to unpack the backup, then the - * new channel will be shown under listchannels, as well as pending channels. - * - * @generated from protobuf rpc: RestoreChannelBackups(lnrpc.RestoreChanBackupRequest) returns (lnrpc.RestoreBackupResponse); - */ - restoreChannelBackups(input: RestoreChanBackupRequest, options?: RpcOptions): UnaryCall; - /** - * - * SubscribeChannelBackups allows a client to sub-subscribe to the most up to - * date information concerning the state of all channel backups. Each time a - * new channel is added, we return the new set of channels, along with a - * multi-chan backup containing the backup info for all channels. Each time a - * channel is closed, we send a new update, which contains new new chan back - * ups, but the updated set of encrypted multi-chan backups with the closed - * channel(s) removed. - * - * @generated from protobuf rpc: SubscribeChannelBackups(lnrpc.ChannelBackupSubscription) returns (stream lnrpc.ChanBackupSnapshot); - */ - subscribeChannelBackups(input: ChannelBackupSubscription, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `bakemacaroon` - * BakeMacaroon allows the creation of a new macaroon with custom read and - * write permissions. No first-party caveats are added since this can be done - * offline. - * - * @generated from protobuf rpc: BakeMacaroon(lnrpc.BakeMacaroonRequest) returns (lnrpc.BakeMacaroonResponse); - */ - bakeMacaroon(input: BakeMacaroonRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `listmacaroonids` - * ListMacaroonIDs returns all root key IDs that are in use. - * - * @generated from protobuf rpc: ListMacaroonIDs(lnrpc.ListMacaroonIDsRequest) returns (lnrpc.ListMacaroonIDsResponse); - */ - listMacaroonIDs(input: ListMacaroonIDsRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `deletemacaroonid` - * DeleteMacaroonID deletes the specified macaroon ID and invalidates all - * macaroons derived from that ID. - * - * @generated from protobuf rpc: DeleteMacaroonID(lnrpc.DeleteMacaroonIDRequest) returns (lnrpc.DeleteMacaroonIDResponse); - */ - deleteMacaroonID(input: DeleteMacaroonIDRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `listpermissions` - * ListPermissions lists all RPC method URIs and their required macaroon - * permissions to access them. - * - * @generated from protobuf rpc: ListPermissions(lnrpc.ListPermissionsRequest) returns (lnrpc.ListPermissionsResponse); - */ - listPermissions(input: ListPermissionsRequest, options?: RpcOptions): UnaryCall; - /** - * - * CheckMacaroonPermissions checks whether a request follows the constraints - * imposed on the macaroon and that the macaroon is authorized to follow the - * provided permissions. - * - * @generated from protobuf rpc: CheckMacaroonPermissions(lnrpc.CheckMacPermRequest) returns (lnrpc.CheckMacPermResponse); - */ - checkMacaroonPermissions(input: CheckMacPermRequest, options?: RpcOptions): UnaryCall; - /** - * - * RegisterRPCMiddleware adds a new gRPC middleware to the interceptor chain. A - * gRPC middleware is software component external to lnd that aims to add - * additional business logic to lnd by observing/intercepting/validating - * incoming gRPC client requests and (if needed) replacing/overwriting outgoing - * messages before they're sent to the client. When registering the middleware - * must identify itself and indicate what custom macaroon caveats it wants to - * be responsible for. Only requests that contain a macaroon with that specific - * custom caveat are then sent to the middleware for inspection. The other - * option is to register for the read-only mode in which all requests/responses - * are forwarded for interception to the middleware but the middleware is not - * allowed to modify any responses. As a security measure, _no_ middleware can - * modify responses for requests made with _unencumbered_ macaroons! - * - * @generated from protobuf rpc: RegisterRPCMiddleware(stream lnrpc.RPCMiddlewareResponse) returns (stream lnrpc.RPCMiddlewareRequest); - */ - registerRPCMiddleware(options?: RpcOptions): DuplexStreamingCall; - /** - * lncli: `sendcustom` - * SendCustomMessage sends a custom peer message. - * - * @generated from protobuf rpc: SendCustomMessage(lnrpc.SendCustomMessageRequest) returns (lnrpc.SendCustomMessageResponse); - */ - sendCustomMessage(input: SendCustomMessageRequest, options?: RpcOptions): UnaryCall; - /** - * lncli: `subscribecustom` - * SubscribeCustomMessages subscribes to a stream of incoming custom peer - * messages. - * - * @generated from protobuf rpc: SubscribeCustomMessages(lnrpc.SubscribeCustomMessagesRequest) returns (stream lnrpc.CustomMessage); - */ - subscribeCustomMessages(input: SubscribeCustomMessagesRequest, options?: RpcOptions): ServerStreamingCall; - /** - * lncli: `listaliases` - * ListAliases returns the set of all aliases that have ever existed with - * their confirmed SCID (if it exists) and/or the base SCID (in the case of - * zero conf). - * - * @generated from protobuf rpc: ListAliases(lnrpc.ListAliasesRequest) returns (lnrpc.ListAliasesResponse); - */ - listAliases(input: ListAliasesRequest, options?: RpcOptions): UnaryCall; - /** - * @generated from protobuf rpc: LookupHtlc(lnrpc.LookupHtlcRequest) returns (lnrpc.LookupHtlcResponse); - */ - lookupHtlc(input: LookupHtlcRequest, options?: RpcOptions): UnaryCall; -} diff --git a/proto/lnd/lightning.client.js b/proto/lnd/lightning.client.js deleted file mode 100644 index 89474e5b..00000000 --- a/proto/lnd/lightning.client.js +++ /dev/null @@ -1,901 +0,0 @@ -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "lightning.proto" (package "lnrpc", syntax proto3) -// tslint:disable -import { Lightning } from "./lightning.js"; -import { stackIntercept } from "@protobuf-ts/runtime-rpc"; -// -// Comments in this file will be directly parsed into the API -// Documentation as descriptions of the associated method, message, or field. -// These descriptions should go right above the definition of the object, and -// can be in either block or // comment format. -// -// An RPC method can be matched to an lncli command by placing a line in the -// beginning of the description in exactly the following format: -// lncli: `methodname` -// -// Failure to specify the exact name of the command will cause documentation -// generation to fail. -// -// More information on how exactly the gRPC documentation is generated from -// this proto file can be found here: -// https://github.com/lightninglabs/lightning-api -/** - * Lightning is the main RPC server of the daemon. - * - * @generated from protobuf service lnrpc.Lightning - */ -export class LightningClient { - constructor(_transport) { - this._transport = _transport; - this.typeName = Lightning.typeName; - this.methods = Lightning.methods; - this.options = Lightning.options; - } - /** - * lncli: `walletbalance` - * WalletBalance returns total unspent outputs(confirmed and unconfirmed), all - * confirmed unspent outputs and all unconfirmed unspent outputs under control - * of the wallet. - * - * @generated from protobuf rpc: WalletBalance(lnrpc.WalletBalanceRequest) returns (lnrpc.WalletBalanceResponse); - */ - walletBalance(input, options) { - const method = this.methods[0], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `channelbalance` - * ChannelBalance returns a report on the total funds across all open channels, - * categorized in local/remote, pending local/remote and unsettled local/remote - * balances. - * - * @generated from protobuf rpc: ChannelBalance(lnrpc.ChannelBalanceRequest) returns (lnrpc.ChannelBalanceResponse); - */ - channelBalance(input, options) { - const method = this.methods[1], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `listchaintxns` - * GetTransactions returns a list describing all the known transactions - * relevant to the wallet. - * - * @generated from protobuf rpc: GetTransactions(lnrpc.GetTransactionsRequest) returns (lnrpc.TransactionDetails); - */ - getTransactions(input, options) { - const method = this.methods[2], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `estimatefee` - * EstimateFee asks the chain backend to estimate the fee rate and total fees - * for a transaction that pays to multiple specified outputs. - * - * When using REST, the `AddrToAmount` map type can be set by appending - * `&AddrToAmount[
]=` to the URL. Unfortunately this - * map type doesn't appear in the REST API documentation because of a bug in - * the grpc-gateway library. - * - * @generated from protobuf rpc: EstimateFee(lnrpc.EstimateFeeRequest) returns (lnrpc.EstimateFeeResponse); - */ - estimateFee(input, options) { - const method = this.methods[3], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `sendcoins` - * SendCoins executes a request to send coins to a particular address. Unlike - * SendMany, this RPC call only allows creating a single output at a time. If - * neither target_conf, or sat_per_vbyte are set, then the internal wallet will - * consult its fee model to determine a fee for the default confirmation - * target. - * - * @generated from protobuf rpc: SendCoins(lnrpc.SendCoinsRequest) returns (lnrpc.SendCoinsResponse); - */ - sendCoins(input, options) { - const method = this.methods[4], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `listunspent` - * Deprecated, use walletrpc.ListUnspent instead. - * - * ListUnspent returns a list of all utxos spendable by the wallet with a - * number of confirmations between the specified minimum and maximum. - * - * @generated from protobuf rpc: ListUnspent(lnrpc.ListUnspentRequest) returns (lnrpc.ListUnspentResponse); - */ - listUnspent(input, options) { - const method = this.methods[5], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * SubscribeTransactions creates a uni-directional stream from the server to - * the client in which any newly discovered transactions relevant to the - * wallet are sent over. - * - * @generated from protobuf rpc: SubscribeTransactions(lnrpc.GetTransactionsRequest) returns (stream lnrpc.Transaction); - */ - subscribeTransactions(input, options) { - const method = this.methods[6], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * lncli: `sendmany` - * SendMany handles a request for a transaction that creates multiple specified - * outputs in parallel. If neither target_conf, or sat_per_vbyte are set, then - * the internal wallet will consult its fee model to determine a fee for the - * default confirmation target. - * - * @generated from protobuf rpc: SendMany(lnrpc.SendManyRequest) returns (lnrpc.SendManyResponse); - */ - sendMany(input, options) { - const method = this.methods[7], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `newaddress` - * NewAddress creates a new address under control of the local wallet. - * - * @generated from protobuf rpc: NewAddress(lnrpc.NewAddressRequest) returns (lnrpc.NewAddressResponse); - */ - newAddress(input, options) { - const method = this.methods[8], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `signmessage` - * SignMessage signs a message with this node's private key. The returned - * signature string is `zbase32` encoded and pubkey recoverable, meaning that - * only the message digest and signature are needed for verification. - * - * @generated from protobuf rpc: SignMessage(lnrpc.SignMessageRequest) returns (lnrpc.SignMessageResponse); - */ - signMessage(input, options) { - const method = this.methods[9], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `verifymessage` - * VerifyMessage verifies a signature over a msg. The signature must be - * zbase32 encoded and signed by an active node in the resident node's - * channel database. In addition to returning the validity of the signature, - * VerifyMessage also returns the recovered pubkey from the signature. - * - * @generated from protobuf rpc: VerifyMessage(lnrpc.VerifyMessageRequest) returns (lnrpc.VerifyMessageResponse); - */ - verifyMessage(input, options) { - const method = this.methods[10], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `connect` - * ConnectPeer attempts to establish a connection to a remote peer. This is at - * the networking level, and is used for communication between nodes. This is - * distinct from establishing a channel with a peer. - * - * @generated from protobuf rpc: ConnectPeer(lnrpc.ConnectPeerRequest) returns (lnrpc.ConnectPeerResponse); - */ - connectPeer(input, options) { - const method = this.methods[11], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `disconnect` - * DisconnectPeer attempts to disconnect one peer from another identified by a - * given pubKey. In the case that we currently have a pending or active channel - * with the target peer, then this action will be not be allowed. - * - * @generated from protobuf rpc: DisconnectPeer(lnrpc.DisconnectPeerRequest) returns (lnrpc.DisconnectPeerResponse); - */ - disconnectPeer(input, options) { - const method = this.methods[12], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `listpeers` - * ListPeers returns a verbose listing of all currently active peers. - * - * @generated from protobuf rpc: ListPeers(lnrpc.ListPeersRequest) returns (lnrpc.ListPeersResponse); - */ - listPeers(input, options) { - const method = this.methods[13], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * SubscribePeerEvents creates a uni-directional stream from the server to - * the client in which any events relevant to the state of peers are sent - * over. Events include peers going online and offline. - * - * @generated from protobuf rpc: SubscribePeerEvents(lnrpc.PeerEventSubscription) returns (stream lnrpc.PeerEvent); - */ - subscribePeerEvents(input, options) { - const method = this.methods[14], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * lncli: `getinfo` - * GetInfo returns general information concerning the lightning node including - * it's identity pubkey, alias, the chains it is connected to, and information - * concerning the number of open+pending channels. - * - * @generated from protobuf rpc: GetInfo(lnrpc.GetInfoRequest) returns (lnrpc.GetInfoResponse); - */ - getInfo(input, options) { - const method = this.methods[15], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * * lncli: `getrecoveryinfo` - * GetRecoveryInfo returns information concerning the recovery mode including - * whether it's in a recovery mode, whether the recovery is finished, and the - * progress made so far. - * - * @generated from protobuf rpc: GetRecoveryInfo(lnrpc.GetRecoveryInfoRequest) returns (lnrpc.GetRecoveryInfoResponse); - */ - getRecoveryInfo(input, options) { - const method = this.methods[16], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - // TODO(roasbeef): merge with below with bool? - /** - * lncli: `pendingchannels` - * PendingChannels returns a list of all the channels that are currently - * considered "pending". A channel is pending if it has finished the funding - * workflow and is waiting for confirmations for the funding txn, or is in the - * process of closure, either initiated cooperatively or non-cooperatively. - * - * @generated from protobuf rpc: PendingChannels(lnrpc.PendingChannelsRequest) returns (lnrpc.PendingChannelsResponse); - */ - pendingChannels(input, options) { - const method = this.methods[17], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `listchannels` - * ListChannels returns a description of all the open channels that this node - * is a participant in. - * - * @generated from protobuf rpc: ListChannels(lnrpc.ListChannelsRequest) returns (lnrpc.ListChannelsResponse); - */ - listChannels(input, options) { - const method = this.methods[18], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * SubscribeChannelEvents creates a uni-directional stream from the server to - * the client in which any updates relevant to the state of the channels are - * sent over. Events include new active channels, inactive channels, and closed - * channels. - * - * @generated from protobuf rpc: SubscribeChannelEvents(lnrpc.ChannelEventSubscription) returns (stream lnrpc.ChannelEventUpdate); - */ - subscribeChannelEvents(input, options) { - const method = this.methods[19], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * lncli: `closedchannels` - * ClosedChannels returns a description of all the closed channels that - * this node was a participant in. - * - * @generated from protobuf rpc: ClosedChannels(lnrpc.ClosedChannelsRequest) returns (lnrpc.ClosedChannelsResponse); - */ - closedChannels(input, options) { - const method = this.methods[20], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * OpenChannelSync is a synchronous version of the OpenChannel RPC call. This - * call is meant to be consumed by clients to the REST proxy. As with all - * other sync calls, all byte slices are intended to be populated as hex - * encoded strings. - * - * @generated from protobuf rpc: OpenChannelSync(lnrpc.OpenChannelRequest) returns (lnrpc.ChannelPoint); - */ - openChannelSync(input, options) { - const method = this.methods[21], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `openchannel` - * OpenChannel attempts to open a singly funded channel specified in the - * request to a remote peer. Users are able to specify a target number of - * blocks that the funding transaction should be confirmed in, or a manual fee - * rate to us for the funding transaction. If neither are specified, then a - * lax block confirmation target is used. Each OpenStatusUpdate will return - * the pending channel ID of the in-progress channel. Depending on the - * arguments specified in the OpenChannelRequest, this pending channel ID can - * then be used to manually progress the channel funding flow. - * - * @generated from protobuf rpc: OpenChannel(lnrpc.OpenChannelRequest) returns (stream lnrpc.OpenStatusUpdate); - */ - openChannel(input, options) { - const method = this.methods[22], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * lncli: `batchopenchannel` - * BatchOpenChannel attempts to open multiple single-funded channels in a - * single transaction in an atomic way. This means either all channel open - * requests succeed at once or all attempts are aborted if any of them fail. - * This is the safer variant of using PSBTs to manually fund a batch of - * channels through the OpenChannel RPC. - * - * @generated from protobuf rpc: BatchOpenChannel(lnrpc.BatchOpenChannelRequest) returns (lnrpc.BatchOpenChannelResponse); - */ - batchOpenChannel(input, options) { - const method = this.methods[23], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * FundingStateStep is an advanced funding related call that allows the caller - * to either execute some preparatory steps for a funding workflow, or - * manually progress a funding workflow. The primary way a funding flow is - * identified is via its pending channel ID. As an example, this method can be - * used to specify that we're expecting a funding flow for a particular - * pending channel ID, for which we need to use specific parameters. - * Alternatively, this can be used to interactively drive PSBT signing for - * funding for partially complete funding transactions. - * - * @generated from protobuf rpc: FundingStateStep(lnrpc.FundingTransitionMsg) returns (lnrpc.FundingStateStepResp); - */ - fundingStateStep(input, options) { - const method = this.methods[24], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * ChannelAcceptor dispatches a bi-directional streaming RPC in which - * OpenChannel requests are sent to the client and the client responds with - * a boolean that tells LND whether or not to accept the channel. This allows - * node operators to specify their own criteria for accepting inbound channels - * through a single persistent connection. - * - * @generated from protobuf rpc: ChannelAcceptor(stream lnrpc.ChannelAcceptResponse) returns (stream lnrpc.ChannelAcceptRequest); - */ - channelAcceptor(options) { - const method = this.methods[25], opt = this._transport.mergeOptions(options); - return stackIntercept("duplex", this._transport, method, opt); - } - /** - * lncli: `closechannel` - * CloseChannel attempts to close an active channel identified by its channel - * outpoint (ChannelPoint). The actions of this method can additionally be - * augmented to attempt a force close after a timeout period in the case of an - * inactive peer. If a non-force close (cooperative closure) is requested, - * then the user can specify either a target number of blocks until the - * closure transaction is confirmed, or a manual fee rate. If neither are - * specified, then a default lax, block confirmation target is used. - * - * @generated from protobuf rpc: CloseChannel(lnrpc.CloseChannelRequest) returns (stream lnrpc.CloseStatusUpdate); - */ - closeChannel(input, options) { - const method = this.methods[26], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * lncli: `abandonchannel` - * AbandonChannel removes all channel state from the database except for a - * close summary. This method can be used to get rid of permanently unusable - * channels due to bugs fixed in newer versions of lnd. This method can also be - * used to remove externally funded channels where the funding transaction was - * never broadcast. Only available for non-externally funded channels in dev - * build. - * - * @generated from protobuf rpc: AbandonChannel(lnrpc.AbandonChannelRequest) returns (lnrpc.AbandonChannelResponse); - */ - abandonChannel(input, options) { - const method = this.methods[27], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `sendpayment` - * Deprecated, use routerrpc.SendPaymentV2. SendPayment dispatches a - * bi-directional streaming RPC for sending payments through the Lightning - * Network. A single RPC invocation creates a persistent bi-directional - * stream allowing clients to rapidly send payments through the Lightning - * Network with a single persistent connection. - * - * @deprecated - * @generated from protobuf rpc: SendPayment(stream lnrpc.SendRequest) returns (stream lnrpc.SendResponse); - */ - sendPayment(options) { - const method = this.methods[28], opt = this._transport.mergeOptions(options); - return stackIntercept("duplex", this._transport, method, opt); - } - /** - * - * SendPaymentSync is the synchronous non-streaming version of SendPayment. - * This RPC is intended to be consumed by clients of the REST proxy. - * Additionally, this RPC expects the destination's public key and the payment - * hash (if any) to be encoded as hex strings. - * - * @generated from protobuf rpc: SendPaymentSync(lnrpc.SendRequest) returns (lnrpc.SendResponse); - */ - sendPaymentSync(input, options) { - const method = this.methods[29], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `sendtoroute` - * Deprecated, use routerrpc.SendToRouteV2. SendToRoute is a bi-directional - * streaming RPC for sending payment through the Lightning Network. This - * method differs from SendPayment in that it allows users to specify a full - * route manually. This can be used for things like rebalancing, and atomic - * swaps. - * - * @deprecated - * @generated from protobuf rpc: SendToRoute(stream lnrpc.SendToRouteRequest) returns (stream lnrpc.SendResponse); - */ - sendToRoute(options) { - const method = this.methods[30], opt = this._transport.mergeOptions(options); - return stackIntercept("duplex", this._transport, method, opt); - } - /** - * - * SendToRouteSync is a synchronous version of SendToRoute. It Will block - * until the payment either fails or succeeds. - * - * @generated from protobuf rpc: SendToRouteSync(lnrpc.SendToRouteRequest) returns (lnrpc.SendResponse); - */ - sendToRouteSync(input, options) { - const method = this.methods[31], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `addinvoice` - * AddInvoice attempts to add a new invoice to the invoice database. Any - * duplicated invoices are rejected, therefore all invoices *must* have a - * unique payment preimage. - * - * @generated from protobuf rpc: AddInvoice(lnrpc.Invoice) returns (lnrpc.AddInvoiceResponse); - */ - addInvoice(input, options) { - const method = this.methods[32], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `listinvoices` - * ListInvoices returns a list of all the invoices currently stored within the - * database. Any active debug invoices are ignored. It has full support for - * paginated responses, allowing users to query for specific invoices through - * their add_index. This can be done by using either the first_index_offset or - * last_index_offset fields included in the response as the index_offset of the - * next request. By default, the first 100 invoices created will be returned. - * Backwards pagination is also supported through the Reversed flag. - * - * @generated from protobuf rpc: ListInvoices(lnrpc.ListInvoiceRequest) returns (lnrpc.ListInvoiceResponse); - */ - listInvoices(input, options) { - const method = this.methods[33], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `lookupinvoice` - * LookupInvoice attempts to look up an invoice according to its payment hash. - * The passed payment hash *must* be exactly 32 bytes, if not, an error is - * returned. - * - * @generated from protobuf rpc: LookupInvoice(lnrpc.PaymentHash) returns (lnrpc.Invoice); - */ - lookupInvoice(input, options) { - const method = this.methods[34], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * SubscribeInvoices returns a uni-directional stream (server -> client) for - * notifying the client of newly added/settled invoices. The caller can - * optionally specify the add_index and/or the settle_index. If the add_index - * is specified, then we'll first start by sending add invoice events for all - * invoices with an add_index greater than the specified value. If the - * settle_index is specified, the next, we'll send out all settle events for - * invoices with a settle_index greater than the specified value. One or both - * of these fields can be set. If no fields are set, then we'll only send out - * the latest add/settle events. - * - * @generated from protobuf rpc: SubscribeInvoices(lnrpc.InvoiceSubscription) returns (stream lnrpc.Invoice); - */ - subscribeInvoices(input, options) { - const method = this.methods[35], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * lncli: `decodepayreq` - * DecodePayReq takes an encoded payment request string and attempts to decode - * it, returning a full description of the conditions encoded within the - * payment request. - * - * @generated from protobuf rpc: DecodePayReq(lnrpc.PayReqString) returns (lnrpc.PayReq); - */ - decodePayReq(input, options) { - const method = this.methods[36], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `listpayments` - * ListPayments returns a list of all outgoing payments. - * - * @generated from protobuf rpc: ListPayments(lnrpc.ListPaymentsRequest) returns (lnrpc.ListPaymentsResponse); - */ - listPayments(input, options) { - const method = this.methods[37], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * DeletePayment deletes an outgoing payment from DB. Note that it will not - * attempt to delete an In-Flight payment, since that would be unsafe. - * - * @generated from protobuf rpc: DeletePayment(lnrpc.DeletePaymentRequest) returns (lnrpc.DeletePaymentResponse); - */ - deletePayment(input, options) { - const method = this.methods[38], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * DeleteAllPayments deletes all outgoing payments from DB. Note that it will - * not attempt to delete In-Flight payments, since that would be unsafe. - * - * @generated from protobuf rpc: DeleteAllPayments(lnrpc.DeleteAllPaymentsRequest) returns (lnrpc.DeleteAllPaymentsResponse); - */ - deleteAllPayments(input, options) { - const method = this.methods[39], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `describegraph` - * DescribeGraph returns a description of the latest graph state from the - * point of view of the node. The graph information is partitioned into two - * components: all the nodes/vertexes, and all the edges that connect the - * vertexes themselves. As this is a directed graph, the edges also contain - * the node directional specific routing policy which includes: the time lock - * delta, fee information, etc. - * - * @generated from protobuf rpc: DescribeGraph(lnrpc.ChannelGraphRequest) returns (lnrpc.ChannelGraph); - */ - describeGraph(input, options) { - const method = this.methods[40], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `getnodemetrics` - * GetNodeMetrics returns node metrics calculated from the graph. Currently - * the only supported metric is betweenness centrality of individual nodes. - * - * @generated from protobuf rpc: GetNodeMetrics(lnrpc.NodeMetricsRequest) returns (lnrpc.NodeMetricsResponse); - */ - getNodeMetrics(input, options) { - const method = this.methods[41], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `getchaninfo` - * GetChanInfo returns the latest authenticated network announcement for the - * given channel identified by its channel ID: an 8-byte integer which - * uniquely identifies the location of transaction's funding output within the - * blockchain. - * - * @generated from protobuf rpc: GetChanInfo(lnrpc.ChanInfoRequest) returns (lnrpc.ChannelEdge); - */ - getChanInfo(input, options) { - const method = this.methods[42], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `getnodeinfo` - * GetNodeInfo returns the latest advertised, aggregated, and authenticated - * channel information for the specified node identified by its public key. - * - * @generated from protobuf rpc: GetNodeInfo(lnrpc.NodeInfoRequest) returns (lnrpc.NodeInfo); - */ - getNodeInfo(input, options) { - const method = this.methods[43], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `queryroutes` - * QueryRoutes attempts to query the daemon's Channel Router for a possible - * route to a target destination capable of carrying a specific amount of - * satoshis. The returned route contains the full details required to craft and - * send an HTLC, also including the necessary information that should be - * present within the Sphinx packet encapsulated within the HTLC. - * - * When using REST, the `dest_custom_records` map type can be set by appending - * `&dest_custom_records[]=` - * to the URL. Unfortunately this map type doesn't appear in the REST API - * documentation because of a bug in the grpc-gateway library. - * - * @generated from protobuf rpc: QueryRoutes(lnrpc.QueryRoutesRequest) returns (lnrpc.QueryRoutesResponse); - */ - queryRoutes(input, options) { - const method = this.methods[44], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `getnetworkinfo` - * GetNetworkInfo returns some basic stats about the known channel graph from - * the point of view of the node. - * - * @generated from protobuf rpc: GetNetworkInfo(lnrpc.NetworkInfoRequest) returns (lnrpc.NetworkInfo); - */ - getNetworkInfo(input, options) { - const method = this.methods[45], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `stop` - * StopDaemon will send a shutdown request to the interrupt handler, triggering - * a graceful shutdown of the daemon. - * - * @generated from protobuf rpc: StopDaemon(lnrpc.StopRequest) returns (lnrpc.StopResponse); - */ - stopDaemon(input, options) { - const method = this.methods[46], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * SubscribeChannelGraph launches a streaming RPC that allows the caller to - * receive notifications upon any changes to the channel graph topology from - * the point of view of the responding node. Events notified include: new - * nodes coming online, nodes updating their authenticated attributes, new - * channels being advertised, updates in the routing policy for a directional - * channel edge, and when channels are closed on-chain. - * - * @generated from protobuf rpc: SubscribeChannelGraph(lnrpc.GraphTopologySubscription) returns (stream lnrpc.GraphTopologyUpdate); - */ - subscribeChannelGraph(input, options) { - const method = this.methods[47], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * lncli: `debuglevel` - * DebugLevel allows a caller to programmatically set the logging verbosity of - * lnd. The logging can be targeted according to a coarse daemon-wide logging - * level, or in a granular fashion to specify the logging for a target - * sub-system. - * - * @generated from protobuf rpc: DebugLevel(lnrpc.DebugLevelRequest) returns (lnrpc.DebugLevelResponse); - */ - debugLevel(input, options) { - const method = this.methods[48], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `feereport` - * FeeReport allows the caller to obtain a report detailing the current fee - * schedule enforced by the node globally for each channel. - * - * @generated from protobuf rpc: FeeReport(lnrpc.FeeReportRequest) returns (lnrpc.FeeReportResponse); - */ - feeReport(input, options) { - const method = this.methods[49], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `updatechanpolicy` - * UpdateChannelPolicy allows the caller to update the fee schedule and - * channel policies for all channels globally, or a particular channel. - * - * @generated from protobuf rpc: UpdateChannelPolicy(lnrpc.PolicyUpdateRequest) returns (lnrpc.PolicyUpdateResponse); - */ - updateChannelPolicy(input, options) { - const method = this.methods[50], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `fwdinghistory` - * ForwardingHistory allows the caller to query the htlcswitch for a record of - * all HTLCs forwarded within the target time range, and integer offset - * within that time range, for a maximum number of events. If no maximum number - * of events is specified, up to 100 events will be returned. If no time-range - * is specified, then events will be returned in the order that they occured. - * - * A list of forwarding events are returned. The size of each forwarding event - * is 40 bytes, and the max message size able to be returned in gRPC is 4 MiB. - * As a result each message can only contain 50k entries. Each response has - * the index offset of the last entry. The index offset can be provided to the - * request to allow the caller to skip a series of records. - * - * @generated from protobuf rpc: ForwardingHistory(lnrpc.ForwardingHistoryRequest) returns (lnrpc.ForwardingHistoryResponse); - */ - forwardingHistory(input, options) { - const method = this.methods[51], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `exportchanbackup` - * ExportChannelBackup attempts to return an encrypted static channel backup - * for the target channel identified by it channel point. The backup is - * encrypted with a key generated from the aezeed seed of the user. The - * returned backup can either be restored using the RestoreChannelBackup - * method once lnd is running, or via the InitWallet and UnlockWallet methods - * from the WalletUnlocker service. - * - * @generated from protobuf rpc: ExportChannelBackup(lnrpc.ExportChannelBackupRequest) returns (lnrpc.ChannelBackup); - */ - exportChannelBackup(input, options) { - const method = this.methods[52], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * ExportAllChannelBackups returns static channel backups for all existing - * channels known to lnd. A set of regular singular static channel backups for - * each channel are returned. Additionally, a multi-channel backup is returned - * as well, which contains a single encrypted blob containing the backups of - * each channel. - * - * @generated from protobuf rpc: ExportAllChannelBackups(lnrpc.ChanBackupExportRequest) returns (lnrpc.ChanBackupSnapshot); - */ - exportAllChannelBackups(input, options) { - const method = this.methods[53], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * VerifyChanBackup allows a caller to verify the integrity of a channel backup - * snapshot. This method will accept either a packed Single or a packed Multi. - * Specifying both will result in an error. - * - * @generated from protobuf rpc: VerifyChanBackup(lnrpc.ChanBackupSnapshot) returns (lnrpc.VerifyChanBackupResponse); - */ - verifyChanBackup(input, options) { - const method = this.methods[54], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `restorechanbackup` - * RestoreChannelBackups accepts a set of singular channel backups, or a - * single encrypted multi-chan backup and attempts to recover any funds - * remaining within the channel. If we are able to unpack the backup, then the - * new channel will be shown under listchannels, as well as pending channels. - * - * @generated from protobuf rpc: RestoreChannelBackups(lnrpc.RestoreChanBackupRequest) returns (lnrpc.RestoreBackupResponse); - */ - restoreChannelBackups(input, options) { - const method = this.methods[55], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * SubscribeChannelBackups allows a client to sub-subscribe to the most up to - * date information concerning the state of all channel backups. Each time a - * new channel is added, we return the new set of channels, along with a - * multi-chan backup containing the backup info for all channels. Each time a - * channel is closed, we send a new update, which contains new new chan back - * ups, but the updated set of encrypted multi-chan backups with the closed - * channel(s) removed. - * - * @generated from protobuf rpc: SubscribeChannelBackups(lnrpc.ChannelBackupSubscription) returns (stream lnrpc.ChanBackupSnapshot); - */ - subscribeChannelBackups(input, options) { - const method = this.methods[56], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * lncli: `bakemacaroon` - * BakeMacaroon allows the creation of a new macaroon with custom read and - * write permissions. No first-party caveats are added since this can be done - * offline. - * - * @generated from protobuf rpc: BakeMacaroon(lnrpc.BakeMacaroonRequest) returns (lnrpc.BakeMacaroonResponse); - */ - bakeMacaroon(input, options) { - const method = this.methods[57], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `listmacaroonids` - * ListMacaroonIDs returns all root key IDs that are in use. - * - * @generated from protobuf rpc: ListMacaroonIDs(lnrpc.ListMacaroonIDsRequest) returns (lnrpc.ListMacaroonIDsResponse); - */ - listMacaroonIDs(input, options) { - const method = this.methods[58], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `deletemacaroonid` - * DeleteMacaroonID deletes the specified macaroon ID and invalidates all - * macaroons derived from that ID. - * - * @generated from protobuf rpc: DeleteMacaroonID(lnrpc.DeleteMacaroonIDRequest) returns (lnrpc.DeleteMacaroonIDResponse); - */ - deleteMacaroonID(input, options) { - const method = this.methods[59], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `listpermissions` - * ListPermissions lists all RPC method URIs and their required macaroon - * permissions to access them. - * - * @generated from protobuf rpc: ListPermissions(lnrpc.ListPermissionsRequest) returns (lnrpc.ListPermissionsResponse); - */ - listPermissions(input, options) { - const method = this.methods[60], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * CheckMacaroonPermissions checks whether a request follows the constraints - * imposed on the macaroon and that the macaroon is authorized to follow the - * provided permissions. - * - * @generated from protobuf rpc: CheckMacaroonPermissions(lnrpc.CheckMacPermRequest) returns (lnrpc.CheckMacPermResponse); - */ - checkMacaroonPermissions(input, options) { - const method = this.methods[61], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * RegisterRPCMiddleware adds a new gRPC middleware to the interceptor chain. A - * gRPC middleware is software component external to lnd that aims to add - * additional business logic to lnd by observing/intercepting/validating - * incoming gRPC client requests and (if needed) replacing/overwriting outgoing - * messages before they're sent to the client. When registering the middleware - * must identify itself and indicate what custom macaroon caveats it wants to - * be responsible for. Only requests that contain a macaroon with that specific - * custom caveat are then sent to the middleware for inspection. The other - * option is to register for the read-only mode in which all requests/responses - * are forwarded for interception to the middleware but the middleware is not - * allowed to modify any responses. As a security measure, _no_ middleware can - * modify responses for requests made with _unencumbered_ macaroons! - * - * @generated from protobuf rpc: RegisterRPCMiddleware(stream lnrpc.RPCMiddlewareResponse) returns (stream lnrpc.RPCMiddlewareRequest); - */ - registerRPCMiddleware(options) { - const method = this.methods[62], opt = this._transport.mergeOptions(options); - return stackIntercept("duplex", this._transport, method, opt); - } - /** - * lncli: `sendcustom` - * SendCustomMessage sends a custom peer message. - * - * @generated from protobuf rpc: SendCustomMessage(lnrpc.SendCustomMessageRequest) returns (lnrpc.SendCustomMessageResponse); - */ - sendCustomMessage(input, options) { - const method = this.methods[63], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * lncli: `subscribecustom` - * SubscribeCustomMessages subscribes to a stream of incoming custom peer - * messages. - * - * @generated from protobuf rpc: SubscribeCustomMessages(lnrpc.SubscribeCustomMessagesRequest) returns (stream lnrpc.CustomMessage); - */ - subscribeCustomMessages(input, options) { - const method = this.methods[64], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * lncli: `listaliases` - * ListAliases returns the set of all aliases that have ever existed with - * their confirmed SCID (if it exists) and/or the base SCID (in the case of - * zero conf). - * - * @generated from protobuf rpc: ListAliases(lnrpc.ListAliasesRequest) returns (lnrpc.ListAliasesResponse); - */ - listAliases(input, options) { - const method = this.methods[65], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * @generated from protobuf rpc: LookupHtlc(lnrpc.LookupHtlcRequest) returns (lnrpc.LookupHtlcResponse); - */ - lookupHtlc(input, options) { - const method = this.methods[66], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } -} diff --git a/proto/lnd/lightning.client.ts b/proto/lnd/lightning.client.ts index 2226841e..53442dba 100644 --- a/proto/lnd/lightning.client.ts +++ b/proto/lnd/lightning.client.ts @@ -3,133 +3,133 @@ // tslint:disable import type { RpcTransport } from "@protobuf-ts/runtime-rpc"; import type { ServiceInfo } from "@protobuf-ts/runtime-rpc"; -import { Lightning } from "./lightning"; -import type { LookupHtlcResponse } from "./lightning"; -import type { LookupHtlcRequest } from "./lightning"; -import type { ListAliasesResponse } from "./lightning"; -import type { ListAliasesRequest } from "./lightning"; -import type { CustomMessage } from "./lightning"; -import type { SubscribeCustomMessagesRequest } from "./lightning"; -import type { SendCustomMessageResponse } from "./lightning"; -import type { SendCustomMessageRequest } from "./lightning"; -import type { RPCMiddlewareRequest } from "./lightning"; -import type { RPCMiddlewareResponse } from "./lightning"; -import type { CheckMacPermResponse } from "./lightning"; -import type { CheckMacPermRequest } from "./lightning"; -import type { ListPermissionsResponse } from "./lightning"; -import type { ListPermissionsRequest } from "./lightning"; -import type { DeleteMacaroonIDResponse } from "./lightning"; -import type { DeleteMacaroonIDRequest } from "./lightning"; -import type { ListMacaroonIDsResponse } from "./lightning"; -import type { ListMacaroonIDsRequest } from "./lightning"; -import type { BakeMacaroonResponse } from "./lightning"; -import type { BakeMacaroonRequest } from "./lightning"; -import type { ChannelBackupSubscription } from "./lightning"; -import type { RestoreBackupResponse } from "./lightning"; -import type { RestoreChanBackupRequest } from "./lightning"; -import type { VerifyChanBackupResponse } from "./lightning"; -import type { ChanBackupSnapshot } from "./lightning"; -import type { ChanBackupExportRequest } from "./lightning"; -import type { ChannelBackup } from "./lightning"; -import type { ExportChannelBackupRequest } from "./lightning"; -import type { ForwardingHistoryResponse } from "./lightning"; -import type { ForwardingHistoryRequest } from "./lightning"; -import type { PolicyUpdateResponse } from "./lightning"; -import type { PolicyUpdateRequest } from "./lightning"; -import type { FeeReportResponse } from "./lightning"; -import type { FeeReportRequest } from "./lightning"; -import type { DebugLevelResponse } from "./lightning"; -import type { DebugLevelRequest } from "./lightning"; -import type { GraphTopologyUpdate } from "./lightning"; -import type { GraphTopologySubscription } from "./lightning"; -import type { StopResponse } from "./lightning"; -import type { StopRequest } from "./lightning"; -import type { NetworkInfo } from "./lightning"; -import type { NetworkInfoRequest } from "./lightning"; -import type { QueryRoutesResponse } from "./lightning"; -import type { QueryRoutesRequest } from "./lightning"; -import type { NodeInfo } from "./lightning"; -import type { NodeInfoRequest } from "./lightning"; -import type { ChannelEdge } from "./lightning"; -import type { ChanInfoRequest } from "./lightning"; -import type { NodeMetricsResponse } from "./lightning"; -import type { NodeMetricsRequest } from "./lightning"; -import type { ChannelGraph } from "./lightning"; -import type { ChannelGraphRequest } from "./lightning"; -import type { DeleteAllPaymentsResponse } from "./lightning"; -import type { DeleteAllPaymentsRequest } from "./lightning"; -import type { DeletePaymentResponse } from "./lightning"; -import type { DeletePaymentRequest } from "./lightning"; -import type { ListPaymentsResponse } from "./lightning"; -import type { ListPaymentsRequest } from "./lightning"; -import type { PayReq } from "./lightning"; -import type { PayReqString } from "./lightning"; -import type { InvoiceSubscription } from "./lightning"; -import type { PaymentHash } from "./lightning"; -import type { ListInvoiceResponse } from "./lightning"; -import type { ListInvoiceRequest } from "./lightning"; -import type { AddInvoiceResponse } from "./lightning"; -import type { Invoice } from "./lightning"; -import type { SendToRouteRequest } from "./lightning"; -import type { SendResponse } from "./lightning"; -import type { SendRequest } from "./lightning"; -import type { AbandonChannelResponse } from "./lightning"; -import type { AbandonChannelRequest } from "./lightning"; -import type { CloseStatusUpdate } from "./lightning"; -import type { CloseChannelRequest } from "./lightning"; -import type { ChannelAcceptRequest } from "./lightning"; -import type { ChannelAcceptResponse } from "./lightning"; +import { Lightning } from "./lightning.js"; +import type { LookupHtlcResponse } from "./lightning.js"; +import type { LookupHtlcRequest } from "./lightning.js"; +import type { ListAliasesResponse } from "./lightning.js"; +import type { ListAliasesRequest } from "./lightning.js"; +import type { CustomMessage } from "./lightning.js"; +import type { SubscribeCustomMessagesRequest } from "./lightning.js"; +import type { SendCustomMessageResponse } from "./lightning.js"; +import type { SendCustomMessageRequest } from "./lightning.js"; +import type { RPCMiddlewareRequest } from "./lightning.js"; +import type { RPCMiddlewareResponse } from "./lightning.js"; +import type { CheckMacPermResponse } from "./lightning.js"; +import type { CheckMacPermRequest } from "./lightning.js"; +import type { ListPermissionsResponse } from "./lightning.js"; +import type { ListPermissionsRequest } from "./lightning.js"; +import type { DeleteMacaroonIDResponse } from "./lightning.js"; +import type { DeleteMacaroonIDRequest } from "./lightning.js"; +import type { ListMacaroonIDsResponse } from "./lightning.js"; +import type { ListMacaroonIDsRequest } from "./lightning.js"; +import type { BakeMacaroonResponse } from "./lightning.js"; +import type { BakeMacaroonRequest } from "./lightning.js"; +import type { ChannelBackupSubscription } from "./lightning.js"; +import type { RestoreBackupResponse } from "./lightning.js"; +import type { RestoreChanBackupRequest } from "./lightning.js"; +import type { VerifyChanBackupResponse } from "./lightning.js"; +import type { ChanBackupSnapshot } from "./lightning.js"; +import type { ChanBackupExportRequest } from "./lightning.js"; +import type { ChannelBackup } from "./lightning.js"; +import type { ExportChannelBackupRequest } from "./lightning.js"; +import type { ForwardingHistoryResponse } from "./lightning.js"; +import type { ForwardingHistoryRequest } from "./lightning.js"; +import type { PolicyUpdateResponse } from "./lightning.js"; +import type { PolicyUpdateRequest } from "./lightning.js"; +import type { FeeReportResponse } from "./lightning.js"; +import type { FeeReportRequest } from "./lightning.js"; +import type { DebugLevelResponse } from "./lightning.js"; +import type { DebugLevelRequest } from "./lightning.js"; +import type { GraphTopologyUpdate } from "./lightning.js"; +import type { GraphTopologySubscription } from "./lightning.js"; +import type { StopResponse } from "./lightning.js"; +import type { StopRequest } from "./lightning.js"; +import type { NetworkInfo } from "./lightning.js"; +import type { NetworkInfoRequest } from "./lightning.js"; +import type { QueryRoutesResponse } from "./lightning.js"; +import type { QueryRoutesRequest } from "./lightning.js"; +import type { NodeInfo } from "./lightning.js"; +import type { NodeInfoRequest } from "./lightning.js"; +import type { ChannelEdge } from "./lightning.js"; +import type { ChanInfoRequest } from "./lightning.js"; +import type { NodeMetricsResponse } from "./lightning.js"; +import type { NodeMetricsRequest } from "./lightning.js"; +import type { ChannelGraph } from "./lightning.js"; +import type { ChannelGraphRequest } from "./lightning.js"; +import type { DeleteAllPaymentsResponse } from "./lightning.js"; +import type { DeleteAllPaymentsRequest } from "./lightning.js"; +import type { DeletePaymentResponse } from "./lightning.js"; +import type { DeletePaymentRequest } from "./lightning.js"; +import type { ListPaymentsResponse } from "./lightning.js"; +import type { ListPaymentsRequest } from "./lightning.js"; +import type { PayReq } from "./lightning.js"; +import type { PayReqString } from "./lightning.js"; +import type { InvoiceSubscription } from "./lightning.js"; +import type { PaymentHash } from "./lightning.js"; +import type { ListInvoiceResponse } from "./lightning.js"; +import type { ListInvoiceRequest } from "./lightning.js"; +import type { AddInvoiceResponse } from "./lightning.js"; +import type { Invoice } from "./lightning.js"; +import type { SendToRouteRequest } from "./lightning.js"; +import type { SendResponse } from "./lightning.js"; +import type { SendRequest } from "./lightning.js"; +import type { AbandonChannelResponse } from "./lightning.js"; +import type { AbandonChannelRequest } from "./lightning.js"; +import type { CloseStatusUpdate } from "./lightning.js"; +import type { CloseChannelRequest } from "./lightning.js"; +import type { ChannelAcceptRequest } from "./lightning.js"; +import type { ChannelAcceptResponse } from "./lightning.js"; import type { DuplexStreamingCall } from "@protobuf-ts/runtime-rpc"; -import type { FundingStateStepResp } from "./lightning"; -import type { FundingTransitionMsg } from "./lightning"; -import type { BatchOpenChannelResponse } from "./lightning"; -import type { BatchOpenChannelRequest } from "./lightning"; -import type { OpenStatusUpdate } from "./lightning"; -import type { ChannelPoint } from "./lightning"; -import type { OpenChannelRequest } from "./lightning"; -import type { ClosedChannelsResponse } from "./lightning"; -import type { ClosedChannelsRequest } from "./lightning"; -import type { ChannelEventUpdate } from "./lightning"; -import type { ChannelEventSubscription } from "./lightning"; -import type { ListChannelsResponse } from "./lightning"; -import type { ListChannelsRequest } from "./lightning"; -import type { PendingChannelsResponse } from "./lightning"; -import type { PendingChannelsRequest } from "./lightning"; -import type { GetRecoveryInfoResponse } from "./lightning"; -import type { GetRecoveryInfoRequest } from "./lightning"; -import type { GetInfoResponse } from "./lightning"; -import type { GetInfoRequest } from "./lightning"; -import type { PeerEvent } from "./lightning"; -import type { PeerEventSubscription } from "./lightning"; -import type { ListPeersResponse } from "./lightning"; -import type { ListPeersRequest } from "./lightning"; -import type { DisconnectPeerResponse } from "./lightning"; -import type { DisconnectPeerRequest } from "./lightning"; -import type { ConnectPeerResponse } from "./lightning"; -import type { ConnectPeerRequest } from "./lightning"; -import type { VerifyMessageResponse } from "./lightning"; -import type { VerifyMessageRequest } from "./lightning"; -import type { SignMessageResponse } from "./lightning"; -import type { SignMessageRequest } from "./lightning"; -import type { NewAddressResponse } from "./lightning"; -import type { NewAddressRequest } from "./lightning"; -import type { SendManyResponse } from "./lightning"; -import type { SendManyRequest } from "./lightning"; -import type { Transaction } from "./lightning"; +import type { FundingStateStepResp } from "./lightning.js"; +import type { FundingTransitionMsg } from "./lightning.js"; +import type { BatchOpenChannelResponse } from "./lightning.js"; +import type { BatchOpenChannelRequest } from "./lightning.js"; +import type { OpenStatusUpdate } from "./lightning.js"; +import type { ChannelPoint } from "./lightning.js"; +import type { OpenChannelRequest } from "./lightning.js"; +import type { ClosedChannelsResponse } from "./lightning.js"; +import type { ClosedChannelsRequest } from "./lightning.js"; +import type { ChannelEventUpdate } from "./lightning.js"; +import type { ChannelEventSubscription } from "./lightning.js"; +import type { ListChannelsResponse } from "./lightning.js"; +import type { ListChannelsRequest } from "./lightning.js"; +import type { PendingChannelsResponse } from "./lightning.js"; +import type { PendingChannelsRequest } from "./lightning.js"; +import type { GetRecoveryInfoResponse } from "./lightning.js"; +import type { GetRecoveryInfoRequest } from "./lightning.js"; +import type { GetInfoResponse } from "./lightning.js"; +import type { GetInfoRequest } from "./lightning.js"; +import type { PeerEvent } from "./lightning.js"; +import type { PeerEventSubscription } from "./lightning.js"; +import type { ListPeersResponse } from "./lightning.js"; +import type { ListPeersRequest } from "./lightning.js"; +import type { DisconnectPeerResponse } from "./lightning.js"; +import type { DisconnectPeerRequest } from "./lightning.js"; +import type { ConnectPeerResponse } from "./lightning.js"; +import type { ConnectPeerRequest } from "./lightning.js"; +import type { VerifyMessageResponse } from "./lightning.js"; +import type { VerifyMessageRequest } from "./lightning.js"; +import type { SignMessageResponse } from "./lightning.js"; +import type { SignMessageRequest } from "./lightning.js"; +import type { NewAddressResponse } from "./lightning.js"; +import type { NewAddressRequest } from "./lightning.js"; +import type { SendManyResponse } from "./lightning.js"; +import type { SendManyRequest } from "./lightning.js"; +import type { Transaction } from "./lightning.js"; import type { ServerStreamingCall } from "@protobuf-ts/runtime-rpc"; -import type { ListUnspentResponse } from "./lightning"; -import type { ListUnspentRequest } from "./lightning"; -import type { SendCoinsResponse } from "./lightning"; -import type { SendCoinsRequest } from "./lightning"; -import type { EstimateFeeResponse } from "./lightning"; -import type { EstimateFeeRequest } from "./lightning"; -import type { TransactionDetails } from "./lightning"; -import type { GetTransactionsRequest } from "./lightning"; -import type { ChannelBalanceResponse } from "./lightning"; -import type { ChannelBalanceRequest } from "./lightning"; +import type { ListUnspentResponse } from "./lightning.js"; +import type { ListUnspentRequest } from "./lightning.js"; +import type { SendCoinsResponse } from "./lightning.js"; +import type { SendCoinsRequest } from "./lightning.js"; +import type { EstimateFeeResponse } from "./lightning.js"; +import type { EstimateFeeRequest } from "./lightning.js"; +import type { TransactionDetails } from "./lightning.js"; +import type { GetTransactionsRequest } from "./lightning.js"; +import type { ChannelBalanceResponse } from "./lightning.js"; +import type { ChannelBalanceRequest } from "./lightning.js"; import { stackIntercept } from "@protobuf-ts/runtime-rpc"; -import type { WalletBalanceResponse } from "./lightning"; -import type { WalletBalanceRequest } from "./lightning"; +import type { WalletBalanceResponse } from "./lightning.js"; +import type { WalletBalanceRequest } from "./lightning.js"; import type { UnaryCall } from "@protobuf-ts/runtime-rpc"; import type { RpcOptions } from "@protobuf-ts/runtime-rpc"; // diff --git a/proto/lnd/lightning.d.ts b/proto/lnd/lightning.d.ts deleted file mode 100644 index d8d902af..00000000 --- a/proto/lnd/lightning.d.ts +++ /dev/null @@ -1,9340 +0,0 @@ -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "lightning.proto" (package "lnrpc", syntax proto3) -// tslint:disable -import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; -import type { IBinaryWriter } from "@protobuf-ts/runtime"; -import type { BinaryReadOptions } from "@protobuf-ts/runtime"; -import type { IBinaryReader } from "@protobuf-ts/runtime"; -import type { PartialMessage } from "@protobuf-ts/runtime"; -import { MessageType } from "@protobuf-ts/runtime"; -/** - * @generated from protobuf message lnrpc.LookupHtlcRequest - */ -export interface LookupHtlcRequest { - /** - * @generated from protobuf field: uint64 chan_id = 1; - */ - chanId: number; - /** - * @generated from protobuf field: uint64 htlc_index = 2; - */ - htlcIndex: number; -} -/** - * @generated from protobuf message lnrpc.LookupHtlcResponse - */ -export interface LookupHtlcResponse { - /** - * @generated from protobuf field: bool settled = 1; - */ - settled: boolean; - /** - * @generated from protobuf field: bool offchain = 2; - */ - offchain: boolean; -} -/** - * @generated from protobuf message lnrpc.SubscribeCustomMessagesRequest - */ -export interface SubscribeCustomMessagesRequest { -} -/** - * @generated from protobuf message lnrpc.CustomMessage - */ -export interface CustomMessage { - /** - * Peer from which the message originates - * - * @generated from protobuf field: bytes peer = 1; - */ - peer: Uint8Array; - /** - * Message type. This value will be in the custom range (>= 32768). - * - * @generated from protobuf field: uint32 type = 2; - */ - type: number; - /** - * Raw message data - * - * @generated from protobuf field: bytes data = 3; - */ - data: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.SendCustomMessageRequest - */ -export interface SendCustomMessageRequest { - /** - * Peer to send the message to - * - * @generated from protobuf field: bytes peer = 1; - */ - peer: Uint8Array; - /** - * Message type. This value needs to be in the custom range (>= 32768). - * - * @generated from protobuf field: uint32 type = 2; - */ - type: number; - /** - * Raw message data. - * - * @generated from protobuf field: bytes data = 3; - */ - data: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.SendCustomMessageResponse - */ -export interface SendCustomMessageResponse { -} -/** - * @generated from protobuf message lnrpc.Utxo - */ -export interface Utxo { - /** - * The type of address - * - * @generated from protobuf field: lnrpc.AddressType address_type = 1; - */ - addressType: AddressType; - /** - * The address - * - * @generated from protobuf field: string address = 2; - */ - address: string; - /** - * The value of the unspent coin in satoshis - * - * @generated from protobuf field: int64 amount_sat = 3; - */ - amountSat: number; - /** - * The pkscript in hex - * - * @generated from protobuf field: string pk_script = 4; - */ - pkScript: string; - /** - * The outpoint in format txid:n - * - * @generated from protobuf field: lnrpc.OutPoint outpoint = 5; - */ - outpoint?: OutPoint; - /** - * The number of confirmations for the Utxo - * - * @generated from protobuf field: int64 confirmations = 6; - */ - confirmations: number; -} -/** - * @generated from protobuf message lnrpc.OutputDetail - */ -export interface OutputDetail { - /** - * The type of the output - * - * @generated from protobuf field: lnrpc.OutputScriptType output_type = 1; - */ - outputType: OutputScriptType; - /** - * The address - * - * @generated from protobuf field: string address = 2; - */ - address: string; - /** - * The pkscript in hex - * - * @generated from protobuf field: string pk_script = 3; - */ - pkScript: string; - /** - * The output index used in the raw transaction - * - * @generated from protobuf field: int64 output_index = 4; - */ - outputIndex: number; - /** - * The value of the output coin in satoshis - * - * @generated from protobuf field: int64 amount = 5; - */ - amount: number; - /** - * Denotes if the output is controlled by the internal wallet - * - * @generated from protobuf field: bool is_our_address = 6; - */ - isOurAddress: boolean; -} -/** - * @generated from protobuf message lnrpc.Transaction - */ -export interface Transaction { - /** - * The transaction hash - * - * @generated from protobuf field: string tx_hash = 1; - */ - txHash: string; - /** - * The transaction amount, denominated in satoshis - * - * @generated from protobuf field: int64 amount = 2; - */ - amount: number; - /** - * The number of confirmations - * - * @generated from protobuf field: int32 num_confirmations = 3; - */ - numConfirmations: number; - /** - * The hash of the block this transaction was included in - * - * @generated from protobuf field: string block_hash = 4; - */ - blockHash: string; - /** - * The height of the block this transaction was included in - * - * @generated from protobuf field: int32 block_height = 5; - */ - blockHeight: number; - /** - * Timestamp of this transaction - * - * @generated from protobuf field: int64 time_stamp = 6; - */ - timeStamp: number; - /** - * Fees paid for this transaction - * - * @generated from protobuf field: int64 total_fees = 7; - */ - totalFees: number; - /** - * Addresses that received funds for this transaction. Deprecated as it is - * now incorporated in the output_details field. - * - * @deprecated - * @generated from protobuf field: repeated string dest_addresses = 8 [deprecated = true]; - */ - destAddresses: string[]; - /** - * Outputs that received funds for this transaction - * - * @generated from protobuf field: repeated lnrpc.OutputDetail output_details = 11; - */ - outputDetails: OutputDetail[]; - /** - * The raw transaction hex. - * - * @generated from protobuf field: string raw_tx_hex = 9; - */ - rawTxHex: string; - /** - * A label that was optionally set on transaction broadcast. - * - * @generated from protobuf field: string label = 10; - */ - label: string; - /** - * PreviousOutpoints/Inputs of this transaction. - * - * @generated from protobuf field: repeated lnrpc.PreviousOutPoint previous_outpoints = 12; - */ - previousOutpoints: PreviousOutPoint[]; -} -/** - * @generated from protobuf message lnrpc.GetTransactionsRequest - */ -export interface GetTransactionsRequest { - /** - * - * The height from which to list transactions, inclusive. If this value is - * greater than end_height, transactions will be read in reverse. - * - * @generated from protobuf field: int32 start_height = 1; - */ - startHeight: number; - /** - * - * The height until which to list transactions, inclusive. To include - * unconfirmed transactions, this value should be set to -1, which will - * return transactions from start_height until the current chain tip and - * unconfirmed transactions. If no end_height is provided, the call will - * default to this option. - * - * @generated from protobuf field: int32 end_height = 2; - */ - endHeight: number; - /** - * An optional filter to only include transactions relevant to an account. - * - * @generated from protobuf field: string account = 3; - */ - account: string; -} -/** - * @generated from protobuf message lnrpc.TransactionDetails - */ -export interface TransactionDetails { - /** - * The list of transactions relevant to the wallet. - * - * @generated from protobuf field: repeated lnrpc.Transaction transactions = 1; - */ - transactions: Transaction[]; -} -/** - * @generated from protobuf message lnrpc.FeeLimit - */ -export interface FeeLimit { - /** - * @generated from protobuf oneof: limit - */ - limit: { - oneofKind: "fixed"; - /** - * - * The fee limit expressed as a fixed amount of satoshis. - * - * The fields fixed and fixed_msat are mutually exclusive. - * - * @generated from protobuf field: int64 fixed = 1; - */ - fixed: number; - } | { - oneofKind: "fixedMsat"; - /** - * - * The fee limit expressed as a fixed amount of millisatoshis. - * - * The fields fixed and fixed_msat are mutually exclusive. - * - * @generated from protobuf field: int64 fixed_msat = 3; - */ - fixedMsat: number; - } | { - oneofKind: "percent"; - /** - * The fee limit expressed as a percentage of the payment amount. - * - * @generated from protobuf field: int64 percent = 2; - */ - percent: number; - } | { - oneofKind: undefined; - }; -} -/** - * @generated from protobuf message lnrpc.SendRequest - */ -export interface SendRequest { - /** - * - * The identity pubkey of the payment recipient. When using REST, this field - * must be encoded as base64. - * - * @generated from protobuf field: bytes dest = 1; - */ - dest: Uint8Array; - /** - * - * The hex-encoded identity pubkey of the payment recipient. Deprecated now - * that the REST gateway supports base64 encoding of bytes fields. - * - * @deprecated - * @generated from protobuf field: string dest_string = 2 [deprecated = true]; - */ - destString: string; - /** - * - * The amount to send expressed in satoshis. - * - * The fields amt and amt_msat are mutually exclusive. - * - * @generated from protobuf field: int64 amt = 3; - */ - amt: number; - /** - * - * The amount to send expressed in millisatoshis. - * - * The fields amt and amt_msat are mutually exclusive. - * - * @generated from protobuf field: int64 amt_msat = 12; - */ - amtMsat: number; - /** - * - * The hash to use within the payment's HTLC. When using REST, this field - * must be encoded as base64. - * - * @generated from protobuf field: bytes payment_hash = 4; - */ - paymentHash: Uint8Array; - /** - * - * The hex-encoded hash to use within the payment's HTLC. Deprecated now - * that the REST gateway supports base64 encoding of bytes fields. - * - * @deprecated - * @generated from protobuf field: string payment_hash_string = 5 [deprecated = true]; - */ - paymentHashString: string; - /** - * - * A bare-bones invoice for a payment within the Lightning Network. With the - * details of the invoice, the sender has all the data necessary to send a - * payment to the recipient. - * - * @generated from protobuf field: string payment_request = 6; - */ - paymentRequest: string; - /** - * - * The CLTV delta from the current height that should be used to set the - * timelock for the final hop. - * - * @generated from protobuf field: int32 final_cltv_delta = 7; - */ - finalCltvDelta: number; - /** - * - * The maximum number of satoshis that will be paid as a fee of the payment. - * This value can be represented either as a percentage of the amount being - * sent, or as a fixed amount of the maximum fee the user is willing the pay to - * send the payment. If not specified, lnd will use a default value of 100% - * fees for small amounts (<=1k sat) or 5% fees for larger amounts. - * - * @generated from protobuf field: lnrpc.FeeLimit fee_limit = 8; - */ - feeLimit?: FeeLimit; - /** - * - * The channel id of the channel that must be taken to the first hop. If zero, - * any channel may be used. - * - * @generated from protobuf field: uint64 outgoing_chan_id = 9 [jstype = JS_STRING]; - */ - outgoingChanId: string; - /** - * - * The pubkey of the last hop of the route. If empty, any hop may be used. - * - * @generated from protobuf field: bytes last_hop_pubkey = 13; - */ - lastHopPubkey: Uint8Array; - /** - * - * An optional maximum total time lock for the route. This should not exceed - * lnd's `--max-cltv-expiry` setting. If zero, then the value of - * `--max-cltv-expiry` is enforced. - * - * @generated from protobuf field: uint32 cltv_limit = 10; - */ - cltvLimit: number; - /** - * - * An optional field that can be used to pass an arbitrary set of TLV records - * to a peer which understands the new records. This can be used to pass - * application specific data during the payment attempt. Record types are - * required to be in the custom range >= 65536. When using REST, the values - * must be encoded as base64. - * - * @generated from protobuf field: map dest_custom_records = 11; - */ - destCustomRecords: { - [key: string]: Uint8Array; - }; - /** - * If set, circular payments to self are permitted. - * - * @generated from protobuf field: bool allow_self_payment = 14; - */ - allowSelfPayment: boolean; - /** - * - * Features assumed to be supported by the final node. All transitive feature - * dependencies must also be set properly. For a given feature bit pair, either - * optional or remote may be set, but not both. If this field is nil or empty, - * the router will try to load destination features from the graph as a - * fallback. - * - * @generated from protobuf field: repeated lnrpc.FeatureBit dest_features = 15; - */ - destFeatures: FeatureBit[]; - /** - * - * The payment address of the generated invoice. - * - * @generated from protobuf field: bytes payment_addr = 16; - */ - paymentAddr: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.SendResponse - */ -export interface SendResponse { - /** - * @generated from protobuf field: string payment_error = 1; - */ - paymentError: string; - /** - * @generated from protobuf field: bytes payment_preimage = 2; - */ - paymentPreimage: Uint8Array; - /** - * @generated from protobuf field: lnrpc.Route payment_route = 3; - */ - paymentRoute?: Route; - /** - * @generated from protobuf field: bytes payment_hash = 4; - */ - paymentHash: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.SendToRouteRequest - */ -export interface SendToRouteRequest { - /** - * - * The payment hash to use for the HTLC. When using REST, this field must be - * encoded as base64. - * - * @generated from protobuf field: bytes payment_hash = 1; - */ - paymentHash: Uint8Array; - /** - * - * An optional hex-encoded payment hash to be used for the HTLC. Deprecated now - * that the REST gateway supports base64 encoding of bytes fields. - * - * @deprecated - * @generated from protobuf field: string payment_hash_string = 2 [deprecated = true]; - */ - paymentHashString: string; - /** - * Route that should be used to attempt to complete the payment. - * - * @generated from protobuf field: lnrpc.Route route = 4; - */ - route?: Route; -} -/** - * @generated from protobuf message lnrpc.ChannelAcceptRequest - */ -export interface ChannelAcceptRequest { - /** - * The pubkey of the node that wishes to open an inbound channel. - * - * @generated from protobuf field: bytes node_pubkey = 1; - */ - nodePubkey: Uint8Array; - /** - * The hash of the genesis block that the proposed channel resides in. - * - * @generated from protobuf field: bytes chain_hash = 2; - */ - chainHash: Uint8Array; - /** - * The pending channel id. - * - * @generated from protobuf field: bytes pending_chan_id = 3; - */ - pendingChanId: Uint8Array; - /** - * The funding amount in satoshis that initiator wishes to use in the - * channel. - * - * @generated from protobuf field: uint64 funding_amt = 4; - */ - fundingAmt: number; - /** - * The push amount of the proposed channel in millisatoshis. - * - * @generated from protobuf field: uint64 push_amt = 5; - */ - pushAmt: number; - /** - * The dust limit of the initiator's commitment tx. - * - * @generated from protobuf field: uint64 dust_limit = 6; - */ - dustLimit: number; - /** - * The maximum amount of coins in millisatoshis that can be pending in this - * channel. - * - * @generated from protobuf field: uint64 max_value_in_flight = 7; - */ - maxValueInFlight: number; - /** - * The minimum amount of satoshis the initiator requires us to have at all - * times. - * - * @generated from protobuf field: uint64 channel_reserve = 8; - */ - channelReserve: number; - /** - * The smallest HTLC in millisatoshis that the initiator will accept. - * - * @generated from protobuf field: uint64 min_htlc = 9; - */ - minHtlc: number; - /** - * The initial fee rate that the initiator suggests for both commitment - * transactions. - * - * @generated from protobuf field: uint64 fee_per_kw = 10; - */ - feePerKw: number; - /** - * - * The number of blocks to use for the relative time lock in the pay-to-self - * output of both commitment transactions. - * - * @generated from protobuf field: uint32 csv_delay = 11; - */ - csvDelay: number; - /** - * The total number of incoming HTLC's that the initiator will accept. - * - * @generated from protobuf field: uint32 max_accepted_htlcs = 12; - */ - maxAcceptedHtlcs: number; - /** - * A bit-field which the initiator uses to specify proposed channel - * behavior. - * - * @generated from protobuf field: uint32 channel_flags = 13; - */ - channelFlags: number; - /** - * The commitment type the initiator wishes to use for the proposed channel. - * - * @generated from protobuf field: lnrpc.CommitmentType commitment_type = 14; - */ - commitmentType: CommitmentType; - /** - * Whether the initiator wants to open a zero-conf channel via the channel - * type. - * - * @generated from protobuf field: bool wants_zero_conf = 15; - */ - wantsZeroConf: boolean; - /** - * Whether the initiator wants to use the scid-alias channel type. This is - * separate from the feature bit. - * - * @generated from protobuf field: bool wants_scid_alias = 16; - */ - wantsScidAlias: boolean; -} -/** - * @generated from protobuf message lnrpc.ChannelAcceptResponse - */ -export interface ChannelAcceptResponse { - /** - * Whether or not the client accepts the channel. - * - * @generated from protobuf field: bool accept = 1; - */ - accept: boolean; - /** - * The pending channel id to which this response applies. - * - * @generated from protobuf field: bytes pending_chan_id = 2; - */ - pendingChanId: Uint8Array; - /** - * - * An optional error to send the initiating party to indicate why the channel - * was rejected. This field *should not* contain sensitive information, it will - * be sent to the initiating party. This field should only be set if accept is - * false, the channel will be rejected if an error is set with accept=true - * because the meaning of this response is ambiguous. Limited to 500 - * characters. - * - * @generated from protobuf field: string error = 3; - */ - error: string; - /** - * - * The upfront shutdown address to use if the initiating peer supports option - * upfront shutdown script (see ListPeers for the features supported). Note - * that the channel open will fail if this value is set for a peer that does - * not support this feature bit. - * - * @generated from protobuf field: string upfront_shutdown = 4; - */ - upfrontShutdown: string; - /** - * - * The csv delay (in blocks) that we require for the remote party. - * - * @generated from protobuf field: uint32 csv_delay = 5; - */ - csvDelay: number; - /** - * - * The reserve amount in satoshis that we require the remote peer to adhere to. - * We require that the remote peer always have some reserve amount allocated to - * them so that there is always a disincentive to broadcast old state (if they - * hold 0 sats on their side of the channel, there is nothing to lose). - * - * @generated from protobuf field: uint64 reserve_sat = 6; - */ - reserveSat: number; - /** - * - * The maximum amount of funds in millisatoshis that we allow the remote peer - * to have in outstanding htlcs. - * - * @generated from protobuf field: uint64 in_flight_max_msat = 7; - */ - inFlightMaxMsat: number; - /** - * - * The maximum number of htlcs that the remote peer can offer us. - * - * @generated from protobuf field: uint32 max_htlc_count = 8; - */ - maxHtlcCount: number; - /** - * - * The minimum value in millisatoshis for incoming htlcs on the channel. - * - * @generated from protobuf field: uint64 min_htlc_in = 9; - */ - minHtlcIn: number; - /** - * - * The number of confirmations we require before we consider the channel open. - * - * @generated from protobuf field: uint32 min_accept_depth = 10; - */ - minAcceptDepth: number; - /** - * - * Whether the responder wants this to be a zero-conf channel. This will fail - * if either side does not have the scid-alias feature bit set. The minimum - * depth field must be zero if this is true. - * - * @generated from protobuf field: bool zero_conf = 11; - */ - zeroConf: boolean; -} -/** - * @generated from protobuf message lnrpc.ChannelPoint - */ -export interface ChannelPoint { - /** - * @generated from protobuf oneof: funding_txid - */ - fundingTxid: { - oneofKind: "fundingTxidBytes"; - /** - * - * Txid of the funding transaction. When using REST, this field must be - * encoded as base64. - * - * @generated from protobuf field: bytes funding_txid_bytes = 1; - */ - fundingTxidBytes: Uint8Array; - } | { - oneofKind: "fundingTxidStr"; - /** - * - * Hex-encoded string representing the byte-reversed hash of the funding - * transaction. - * - * @generated from protobuf field: string funding_txid_str = 2; - */ - fundingTxidStr: string; - } | { - oneofKind: undefined; - }; - /** - * The index of the output of the funding transaction - * - * @generated from protobuf field: uint32 output_index = 3; - */ - outputIndex: number; -} -/** - * @generated from protobuf message lnrpc.OutPoint - */ -export interface OutPoint { - /** - * Raw bytes representing the transaction id. - * - * @generated from protobuf field: bytes txid_bytes = 1; - */ - txidBytes: Uint8Array; - /** - * Reversed, hex-encoded string representing the transaction id. - * - * @generated from protobuf field: string txid_str = 2; - */ - txidStr: string; - /** - * The index of the output on the transaction. - * - * @generated from protobuf field: uint32 output_index = 3; - */ - outputIndex: number; -} -/** - * @generated from protobuf message lnrpc.PreviousOutPoint - */ -export interface PreviousOutPoint { - /** - * The outpoint in format txid:n. - * - * @generated from protobuf field: string outpoint = 1; - */ - outpoint: string; - /** - * Denotes if the outpoint is controlled by the internal wallet. - * The flag will only detect p2wkh, np2wkh and p2tr inputs as its own. - * - * @generated from protobuf field: bool is_our_output = 2; - */ - isOurOutput: boolean; -} -/** - * @generated from protobuf message lnrpc.LightningAddress - */ -export interface LightningAddress { - /** - * The identity pubkey of the Lightning node. - * - * @generated from protobuf field: string pubkey = 1; - */ - pubkey: string; - /** - * The network location of the lightning node, e.g. `69.69.69.69:1337` or - * `localhost:10011`. - * - * @generated from protobuf field: string host = 2; - */ - host: string; -} -/** - * @generated from protobuf message lnrpc.EstimateFeeRequest - */ -export interface EstimateFeeRequest { - /** - * The map from addresses to amounts for the transaction. - * - * @generated from protobuf field: map AddrToAmount = 1 [json_name = "AddrToAmount"]; - */ - addrToAmount: { - [key: string]: number; - }; - /** - * The target number of blocks that this transaction should be confirmed - * by. - * - * @generated from protobuf field: int32 target_conf = 2; - */ - targetConf: number; - /** - * The minimum number of confirmations each one of your outputs used for - * the transaction must satisfy. - * - * @generated from protobuf field: int32 min_confs = 3; - */ - minConfs: number; - /** - * Whether unconfirmed outputs should be used as inputs for the transaction. - * - * @generated from protobuf field: bool spend_unconfirmed = 4; - */ - spendUnconfirmed: boolean; -} -/** - * @generated from protobuf message lnrpc.EstimateFeeResponse - */ -export interface EstimateFeeResponse { - /** - * The total fee in satoshis. - * - * @generated from protobuf field: int64 fee_sat = 1; - */ - feeSat: number; - /** - * Deprecated, use sat_per_vbyte. - * The fee rate in satoshi/vbyte. - * - * @deprecated - * @generated from protobuf field: int64 feerate_sat_per_byte = 2 [deprecated = true]; - */ - feerateSatPerByte: number; - /** - * The fee rate in satoshi/vbyte. - * - * @generated from protobuf field: uint64 sat_per_vbyte = 3; - */ - satPerVbyte: number; -} -/** - * @generated from protobuf message lnrpc.SendManyRequest - */ -export interface SendManyRequest { - /** - * The map from addresses to amounts - * - * @generated from protobuf field: map AddrToAmount = 1 [json_name = "AddrToAmount"]; - */ - addrToAmount: { - [key: string]: number; - }; - /** - * The target number of blocks that this transaction should be confirmed - * by. - * - * @generated from protobuf field: int32 target_conf = 3; - */ - targetConf: number; - /** - * A manual fee rate set in sat/vbyte that should be used when crafting the - * transaction. - * - * @generated from protobuf field: uint64 sat_per_vbyte = 4; - */ - satPerVbyte: number; - /** - * Deprecated, use sat_per_vbyte. - * A manual fee rate set in sat/vbyte that should be used when crafting the - * transaction. - * - * @deprecated - * @generated from protobuf field: int64 sat_per_byte = 5 [deprecated = true]; - */ - satPerByte: number; - /** - * An optional label for the transaction, limited to 500 characters. - * - * @generated from protobuf field: string label = 6; - */ - label: string; - /** - * The minimum number of confirmations each one of your outputs used for - * the transaction must satisfy. - * - * @generated from protobuf field: int32 min_confs = 7; - */ - minConfs: number; - /** - * Whether unconfirmed outputs should be used as inputs for the transaction. - * - * @generated from protobuf field: bool spend_unconfirmed = 8; - */ - spendUnconfirmed: boolean; -} -/** - * @generated from protobuf message lnrpc.SendManyResponse - */ -export interface SendManyResponse { - /** - * The id of the transaction - * - * @generated from protobuf field: string txid = 1; - */ - txid: string; -} -/** - * @generated from protobuf message lnrpc.SendCoinsRequest - */ -export interface SendCoinsRequest { - /** - * The address to send coins to - * - * @generated from protobuf field: string addr = 1; - */ - addr: string; - /** - * The amount in satoshis to send - * - * @generated from protobuf field: int64 amount = 2; - */ - amount: number; - /** - * The target number of blocks that this transaction should be confirmed - * by. - * - * @generated from protobuf field: int32 target_conf = 3; - */ - targetConf: number; - /** - * A manual fee rate set in sat/vbyte that should be used when crafting the - * transaction. - * - * @generated from protobuf field: uint64 sat_per_vbyte = 4; - */ - satPerVbyte: number; - /** - * Deprecated, use sat_per_vbyte. - * A manual fee rate set in sat/vbyte that should be used when crafting the - * transaction. - * - * @deprecated - * @generated from protobuf field: int64 sat_per_byte = 5 [deprecated = true]; - */ - satPerByte: number; - /** - * - * If set, then the amount field will be ignored, and lnd will attempt to - * send all the coins under control of the internal wallet to the specified - * address. - * - * @generated from protobuf field: bool send_all = 6; - */ - sendAll: boolean; - /** - * An optional label for the transaction, limited to 500 characters. - * - * @generated from protobuf field: string label = 7; - */ - label: string; - /** - * The minimum number of confirmations each one of your outputs used for - * the transaction must satisfy. - * - * @generated from protobuf field: int32 min_confs = 8; - */ - minConfs: number; - /** - * Whether unconfirmed outputs should be used as inputs for the transaction. - * - * @generated from protobuf field: bool spend_unconfirmed = 9; - */ - spendUnconfirmed: boolean; -} -/** - * @generated from protobuf message lnrpc.SendCoinsResponse - */ -export interface SendCoinsResponse { - /** - * The transaction ID of the transaction - * - * @generated from protobuf field: string txid = 1; - */ - txid: string; -} -/** - * @generated from protobuf message lnrpc.ListUnspentRequest - */ -export interface ListUnspentRequest { - /** - * The minimum number of confirmations to be included. - * - * @generated from protobuf field: int32 min_confs = 1; - */ - minConfs: number; - /** - * The maximum number of confirmations to be included. - * - * @generated from protobuf field: int32 max_confs = 2; - */ - maxConfs: number; - /** - * An optional filter to only include outputs belonging to an account. - * - * @generated from protobuf field: string account = 3; - */ - account: string; -} -/** - * @generated from protobuf message lnrpc.ListUnspentResponse - */ -export interface ListUnspentResponse { - /** - * A list of utxos - * - * @generated from protobuf field: repeated lnrpc.Utxo utxos = 1; - */ - utxos: Utxo[]; -} -/** - * @generated from protobuf message lnrpc.NewAddressRequest - */ -export interface NewAddressRequest { - /** - * The type of address to generate. - * - * @generated from protobuf field: lnrpc.AddressType type = 1; - */ - type: AddressType; - /** - * - * The name of the account to generate a new address for. If empty, the - * default wallet account is used. - * - * @generated from protobuf field: string account = 2; - */ - account: string; -} -/** - * @generated from protobuf message lnrpc.NewAddressResponse - */ -export interface NewAddressResponse { - /** - * The newly generated wallet address - * - * @generated from protobuf field: string address = 1; - */ - address: string; -} -/** - * @generated from protobuf message lnrpc.SignMessageRequest - */ -export interface SignMessageRequest { - /** - * - * The message to be signed. When using REST, this field must be encoded as - * base64. - * - * @generated from protobuf field: bytes msg = 1; - */ - msg: Uint8Array; - /** - * - * Instead of the default double-SHA256 hashing of the message before signing, - * only use one round of hashing instead. - * - * @generated from protobuf field: bool single_hash = 2; - */ - singleHash: boolean; -} -/** - * @generated from protobuf message lnrpc.SignMessageResponse - */ -export interface SignMessageResponse { - /** - * The signature for the given message - * - * @generated from protobuf field: string signature = 1; - */ - signature: string; -} -/** - * @generated from protobuf message lnrpc.VerifyMessageRequest - */ -export interface VerifyMessageRequest { - /** - * - * The message over which the signature is to be verified. When using REST, - * this field must be encoded as base64. - * - * @generated from protobuf field: bytes msg = 1; - */ - msg: Uint8Array; - /** - * The signature to be verified over the given message - * - * @generated from protobuf field: string signature = 2; - */ - signature: string; -} -/** - * @generated from protobuf message lnrpc.VerifyMessageResponse - */ -export interface VerifyMessageResponse { - /** - * Whether the signature was valid over the given message - * - * @generated from protobuf field: bool valid = 1; - */ - valid: boolean; - /** - * The pubkey recovered from the signature - * - * @generated from protobuf field: string pubkey = 2; - */ - pubkey: string; -} -/** - * @generated from protobuf message lnrpc.ConnectPeerRequest - */ -export interface ConnectPeerRequest { - /** - * - * Lightning address of the peer to connect to. - * - * @generated from protobuf field: lnrpc.LightningAddress addr = 1; - */ - addr?: LightningAddress; - /** - * - * If set, the daemon will attempt to persistently connect to the target - * peer. Otherwise, the call will be synchronous. - * - * @generated from protobuf field: bool perm = 2; - */ - perm: boolean; - /** - * - * The connection timeout value (in seconds) for this request. It won't affect - * other requests. - * - * @generated from protobuf field: uint64 timeout = 3; - */ - timeout: number; -} -/** - * @generated from protobuf message lnrpc.ConnectPeerResponse - */ -export interface ConnectPeerResponse { -} -/** - * @generated from protobuf message lnrpc.DisconnectPeerRequest - */ -export interface DisconnectPeerRequest { - /** - * The pubkey of the node to disconnect from - * - * @generated from protobuf field: string pub_key = 1; - */ - pubKey: string; -} -/** - * @generated from protobuf message lnrpc.DisconnectPeerResponse - */ -export interface DisconnectPeerResponse { -} -/** - * @generated from protobuf message lnrpc.HTLC - */ -export interface HTLC { - /** - * @generated from protobuf field: bool incoming = 1; - */ - incoming: boolean; - /** - * @generated from protobuf field: int64 amount = 2; - */ - amount: number; - /** - * @generated from protobuf field: bytes hash_lock = 3; - */ - hashLock: Uint8Array; - /** - * @generated from protobuf field: uint32 expiration_height = 4; - */ - expirationHeight: number; - /** - * Index identifying the htlc on the channel. - * - * @generated from protobuf field: uint64 htlc_index = 5; - */ - htlcIndex: number; - /** - * If this HTLC is involved in a forwarding operation, this field indicates - * the forwarding channel. For an outgoing htlc, it is the incoming channel. - * For an incoming htlc, it is the outgoing channel. When the htlc - * originates from this node or this node is the final destination, - * forwarding_channel will be zero. The forwarding channel will also be zero - * for htlcs that need to be forwarded but don't have a forwarding decision - * persisted yet. - * - * @generated from protobuf field: uint64 forwarding_channel = 6; - */ - forwardingChannel: number; - /** - * Index identifying the htlc on the forwarding channel. - * - * @generated from protobuf field: uint64 forwarding_htlc_index = 7; - */ - forwardingHtlcIndex: number; -} -/** - * @generated from protobuf message lnrpc.ChannelConstraints - */ -export interface ChannelConstraints { - /** - * - * The CSV delay expressed in relative blocks. If the channel is force closed, - * we will need to wait for this many blocks before we can regain our funds. - * - * @generated from protobuf field: uint32 csv_delay = 1; - */ - csvDelay: number; - /** - * The minimum satoshis this node is required to reserve in its balance. - * - * @generated from protobuf field: uint64 chan_reserve_sat = 2; - */ - chanReserveSat: number; - /** - * The dust limit (in satoshis) of the initiator's commitment tx. - * - * @generated from protobuf field: uint64 dust_limit_sat = 3; - */ - dustLimitSat: number; - /** - * The maximum amount of coins in millisatoshis that can be pending in this - * channel. - * - * @generated from protobuf field: uint64 max_pending_amt_msat = 4; - */ - maxPendingAmtMsat: number; - /** - * The smallest HTLC in millisatoshis that the initiator will accept. - * - * @generated from protobuf field: uint64 min_htlc_msat = 5; - */ - minHtlcMsat: number; - /** - * The total number of incoming HTLC's that the initiator will accept. - * - * @generated from protobuf field: uint32 max_accepted_htlcs = 6; - */ - maxAcceptedHtlcs: number; -} -/** - * @generated from protobuf message lnrpc.Channel - */ -export interface Channel { - /** - * Whether this channel is active or not - * - * @generated from protobuf field: bool active = 1; - */ - active: boolean; - /** - * The identity pubkey of the remote node - * - * @generated from protobuf field: string remote_pubkey = 2; - */ - remotePubkey: string; - /** - * - * The outpoint (txid:index) of the funding transaction. With this value, Bob - * will be able to generate a signature for Alice's version of the commitment - * transaction. - * - * @generated from protobuf field: string channel_point = 3; - */ - channelPoint: string; - /** - * - * The unique channel ID for the channel. The first 3 bytes are the block - * height, the next 3 the index within the block, and the last 2 bytes are the - * output index for the channel. - * - * @generated from protobuf field: uint64 chan_id = 4 [jstype = JS_STRING]; - */ - chanId: string; - /** - * The total amount of funds held in this channel - * - * @generated from protobuf field: int64 capacity = 5; - */ - capacity: number; - /** - * This node's current balance in this channel - * - * @generated from protobuf field: int64 local_balance = 6; - */ - localBalance: number; - /** - * The counterparty's current balance in this channel - * - * @generated from protobuf field: int64 remote_balance = 7; - */ - remoteBalance: number; - /** - * - * The amount calculated to be paid in fees for the current set of commitment - * transactions. The fee amount is persisted with the channel in order to - * allow the fee amount to be removed and recalculated with each channel state - * update, including updates that happen after a system restart. - * - * @generated from protobuf field: int64 commit_fee = 8; - */ - commitFee: number; - /** - * The weight of the commitment transaction - * - * @generated from protobuf field: int64 commit_weight = 9; - */ - commitWeight: number; - /** - * - * The required number of satoshis per kilo-weight that the requester will pay - * at all times, for both the funding transaction and commitment transaction. - * This value can later be updated once the channel is open. - * - * @generated from protobuf field: int64 fee_per_kw = 10; - */ - feePerKw: number; - /** - * The unsettled balance in this channel - * - * @generated from protobuf field: int64 unsettled_balance = 11; - */ - unsettledBalance: number; - /** - * - * The total number of satoshis we've sent within this channel. - * - * @generated from protobuf field: int64 total_satoshis_sent = 12; - */ - totalSatoshisSent: number; - /** - * - * The total number of satoshis we've received within this channel. - * - * @generated from protobuf field: int64 total_satoshis_received = 13; - */ - totalSatoshisReceived: number; - /** - * - * The total number of updates conducted within this channel. - * - * @generated from protobuf field: uint64 num_updates = 14; - */ - numUpdates: number; - /** - * - * The list of active, uncleared HTLCs currently pending within the channel. - * - * @generated from protobuf field: repeated lnrpc.HTLC pending_htlcs = 15; - */ - pendingHtlcs: HTLC[]; - /** - * - * Deprecated. The CSV delay expressed in relative blocks. If the channel is - * force closed, we will need to wait for this many blocks before we can regain - * our funds. - * - * @deprecated - * @generated from protobuf field: uint32 csv_delay = 16 [deprecated = true]; - */ - csvDelay: number; - /** - * Whether this channel is advertised to the network or not. - * - * @generated from protobuf field: bool private = 17; - */ - private: boolean; - /** - * True if we were the ones that created the channel. - * - * @generated from protobuf field: bool initiator = 18; - */ - initiator: boolean; - /** - * A set of flags showing the current state of the channel. - * - * @generated from protobuf field: string chan_status_flags = 19; - */ - chanStatusFlags: string; - /** - * Deprecated. The minimum satoshis this node is required to reserve in its - * balance. - * - * @deprecated - * @generated from protobuf field: int64 local_chan_reserve_sat = 20 [deprecated = true]; - */ - localChanReserveSat: number; - /** - * - * Deprecated. The minimum satoshis the other node is required to reserve in - * its balance. - * - * @deprecated - * @generated from protobuf field: int64 remote_chan_reserve_sat = 21 [deprecated = true]; - */ - remoteChanReserveSat: number; - /** - * Deprecated. Use commitment_type. - * - * @deprecated - * @generated from protobuf field: bool static_remote_key = 22 [deprecated = true]; - */ - staticRemoteKey: boolean; - /** - * The commitment type used by this channel. - * - * @generated from protobuf field: lnrpc.CommitmentType commitment_type = 26; - */ - commitmentType: CommitmentType; - /** - * - * The number of seconds that the channel has been monitored by the channel - * scoring system. Scores are currently not persisted, so this value may be - * less than the lifetime of the channel [EXPERIMENTAL]. - * - * @generated from protobuf field: int64 lifetime = 23; - */ - lifetime: number; - /** - * - * The number of seconds that the remote peer has been observed as being online - * by the channel scoring system over the lifetime of the channel - * [EXPERIMENTAL]. - * - * @generated from protobuf field: int64 uptime = 24; - */ - uptime: number; - /** - * - * Close address is the address that we will enforce payout to on cooperative - * close if the channel was opened utilizing option upfront shutdown. This - * value can be set on channel open by setting close_address in an open channel - * request. If this value is not set, you can still choose a payout address by - * cooperatively closing with the delivery_address field set. - * - * @generated from protobuf field: string close_address = 25; - */ - closeAddress: string; - /** - * - * The amount that the initiator of the channel optionally pushed to the remote - * party on channel open. This amount will be zero if the channel initiator did - * not push any funds to the remote peer. If the initiator field is true, we - * pushed this amount to our peer, if it is false, the remote peer pushed this - * amount to us. - * - * @generated from protobuf field: uint64 push_amount_sat = 27; - */ - pushAmountSat: number; - /** - * - * This uint32 indicates if this channel is to be considered 'frozen'. A - * frozen channel doest not allow a cooperative channel close by the - * initiator. The thaw_height is the height that this restriction stops - * applying to the channel. This field is optional, not setting it or using a - * value of zero will mean the channel has no additional restrictions. The - * height can be interpreted in two ways: as a relative height if the value is - * less than 500,000, or as an absolute height otherwise. - * - * @generated from protobuf field: uint32 thaw_height = 28; - */ - thawHeight: number; - /** - * List constraints for the local node. - * - * @generated from protobuf field: lnrpc.ChannelConstraints local_constraints = 29; - */ - localConstraints?: ChannelConstraints; - /** - * List constraints for the remote node. - * - * @generated from protobuf field: lnrpc.ChannelConstraints remote_constraints = 30; - */ - remoteConstraints?: ChannelConstraints; - /** - * - * This lists out the set of alias short channel ids that exist for a channel. - * This may be empty. - * - * @generated from protobuf field: repeated uint64 alias_scids = 31; - */ - aliasScids: number[]; - /** - * Whether or not this is a zero-conf channel. - * - * @generated from protobuf field: bool zero_conf = 32; - */ - zeroConf: boolean; - /** - * This is the confirmed / on-chain zero-conf SCID. - * - * @generated from protobuf field: uint64 zero_conf_confirmed_scid = 33; - */ - zeroConfConfirmedScid: number; -} -/** - * @generated from protobuf message lnrpc.ListChannelsRequest - */ -export interface ListChannelsRequest { - /** - * @generated from protobuf field: bool active_only = 1; - */ - activeOnly: boolean; - /** - * @generated from protobuf field: bool inactive_only = 2; - */ - inactiveOnly: boolean; - /** - * @generated from protobuf field: bool public_only = 3; - */ - publicOnly: boolean; - /** - * @generated from protobuf field: bool private_only = 4; - */ - privateOnly: boolean; - /** - * - * Filters the response for channels with a target peer's pubkey. If peer is - * empty, all channels will be returned. - * - * @generated from protobuf field: bytes peer = 5; - */ - peer: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.ListChannelsResponse - */ -export interface ListChannelsResponse { - /** - * The list of active channels - * - * @generated from protobuf field: repeated lnrpc.Channel channels = 11; - */ - channels: Channel[]; -} -/** - * @generated from protobuf message lnrpc.AliasMap - */ -export interface AliasMap { - /** - * - * For non-zero-conf channels, this is the confirmed SCID. Otherwise, this is - * the first assigned "base" alias. - * - * @generated from protobuf field: uint64 base_scid = 1; - */ - baseScid: number; - /** - * The set of all aliases stored for the base SCID. - * - * @generated from protobuf field: repeated uint64 aliases = 2; - */ - aliases: number[]; -} -/** - * @generated from protobuf message lnrpc.ListAliasesRequest - */ -export interface ListAliasesRequest { -} -/** - * @generated from protobuf message lnrpc.ListAliasesResponse - */ -export interface ListAliasesResponse { - /** - * @generated from protobuf field: repeated lnrpc.AliasMap alias_maps = 1; - */ - aliasMaps: AliasMap[]; -} -/** - * @generated from protobuf message lnrpc.ChannelCloseSummary - */ -export interface ChannelCloseSummary { - /** - * The outpoint (txid:index) of the funding transaction. - * - * @generated from protobuf field: string channel_point = 1; - */ - channelPoint: string; - /** - * The unique channel ID for the channel. - * - * @generated from protobuf field: uint64 chan_id = 2 [jstype = JS_STRING]; - */ - chanId: string; - /** - * The hash of the genesis block that this channel resides within. - * - * @generated from protobuf field: string chain_hash = 3; - */ - chainHash: string; - /** - * The txid of the transaction which ultimately closed this channel. - * - * @generated from protobuf field: string closing_tx_hash = 4; - */ - closingTxHash: string; - /** - * Public key of the remote peer that we formerly had a channel with. - * - * @generated from protobuf field: string remote_pubkey = 5; - */ - remotePubkey: string; - /** - * Total capacity of the channel. - * - * @generated from protobuf field: int64 capacity = 6; - */ - capacity: number; - /** - * Height at which the funding transaction was spent. - * - * @generated from protobuf field: uint32 close_height = 7; - */ - closeHeight: number; - /** - * Settled balance at the time of channel closure - * - * @generated from protobuf field: int64 settled_balance = 8; - */ - settledBalance: number; - /** - * The sum of all the time-locked outputs at the time of channel closure - * - * @generated from protobuf field: int64 time_locked_balance = 9; - */ - timeLockedBalance: number; - /** - * Details on how the channel was closed. - * - * @generated from protobuf field: lnrpc.ChannelCloseSummary.ClosureType close_type = 10; - */ - closeType: ChannelCloseSummary_ClosureType; - /** - * - * Open initiator is the party that initiated opening the channel. Note that - * this value may be unknown if the channel was closed before we migrated to - * store open channel information after close. - * - * @generated from protobuf field: lnrpc.Initiator open_initiator = 11; - */ - openInitiator: Initiator; - /** - * - * Close initiator indicates which party initiated the close. This value will - * be unknown for channels that were cooperatively closed before we started - * tracking cooperative close initiators. Note that this indicates which party - * initiated a close, and it is possible for both to initiate cooperative or - * force closes, although only one party's close will be confirmed on chain. - * - * @generated from protobuf field: lnrpc.Initiator close_initiator = 12; - */ - closeInitiator: Initiator; - /** - * @generated from protobuf field: repeated lnrpc.Resolution resolutions = 13; - */ - resolutions: Resolution[]; - /** - * - * This lists out the set of alias short channel ids that existed for the - * closed channel. This may be empty. - * - * @generated from protobuf field: repeated uint64 alias_scids = 14; - */ - aliasScids: number[]; - /** - * The confirmed SCID for a zero-conf channel. - * - * @generated from protobuf field: uint64 zero_conf_confirmed_scid = 15 [jstype = JS_STRING]; - */ - zeroConfConfirmedScid: string; -} -/** - * @generated from protobuf enum lnrpc.ChannelCloseSummary.ClosureType - */ -export declare enum ChannelCloseSummary_ClosureType { - /** - * @generated from protobuf enum value: COOPERATIVE_CLOSE = 0; - */ - COOPERATIVE_CLOSE = 0, - /** - * @generated from protobuf enum value: LOCAL_FORCE_CLOSE = 1; - */ - LOCAL_FORCE_CLOSE = 1, - /** - * @generated from protobuf enum value: REMOTE_FORCE_CLOSE = 2; - */ - REMOTE_FORCE_CLOSE = 2, - /** - * @generated from protobuf enum value: BREACH_CLOSE = 3; - */ - BREACH_CLOSE = 3, - /** - * @generated from protobuf enum value: FUNDING_CANCELED = 4; - */ - FUNDING_CANCELED = 4, - /** - * @generated from protobuf enum value: ABANDONED = 5; - */ - ABANDONED = 5 -} -/** - * @generated from protobuf message lnrpc.Resolution - */ -export interface Resolution { - /** - * The type of output we are resolving. - * - * @generated from protobuf field: lnrpc.ResolutionType resolution_type = 1; - */ - resolutionType: ResolutionType; - /** - * The outcome of our on chain action that resolved the outpoint. - * - * @generated from protobuf field: lnrpc.ResolutionOutcome outcome = 2; - */ - outcome: ResolutionOutcome; - /** - * The outpoint that was spent by the resolution. - * - * @generated from protobuf field: lnrpc.OutPoint outpoint = 3; - */ - outpoint?: OutPoint; - /** - * The amount that was claimed by the resolution. - * - * @generated from protobuf field: uint64 amount_sat = 4; - */ - amountSat: number; - /** - * The hex-encoded transaction ID of the sweep transaction that spent the - * output. - * - * @generated from protobuf field: string sweep_txid = 5; - */ - sweepTxid: string; -} -/** - * @generated from protobuf message lnrpc.ClosedChannelsRequest - */ -export interface ClosedChannelsRequest { - /** - * @generated from protobuf field: bool cooperative = 1; - */ - cooperative: boolean; - /** - * @generated from protobuf field: bool local_force = 2; - */ - localForce: boolean; - /** - * @generated from protobuf field: bool remote_force = 3; - */ - remoteForce: boolean; - /** - * @generated from protobuf field: bool breach = 4; - */ - breach: boolean; - /** - * @generated from protobuf field: bool funding_canceled = 5; - */ - fundingCanceled: boolean; - /** - * @generated from protobuf field: bool abandoned = 6; - */ - abandoned: boolean; -} -/** - * @generated from protobuf message lnrpc.ClosedChannelsResponse - */ -export interface ClosedChannelsResponse { - /** - * @generated from protobuf field: repeated lnrpc.ChannelCloseSummary channels = 1; - */ - channels: ChannelCloseSummary[]; -} -/** - * @generated from protobuf message lnrpc.Peer - */ -export interface Peer { - /** - * The identity pubkey of the peer - * - * @generated from protobuf field: string pub_key = 1; - */ - pubKey: string; - /** - * Network address of the peer; eg `127.0.0.1:10011` - * - * @generated from protobuf field: string address = 3; - */ - address: string; - /** - * Bytes of data transmitted to this peer - * - * @generated from protobuf field: uint64 bytes_sent = 4; - */ - bytesSent: number; - /** - * Bytes of data transmitted from this peer - * - * @generated from protobuf field: uint64 bytes_recv = 5; - */ - bytesRecv: number; - /** - * Satoshis sent to this peer - * - * @generated from protobuf field: int64 sat_sent = 6; - */ - satSent: number; - /** - * Satoshis received from this peer - * - * @generated from protobuf field: int64 sat_recv = 7; - */ - satRecv: number; - /** - * A channel is inbound if the counterparty initiated the channel - * - * @generated from protobuf field: bool inbound = 8; - */ - inbound: boolean; - /** - * Ping time to this peer - * - * @generated from protobuf field: int64 ping_time = 9; - */ - pingTime: number; - /** - * The type of sync we are currently performing with this peer. - * - * @generated from protobuf field: lnrpc.Peer.SyncType sync_type = 10; - */ - syncType: Peer_SyncType; - /** - * Features advertised by the remote peer in their init message. - * - * @generated from protobuf field: map features = 11; - */ - features: { - [key: number]: Feature; - }; - /** - * - * The latest errors received from our peer with timestamps, limited to the 10 - * most recent errors. These errors are tracked across peer connections, but - * are not persisted across lnd restarts. Note that these errors are only - * stored for peers that we have channels open with, to prevent peers from - * spamming us with errors at no cost. - * - * @generated from protobuf field: repeated lnrpc.TimestampedError errors = 12; - */ - errors: TimestampedError[]; - /** - * - * The number of times we have recorded this peer going offline or coming - * online, recorded across restarts. Note that this value is decreased over - * time if the peer has not recently flapped, so that we can forgive peers - * with historically high flap counts. - * - * @generated from protobuf field: int32 flap_count = 13; - */ - flapCount: number; - /** - * - * The timestamp of the last flap we observed for this peer. If this value is - * zero, we have not observed any flaps for this peer. - * - * @generated from protobuf field: int64 last_flap_ns = 14; - */ - lastFlapNs: number; - /** - * - * The last ping payload the peer has sent to us. - * - * @generated from protobuf field: bytes last_ping_payload = 15; - */ - lastPingPayload: Uint8Array; -} -/** - * @generated from protobuf enum lnrpc.Peer.SyncType - */ -export declare enum Peer_SyncType { - /** - * - * Denotes that we cannot determine the peer's current sync type. - * - * @generated from protobuf enum value: UNKNOWN_SYNC = 0; - */ - UNKNOWN_SYNC = 0, - /** - * - * Denotes that we are actively receiving new graph updates from the peer. - * - * @generated from protobuf enum value: ACTIVE_SYNC = 1; - */ - ACTIVE_SYNC = 1, - /** - * - * Denotes that we are not receiving new graph updates from the peer. - * - * @generated from protobuf enum value: PASSIVE_SYNC = 2; - */ - PASSIVE_SYNC = 2, - /** - * - * Denotes that this peer is pinned into an active sync. - * - * @generated from protobuf enum value: PINNED_SYNC = 3; - */ - PINNED_SYNC = 3 -} -/** - * @generated from protobuf message lnrpc.TimestampedError - */ -export interface TimestampedError { - /** - * The unix timestamp in seconds when the error occurred. - * - * @generated from protobuf field: uint64 timestamp = 1; - */ - timestamp: number; - /** - * The string representation of the error sent by our peer. - * - * @generated from protobuf field: string error = 2; - */ - error: string; -} -/** - * @generated from protobuf message lnrpc.ListPeersRequest - */ -export interface ListPeersRequest { - /** - * - * If true, only the last error that our peer sent us will be returned with - * the peer's information, rather than the full set of historic errors we have - * stored. - * - * @generated from protobuf field: bool latest_error = 1; - */ - latestError: boolean; -} -/** - * @generated from protobuf message lnrpc.ListPeersResponse - */ -export interface ListPeersResponse { - /** - * The list of currently connected peers - * - * @generated from protobuf field: repeated lnrpc.Peer peers = 1; - */ - peers: Peer[]; -} -/** - * @generated from protobuf message lnrpc.PeerEventSubscription - */ -export interface PeerEventSubscription { -} -/** - * @generated from protobuf message lnrpc.PeerEvent - */ -export interface PeerEvent { - /** - * The identity pubkey of the peer. - * - * @generated from protobuf field: string pub_key = 1; - */ - pubKey: string; - /** - * @generated from protobuf field: lnrpc.PeerEvent.EventType type = 2; - */ - type: PeerEvent_EventType; -} -/** - * @generated from protobuf enum lnrpc.PeerEvent.EventType - */ -export declare enum PeerEvent_EventType { - /** - * @generated from protobuf enum value: PEER_ONLINE = 0; - */ - PEER_ONLINE = 0, - /** - * @generated from protobuf enum value: PEER_OFFLINE = 1; - */ - PEER_OFFLINE = 1 -} -/** - * @generated from protobuf message lnrpc.GetInfoRequest - */ -export interface GetInfoRequest { -} -/** - * @generated from protobuf message lnrpc.GetInfoResponse - */ -export interface GetInfoResponse { - /** - * The version of the LND software that the node is running. - * - * @generated from protobuf field: string version = 14; - */ - version: string; - /** - * The SHA1 commit hash that the daemon is compiled with. - * - * @generated from protobuf field: string commit_hash = 20; - */ - commitHash: string; - /** - * The identity pubkey of the current node. - * - * @generated from protobuf field: string identity_pubkey = 1; - */ - identityPubkey: string; - /** - * If applicable, the alias of the current node, e.g. "bob" - * - * @generated from protobuf field: string alias = 2; - */ - alias: string; - /** - * The color of the current node in hex code format - * - * @generated from protobuf field: string color = 17; - */ - color: string; - /** - * Number of pending channels - * - * @generated from protobuf field: uint32 num_pending_channels = 3; - */ - numPendingChannels: number; - /** - * Number of active channels - * - * @generated from protobuf field: uint32 num_active_channels = 4; - */ - numActiveChannels: number; - /** - * Number of inactive channels - * - * @generated from protobuf field: uint32 num_inactive_channels = 15; - */ - numInactiveChannels: number; - /** - * Number of peers - * - * @generated from protobuf field: uint32 num_peers = 5; - */ - numPeers: number; - /** - * The node's current view of the height of the best block - * - * @generated from protobuf field: uint32 block_height = 6; - */ - blockHeight: number; - /** - * The node's current view of the hash of the best block - * - * @generated from protobuf field: string block_hash = 8; - */ - blockHash: string; - /** - * Timestamp of the block best known to the wallet - * - * @generated from protobuf field: int64 best_header_timestamp = 13; - */ - bestHeaderTimestamp: number; - /** - * Whether the wallet's view is synced to the main chain - * - * @generated from protobuf field: bool synced_to_chain = 9; - */ - syncedToChain: boolean; - /** - * Whether we consider ourselves synced with the public channel graph. - * - * @generated from protobuf field: bool synced_to_graph = 18; - */ - syncedToGraph: boolean; - /** - * - * Whether the current node is connected to testnet. This field is - * deprecated and the network field should be used instead - * - * @deprecated - * @generated from protobuf field: bool testnet = 10 [deprecated = true]; - */ - testnet: boolean; - /** - * A list of active chains the node is connected to - * - * @generated from protobuf field: repeated lnrpc.Chain chains = 16; - */ - chains: Chain[]; - /** - * The URIs of the current node. - * - * @generated from protobuf field: repeated string uris = 12; - */ - uris: string[]; - /** - * - * Features that our node has advertised in our init message, node - * announcements and invoices. - * - * @generated from protobuf field: map features = 19; - */ - features: { - [key: number]: Feature; - }; - /** - * - * Indicates whether the HTLC interceptor API is in always-on mode. - * - * @generated from protobuf field: bool require_htlc_interceptor = 21; - */ - requireHtlcInterceptor: boolean; -} -/** - * @generated from protobuf message lnrpc.GetRecoveryInfoRequest - */ -export interface GetRecoveryInfoRequest { -} -/** - * @generated from protobuf message lnrpc.GetRecoveryInfoResponse - */ -export interface GetRecoveryInfoResponse { - /** - * Whether the wallet is in recovery mode - * - * @generated from protobuf field: bool recovery_mode = 1; - */ - recoveryMode: boolean; - /** - * Whether the wallet recovery progress is finished - * - * @generated from protobuf field: bool recovery_finished = 2; - */ - recoveryFinished: boolean; - /** - * The recovery progress, ranging from 0 to 1. - * - * @generated from protobuf field: double progress = 3; - */ - progress: number; -} -/** - * @generated from protobuf message lnrpc.Chain - */ -export interface Chain { - /** - * The blockchain the node is on (eg bitcoin, litecoin) - * - * @generated from protobuf field: string chain = 1; - */ - chain: string; - /** - * The network the node is on (eg regtest, testnet, mainnet) - * - * @generated from protobuf field: string network = 2; - */ - network: string; -} -/** - * @generated from protobuf message lnrpc.ConfirmationUpdate - */ -export interface ConfirmationUpdate { - /** - * @generated from protobuf field: bytes block_sha = 1; - */ - blockSha: Uint8Array; - /** - * @generated from protobuf field: int32 block_height = 2; - */ - blockHeight: number; - /** - * @generated from protobuf field: uint32 num_confs_left = 3; - */ - numConfsLeft: number; -} -/** - * @generated from protobuf message lnrpc.ChannelOpenUpdate - */ -export interface ChannelOpenUpdate { - /** - * @generated from protobuf field: lnrpc.ChannelPoint channel_point = 1; - */ - channelPoint?: ChannelPoint; -} -/** - * @generated from protobuf message lnrpc.ChannelCloseUpdate - */ -export interface ChannelCloseUpdate { - /** - * @generated from protobuf field: bytes closing_txid = 1; - */ - closingTxid: Uint8Array; - /** - * @generated from protobuf field: bool success = 2; - */ - success: boolean; -} -/** - * @generated from protobuf message lnrpc.CloseChannelRequest - */ -export interface CloseChannelRequest { - /** - * - * The outpoint (txid:index) of the funding transaction. With this value, Bob - * will be able to generate a signature for Alice's version of the commitment - * transaction. - * - * @generated from protobuf field: lnrpc.ChannelPoint channel_point = 1; - */ - channelPoint?: ChannelPoint; - /** - * If true, then the channel will be closed forcibly. This means the - * current commitment transaction will be signed and broadcast. - * - * @generated from protobuf field: bool force = 2; - */ - force: boolean; - /** - * The target number of blocks that the closure transaction should be - * confirmed by. - * - * @generated from protobuf field: int32 target_conf = 3; - */ - targetConf: number; - /** - * Deprecated, use sat_per_vbyte. - * A manual fee rate set in sat/vbyte that should be used when crafting the - * closure transaction. - * - * @deprecated - * @generated from protobuf field: int64 sat_per_byte = 4 [deprecated = true]; - */ - satPerByte: number; - /** - * - * An optional address to send funds to in the case of a cooperative close. - * If the channel was opened with an upfront shutdown script and this field - * is set, the request to close will fail because the channel must pay out - * to the upfront shutdown addresss. - * - * @generated from protobuf field: string delivery_address = 5; - */ - deliveryAddress: string; - /** - * A manual fee rate set in sat/vbyte that should be used when crafting the - * closure transaction. - * - * @generated from protobuf field: uint64 sat_per_vbyte = 6; - */ - satPerVbyte: number; - /** - * The maximum fee rate the closer is willing to pay. - * - * NOTE: This field is only respected if we're the initiator of the channel. - * - * @generated from protobuf field: uint64 max_fee_per_vbyte = 7; - */ - maxFeePerVbyte: number; -} -/** - * @generated from protobuf message lnrpc.CloseStatusUpdate - */ -export interface CloseStatusUpdate { - /** - * @generated from protobuf oneof: update - */ - update: { - oneofKind: "closePending"; - /** - * @generated from protobuf field: lnrpc.PendingUpdate close_pending = 1; - */ - closePending: PendingUpdate; - } | { - oneofKind: "chanClose"; - /** - * @generated from protobuf field: lnrpc.ChannelCloseUpdate chan_close = 3; - */ - chanClose: ChannelCloseUpdate; - } | { - oneofKind: undefined; - }; -} -/** - * @generated from protobuf message lnrpc.PendingUpdate - */ -export interface PendingUpdate { - /** - * @generated from protobuf field: bytes txid = 1; - */ - txid: Uint8Array; - /** - * @generated from protobuf field: uint32 output_index = 2; - */ - outputIndex: number; -} -/** - * @generated from protobuf message lnrpc.ReadyForPsbtFunding - */ -export interface ReadyForPsbtFunding { - /** - * - * The P2WSH address of the channel funding multisig address that the below - * specified amount in satoshis needs to be sent to. - * - * @generated from protobuf field: string funding_address = 1; - */ - fundingAddress: string; - /** - * - * The exact amount in satoshis that needs to be sent to the above address to - * fund the pending channel. - * - * @generated from protobuf field: int64 funding_amount = 2; - */ - fundingAmount: number; - /** - * - * A raw PSBT that contains the pending channel output. If a base PSBT was - * provided in the PsbtShim, this is the base PSBT with one additional output. - * If no base PSBT was specified, this is an otherwise empty PSBT with exactly - * one output. - * - * @generated from protobuf field: bytes psbt = 3; - */ - psbt: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.BatchOpenChannelRequest - */ -export interface BatchOpenChannelRequest { - /** - * The list of channels to open. - * - * @generated from protobuf field: repeated lnrpc.BatchOpenChannel channels = 1; - */ - channels: BatchOpenChannel[]; - /** - * The target number of blocks that the funding transaction should be - * confirmed by. - * - * @generated from protobuf field: int32 target_conf = 2; - */ - targetConf: number; - /** - * A manual fee rate set in sat/vByte that should be used when crafting the - * funding transaction. - * - * @generated from protobuf field: int64 sat_per_vbyte = 3; - */ - satPerVbyte: number; - /** - * The minimum number of confirmations each one of your outputs used for - * the funding transaction must satisfy. - * - * @generated from protobuf field: int32 min_confs = 4; - */ - minConfs: number; - /** - * Whether unconfirmed outputs should be used as inputs for the funding - * transaction. - * - * @generated from protobuf field: bool spend_unconfirmed = 5; - */ - spendUnconfirmed: boolean; - /** - * An optional label for the batch transaction, limited to 500 characters. - * - * @generated from protobuf field: string label = 6; - */ - label: string; -} -/** - * @generated from protobuf message lnrpc.BatchOpenChannel - */ -export interface BatchOpenChannel { - /** - * The pubkey of the node to open a channel with. When using REST, this - * field must be encoded as base64. - * - * @generated from protobuf field: bytes node_pubkey = 1; - */ - nodePubkey: Uint8Array; - /** - * The number of satoshis the wallet should commit to the channel. - * - * @generated from protobuf field: int64 local_funding_amount = 2; - */ - localFundingAmount: number; - /** - * The number of satoshis to push to the remote side as part of the initial - * commitment state. - * - * @generated from protobuf field: int64 push_sat = 3; - */ - pushSat: number; - /** - * Whether this channel should be private, not announced to the greater - * network. - * - * @generated from protobuf field: bool private = 4; - */ - private: boolean; - /** - * The minimum value in millisatoshi we will require for incoming HTLCs on - * the channel. - * - * @generated from protobuf field: int64 min_htlc_msat = 5; - */ - minHtlcMsat: number; - /** - * The delay we require on the remote's commitment transaction. If this is - * not set, it will be scaled automatically with the channel size. - * - * @generated from protobuf field: uint32 remote_csv_delay = 6; - */ - remoteCsvDelay: number; - /** - * - * Close address is an optional address which specifies the address to which - * funds should be paid out to upon cooperative close. This field may only be - * set if the peer supports the option upfront feature bit (call listpeers - * to check). The remote peer will only accept cooperative closes to this - * address if it is set. - * - * Note: If this value is set on channel creation, you will *not* be able to - * cooperatively close out to a different address. - * - * @generated from protobuf field: string close_address = 7; - */ - closeAddress: string; - /** - * - * An optional, unique identifier of 32 random bytes that will be used as the - * pending channel ID to identify the channel while it is in the pre-pending - * state. - * - * @generated from protobuf field: bytes pending_chan_id = 8; - */ - pendingChanId: Uint8Array; - /** - * - * The explicit commitment type to use. Note this field will only be used if - * the remote peer supports explicit channel negotiation. - * - * @generated from protobuf field: lnrpc.CommitmentType commitment_type = 9; - */ - commitmentType: CommitmentType; -} -/** - * @generated from protobuf message lnrpc.BatchOpenChannelResponse - */ -export interface BatchOpenChannelResponse { - /** - * @generated from protobuf field: repeated lnrpc.PendingUpdate pending_channels = 1; - */ - pendingChannels: PendingUpdate[]; -} -/** - * @generated from protobuf message lnrpc.OpenChannelRequest - */ -export interface OpenChannelRequest { - /** - * A manual fee rate set in sat/vbyte that should be used when crafting the - * funding transaction. - * - * @generated from protobuf field: uint64 sat_per_vbyte = 1; - */ - satPerVbyte: number; - /** - * - * The pubkey of the node to open a channel with. When using REST, this field - * must be encoded as base64. - * - * @generated from protobuf field: bytes node_pubkey = 2; - */ - nodePubkey: Uint8Array; - /** - * - * The hex encoded pubkey of the node to open a channel with. Deprecated now - * that the REST gateway supports base64 encoding of bytes fields. - * - * @deprecated - * @generated from protobuf field: string node_pubkey_string = 3 [deprecated = true]; - */ - nodePubkeyString: string; - /** - * The number of satoshis the wallet should commit to the channel - * - * @generated from protobuf field: int64 local_funding_amount = 4; - */ - localFundingAmount: number; - /** - * The number of satoshis to push to the remote side as part of the initial - * commitment state - * - * @generated from protobuf field: int64 push_sat = 5; - */ - pushSat: number; - /** - * The target number of blocks that the funding transaction should be - * confirmed by. - * - * @generated from protobuf field: int32 target_conf = 6; - */ - targetConf: number; - /** - * Deprecated, use sat_per_vbyte. - * A manual fee rate set in sat/vbyte that should be used when crafting the - * funding transaction. - * - * @deprecated - * @generated from protobuf field: int64 sat_per_byte = 7 [deprecated = true]; - */ - satPerByte: number; - /** - * Whether this channel should be private, not announced to the greater - * network. - * - * @generated from protobuf field: bool private = 8; - */ - private: boolean; - /** - * The minimum value in millisatoshi we will require for incoming HTLCs on - * the channel. - * - * @generated from protobuf field: int64 min_htlc_msat = 9; - */ - minHtlcMsat: number; - /** - * The delay we require on the remote's commitment transaction. If this is - * not set, it will be scaled automatically with the channel size. - * - * @generated from protobuf field: uint32 remote_csv_delay = 10; - */ - remoteCsvDelay: number; - /** - * The minimum number of confirmations each one of your outputs used for - * the funding transaction must satisfy. - * - * @generated from protobuf field: int32 min_confs = 11; - */ - minConfs: number; - /** - * Whether unconfirmed outputs should be used as inputs for the funding - * transaction. - * - * @generated from protobuf field: bool spend_unconfirmed = 12; - */ - spendUnconfirmed: boolean; - /** - * - * Close address is an optional address which specifies the address to which - * funds should be paid out to upon cooperative close. This field may only be - * set if the peer supports the option upfront feature bit (call listpeers - * to check). The remote peer will only accept cooperative closes to this - * address if it is set. - * - * Note: If this value is set on channel creation, you will *not* be able to - * cooperatively close out to a different address. - * - * @generated from protobuf field: string close_address = 13; - */ - closeAddress: string; - /** - * - * Funding shims are an optional argument that allow the caller to intercept - * certain funding functionality. For example, a shim can be provided to use a - * particular key for the commitment key (ideally cold) rather than use one - * that is generated by the wallet as normal, or signal that signing will be - * carried out in an interactive manner (PSBT based). - * - * @generated from protobuf field: lnrpc.FundingShim funding_shim = 14; - */ - fundingShim?: FundingShim; - /** - * - * The maximum amount of coins in millisatoshi that can be pending within - * the channel. It only applies to the remote party. - * - * @generated from protobuf field: uint64 remote_max_value_in_flight_msat = 15; - */ - remoteMaxValueInFlightMsat: number; - /** - * - * The maximum number of concurrent HTLCs we will allow the remote party to add - * to the commitment transaction. - * - * @generated from protobuf field: uint32 remote_max_htlcs = 16; - */ - remoteMaxHtlcs: number; - /** - * - * Max local csv is the maximum csv delay we will allow for our own commitment - * transaction. - * - * @generated from protobuf field: uint32 max_local_csv = 17; - */ - maxLocalCsv: number; - /** - * - * The explicit commitment type to use. Note this field will only be used if - * the remote peer supports explicit channel negotiation. - * - * @generated from protobuf field: lnrpc.CommitmentType commitment_type = 18; - */ - commitmentType: CommitmentType; - /** - * - * If this is true, then a zero-conf channel open will be attempted. - * - * @generated from protobuf field: bool zero_conf = 19; - */ - zeroConf: boolean; - /** - * - * If this is true, then an option-scid-alias channel-type open will be - * attempted. - * - * @generated from protobuf field: bool scid_alias = 20; - */ - scidAlias: boolean; - /** - * - * The base fee charged regardless of the number of milli-satoshis sent. - * - * @generated from protobuf field: uint64 base_fee = 21; - */ - baseFee: number; - /** - * - * The fee rate in ppm (parts per million) that will be charged in - * proportion of the value of each forwarded HTLC. - * - * @generated from protobuf field: uint64 fee_rate = 22; - */ - feeRate: number; - /** - * - * If use_base_fee is true the open channel announcement will update the - * channel base fee with the value specified in base_fee. In the case of - * a base_fee of 0 use_base_fee is needed downstream to distinguish whether - * to use the default base fee value specified in the config or 0. - * - * @generated from protobuf field: bool use_base_fee = 23; - */ - useBaseFee: boolean; - /** - * - * If use_fee_rate is true the open channel announcement will update the - * channel fee rate with the value specified in fee_rate. In the case of - * a fee_rate of 0 use_fee_rate is needed downstream to distinguish whether - * to use the default fee rate value specified in the config or 0. - * - * @generated from protobuf field: bool use_fee_rate = 24; - */ - useFeeRate: boolean; - /** - * - * The number of satoshis we require the remote peer to reserve. This value, - * if specified, must be above the dust limit and below 20% of the channel - * capacity. - * - * @generated from protobuf field: uint64 remote_chan_reserve_sat = 25; - */ - remoteChanReserveSat: number; -} -/** - * @generated from protobuf message lnrpc.OpenStatusUpdate - */ -export interface OpenStatusUpdate { - /** - * @generated from protobuf oneof: update - */ - update: { - oneofKind: "chanPending"; - /** - * - * Signals that the channel is now fully negotiated and the funding - * transaction published. - * - * @generated from protobuf field: lnrpc.PendingUpdate chan_pending = 1; - */ - chanPending: PendingUpdate; - } | { - oneofKind: "chanOpen"; - /** - * - * Signals that the channel's funding transaction has now reached the - * required number of confirmations on chain and can be used. - * - * @generated from protobuf field: lnrpc.ChannelOpenUpdate chan_open = 3; - */ - chanOpen: ChannelOpenUpdate; - } | { - oneofKind: "psbtFund"; - /** - * - * Signals that the funding process has been suspended and the construction - * of a PSBT that funds the channel PK script is now required. - * - * @generated from protobuf field: lnrpc.ReadyForPsbtFunding psbt_fund = 5; - */ - psbtFund: ReadyForPsbtFunding; - } | { - oneofKind: undefined; - }; - /** - * - * The pending channel ID of the created channel. This value may be used to - * further the funding flow manually via the FundingStateStep method. - * - * @generated from protobuf field: bytes pending_chan_id = 4; - */ - pendingChanId: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.KeyLocator - */ -export interface KeyLocator { - /** - * The family of key being identified. - * - * @generated from protobuf field: int32 key_family = 1; - */ - keyFamily: number; - /** - * The precise index of the key being identified. - * - * @generated from protobuf field: int32 key_index = 2; - */ - keyIndex: number; -} -/** - * @generated from protobuf message lnrpc.KeyDescriptor - */ -export interface KeyDescriptor { - /** - * - * The raw bytes of the key being identified. - * - * @generated from protobuf field: bytes raw_key_bytes = 1; - */ - rawKeyBytes: Uint8Array; - /** - * - * The key locator that identifies which key to use for signing. - * - * @generated from protobuf field: lnrpc.KeyLocator key_loc = 2; - */ - keyLoc?: KeyLocator; -} -/** - * @generated from protobuf message lnrpc.ChanPointShim - */ -export interface ChanPointShim { - /** - * - * The size of the pre-crafted output to be used as the channel point for this - * channel funding. - * - * @generated from protobuf field: int64 amt = 1; - */ - amt: number; - /** - * The target channel point to refrence in created commitment transactions. - * - * @generated from protobuf field: lnrpc.ChannelPoint chan_point = 2; - */ - chanPoint?: ChannelPoint; - /** - * Our local key to use when creating the multi-sig output. - * - * @generated from protobuf field: lnrpc.KeyDescriptor local_key = 3; - */ - localKey?: KeyDescriptor; - /** - * The key of the remote party to use when creating the multi-sig output. - * - * @generated from protobuf field: bytes remote_key = 4; - */ - remoteKey: Uint8Array; - /** - * - * If non-zero, then this will be used as the pending channel ID on the wire - * protocol to initate the funding request. This is an optional field, and - * should only be set if the responder is already expecting a specific pending - * channel ID. - * - * @generated from protobuf field: bytes pending_chan_id = 5; - */ - pendingChanId: Uint8Array; - /** - * - * This uint32 indicates if this channel is to be considered 'frozen'. A frozen - * channel does not allow a cooperative channel close by the initiator. The - * thaw_height is the height that this restriction stops applying to the - * channel. The height can be interpreted in two ways: as a relative height if - * the value is less than 500,000, or as an absolute height otherwise. - * - * @generated from protobuf field: uint32 thaw_height = 6; - */ - thawHeight: number; -} -/** - * @generated from protobuf message lnrpc.PsbtShim - */ -export interface PsbtShim { - /** - * - * A unique identifier of 32 random bytes that will be used as the pending - * channel ID to identify the PSBT state machine when interacting with it and - * on the wire protocol to initiate the funding request. - * - * @generated from protobuf field: bytes pending_chan_id = 1; - */ - pendingChanId: Uint8Array; - /** - * - * An optional base PSBT the new channel output will be added to. If this is - * non-empty, it must be a binary serialized PSBT. - * - * @generated from protobuf field: bytes base_psbt = 2; - */ - basePsbt: Uint8Array; - /** - * - * If a channel should be part of a batch (multiple channel openings in one - * transaction), it can be dangerous if the whole batch transaction is - * published too early before all channel opening negotiations are completed. - * This flag prevents this particular channel from broadcasting the transaction - * after the negotiation with the remote peer. In a batch of channel openings - * this flag should be set to true for every channel but the very last. - * - * @generated from protobuf field: bool no_publish = 3; - */ - noPublish: boolean; -} -/** - * @generated from protobuf message lnrpc.FundingShim - */ -export interface FundingShim { - /** - * @generated from protobuf oneof: shim - */ - shim: { - oneofKind: "chanPointShim"; - /** - * - * A channel shim where the channel point was fully constructed outside - * of lnd's wallet and the transaction might already be published. - * - * @generated from protobuf field: lnrpc.ChanPointShim chan_point_shim = 1; - */ - chanPointShim: ChanPointShim; - } | { - oneofKind: "psbtShim"; - /** - * - * A channel shim that uses a PSBT to fund and sign the channel funding - * transaction. - * - * @generated from protobuf field: lnrpc.PsbtShim psbt_shim = 2; - */ - psbtShim: PsbtShim; - } | { - oneofKind: undefined; - }; -} -/** - * @generated from protobuf message lnrpc.FundingShimCancel - */ -export interface FundingShimCancel { - /** - * The pending channel ID of the channel to cancel the funding shim for. - * - * @generated from protobuf field: bytes pending_chan_id = 1; - */ - pendingChanId: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.FundingPsbtVerify - */ -export interface FundingPsbtVerify { - /** - * - * The funded but not yet signed PSBT that sends the exact channel capacity - * amount to the PK script returned in the open channel message in a previous - * step. - * - * @generated from protobuf field: bytes funded_psbt = 1; - */ - fundedPsbt: Uint8Array; - /** - * The pending channel ID of the channel to get the PSBT for. - * - * @generated from protobuf field: bytes pending_chan_id = 2; - */ - pendingChanId: Uint8Array; - /** - * - * Can only be used if the no_publish flag was set to true in the OpenChannel - * call meaning that the caller is solely responsible for publishing the final - * funding transaction. If skip_finalize is set to true then lnd will not wait - * for a FundingPsbtFinalize state step and instead assumes that a transaction - * with the same TXID as the passed in PSBT will eventually confirm. - * IT IS ABSOLUTELY IMPERATIVE that the TXID of the transaction that is - * eventually published does have the _same TXID_ as the verified PSBT. That - * means no inputs or outputs can change, only signatures can be added. If the - * TXID changes between this call and the publish step then the channel will - * never be created and the funds will be in limbo. - * - * @generated from protobuf field: bool skip_finalize = 3; - */ - skipFinalize: boolean; -} -/** - * @generated from protobuf message lnrpc.FundingPsbtFinalize - */ -export interface FundingPsbtFinalize { - /** - * - * The funded PSBT that contains all witness data to send the exact channel - * capacity amount to the PK script returned in the open channel message in a - * previous step. Cannot be set at the same time as final_raw_tx. - * - * @generated from protobuf field: bytes signed_psbt = 1; - */ - signedPsbt: Uint8Array; - /** - * The pending channel ID of the channel to get the PSBT for. - * - * @generated from protobuf field: bytes pending_chan_id = 2; - */ - pendingChanId: Uint8Array; - /** - * - * As an alternative to the signed PSBT with all witness data, the final raw - * wire format transaction can also be specified directly. Cannot be set at the - * same time as signed_psbt. - * - * @generated from protobuf field: bytes final_raw_tx = 3; - */ - finalRawTx: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.FundingTransitionMsg - */ -export interface FundingTransitionMsg { - /** - * @generated from protobuf oneof: trigger - */ - trigger: { - oneofKind: "shimRegister"; - /** - * - * The funding shim to register. This should be used before any - * channel funding has began by the remote party, as it is intended as a - * preparatory step for the full channel funding. - * - * @generated from protobuf field: lnrpc.FundingShim shim_register = 1; - */ - shimRegister: FundingShim; - } | { - oneofKind: "shimCancel"; - /** - * Used to cancel an existing registered funding shim. - * - * @generated from protobuf field: lnrpc.FundingShimCancel shim_cancel = 2; - */ - shimCancel: FundingShimCancel; - } | { - oneofKind: "psbtVerify"; - /** - * - * Used to continue a funding flow that was initiated to be executed - * through a PSBT. This step verifies that the PSBT contains the correct - * outputs to fund the channel. - * - * @generated from protobuf field: lnrpc.FundingPsbtVerify psbt_verify = 3; - */ - psbtVerify: FundingPsbtVerify; - } | { - oneofKind: "psbtFinalize"; - /** - * - * Used to continue a funding flow that was initiated to be executed - * through a PSBT. This step finalizes the funded and signed PSBT, finishes - * negotiation with the peer and finally publishes the resulting funding - * transaction. - * - * @generated from protobuf field: lnrpc.FundingPsbtFinalize psbt_finalize = 4; - */ - psbtFinalize: FundingPsbtFinalize; - } | { - oneofKind: undefined; - }; -} -/** - * @generated from protobuf message lnrpc.FundingStateStepResp - */ -export interface FundingStateStepResp { -} -/** - * @generated from protobuf message lnrpc.PendingHTLC - */ -export interface PendingHTLC { - /** - * The direction within the channel that the htlc was sent - * - * @generated from protobuf field: bool incoming = 1; - */ - incoming: boolean; - /** - * The total value of the htlc - * - * @generated from protobuf field: int64 amount = 2; - */ - amount: number; - /** - * The final output to be swept back to the user's wallet - * - * @generated from protobuf field: string outpoint = 3; - */ - outpoint: string; - /** - * The next block height at which we can spend the current stage - * - * @generated from protobuf field: uint32 maturity_height = 4; - */ - maturityHeight: number; - /** - * - * The number of blocks remaining until the current stage can be swept. - * Negative values indicate how many blocks have passed since becoming - * mature. - * - * @generated from protobuf field: int32 blocks_til_maturity = 5; - */ - blocksTilMaturity: number; - /** - * Indicates whether the htlc is in its first or second stage of recovery - * - * @generated from protobuf field: uint32 stage = 6; - */ - stage: number; -} -/** - * @generated from protobuf message lnrpc.PendingChannelsRequest - */ -export interface PendingChannelsRequest { -} -/** - * @generated from protobuf message lnrpc.PendingChannelsResponse - */ -export interface PendingChannelsResponse { - /** - * The balance in satoshis encumbered in pending channels - * - * @generated from protobuf field: int64 total_limbo_balance = 1; - */ - totalLimboBalance: number; - /** - * Channels pending opening - * - * @generated from protobuf field: repeated lnrpc.PendingChannelsResponse.PendingOpenChannel pending_open_channels = 2; - */ - pendingOpenChannels: PendingChannelsResponse_PendingOpenChannel[]; - /** - * - * Deprecated: Channels pending closing previously contained cooperatively - * closed channels with a single confirmation. These channels are now - * considered closed from the time we see them on chain. - * - * @deprecated - * @generated from protobuf field: repeated lnrpc.PendingChannelsResponse.ClosedChannel pending_closing_channels = 3 [deprecated = true]; - */ - pendingClosingChannels: PendingChannelsResponse_ClosedChannel[]; - /** - * Channels pending force closing - * - * @generated from protobuf field: repeated lnrpc.PendingChannelsResponse.ForceClosedChannel pending_force_closing_channels = 4; - */ - pendingForceClosingChannels: PendingChannelsResponse_ForceClosedChannel[]; - /** - * Channels waiting for closing tx to confirm - * - * @generated from protobuf field: repeated lnrpc.PendingChannelsResponse.WaitingCloseChannel waiting_close_channels = 5; - */ - waitingCloseChannels: PendingChannelsResponse_WaitingCloseChannel[]; -} -/** - * @generated from protobuf message lnrpc.PendingChannelsResponse.PendingChannel - */ -export interface PendingChannelsResponse_PendingChannel { - /** - * @generated from protobuf field: string remote_node_pub = 1; - */ - remoteNodePub: string; - /** - * @generated from protobuf field: string channel_point = 2; - */ - channelPoint: string; - /** - * @generated from protobuf field: int64 capacity = 3; - */ - capacity: number; - /** - * @generated from protobuf field: int64 local_balance = 4; - */ - localBalance: number; - /** - * @generated from protobuf field: int64 remote_balance = 5; - */ - remoteBalance: number; - /** - * The minimum satoshis this node is required to reserve in its - * balance. - * - * @generated from protobuf field: int64 local_chan_reserve_sat = 6; - */ - localChanReserveSat: number; - /** - * - * The minimum satoshis the other node is required to reserve in its - * balance. - * - * @generated from protobuf field: int64 remote_chan_reserve_sat = 7; - */ - remoteChanReserveSat: number; - /** - * The party that initiated opening the channel. - * - * @generated from protobuf field: lnrpc.Initiator initiator = 8; - */ - initiator: Initiator; - /** - * The commitment type used by this channel. - * - * @generated from protobuf field: lnrpc.CommitmentType commitment_type = 9; - */ - commitmentType: CommitmentType; - /** - * Total number of forwarding packages created in this channel. - * - * @generated from protobuf field: int64 num_forwarding_packages = 10; - */ - numForwardingPackages: number; - /** - * A set of flags showing the current state of the channel. - * - * @generated from protobuf field: string chan_status_flags = 11; - */ - chanStatusFlags: string; - /** - * Whether this channel is advertised to the network or not. - * - * @generated from protobuf field: bool private = 12; - */ - private: boolean; -} -/** - * @generated from protobuf message lnrpc.PendingChannelsResponse.PendingOpenChannel - */ -export interface PendingChannelsResponse_PendingOpenChannel { - /** - * The pending channel - * - * @generated from protobuf field: lnrpc.PendingChannelsResponse.PendingChannel channel = 1; - */ - channel?: PendingChannelsResponse_PendingChannel; - /** - * - * The amount calculated to be paid in fees for the current set of - * commitment transactions. The fee amount is persisted with the channel - * in order to allow the fee amount to be removed and recalculated with - * each channel state update, including updates that happen after a system - * restart. - * - * @generated from protobuf field: int64 commit_fee = 4; - */ - commitFee: number; - /** - * The weight of the commitment transaction - * - * @generated from protobuf field: int64 commit_weight = 5; - */ - commitWeight: number; - /** - * - * The required number of satoshis per kilo-weight that the requester will - * pay at all times, for both the funding transaction and commitment - * transaction. This value can later be updated once the channel is open. - * - * @generated from protobuf field: int64 fee_per_kw = 6; - */ - feePerKw: number; -} -/** - * @generated from protobuf message lnrpc.PendingChannelsResponse.WaitingCloseChannel - */ -export interface PendingChannelsResponse_WaitingCloseChannel { - /** - * The pending channel waiting for closing tx to confirm - * - * @generated from protobuf field: lnrpc.PendingChannelsResponse.PendingChannel channel = 1; - */ - channel?: PendingChannelsResponse_PendingChannel; - /** - * The balance in satoshis encumbered in this channel - * - * @generated from protobuf field: int64 limbo_balance = 2; - */ - limboBalance: number; - /** - * - * A list of valid commitment transactions. Any of these can confirm at - * this point. - * - * @generated from protobuf field: lnrpc.PendingChannelsResponse.Commitments commitments = 3; - */ - commitments?: PendingChannelsResponse_Commitments; - /** - * The transaction id of the closing transaction - * - * @generated from protobuf field: string closing_txid = 4; - */ - closingTxid: string; -} -/** - * @generated from protobuf message lnrpc.PendingChannelsResponse.Commitments - */ -export interface PendingChannelsResponse_Commitments { - /** - * Hash of the local version of the commitment tx. - * - * @generated from protobuf field: string local_txid = 1; - */ - localTxid: string; - /** - * Hash of the remote version of the commitment tx. - * - * @generated from protobuf field: string remote_txid = 2; - */ - remoteTxid: string; - /** - * Hash of the remote pending version of the commitment tx. - * - * @generated from protobuf field: string remote_pending_txid = 3; - */ - remotePendingTxid: string; - /** - * - * The amount in satoshis calculated to be paid in fees for the local - * commitment. - * - * @generated from protobuf field: uint64 local_commit_fee_sat = 4; - */ - localCommitFeeSat: number; - /** - * - * The amount in satoshis calculated to be paid in fees for the remote - * commitment. - * - * @generated from protobuf field: uint64 remote_commit_fee_sat = 5; - */ - remoteCommitFeeSat: number; - /** - * - * The amount in satoshis calculated to be paid in fees for the remote - * pending commitment. - * - * @generated from protobuf field: uint64 remote_pending_commit_fee_sat = 6; - */ - remotePendingCommitFeeSat: number; -} -/** - * @generated from protobuf message lnrpc.PendingChannelsResponse.ClosedChannel - */ -export interface PendingChannelsResponse_ClosedChannel { - /** - * The pending channel to be closed - * - * @generated from protobuf field: lnrpc.PendingChannelsResponse.PendingChannel channel = 1; - */ - channel?: PendingChannelsResponse_PendingChannel; - /** - * The transaction id of the closing transaction - * - * @generated from protobuf field: string closing_txid = 2; - */ - closingTxid: string; -} -/** - * @generated from protobuf message lnrpc.PendingChannelsResponse.ForceClosedChannel - */ -export interface PendingChannelsResponse_ForceClosedChannel { - /** - * The pending channel to be force closed - * - * @generated from protobuf field: lnrpc.PendingChannelsResponse.PendingChannel channel = 1; - */ - channel?: PendingChannelsResponse_PendingChannel; - /** - * The transaction id of the closing transaction - * - * @generated from protobuf field: string closing_txid = 2; - */ - closingTxid: string; - /** - * The balance in satoshis encumbered in this pending channel - * - * @generated from protobuf field: int64 limbo_balance = 3; - */ - limboBalance: number; - /** - * The height at which funds can be swept into the wallet - * - * @generated from protobuf field: uint32 maturity_height = 4; - */ - maturityHeight: number; - /** - * - * Remaining # of blocks until the commitment output can be swept. - * Negative values indicate how many blocks have passed since becoming - * mature. - * - * @generated from protobuf field: int32 blocks_til_maturity = 5; - */ - blocksTilMaturity: number; - /** - * The total value of funds successfully recovered from this channel - * - * @generated from protobuf field: int64 recovered_balance = 6; - */ - recoveredBalance: number; - /** - * @generated from protobuf field: repeated lnrpc.PendingHTLC pending_htlcs = 8; - */ - pendingHtlcs: PendingHTLC[]; - /** - * @generated from protobuf field: lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorState anchor = 9; - */ - anchor: PendingChannelsResponse_ForceClosedChannel_AnchorState; -} -/** - * - * There are three resolution states for the anchor: - * limbo, lost and recovered. Derive the current state - * from the limbo and recovered balances. - * - * @generated from protobuf enum lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorState - */ -export declare enum PendingChannelsResponse_ForceClosedChannel_AnchorState { - /** - * The recovered_balance is zero and limbo_balance is non-zero. - * - * @generated from protobuf enum value: LIMBO = 0; - */ - LIMBO = 0, - /** - * The recovered_balance is non-zero. - * - * @generated from protobuf enum value: RECOVERED = 1; - */ - RECOVERED = 1, - /** - * A state that is neither LIMBO nor RECOVERED. - * - * @generated from protobuf enum value: LOST = 2; - */ - LOST = 2 -} -/** - * @generated from protobuf message lnrpc.ChannelEventSubscription - */ -export interface ChannelEventSubscription { -} -/** - * @generated from protobuf message lnrpc.ChannelEventUpdate - */ -export interface ChannelEventUpdate { - /** - * @generated from protobuf oneof: channel - */ - channel: { - oneofKind: "openChannel"; - /** - * @generated from protobuf field: lnrpc.Channel open_channel = 1; - */ - openChannel: Channel; - } | { - oneofKind: "closedChannel"; - /** - * @generated from protobuf field: lnrpc.ChannelCloseSummary closed_channel = 2; - */ - closedChannel: ChannelCloseSummary; - } | { - oneofKind: "activeChannel"; - /** - * @generated from protobuf field: lnrpc.ChannelPoint active_channel = 3; - */ - activeChannel: ChannelPoint; - } | { - oneofKind: "inactiveChannel"; - /** - * @generated from protobuf field: lnrpc.ChannelPoint inactive_channel = 4; - */ - inactiveChannel: ChannelPoint; - } | { - oneofKind: "pendingOpenChannel"; - /** - * @generated from protobuf field: lnrpc.PendingUpdate pending_open_channel = 6; - */ - pendingOpenChannel: PendingUpdate; - } | { - oneofKind: "fullyResolvedChannel"; - /** - * @generated from protobuf field: lnrpc.ChannelPoint fully_resolved_channel = 7; - */ - fullyResolvedChannel: ChannelPoint; - } | { - oneofKind: undefined; - }; - /** - * @generated from protobuf field: lnrpc.ChannelEventUpdate.UpdateType type = 5; - */ - type: ChannelEventUpdate_UpdateType; -} -/** - * @generated from protobuf enum lnrpc.ChannelEventUpdate.UpdateType - */ -export declare enum ChannelEventUpdate_UpdateType { - /** - * @generated from protobuf enum value: OPEN_CHANNEL = 0; - */ - OPEN_CHANNEL = 0, - /** - * @generated from protobuf enum value: CLOSED_CHANNEL = 1; - */ - CLOSED_CHANNEL = 1, - /** - * @generated from protobuf enum value: ACTIVE_CHANNEL = 2; - */ - ACTIVE_CHANNEL = 2, - /** - * @generated from protobuf enum value: INACTIVE_CHANNEL = 3; - */ - INACTIVE_CHANNEL = 3, - /** - * @generated from protobuf enum value: PENDING_OPEN_CHANNEL = 4; - */ - PENDING_OPEN_CHANNEL = 4, - /** - * @generated from protobuf enum value: FULLY_RESOLVED_CHANNEL = 5; - */ - FULLY_RESOLVED_CHANNEL = 5 -} -/** - * @generated from protobuf message lnrpc.WalletAccountBalance - */ -export interface WalletAccountBalance { - /** - * The confirmed balance of the account (with >= 1 confirmations). - * - * @generated from protobuf field: int64 confirmed_balance = 1; - */ - confirmedBalance: number; - /** - * The unconfirmed balance of the account (with 0 confirmations). - * - * @generated from protobuf field: int64 unconfirmed_balance = 2; - */ - unconfirmedBalance: number; -} -/** - * @generated from protobuf message lnrpc.WalletBalanceRequest - */ -export interface WalletBalanceRequest { -} -/** - * @generated from protobuf message lnrpc.WalletBalanceResponse - */ -export interface WalletBalanceResponse { - /** - * The balance of the wallet - * - * @generated from protobuf field: int64 total_balance = 1; - */ - totalBalance: number; - /** - * The confirmed balance of a wallet(with >= 1 confirmations) - * - * @generated from protobuf field: int64 confirmed_balance = 2; - */ - confirmedBalance: number; - /** - * The unconfirmed balance of a wallet(with 0 confirmations) - * - * @generated from protobuf field: int64 unconfirmed_balance = 3; - */ - unconfirmedBalance: number; - /** - * The total amount of wallet UTXOs held in outputs that are locked for - * other usage. - * - * @generated from protobuf field: int64 locked_balance = 5; - */ - lockedBalance: number; - /** - * The amount of reserve required. - * - * @generated from protobuf field: int64 reserved_balance_anchor_chan = 6; - */ - reservedBalanceAnchorChan: number; - /** - * A mapping of each wallet account's name to its balance. - * - * @generated from protobuf field: map account_balance = 4; - */ - accountBalance: { - [key: string]: WalletAccountBalance; - }; -} -/** - * @generated from protobuf message lnrpc.Amount - */ -export interface Amount { - /** - * Value denominated in satoshis. - * - * @generated from protobuf field: uint64 sat = 1; - */ - sat: number; - /** - * Value denominated in milli-satoshis. - * - * @generated from protobuf field: uint64 msat = 2; - */ - msat: number; -} -/** - * @generated from protobuf message lnrpc.ChannelBalanceRequest - */ -export interface ChannelBalanceRequest { -} -/** - * @generated from protobuf message lnrpc.ChannelBalanceResponse - */ -export interface ChannelBalanceResponse { - /** - * Deprecated. Sum of channels balances denominated in satoshis - * - * @deprecated - * @generated from protobuf field: int64 balance = 1 [deprecated = true]; - */ - balance: number; - /** - * Deprecated. Sum of channels pending balances denominated in satoshis - * - * @deprecated - * @generated from protobuf field: int64 pending_open_balance = 2 [deprecated = true]; - */ - pendingOpenBalance: number; - /** - * Sum of channels local balances. - * - * @generated from protobuf field: lnrpc.Amount local_balance = 3; - */ - localBalance?: Amount; - /** - * Sum of channels remote balances. - * - * @generated from protobuf field: lnrpc.Amount remote_balance = 4; - */ - remoteBalance?: Amount; - /** - * Sum of channels local unsettled balances. - * - * @generated from protobuf field: lnrpc.Amount unsettled_local_balance = 5; - */ - unsettledLocalBalance?: Amount; - /** - * Sum of channels remote unsettled balances. - * - * @generated from protobuf field: lnrpc.Amount unsettled_remote_balance = 6; - */ - unsettledRemoteBalance?: Amount; - /** - * Sum of channels pending local balances. - * - * @generated from protobuf field: lnrpc.Amount pending_open_local_balance = 7; - */ - pendingOpenLocalBalance?: Amount; - /** - * Sum of channels pending remote balances. - * - * @generated from protobuf field: lnrpc.Amount pending_open_remote_balance = 8; - */ - pendingOpenRemoteBalance?: Amount; -} -/** - * @generated from protobuf message lnrpc.QueryRoutesRequest - */ -export interface QueryRoutesRequest { - /** - * The 33-byte hex-encoded public key for the payment destination - * - * @generated from protobuf field: string pub_key = 1; - */ - pubKey: string; - /** - * - * The amount to send expressed in satoshis. - * - * The fields amt and amt_msat are mutually exclusive. - * - * @generated from protobuf field: int64 amt = 2; - */ - amt: number; - /** - * - * The amount to send expressed in millisatoshis. - * - * The fields amt and amt_msat are mutually exclusive. - * - * @generated from protobuf field: int64 amt_msat = 12; - */ - amtMsat: number; - /** - * - * An optional CLTV delta from the current height that should be used for the - * timelock of the final hop. Note that unlike SendPayment, QueryRoutes does - * not add any additional block padding on top of final_ctlv_delta. This - * padding of a few blocks needs to be added manually or otherwise failures may - * happen when a block comes in while the payment is in flight. - * - * @generated from protobuf field: int32 final_cltv_delta = 4; - */ - finalCltvDelta: number; - /** - * - * The maximum number of satoshis that will be paid as a fee of the payment. - * This value can be represented either as a percentage of the amount being - * sent, or as a fixed amount of the maximum fee the user is willing the pay to - * send the payment. If not specified, lnd will use a default value of 100% - * fees for small amounts (<=1k sat) or 5% fees for larger amounts. - * - * @generated from protobuf field: lnrpc.FeeLimit fee_limit = 5; - */ - feeLimit?: FeeLimit; - /** - * - * A list of nodes to ignore during path finding. When using REST, these fields - * must be encoded as base64. - * - * @generated from protobuf field: repeated bytes ignored_nodes = 6; - */ - ignoredNodes: Uint8Array[]; - /** - * - * Deprecated. A list of edges to ignore during path finding. - * - * @deprecated - * @generated from protobuf field: repeated lnrpc.EdgeLocator ignored_edges = 7 [deprecated = true]; - */ - ignoredEdges: EdgeLocator[]; - /** - * - * The source node where the request route should originated from. If empty, - * self is assumed. - * - * @generated from protobuf field: string source_pub_key = 8; - */ - sourcePubKey: string; - /** - * - * If set to true, edge probabilities from mission control will be used to get - * the optimal route. - * - * @generated from protobuf field: bool use_mission_control = 9; - */ - useMissionControl: boolean; - /** - * - * A list of directed node pairs that will be ignored during path finding. - * - * @generated from protobuf field: repeated lnrpc.NodePair ignored_pairs = 10; - */ - ignoredPairs: NodePair[]; - /** - * - * An optional maximum total time lock for the route. If the source is empty or - * ourselves, this should not exceed lnd's `--max-cltv-expiry` setting. If - * zero, then the value of `--max-cltv-expiry` is used as the limit. - * - * @generated from protobuf field: uint32 cltv_limit = 11; - */ - cltvLimit: number; - /** - * - * An optional field that can be used to pass an arbitrary set of TLV records - * to a peer which understands the new records. This can be used to pass - * application specific data during the payment attempt. If the destination - * does not support the specified records, an error will be returned. - * Record types are required to be in the custom range >= 65536. When using - * REST, the values must be encoded as base64. - * - * @generated from protobuf field: map dest_custom_records = 13; - */ - destCustomRecords: { - [key: string]: Uint8Array; - }; - /** - * - * The channel id of the channel that must be taken to the first hop. If zero, - * any channel may be used. - * - * @generated from protobuf field: uint64 outgoing_chan_id = 14 [jstype = JS_STRING]; - */ - outgoingChanId: string; - /** - * - * The pubkey of the last hop of the route. If empty, any hop may be used. - * - * @generated from protobuf field: bytes last_hop_pubkey = 15; - */ - lastHopPubkey: Uint8Array; - /** - * - * Optional route hints to reach the destination through private channels. - * - * @generated from protobuf field: repeated lnrpc.RouteHint route_hints = 16; - */ - routeHints: RouteHint[]; - /** - * - * Features assumed to be supported by the final node. All transitive feature - * dependencies must also be set properly. For a given feature bit pair, either - * optional or remote may be set, but not both. If this field is nil or empty, - * the router will try to load destination features from the graph as a - * fallback. - * - * @generated from protobuf field: repeated lnrpc.FeatureBit dest_features = 17; - */ - destFeatures: FeatureBit[]; - /** - * - * The time preference for this payment. Set to -1 to optimize for fees - * only, to 1 to optimize for reliability only or a value inbetween for a mix. - * - * @generated from protobuf field: double time_pref = 18; - */ - timePref: number; -} -/** - * @generated from protobuf message lnrpc.NodePair - */ -export interface NodePair { - /** - * - * The sending node of the pair. When using REST, this field must be encoded as - * base64. - * - * @generated from protobuf field: bytes from = 1; - */ - from: Uint8Array; - /** - * - * The receiving node of the pair. When using REST, this field must be encoded - * as base64. - * - * @generated from protobuf field: bytes to = 2; - */ - to: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.EdgeLocator - */ -export interface EdgeLocator { - /** - * The short channel id of this edge. - * - * @generated from protobuf field: uint64 channel_id = 1 [jstype = JS_STRING]; - */ - channelId: string; - /** - * - * The direction of this edge. If direction_reverse is false, the direction - * of this edge is from the channel endpoint with the lexicographically smaller - * pub key to the endpoint with the larger pub key. If direction_reverse is - * is true, the edge goes the other way. - * - * @generated from protobuf field: bool direction_reverse = 2; - */ - directionReverse: boolean; -} -/** - * @generated from protobuf message lnrpc.QueryRoutesResponse - */ -export interface QueryRoutesResponse { - /** - * - * The route that results from the path finding operation. This is still a - * repeated field to retain backwards compatibility. - * - * @generated from protobuf field: repeated lnrpc.Route routes = 1; - */ - routes: Route[]; - /** - * - * The success probability of the returned route based on the current mission - * control state. [EXPERIMENTAL] - * - * @generated from protobuf field: double success_prob = 2; - */ - successProb: number; -} -/** - * @generated from protobuf message lnrpc.Hop - */ -export interface Hop { - /** - * - * The unique channel ID for the channel. The first 3 bytes are the block - * height, the next 3 the index within the block, and the last 2 bytes are the - * output index for the channel. - * - * @generated from protobuf field: uint64 chan_id = 1 [jstype = JS_STRING]; - */ - chanId: string; - /** - * @deprecated - * @generated from protobuf field: int64 chan_capacity = 2 [deprecated = true]; - */ - chanCapacity: number; - /** - * @deprecated - * @generated from protobuf field: int64 amt_to_forward = 3 [deprecated = true]; - */ - amtToForward: number; - /** - * @deprecated - * @generated from protobuf field: int64 fee = 4 [deprecated = true]; - */ - fee: number; - /** - * @generated from protobuf field: uint32 expiry = 5; - */ - expiry: number; - /** - * @generated from protobuf field: int64 amt_to_forward_msat = 6; - */ - amtToForwardMsat: number; - /** - * @generated from protobuf field: int64 fee_msat = 7; - */ - feeMsat: number; - /** - * - * An optional public key of the hop. If the public key is given, the payment - * can be executed without relying on a copy of the channel graph. - * - * @generated from protobuf field: string pub_key = 8; - */ - pubKey: string; - /** - * - * If set to true, then this hop will be encoded using the new variable length - * TLV format. Note that if any custom tlv_records below are specified, then - * this field MUST be set to true for them to be encoded properly. - * - * @deprecated - * @generated from protobuf field: bool tlv_payload = 9 [deprecated = true]; - */ - tlvPayload: boolean; - /** - * - * An optional TLV record that signals the use of an MPP payment. If present, - * the receiver will enforce that the same mpp_record is included in the final - * hop payload of all non-zero payments in the HTLC set. If empty, a regular - * single-shot payment is or was attempted. - * - * @generated from protobuf field: lnrpc.MPPRecord mpp_record = 10; - */ - mppRecord?: MPPRecord; - /** - * - * An optional TLV record that signals the use of an AMP payment. If present, - * the receiver will treat all received payments including the same - * (payment_addr, set_id) pair as being part of one logical payment. The - * payment will be settled by XORing the root_share's together and deriving the - * child hashes and preimages according to BOLT XX. Must be used in conjunction - * with mpp_record. - * - * @generated from protobuf field: lnrpc.AMPRecord amp_record = 12; - */ - ampRecord?: AMPRecord; - /** - * - * An optional set of key-value TLV records. This is useful within the context - * of the SendToRoute call as it allows callers to specify arbitrary K-V pairs - * to drop off at each hop within the onion. - * - * @generated from protobuf field: map custom_records = 11; - */ - customRecords: { - [key: string]: Uint8Array; - }; - /** - * The payment metadata to send along with the payment to the payee. - * - * @generated from protobuf field: bytes metadata = 13; - */ - metadata: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.MPPRecord - */ -export interface MPPRecord { - /** - * - * A unique, random identifier used to authenticate the sender as the intended - * payer of a multi-path payment. The payment_addr must be the same for all - * subpayments, and match the payment_addr provided in the receiver's invoice. - * The same payment_addr must be used on all subpayments. - * - * @generated from protobuf field: bytes payment_addr = 11; - */ - paymentAddr: Uint8Array; - /** - * - * The total amount in milli-satoshis being sent as part of a larger multi-path - * payment. The caller is responsible for ensuring subpayments to the same node - * and payment_hash sum exactly to total_amt_msat. The same - * total_amt_msat must be used on all subpayments. - * - * @generated from protobuf field: int64 total_amt_msat = 10; - */ - totalAmtMsat: number; -} -/** - * @generated from protobuf message lnrpc.AMPRecord - */ -export interface AMPRecord { - /** - * @generated from protobuf field: bytes root_share = 1; - */ - rootShare: Uint8Array; - /** - * @generated from protobuf field: bytes set_id = 2; - */ - setId: Uint8Array; - /** - * @generated from protobuf field: uint32 child_index = 3; - */ - childIndex: number; -} -/** - * - * A path through the channel graph which runs over one or more channels in - * succession. This struct carries all the information required to craft the - * Sphinx onion packet, and send the payment along the first hop in the path. A - * route is only selected as valid if all the channels have sufficient capacity to - * carry the initial payment amount after fees are accounted for. - * - * @generated from protobuf message lnrpc.Route - */ -export interface Route { - /** - * - * The cumulative (final) time lock across the entire route. This is the CLTV - * value that should be extended to the first hop in the route. All other hops - * will decrement the time-lock as advertised, leaving enough time for all - * hops to wait for or present the payment preimage to complete the payment. - * - * @generated from protobuf field: uint32 total_time_lock = 1; - */ - totalTimeLock: number; - /** - * - * The sum of the fees paid at each hop within the final route. In the case - * of a one-hop payment, this value will be zero as we don't need to pay a fee - * to ourselves. - * - * @deprecated - * @generated from protobuf field: int64 total_fees = 2 [deprecated = true]; - */ - totalFees: number; - /** - * - * The total amount of funds required to complete a payment over this route. - * This value includes the cumulative fees at each hop. As a result, the HTLC - * extended to the first-hop in the route will need to have at least this many - * satoshis, otherwise the route will fail at an intermediate node due to an - * insufficient amount of fees. - * - * @deprecated - * @generated from protobuf field: int64 total_amt = 3 [deprecated = true]; - */ - totalAmt: number; - /** - * - * Contains details concerning the specific forwarding details at each hop. - * - * @generated from protobuf field: repeated lnrpc.Hop hops = 4; - */ - hops: Hop[]; - /** - * - * The total fees in millisatoshis. - * - * @generated from protobuf field: int64 total_fees_msat = 5; - */ - totalFeesMsat: number; - /** - * - * The total amount in millisatoshis. - * - * @generated from protobuf field: int64 total_amt_msat = 6; - */ - totalAmtMsat: number; -} -/** - * @generated from protobuf message lnrpc.NodeInfoRequest - */ -export interface NodeInfoRequest { - /** - * The 33-byte hex-encoded compressed public of the target node - * - * @generated from protobuf field: string pub_key = 1; - */ - pubKey: string; - /** - * If true, will include all known channels associated with the node. - * - * @generated from protobuf field: bool include_channels = 2; - */ - includeChannels: boolean; -} -/** - * @generated from protobuf message lnrpc.NodeInfo - */ -export interface NodeInfo { - /** - * - * An individual vertex/node within the channel graph. A node is - * connected to other nodes by one or more channel edges emanating from it. As - * the graph is directed, a node will also have an incoming edge attached to - * it for each outgoing edge. - * - * @generated from protobuf field: lnrpc.LightningNode node = 1; - */ - node?: LightningNode; - /** - * The total number of channels for the node. - * - * @generated from protobuf field: uint32 num_channels = 2; - */ - numChannels: number; - /** - * The sum of all channels capacity for the node, denominated in satoshis. - * - * @generated from protobuf field: int64 total_capacity = 3; - */ - totalCapacity: number; - /** - * A list of all public channels for the node. - * - * @generated from protobuf field: repeated lnrpc.ChannelEdge channels = 4; - */ - channels: ChannelEdge[]; -} -/** - * - * An individual vertex/node within the channel graph. A node is - * connected to other nodes by one or more channel edges emanating from it. As the - * graph is directed, a node will also have an incoming edge attached to it for - * each outgoing edge. - * - * @generated from protobuf message lnrpc.LightningNode - */ -export interface LightningNode { - /** - * @generated from protobuf field: uint32 last_update = 1; - */ - lastUpdate: number; - /** - * @generated from protobuf field: string pub_key = 2; - */ - pubKey: string; - /** - * @generated from protobuf field: string alias = 3; - */ - alias: string; - /** - * @generated from protobuf field: repeated lnrpc.NodeAddress addresses = 4; - */ - addresses: NodeAddress[]; - /** - * @generated from protobuf field: string color = 5; - */ - color: string; - /** - * @generated from protobuf field: map features = 6; - */ - features: { - [key: number]: Feature; - }; - /** - * Custom node announcement tlv records. - * - * @generated from protobuf field: map custom_records = 7; - */ - customRecords: { - [key: string]: Uint8Array; - }; -} -/** - * @generated from protobuf message lnrpc.NodeAddress - */ -export interface NodeAddress { - /** - * @generated from protobuf field: string network = 1; - */ - network: string; - /** - * @generated from protobuf field: string addr = 2; - */ - addr: string; -} -/** - * @generated from protobuf message lnrpc.RoutingPolicy - */ -export interface RoutingPolicy { - /** - * @generated from protobuf field: uint32 time_lock_delta = 1; - */ - timeLockDelta: number; - /** - * @generated from protobuf field: int64 min_htlc = 2; - */ - minHtlc: number; - /** - * @generated from protobuf field: int64 fee_base_msat = 3; - */ - feeBaseMsat: number; - /** - * @generated from protobuf field: int64 fee_rate_milli_msat = 4; - */ - feeRateMilliMsat: number; - /** - * @generated from protobuf field: bool disabled = 5; - */ - disabled: boolean; - /** - * @generated from protobuf field: uint64 max_htlc_msat = 6; - */ - maxHtlcMsat: number; - /** - * @generated from protobuf field: uint32 last_update = 7; - */ - lastUpdate: number; - /** - * Custom channel update tlv records. - * - * @generated from protobuf field: map custom_records = 8; - */ - customRecords: { - [key: string]: Uint8Array; - }; -} -/** - * - * A fully authenticated channel along with all its unique attributes. - * Once an authenticated channel announcement has been processed on the network, - * then an instance of ChannelEdgeInfo encapsulating the channels attributes is - * stored. The other portions relevant to routing policy of a channel are stored - * within a ChannelEdgePolicy for each direction of the channel. - * - * @generated from protobuf message lnrpc.ChannelEdge - */ -export interface ChannelEdge { - /** - * - * The unique channel ID for the channel. The first 3 bytes are the block - * height, the next 3 the index within the block, and the last 2 bytes are the - * output index for the channel. - * - * @generated from protobuf field: uint64 channel_id = 1 [jstype = JS_STRING]; - */ - channelId: string; - /** - * @generated from protobuf field: string chan_point = 2; - */ - chanPoint: string; - /** - * @deprecated - * @generated from protobuf field: uint32 last_update = 3 [deprecated = true]; - */ - lastUpdate: number; - /** - * @generated from protobuf field: string node1_pub = 4; - */ - node1Pub: string; - /** - * @generated from protobuf field: string node2_pub = 5; - */ - node2Pub: string; - /** - * @generated from protobuf field: int64 capacity = 6; - */ - capacity: number; - /** - * @generated from protobuf field: lnrpc.RoutingPolicy node1_policy = 7; - */ - node1Policy?: RoutingPolicy; - /** - * @generated from protobuf field: lnrpc.RoutingPolicy node2_policy = 8; - */ - node2Policy?: RoutingPolicy; - /** - * Custom channel announcement tlv records. - * - * @generated from protobuf field: map custom_records = 9; - */ - customRecords: { - [key: string]: Uint8Array; - }; -} -/** - * @generated from protobuf message lnrpc.ChannelGraphRequest - */ -export interface ChannelGraphRequest { - /** - * - * Whether unannounced channels are included in the response or not. If set, - * unannounced channels are included. Unannounced channels are both private - * channels, and public channels that are not yet announced to the network. - * - * @generated from protobuf field: bool include_unannounced = 1; - */ - includeUnannounced: boolean; -} -/** - * Returns a new instance of the directed channel graph. - * - * @generated from protobuf message lnrpc.ChannelGraph - */ -export interface ChannelGraph { - /** - * The list of `LightningNode`s in this channel graph - * - * @generated from protobuf field: repeated lnrpc.LightningNode nodes = 1; - */ - nodes: LightningNode[]; - /** - * The list of `ChannelEdge`s in this channel graph - * - * @generated from protobuf field: repeated lnrpc.ChannelEdge edges = 2; - */ - edges: ChannelEdge[]; -} -/** - * @generated from protobuf message lnrpc.NodeMetricsRequest - */ -export interface NodeMetricsRequest { - /** - * The requested node metrics. - * - * @generated from protobuf field: repeated lnrpc.NodeMetricType types = 1; - */ - types: NodeMetricType[]; -} -/** - * @generated from protobuf message lnrpc.NodeMetricsResponse - */ -export interface NodeMetricsResponse { - /** - * - * Betweenness centrality is the sum of the ratio of shortest paths that pass - * through the node for each pair of nodes in the graph (not counting paths - * starting or ending at this node). - * Map of node pubkey to betweenness centrality of the node. Normalized - * values are in the [0,1] closed interval. - * - * @generated from protobuf field: map betweenness_centrality = 1; - */ - betweennessCentrality: { - [key: string]: FloatMetric; - }; -} -/** - * @generated from protobuf message lnrpc.FloatMetric - */ -export interface FloatMetric { - /** - * Arbitrary float value. - * - * @generated from protobuf field: double value = 1; - */ - value: number; - /** - * The value normalized to [0,1] or [-1,1]. - * - * @generated from protobuf field: double normalized_value = 2; - */ - normalizedValue: number; -} -/** - * @generated from protobuf message lnrpc.ChanInfoRequest - */ -export interface ChanInfoRequest { - /** - * - * The unique channel ID for the channel. The first 3 bytes are the block - * height, the next 3 the index within the block, and the last 2 bytes are the - * output index for the channel. - * - * @generated from protobuf field: uint64 chan_id = 1 [jstype = JS_STRING]; - */ - chanId: string; -} -/** - * @generated from protobuf message lnrpc.NetworkInfoRequest - */ -export interface NetworkInfoRequest { -} -/** - * @generated from protobuf message lnrpc.NetworkInfo - */ -export interface NetworkInfo { - /** - * @generated from protobuf field: uint32 graph_diameter = 1; - */ - graphDiameter: number; - /** - * @generated from protobuf field: double avg_out_degree = 2; - */ - avgOutDegree: number; - /** - * @generated from protobuf field: uint32 max_out_degree = 3; - */ - maxOutDegree: number; - /** - * @generated from protobuf field: uint32 num_nodes = 4; - */ - numNodes: number; - /** - * @generated from protobuf field: uint32 num_channels = 5; - */ - numChannels: number; - /** - * @generated from protobuf field: int64 total_network_capacity = 6; - */ - totalNetworkCapacity: number; - /** - * @generated from protobuf field: double avg_channel_size = 7; - */ - avgChannelSize: number; - /** - * @generated from protobuf field: int64 min_channel_size = 8; - */ - minChannelSize: number; - /** - * @generated from protobuf field: int64 max_channel_size = 9; - */ - maxChannelSize: number; - /** - * @generated from protobuf field: int64 median_channel_size_sat = 10; - */ - medianChannelSizeSat: number; - /** - * The number of edges marked as zombies. - * - * @generated from protobuf field: uint64 num_zombie_chans = 11; - */ - numZombieChans: number; -} -/** - * @generated from protobuf message lnrpc.StopRequest - */ -export interface StopRequest { -} -/** - * @generated from protobuf message lnrpc.StopResponse - */ -export interface StopResponse { -} -/** - * @generated from protobuf message lnrpc.GraphTopologySubscription - */ -export interface GraphTopologySubscription { -} -/** - * @generated from protobuf message lnrpc.GraphTopologyUpdate - */ -export interface GraphTopologyUpdate { - /** - * @generated from protobuf field: repeated lnrpc.NodeUpdate node_updates = 1; - */ - nodeUpdates: NodeUpdate[]; - /** - * @generated from protobuf field: repeated lnrpc.ChannelEdgeUpdate channel_updates = 2; - */ - channelUpdates: ChannelEdgeUpdate[]; - /** - * @generated from protobuf field: repeated lnrpc.ClosedChannelUpdate closed_chans = 3; - */ - closedChans: ClosedChannelUpdate[]; -} -/** - * @generated from protobuf message lnrpc.NodeUpdate - */ -export interface NodeUpdate { - /** - * - * Deprecated, use node_addresses. - * - * @deprecated - * @generated from protobuf field: repeated string addresses = 1 [deprecated = true]; - */ - addresses: string[]; - /** - * @generated from protobuf field: string identity_key = 2; - */ - identityKey: string; - /** - * - * Deprecated, use features. - * - * @deprecated - * @generated from protobuf field: bytes global_features = 3 [deprecated = true]; - */ - globalFeatures: Uint8Array; - /** - * @generated from protobuf field: string alias = 4; - */ - alias: string; - /** - * @generated from protobuf field: string color = 5; - */ - color: string; - /** - * @generated from protobuf field: repeated lnrpc.NodeAddress node_addresses = 7; - */ - nodeAddresses: NodeAddress[]; - /** - * - * Features that the node has advertised in the init message, node - * announcements and invoices. - * - * @generated from protobuf field: map features = 6; - */ - features: { - [key: number]: Feature; - }; -} -/** - * @generated from protobuf message lnrpc.ChannelEdgeUpdate - */ -export interface ChannelEdgeUpdate { - /** - * - * The unique channel ID for the channel. The first 3 bytes are the block - * height, the next 3 the index within the block, and the last 2 bytes are the - * output index for the channel. - * - * @generated from protobuf field: uint64 chan_id = 1 [jstype = JS_STRING]; - */ - chanId: string; - /** - * @generated from protobuf field: lnrpc.ChannelPoint chan_point = 2; - */ - chanPoint?: ChannelPoint; - /** - * @generated from protobuf field: int64 capacity = 3; - */ - capacity: number; - /** - * @generated from protobuf field: lnrpc.RoutingPolicy routing_policy = 4; - */ - routingPolicy?: RoutingPolicy; - /** - * @generated from protobuf field: string advertising_node = 5; - */ - advertisingNode: string; - /** - * @generated from protobuf field: string connecting_node = 6; - */ - connectingNode: string; -} -/** - * @generated from protobuf message lnrpc.ClosedChannelUpdate - */ -export interface ClosedChannelUpdate { - /** - * - * The unique channel ID for the channel. The first 3 bytes are the block - * height, the next 3 the index within the block, and the last 2 bytes are the - * output index for the channel. - * - * @generated from protobuf field: uint64 chan_id = 1 [jstype = JS_STRING]; - */ - chanId: string; - /** - * @generated from protobuf field: int64 capacity = 2; - */ - capacity: number; - /** - * @generated from protobuf field: uint32 closed_height = 3; - */ - closedHeight: number; - /** - * @generated from protobuf field: lnrpc.ChannelPoint chan_point = 4; - */ - chanPoint?: ChannelPoint; -} -/** - * @generated from protobuf message lnrpc.HopHint - */ -export interface HopHint { - /** - * The public key of the node at the start of the channel. - * - * @generated from protobuf field: string node_id = 1; - */ - nodeId: string; - /** - * The unique identifier of the channel. - * - * @generated from protobuf field: uint64 chan_id = 2 [jstype = JS_STRING]; - */ - chanId: string; - /** - * The base fee of the channel denominated in millisatoshis. - * - * @generated from protobuf field: uint32 fee_base_msat = 3; - */ - feeBaseMsat: number; - /** - * - * The fee rate of the channel for sending one satoshi across it denominated in - * millionths of a satoshi. - * - * @generated from protobuf field: uint32 fee_proportional_millionths = 4; - */ - feeProportionalMillionths: number; - /** - * The time-lock delta of the channel. - * - * @generated from protobuf field: uint32 cltv_expiry_delta = 5; - */ - cltvExpiryDelta: number; -} -/** - * @generated from protobuf message lnrpc.SetID - */ -export interface SetID { - /** - * @generated from protobuf field: bytes set_id = 1; - */ - setId: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.RouteHint - */ -export interface RouteHint { - /** - * - * A list of hop hints that when chained together can assist in reaching a - * specific destination. - * - * @generated from protobuf field: repeated lnrpc.HopHint hop_hints = 1; - */ - hopHints: HopHint[]; -} -/** - * @generated from protobuf message lnrpc.AMPInvoiceState - */ -export interface AMPInvoiceState { - /** - * The state the HTLCs associated with this setID are in. - * - * @generated from protobuf field: lnrpc.InvoiceHTLCState state = 1; - */ - state: InvoiceHTLCState; - /** - * The settle index of this HTLC set, if the invoice state is settled. - * - * @generated from protobuf field: uint64 settle_index = 2; - */ - settleIndex: number; - /** - * The time this HTLC set was settled expressed in unix epoch. - * - * @generated from protobuf field: int64 settle_time = 3; - */ - settleTime: number; - /** - * The total amount paid for the sub-invoice expressed in milli satoshis. - * - * @generated from protobuf field: int64 amt_paid_msat = 5; - */ - amtPaidMsat: number; -} -/** - * @generated from protobuf message lnrpc.Invoice - */ -export interface Invoice { - /** - * - * An optional memo to attach along with the invoice. Used for record keeping - * purposes for the invoice's creator, and will also be set in the description - * field of the encoded payment request if the description_hash field is not - * being used. - * - * @generated from protobuf field: string memo = 1; - */ - memo: string; - /** - * - * The hex-encoded preimage (32 byte) which will allow settling an incoming - * HTLC payable to this preimage. When using REST, this field must be encoded - * as base64. - * - * @generated from protobuf field: bytes r_preimage = 3; - */ - rPreimage: Uint8Array; - /** - * - * The hash of the preimage. When using REST, this field must be encoded as - * base64. - * Note: Output only, don't specify for creating an invoice. - * - * @generated from protobuf field: bytes r_hash = 4; - */ - rHash: Uint8Array; - /** - * - * The value of this invoice in satoshis - * - * The fields value and value_msat are mutually exclusive. - * - * @generated from protobuf field: int64 value = 5; - */ - value: number; - /** - * - * The value of this invoice in millisatoshis - * - * The fields value and value_msat are mutually exclusive. - * - * @generated from protobuf field: int64 value_msat = 23; - */ - valueMsat: number; - /** - * - * Whether this invoice has been fulfilled - * - * The field is deprecated. Use the state field instead (compare to SETTLED). - * - * @deprecated - * @generated from protobuf field: bool settled = 6 [deprecated = true]; - */ - settled: boolean; - /** - * - * When this invoice was created. - * Note: Output only, don't specify for creating an invoice. - * - * @generated from protobuf field: int64 creation_date = 7; - */ - creationDate: number; - /** - * - * When this invoice was settled. - * Note: Output only, don't specify for creating an invoice. - * - * @generated from protobuf field: int64 settle_date = 8; - */ - settleDate: number; - /** - * - * A bare-bones invoice for a payment within the Lightning Network. With the - * details of the invoice, the sender has all the data necessary to send a - * payment to the recipient. - * Note: Output only, don't specify for creating an invoice. - * - * @generated from protobuf field: string payment_request = 9; - */ - paymentRequest: string; - /** - * - * Hash (SHA-256) of a description of the payment. Used if the description of - * payment (memo) is too long to naturally fit within the description field - * of an encoded payment request. When using REST, this field must be encoded - * as base64. - * - * @generated from protobuf field: bytes description_hash = 10; - */ - descriptionHash: Uint8Array; - /** - * Payment request expiry time in seconds. Default is 3600 (1 hour). - * - * @generated from protobuf field: int64 expiry = 11; - */ - expiry: number; - /** - * Fallback on-chain address. - * - * @generated from protobuf field: string fallback_addr = 12; - */ - fallbackAddr: string; - /** - * Delta to use for the time-lock of the CLTV extended to the final hop. - * - * @generated from protobuf field: uint64 cltv_expiry = 13; - */ - cltvExpiry: number; - /** - * - * Route hints that can each be individually used to assist in reaching the - * invoice's destination. - * - * @generated from protobuf field: repeated lnrpc.RouteHint route_hints = 14; - */ - routeHints: RouteHint[]; - /** - * Whether this invoice should include routing hints for private channels. - * - * @generated from protobuf field: bool private = 15; - */ - private: boolean; - /** - * - * The "add" index of this invoice. Each newly created invoice will increment - * this index making it monotonically increasing. Callers to the - * SubscribeInvoices call can use this to instantly get notified of all added - * invoices with an add_index greater than this one. - * Note: Output only, don't specify for creating an invoice. - * - * @generated from protobuf field: uint64 add_index = 16; - */ - addIndex: number; - /** - * - * The "settle" index of this invoice. Each newly settled invoice will - * increment this index making it monotonically increasing. Callers to the - * SubscribeInvoices call can use this to instantly get notified of all - * settled invoices with an settle_index greater than this one. - * Note: Output only, don't specify for creating an invoice. - * - * @generated from protobuf field: uint64 settle_index = 17; - */ - settleIndex: number; - /** - * Deprecated, use amt_paid_sat or amt_paid_msat. - * - * @deprecated - * @generated from protobuf field: int64 amt_paid = 18 [deprecated = true]; - */ - amtPaid: number; - /** - * - * The amount that was accepted for this invoice, in satoshis. This will ONLY - * be set if this invoice has been settled. We provide this field as if the - * invoice was created with a zero value, then we need to record what amount - * was ultimately accepted. Additionally, it's possible that the sender paid - * MORE that was specified in the original invoice. So we'll record that here - * as well. - * Note: Output only, don't specify for creating an invoice. - * - * @generated from protobuf field: int64 amt_paid_sat = 19; - */ - amtPaidSat: number; - /** - * - * The amount that was accepted for this invoice, in millisatoshis. This will - * ONLY be set if this invoice has been settled. We provide this field as if - * the invoice was created with a zero value, then we need to record what - * amount was ultimately accepted. Additionally, it's possible that the sender - * paid MORE that was specified in the original invoice. So we'll record that - * here as well. - * Note: Output only, don't specify for creating an invoice. - * - * @generated from protobuf field: int64 amt_paid_msat = 20; - */ - amtPaidMsat: number; - /** - * - * The state the invoice is in. - * Note: Output only, don't specify for creating an invoice. - * - * @generated from protobuf field: lnrpc.Invoice.InvoiceState state = 21; - */ - state: Invoice_InvoiceState; - /** - * - * List of HTLCs paying to this invoice [EXPERIMENTAL]. - * Note: Output only, don't specify for creating an invoice. - * - * @generated from protobuf field: repeated lnrpc.InvoiceHTLC htlcs = 22; - */ - htlcs: InvoiceHTLC[]; - /** - * - * List of features advertised on the invoice. - * Note: Output only, don't specify for creating an invoice. - * - * @generated from protobuf field: map features = 24; - */ - features: { - [key: number]: Feature; - }; - /** - * - * Indicates if this invoice was a spontaneous payment that arrived via keysend - * [EXPERIMENTAL]. - * Note: Output only, don't specify for creating an invoice. - * - * @generated from protobuf field: bool is_keysend = 25; - */ - isKeysend: boolean; - /** - * - * The payment address of this invoice. This value will be used in MPP - * payments, and also for newer invoices that always require the MPP payload - * for added end-to-end security. - * Note: Output only, don't specify for creating an invoice. - * - * @generated from protobuf field: bytes payment_addr = 26; - */ - paymentAddr: Uint8Array; - /** - * - * Signals whether or not this is an AMP invoice. - * - * @generated from protobuf field: bool is_amp = 27; - */ - isAmp: boolean; - /** - * - * [EXPERIMENTAL]: - * - * Maps a 32-byte hex-encoded set ID to the sub-invoice AMP state for the - * given set ID. This field is always populated for AMP invoices, and can be - * used along side LookupInvoice to obtain the HTLC information related to a - * given sub-invoice. - * Note: Output only, don't specify for creating an invoice. - * - * @generated from protobuf field: map amp_invoice_state = 28; - */ - ampInvoiceState: { - [key: string]: AMPInvoiceState; - }; -} -/** - * @generated from protobuf enum lnrpc.Invoice.InvoiceState - */ -export declare enum Invoice_InvoiceState { - /** - * @generated from protobuf enum value: OPEN = 0; - */ - OPEN = 0, - /** - * @generated from protobuf enum value: SETTLED = 1; - */ - SETTLED = 1, - /** - * @generated from protobuf enum value: CANCELED = 2; - */ - CANCELED = 2, - /** - * @generated from protobuf enum value: ACCEPTED = 3; - */ - ACCEPTED = 3 -} -/** - * Details of an HTLC that paid to an invoice - * - * @generated from protobuf message lnrpc.InvoiceHTLC - */ -export interface InvoiceHTLC { - /** - * Short channel id over which the htlc was received. - * - * @generated from protobuf field: uint64 chan_id = 1 [jstype = JS_STRING]; - */ - chanId: string; - /** - * Index identifying the htlc on the channel. - * - * @generated from protobuf field: uint64 htlc_index = 2; - */ - htlcIndex: number; - /** - * The amount of the htlc in msat. - * - * @generated from protobuf field: uint64 amt_msat = 3; - */ - amtMsat: number; - /** - * Block height at which this htlc was accepted. - * - * @generated from protobuf field: int32 accept_height = 4; - */ - acceptHeight: number; - /** - * Time at which this htlc was accepted. - * - * @generated from protobuf field: int64 accept_time = 5; - */ - acceptTime: number; - /** - * Time at which this htlc was settled or canceled. - * - * @generated from protobuf field: int64 resolve_time = 6; - */ - resolveTime: number; - /** - * Block height at which this htlc expires. - * - * @generated from protobuf field: int32 expiry_height = 7; - */ - expiryHeight: number; - /** - * Current state the htlc is in. - * - * @generated from protobuf field: lnrpc.InvoiceHTLCState state = 8; - */ - state: InvoiceHTLCState; - /** - * Custom tlv records. - * - * @generated from protobuf field: map custom_records = 9; - */ - customRecords: { - [key: string]: Uint8Array; - }; - /** - * The total amount of the mpp payment in msat. - * - * @generated from protobuf field: uint64 mpp_total_amt_msat = 10; - */ - mppTotalAmtMsat: number; - /** - * Details relevant to AMP HTLCs, only populated if this is an AMP HTLC. - * - * @generated from protobuf field: lnrpc.AMP amp = 11; - */ - amp?: AMP; -} -/** - * Details specific to AMP HTLCs. - * - * @generated from protobuf message lnrpc.AMP - */ -export interface AMP { - /** - * An n-of-n secret share of the root seed from which child payment hashes - * and preimages are derived. - * - * @generated from protobuf field: bytes root_share = 1; - */ - rootShare: Uint8Array; - /** - * An identifier for the HTLC set that this HTLC belongs to. - * - * @generated from protobuf field: bytes set_id = 2; - */ - setId: Uint8Array; - /** - * A nonce used to randomize the child preimage and child hash from a given - * root_share. - * - * @generated from protobuf field: uint32 child_index = 3; - */ - childIndex: number; - /** - * The payment hash of the AMP HTLC. - * - * @generated from protobuf field: bytes hash = 4; - */ - hash: Uint8Array; - /** - * The preimage used to settle this AMP htlc. This field will only be - * populated if the invoice is in InvoiceState_ACCEPTED or - * InvoiceState_SETTLED. - * - * @generated from protobuf field: bytes preimage = 5; - */ - preimage: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.AddInvoiceResponse - */ -export interface AddInvoiceResponse { - /** - * @generated from protobuf field: bytes r_hash = 1; - */ - rHash: Uint8Array; - /** - * - * A bare-bones invoice for a payment within the Lightning Network. With the - * details of the invoice, the sender has all the data necessary to send a - * payment to the recipient. - * - * @generated from protobuf field: string payment_request = 2; - */ - paymentRequest: string; - /** - * - * The "add" index of this invoice. Each newly created invoice will increment - * this index making it monotonically increasing. Callers to the - * SubscribeInvoices call can use this to instantly get notified of all added - * invoices with an add_index greater than this one. - * - * @generated from protobuf field: uint64 add_index = 16; - */ - addIndex: number; - /** - * - * The payment address of the generated invoice. This value should be used - * in all payments for this invoice as we require it for end to end - * security. - * - * @generated from protobuf field: bytes payment_addr = 17; - */ - paymentAddr: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.PaymentHash - */ -export interface PaymentHash { - /** - * - * The hex-encoded payment hash of the invoice to be looked up. The passed - * payment hash must be exactly 32 bytes, otherwise an error is returned. - * Deprecated now that the REST gateway supports base64 encoding of bytes - * fields. - * - * @deprecated - * @generated from protobuf field: string r_hash_str = 1 [deprecated = true]; - */ - rHashStr: string; - /** - * - * The payment hash of the invoice to be looked up. When using REST, this field - * must be encoded as base64. - * - * @generated from protobuf field: bytes r_hash = 2; - */ - rHash: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.ListInvoiceRequest - */ -export interface ListInvoiceRequest { - /** - * - * If set, only invoices that are not settled and not canceled will be returned - * in the response. - * - * @generated from protobuf field: bool pending_only = 1; - */ - pendingOnly: boolean; - /** - * - * The index of an invoice that will be used as either the start or end of a - * query to determine which invoices should be returned in the response. - * - * @generated from protobuf field: uint64 index_offset = 4; - */ - indexOffset: number; - /** - * The max number of invoices to return in the response to this query. - * - * @generated from protobuf field: uint64 num_max_invoices = 5; - */ - numMaxInvoices: number; - /** - * - * If set, the invoices returned will result from seeking backwards from the - * specified index offset. This can be used to paginate backwards. - * - * @generated from protobuf field: bool reversed = 6; - */ - reversed: boolean; -} -/** - * @generated from protobuf message lnrpc.ListInvoiceResponse - */ -export interface ListInvoiceResponse { - /** - * - * A list of invoices from the time slice of the time series specified in the - * request. - * - * @generated from protobuf field: repeated lnrpc.Invoice invoices = 1; - */ - invoices: Invoice[]; - /** - * - * The index of the last item in the set of returned invoices. This can be used - * to seek further, pagination style. - * - * @generated from protobuf field: uint64 last_index_offset = 2; - */ - lastIndexOffset: number; - /** - * - * The index of the last item in the set of returned invoices. This can be used - * to seek backwards, pagination style. - * - * @generated from protobuf field: uint64 first_index_offset = 3; - */ - firstIndexOffset: number; -} -/** - * @generated from protobuf message lnrpc.InvoiceSubscription - */ -export interface InvoiceSubscription { - /** - * - * If specified (non-zero), then we'll first start by sending out - * notifications for all added indexes with an add_index greater than this - * value. This allows callers to catch up on any events they missed while they - * weren't connected to the streaming RPC. - * - * @generated from protobuf field: uint64 add_index = 1; - */ - addIndex: number; - /** - * - * If specified (non-zero), then we'll first start by sending out - * notifications for all settled indexes with an settle_index greater than - * this value. This allows callers to catch up on any events they missed while - * they weren't connected to the streaming RPC. - * - * @generated from protobuf field: uint64 settle_index = 2; - */ - settleIndex: number; -} -/** - * @generated from protobuf message lnrpc.Payment - */ -export interface Payment { - /** - * The payment hash - * - * @generated from protobuf field: string payment_hash = 1; - */ - paymentHash: string; - /** - * Deprecated, use value_sat or value_msat. - * - * @deprecated - * @generated from protobuf field: int64 value = 2 [deprecated = true]; - */ - value: number; - /** - * Deprecated, use creation_time_ns - * - * @deprecated - * @generated from protobuf field: int64 creation_date = 3 [deprecated = true]; - */ - creationDate: number; - /** - * Deprecated, use fee_sat or fee_msat. - * - * @deprecated - * @generated from protobuf field: int64 fee = 5 [deprecated = true]; - */ - fee: number; - /** - * The payment preimage - * - * @generated from protobuf field: string payment_preimage = 6; - */ - paymentPreimage: string; - /** - * The value of the payment in satoshis - * - * @generated from protobuf field: int64 value_sat = 7; - */ - valueSat: number; - /** - * The value of the payment in milli-satoshis - * - * @generated from protobuf field: int64 value_msat = 8; - */ - valueMsat: number; - /** - * The optional payment request being fulfilled. - * - * @generated from protobuf field: string payment_request = 9; - */ - paymentRequest: string; - /** - * The status of the payment. - * - * @generated from protobuf field: lnrpc.Payment.PaymentStatus status = 10; - */ - status: Payment_PaymentStatus; - /** - * The fee paid for this payment in satoshis - * - * @generated from protobuf field: int64 fee_sat = 11; - */ - feeSat: number; - /** - * The fee paid for this payment in milli-satoshis - * - * @generated from protobuf field: int64 fee_msat = 12; - */ - feeMsat: number; - /** - * The time in UNIX nanoseconds at which the payment was created. - * - * @generated from protobuf field: int64 creation_time_ns = 13; - */ - creationTimeNs: number; - /** - * The HTLCs made in attempt to settle the payment. - * - * @generated from protobuf field: repeated lnrpc.HTLCAttempt htlcs = 14; - */ - htlcs: HTLCAttempt[]; - /** - * - * The creation index of this payment. Each payment can be uniquely identified - * by this index, which may not strictly increment by 1 for payments made in - * older versions of lnd. - * - * @generated from protobuf field: uint64 payment_index = 15; - */ - paymentIndex: number; - /** - * @generated from protobuf field: lnrpc.PaymentFailureReason failure_reason = 16; - */ - failureReason: PaymentFailureReason; -} -/** - * @generated from protobuf enum lnrpc.Payment.PaymentStatus - */ -export declare enum Payment_PaymentStatus { - /** - * @generated from protobuf enum value: UNKNOWN = 0; - */ - UNKNOWN = 0, - /** - * @generated from protobuf enum value: IN_FLIGHT = 1; - */ - IN_FLIGHT = 1, - /** - * @generated from protobuf enum value: SUCCEEDED = 2; - */ - SUCCEEDED = 2, - /** - * @generated from protobuf enum value: FAILED = 3; - */ - FAILED = 3 -} -/** - * @generated from protobuf message lnrpc.HTLCAttempt - */ -export interface HTLCAttempt { - /** - * The unique ID that is used for this attempt. - * - * @generated from protobuf field: uint64 attempt_id = 7; - */ - attemptId: number; - /** - * The status of the HTLC. - * - * @generated from protobuf field: lnrpc.HTLCAttempt.HTLCStatus status = 1; - */ - status: HTLCAttempt_HTLCStatus; - /** - * The route taken by this HTLC. - * - * @generated from protobuf field: lnrpc.Route route = 2; - */ - route?: Route; - /** - * The time in UNIX nanoseconds at which this HTLC was sent. - * - * @generated from protobuf field: int64 attempt_time_ns = 3; - */ - attemptTimeNs: number; - /** - * - * The time in UNIX nanoseconds at which this HTLC was settled or failed. - * This value will not be set if the HTLC is still IN_FLIGHT. - * - * @generated from protobuf field: int64 resolve_time_ns = 4; - */ - resolveTimeNs: number; - /** - * Detailed htlc failure info. - * - * @generated from protobuf field: lnrpc.Failure failure = 5; - */ - failure?: Failure; - /** - * The preimage that was used to settle the HTLC. - * - * @generated from protobuf field: bytes preimage = 6; - */ - preimage: Uint8Array; -} -/** - * @generated from protobuf enum lnrpc.HTLCAttempt.HTLCStatus - */ -export declare enum HTLCAttempt_HTLCStatus { - /** - * @generated from protobuf enum value: IN_FLIGHT = 0; - */ - IN_FLIGHT = 0, - /** - * @generated from protobuf enum value: SUCCEEDED = 1; - */ - SUCCEEDED = 1, - /** - * @generated from protobuf enum value: FAILED = 2; - */ - FAILED = 2 -} -/** - * @generated from protobuf message lnrpc.ListPaymentsRequest - */ -export interface ListPaymentsRequest { - /** - * - * If true, then return payments that have not yet fully completed. This means - * that pending payments, as well as failed payments will show up if this - * field is set to true. This flag doesn't change the meaning of the indices, - * which are tied to individual payments. - * - * @generated from protobuf field: bool include_incomplete = 1; - */ - includeIncomplete: boolean; - /** - * - * The index of a payment that will be used as either the start or end of a - * query to determine which payments should be returned in the response. The - * index_offset is exclusive. In the case of a zero index_offset, the query - * will start with the oldest payment when paginating forwards, or will end - * with the most recent payment when paginating backwards. - * - * @generated from protobuf field: uint64 index_offset = 2; - */ - indexOffset: number; - /** - * The maximal number of payments returned in the response to this query. - * - * @generated from protobuf field: uint64 max_payments = 3; - */ - maxPayments: number; - /** - * - * If set, the payments returned will result from seeking backwards from the - * specified index offset. This can be used to paginate backwards. The order - * of the returned payments is always oldest first (ascending index order). - * - * @generated from protobuf field: bool reversed = 4; - */ - reversed: boolean; - /** - * - * If set, all payments (complete and incomplete, independent of the - * max_payments parameter) will be counted. Note that setting this to true will - * increase the run time of the call significantly on systems that have a lot - * of payments, as all of them have to be iterated through to be counted. - * - * @generated from protobuf field: bool count_total_payments = 5; - */ - countTotalPayments: boolean; -} -/** - * @generated from protobuf message lnrpc.ListPaymentsResponse - */ -export interface ListPaymentsResponse { - /** - * The list of payments - * - * @generated from protobuf field: repeated lnrpc.Payment payments = 1; - */ - payments: Payment[]; - /** - * - * The index of the first item in the set of returned payments. This can be - * used as the index_offset to continue seeking backwards in the next request. - * - * @generated from protobuf field: uint64 first_index_offset = 2; - */ - firstIndexOffset: number; - /** - * - * The index of the last item in the set of returned payments. This can be used - * as the index_offset to continue seeking forwards in the next request. - * - * @generated from protobuf field: uint64 last_index_offset = 3; - */ - lastIndexOffset: number; - /** - * - * Will only be set if count_total_payments in the request was set. Represents - * the total number of payments (complete and incomplete, independent of the - * number of payments requested in the query) currently present in the payments - * database. - * - * @generated from protobuf field: uint64 total_num_payments = 4; - */ - totalNumPayments: number; -} -/** - * @generated from protobuf message lnrpc.DeletePaymentRequest - */ -export interface DeletePaymentRequest { - /** - * Payment hash to delete. - * - * @generated from protobuf field: bytes payment_hash = 1; - */ - paymentHash: Uint8Array; - /** - * - * Only delete failed HTLCs from the payment, not the payment itself. - * - * @generated from protobuf field: bool failed_htlcs_only = 2; - */ - failedHtlcsOnly: boolean; -} -/** - * @generated from protobuf message lnrpc.DeleteAllPaymentsRequest - */ -export interface DeleteAllPaymentsRequest { - /** - * Only delete failed payments. - * - * @generated from protobuf field: bool failed_payments_only = 1; - */ - failedPaymentsOnly: boolean; - /** - * - * Only delete failed HTLCs from payments, not the payment itself. - * - * @generated from protobuf field: bool failed_htlcs_only = 2; - */ - failedHtlcsOnly: boolean; -} -/** - * @generated from protobuf message lnrpc.DeletePaymentResponse - */ -export interface DeletePaymentResponse { -} -/** - * @generated from protobuf message lnrpc.DeleteAllPaymentsResponse - */ -export interface DeleteAllPaymentsResponse { -} -/** - * @generated from protobuf message lnrpc.AbandonChannelRequest - */ -export interface AbandonChannelRequest { - /** - * @generated from protobuf field: lnrpc.ChannelPoint channel_point = 1; - */ - channelPoint?: ChannelPoint; - /** - * @generated from protobuf field: bool pending_funding_shim_only = 2; - */ - pendingFundingShimOnly: boolean; - /** - * - * Override the requirement for being in dev mode by setting this to true and - * confirming the user knows what they are doing and this is a potential foot - * gun to lose funds if used on active channels. - * - * @generated from protobuf field: bool i_know_what_i_am_doing = 3; - */ - iKnowWhatIAmDoing: boolean; -} -/** - * @generated from protobuf message lnrpc.AbandonChannelResponse - */ -export interface AbandonChannelResponse { -} -/** - * @generated from protobuf message lnrpc.DebugLevelRequest - */ -export interface DebugLevelRequest { - /** - * @generated from protobuf field: bool show = 1; - */ - show: boolean; - /** - * @generated from protobuf field: string level_spec = 2; - */ - levelSpec: string; -} -/** - * @generated from protobuf message lnrpc.DebugLevelResponse - */ -export interface DebugLevelResponse { - /** - * @generated from protobuf field: string sub_systems = 1; - */ - subSystems: string; -} -/** - * @generated from protobuf message lnrpc.PayReqString - */ -export interface PayReqString { - /** - * The payment request string to be decoded - * - * @generated from protobuf field: string pay_req = 1; - */ - payReq: string; -} -/** - * @generated from protobuf message lnrpc.PayReq - */ -export interface PayReq { - /** - * @generated from protobuf field: string destination = 1; - */ - destination: string; - /** - * @generated from protobuf field: string payment_hash = 2; - */ - paymentHash: string; - /** - * @generated from protobuf field: int64 num_satoshis = 3; - */ - numSatoshis: number; - /** - * @generated from protobuf field: int64 timestamp = 4; - */ - timestamp: number; - /** - * @generated from protobuf field: int64 expiry = 5; - */ - expiry: number; - /** - * @generated from protobuf field: string description = 6; - */ - description: string; - /** - * @generated from protobuf field: string description_hash = 7; - */ - descriptionHash: string; - /** - * @generated from protobuf field: string fallback_addr = 8; - */ - fallbackAddr: string; - /** - * @generated from protobuf field: int64 cltv_expiry = 9; - */ - cltvExpiry: number; - /** - * @generated from protobuf field: repeated lnrpc.RouteHint route_hints = 10; - */ - routeHints: RouteHint[]; - /** - * @generated from protobuf field: bytes payment_addr = 11; - */ - paymentAddr: Uint8Array; - /** - * @generated from protobuf field: int64 num_msat = 12; - */ - numMsat: number; - /** - * @generated from protobuf field: map features = 13; - */ - features: { - [key: number]: Feature; - }; -} -/** - * @generated from protobuf message lnrpc.Feature - */ -export interface Feature { - /** - * @generated from protobuf field: string name = 2; - */ - name: string; - /** - * @generated from protobuf field: bool is_required = 3; - */ - isRequired: boolean; - /** - * @generated from protobuf field: bool is_known = 4; - */ - isKnown: boolean; -} -/** - * @generated from protobuf message lnrpc.FeeReportRequest - */ -export interface FeeReportRequest { -} -/** - * @generated from protobuf message lnrpc.ChannelFeeReport - */ -export interface ChannelFeeReport { - /** - * The short channel id that this fee report belongs to. - * - * @generated from protobuf field: uint64 chan_id = 5 [jstype = JS_STRING]; - */ - chanId: string; - /** - * The channel that this fee report belongs to. - * - * @generated from protobuf field: string channel_point = 1; - */ - channelPoint: string; - /** - * The base fee charged regardless of the number of milli-satoshis sent. - * - * @generated from protobuf field: int64 base_fee_msat = 2; - */ - baseFeeMsat: number; - /** - * The amount charged per milli-satoshis transferred expressed in - * millionths of a satoshi. - * - * @generated from protobuf field: int64 fee_per_mil = 3; - */ - feePerMil: number; - /** - * The effective fee rate in milli-satoshis. Computed by dividing the - * fee_per_mil value by 1 million. - * - * @generated from protobuf field: double fee_rate = 4; - */ - feeRate: number; -} -/** - * @generated from protobuf message lnrpc.FeeReportResponse - */ -export interface FeeReportResponse { - /** - * An array of channel fee reports which describes the current fee schedule - * for each channel. - * - * @generated from protobuf field: repeated lnrpc.ChannelFeeReport channel_fees = 1; - */ - channelFees: ChannelFeeReport[]; - /** - * The total amount of fee revenue (in satoshis) the switch has collected - * over the past 24 hrs. - * - * @generated from protobuf field: uint64 day_fee_sum = 2; - */ - dayFeeSum: number; - /** - * The total amount of fee revenue (in satoshis) the switch has collected - * over the past 1 week. - * - * @generated from protobuf field: uint64 week_fee_sum = 3; - */ - weekFeeSum: number; - /** - * The total amount of fee revenue (in satoshis) the switch has collected - * over the past 1 month. - * - * @generated from protobuf field: uint64 month_fee_sum = 4; - */ - monthFeeSum: number; -} -/** - * @generated from protobuf message lnrpc.PolicyUpdateRequest - */ -export interface PolicyUpdateRequest { - /** - * @generated from protobuf oneof: scope - */ - scope: { - oneofKind: "global"; - /** - * If set, then this update applies to all currently active channels. - * - * @generated from protobuf field: bool global = 1; - */ - global: boolean; - } | { - oneofKind: "chanPoint"; - /** - * If set, this update will target a specific channel. - * - * @generated from protobuf field: lnrpc.ChannelPoint chan_point = 2; - */ - chanPoint: ChannelPoint; - } | { - oneofKind: undefined; - }; - /** - * The base fee charged regardless of the number of milli-satoshis sent. - * - * @generated from protobuf field: int64 base_fee_msat = 3; - */ - baseFeeMsat: number; - /** - * The effective fee rate in milli-satoshis. The precision of this value - * goes up to 6 decimal places, so 1e-6. - * - * @generated from protobuf field: double fee_rate = 4; - */ - feeRate: number; - /** - * The effective fee rate in micro-satoshis (parts per million). - * - * @generated from protobuf field: uint32 fee_rate_ppm = 9; - */ - feeRatePpm: number; - /** - * The required timelock delta for HTLCs forwarded over the channel. - * - * @generated from protobuf field: uint32 time_lock_delta = 5; - */ - timeLockDelta: number; - /** - * If set, the maximum HTLC size in milli-satoshis. If unset, the maximum - * HTLC will be unchanged. - * - * @generated from protobuf field: uint64 max_htlc_msat = 6; - */ - maxHtlcMsat: number; - /** - * The minimum HTLC size in milli-satoshis. Only applied if - * min_htlc_msat_specified is true. - * - * @generated from protobuf field: uint64 min_htlc_msat = 7; - */ - minHtlcMsat: number; - /** - * If true, min_htlc_msat is applied. - * - * @generated from protobuf field: bool min_htlc_msat_specified = 8; - */ - minHtlcMsatSpecified: boolean; -} -/** - * @generated from protobuf message lnrpc.FailedUpdate - */ -export interface FailedUpdate { - /** - * The outpoint in format txid:n - * - * @generated from protobuf field: lnrpc.OutPoint outpoint = 1; - */ - outpoint?: OutPoint; - /** - * Reason for the policy update failure. - * - * @generated from protobuf field: lnrpc.UpdateFailure reason = 2; - */ - reason: UpdateFailure; - /** - * A string representation of the policy update error. - * - * @generated from protobuf field: string update_error = 3; - */ - updateError: string; -} -/** - * @generated from protobuf message lnrpc.PolicyUpdateResponse - */ -export interface PolicyUpdateResponse { - /** - * List of failed policy updates. - * - * @generated from protobuf field: repeated lnrpc.FailedUpdate failed_updates = 1; - */ - failedUpdates: FailedUpdate[]; -} -/** - * @generated from protobuf message lnrpc.ForwardingHistoryRequest - */ -export interface ForwardingHistoryRequest { - /** - * Start time is the starting point of the forwarding history request. All - * records beyond this point will be included, respecting the end time, and - * the index offset. - * - * @generated from protobuf field: uint64 start_time = 1; - */ - startTime: number; - /** - * End time is the end point of the forwarding history request. The - * response will carry at most 50k records between the start time and the - * end time. The index offset can be used to implement pagination. - * - * @generated from protobuf field: uint64 end_time = 2; - */ - endTime: number; - /** - * Index offset is the offset in the time series to start at. As each - * response can only contain 50k records, callers can use this to skip - * around within a packed time series. - * - * @generated from protobuf field: uint32 index_offset = 3; - */ - indexOffset: number; - /** - * The max number of events to return in the response to this query. - * - * @generated from protobuf field: uint32 num_max_events = 4; - */ - numMaxEvents: number; - /** - * Informs the server if the peer alias should be looked up for each - * forwarding event. - * - * @generated from protobuf field: bool peer_alias_lookup = 5; - */ - peerAliasLookup: boolean; -} -/** - * @generated from protobuf message lnrpc.ForwardingEvent - */ -export interface ForwardingEvent { - /** - * Timestamp is the time (unix epoch offset) that this circuit was - * completed. Deprecated by timestamp_ns. - * - * @deprecated - * @generated from protobuf field: uint64 timestamp = 1 [deprecated = true]; - */ - timestamp: number; - /** - * The incoming channel ID that carried the HTLC that created the circuit. - * - * @generated from protobuf field: uint64 chan_id_in = 2 [jstype = JS_STRING]; - */ - chanIdIn: string; - /** - * The outgoing channel ID that carried the preimage that completed the - * circuit. - * - * @generated from protobuf field: uint64 chan_id_out = 4 [jstype = JS_STRING]; - */ - chanIdOut: string; - /** - * The total amount (in satoshis) of the incoming HTLC that created half - * the circuit. - * - * @generated from protobuf field: uint64 amt_in = 5; - */ - amtIn: number; - /** - * The total amount (in satoshis) of the outgoing HTLC that created the - * second half of the circuit. - * - * @generated from protobuf field: uint64 amt_out = 6; - */ - amtOut: number; - /** - * The total fee (in satoshis) that this payment circuit carried. - * - * @generated from protobuf field: uint64 fee = 7; - */ - fee: number; - /** - * The total fee (in milli-satoshis) that this payment circuit carried. - * - * @generated from protobuf field: uint64 fee_msat = 8; - */ - feeMsat: number; - /** - * The total amount (in milli-satoshis) of the incoming HTLC that created - * half the circuit. - * - * @generated from protobuf field: uint64 amt_in_msat = 9; - */ - amtInMsat: number; - /** - * The total amount (in milli-satoshis) of the outgoing HTLC that created - * the second half of the circuit. - * - * @generated from protobuf field: uint64 amt_out_msat = 10; - */ - amtOutMsat: number; - /** - * The number of nanoseconds elapsed since January 1, 1970 UTC when this - * circuit was completed. - * - * @generated from protobuf field: uint64 timestamp_ns = 11; - */ - timestampNs: number; - /** - * The peer alias of the incoming channel. - * - * @generated from protobuf field: string peer_alias_in = 12; - */ - peerAliasIn: string; - /** - * The peer alias of the outgoing channel. - * - * @generated from protobuf field: string peer_alias_out = 13; - */ - peerAliasOut: string; -} -/** - * @generated from protobuf message lnrpc.ForwardingHistoryResponse - */ -export interface ForwardingHistoryResponse { - /** - * A list of forwarding events from the time slice of the time series - * specified in the request. - * - * @generated from protobuf field: repeated lnrpc.ForwardingEvent forwarding_events = 1; - */ - forwardingEvents: ForwardingEvent[]; - /** - * The index of the last time in the set of returned forwarding events. Can - * be used to seek further, pagination style. - * - * @generated from protobuf field: uint32 last_offset_index = 2; - */ - lastOffsetIndex: number; -} -/** - * @generated from protobuf message lnrpc.ExportChannelBackupRequest - */ -export interface ExportChannelBackupRequest { - /** - * The target channel point to obtain a back up for. - * - * @generated from protobuf field: lnrpc.ChannelPoint chan_point = 1; - */ - chanPoint?: ChannelPoint; -} -/** - * @generated from protobuf message lnrpc.ChannelBackup - */ -export interface ChannelBackup { - /** - * - * Identifies the channel that this backup belongs to. - * - * @generated from protobuf field: lnrpc.ChannelPoint chan_point = 1; - */ - chanPoint?: ChannelPoint; - /** - * - * Is an encrypted single-chan backup. this can be passed to - * RestoreChannelBackups, or the WalletUnlocker Init and Unlock methods in - * order to trigger the recovery protocol. When using REST, this field must be - * encoded as base64. - * - * @generated from protobuf field: bytes chan_backup = 2; - */ - chanBackup: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.MultiChanBackup - */ -export interface MultiChanBackup { - /** - * - * Is the set of all channels that are included in this multi-channel backup. - * - * @generated from protobuf field: repeated lnrpc.ChannelPoint chan_points = 1; - */ - chanPoints: ChannelPoint[]; - /** - * - * A single encrypted blob containing all the static channel backups of the - * channel listed above. This can be stored as a single file or blob, and - * safely be replaced with any prior/future versions. When using REST, this - * field must be encoded as base64. - * - * @generated from protobuf field: bytes multi_chan_backup = 2; - */ - multiChanBackup: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.ChanBackupExportRequest - */ -export interface ChanBackupExportRequest { -} -/** - * @generated from protobuf message lnrpc.ChanBackupSnapshot - */ -export interface ChanBackupSnapshot { - /** - * - * The set of new channels that have been added since the last channel backup - * snapshot was requested. - * - * @generated from protobuf field: lnrpc.ChannelBackups single_chan_backups = 1; - */ - singleChanBackups?: ChannelBackups; - /** - * - * A multi-channel backup that covers all open channels currently known to - * lnd. - * - * @generated from protobuf field: lnrpc.MultiChanBackup multi_chan_backup = 2; - */ - multiChanBackup?: MultiChanBackup; -} -/** - * @generated from protobuf message lnrpc.ChannelBackups - */ -export interface ChannelBackups { - /** - * - * A set of single-chan static channel backups. - * - * @generated from protobuf field: repeated lnrpc.ChannelBackup chan_backups = 1; - */ - chanBackups: ChannelBackup[]; -} -/** - * @generated from protobuf message lnrpc.RestoreChanBackupRequest - */ -export interface RestoreChanBackupRequest { - /** - * @generated from protobuf oneof: backup - */ - backup: { - oneofKind: "chanBackups"; - /** - * - * The channels to restore as a list of channel/backup pairs. - * - * @generated from protobuf field: lnrpc.ChannelBackups chan_backups = 1; - */ - chanBackups: ChannelBackups; - } | { - oneofKind: "multiChanBackup"; - /** - * - * The channels to restore in the packed multi backup format. When using - * REST, this field must be encoded as base64. - * - * @generated from protobuf field: bytes multi_chan_backup = 2; - */ - multiChanBackup: Uint8Array; - } | { - oneofKind: undefined; - }; -} -/** - * @generated from protobuf message lnrpc.RestoreBackupResponse - */ -export interface RestoreBackupResponse { -} -/** - * @generated from protobuf message lnrpc.ChannelBackupSubscription - */ -export interface ChannelBackupSubscription { -} -/** - * @generated from protobuf message lnrpc.VerifyChanBackupResponse - */ -export interface VerifyChanBackupResponse { -} -/** - * @generated from protobuf message lnrpc.MacaroonPermission - */ -export interface MacaroonPermission { - /** - * The entity a permission grants access to. - * - * @generated from protobuf field: string entity = 1; - */ - entity: string; - /** - * The action that is granted. - * - * @generated from protobuf field: string action = 2; - */ - action: string; -} -/** - * @generated from protobuf message lnrpc.BakeMacaroonRequest - */ -export interface BakeMacaroonRequest { - /** - * The list of permissions the new macaroon should grant. - * - * @generated from protobuf field: repeated lnrpc.MacaroonPermission permissions = 1; - */ - permissions: MacaroonPermission[]; - /** - * The root key ID used to create the macaroon, must be a positive integer. - * - * @generated from protobuf field: uint64 root_key_id = 2; - */ - rootKeyId: number; - /** - * - * Informs the RPC on whether to allow external permissions that LND is not - * aware of. - * - * @generated from protobuf field: bool allow_external_permissions = 3; - */ - allowExternalPermissions: boolean; -} -/** - * @generated from protobuf message lnrpc.BakeMacaroonResponse - */ -export interface BakeMacaroonResponse { - /** - * The hex encoded macaroon, serialized in binary format. - * - * @generated from protobuf field: string macaroon = 1; - */ - macaroon: string; -} -/** - * @generated from protobuf message lnrpc.ListMacaroonIDsRequest - */ -export interface ListMacaroonIDsRequest { -} -/** - * @generated from protobuf message lnrpc.ListMacaroonIDsResponse - */ -export interface ListMacaroonIDsResponse { - /** - * The list of root key IDs that are in use. - * - * @generated from protobuf field: repeated uint64 root_key_ids = 1; - */ - rootKeyIds: number[]; -} -/** - * @generated from protobuf message lnrpc.DeleteMacaroonIDRequest - */ -export interface DeleteMacaroonIDRequest { - /** - * The root key ID to be removed. - * - * @generated from protobuf field: uint64 root_key_id = 1; - */ - rootKeyId: number; -} -/** - * @generated from protobuf message lnrpc.DeleteMacaroonIDResponse - */ -export interface DeleteMacaroonIDResponse { - /** - * A boolean indicates that the deletion is successful. - * - * @generated from protobuf field: bool deleted = 1; - */ - deleted: boolean; -} -/** - * @generated from protobuf message lnrpc.MacaroonPermissionList - */ -export interface MacaroonPermissionList { - /** - * A list of macaroon permissions. - * - * @generated from protobuf field: repeated lnrpc.MacaroonPermission permissions = 1; - */ - permissions: MacaroonPermission[]; -} -/** - * @generated from protobuf message lnrpc.ListPermissionsRequest - */ -export interface ListPermissionsRequest { -} -/** - * @generated from protobuf message lnrpc.ListPermissionsResponse - */ -export interface ListPermissionsResponse { - /** - * - * A map between all RPC method URIs and their required macaroon permissions to - * access them. - * - * @generated from protobuf field: map method_permissions = 1; - */ - methodPermissions: { - [key: string]: MacaroonPermissionList; - }; -} -/** - * @generated from protobuf message lnrpc.Failure - */ -export interface Failure { - /** - * Failure code as defined in the Lightning spec - * - * @generated from protobuf field: lnrpc.Failure.FailureCode code = 1; - */ - code: Failure_FailureCode; - /** - * An optional channel update message. - * - * @generated from protobuf field: lnrpc.ChannelUpdate channel_update = 3; - */ - channelUpdate?: ChannelUpdate; - /** - * A failure type-dependent htlc value. - * - * @generated from protobuf field: uint64 htlc_msat = 4; - */ - htlcMsat: number; - /** - * The sha256 sum of the onion payload. - * - * @generated from protobuf field: bytes onion_sha_256 = 5; - */ - onionSha256: Uint8Array; - /** - * A failure type-dependent cltv expiry value. - * - * @generated from protobuf field: uint32 cltv_expiry = 6; - */ - cltvExpiry: number; - /** - * A failure type-dependent flags value. - * - * @generated from protobuf field: uint32 flags = 7; - */ - flags: number; - /** - * - * The position in the path of the intermediate or final node that generated - * the failure message. Position zero is the sender node. - * - * @generated from protobuf field: uint32 failure_source_index = 8; - */ - failureSourceIndex: number; - /** - * A failure type-dependent block height. - * - * @generated from protobuf field: uint32 height = 9; - */ - height: number; -} -/** - * @generated from protobuf enum lnrpc.Failure.FailureCode - */ -export declare enum Failure_FailureCode { - /** - * - * The numbers assigned in this enumeration match the failure codes as - * defined in BOLT #4. Because protobuf 3 requires enums to start with 0, - * a RESERVED value is added. - * - * @generated from protobuf enum value: RESERVED = 0; - */ - RESERVED = 0, - /** - * @generated from protobuf enum value: INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS = 1; - */ - INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS = 1, - /** - * @generated from protobuf enum value: INCORRECT_PAYMENT_AMOUNT = 2; - */ - INCORRECT_PAYMENT_AMOUNT = 2, - /** - * @generated from protobuf enum value: FINAL_INCORRECT_CLTV_EXPIRY = 3; - */ - FINAL_INCORRECT_CLTV_EXPIRY = 3, - /** - * @generated from protobuf enum value: FINAL_INCORRECT_HTLC_AMOUNT = 4; - */ - FINAL_INCORRECT_HTLC_AMOUNT = 4, - /** - * @generated from protobuf enum value: FINAL_EXPIRY_TOO_SOON = 5; - */ - FINAL_EXPIRY_TOO_SOON = 5, - /** - * @generated from protobuf enum value: INVALID_REALM = 6; - */ - INVALID_REALM = 6, - /** - * @generated from protobuf enum value: EXPIRY_TOO_SOON = 7; - */ - EXPIRY_TOO_SOON = 7, - /** - * @generated from protobuf enum value: INVALID_ONION_VERSION = 8; - */ - INVALID_ONION_VERSION = 8, - /** - * @generated from protobuf enum value: INVALID_ONION_HMAC = 9; - */ - INVALID_ONION_HMAC = 9, - /** - * @generated from protobuf enum value: INVALID_ONION_KEY = 10; - */ - INVALID_ONION_KEY = 10, - /** - * @generated from protobuf enum value: AMOUNT_BELOW_MINIMUM = 11; - */ - AMOUNT_BELOW_MINIMUM = 11, - /** - * @generated from protobuf enum value: FEE_INSUFFICIENT = 12; - */ - FEE_INSUFFICIENT = 12, - /** - * @generated from protobuf enum value: INCORRECT_CLTV_EXPIRY = 13; - */ - INCORRECT_CLTV_EXPIRY = 13, - /** - * @generated from protobuf enum value: CHANNEL_DISABLED = 14; - */ - CHANNEL_DISABLED = 14, - /** - * @generated from protobuf enum value: TEMPORARY_CHANNEL_FAILURE = 15; - */ - TEMPORARY_CHANNEL_FAILURE = 15, - /** - * @generated from protobuf enum value: REQUIRED_NODE_FEATURE_MISSING = 16; - */ - REQUIRED_NODE_FEATURE_MISSING = 16, - /** - * @generated from protobuf enum value: REQUIRED_CHANNEL_FEATURE_MISSING = 17; - */ - REQUIRED_CHANNEL_FEATURE_MISSING = 17, - /** - * @generated from protobuf enum value: UNKNOWN_NEXT_PEER = 18; - */ - UNKNOWN_NEXT_PEER = 18, - /** - * @generated from protobuf enum value: TEMPORARY_NODE_FAILURE = 19; - */ - TEMPORARY_NODE_FAILURE = 19, - /** - * @generated from protobuf enum value: PERMANENT_NODE_FAILURE = 20; - */ - PERMANENT_NODE_FAILURE = 20, - /** - * @generated from protobuf enum value: PERMANENT_CHANNEL_FAILURE = 21; - */ - PERMANENT_CHANNEL_FAILURE = 21, - /** - * @generated from protobuf enum value: EXPIRY_TOO_FAR = 22; - */ - EXPIRY_TOO_FAR = 22, - /** - * @generated from protobuf enum value: MPP_TIMEOUT = 23; - */ - MPP_TIMEOUT = 23, - /** - * @generated from protobuf enum value: INVALID_ONION_PAYLOAD = 24; - */ - INVALID_ONION_PAYLOAD = 24, - /** - * - * An internal error occurred. - * - * @generated from protobuf enum value: INTERNAL_FAILURE = 997; - */ - INTERNAL_FAILURE = 997, - /** - * - * The error source is known, but the failure itself couldn't be decoded. - * - * @generated from protobuf enum value: UNKNOWN_FAILURE = 998; - */ - UNKNOWN_FAILURE = 998, - /** - * - * An unreadable failure result is returned if the received failure message - * cannot be decrypted. In that case the error source is unknown. - * - * @generated from protobuf enum value: UNREADABLE_FAILURE = 999; - */ - UNREADABLE_FAILURE = 999 -} -/** - * @generated from protobuf message lnrpc.ChannelUpdate - */ -export interface ChannelUpdate { - /** - * - * The signature that validates the announced data and proves the ownership - * of node id. - * - * @generated from protobuf field: bytes signature = 1; - */ - signature: Uint8Array; - /** - * - * The target chain that this channel was opened within. This value - * should be the genesis hash of the target chain. Along with the short - * channel ID, this uniquely identifies the channel globally in a - * blockchain. - * - * @generated from protobuf field: bytes chain_hash = 2; - */ - chainHash: Uint8Array; - /** - * - * The unique description of the funding transaction. - * - * @generated from protobuf field: uint64 chan_id = 3 [jstype = JS_STRING]; - */ - chanId: string; - /** - * - * A timestamp that allows ordering in the case of multiple announcements. - * We should ignore the message if timestamp is not greater than the - * last-received. - * - * @generated from protobuf field: uint32 timestamp = 4; - */ - timestamp: number; - /** - * - * The bitfield that describes whether optional fields are present in this - * update. Currently, the least-significant bit must be set to 1 if the - * optional field MaxHtlc is present. - * - * @generated from protobuf field: uint32 message_flags = 10; - */ - messageFlags: number; - /** - * - * The bitfield that describes additional meta-data concerning how the - * update is to be interpreted. Currently, the least-significant bit must be - * set to 0 if the creating node corresponds to the first node in the - * previously sent channel announcement and 1 otherwise. If the second bit - * is set, then the channel is set to be disabled. - * - * @generated from protobuf field: uint32 channel_flags = 5; - */ - channelFlags: number; - /** - * - * The minimum number of blocks this node requires to be added to the expiry - * of HTLCs. This is a security parameter determined by the node operator. - * This value represents the required gap between the time locks of the - * incoming and outgoing HTLC's set to this node. - * - * @generated from protobuf field: uint32 time_lock_delta = 6; - */ - timeLockDelta: number; - /** - * - * The minimum HTLC value which will be accepted. - * - * @generated from protobuf field: uint64 htlc_minimum_msat = 7; - */ - htlcMinimumMsat: number; - /** - * - * The base fee that must be used for incoming HTLC's to this particular - * channel. This value will be tacked onto the required for a payment - * independent of the size of the payment. - * - * @generated from protobuf field: uint32 base_fee = 8; - */ - baseFee: number; - /** - * - * The fee rate that will be charged per millionth of a satoshi. - * - * @generated from protobuf field: uint32 fee_rate = 9; - */ - feeRate: number; - /** - * - * The maximum HTLC value which will be accepted. - * - * @generated from protobuf field: uint64 htlc_maximum_msat = 11; - */ - htlcMaximumMsat: number; - /** - * - * The set of data that was appended to this message, some of which we may - * not actually know how to iterate or parse. By holding onto this data, we - * ensure that we're able to properly validate the set of signatures that - * cover these new fields, and ensure we're able to make upgrades to the - * network in a forwards compatible manner. - * - * @generated from protobuf field: bytes extra_opaque_data = 12; - */ - extraOpaqueData: Uint8Array; -} -/** - * @generated from protobuf message lnrpc.MacaroonId - */ -export interface MacaroonId { - /** - * @generated from protobuf field: bytes nonce = 1; - */ - nonce: Uint8Array; - /** - * @generated from protobuf field: bytes storageId = 2; - */ - storageId: Uint8Array; - /** - * @generated from protobuf field: repeated lnrpc.Op ops = 3; - */ - ops: Op[]; -} -/** - * @generated from protobuf message lnrpc.Op - */ -export interface Op { - /** - * @generated from protobuf field: string entity = 1; - */ - entity: string; - /** - * @generated from protobuf field: repeated string actions = 2; - */ - actions: string[]; -} -/** - * @generated from protobuf message lnrpc.CheckMacPermRequest - */ -export interface CheckMacPermRequest { - /** - * @generated from protobuf field: bytes macaroon = 1; - */ - macaroon: Uint8Array; - /** - * @generated from protobuf field: repeated lnrpc.MacaroonPermission permissions = 2; - */ - permissions: MacaroonPermission[]; - /** - * @generated from protobuf field: string fullMethod = 3; - */ - fullMethod: string; -} -/** - * @generated from protobuf message lnrpc.CheckMacPermResponse - */ -export interface CheckMacPermResponse { - /** - * @generated from protobuf field: bool valid = 1; - */ - valid: boolean; -} -/** - * @generated from protobuf message lnrpc.RPCMiddlewareRequest - */ -export interface RPCMiddlewareRequest { - /** - * - * The unique ID of the intercepted original gRPC request. Useful for mapping - * request to response when implementing full duplex message interception. For - * streaming requests, this will be the same ID for all incoming and outgoing - * middleware intercept messages of the _same_ stream. - * - * @generated from protobuf field: uint64 request_id = 1; - */ - requestId: number; - /** - * - * The raw bytes of the complete macaroon as sent by the gRPC client in the - * original request. This might be empty for a request that doesn't require - * macaroons such as the wallet unlocker RPCs. - * - * @generated from protobuf field: bytes raw_macaroon = 2; - */ - rawMacaroon: Uint8Array; - /** - * - * The parsed condition of the macaroon's custom caveat for convenient access. - * This field only contains the value of the custom caveat that the handling - * middleware has registered itself for. The condition _must_ be validated for - * messages of intercept_type stream_auth and request! - * - * @generated from protobuf field: string custom_caveat_condition = 3; - */ - customCaveatCondition: string; - /** - * @generated from protobuf oneof: intercept_type - */ - interceptType: { - oneofKind: "streamAuth"; - /** - * - * Intercept stream authentication: each new streaming RPC call that is - * initiated against lnd and contains the middleware's custom macaroon - * caveat can be approved or denied based upon the macaroon in the stream - * header. This message will only be sent for streaming RPCs, unary RPCs - * must handle the macaroon authentication in the request interception to - * avoid an additional message round trip between lnd and the middleware. - * - * @generated from protobuf field: lnrpc.StreamAuth stream_auth = 4; - */ - streamAuth: StreamAuth; - } | { - oneofKind: "request"; - /** - * - * Intercept incoming gRPC client request message: all incoming messages, - * both on streaming and unary RPCs, are forwarded to the middleware for - * inspection. For unary RPC messages the middleware is also expected to - * validate the custom macaroon caveat of the request. - * - * @generated from protobuf field: lnrpc.RPCMessage request = 5; - */ - request: RPCMessage; - } | { - oneofKind: "response"; - /** - * - * Intercept outgoing gRPC response message: all outgoing messages, both on - * streaming and unary RPCs, are forwarded to the middleware for inspection - * and amendment. The response in this message is the original response as - * it was generated by the main RPC server. It can either be accepted - * (=forwarded to the client), replaced/overwritten with a new message of - * the same type, or replaced by an error message. - * - * @generated from protobuf field: lnrpc.RPCMessage response = 6; - */ - response: RPCMessage; - } | { - oneofKind: "regComplete"; - /** - * - * This is used to indicate to the client that the server has successfully - * registered the interceptor. This is only used in the very first message - * that the server sends to the client after the client sends the server - * the middleware registration message. - * - * @generated from protobuf field: bool reg_complete = 8; - */ - regComplete: boolean; - } | { - oneofKind: undefined; - }; - /** - * - * The unique message ID of this middleware intercept message. There can be - * multiple middleware intercept messages per single gRPC request (one for the - * incoming request and one for the outgoing response) or gRPC stream (one for - * each incoming message and one for each outgoing response). This message ID - * must be referenced when responding (accepting/rejecting/modifying) to an - * intercept message. - * - * @generated from protobuf field: uint64 msg_id = 7; - */ - msgId: number; -} -/** - * @generated from protobuf message lnrpc.StreamAuth - */ -export interface StreamAuth { - /** - * - * The full URI (in the format /./MethodName, for - * example /lnrpc.Lightning/GetInfo) of the streaming RPC method that was just - * established. - * - * @generated from protobuf field: string method_full_uri = 1; - */ - methodFullUri: string; -} -/** - * @generated from protobuf message lnrpc.RPCMessage - */ -export interface RPCMessage { - /** - * - * The full URI (in the format /./MethodName, for - * example /lnrpc.Lightning/GetInfo) of the RPC method the message was sent - * to/from. - * - * @generated from protobuf field: string method_full_uri = 1; - */ - methodFullUri: string; - /** - * - * Indicates whether the message was sent over a streaming RPC method or not. - * - * @generated from protobuf field: bool stream_rpc = 2; - */ - streamRpc: boolean; - /** - * - * The full canonical gRPC name of the message type (in the format - * .TypeName, for example lnrpc.GetInfoRequest). In case of an - * error being returned from lnd, this simply contains the string "error". - * - * @generated from protobuf field: string type_name = 3; - */ - typeName: string; - /** - * - * The full content of the gRPC message, serialized in the binary protobuf - * format. - * - * @generated from protobuf field: bytes serialized = 4; - */ - serialized: Uint8Array; - /** - * - * Indicates that the response from lnd was an error, not a gRPC response. If - * this is set to true then the type_name contains the string "error" and - * serialized contains the error string. - * - * @generated from protobuf field: bool is_error = 5; - */ - isError: boolean; -} -/** - * @generated from protobuf message lnrpc.RPCMiddlewareResponse - */ -export interface RPCMiddlewareResponse { - /** - * - * The request message ID this response refers to. Must always be set when - * giving feedback to an intercept but is ignored for the initial registration - * message. - * - * @generated from protobuf field: uint64 ref_msg_id = 1; - */ - refMsgId: number; - /** - * @generated from protobuf oneof: middleware_message - */ - middlewareMessage: { - oneofKind: "register"; - /** - * - * The registration message identifies the middleware that's being - * registered in lnd. The registration message must be sent immediately - * after initiating the RegisterRpcMiddleware stream, otherwise lnd will - * time out the attempt and terminate the request. NOTE: The middleware - * will only receive interception messages for requests that contain a - * macaroon with the custom caveat that the middleware declares it is - * responsible for handling in the registration message! As a security - * measure, _no_ middleware can intercept requests made with _unencumbered_ - * macaroons! - * - * @generated from protobuf field: lnrpc.MiddlewareRegistration register = 2; - */ - register: MiddlewareRegistration; - } | { - oneofKind: "feedback"; - /** - * - * The middleware received an interception request and gives feedback to - * it. The request_id indicates what message the feedback refers to. - * - * @generated from protobuf field: lnrpc.InterceptFeedback feedback = 3; - */ - feedback: InterceptFeedback; - } | { - oneofKind: undefined; - }; -} -/** - * @generated from protobuf message lnrpc.MiddlewareRegistration - */ -export interface MiddlewareRegistration { - /** - * - * The name of the middleware to register. The name should be as informative - * as possible and is logged on registration. - * - * @generated from protobuf field: string middleware_name = 1; - */ - middlewareName: string; - /** - * - * The name of the custom macaroon caveat that this middleware is responsible - * for. Only requests/responses that contain a macaroon with the registered - * custom caveat are forwarded for interception to the middleware. The - * exception being the read-only mode: All requests/responses are forwarded to - * a middleware that requests read-only access but such a middleware won't be - * allowed to _alter_ responses. As a security measure, _no_ middleware can - * change responses to requests made with _unencumbered_ macaroons! - * NOTE: Cannot be used at the same time as read_only_mode. - * - * @generated from protobuf field: string custom_macaroon_caveat_name = 2; - */ - customMacaroonCaveatName: string; - /** - * - * Instead of defining a custom macaroon caveat name a middleware can register - * itself for read-only access only. In that mode all requests/responses are - * forwarded to the middleware but the middleware isn't allowed to alter any of - * the responses. - * NOTE: Cannot be used at the same time as custom_macaroon_caveat_name. - * - * @generated from protobuf field: bool read_only_mode = 3; - */ - readOnlyMode: boolean; -} -/** - * @generated from protobuf message lnrpc.InterceptFeedback - */ -export interface InterceptFeedback { - /** - * - * The error to return to the user. If this is non-empty, the incoming gRPC - * stream/request is aborted and the error is returned to the gRPC client. If - * this value is empty, it means the middleware accepts the stream/request/ - * response and the processing of it can continue. - * - * @generated from protobuf field: string error = 1; - */ - error: string; - /** - * - * A boolean indicating that the gRPC message should be replaced/overwritten. - * This boolean is needed because in protobuf an empty message is serialized as - * a 0-length or nil byte slice and we wouldn't be able to distinguish between - * an empty replacement message and the "don't replace anything" case. - * - * @generated from protobuf field: bool replace_response = 2; - */ - replaceResponse: boolean; - /** - * - * If the replace_response field is set to true, this field must contain the - * binary serialized gRPC message in the protobuf format. - * - * @generated from protobuf field: bytes replacement_serialized = 3; - */ - replacementSerialized: Uint8Array; -} -/** - * @generated from protobuf enum lnrpc.OutputScriptType - */ -export declare enum OutputScriptType { - /** - * @generated from protobuf enum value: SCRIPT_TYPE_PUBKEY_HASH = 0; - */ - SCRIPT_TYPE_PUBKEY_HASH = 0, - /** - * @generated from protobuf enum value: SCRIPT_TYPE_SCRIPT_HASH = 1; - */ - SCRIPT_TYPE_SCRIPT_HASH = 1, - /** - * @generated from protobuf enum value: SCRIPT_TYPE_WITNESS_V0_PUBKEY_HASH = 2; - */ - SCRIPT_TYPE_WITNESS_V0_PUBKEY_HASH = 2, - /** - * @generated from protobuf enum value: SCRIPT_TYPE_WITNESS_V0_SCRIPT_HASH = 3; - */ - SCRIPT_TYPE_WITNESS_V0_SCRIPT_HASH = 3, - /** - * @generated from protobuf enum value: SCRIPT_TYPE_PUBKEY = 4; - */ - SCRIPT_TYPE_PUBKEY = 4, - /** - * @generated from protobuf enum value: SCRIPT_TYPE_MULTISIG = 5; - */ - SCRIPT_TYPE_MULTISIG = 5, - /** - * @generated from protobuf enum value: SCRIPT_TYPE_NULLDATA = 6; - */ - SCRIPT_TYPE_NULLDATA = 6, - /** - * @generated from protobuf enum value: SCRIPT_TYPE_NON_STANDARD = 7; - */ - SCRIPT_TYPE_NON_STANDARD = 7, - /** - * @generated from protobuf enum value: SCRIPT_TYPE_WITNESS_UNKNOWN = 8; - */ - SCRIPT_TYPE_WITNESS_UNKNOWN = 8, - /** - * @generated from protobuf enum value: SCRIPT_TYPE_WITNESS_V1_TAPROOT = 9; - */ - SCRIPT_TYPE_WITNESS_V1_TAPROOT = 9 -} -/** - * - * `AddressType` has to be one of: - * - * - `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0) - * - `np2wkh`: Pay to nested witness key hash (`NESTED_PUBKEY_HASH` = 1) - * - `p2tr`: Pay to taproot pubkey (`TAPROOT_PUBKEY` = 4) - * - * @generated from protobuf enum lnrpc.AddressType - */ -export declare enum AddressType { - /** - * @generated from protobuf enum value: WITNESS_PUBKEY_HASH = 0; - */ - WITNESS_PUBKEY_HASH = 0, - /** - * @generated from protobuf enum value: NESTED_PUBKEY_HASH = 1; - */ - NESTED_PUBKEY_HASH = 1, - /** - * @generated from protobuf enum value: UNUSED_WITNESS_PUBKEY_HASH = 2; - */ - UNUSED_WITNESS_PUBKEY_HASH = 2, - /** - * @generated from protobuf enum value: UNUSED_NESTED_PUBKEY_HASH = 3; - */ - UNUSED_NESTED_PUBKEY_HASH = 3, - /** - * @generated from protobuf enum value: TAPROOT_PUBKEY = 4; - */ - TAPROOT_PUBKEY = 4, - /** - * @generated from protobuf enum value: UNUSED_TAPROOT_PUBKEY = 5; - */ - UNUSED_TAPROOT_PUBKEY = 5 -} -/** - * @generated from protobuf enum lnrpc.CommitmentType - */ -export declare enum CommitmentType { - /** - * - * Returned when the commitment type isn't known or unavailable. - * - * @generated from protobuf enum value: UNKNOWN_COMMITMENT_TYPE = 0; - */ - UNKNOWN_COMMITMENT_TYPE = 0, - /** - * - * A channel using the legacy commitment format having tweaked to_remote - * keys. - * - * @generated from protobuf enum value: LEGACY = 1; - */ - LEGACY = 1, - /** - * - * A channel that uses the modern commitment format where the key in the - * output of the remote party does not change each state. This makes back - * up and recovery easier as when the channel is closed, the funds go - * directly to that key. - * - * @generated from protobuf enum value: STATIC_REMOTE_KEY = 2; - */ - STATIC_REMOTE_KEY = 2, - /** - * - * A channel that uses a commitment format that has anchor outputs on the - * commitments, allowing fee bumping after a force close transaction has - * been broadcast. - * - * @generated from protobuf enum value: ANCHORS = 3; - */ - ANCHORS = 3, - /** - * - * A channel that uses a commitment type that builds upon the anchors - * commitment format, but in addition requires a CLTV clause to spend outputs - * paying to the channel initiator. This is intended for use on leased channels - * to guarantee that the channel initiator has no incentives to close a leased - * channel before its maturity date. - * - * @generated from protobuf enum value: SCRIPT_ENFORCED_LEASE = 4; - */ - SCRIPT_ENFORCED_LEASE = 4 -} -/** - * @generated from protobuf enum lnrpc.Initiator - */ -export declare enum Initiator { - /** - * @generated from protobuf enum value: INITIATOR_UNKNOWN = 0; - */ - UNKNOWN = 0, - /** - * @generated from protobuf enum value: INITIATOR_LOCAL = 1; - */ - LOCAL = 1, - /** - * @generated from protobuf enum value: INITIATOR_REMOTE = 2; - */ - REMOTE = 2, - /** - * @generated from protobuf enum value: INITIATOR_BOTH = 3; - */ - BOTH = 3 -} -/** - * @generated from protobuf enum lnrpc.ResolutionType - */ -export declare enum ResolutionType { - /** - * @generated from protobuf enum value: TYPE_UNKNOWN = 0; - */ - TYPE_UNKNOWN = 0, - /** - * We resolved an anchor output. - * - * @generated from protobuf enum value: ANCHOR = 1; - */ - ANCHOR = 1, - /** - * - * We are resolving an incoming htlc on chain. This if this htlc is - * claimed, we swept the incoming htlc with the preimage. If it is timed - * out, our peer swept the timeout path. - * - * @generated from protobuf enum value: INCOMING_HTLC = 2; - */ - INCOMING_HTLC = 2, - /** - * - * We are resolving an outgoing htlc on chain. If this htlc is claimed, - * the remote party swept the htlc with the preimage. If it is timed out, - * we swept it with the timeout path. - * - * @generated from protobuf enum value: OUTGOING_HTLC = 3; - */ - OUTGOING_HTLC = 3, - /** - * We force closed and need to sweep our time locked commitment output. - * - * @generated from protobuf enum value: COMMIT = 4; - */ - COMMIT = 4 -} -/** - * @generated from protobuf enum lnrpc.ResolutionOutcome - */ -export declare enum ResolutionOutcome { - /** - * Outcome unknown. - * - * @generated from protobuf enum value: OUTCOME_UNKNOWN = 0; - */ - OUTCOME_UNKNOWN = 0, - /** - * An output was claimed on chain. - * - * @generated from protobuf enum value: CLAIMED = 1; - */ - CLAIMED = 1, - /** - * An output was left unclaimed on chain. - * - * @generated from protobuf enum value: UNCLAIMED = 2; - */ - UNCLAIMED = 2, - /** - * - * ResolverOutcomeAbandoned indicates that an output that we did not - * claim on chain, for example an anchor that we did not sweep and a - * third party claimed on chain, or a htlc that we could not decode - * so left unclaimed. - * - * @generated from protobuf enum value: ABANDONED = 3; - */ - ABANDONED = 3, - /** - * - * If we force closed our channel, our htlcs need to be claimed in two - * stages. This outcome represents the broadcast of a timeout or success - * transaction for this two stage htlc claim. - * - * @generated from protobuf enum value: FIRST_STAGE = 4; - */ - FIRST_STAGE = 4, - /** - * A htlc was timed out on chain. - * - * @generated from protobuf enum value: TIMEOUT = 5; - */ - TIMEOUT = 5 -} -/** - * @generated from protobuf enum lnrpc.NodeMetricType - */ -export declare enum NodeMetricType { - /** - * @generated from protobuf enum value: UNKNOWN = 0; - */ - UNKNOWN = 0, - /** - * @generated from protobuf enum value: BETWEENNESS_CENTRALITY = 1; - */ - BETWEENNESS_CENTRALITY = 1 -} -/** - * @generated from protobuf enum lnrpc.InvoiceHTLCState - */ -export declare enum InvoiceHTLCState { - /** - * @generated from protobuf enum value: ACCEPTED = 0; - */ - ACCEPTED = 0, - /** - * @generated from protobuf enum value: SETTLED = 1; - */ - SETTLED = 1, - /** - * @generated from protobuf enum value: CANCELED = 2; - */ - CANCELED = 2 -} -/** - * @generated from protobuf enum lnrpc.PaymentFailureReason - */ -export declare enum PaymentFailureReason { - /** - * - * Payment isn't failed (yet). - * - * @generated from protobuf enum value: FAILURE_REASON_NONE = 0; - */ - FAILURE_REASON_NONE = 0, - /** - * - * There are more routes to try, but the payment timeout was exceeded. - * - * @generated from protobuf enum value: FAILURE_REASON_TIMEOUT = 1; - */ - FAILURE_REASON_TIMEOUT = 1, - /** - * - * All possible routes were tried and failed permanently. Or were no - * routes to the destination at all. - * - * @generated from protobuf enum value: FAILURE_REASON_NO_ROUTE = 2; - */ - FAILURE_REASON_NO_ROUTE = 2, - /** - * - * A non-recoverable error has occured. - * - * @generated from protobuf enum value: FAILURE_REASON_ERROR = 3; - */ - FAILURE_REASON_ERROR = 3, - /** - * - * Payment details incorrect (unknown hash, invalid amt or - * invalid final cltv delta) - * - * @generated from protobuf enum value: FAILURE_REASON_INCORRECT_PAYMENT_DETAILS = 4; - */ - FAILURE_REASON_INCORRECT_PAYMENT_DETAILS = 4, - /** - * - * Insufficient local balance. - * - * @generated from protobuf enum value: FAILURE_REASON_INSUFFICIENT_BALANCE = 5; - */ - FAILURE_REASON_INSUFFICIENT_BALANCE = 5 -} -/** - * @generated from protobuf enum lnrpc.FeatureBit - */ -export declare enum FeatureBit { - /** - * @generated from protobuf enum value: DATALOSS_PROTECT_REQ = 0; - */ - DATALOSS_PROTECT_REQ = 0, - /** - * @generated from protobuf enum value: DATALOSS_PROTECT_OPT = 1; - */ - DATALOSS_PROTECT_OPT = 1, - /** - * @generated from protobuf enum value: INITIAL_ROUING_SYNC = 3; - */ - INITIAL_ROUING_SYNC = 3, - /** - * @generated from protobuf enum value: UPFRONT_SHUTDOWN_SCRIPT_REQ = 4; - */ - UPFRONT_SHUTDOWN_SCRIPT_REQ = 4, - /** - * @generated from protobuf enum value: UPFRONT_SHUTDOWN_SCRIPT_OPT = 5; - */ - UPFRONT_SHUTDOWN_SCRIPT_OPT = 5, - /** - * @generated from protobuf enum value: GOSSIP_QUERIES_REQ = 6; - */ - GOSSIP_QUERIES_REQ = 6, - /** - * @generated from protobuf enum value: GOSSIP_QUERIES_OPT = 7; - */ - GOSSIP_QUERIES_OPT = 7, - /** - * @generated from protobuf enum value: TLV_ONION_REQ = 8; - */ - TLV_ONION_REQ = 8, - /** - * @generated from protobuf enum value: TLV_ONION_OPT = 9; - */ - TLV_ONION_OPT = 9, - /** - * @generated from protobuf enum value: EXT_GOSSIP_QUERIES_REQ = 10; - */ - EXT_GOSSIP_QUERIES_REQ = 10, - /** - * @generated from protobuf enum value: EXT_GOSSIP_QUERIES_OPT = 11; - */ - EXT_GOSSIP_QUERIES_OPT = 11, - /** - * @generated from protobuf enum value: STATIC_REMOTE_KEY_REQ = 12; - */ - STATIC_REMOTE_KEY_REQ = 12, - /** - * @generated from protobuf enum value: STATIC_REMOTE_KEY_OPT = 13; - */ - STATIC_REMOTE_KEY_OPT = 13, - /** - * @generated from protobuf enum value: PAYMENT_ADDR_REQ = 14; - */ - PAYMENT_ADDR_REQ = 14, - /** - * @generated from protobuf enum value: PAYMENT_ADDR_OPT = 15; - */ - PAYMENT_ADDR_OPT = 15, - /** - * @generated from protobuf enum value: MPP_REQ = 16; - */ - MPP_REQ = 16, - /** - * @generated from protobuf enum value: MPP_OPT = 17; - */ - MPP_OPT = 17, - /** - * @generated from protobuf enum value: WUMBO_CHANNELS_REQ = 18; - */ - WUMBO_CHANNELS_REQ = 18, - /** - * @generated from protobuf enum value: WUMBO_CHANNELS_OPT = 19; - */ - WUMBO_CHANNELS_OPT = 19, - /** - * @generated from protobuf enum value: ANCHORS_REQ = 20; - */ - ANCHORS_REQ = 20, - /** - * @generated from protobuf enum value: ANCHORS_OPT = 21; - */ - ANCHORS_OPT = 21, - /** - * @generated from protobuf enum value: ANCHORS_ZERO_FEE_HTLC_REQ = 22; - */ - ANCHORS_ZERO_FEE_HTLC_REQ = 22, - /** - * @generated from protobuf enum value: ANCHORS_ZERO_FEE_HTLC_OPT = 23; - */ - ANCHORS_ZERO_FEE_HTLC_OPT = 23, - /** - * @generated from protobuf enum value: AMP_REQ = 30; - */ - AMP_REQ = 30, - /** - * @generated from protobuf enum value: AMP_OPT = 31; - */ - AMP_OPT = 31 -} -/** - * @generated from protobuf enum lnrpc.UpdateFailure - */ -export declare enum UpdateFailure { - /** - * @generated from protobuf enum value: UPDATE_FAILURE_UNKNOWN = 0; - */ - UNKNOWN = 0, - /** - * @generated from protobuf enum value: UPDATE_FAILURE_PENDING = 1; - */ - PENDING = 1, - /** - * @generated from protobuf enum value: UPDATE_FAILURE_NOT_FOUND = 2; - */ - NOT_FOUND = 2, - /** - * @generated from protobuf enum value: UPDATE_FAILURE_INTERNAL_ERR = 3; - */ - INTERNAL_ERR = 3, - /** - * @generated from protobuf enum value: UPDATE_FAILURE_INVALID_PARAMETER = 4; - */ - INVALID_PARAMETER = 4 -} -declare class LookupHtlcRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): LookupHtlcRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LookupHtlcRequest): LookupHtlcRequest; - internalBinaryWrite(message: LookupHtlcRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.LookupHtlcRequest - */ -export declare const LookupHtlcRequest: LookupHtlcRequest$Type; -declare class LookupHtlcResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): LookupHtlcResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LookupHtlcResponse): LookupHtlcResponse; - internalBinaryWrite(message: LookupHtlcResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.LookupHtlcResponse - */ -export declare const LookupHtlcResponse: LookupHtlcResponse$Type; -declare class SubscribeCustomMessagesRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SubscribeCustomMessagesRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscribeCustomMessagesRequest): SubscribeCustomMessagesRequest; - internalBinaryWrite(message: SubscribeCustomMessagesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.SubscribeCustomMessagesRequest - */ -export declare const SubscribeCustomMessagesRequest: SubscribeCustomMessagesRequest$Type; -declare class CustomMessage$Type extends MessageType { - constructor(); - create(value?: PartialMessage): CustomMessage; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CustomMessage): CustomMessage; - internalBinaryWrite(message: CustomMessage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.CustomMessage - */ -export declare const CustomMessage: CustomMessage$Type; -declare class SendCustomMessageRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SendCustomMessageRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendCustomMessageRequest): SendCustomMessageRequest; - internalBinaryWrite(message: SendCustomMessageRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.SendCustomMessageRequest - */ -export declare const SendCustomMessageRequest: SendCustomMessageRequest$Type; -declare class SendCustomMessageResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SendCustomMessageResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendCustomMessageResponse): SendCustomMessageResponse; - internalBinaryWrite(message: SendCustomMessageResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.SendCustomMessageResponse - */ -export declare const SendCustomMessageResponse: SendCustomMessageResponse$Type; -declare class Utxo$Type extends MessageType { - constructor(); - create(value?: PartialMessage): Utxo; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Utxo): Utxo; - internalBinaryWrite(message: Utxo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.Utxo - */ -export declare const Utxo: Utxo$Type; -declare class OutputDetail$Type extends MessageType { - constructor(); - create(value?: PartialMessage): OutputDetail; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OutputDetail): OutputDetail; - internalBinaryWrite(message: OutputDetail, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.OutputDetail - */ -export declare const OutputDetail: OutputDetail$Type; -declare class Transaction$Type extends MessageType { - constructor(); - create(value?: PartialMessage): Transaction; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Transaction): Transaction; - internalBinaryWrite(message: Transaction, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.Transaction - */ -export declare const Transaction: Transaction$Type; -declare class GetTransactionsRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): GetTransactionsRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetTransactionsRequest): GetTransactionsRequest; - internalBinaryWrite(message: GetTransactionsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.GetTransactionsRequest - */ -export declare const GetTransactionsRequest: GetTransactionsRequest$Type; -declare class TransactionDetails$Type extends MessageType { - constructor(); - create(value?: PartialMessage): TransactionDetails; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TransactionDetails): TransactionDetails; - internalBinaryWrite(message: TransactionDetails, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.TransactionDetails - */ -export declare const TransactionDetails: TransactionDetails$Type; -declare class FeeLimit$Type extends MessageType { - constructor(); - create(value?: PartialMessage): FeeLimit; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FeeLimit): FeeLimit; - internalBinaryWrite(message: FeeLimit, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.FeeLimit - */ -export declare const FeeLimit: FeeLimit$Type; -declare class SendRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SendRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendRequest): SendRequest; - private binaryReadMap11; - internalBinaryWrite(message: SendRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.SendRequest - */ -export declare const SendRequest: SendRequest$Type; -declare class SendResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SendResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendResponse): SendResponse; - internalBinaryWrite(message: SendResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.SendResponse - */ -export declare const SendResponse: SendResponse$Type; -declare class SendToRouteRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SendToRouteRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendToRouteRequest): SendToRouteRequest; - internalBinaryWrite(message: SendToRouteRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.SendToRouteRequest - */ -export declare const SendToRouteRequest: SendToRouteRequest$Type; -declare class ChannelAcceptRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelAcceptRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelAcceptRequest): ChannelAcceptRequest; - internalBinaryWrite(message: ChannelAcceptRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelAcceptRequest - */ -export declare const ChannelAcceptRequest: ChannelAcceptRequest$Type; -declare class ChannelAcceptResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelAcceptResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelAcceptResponse): ChannelAcceptResponse; - internalBinaryWrite(message: ChannelAcceptResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelAcceptResponse - */ -export declare const ChannelAcceptResponse: ChannelAcceptResponse$Type; -declare class ChannelPoint$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelPoint; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelPoint): ChannelPoint; - internalBinaryWrite(message: ChannelPoint, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelPoint - */ -export declare const ChannelPoint: ChannelPoint$Type; -declare class OutPoint$Type extends MessageType { - constructor(); - create(value?: PartialMessage): OutPoint; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OutPoint): OutPoint; - internalBinaryWrite(message: OutPoint, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.OutPoint - */ -export declare const OutPoint: OutPoint$Type; -declare class PreviousOutPoint$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PreviousOutPoint; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PreviousOutPoint): PreviousOutPoint; - internalBinaryWrite(message: PreviousOutPoint, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PreviousOutPoint - */ -export declare const PreviousOutPoint: PreviousOutPoint$Type; -declare class LightningAddress$Type extends MessageType { - constructor(); - create(value?: PartialMessage): LightningAddress; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LightningAddress): LightningAddress; - internalBinaryWrite(message: LightningAddress, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.LightningAddress - */ -export declare const LightningAddress: LightningAddress$Type; -declare class EstimateFeeRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): EstimateFeeRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EstimateFeeRequest): EstimateFeeRequest; - private binaryReadMap1; - internalBinaryWrite(message: EstimateFeeRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.EstimateFeeRequest - */ -export declare const EstimateFeeRequest: EstimateFeeRequest$Type; -declare class EstimateFeeResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): EstimateFeeResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EstimateFeeResponse): EstimateFeeResponse; - internalBinaryWrite(message: EstimateFeeResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.EstimateFeeResponse - */ -export declare const EstimateFeeResponse: EstimateFeeResponse$Type; -declare class SendManyRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SendManyRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendManyRequest): SendManyRequest; - private binaryReadMap1; - internalBinaryWrite(message: SendManyRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.SendManyRequest - */ -export declare const SendManyRequest: SendManyRequest$Type; -declare class SendManyResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SendManyResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendManyResponse): SendManyResponse; - internalBinaryWrite(message: SendManyResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.SendManyResponse - */ -export declare const SendManyResponse: SendManyResponse$Type; -declare class SendCoinsRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SendCoinsRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendCoinsRequest): SendCoinsRequest; - internalBinaryWrite(message: SendCoinsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.SendCoinsRequest - */ -export declare const SendCoinsRequest: SendCoinsRequest$Type; -declare class SendCoinsResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SendCoinsResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendCoinsResponse): SendCoinsResponse; - internalBinaryWrite(message: SendCoinsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.SendCoinsResponse - */ -export declare const SendCoinsResponse: SendCoinsResponse$Type; -declare class ListUnspentRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListUnspentRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUnspentRequest): ListUnspentRequest; - internalBinaryWrite(message: ListUnspentRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListUnspentRequest - */ -export declare const ListUnspentRequest: ListUnspentRequest$Type; -declare class ListUnspentResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListUnspentResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUnspentResponse): ListUnspentResponse; - internalBinaryWrite(message: ListUnspentResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListUnspentResponse - */ -export declare const ListUnspentResponse: ListUnspentResponse$Type; -declare class NewAddressRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): NewAddressRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NewAddressRequest): NewAddressRequest; - internalBinaryWrite(message: NewAddressRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.NewAddressRequest - */ -export declare const NewAddressRequest: NewAddressRequest$Type; -declare class NewAddressResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): NewAddressResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NewAddressResponse): NewAddressResponse; - internalBinaryWrite(message: NewAddressResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.NewAddressResponse - */ -export declare const NewAddressResponse: NewAddressResponse$Type; -declare class SignMessageRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SignMessageRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SignMessageRequest): SignMessageRequest; - internalBinaryWrite(message: SignMessageRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.SignMessageRequest - */ -export declare const SignMessageRequest: SignMessageRequest$Type; -declare class SignMessageResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SignMessageResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SignMessageResponse): SignMessageResponse; - internalBinaryWrite(message: SignMessageResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.SignMessageResponse - */ -export declare const SignMessageResponse: SignMessageResponse$Type; -declare class VerifyMessageRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): VerifyMessageRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: VerifyMessageRequest): VerifyMessageRequest; - internalBinaryWrite(message: VerifyMessageRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.VerifyMessageRequest - */ -export declare const VerifyMessageRequest: VerifyMessageRequest$Type; -declare class VerifyMessageResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): VerifyMessageResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: VerifyMessageResponse): VerifyMessageResponse; - internalBinaryWrite(message: VerifyMessageResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.VerifyMessageResponse - */ -export declare const VerifyMessageResponse: VerifyMessageResponse$Type; -declare class ConnectPeerRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ConnectPeerRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ConnectPeerRequest): ConnectPeerRequest; - internalBinaryWrite(message: ConnectPeerRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ConnectPeerRequest - */ -export declare const ConnectPeerRequest: ConnectPeerRequest$Type; -declare class ConnectPeerResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ConnectPeerResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ConnectPeerResponse): ConnectPeerResponse; - internalBinaryWrite(message: ConnectPeerResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ConnectPeerResponse - */ -export declare const ConnectPeerResponse: ConnectPeerResponse$Type; -declare class DisconnectPeerRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): DisconnectPeerRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DisconnectPeerRequest): DisconnectPeerRequest; - internalBinaryWrite(message: DisconnectPeerRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.DisconnectPeerRequest - */ -export declare const DisconnectPeerRequest: DisconnectPeerRequest$Type; -declare class DisconnectPeerResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): DisconnectPeerResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DisconnectPeerResponse): DisconnectPeerResponse; - internalBinaryWrite(message: DisconnectPeerResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.DisconnectPeerResponse - */ -export declare const DisconnectPeerResponse: DisconnectPeerResponse$Type; -declare class HTLC$Type extends MessageType { - constructor(); - create(value?: PartialMessage): HTLC; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: HTLC): HTLC; - internalBinaryWrite(message: HTLC, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.HTLC - */ -export declare const HTLC: HTLC$Type; -declare class ChannelConstraints$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelConstraints; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelConstraints): ChannelConstraints; - internalBinaryWrite(message: ChannelConstraints, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelConstraints - */ -export declare const ChannelConstraints: ChannelConstraints$Type; -declare class Channel$Type extends MessageType { - constructor(); - create(value?: PartialMessage): Channel; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Channel): Channel; - internalBinaryWrite(message: Channel, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.Channel - */ -export declare const Channel: Channel$Type; -declare class ListChannelsRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListChannelsRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListChannelsRequest): ListChannelsRequest; - internalBinaryWrite(message: ListChannelsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListChannelsRequest - */ -export declare const ListChannelsRequest: ListChannelsRequest$Type; -declare class ListChannelsResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListChannelsResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListChannelsResponse): ListChannelsResponse; - internalBinaryWrite(message: ListChannelsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListChannelsResponse - */ -export declare const ListChannelsResponse: ListChannelsResponse$Type; -declare class AliasMap$Type extends MessageType { - constructor(); - create(value?: PartialMessage): AliasMap; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AliasMap): AliasMap; - internalBinaryWrite(message: AliasMap, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.AliasMap - */ -export declare const AliasMap: AliasMap$Type; -declare class ListAliasesRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListAliasesRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListAliasesRequest): ListAliasesRequest; - internalBinaryWrite(message: ListAliasesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListAliasesRequest - */ -export declare const ListAliasesRequest: ListAliasesRequest$Type; -declare class ListAliasesResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListAliasesResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListAliasesResponse): ListAliasesResponse; - internalBinaryWrite(message: ListAliasesResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListAliasesResponse - */ -export declare const ListAliasesResponse: ListAliasesResponse$Type; -declare class ChannelCloseSummary$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelCloseSummary; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelCloseSummary): ChannelCloseSummary; - internalBinaryWrite(message: ChannelCloseSummary, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelCloseSummary - */ -export declare const ChannelCloseSummary: ChannelCloseSummary$Type; -declare class Resolution$Type extends MessageType { - constructor(); - create(value?: PartialMessage): Resolution; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Resolution): Resolution; - internalBinaryWrite(message: Resolution, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.Resolution - */ -export declare const Resolution: Resolution$Type; -declare class ClosedChannelsRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ClosedChannelsRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClosedChannelsRequest): ClosedChannelsRequest; - internalBinaryWrite(message: ClosedChannelsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ClosedChannelsRequest - */ -export declare const ClosedChannelsRequest: ClosedChannelsRequest$Type; -declare class ClosedChannelsResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ClosedChannelsResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClosedChannelsResponse): ClosedChannelsResponse; - internalBinaryWrite(message: ClosedChannelsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ClosedChannelsResponse - */ -export declare const ClosedChannelsResponse: ClosedChannelsResponse$Type; -declare class Peer$Type extends MessageType { - constructor(); - create(value?: PartialMessage): Peer; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Peer): Peer; - private binaryReadMap11; - internalBinaryWrite(message: Peer, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.Peer - */ -export declare const Peer: Peer$Type; -declare class TimestampedError$Type extends MessageType { - constructor(); - create(value?: PartialMessage): TimestampedError; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TimestampedError): TimestampedError; - internalBinaryWrite(message: TimestampedError, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.TimestampedError - */ -export declare const TimestampedError: TimestampedError$Type; -declare class ListPeersRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListPeersRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListPeersRequest): ListPeersRequest; - internalBinaryWrite(message: ListPeersRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListPeersRequest - */ -export declare const ListPeersRequest: ListPeersRequest$Type; -declare class ListPeersResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListPeersResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListPeersResponse): ListPeersResponse; - internalBinaryWrite(message: ListPeersResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListPeersResponse - */ -export declare const ListPeersResponse: ListPeersResponse$Type; -declare class PeerEventSubscription$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PeerEventSubscription; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PeerEventSubscription): PeerEventSubscription; - internalBinaryWrite(message: PeerEventSubscription, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PeerEventSubscription - */ -export declare const PeerEventSubscription: PeerEventSubscription$Type; -declare class PeerEvent$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PeerEvent; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PeerEvent): PeerEvent; - internalBinaryWrite(message: PeerEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PeerEvent - */ -export declare const PeerEvent: PeerEvent$Type; -declare class GetInfoRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): GetInfoRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetInfoRequest): GetInfoRequest; - internalBinaryWrite(message: GetInfoRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.GetInfoRequest - */ -export declare const GetInfoRequest: GetInfoRequest$Type; -declare class GetInfoResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): GetInfoResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetInfoResponse): GetInfoResponse; - private binaryReadMap19; - internalBinaryWrite(message: GetInfoResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.GetInfoResponse - */ -export declare const GetInfoResponse: GetInfoResponse$Type; -declare class GetRecoveryInfoRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): GetRecoveryInfoRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetRecoveryInfoRequest): GetRecoveryInfoRequest; - internalBinaryWrite(message: GetRecoveryInfoRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.GetRecoveryInfoRequest - */ -export declare const GetRecoveryInfoRequest: GetRecoveryInfoRequest$Type; -declare class GetRecoveryInfoResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): GetRecoveryInfoResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetRecoveryInfoResponse): GetRecoveryInfoResponse; - internalBinaryWrite(message: GetRecoveryInfoResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.GetRecoveryInfoResponse - */ -export declare const GetRecoveryInfoResponse: GetRecoveryInfoResponse$Type; -declare class Chain$Type extends MessageType { - constructor(); - create(value?: PartialMessage): Chain; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Chain): Chain; - internalBinaryWrite(message: Chain, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.Chain - */ -export declare const Chain: Chain$Type; -declare class ConfirmationUpdate$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ConfirmationUpdate; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ConfirmationUpdate): ConfirmationUpdate; - internalBinaryWrite(message: ConfirmationUpdate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ConfirmationUpdate - */ -export declare const ConfirmationUpdate: ConfirmationUpdate$Type; -declare class ChannelOpenUpdate$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelOpenUpdate; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelOpenUpdate): ChannelOpenUpdate; - internalBinaryWrite(message: ChannelOpenUpdate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelOpenUpdate - */ -export declare const ChannelOpenUpdate: ChannelOpenUpdate$Type; -declare class ChannelCloseUpdate$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelCloseUpdate; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelCloseUpdate): ChannelCloseUpdate; - internalBinaryWrite(message: ChannelCloseUpdate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelCloseUpdate - */ -export declare const ChannelCloseUpdate: ChannelCloseUpdate$Type; -declare class CloseChannelRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): CloseChannelRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CloseChannelRequest): CloseChannelRequest; - internalBinaryWrite(message: CloseChannelRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.CloseChannelRequest - */ -export declare const CloseChannelRequest: CloseChannelRequest$Type; -declare class CloseStatusUpdate$Type extends MessageType { - constructor(); - create(value?: PartialMessage): CloseStatusUpdate; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CloseStatusUpdate): CloseStatusUpdate; - internalBinaryWrite(message: CloseStatusUpdate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.CloseStatusUpdate - */ -export declare const CloseStatusUpdate: CloseStatusUpdate$Type; -declare class PendingUpdate$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PendingUpdate; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PendingUpdate): PendingUpdate; - internalBinaryWrite(message: PendingUpdate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PendingUpdate - */ -export declare const PendingUpdate: PendingUpdate$Type; -declare class ReadyForPsbtFunding$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ReadyForPsbtFunding; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ReadyForPsbtFunding): ReadyForPsbtFunding; - internalBinaryWrite(message: ReadyForPsbtFunding, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ReadyForPsbtFunding - */ -export declare const ReadyForPsbtFunding: ReadyForPsbtFunding$Type; -declare class BatchOpenChannelRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): BatchOpenChannelRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BatchOpenChannelRequest): BatchOpenChannelRequest; - internalBinaryWrite(message: BatchOpenChannelRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.BatchOpenChannelRequest - */ -export declare const BatchOpenChannelRequest: BatchOpenChannelRequest$Type; -declare class BatchOpenChannel$Type extends MessageType { - constructor(); - create(value?: PartialMessage): BatchOpenChannel; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BatchOpenChannel): BatchOpenChannel; - internalBinaryWrite(message: BatchOpenChannel, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.BatchOpenChannel - */ -export declare const BatchOpenChannel: BatchOpenChannel$Type; -declare class BatchOpenChannelResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): BatchOpenChannelResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BatchOpenChannelResponse): BatchOpenChannelResponse; - internalBinaryWrite(message: BatchOpenChannelResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.BatchOpenChannelResponse - */ -export declare const BatchOpenChannelResponse: BatchOpenChannelResponse$Type; -declare class OpenChannelRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): OpenChannelRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OpenChannelRequest): OpenChannelRequest; - internalBinaryWrite(message: OpenChannelRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.OpenChannelRequest - */ -export declare const OpenChannelRequest: OpenChannelRequest$Type; -declare class OpenStatusUpdate$Type extends MessageType { - constructor(); - create(value?: PartialMessage): OpenStatusUpdate; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OpenStatusUpdate): OpenStatusUpdate; - internalBinaryWrite(message: OpenStatusUpdate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.OpenStatusUpdate - */ -export declare const OpenStatusUpdate: OpenStatusUpdate$Type; -declare class KeyLocator$Type extends MessageType { - constructor(); - create(value?: PartialMessage): KeyLocator; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: KeyLocator): KeyLocator; - internalBinaryWrite(message: KeyLocator, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.KeyLocator - */ -export declare const KeyLocator: KeyLocator$Type; -declare class KeyDescriptor$Type extends MessageType { - constructor(); - create(value?: PartialMessage): KeyDescriptor; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: KeyDescriptor): KeyDescriptor; - internalBinaryWrite(message: KeyDescriptor, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.KeyDescriptor - */ -export declare const KeyDescriptor: KeyDescriptor$Type; -declare class ChanPointShim$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChanPointShim; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChanPointShim): ChanPointShim; - internalBinaryWrite(message: ChanPointShim, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChanPointShim - */ -export declare const ChanPointShim: ChanPointShim$Type; -declare class PsbtShim$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PsbtShim; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PsbtShim): PsbtShim; - internalBinaryWrite(message: PsbtShim, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PsbtShim - */ -export declare const PsbtShim: PsbtShim$Type; -declare class FundingShim$Type extends MessageType { - constructor(); - create(value?: PartialMessage): FundingShim; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FundingShim): FundingShim; - internalBinaryWrite(message: FundingShim, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.FundingShim - */ -export declare const FundingShim: FundingShim$Type; -declare class FundingShimCancel$Type extends MessageType { - constructor(); - create(value?: PartialMessage): FundingShimCancel; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FundingShimCancel): FundingShimCancel; - internalBinaryWrite(message: FundingShimCancel, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.FundingShimCancel - */ -export declare const FundingShimCancel: FundingShimCancel$Type; -declare class FundingPsbtVerify$Type extends MessageType { - constructor(); - create(value?: PartialMessage): FundingPsbtVerify; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FundingPsbtVerify): FundingPsbtVerify; - internalBinaryWrite(message: FundingPsbtVerify, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.FundingPsbtVerify - */ -export declare const FundingPsbtVerify: FundingPsbtVerify$Type; -declare class FundingPsbtFinalize$Type extends MessageType { - constructor(); - create(value?: PartialMessage): FundingPsbtFinalize; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FundingPsbtFinalize): FundingPsbtFinalize; - internalBinaryWrite(message: FundingPsbtFinalize, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.FundingPsbtFinalize - */ -export declare const FundingPsbtFinalize: FundingPsbtFinalize$Type; -declare class FundingTransitionMsg$Type extends MessageType { - constructor(); - create(value?: PartialMessage): FundingTransitionMsg; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FundingTransitionMsg): FundingTransitionMsg; - internalBinaryWrite(message: FundingTransitionMsg, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.FundingTransitionMsg - */ -export declare const FundingTransitionMsg: FundingTransitionMsg$Type; -declare class FundingStateStepResp$Type extends MessageType { - constructor(); - create(value?: PartialMessage): FundingStateStepResp; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FundingStateStepResp): FundingStateStepResp; - internalBinaryWrite(message: FundingStateStepResp, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.FundingStateStepResp - */ -export declare const FundingStateStepResp: FundingStateStepResp$Type; -declare class PendingHTLC$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PendingHTLC; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PendingHTLC): PendingHTLC; - internalBinaryWrite(message: PendingHTLC, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PendingHTLC - */ -export declare const PendingHTLC: PendingHTLC$Type; -declare class PendingChannelsRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PendingChannelsRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PendingChannelsRequest): PendingChannelsRequest; - internalBinaryWrite(message: PendingChannelsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsRequest - */ -export declare const PendingChannelsRequest: PendingChannelsRequest$Type; -declare class PendingChannelsResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PendingChannelsResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PendingChannelsResponse): PendingChannelsResponse; - internalBinaryWrite(message: PendingChannelsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsResponse - */ -export declare const PendingChannelsResponse: PendingChannelsResponse$Type; -declare class PendingChannelsResponse_PendingChannel$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PendingChannelsResponse_PendingChannel; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PendingChannelsResponse_PendingChannel): PendingChannelsResponse_PendingChannel; - internalBinaryWrite(message: PendingChannelsResponse_PendingChannel, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsResponse.PendingChannel - */ -export declare const PendingChannelsResponse_PendingChannel: PendingChannelsResponse_PendingChannel$Type; -declare class PendingChannelsResponse_PendingOpenChannel$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PendingChannelsResponse_PendingOpenChannel; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PendingChannelsResponse_PendingOpenChannel): PendingChannelsResponse_PendingOpenChannel; - internalBinaryWrite(message: PendingChannelsResponse_PendingOpenChannel, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsResponse.PendingOpenChannel - */ -export declare const PendingChannelsResponse_PendingOpenChannel: PendingChannelsResponse_PendingOpenChannel$Type; -declare class PendingChannelsResponse_WaitingCloseChannel$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PendingChannelsResponse_WaitingCloseChannel; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PendingChannelsResponse_WaitingCloseChannel): PendingChannelsResponse_WaitingCloseChannel; - internalBinaryWrite(message: PendingChannelsResponse_WaitingCloseChannel, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsResponse.WaitingCloseChannel - */ -export declare const PendingChannelsResponse_WaitingCloseChannel: PendingChannelsResponse_WaitingCloseChannel$Type; -declare class PendingChannelsResponse_Commitments$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PendingChannelsResponse_Commitments; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PendingChannelsResponse_Commitments): PendingChannelsResponse_Commitments; - internalBinaryWrite(message: PendingChannelsResponse_Commitments, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsResponse.Commitments - */ -export declare const PendingChannelsResponse_Commitments: PendingChannelsResponse_Commitments$Type; -declare class PendingChannelsResponse_ClosedChannel$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PendingChannelsResponse_ClosedChannel; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PendingChannelsResponse_ClosedChannel): PendingChannelsResponse_ClosedChannel; - internalBinaryWrite(message: PendingChannelsResponse_ClosedChannel, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsResponse.ClosedChannel - */ -export declare const PendingChannelsResponse_ClosedChannel: PendingChannelsResponse_ClosedChannel$Type; -declare class PendingChannelsResponse_ForceClosedChannel$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PendingChannelsResponse_ForceClosedChannel; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PendingChannelsResponse_ForceClosedChannel): PendingChannelsResponse_ForceClosedChannel; - internalBinaryWrite(message: PendingChannelsResponse_ForceClosedChannel, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsResponse.ForceClosedChannel - */ -export declare const PendingChannelsResponse_ForceClosedChannel: PendingChannelsResponse_ForceClosedChannel$Type; -declare class ChannelEventSubscription$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelEventSubscription; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelEventSubscription): ChannelEventSubscription; - internalBinaryWrite(message: ChannelEventSubscription, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelEventSubscription - */ -export declare const ChannelEventSubscription: ChannelEventSubscription$Type; -declare class ChannelEventUpdate$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelEventUpdate; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelEventUpdate): ChannelEventUpdate; - internalBinaryWrite(message: ChannelEventUpdate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelEventUpdate - */ -export declare const ChannelEventUpdate: ChannelEventUpdate$Type; -declare class WalletAccountBalance$Type extends MessageType { - constructor(); - create(value?: PartialMessage): WalletAccountBalance; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: WalletAccountBalance): WalletAccountBalance; - internalBinaryWrite(message: WalletAccountBalance, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.WalletAccountBalance - */ -export declare const WalletAccountBalance: WalletAccountBalance$Type; -declare class WalletBalanceRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): WalletBalanceRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: WalletBalanceRequest): WalletBalanceRequest; - internalBinaryWrite(message: WalletBalanceRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.WalletBalanceRequest - */ -export declare const WalletBalanceRequest: WalletBalanceRequest$Type; -declare class WalletBalanceResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): WalletBalanceResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: WalletBalanceResponse): WalletBalanceResponse; - private binaryReadMap4; - internalBinaryWrite(message: WalletBalanceResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.WalletBalanceResponse - */ -export declare const WalletBalanceResponse: WalletBalanceResponse$Type; -declare class Amount$Type extends MessageType { - constructor(); - create(value?: PartialMessage): Amount; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Amount): Amount; - internalBinaryWrite(message: Amount, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.Amount - */ -export declare const Amount: Amount$Type; -declare class ChannelBalanceRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelBalanceRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelBalanceRequest): ChannelBalanceRequest; - internalBinaryWrite(message: ChannelBalanceRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelBalanceRequest - */ -export declare const ChannelBalanceRequest: ChannelBalanceRequest$Type; -declare class ChannelBalanceResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelBalanceResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelBalanceResponse): ChannelBalanceResponse; - internalBinaryWrite(message: ChannelBalanceResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelBalanceResponse - */ -export declare const ChannelBalanceResponse: ChannelBalanceResponse$Type; -declare class QueryRoutesRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): QueryRoutesRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryRoutesRequest): QueryRoutesRequest; - private binaryReadMap13; - internalBinaryWrite(message: QueryRoutesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.QueryRoutesRequest - */ -export declare const QueryRoutesRequest: QueryRoutesRequest$Type; -declare class NodePair$Type extends MessageType { - constructor(); - create(value?: PartialMessage): NodePair; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NodePair): NodePair; - internalBinaryWrite(message: NodePair, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.NodePair - */ -export declare const NodePair: NodePair$Type; -declare class EdgeLocator$Type extends MessageType { - constructor(); - create(value?: PartialMessage): EdgeLocator; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EdgeLocator): EdgeLocator; - internalBinaryWrite(message: EdgeLocator, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.EdgeLocator - */ -export declare const EdgeLocator: EdgeLocator$Type; -declare class QueryRoutesResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): QueryRoutesResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryRoutesResponse): QueryRoutesResponse; - internalBinaryWrite(message: QueryRoutesResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.QueryRoutesResponse - */ -export declare const QueryRoutesResponse: QueryRoutesResponse$Type; -declare class Hop$Type extends MessageType { - constructor(); - create(value?: PartialMessage): Hop; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Hop): Hop; - private binaryReadMap11; - internalBinaryWrite(message: Hop, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.Hop - */ -export declare const Hop: Hop$Type; -declare class MPPRecord$Type extends MessageType { - constructor(); - create(value?: PartialMessage): MPPRecord; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MPPRecord): MPPRecord; - internalBinaryWrite(message: MPPRecord, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.MPPRecord - */ -export declare const MPPRecord: MPPRecord$Type; -declare class AMPRecord$Type extends MessageType { - constructor(); - create(value?: PartialMessage): AMPRecord; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AMPRecord): AMPRecord; - internalBinaryWrite(message: AMPRecord, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.AMPRecord - */ -export declare const AMPRecord: AMPRecord$Type; -declare class Route$Type extends MessageType { - constructor(); - create(value?: PartialMessage): Route; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Route): Route; - internalBinaryWrite(message: Route, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.Route - */ -export declare const Route: Route$Type; -declare class NodeInfoRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): NodeInfoRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NodeInfoRequest): NodeInfoRequest; - internalBinaryWrite(message: NodeInfoRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.NodeInfoRequest - */ -export declare const NodeInfoRequest: NodeInfoRequest$Type; -declare class NodeInfo$Type extends MessageType { - constructor(); - create(value?: PartialMessage): NodeInfo; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NodeInfo): NodeInfo; - internalBinaryWrite(message: NodeInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.NodeInfo - */ -export declare const NodeInfo: NodeInfo$Type; -declare class LightningNode$Type extends MessageType { - constructor(); - create(value?: PartialMessage): LightningNode; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LightningNode): LightningNode; - private binaryReadMap6; - private binaryReadMap7; - internalBinaryWrite(message: LightningNode, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.LightningNode - */ -export declare const LightningNode: LightningNode$Type; -declare class NodeAddress$Type extends MessageType { - constructor(); - create(value?: PartialMessage): NodeAddress; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NodeAddress): NodeAddress; - internalBinaryWrite(message: NodeAddress, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.NodeAddress - */ -export declare const NodeAddress: NodeAddress$Type; -declare class RoutingPolicy$Type extends MessageType { - constructor(); - create(value?: PartialMessage): RoutingPolicy; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RoutingPolicy): RoutingPolicy; - private binaryReadMap8; - internalBinaryWrite(message: RoutingPolicy, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.RoutingPolicy - */ -export declare const RoutingPolicy: RoutingPolicy$Type; -declare class ChannelEdge$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelEdge; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelEdge): ChannelEdge; - private binaryReadMap9; - internalBinaryWrite(message: ChannelEdge, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelEdge - */ -export declare const ChannelEdge: ChannelEdge$Type; -declare class ChannelGraphRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelGraphRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelGraphRequest): ChannelGraphRequest; - internalBinaryWrite(message: ChannelGraphRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelGraphRequest - */ -export declare const ChannelGraphRequest: ChannelGraphRequest$Type; -declare class ChannelGraph$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelGraph; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelGraph): ChannelGraph; - internalBinaryWrite(message: ChannelGraph, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelGraph - */ -export declare const ChannelGraph: ChannelGraph$Type; -declare class NodeMetricsRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): NodeMetricsRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NodeMetricsRequest): NodeMetricsRequest; - internalBinaryWrite(message: NodeMetricsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.NodeMetricsRequest - */ -export declare const NodeMetricsRequest: NodeMetricsRequest$Type; -declare class NodeMetricsResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): NodeMetricsResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NodeMetricsResponse): NodeMetricsResponse; - private binaryReadMap1; - internalBinaryWrite(message: NodeMetricsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.NodeMetricsResponse - */ -export declare const NodeMetricsResponse: NodeMetricsResponse$Type; -declare class FloatMetric$Type extends MessageType { - constructor(); - create(value?: PartialMessage): FloatMetric; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FloatMetric): FloatMetric; - internalBinaryWrite(message: FloatMetric, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.FloatMetric - */ -export declare const FloatMetric: FloatMetric$Type; -declare class ChanInfoRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChanInfoRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChanInfoRequest): ChanInfoRequest; - internalBinaryWrite(message: ChanInfoRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChanInfoRequest - */ -export declare const ChanInfoRequest: ChanInfoRequest$Type; -declare class NetworkInfoRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): NetworkInfoRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NetworkInfoRequest): NetworkInfoRequest; - internalBinaryWrite(message: NetworkInfoRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.NetworkInfoRequest - */ -export declare const NetworkInfoRequest: NetworkInfoRequest$Type; -declare class NetworkInfo$Type extends MessageType { - constructor(); - create(value?: PartialMessage): NetworkInfo; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NetworkInfo): NetworkInfo; - internalBinaryWrite(message: NetworkInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.NetworkInfo - */ -export declare const NetworkInfo: NetworkInfo$Type; -declare class StopRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): StopRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StopRequest): StopRequest; - internalBinaryWrite(message: StopRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.StopRequest - */ -export declare const StopRequest: StopRequest$Type; -declare class StopResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): StopResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StopResponse): StopResponse; - internalBinaryWrite(message: StopResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.StopResponse - */ -export declare const StopResponse: StopResponse$Type; -declare class GraphTopologySubscription$Type extends MessageType { - constructor(); - create(value?: PartialMessage): GraphTopologySubscription; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GraphTopologySubscription): GraphTopologySubscription; - internalBinaryWrite(message: GraphTopologySubscription, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.GraphTopologySubscription - */ -export declare const GraphTopologySubscription: GraphTopologySubscription$Type; -declare class GraphTopologyUpdate$Type extends MessageType { - constructor(); - create(value?: PartialMessage): GraphTopologyUpdate; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GraphTopologyUpdate): GraphTopologyUpdate; - internalBinaryWrite(message: GraphTopologyUpdate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.GraphTopologyUpdate - */ -export declare const GraphTopologyUpdate: GraphTopologyUpdate$Type; -declare class NodeUpdate$Type extends MessageType { - constructor(); - create(value?: PartialMessage): NodeUpdate; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NodeUpdate): NodeUpdate; - private binaryReadMap6; - internalBinaryWrite(message: NodeUpdate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.NodeUpdate - */ -export declare const NodeUpdate: NodeUpdate$Type; -declare class ChannelEdgeUpdate$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelEdgeUpdate; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelEdgeUpdate): ChannelEdgeUpdate; - internalBinaryWrite(message: ChannelEdgeUpdate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelEdgeUpdate - */ -export declare const ChannelEdgeUpdate: ChannelEdgeUpdate$Type; -declare class ClosedChannelUpdate$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ClosedChannelUpdate; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClosedChannelUpdate): ClosedChannelUpdate; - internalBinaryWrite(message: ClosedChannelUpdate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ClosedChannelUpdate - */ -export declare const ClosedChannelUpdate: ClosedChannelUpdate$Type; -declare class HopHint$Type extends MessageType { - constructor(); - create(value?: PartialMessage): HopHint; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: HopHint): HopHint; - internalBinaryWrite(message: HopHint, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.HopHint - */ -export declare const HopHint: HopHint$Type; -declare class SetID$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SetID; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetID): SetID; - internalBinaryWrite(message: SetID, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.SetID - */ -export declare const SetID: SetID$Type; -declare class RouteHint$Type extends MessageType { - constructor(); - create(value?: PartialMessage): RouteHint; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RouteHint): RouteHint; - internalBinaryWrite(message: RouteHint, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.RouteHint - */ -export declare const RouteHint: RouteHint$Type; -declare class AMPInvoiceState$Type extends MessageType { - constructor(); - create(value?: PartialMessage): AMPInvoiceState; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AMPInvoiceState): AMPInvoiceState; - internalBinaryWrite(message: AMPInvoiceState, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.AMPInvoiceState - */ -export declare const AMPInvoiceState: AMPInvoiceState$Type; -declare class Invoice$Type extends MessageType { - constructor(); - create(value?: PartialMessage): Invoice; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Invoice): Invoice; - private binaryReadMap24; - private binaryReadMap28; - internalBinaryWrite(message: Invoice, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.Invoice - */ -export declare const Invoice: Invoice$Type; -declare class InvoiceHTLC$Type extends MessageType { - constructor(); - create(value?: PartialMessage): InvoiceHTLC; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: InvoiceHTLC): InvoiceHTLC; - private binaryReadMap9; - internalBinaryWrite(message: InvoiceHTLC, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.InvoiceHTLC - */ -export declare const InvoiceHTLC: InvoiceHTLC$Type; -declare class AMP$Type extends MessageType { - constructor(); - create(value?: PartialMessage): AMP; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AMP): AMP; - internalBinaryWrite(message: AMP, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.AMP - */ -export declare const AMP: AMP$Type; -declare class AddInvoiceResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): AddInvoiceResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AddInvoiceResponse): AddInvoiceResponse; - internalBinaryWrite(message: AddInvoiceResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.AddInvoiceResponse - */ -export declare const AddInvoiceResponse: AddInvoiceResponse$Type; -declare class PaymentHash$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PaymentHash; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PaymentHash): PaymentHash; - internalBinaryWrite(message: PaymentHash, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PaymentHash - */ -export declare const PaymentHash: PaymentHash$Type; -declare class ListInvoiceRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListInvoiceRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListInvoiceRequest): ListInvoiceRequest; - internalBinaryWrite(message: ListInvoiceRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListInvoiceRequest - */ -export declare const ListInvoiceRequest: ListInvoiceRequest$Type; -declare class ListInvoiceResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListInvoiceResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListInvoiceResponse): ListInvoiceResponse; - internalBinaryWrite(message: ListInvoiceResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListInvoiceResponse - */ -export declare const ListInvoiceResponse: ListInvoiceResponse$Type; -declare class InvoiceSubscription$Type extends MessageType { - constructor(); - create(value?: PartialMessage): InvoiceSubscription; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: InvoiceSubscription): InvoiceSubscription; - internalBinaryWrite(message: InvoiceSubscription, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.InvoiceSubscription - */ -export declare const InvoiceSubscription: InvoiceSubscription$Type; -declare class Payment$Type extends MessageType { - constructor(); - create(value?: PartialMessage): Payment; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Payment): Payment; - internalBinaryWrite(message: Payment, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.Payment - */ -export declare const Payment: Payment$Type; -declare class HTLCAttempt$Type extends MessageType { - constructor(); - create(value?: PartialMessage): HTLCAttempt; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: HTLCAttempt): HTLCAttempt; - internalBinaryWrite(message: HTLCAttempt, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.HTLCAttempt - */ -export declare const HTLCAttempt: HTLCAttempt$Type; -declare class ListPaymentsRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListPaymentsRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListPaymentsRequest): ListPaymentsRequest; - internalBinaryWrite(message: ListPaymentsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListPaymentsRequest - */ -export declare const ListPaymentsRequest: ListPaymentsRequest$Type; -declare class ListPaymentsResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListPaymentsResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListPaymentsResponse): ListPaymentsResponse; - internalBinaryWrite(message: ListPaymentsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListPaymentsResponse - */ -export declare const ListPaymentsResponse: ListPaymentsResponse$Type; -declare class DeletePaymentRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): DeletePaymentRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeletePaymentRequest): DeletePaymentRequest; - internalBinaryWrite(message: DeletePaymentRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.DeletePaymentRequest - */ -export declare const DeletePaymentRequest: DeletePaymentRequest$Type; -declare class DeleteAllPaymentsRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): DeleteAllPaymentsRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteAllPaymentsRequest): DeleteAllPaymentsRequest; - internalBinaryWrite(message: DeleteAllPaymentsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.DeleteAllPaymentsRequest - */ -export declare const DeleteAllPaymentsRequest: DeleteAllPaymentsRequest$Type; -declare class DeletePaymentResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): DeletePaymentResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeletePaymentResponse): DeletePaymentResponse; - internalBinaryWrite(message: DeletePaymentResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.DeletePaymentResponse - */ -export declare const DeletePaymentResponse: DeletePaymentResponse$Type; -declare class DeleteAllPaymentsResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): DeleteAllPaymentsResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteAllPaymentsResponse): DeleteAllPaymentsResponse; - internalBinaryWrite(message: DeleteAllPaymentsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.DeleteAllPaymentsResponse - */ -export declare const DeleteAllPaymentsResponse: DeleteAllPaymentsResponse$Type; -declare class AbandonChannelRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): AbandonChannelRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AbandonChannelRequest): AbandonChannelRequest; - internalBinaryWrite(message: AbandonChannelRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.AbandonChannelRequest - */ -export declare const AbandonChannelRequest: AbandonChannelRequest$Type; -declare class AbandonChannelResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): AbandonChannelResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AbandonChannelResponse): AbandonChannelResponse; - internalBinaryWrite(message: AbandonChannelResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.AbandonChannelResponse - */ -export declare const AbandonChannelResponse: AbandonChannelResponse$Type; -declare class DebugLevelRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): DebugLevelRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DebugLevelRequest): DebugLevelRequest; - internalBinaryWrite(message: DebugLevelRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.DebugLevelRequest - */ -export declare const DebugLevelRequest: DebugLevelRequest$Type; -declare class DebugLevelResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): DebugLevelResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DebugLevelResponse): DebugLevelResponse; - internalBinaryWrite(message: DebugLevelResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.DebugLevelResponse - */ -export declare const DebugLevelResponse: DebugLevelResponse$Type; -declare class PayReqString$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PayReqString; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PayReqString): PayReqString; - internalBinaryWrite(message: PayReqString, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PayReqString - */ -export declare const PayReqString: PayReqString$Type; -declare class PayReq$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PayReq; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PayReq): PayReq; - private binaryReadMap13; - internalBinaryWrite(message: PayReq, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PayReq - */ -export declare const PayReq: PayReq$Type; -declare class Feature$Type extends MessageType { - constructor(); - create(value?: PartialMessage): Feature; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Feature): Feature; - internalBinaryWrite(message: Feature, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.Feature - */ -export declare const Feature: Feature$Type; -declare class FeeReportRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): FeeReportRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FeeReportRequest): FeeReportRequest; - internalBinaryWrite(message: FeeReportRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.FeeReportRequest - */ -export declare const FeeReportRequest: FeeReportRequest$Type; -declare class ChannelFeeReport$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelFeeReport; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelFeeReport): ChannelFeeReport; - internalBinaryWrite(message: ChannelFeeReport, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelFeeReport - */ -export declare const ChannelFeeReport: ChannelFeeReport$Type; -declare class FeeReportResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): FeeReportResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FeeReportResponse): FeeReportResponse; - internalBinaryWrite(message: FeeReportResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.FeeReportResponse - */ -export declare const FeeReportResponse: FeeReportResponse$Type; -declare class PolicyUpdateRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PolicyUpdateRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PolicyUpdateRequest): PolicyUpdateRequest; - internalBinaryWrite(message: PolicyUpdateRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PolicyUpdateRequest - */ -export declare const PolicyUpdateRequest: PolicyUpdateRequest$Type; -declare class FailedUpdate$Type extends MessageType { - constructor(); - create(value?: PartialMessage): FailedUpdate; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FailedUpdate): FailedUpdate; - internalBinaryWrite(message: FailedUpdate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.FailedUpdate - */ -export declare const FailedUpdate: FailedUpdate$Type; -declare class PolicyUpdateResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PolicyUpdateResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PolicyUpdateResponse): PolicyUpdateResponse; - internalBinaryWrite(message: PolicyUpdateResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.PolicyUpdateResponse - */ -export declare const PolicyUpdateResponse: PolicyUpdateResponse$Type; -declare class ForwardingHistoryRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ForwardingHistoryRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ForwardingHistoryRequest): ForwardingHistoryRequest; - internalBinaryWrite(message: ForwardingHistoryRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ForwardingHistoryRequest - */ -export declare const ForwardingHistoryRequest: ForwardingHistoryRequest$Type; -declare class ForwardingEvent$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ForwardingEvent; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ForwardingEvent): ForwardingEvent; - internalBinaryWrite(message: ForwardingEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ForwardingEvent - */ -export declare const ForwardingEvent: ForwardingEvent$Type; -declare class ForwardingHistoryResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ForwardingHistoryResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ForwardingHistoryResponse): ForwardingHistoryResponse; - internalBinaryWrite(message: ForwardingHistoryResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ForwardingHistoryResponse - */ -export declare const ForwardingHistoryResponse: ForwardingHistoryResponse$Type; -declare class ExportChannelBackupRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ExportChannelBackupRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ExportChannelBackupRequest): ExportChannelBackupRequest; - internalBinaryWrite(message: ExportChannelBackupRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ExportChannelBackupRequest - */ -export declare const ExportChannelBackupRequest: ExportChannelBackupRequest$Type; -declare class ChannelBackup$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelBackup; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelBackup): ChannelBackup; - internalBinaryWrite(message: ChannelBackup, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelBackup - */ -export declare const ChannelBackup: ChannelBackup$Type; -declare class MultiChanBackup$Type extends MessageType { - constructor(); - create(value?: PartialMessage): MultiChanBackup; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MultiChanBackup): MultiChanBackup; - internalBinaryWrite(message: MultiChanBackup, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.MultiChanBackup - */ -export declare const MultiChanBackup: MultiChanBackup$Type; -declare class ChanBackupExportRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChanBackupExportRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChanBackupExportRequest): ChanBackupExportRequest; - internalBinaryWrite(message: ChanBackupExportRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChanBackupExportRequest - */ -export declare const ChanBackupExportRequest: ChanBackupExportRequest$Type; -declare class ChanBackupSnapshot$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChanBackupSnapshot; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChanBackupSnapshot): ChanBackupSnapshot; - internalBinaryWrite(message: ChanBackupSnapshot, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChanBackupSnapshot - */ -export declare const ChanBackupSnapshot: ChanBackupSnapshot$Type; -declare class ChannelBackups$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelBackups; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelBackups): ChannelBackups; - internalBinaryWrite(message: ChannelBackups, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelBackups - */ -export declare const ChannelBackups: ChannelBackups$Type; -declare class RestoreChanBackupRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): RestoreChanBackupRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RestoreChanBackupRequest): RestoreChanBackupRequest; - internalBinaryWrite(message: RestoreChanBackupRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.RestoreChanBackupRequest - */ -export declare const RestoreChanBackupRequest: RestoreChanBackupRequest$Type; -declare class RestoreBackupResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): RestoreBackupResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RestoreBackupResponse): RestoreBackupResponse; - internalBinaryWrite(message: RestoreBackupResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.RestoreBackupResponse - */ -export declare const RestoreBackupResponse: RestoreBackupResponse$Type; -declare class ChannelBackupSubscription$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelBackupSubscription; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelBackupSubscription): ChannelBackupSubscription; - internalBinaryWrite(message: ChannelBackupSubscription, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelBackupSubscription - */ -export declare const ChannelBackupSubscription: ChannelBackupSubscription$Type; -declare class VerifyChanBackupResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): VerifyChanBackupResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: VerifyChanBackupResponse): VerifyChanBackupResponse; - internalBinaryWrite(message: VerifyChanBackupResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.VerifyChanBackupResponse - */ -export declare const VerifyChanBackupResponse: VerifyChanBackupResponse$Type; -declare class MacaroonPermission$Type extends MessageType { - constructor(); - create(value?: PartialMessage): MacaroonPermission; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MacaroonPermission): MacaroonPermission; - internalBinaryWrite(message: MacaroonPermission, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.MacaroonPermission - */ -export declare const MacaroonPermission: MacaroonPermission$Type; -declare class BakeMacaroonRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): BakeMacaroonRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BakeMacaroonRequest): BakeMacaroonRequest; - internalBinaryWrite(message: BakeMacaroonRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.BakeMacaroonRequest - */ -export declare const BakeMacaroonRequest: BakeMacaroonRequest$Type; -declare class BakeMacaroonResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): BakeMacaroonResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BakeMacaroonResponse): BakeMacaroonResponse; - internalBinaryWrite(message: BakeMacaroonResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.BakeMacaroonResponse - */ -export declare const BakeMacaroonResponse: BakeMacaroonResponse$Type; -declare class ListMacaroonIDsRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListMacaroonIDsRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListMacaroonIDsRequest): ListMacaroonIDsRequest; - internalBinaryWrite(message: ListMacaroonIDsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListMacaroonIDsRequest - */ -export declare const ListMacaroonIDsRequest: ListMacaroonIDsRequest$Type; -declare class ListMacaroonIDsResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListMacaroonIDsResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListMacaroonIDsResponse): ListMacaroonIDsResponse; - internalBinaryWrite(message: ListMacaroonIDsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListMacaroonIDsResponse - */ -export declare const ListMacaroonIDsResponse: ListMacaroonIDsResponse$Type; -declare class DeleteMacaroonIDRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): DeleteMacaroonIDRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteMacaroonIDRequest): DeleteMacaroonIDRequest; - internalBinaryWrite(message: DeleteMacaroonIDRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.DeleteMacaroonIDRequest - */ -export declare const DeleteMacaroonIDRequest: DeleteMacaroonIDRequest$Type; -declare class DeleteMacaroonIDResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): DeleteMacaroonIDResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteMacaroonIDResponse): DeleteMacaroonIDResponse; - internalBinaryWrite(message: DeleteMacaroonIDResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.DeleteMacaroonIDResponse - */ -export declare const DeleteMacaroonIDResponse: DeleteMacaroonIDResponse$Type; -declare class MacaroonPermissionList$Type extends MessageType { - constructor(); - create(value?: PartialMessage): MacaroonPermissionList; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MacaroonPermissionList): MacaroonPermissionList; - internalBinaryWrite(message: MacaroonPermissionList, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.MacaroonPermissionList - */ -export declare const MacaroonPermissionList: MacaroonPermissionList$Type; -declare class ListPermissionsRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListPermissionsRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListPermissionsRequest): ListPermissionsRequest; - internalBinaryWrite(message: ListPermissionsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListPermissionsRequest - */ -export declare const ListPermissionsRequest: ListPermissionsRequest$Type; -declare class ListPermissionsResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ListPermissionsResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListPermissionsResponse): ListPermissionsResponse; - private binaryReadMap1; - internalBinaryWrite(message: ListPermissionsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ListPermissionsResponse - */ -export declare const ListPermissionsResponse: ListPermissionsResponse$Type; -declare class Failure$Type extends MessageType { - constructor(); - create(value?: PartialMessage): Failure; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Failure): Failure; - internalBinaryWrite(message: Failure, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.Failure - */ -export declare const Failure: Failure$Type; -declare class ChannelUpdate$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ChannelUpdate; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChannelUpdate): ChannelUpdate; - internalBinaryWrite(message: ChannelUpdate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelUpdate - */ -export declare const ChannelUpdate: ChannelUpdate$Type; -declare class MacaroonId$Type extends MessageType { - constructor(); - create(value?: PartialMessage): MacaroonId; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MacaroonId): MacaroonId; - internalBinaryWrite(message: MacaroonId, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.MacaroonId - */ -export declare const MacaroonId: MacaroonId$Type; -declare class Op$Type extends MessageType { - constructor(); - create(value?: PartialMessage): Op; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Op): Op; - internalBinaryWrite(message: Op, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.Op - */ -export declare const Op: Op$Type; -declare class CheckMacPermRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): CheckMacPermRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CheckMacPermRequest): CheckMacPermRequest; - internalBinaryWrite(message: CheckMacPermRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.CheckMacPermRequest - */ -export declare const CheckMacPermRequest: CheckMacPermRequest$Type; -declare class CheckMacPermResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): CheckMacPermResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CheckMacPermResponse): CheckMacPermResponse; - internalBinaryWrite(message: CheckMacPermResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.CheckMacPermResponse - */ -export declare const CheckMacPermResponse: CheckMacPermResponse$Type; -declare class RPCMiddlewareRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): RPCMiddlewareRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RPCMiddlewareRequest): RPCMiddlewareRequest; - internalBinaryWrite(message: RPCMiddlewareRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.RPCMiddlewareRequest - */ -export declare const RPCMiddlewareRequest: RPCMiddlewareRequest$Type; -declare class StreamAuth$Type extends MessageType { - constructor(); - create(value?: PartialMessage): StreamAuth; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StreamAuth): StreamAuth; - internalBinaryWrite(message: StreamAuth, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.StreamAuth - */ -export declare const StreamAuth: StreamAuth$Type; -declare class RPCMessage$Type extends MessageType { - constructor(); - create(value?: PartialMessage): RPCMessage; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RPCMessage): RPCMessage; - internalBinaryWrite(message: RPCMessage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.RPCMessage - */ -export declare const RPCMessage: RPCMessage$Type; -declare class RPCMiddlewareResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): RPCMiddlewareResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RPCMiddlewareResponse): RPCMiddlewareResponse; - internalBinaryWrite(message: RPCMiddlewareResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.RPCMiddlewareResponse - */ -export declare const RPCMiddlewareResponse: RPCMiddlewareResponse$Type; -declare class MiddlewareRegistration$Type extends MessageType { - constructor(); - create(value?: PartialMessage): MiddlewareRegistration; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MiddlewareRegistration): MiddlewareRegistration; - internalBinaryWrite(message: MiddlewareRegistration, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.MiddlewareRegistration - */ -export declare const MiddlewareRegistration: MiddlewareRegistration$Type; -declare class InterceptFeedback$Type extends MessageType { - constructor(); - create(value?: PartialMessage): InterceptFeedback; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: InterceptFeedback): InterceptFeedback; - internalBinaryWrite(message: InterceptFeedback, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message lnrpc.InterceptFeedback - */ -export declare const InterceptFeedback: InterceptFeedback$Type; -/** - * @generated ServiceType for protobuf service lnrpc.Lightning - */ -export declare const Lightning: any; -export {}; diff --git a/proto/lnd/lightning.js b/proto/lnd/lightning.js deleted file mode 100644 index a8a224cb..00000000 --- a/proto/lnd/lightning.js +++ /dev/null @@ -1,14457 +0,0 @@ -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "lightning.proto" (package "lnrpc", syntax proto3) -// tslint:disable -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "lightning.proto" (package "lnrpc", syntax proto3) -// tslint:disable -import { ServiceType } from "@protobuf-ts/runtime-rpc"; -import { WireType } from "@protobuf-ts/runtime"; -import { UnknownFieldHandler } from "@protobuf-ts/runtime"; -import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; -import { MessageType } from "@protobuf-ts/runtime"; -/** - * @generated from protobuf enum lnrpc.ChannelCloseSummary.ClosureType - */ -export var ChannelCloseSummary_ClosureType; -(function (ChannelCloseSummary_ClosureType) { - /** - * @generated from protobuf enum value: COOPERATIVE_CLOSE = 0; - */ - ChannelCloseSummary_ClosureType[ChannelCloseSummary_ClosureType["COOPERATIVE_CLOSE"] = 0] = "COOPERATIVE_CLOSE"; - /** - * @generated from protobuf enum value: LOCAL_FORCE_CLOSE = 1; - */ - ChannelCloseSummary_ClosureType[ChannelCloseSummary_ClosureType["LOCAL_FORCE_CLOSE"] = 1] = "LOCAL_FORCE_CLOSE"; - /** - * @generated from protobuf enum value: REMOTE_FORCE_CLOSE = 2; - */ - ChannelCloseSummary_ClosureType[ChannelCloseSummary_ClosureType["REMOTE_FORCE_CLOSE"] = 2] = "REMOTE_FORCE_CLOSE"; - /** - * @generated from protobuf enum value: BREACH_CLOSE = 3; - */ - ChannelCloseSummary_ClosureType[ChannelCloseSummary_ClosureType["BREACH_CLOSE"] = 3] = "BREACH_CLOSE"; - /** - * @generated from protobuf enum value: FUNDING_CANCELED = 4; - */ - ChannelCloseSummary_ClosureType[ChannelCloseSummary_ClosureType["FUNDING_CANCELED"] = 4] = "FUNDING_CANCELED"; - /** - * @generated from protobuf enum value: ABANDONED = 5; - */ - ChannelCloseSummary_ClosureType[ChannelCloseSummary_ClosureType["ABANDONED"] = 5] = "ABANDONED"; -})(ChannelCloseSummary_ClosureType || (ChannelCloseSummary_ClosureType = {})); -/** - * @generated from protobuf enum lnrpc.Peer.SyncType - */ -export var Peer_SyncType; -(function (Peer_SyncType) { - /** - * - * Denotes that we cannot determine the peer's current sync type. - * - * @generated from protobuf enum value: UNKNOWN_SYNC = 0; - */ - Peer_SyncType[Peer_SyncType["UNKNOWN_SYNC"] = 0] = "UNKNOWN_SYNC"; - /** - * - * Denotes that we are actively receiving new graph updates from the peer. - * - * @generated from protobuf enum value: ACTIVE_SYNC = 1; - */ - Peer_SyncType[Peer_SyncType["ACTIVE_SYNC"] = 1] = "ACTIVE_SYNC"; - /** - * - * Denotes that we are not receiving new graph updates from the peer. - * - * @generated from protobuf enum value: PASSIVE_SYNC = 2; - */ - Peer_SyncType[Peer_SyncType["PASSIVE_SYNC"] = 2] = "PASSIVE_SYNC"; - /** - * - * Denotes that this peer is pinned into an active sync. - * - * @generated from protobuf enum value: PINNED_SYNC = 3; - */ - Peer_SyncType[Peer_SyncType["PINNED_SYNC"] = 3] = "PINNED_SYNC"; -})(Peer_SyncType || (Peer_SyncType = {})); -/** - * @generated from protobuf enum lnrpc.PeerEvent.EventType - */ -export var PeerEvent_EventType; -(function (PeerEvent_EventType) { - /** - * @generated from protobuf enum value: PEER_ONLINE = 0; - */ - PeerEvent_EventType[PeerEvent_EventType["PEER_ONLINE"] = 0] = "PEER_ONLINE"; - /** - * @generated from protobuf enum value: PEER_OFFLINE = 1; - */ - PeerEvent_EventType[PeerEvent_EventType["PEER_OFFLINE"] = 1] = "PEER_OFFLINE"; -})(PeerEvent_EventType || (PeerEvent_EventType = {})); -/** - * - * There are three resolution states for the anchor: - * limbo, lost and recovered. Derive the current state - * from the limbo and recovered balances. - * - * @generated from protobuf enum lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorState - */ -export var PendingChannelsResponse_ForceClosedChannel_AnchorState; -(function (PendingChannelsResponse_ForceClosedChannel_AnchorState) { - /** - * The recovered_balance is zero and limbo_balance is non-zero. - * - * @generated from protobuf enum value: LIMBO = 0; - */ - PendingChannelsResponse_ForceClosedChannel_AnchorState[PendingChannelsResponse_ForceClosedChannel_AnchorState["LIMBO"] = 0] = "LIMBO"; - /** - * The recovered_balance is non-zero. - * - * @generated from protobuf enum value: RECOVERED = 1; - */ - PendingChannelsResponse_ForceClosedChannel_AnchorState[PendingChannelsResponse_ForceClosedChannel_AnchorState["RECOVERED"] = 1] = "RECOVERED"; - /** - * A state that is neither LIMBO nor RECOVERED. - * - * @generated from protobuf enum value: LOST = 2; - */ - PendingChannelsResponse_ForceClosedChannel_AnchorState[PendingChannelsResponse_ForceClosedChannel_AnchorState["LOST"] = 2] = "LOST"; -})(PendingChannelsResponse_ForceClosedChannel_AnchorState || (PendingChannelsResponse_ForceClosedChannel_AnchorState = {})); -/** - * @generated from protobuf enum lnrpc.ChannelEventUpdate.UpdateType - */ -export var ChannelEventUpdate_UpdateType; -(function (ChannelEventUpdate_UpdateType) { - /** - * @generated from protobuf enum value: OPEN_CHANNEL = 0; - */ - ChannelEventUpdate_UpdateType[ChannelEventUpdate_UpdateType["OPEN_CHANNEL"] = 0] = "OPEN_CHANNEL"; - /** - * @generated from protobuf enum value: CLOSED_CHANNEL = 1; - */ - ChannelEventUpdate_UpdateType[ChannelEventUpdate_UpdateType["CLOSED_CHANNEL"] = 1] = "CLOSED_CHANNEL"; - /** - * @generated from protobuf enum value: ACTIVE_CHANNEL = 2; - */ - ChannelEventUpdate_UpdateType[ChannelEventUpdate_UpdateType["ACTIVE_CHANNEL"] = 2] = "ACTIVE_CHANNEL"; - /** - * @generated from protobuf enum value: INACTIVE_CHANNEL = 3; - */ - ChannelEventUpdate_UpdateType[ChannelEventUpdate_UpdateType["INACTIVE_CHANNEL"] = 3] = "INACTIVE_CHANNEL"; - /** - * @generated from protobuf enum value: PENDING_OPEN_CHANNEL = 4; - */ - ChannelEventUpdate_UpdateType[ChannelEventUpdate_UpdateType["PENDING_OPEN_CHANNEL"] = 4] = "PENDING_OPEN_CHANNEL"; - /** - * @generated from protobuf enum value: FULLY_RESOLVED_CHANNEL = 5; - */ - ChannelEventUpdate_UpdateType[ChannelEventUpdate_UpdateType["FULLY_RESOLVED_CHANNEL"] = 5] = "FULLY_RESOLVED_CHANNEL"; -})(ChannelEventUpdate_UpdateType || (ChannelEventUpdate_UpdateType = {})); -/** - * @generated from protobuf enum lnrpc.Invoice.InvoiceState - */ -export var Invoice_InvoiceState; -(function (Invoice_InvoiceState) { - /** - * @generated from protobuf enum value: OPEN = 0; - */ - Invoice_InvoiceState[Invoice_InvoiceState["OPEN"] = 0] = "OPEN"; - /** - * @generated from protobuf enum value: SETTLED = 1; - */ - Invoice_InvoiceState[Invoice_InvoiceState["SETTLED"] = 1] = "SETTLED"; - /** - * @generated from protobuf enum value: CANCELED = 2; - */ - Invoice_InvoiceState[Invoice_InvoiceState["CANCELED"] = 2] = "CANCELED"; - /** - * @generated from protobuf enum value: ACCEPTED = 3; - */ - Invoice_InvoiceState[Invoice_InvoiceState["ACCEPTED"] = 3] = "ACCEPTED"; -})(Invoice_InvoiceState || (Invoice_InvoiceState = {})); -/** - * @generated from protobuf enum lnrpc.Payment.PaymentStatus - */ -export var Payment_PaymentStatus; -(function (Payment_PaymentStatus) { - /** - * @generated from protobuf enum value: UNKNOWN = 0; - */ - Payment_PaymentStatus[Payment_PaymentStatus["UNKNOWN"] = 0] = "UNKNOWN"; - /** - * @generated from protobuf enum value: IN_FLIGHT = 1; - */ - Payment_PaymentStatus[Payment_PaymentStatus["IN_FLIGHT"] = 1] = "IN_FLIGHT"; - /** - * @generated from protobuf enum value: SUCCEEDED = 2; - */ - Payment_PaymentStatus[Payment_PaymentStatus["SUCCEEDED"] = 2] = "SUCCEEDED"; - /** - * @generated from protobuf enum value: FAILED = 3; - */ - Payment_PaymentStatus[Payment_PaymentStatus["FAILED"] = 3] = "FAILED"; -})(Payment_PaymentStatus || (Payment_PaymentStatus = {})); -/** - * @generated from protobuf enum lnrpc.HTLCAttempt.HTLCStatus - */ -export var HTLCAttempt_HTLCStatus; -(function (HTLCAttempt_HTLCStatus) { - /** - * @generated from protobuf enum value: IN_FLIGHT = 0; - */ - HTLCAttempt_HTLCStatus[HTLCAttempt_HTLCStatus["IN_FLIGHT"] = 0] = "IN_FLIGHT"; - /** - * @generated from protobuf enum value: SUCCEEDED = 1; - */ - HTLCAttempt_HTLCStatus[HTLCAttempt_HTLCStatus["SUCCEEDED"] = 1] = "SUCCEEDED"; - /** - * @generated from protobuf enum value: FAILED = 2; - */ - HTLCAttempt_HTLCStatus[HTLCAttempt_HTLCStatus["FAILED"] = 2] = "FAILED"; -})(HTLCAttempt_HTLCStatus || (HTLCAttempt_HTLCStatus = {})); -/** - * @generated from protobuf enum lnrpc.Failure.FailureCode - */ -export var Failure_FailureCode; -(function (Failure_FailureCode) { - /** - * - * The numbers assigned in this enumeration match the failure codes as - * defined in BOLT #4. Because protobuf 3 requires enums to start with 0, - * a RESERVED value is added. - * - * @generated from protobuf enum value: RESERVED = 0; - */ - Failure_FailureCode[Failure_FailureCode["RESERVED"] = 0] = "RESERVED"; - /** - * @generated from protobuf enum value: INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS = 1; - */ - Failure_FailureCode[Failure_FailureCode["INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS"] = 1] = "INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS"; - /** - * @generated from protobuf enum value: INCORRECT_PAYMENT_AMOUNT = 2; - */ - Failure_FailureCode[Failure_FailureCode["INCORRECT_PAYMENT_AMOUNT"] = 2] = "INCORRECT_PAYMENT_AMOUNT"; - /** - * @generated from protobuf enum value: FINAL_INCORRECT_CLTV_EXPIRY = 3; - */ - Failure_FailureCode[Failure_FailureCode["FINAL_INCORRECT_CLTV_EXPIRY"] = 3] = "FINAL_INCORRECT_CLTV_EXPIRY"; - /** - * @generated from protobuf enum value: FINAL_INCORRECT_HTLC_AMOUNT = 4; - */ - Failure_FailureCode[Failure_FailureCode["FINAL_INCORRECT_HTLC_AMOUNT"] = 4] = "FINAL_INCORRECT_HTLC_AMOUNT"; - /** - * @generated from protobuf enum value: FINAL_EXPIRY_TOO_SOON = 5; - */ - Failure_FailureCode[Failure_FailureCode["FINAL_EXPIRY_TOO_SOON"] = 5] = "FINAL_EXPIRY_TOO_SOON"; - /** - * @generated from protobuf enum value: INVALID_REALM = 6; - */ - Failure_FailureCode[Failure_FailureCode["INVALID_REALM"] = 6] = "INVALID_REALM"; - /** - * @generated from protobuf enum value: EXPIRY_TOO_SOON = 7; - */ - Failure_FailureCode[Failure_FailureCode["EXPIRY_TOO_SOON"] = 7] = "EXPIRY_TOO_SOON"; - /** - * @generated from protobuf enum value: INVALID_ONION_VERSION = 8; - */ - Failure_FailureCode[Failure_FailureCode["INVALID_ONION_VERSION"] = 8] = "INVALID_ONION_VERSION"; - /** - * @generated from protobuf enum value: INVALID_ONION_HMAC = 9; - */ - Failure_FailureCode[Failure_FailureCode["INVALID_ONION_HMAC"] = 9] = "INVALID_ONION_HMAC"; - /** - * @generated from protobuf enum value: INVALID_ONION_KEY = 10; - */ - Failure_FailureCode[Failure_FailureCode["INVALID_ONION_KEY"] = 10] = "INVALID_ONION_KEY"; - /** - * @generated from protobuf enum value: AMOUNT_BELOW_MINIMUM = 11; - */ - Failure_FailureCode[Failure_FailureCode["AMOUNT_BELOW_MINIMUM"] = 11] = "AMOUNT_BELOW_MINIMUM"; - /** - * @generated from protobuf enum value: FEE_INSUFFICIENT = 12; - */ - Failure_FailureCode[Failure_FailureCode["FEE_INSUFFICIENT"] = 12] = "FEE_INSUFFICIENT"; - /** - * @generated from protobuf enum value: INCORRECT_CLTV_EXPIRY = 13; - */ - Failure_FailureCode[Failure_FailureCode["INCORRECT_CLTV_EXPIRY"] = 13] = "INCORRECT_CLTV_EXPIRY"; - /** - * @generated from protobuf enum value: CHANNEL_DISABLED = 14; - */ - Failure_FailureCode[Failure_FailureCode["CHANNEL_DISABLED"] = 14] = "CHANNEL_DISABLED"; - /** - * @generated from protobuf enum value: TEMPORARY_CHANNEL_FAILURE = 15; - */ - Failure_FailureCode[Failure_FailureCode["TEMPORARY_CHANNEL_FAILURE"] = 15] = "TEMPORARY_CHANNEL_FAILURE"; - /** - * @generated from protobuf enum value: REQUIRED_NODE_FEATURE_MISSING = 16; - */ - Failure_FailureCode[Failure_FailureCode["REQUIRED_NODE_FEATURE_MISSING"] = 16] = "REQUIRED_NODE_FEATURE_MISSING"; - /** - * @generated from protobuf enum value: REQUIRED_CHANNEL_FEATURE_MISSING = 17; - */ - Failure_FailureCode[Failure_FailureCode["REQUIRED_CHANNEL_FEATURE_MISSING"] = 17] = "REQUIRED_CHANNEL_FEATURE_MISSING"; - /** - * @generated from protobuf enum value: UNKNOWN_NEXT_PEER = 18; - */ - Failure_FailureCode[Failure_FailureCode["UNKNOWN_NEXT_PEER"] = 18] = "UNKNOWN_NEXT_PEER"; - /** - * @generated from protobuf enum value: TEMPORARY_NODE_FAILURE = 19; - */ - Failure_FailureCode[Failure_FailureCode["TEMPORARY_NODE_FAILURE"] = 19] = "TEMPORARY_NODE_FAILURE"; - /** - * @generated from protobuf enum value: PERMANENT_NODE_FAILURE = 20; - */ - Failure_FailureCode[Failure_FailureCode["PERMANENT_NODE_FAILURE"] = 20] = "PERMANENT_NODE_FAILURE"; - /** - * @generated from protobuf enum value: PERMANENT_CHANNEL_FAILURE = 21; - */ - Failure_FailureCode[Failure_FailureCode["PERMANENT_CHANNEL_FAILURE"] = 21] = "PERMANENT_CHANNEL_FAILURE"; - /** - * @generated from protobuf enum value: EXPIRY_TOO_FAR = 22; - */ - Failure_FailureCode[Failure_FailureCode["EXPIRY_TOO_FAR"] = 22] = "EXPIRY_TOO_FAR"; - /** - * @generated from protobuf enum value: MPP_TIMEOUT = 23; - */ - Failure_FailureCode[Failure_FailureCode["MPP_TIMEOUT"] = 23] = "MPP_TIMEOUT"; - /** - * @generated from protobuf enum value: INVALID_ONION_PAYLOAD = 24; - */ - Failure_FailureCode[Failure_FailureCode["INVALID_ONION_PAYLOAD"] = 24] = "INVALID_ONION_PAYLOAD"; - /** - * - * An internal error occurred. - * - * @generated from protobuf enum value: INTERNAL_FAILURE = 997; - */ - Failure_FailureCode[Failure_FailureCode["INTERNAL_FAILURE"] = 997] = "INTERNAL_FAILURE"; - /** - * - * The error source is known, but the failure itself couldn't be decoded. - * - * @generated from protobuf enum value: UNKNOWN_FAILURE = 998; - */ - Failure_FailureCode[Failure_FailureCode["UNKNOWN_FAILURE"] = 998] = "UNKNOWN_FAILURE"; - /** - * - * An unreadable failure result is returned if the received failure message - * cannot be decrypted. In that case the error source is unknown. - * - * @generated from protobuf enum value: UNREADABLE_FAILURE = 999; - */ - Failure_FailureCode[Failure_FailureCode["UNREADABLE_FAILURE"] = 999] = "UNREADABLE_FAILURE"; -})(Failure_FailureCode || (Failure_FailureCode = {})); -/** - * @generated from protobuf enum lnrpc.OutputScriptType - */ -export var OutputScriptType; -(function (OutputScriptType) { - /** - * @generated from protobuf enum value: SCRIPT_TYPE_PUBKEY_HASH = 0; - */ - OutputScriptType[OutputScriptType["SCRIPT_TYPE_PUBKEY_HASH"] = 0] = "SCRIPT_TYPE_PUBKEY_HASH"; - /** - * @generated from protobuf enum value: SCRIPT_TYPE_SCRIPT_HASH = 1; - */ - OutputScriptType[OutputScriptType["SCRIPT_TYPE_SCRIPT_HASH"] = 1] = "SCRIPT_TYPE_SCRIPT_HASH"; - /** - * @generated from protobuf enum value: SCRIPT_TYPE_WITNESS_V0_PUBKEY_HASH = 2; - */ - OutputScriptType[OutputScriptType["SCRIPT_TYPE_WITNESS_V0_PUBKEY_HASH"] = 2] = "SCRIPT_TYPE_WITNESS_V0_PUBKEY_HASH"; - /** - * @generated from protobuf enum value: SCRIPT_TYPE_WITNESS_V0_SCRIPT_HASH = 3; - */ - OutputScriptType[OutputScriptType["SCRIPT_TYPE_WITNESS_V0_SCRIPT_HASH"] = 3] = "SCRIPT_TYPE_WITNESS_V0_SCRIPT_HASH"; - /** - * @generated from protobuf enum value: SCRIPT_TYPE_PUBKEY = 4; - */ - OutputScriptType[OutputScriptType["SCRIPT_TYPE_PUBKEY"] = 4] = "SCRIPT_TYPE_PUBKEY"; - /** - * @generated from protobuf enum value: SCRIPT_TYPE_MULTISIG = 5; - */ - OutputScriptType[OutputScriptType["SCRIPT_TYPE_MULTISIG"] = 5] = "SCRIPT_TYPE_MULTISIG"; - /** - * @generated from protobuf enum value: SCRIPT_TYPE_NULLDATA = 6; - */ - OutputScriptType[OutputScriptType["SCRIPT_TYPE_NULLDATA"] = 6] = "SCRIPT_TYPE_NULLDATA"; - /** - * @generated from protobuf enum value: SCRIPT_TYPE_NON_STANDARD = 7; - */ - OutputScriptType[OutputScriptType["SCRIPT_TYPE_NON_STANDARD"] = 7] = "SCRIPT_TYPE_NON_STANDARD"; - /** - * @generated from protobuf enum value: SCRIPT_TYPE_WITNESS_UNKNOWN = 8; - */ - OutputScriptType[OutputScriptType["SCRIPT_TYPE_WITNESS_UNKNOWN"] = 8] = "SCRIPT_TYPE_WITNESS_UNKNOWN"; - /** - * @generated from protobuf enum value: SCRIPT_TYPE_WITNESS_V1_TAPROOT = 9; - */ - OutputScriptType[OutputScriptType["SCRIPT_TYPE_WITNESS_V1_TAPROOT"] = 9] = "SCRIPT_TYPE_WITNESS_V1_TAPROOT"; -})(OutputScriptType || (OutputScriptType = {})); -/** - * - * `AddressType` has to be one of: - * - * - `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0) - * - `np2wkh`: Pay to nested witness key hash (`NESTED_PUBKEY_HASH` = 1) - * - `p2tr`: Pay to taproot pubkey (`TAPROOT_PUBKEY` = 4) - * - * @generated from protobuf enum lnrpc.AddressType - */ -export var AddressType; -(function (AddressType) { - /** - * @generated from protobuf enum value: WITNESS_PUBKEY_HASH = 0; - */ - AddressType[AddressType["WITNESS_PUBKEY_HASH"] = 0] = "WITNESS_PUBKEY_HASH"; - /** - * @generated from protobuf enum value: NESTED_PUBKEY_HASH = 1; - */ - AddressType[AddressType["NESTED_PUBKEY_HASH"] = 1] = "NESTED_PUBKEY_HASH"; - /** - * @generated from protobuf enum value: UNUSED_WITNESS_PUBKEY_HASH = 2; - */ - AddressType[AddressType["UNUSED_WITNESS_PUBKEY_HASH"] = 2] = "UNUSED_WITNESS_PUBKEY_HASH"; - /** - * @generated from protobuf enum value: UNUSED_NESTED_PUBKEY_HASH = 3; - */ - AddressType[AddressType["UNUSED_NESTED_PUBKEY_HASH"] = 3] = "UNUSED_NESTED_PUBKEY_HASH"; - /** - * @generated from protobuf enum value: TAPROOT_PUBKEY = 4; - */ - AddressType[AddressType["TAPROOT_PUBKEY"] = 4] = "TAPROOT_PUBKEY"; - /** - * @generated from protobuf enum value: UNUSED_TAPROOT_PUBKEY = 5; - */ - AddressType[AddressType["UNUSED_TAPROOT_PUBKEY"] = 5] = "UNUSED_TAPROOT_PUBKEY"; -})(AddressType || (AddressType = {})); -/** - * @generated from protobuf enum lnrpc.CommitmentType - */ -export var CommitmentType; -(function (CommitmentType) { - /** - * - * Returned when the commitment type isn't known or unavailable. - * - * @generated from protobuf enum value: UNKNOWN_COMMITMENT_TYPE = 0; - */ - CommitmentType[CommitmentType["UNKNOWN_COMMITMENT_TYPE"] = 0] = "UNKNOWN_COMMITMENT_TYPE"; - /** - * - * A channel using the legacy commitment format having tweaked to_remote - * keys. - * - * @generated from protobuf enum value: LEGACY = 1; - */ - CommitmentType[CommitmentType["LEGACY"] = 1] = "LEGACY"; - /** - * - * A channel that uses the modern commitment format where the key in the - * output of the remote party does not change each state. This makes back - * up and recovery easier as when the channel is closed, the funds go - * directly to that key. - * - * @generated from protobuf enum value: STATIC_REMOTE_KEY = 2; - */ - CommitmentType[CommitmentType["STATIC_REMOTE_KEY"] = 2] = "STATIC_REMOTE_KEY"; - /** - * - * A channel that uses a commitment format that has anchor outputs on the - * commitments, allowing fee bumping after a force close transaction has - * been broadcast. - * - * @generated from protobuf enum value: ANCHORS = 3; - */ - CommitmentType[CommitmentType["ANCHORS"] = 3] = "ANCHORS"; - /** - * - * A channel that uses a commitment type that builds upon the anchors - * commitment format, but in addition requires a CLTV clause to spend outputs - * paying to the channel initiator. This is intended for use on leased channels - * to guarantee that the channel initiator has no incentives to close a leased - * channel before its maturity date. - * - * @generated from protobuf enum value: SCRIPT_ENFORCED_LEASE = 4; - */ - CommitmentType[CommitmentType["SCRIPT_ENFORCED_LEASE"] = 4] = "SCRIPT_ENFORCED_LEASE"; -})(CommitmentType || (CommitmentType = {})); -/** - * @generated from protobuf enum lnrpc.Initiator - */ -export var Initiator; -(function (Initiator) { - /** - * @generated from protobuf enum value: INITIATOR_UNKNOWN = 0; - */ - Initiator[Initiator["UNKNOWN"] = 0] = "UNKNOWN"; - /** - * @generated from protobuf enum value: INITIATOR_LOCAL = 1; - */ - Initiator[Initiator["LOCAL"] = 1] = "LOCAL"; - /** - * @generated from protobuf enum value: INITIATOR_REMOTE = 2; - */ - Initiator[Initiator["REMOTE"] = 2] = "REMOTE"; - /** - * @generated from protobuf enum value: INITIATOR_BOTH = 3; - */ - Initiator[Initiator["BOTH"] = 3] = "BOTH"; -})(Initiator || (Initiator = {})); -/** - * @generated from protobuf enum lnrpc.ResolutionType - */ -export var ResolutionType; -(function (ResolutionType) { - /** - * @generated from protobuf enum value: TYPE_UNKNOWN = 0; - */ - ResolutionType[ResolutionType["TYPE_UNKNOWN"] = 0] = "TYPE_UNKNOWN"; - /** - * We resolved an anchor output. - * - * @generated from protobuf enum value: ANCHOR = 1; - */ - ResolutionType[ResolutionType["ANCHOR"] = 1] = "ANCHOR"; - /** - * - * We are resolving an incoming htlc on chain. This if this htlc is - * claimed, we swept the incoming htlc with the preimage. If it is timed - * out, our peer swept the timeout path. - * - * @generated from protobuf enum value: INCOMING_HTLC = 2; - */ - ResolutionType[ResolutionType["INCOMING_HTLC"] = 2] = "INCOMING_HTLC"; - /** - * - * We are resolving an outgoing htlc on chain. If this htlc is claimed, - * the remote party swept the htlc with the preimage. If it is timed out, - * we swept it with the timeout path. - * - * @generated from protobuf enum value: OUTGOING_HTLC = 3; - */ - ResolutionType[ResolutionType["OUTGOING_HTLC"] = 3] = "OUTGOING_HTLC"; - /** - * We force closed and need to sweep our time locked commitment output. - * - * @generated from protobuf enum value: COMMIT = 4; - */ - ResolutionType[ResolutionType["COMMIT"] = 4] = "COMMIT"; -})(ResolutionType || (ResolutionType = {})); -/** - * @generated from protobuf enum lnrpc.ResolutionOutcome - */ -export var ResolutionOutcome; -(function (ResolutionOutcome) { - /** - * Outcome unknown. - * - * @generated from protobuf enum value: OUTCOME_UNKNOWN = 0; - */ - ResolutionOutcome[ResolutionOutcome["OUTCOME_UNKNOWN"] = 0] = "OUTCOME_UNKNOWN"; - /** - * An output was claimed on chain. - * - * @generated from protobuf enum value: CLAIMED = 1; - */ - ResolutionOutcome[ResolutionOutcome["CLAIMED"] = 1] = "CLAIMED"; - /** - * An output was left unclaimed on chain. - * - * @generated from protobuf enum value: UNCLAIMED = 2; - */ - ResolutionOutcome[ResolutionOutcome["UNCLAIMED"] = 2] = "UNCLAIMED"; - /** - * - * ResolverOutcomeAbandoned indicates that an output that we did not - * claim on chain, for example an anchor that we did not sweep and a - * third party claimed on chain, or a htlc that we could not decode - * so left unclaimed. - * - * @generated from protobuf enum value: ABANDONED = 3; - */ - ResolutionOutcome[ResolutionOutcome["ABANDONED"] = 3] = "ABANDONED"; - /** - * - * If we force closed our channel, our htlcs need to be claimed in two - * stages. This outcome represents the broadcast of a timeout or success - * transaction for this two stage htlc claim. - * - * @generated from protobuf enum value: FIRST_STAGE = 4; - */ - ResolutionOutcome[ResolutionOutcome["FIRST_STAGE"] = 4] = "FIRST_STAGE"; - /** - * A htlc was timed out on chain. - * - * @generated from protobuf enum value: TIMEOUT = 5; - */ - ResolutionOutcome[ResolutionOutcome["TIMEOUT"] = 5] = "TIMEOUT"; -})(ResolutionOutcome || (ResolutionOutcome = {})); -/** - * @generated from protobuf enum lnrpc.NodeMetricType - */ -export var NodeMetricType; -(function (NodeMetricType) { - /** - * @generated from protobuf enum value: UNKNOWN = 0; - */ - NodeMetricType[NodeMetricType["UNKNOWN"] = 0] = "UNKNOWN"; - /** - * @generated from protobuf enum value: BETWEENNESS_CENTRALITY = 1; - */ - NodeMetricType[NodeMetricType["BETWEENNESS_CENTRALITY"] = 1] = "BETWEENNESS_CENTRALITY"; -})(NodeMetricType || (NodeMetricType = {})); -/** - * @generated from protobuf enum lnrpc.InvoiceHTLCState - */ -export var InvoiceHTLCState; -(function (InvoiceHTLCState) { - /** - * @generated from protobuf enum value: ACCEPTED = 0; - */ - InvoiceHTLCState[InvoiceHTLCState["ACCEPTED"] = 0] = "ACCEPTED"; - /** - * @generated from protobuf enum value: SETTLED = 1; - */ - InvoiceHTLCState[InvoiceHTLCState["SETTLED"] = 1] = "SETTLED"; - /** - * @generated from protobuf enum value: CANCELED = 2; - */ - InvoiceHTLCState[InvoiceHTLCState["CANCELED"] = 2] = "CANCELED"; -})(InvoiceHTLCState || (InvoiceHTLCState = {})); -/** - * @generated from protobuf enum lnrpc.PaymentFailureReason - */ -export var PaymentFailureReason; -(function (PaymentFailureReason) { - /** - * - * Payment isn't failed (yet). - * - * @generated from protobuf enum value: FAILURE_REASON_NONE = 0; - */ - PaymentFailureReason[PaymentFailureReason["FAILURE_REASON_NONE"] = 0] = "FAILURE_REASON_NONE"; - /** - * - * There are more routes to try, but the payment timeout was exceeded. - * - * @generated from protobuf enum value: FAILURE_REASON_TIMEOUT = 1; - */ - PaymentFailureReason[PaymentFailureReason["FAILURE_REASON_TIMEOUT"] = 1] = "FAILURE_REASON_TIMEOUT"; - /** - * - * All possible routes were tried and failed permanently. Or were no - * routes to the destination at all. - * - * @generated from protobuf enum value: FAILURE_REASON_NO_ROUTE = 2; - */ - PaymentFailureReason[PaymentFailureReason["FAILURE_REASON_NO_ROUTE"] = 2] = "FAILURE_REASON_NO_ROUTE"; - /** - * - * A non-recoverable error has occured. - * - * @generated from protobuf enum value: FAILURE_REASON_ERROR = 3; - */ - PaymentFailureReason[PaymentFailureReason["FAILURE_REASON_ERROR"] = 3] = "FAILURE_REASON_ERROR"; - /** - * - * Payment details incorrect (unknown hash, invalid amt or - * invalid final cltv delta) - * - * @generated from protobuf enum value: FAILURE_REASON_INCORRECT_PAYMENT_DETAILS = 4; - */ - PaymentFailureReason[PaymentFailureReason["FAILURE_REASON_INCORRECT_PAYMENT_DETAILS"] = 4] = "FAILURE_REASON_INCORRECT_PAYMENT_DETAILS"; - /** - * - * Insufficient local balance. - * - * @generated from protobuf enum value: FAILURE_REASON_INSUFFICIENT_BALANCE = 5; - */ - PaymentFailureReason[PaymentFailureReason["FAILURE_REASON_INSUFFICIENT_BALANCE"] = 5] = "FAILURE_REASON_INSUFFICIENT_BALANCE"; -})(PaymentFailureReason || (PaymentFailureReason = {})); -/** - * @generated from protobuf enum lnrpc.FeatureBit - */ -export var FeatureBit; -(function (FeatureBit) { - /** - * @generated from protobuf enum value: DATALOSS_PROTECT_REQ = 0; - */ - FeatureBit[FeatureBit["DATALOSS_PROTECT_REQ"] = 0] = "DATALOSS_PROTECT_REQ"; - /** - * @generated from protobuf enum value: DATALOSS_PROTECT_OPT = 1; - */ - FeatureBit[FeatureBit["DATALOSS_PROTECT_OPT"] = 1] = "DATALOSS_PROTECT_OPT"; - /** - * @generated from protobuf enum value: INITIAL_ROUING_SYNC = 3; - */ - FeatureBit[FeatureBit["INITIAL_ROUING_SYNC"] = 3] = "INITIAL_ROUING_SYNC"; - /** - * @generated from protobuf enum value: UPFRONT_SHUTDOWN_SCRIPT_REQ = 4; - */ - FeatureBit[FeatureBit["UPFRONT_SHUTDOWN_SCRIPT_REQ"] = 4] = "UPFRONT_SHUTDOWN_SCRIPT_REQ"; - /** - * @generated from protobuf enum value: UPFRONT_SHUTDOWN_SCRIPT_OPT = 5; - */ - FeatureBit[FeatureBit["UPFRONT_SHUTDOWN_SCRIPT_OPT"] = 5] = "UPFRONT_SHUTDOWN_SCRIPT_OPT"; - /** - * @generated from protobuf enum value: GOSSIP_QUERIES_REQ = 6; - */ - FeatureBit[FeatureBit["GOSSIP_QUERIES_REQ"] = 6] = "GOSSIP_QUERIES_REQ"; - /** - * @generated from protobuf enum value: GOSSIP_QUERIES_OPT = 7; - */ - FeatureBit[FeatureBit["GOSSIP_QUERIES_OPT"] = 7] = "GOSSIP_QUERIES_OPT"; - /** - * @generated from protobuf enum value: TLV_ONION_REQ = 8; - */ - FeatureBit[FeatureBit["TLV_ONION_REQ"] = 8] = "TLV_ONION_REQ"; - /** - * @generated from protobuf enum value: TLV_ONION_OPT = 9; - */ - FeatureBit[FeatureBit["TLV_ONION_OPT"] = 9] = "TLV_ONION_OPT"; - /** - * @generated from protobuf enum value: EXT_GOSSIP_QUERIES_REQ = 10; - */ - FeatureBit[FeatureBit["EXT_GOSSIP_QUERIES_REQ"] = 10] = "EXT_GOSSIP_QUERIES_REQ"; - /** - * @generated from protobuf enum value: EXT_GOSSIP_QUERIES_OPT = 11; - */ - FeatureBit[FeatureBit["EXT_GOSSIP_QUERIES_OPT"] = 11] = "EXT_GOSSIP_QUERIES_OPT"; - /** - * @generated from protobuf enum value: STATIC_REMOTE_KEY_REQ = 12; - */ - FeatureBit[FeatureBit["STATIC_REMOTE_KEY_REQ"] = 12] = "STATIC_REMOTE_KEY_REQ"; - /** - * @generated from protobuf enum value: STATIC_REMOTE_KEY_OPT = 13; - */ - FeatureBit[FeatureBit["STATIC_REMOTE_KEY_OPT"] = 13] = "STATIC_REMOTE_KEY_OPT"; - /** - * @generated from protobuf enum value: PAYMENT_ADDR_REQ = 14; - */ - FeatureBit[FeatureBit["PAYMENT_ADDR_REQ"] = 14] = "PAYMENT_ADDR_REQ"; - /** - * @generated from protobuf enum value: PAYMENT_ADDR_OPT = 15; - */ - FeatureBit[FeatureBit["PAYMENT_ADDR_OPT"] = 15] = "PAYMENT_ADDR_OPT"; - /** - * @generated from protobuf enum value: MPP_REQ = 16; - */ - FeatureBit[FeatureBit["MPP_REQ"] = 16] = "MPP_REQ"; - /** - * @generated from protobuf enum value: MPP_OPT = 17; - */ - FeatureBit[FeatureBit["MPP_OPT"] = 17] = "MPP_OPT"; - /** - * @generated from protobuf enum value: WUMBO_CHANNELS_REQ = 18; - */ - FeatureBit[FeatureBit["WUMBO_CHANNELS_REQ"] = 18] = "WUMBO_CHANNELS_REQ"; - /** - * @generated from protobuf enum value: WUMBO_CHANNELS_OPT = 19; - */ - FeatureBit[FeatureBit["WUMBO_CHANNELS_OPT"] = 19] = "WUMBO_CHANNELS_OPT"; - /** - * @generated from protobuf enum value: ANCHORS_REQ = 20; - */ - FeatureBit[FeatureBit["ANCHORS_REQ"] = 20] = "ANCHORS_REQ"; - /** - * @generated from protobuf enum value: ANCHORS_OPT = 21; - */ - FeatureBit[FeatureBit["ANCHORS_OPT"] = 21] = "ANCHORS_OPT"; - /** - * @generated from protobuf enum value: ANCHORS_ZERO_FEE_HTLC_REQ = 22; - */ - FeatureBit[FeatureBit["ANCHORS_ZERO_FEE_HTLC_REQ"] = 22] = "ANCHORS_ZERO_FEE_HTLC_REQ"; - /** - * @generated from protobuf enum value: ANCHORS_ZERO_FEE_HTLC_OPT = 23; - */ - FeatureBit[FeatureBit["ANCHORS_ZERO_FEE_HTLC_OPT"] = 23] = "ANCHORS_ZERO_FEE_HTLC_OPT"; - /** - * @generated from protobuf enum value: AMP_REQ = 30; - */ - FeatureBit[FeatureBit["AMP_REQ"] = 30] = "AMP_REQ"; - /** - * @generated from protobuf enum value: AMP_OPT = 31; - */ - FeatureBit[FeatureBit["AMP_OPT"] = 31] = "AMP_OPT"; -})(FeatureBit || (FeatureBit = {})); -/** - * @generated from protobuf enum lnrpc.UpdateFailure - */ -export var UpdateFailure; -(function (UpdateFailure) { - /** - * @generated from protobuf enum value: UPDATE_FAILURE_UNKNOWN = 0; - */ - UpdateFailure[UpdateFailure["UNKNOWN"] = 0] = "UNKNOWN"; - /** - * @generated from protobuf enum value: UPDATE_FAILURE_PENDING = 1; - */ - UpdateFailure[UpdateFailure["PENDING"] = 1] = "PENDING"; - /** - * @generated from protobuf enum value: UPDATE_FAILURE_NOT_FOUND = 2; - */ - UpdateFailure[UpdateFailure["NOT_FOUND"] = 2] = "NOT_FOUND"; - /** - * @generated from protobuf enum value: UPDATE_FAILURE_INTERNAL_ERR = 3; - */ - UpdateFailure[UpdateFailure["INTERNAL_ERR"] = 3] = "INTERNAL_ERR"; - /** - * @generated from protobuf enum value: UPDATE_FAILURE_INVALID_PARAMETER = 4; - */ - UpdateFailure[UpdateFailure["INVALID_PARAMETER"] = 4] = "INVALID_PARAMETER"; -})(UpdateFailure || (UpdateFailure = {})); -// @generated message type with reflection information, may provide speed optimized methods -class LookupHtlcRequest$Type extends MessageType { - constructor() { - super("lnrpc.LookupHtlcRequest", [ - { no: 1, name: "chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "htlc_index", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { chanId: 0, htlcIndex: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 chan_id */ 1: - message.chanId = reader.uint64().toNumber(); - break; - case /* uint64 htlc_index */ 2: - message.htlcIndex = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 chan_id = 1; */ - if (message.chanId !== 0) - writer.tag(1, WireType.Varint).uint64(message.chanId); - /* uint64 htlc_index = 2; */ - if (message.htlcIndex !== 0) - writer.tag(2, WireType.Varint).uint64(message.htlcIndex); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.LookupHtlcRequest - */ -export const LookupHtlcRequest = new LookupHtlcRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class LookupHtlcResponse$Type extends MessageType { - constructor() { - super("lnrpc.LookupHtlcResponse", [ - { no: 1, name: "settled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 2, name: "offchain", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { settled: false, offchain: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool settled */ 1: - message.settled = reader.bool(); - break; - case /* bool offchain */ 2: - message.offchain = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool settled = 1; */ - if (message.settled !== false) - writer.tag(1, WireType.Varint).bool(message.settled); - /* bool offchain = 2; */ - if (message.offchain !== false) - writer.tag(2, WireType.Varint).bool(message.offchain); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.LookupHtlcResponse - */ -export const LookupHtlcResponse = new LookupHtlcResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SubscribeCustomMessagesRequest$Type extends MessageType { - constructor() { - super("lnrpc.SubscribeCustomMessagesRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.SubscribeCustomMessagesRequest - */ -export const SubscribeCustomMessagesRequest = new SubscribeCustomMessagesRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class CustomMessage$Type extends MessageType { - constructor() { - super("lnrpc.CustomMessage", [ - { no: 1, name: "peer", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "type", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 3, name: "data", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { peer: new Uint8Array(0), type: 0, data: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes peer */ 1: - message.peer = reader.bytes(); - break; - case /* uint32 type */ 2: - message.type = reader.uint32(); - break; - case /* bytes data */ 3: - message.data = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes peer = 1; */ - if (message.peer.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.peer); - /* uint32 type = 2; */ - if (message.type !== 0) - writer.tag(2, WireType.Varint).uint32(message.type); - /* bytes data = 3; */ - if (message.data.length) - writer.tag(3, WireType.LengthDelimited).bytes(message.data); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.CustomMessage - */ -export const CustomMessage = new CustomMessage$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SendCustomMessageRequest$Type extends MessageType { - constructor() { - super("lnrpc.SendCustomMessageRequest", [ - { no: 1, name: "peer", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "type", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 3, name: "data", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { peer: new Uint8Array(0), type: 0, data: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes peer */ 1: - message.peer = reader.bytes(); - break; - case /* uint32 type */ 2: - message.type = reader.uint32(); - break; - case /* bytes data */ 3: - message.data = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes peer = 1; */ - if (message.peer.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.peer); - /* uint32 type = 2; */ - if (message.type !== 0) - writer.tag(2, WireType.Varint).uint32(message.type); - /* bytes data = 3; */ - if (message.data.length) - writer.tag(3, WireType.LengthDelimited).bytes(message.data); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.SendCustomMessageRequest - */ -export const SendCustomMessageRequest = new SendCustomMessageRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SendCustomMessageResponse$Type extends MessageType { - constructor() { - super("lnrpc.SendCustomMessageResponse", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.SendCustomMessageResponse - */ -export const SendCustomMessageResponse = new SendCustomMessageResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class Utxo$Type extends MessageType { - constructor() { - super("lnrpc.Utxo", [ - { no: 1, name: "address_type", kind: "enum", T: () => ["lnrpc.AddressType", AddressType] }, - { no: 2, name: "address", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "amount_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "pk_script", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 5, name: "outpoint", kind: "message", T: () => OutPoint }, - { no: 6, name: "confirmations", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { addressType: 0, address: "", amountSat: 0, pkScript: "", confirmations: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.AddressType address_type */ 1: - message.addressType = reader.int32(); - break; - case /* string address */ 2: - message.address = reader.string(); - break; - case /* int64 amount_sat */ 3: - message.amountSat = reader.int64().toNumber(); - break; - case /* string pk_script */ 4: - message.pkScript = reader.string(); - break; - case /* lnrpc.OutPoint outpoint */ 5: - message.outpoint = OutPoint.internalBinaryRead(reader, reader.uint32(), options, message.outpoint); - break; - case /* int64 confirmations */ 6: - message.confirmations = reader.int64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.AddressType address_type = 1; */ - if (message.addressType !== 0) - writer.tag(1, WireType.Varint).int32(message.addressType); - /* string address = 2; */ - if (message.address !== "") - writer.tag(2, WireType.LengthDelimited).string(message.address); - /* int64 amount_sat = 3; */ - if (message.amountSat !== 0) - writer.tag(3, WireType.Varint).int64(message.amountSat); - /* string pk_script = 4; */ - if (message.pkScript !== "") - writer.tag(4, WireType.LengthDelimited).string(message.pkScript); - /* lnrpc.OutPoint outpoint = 5; */ - if (message.outpoint) - OutPoint.internalBinaryWrite(message.outpoint, writer.tag(5, WireType.LengthDelimited).fork(), options).join(); - /* int64 confirmations = 6; */ - if (message.confirmations !== 0) - writer.tag(6, WireType.Varint).int64(message.confirmations); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.Utxo - */ -export const Utxo = new Utxo$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class OutputDetail$Type extends MessageType { - constructor() { - super("lnrpc.OutputDetail", [ - { no: 1, name: "output_type", kind: "enum", T: () => ["lnrpc.OutputScriptType", OutputScriptType] }, - { no: 2, name: "address", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "pk_script", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 4, name: "output_index", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "amount", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "is_our_address", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { outputType: 0, address: "", pkScript: "", outputIndex: 0, amount: 0, isOurAddress: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.OutputScriptType output_type */ 1: - message.outputType = reader.int32(); - break; - case /* string address */ 2: - message.address = reader.string(); - break; - case /* string pk_script */ 3: - message.pkScript = reader.string(); - break; - case /* int64 output_index */ 4: - message.outputIndex = reader.int64().toNumber(); - break; - case /* int64 amount */ 5: - message.amount = reader.int64().toNumber(); - break; - case /* bool is_our_address */ 6: - message.isOurAddress = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.OutputScriptType output_type = 1; */ - if (message.outputType !== 0) - writer.tag(1, WireType.Varint).int32(message.outputType); - /* string address = 2; */ - if (message.address !== "") - writer.tag(2, WireType.LengthDelimited).string(message.address); - /* string pk_script = 3; */ - if (message.pkScript !== "") - writer.tag(3, WireType.LengthDelimited).string(message.pkScript); - /* int64 output_index = 4; */ - if (message.outputIndex !== 0) - writer.tag(4, WireType.Varint).int64(message.outputIndex); - /* int64 amount = 5; */ - if (message.amount !== 0) - writer.tag(5, WireType.Varint).int64(message.amount); - /* bool is_our_address = 6; */ - if (message.isOurAddress !== false) - writer.tag(6, WireType.Varint).bool(message.isOurAddress); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.OutputDetail - */ -export const OutputDetail = new OutputDetail$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class Transaction$Type extends MessageType { - constructor() { - super("lnrpc.Transaction", [ - { no: 1, name: "tx_hash", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "amount", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "num_confirmations", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 4, name: "block_hash", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 5, name: "block_height", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 6, name: "time_stamp", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "total_fees", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "dest_addresses", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }, - { no: 11, name: "output_details", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => OutputDetail }, - { no: 9, name: "raw_tx_hex", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 10, name: "label", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 12, name: "previous_outpoints", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PreviousOutPoint } - ]); - } - create(value) { - const message = { txHash: "", amount: 0, numConfirmations: 0, blockHash: "", blockHeight: 0, timeStamp: 0, totalFees: 0, destAddresses: [], outputDetails: [], rawTxHex: "", label: "", previousOutpoints: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string tx_hash */ 1: - message.txHash = reader.string(); - break; - case /* int64 amount */ 2: - message.amount = reader.int64().toNumber(); - break; - case /* int32 num_confirmations */ 3: - message.numConfirmations = reader.int32(); - break; - case /* string block_hash */ 4: - message.blockHash = reader.string(); - break; - case /* int32 block_height */ 5: - message.blockHeight = reader.int32(); - break; - case /* int64 time_stamp */ 6: - message.timeStamp = reader.int64().toNumber(); - break; - case /* int64 total_fees */ 7: - message.totalFees = reader.int64().toNumber(); - break; - case /* repeated string dest_addresses = 8 [deprecated = true];*/ 8: - message.destAddresses.push(reader.string()); - break; - case /* repeated lnrpc.OutputDetail output_details */ 11: - message.outputDetails.push(OutputDetail.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* string raw_tx_hex */ 9: - message.rawTxHex = reader.string(); - break; - case /* string label */ 10: - message.label = reader.string(); - break; - case /* repeated lnrpc.PreviousOutPoint previous_outpoints */ 12: - message.previousOutpoints.push(PreviousOutPoint.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string tx_hash = 1; */ - if (message.txHash !== "") - writer.tag(1, WireType.LengthDelimited).string(message.txHash); - /* int64 amount = 2; */ - if (message.amount !== 0) - writer.tag(2, WireType.Varint).int64(message.amount); - /* int32 num_confirmations = 3; */ - if (message.numConfirmations !== 0) - writer.tag(3, WireType.Varint).int32(message.numConfirmations); - /* string block_hash = 4; */ - if (message.blockHash !== "") - writer.tag(4, WireType.LengthDelimited).string(message.blockHash); - /* int32 block_height = 5; */ - if (message.blockHeight !== 0) - writer.tag(5, WireType.Varint).int32(message.blockHeight); - /* int64 time_stamp = 6; */ - if (message.timeStamp !== 0) - writer.tag(6, WireType.Varint).int64(message.timeStamp); - /* int64 total_fees = 7; */ - if (message.totalFees !== 0) - writer.tag(7, WireType.Varint).int64(message.totalFees); - /* repeated string dest_addresses = 8 [deprecated = true]; */ - for (let i = 0; i < message.destAddresses.length; i++) - writer.tag(8, WireType.LengthDelimited).string(message.destAddresses[i]); - /* repeated lnrpc.OutputDetail output_details = 11; */ - for (let i = 0; i < message.outputDetails.length; i++) - OutputDetail.internalBinaryWrite(message.outputDetails[i], writer.tag(11, WireType.LengthDelimited).fork(), options).join(); - /* string raw_tx_hex = 9; */ - if (message.rawTxHex !== "") - writer.tag(9, WireType.LengthDelimited).string(message.rawTxHex); - /* string label = 10; */ - if (message.label !== "") - writer.tag(10, WireType.LengthDelimited).string(message.label); - /* repeated lnrpc.PreviousOutPoint previous_outpoints = 12; */ - for (let i = 0; i < message.previousOutpoints.length; i++) - PreviousOutPoint.internalBinaryWrite(message.previousOutpoints[i], writer.tag(12, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.Transaction - */ -export const Transaction = new Transaction$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class GetTransactionsRequest$Type extends MessageType { - constructor() { - super("lnrpc.GetTransactionsRequest", [ - { no: 1, name: "start_height", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 2, name: "end_height", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 3, name: "account", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { startHeight: 0, endHeight: 0, account: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* int32 start_height */ 1: - message.startHeight = reader.int32(); - break; - case /* int32 end_height */ 2: - message.endHeight = reader.int32(); - break; - case /* string account */ 3: - message.account = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* int32 start_height = 1; */ - if (message.startHeight !== 0) - writer.tag(1, WireType.Varint).int32(message.startHeight); - /* int32 end_height = 2; */ - if (message.endHeight !== 0) - writer.tag(2, WireType.Varint).int32(message.endHeight); - /* string account = 3; */ - if (message.account !== "") - writer.tag(3, WireType.LengthDelimited).string(message.account); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.GetTransactionsRequest - */ -export const GetTransactionsRequest = new GetTransactionsRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class TransactionDetails$Type extends MessageType { - constructor() { - super("lnrpc.TransactionDetails", [ - { no: 1, name: "transactions", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Transaction } - ]); - } - create(value) { - const message = { transactions: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.Transaction transactions */ 1: - message.transactions.push(Transaction.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.Transaction transactions = 1; */ - for (let i = 0; i < message.transactions.length; i++) - Transaction.internalBinaryWrite(message.transactions[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.TransactionDetails - */ -export const TransactionDetails = new TransactionDetails$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class FeeLimit$Type extends MessageType { - constructor() { - super("lnrpc.FeeLimit", [ - { no: 1, name: "fixed", kind: "scalar", oneof: "limit", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "fixed_msat", kind: "scalar", oneof: "limit", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "percent", kind: "scalar", oneof: "limit", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { limit: { oneofKind: undefined } }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* int64 fixed */ 1: - message.limit = { - oneofKind: "fixed", - fixed: reader.int64().toNumber() - }; - break; - case /* int64 fixed_msat */ 3: - message.limit = { - oneofKind: "fixedMsat", - fixedMsat: reader.int64().toNumber() - }; - break; - case /* int64 percent */ 2: - message.limit = { - oneofKind: "percent", - percent: reader.int64().toNumber() - }; - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* int64 fixed = 1; */ - if (message.limit.oneofKind === "fixed") - writer.tag(1, WireType.Varint).int64(message.limit.fixed); - /* int64 fixed_msat = 3; */ - if (message.limit.oneofKind === "fixedMsat") - writer.tag(3, WireType.Varint).int64(message.limit.fixedMsat); - /* int64 percent = 2; */ - if (message.limit.oneofKind === "percent") - writer.tag(2, WireType.Varint).int64(message.limit.percent); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.FeeLimit - */ -export const FeeLimit = new FeeLimit$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SendRequest$Type extends MessageType { - constructor() { - super("lnrpc.SendRequest", [ - { no: 1, name: "dest", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "dest_string", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "amt", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 12, name: "amt_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "payment_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 5, name: "payment_hash_string", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 6, name: "payment_request", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 7, name: "final_cltv_delta", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 8, name: "fee_limit", kind: "message", T: () => FeeLimit }, - { no: 9, name: "outgoing_chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 13, name: "last_hop_pubkey", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 10, name: "cltv_limit", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 11, name: "dest_custom_records", kind: "map", K: 4 /*ScalarType.UINT64*/, V: { kind: "scalar", T: 12 /*ScalarType.BYTES*/ } }, - { no: 14, name: "allow_self_payment", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 15, name: "dest_features", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["lnrpc.FeatureBit", FeatureBit] }, - { no: 16, name: "payment_addr", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { dest: new Uint8Array(0), destString: "", amt: 0, amtMsat: 0, paymentHash: new Uint8Array(0), paymentHashString: "", paymentRequest: "", finalCltvDelta: 0, outgoingChanId: "0", lastHopPubkey: new Uint8Array(0), cltvLimit: 0, destCustomRecords: {}, allowSelfPayment: false, destFeatures: [], paymentAddr: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes dest */ 1: - message.dest = reader.bytes(); - break; - case /* string dest_string = 2 [deprecated = true];*/ 2: - message.destString = reader.string(); - break; - case /* int64 amt */ 3: - message.amt = reader.int64().toNumber(); - break; - case /* int64 amt_msat */ 12: - message.amtMsat = reader.int64().toNumber(); - break; - case /* bytes payment_hash */ 4: - message.paymentHash = reader.bytes(); - break; - case /* string payment_hash_string = 5 [deprecated = true];*/ 5: - message.paymentHashString = reader.string(); - break; - case /* string payment_request */ 6: - message.paymentRequest = reader.string(); - break; - case /* int32 final_cltv_delta */ 7: - message.finalCltvDelta = reader.int32(); - break; - case /* lnrpc.FeeLimit fee_limit */ 8: - message.feeLimit = FeeLimit.internalBinaryRead(reader, reader.uint32(), options, message.feeLimit); - break; - case /* uint64 outgoing_chan_id = 9 [jstype = JS_STRING];*/ 9: - message.outgoingChanId = reader.uint64().toString(); - break; - case /* bytes last_hop_pubkey */ 13: - message.lastHopPubkey = reader.bytes(); - break; - case /* uint32 cltv_limit */ 10: - message.cltvLimit = reader.uint32(); - break; - case /* map dest_custom_records */ 11: - this.binaryReadMap11(message.destCustomRecords, reader, options); - break; - case /* bool allow_self_payment */ 14: - message.allowSelfPayment = reader.bool(); - break; - case /* repeated lnrpc.FeatureBit dest_features */ 15: - if (wireType === WireType.LengthDelimited) - for (let e = reader.int32() + reader.pos; reader.pos < e;) - message.destFeatures.push(reader.int32()); - else - message.destFeatures.push(reader.int32()); - break; - case /* bytes payment_addr */ 16: - message.paymentAddr = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap11(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint64().toString(); - break; - case 2: - val = reader.bytes(); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.SendRequest.dest_custom_records"); - } - } - map[key ?? "0"] = val ?? new Uint8Array(0); - } - internalBinaryWrite(message, writer, options) { - /* bytes dest = 1; */ - if (message.dest.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.dest); - /* string dest_string = 2 [deprecated = true]; */ - if (message.destString !== "") - writer.tag(2, WireType.LengthDelimited).string(message.destString); - /* int64 amt = 3; */ - if (message.amt !== 0) - writer.tag(3, WireType.Varint).int64(message.amt); - /* int64 amt_msat = 12; */ - if (message.amtMsat !== 0) - writer.tag(12, WireType.Varint).int64(message.amtMsat); - /* bytes payment_hash = 4; */ - if (message.paymentHash.length) - writer.tag(4, WireType.LengthDelimited).bytes(message.paymentHash); - /* string payment_hash_string = 5 [deprecated = true]; */ - if (message.paymentHashString !== "") - writer.tag(5, WireType.LengthDelimited).string(message.paymentHashString); - /* string payment_request = 6; */ - if (message.paymentRequest !== "") - writer.tag(6, WireType.LengthDelimited).string(message.paymentRequest); - /* int32 final_cltv_delta = 7; */ - if (message.finalCltvDelta !== 0) - writer.tag(7, WireType.Varint).int32(message.finalCltvDelta); - /* lnrpc.FeeLimit fee_limit = 8; */ - if (message.feeLimit) - FeeLimit.internalBinaryWrite(message.feeLimit, writer.tag(8, WireType.LengthDelimited).fork(), options).join(); - /* uint64 outgoing_chan_id = 9 [jstype = JS_STRING]; */ - if (message.outgoingChanId !== "0") - writer.tag(9, WireType.Varint).uint64(message.outgoingChanId); - /* bytes last_hop_pubkey = 13; */ - if (message.lastHopPubkey.length) - writer.tag(13, WireType.LengthDelimited).bytes(message.lastHopPubkey); - /* uint32 cltv_limit = 10; */ - if (message.cltvLimit !== 0) - writer.tag(10, WireType.Varint).uint32(message.cltvLimit); - /* map dest_custom_records = 11; */ - for (let k of Object.keys(message.destCustomRecords)) - writer.tag(11, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint64(k).tag(2, WireType.LengthDelimited).bytes(message.destCustomRecords[k]).join(); - /* bool allow_self_payment = 14; */ - if (message.allowSelfPayment !== false) - writer.tag(14, WireType.Varint).bool(message.allowSelfPayment); - /* repeated lnrpc.FeatureBit dest_features = 15; */ - if (message.destFeatures.length) { - writer.tag(15, WireType.LengthDelimited).fork(); - for (let i = 0; i < message.destFeatures.length; i++) - writer.int32(message.destFeatures[i]); - writer.join(); - } - /* bytes payment_addr = 16; */ - if (message.paymentAddr.length) - writer.tag(16, WireType.LengthDelimited).bytes(message.paymentAddr); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.SendRequest - */ -export const SendRequest = new SendRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SendResponse$Type extends MessageType { - constructor() { - super("lnrpc.SendResponse", [ - { no: 1, name: "payment_error", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "payment_preimage", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "payment_route", kind: "message", T: () => Route }, - { no: 4, name: "payment_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { paymentError: "", paymentPreimage: new Uint8Array(0), paymentHash: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string payment_error */ 1: - message.paymentError = reader.string(); - break; - case /* bytes payment_preimage */ 2: - message.paymentPreimage = reader.bytes(); - break; - case /* lnrpc.Route payment_route */ 3: - message.paymentRoute = Route.internalBinaryRead(reader, reader.uint32(), options, message.paymentRoute); - break; - case /* bytes payment_hash */ 4: - message.paymentHash = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string payment_error = 1; */ - if (message.paymentError !== "") - writer.tag(1, WireType.LengthDelimited).string(message.paymentError); - /* bytes payment_preimage = 2; */ - if (message.paymentPreimage.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.paymentPreimage); - /* lnrpc.Route payment_route = 3; */ - if (message.paymentRoute) - Route.internalBinaryWrite(message.paymentRoute, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); - /* bytes payment_hash = 4; */ - if (message.paymentHash.length) - writer.tag(4, WireType.LengthDelimited).bytes(message.paymentHash); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.SendResponse - */ -export const SendResponse = new SendResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SendToRouteRequest$Type extends MessageType { - constructor() { - super("lnrpc.SendToRouteRequest", [ - { no: 1, name: "payment_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "payment_hash_string", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 4, name: "route", kind: "message", T: () => Route } - ]); - } - create(value) { - const message = { paymentHash: new Uint8Array(0), paymentHashString: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes payment_hash */ 1: - message.paymentHash = reader.bytes(); - break; - case /* string payment_hash_string = 2 [deprecated = true];*/ 2: - message.paymentHashString = reader.string(); - break; - case /* lnrpc.Route route */ 4: - message.route = Route.internalBinaryRead(reader, reader.uint32(), options, message.route); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes payment_hash = 1; */ - if (message.paymentHash.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.paymentHash); - /* string payment_hash_string = 2 [deprecated = true]; */ - if (message.paymentHashString !== "") - writer.tag(2, WireType.LengthDelimited).string(message.paymentHashString); - /* lnrpc.Route route = 4; */ - if (message.route) - Route.internalBinaryWrite(message.route, writer.tag(4, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.SendToRouteRequest - */ -export const SendToRouteRequest = new SendToRouteRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelAcceptRequest$Type extends MessageType { - constructor() { - super("lnrpc.ChannelAcceptRequest", [ - { no: 1, name: "node_pubkey", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "chain_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "pending_chan_id", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 4, name: "funding_amt", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "push_amt", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "dust_limit", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "max_value_in_flight", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "channel_reserve", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 9, name: "min_htlc", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 10, name: "fee_per_kw", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 11, name: "csv_delay", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 12, name: "max_accepted_htlcs", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 13, name: "channel_flags", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 14, name: "commitment_type", kind: "enum", T: () => ["lnrpc.CommitmentType", CommitmentType] }, - { no: 15, name: "wants_zero_conf", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 16, name: "wants_scid_alias", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { nodePubkey: new Uint8Array(0), chainHash: new Uint8Array(0), pendingChanId: new Uint8Array(0), fundingAmt: 0, pushAmt: 0, dustLimit: 0, maxValueInFlight: 0, channelReserve: 0, minHtlc: 0, feePerKw: 0, csvDelay: 0, maxAcceptedHtlcs: 0, channelFlags: 0, commitmentType: 0, wantsZeroConf: false, wantsScidAlias: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes node_pubkey */ 1: - message.nodePubkey = reader.bytes(); - break; - case /* bytes chain_hash */ 2: - message.chainHash = reader.bytes(); - break; - case /* bytes pending_chan_id */ 3: - message.pendingChanId = reader.bytes(); - break; - case /* uint64 funding_amt */ 4: - message.fundingAmt = reader.uint64().toNumber(); - break; - case /* uint64 push_amt */ 5: - message.pushAmt = reader.uint64().toNumber(); - break; - case /* uint64 dust_limit */ 6: - message.dustLimit = reader.uint64().toNumber(); - break; - case /* uint64 max_value_in_flight */ 7: - message.maxValueInFlight = reader.uint64().toNumber(); - break; - case /* uint64 channel_reserve */ 8: - message.channelReserve = reader.uint64().toNumber(); - break; - case /* uint64 min_htlc */ 9: - message.minHtlc = reader.uint64().toNumber(); - break; - case /* uint64 fee_per_kw */ 10: - message.feePerKw = reader.uint64().toNumber(); - break; - case /* uint32 csv_delay */ 11: - message.csvDelay = reader.uint32(); - break; - case /* uint32 max_accepted_htlcs */ 12: - message.maxAcceptedHtlcs = reader.uint32(); - break; - case /* uint32 channel_flags */ 13: - message.channelFlags = reader.uint32(); - break; - case /* lnrpc.CommitmentType commitment_type */ 14: - message.commitmentType = reader.int32(); - break; - case /* bool wants_zero_conf */ 15: - message.wantsZeroConf = reader.bool(); - break; - case /* bool wants_scid_alias */ 16: - message.wantsScidAlias = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes node_pubkey = 1; */ - if (message.nodePubkey.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.nodePubkey); - /* bytes chain_hash = 2; */ - if (message.chainHash.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.chainHash); - /* bytes pending_chan_id = 3; */ - if (message.pendingChanId.length) - writer.tag(3, WireType.LengthDelimited).bytes(message.pendingChanId); - /* uint64 funding_amt = 4; */ - if (message.fundingAmt !== 0) - writer.tag(4, WireType.Varint).uint64(message.fundingAmt); - /* uint64 push_amt = 5; */ - if (message.pushAmt !== 0) - writer.tag(5, WireType.Varint).uint64(message.pushAmt); - /* uint64 dust_limit = 6; */ - if (message.dustLimit !== 0) - writer.tag(6, WireType.Varint).uint64(message.dustLimit); - /* uint64 max_value_in_flight = 7; */ - if (message.maxValueInFlight !== 0) - writer.tag(7, WireType.Varint).uint64(message.maxValueInFlight); - /* uint64 channel_reserve = 8; */ - if (message.channelReserve !== 0) - writer.tag(8, WireType.Varint).uint64(message.channelReserve); - /* uint64 min_htlc = 9; */ - if (message.minHtlc !== 0) - writer.tag(9, WireType.Varint).uint64(message.minHtlc); - /* uint64 fee_per_kw = 10; */ - if (message.feePerKw !== 0) - writer.tag(10, WireType.Varint).uint64(message.feePerKw); - /* uint32 csv_delay = 11; */ - if (message.csvDelay !== 0) - writer.tag(11, WireType.Varint).uint32(message.csvDelay); - /* uint32 max_accepted_htlcs = 12; */ - if (message.maxAcceptedHtlcs !== 0) - writer.tag(12, WireType.Varint).uint32(message.maxAcceptedHtlcs); - /* uint32 channel_flags = 13; */ - if (message.channelFlags !== 0) - writer.tag(13, WireType.Varint).uint32(message.channelFlags); - /* lnrpc.CommitmentType commitment_type = 14; */ - if (message.commitmentType !== 0) - writer.tag(14, WireType.Varint).int32(message.commitmentType); - /* bool wants_zero_conf = 15; */ - if (message.wantsZeroConf !== false) - writer.tag(15, WireType.Varint).bool(message.wantsZeroConf); - /* bool wants_scid_alias = 16; */ - if (message.wantsScidAlias !== false) - writer.tag(16, WireType.Varint).bool(message.wantsScidAlias); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelAcceptRequest - */ -export const ChannelAcceptRequest = new ChannelAcceptRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelAcceptResponse$Type extends MessageType { - constructor() { - super("lnrpc.ChannelAcceptResponse", [ - { no: 1, name: "accept", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 2, name: "pending_chan_id", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "error", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 4, name: "upfront_shutdown", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 5, name: "csv_delay", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 6, name: "reserve_sat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "in_flight_max_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "max_htlc_count", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 9, name: "min_htlc_in", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 10, name: "min_accept_depth", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 11, name: "zero_conf", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { accept: false, pendingChanId: new Uint8Array(0), error: "", upfrontShutdown: "", csvDelay: 0, reserveSat: 0, inFlightMaxMsat: 0, maxHtlcCount: 0, minHtlcIn: 0, minAcceptDepth: 0, zeroConf: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool accept */ 1: - message.accept = reader.bool(); - break; - case /* bytes pending_chan_id */ 2: - message.pendingChanId = reader.bytes(); - break; - case /* string error */ 3: - message.error = reader.string(); - break; - case /* string upfront_shutdown */ 4: - message.upfrontShutdown = reader.string(); - break; - case /* uint32 csv_delay */ 5: - message.csvDelay = reader.uint32(); - break; - case /* uint64 reserve_sat */ 6: - message.reserveSat = reader.uint64().toNumber(); - break; - case /* uint64 in_flight_max_msat */ 7: - message.inFlightMaxMsat = reader.uint64().toNumber(); - break; - case /* uint32 max_htlc_count */ 8: - message.maxHtlcCount = reader.uint32(); - break; - case /* uint64 min_htlc_in */ 9: - message.minHtlcIn = reader.uint64().toNumber(); - break; - case /* uint32 min_accept_depth */ 10: - message.minAcceptDepth = reader.uint32(); - break; - case /* bool zero_conf */ 11: - message.zeroConf = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool accept = 1; */ - if (message.accept !== false) - writer.tag(1, WireType.Varint).bool(message.accept); - /* bytes pending_chan_id = 2; */ - if (message.pendingChanId.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.pendingChanId); - /* string error = 3; */ - if (message.error !== "") - writer.tag(3, WireType.LengthDelimited).string(message.error); - /* string upfront_shutdown = 4; */ - if (message.upfrontShutdown !== "") - writer.tag(4, WireType.LengthDelimited).string(message.upfrontShutdown); - /* uint32 csv_delay = 5; */ - if (message.csvDelay !== 0) - writer.tag(5, WireType.Varint).uint32(message.csvDelay); - /* uint64 reserve_sat = 6; */ - if (message.reserveSat !== 0) - writer.tag(6, WireType.Varint).uint64(message.reserveSat); - /* uint64 in_flight_max_msat = 7; */ - if (message.inFlightMaxMsat !== 0) - writer.tag(7, WireType.Varint).uint64(message.inFlightMaxMsat); - /* uint32 max_htlc_count = 8; */ - if (message.maxHtlcCount !== 0) - writer.tag(8, WireType.Varint).uint32(message.maxHtlcCount); - /* uint64 min_htlc_in = 9; */ - if (message.minHtlcIn !== 0) - writer.tag(9, WireType.Varint).uint64(message.minHtlcIn); - /* uint32 min_accept_depth = 10; */ - if (message.minAcceptDepth !== 0) - writer.tag(10, WireType.Varint).uint32(message.minAcceptDepth); - /* bool zero_conf = 11; */ - if (message.zeroConf !== false) - writer.tag(11, WireType.Varint).bool(message.zeroConf); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelAcceptResponse - */ -export const ChannelAcceptResponse = new ChannelAcceptResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelPoint$Type extends MessageType { - constructor() { - super("lnrpc.ChannelPoint", [ - { no: 1, name: "funding_txid_bytes", kind: "scalar", oneof: "fundingTxid", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "funding_txid_str", kind: "scalar", oneof: "fundingTxid", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "output_index", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } - ]); - } - create(value) { - const message = { fundingTxid: { oneofKind: undefined }, outputIndex: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes funding_txid_bytes */ 1: - message.fundingTxid = { - oneofKind: "fundingTxidBytes", - fundingTxidBytes: reader.bytes() - }; - break; - case /* string funding_txid_str */ 2: - message.fundingTxid = { - oneofKind: "fundingTxidStr", - fundingTxidStr: reader.string() - }; - break; - case /* uint32 output_index */ 3: - message.outputIndex = reader.uint32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes funding_txid_bytes = 1; */ - if (message.fundingTxid.oneofKind === "fundingTxidBytes") - writer.tag(1, WireType.LengthDelimited).bytes(message.fundingTxid.fundingTxidBytes); - /* string funding_txid_str = 2; */ - if (message.fundingTxid.oneofKind === "fundingTxidStr") - writer.tag(2, WireType.LengthDelimited).string(message.fundingTxid.fundingTxidStr); - /* uint32 output_index = 3; */ - if (message.outputIndex !== 0) - writer.tag(3, WireType.Varint).uint32(message.outputIndex); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelPoint - */ -export const ChannelPoint = new ChannelPoint$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class OutPoint$Type extends MessageType { - constructor() { - super("lnrpc.OutPoint", [ - { no: 1, name: "txid_bytes", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "txid_str", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "output_index", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } - ]); - } - create(value) { - const message = { txidBytes: new Uint8Array(0), txidStr: "", outputIndex: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes txid_bytes */ 1: - message.txidBytes = reader.bytes(); - break; - case /* string txid_str */ 2: - message.txidStr = reader.string(); - break; - case /* uint32 output_index */ 3: - message.outputIndex = reader.uint32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes txid_bytes = 1; */ - if (message.txidBytes.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.txidBytes); - /* string txid_str = 2; */ - if (message.txidStr !== "") - writer.tag(2, WireType.LengthDelimited).string(message.txidStr); - /* uint32 output_index = 3; */ - if (message.outputIndex !== 0) - writer.tag(3, WireType.Varint).uint32(message.outputIndex); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.OutPoint - */ -export const OutPoint = new OutPoint$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PreviousOutPoint$Type extends MessageType { - constructor() { - super("lnrpc.PreviousOutPoint", [ - { no: 1, name: "outpoint", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "is_our_output", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { outpoint: "", isOurOutput: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string outpoint */ 1: - message.outpoint = reader.string(); - break; - case /* bool is_our_output */ 2: - message.isOurOutput = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string outpoint = 1; */ - if (message.outpoint !== "") - writer.tag(1, WireType.LengthDelimited).string(message.outpoint); - /* bool is_our_output = 2; */ - if (message.isOurOutput !== false) - writer.tag(2, WireType.Varint).bool(message.isOurOutput); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PreviousOutPoint - */ -export const PreviousOutPoint = new PreviousOutPoint$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class LightningAddress$Type extends MessageType { - constructor() { - super("lnrpc.LightningAddress", [ - { no: 1, name: "pubkey", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "host", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { pubkey: "", host: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string pubkey */ 1: - message.pubkey = reader.string(); - break; - case /* string host */ 2: - message.host = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string pubkey = 1; */ - if (message.pubkey !== "") - writer.tag(1, WireType.LengthDelimited).string(message.pubkey); - /* string host = 2; */ - if (message.host !== "") - writer.tag(2, WireType.LengthDelimited).string(message.host); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.LightningAddress - */ -export const LightningAddress = new LightningAddress$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class EstimateFeeRequest$Type extends MessageType { - constructor() { - super("lnrpc.EstimateFeeRequest", [ - { no: 1, name: "AddrToAmount", kind: "map", jsonName: "AddrToAmount", K: 9 /*ScalarType.STRING*/, V: { kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ } }, - { no: 2, name: "target_conf", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 3, name: "min_confs", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 4, name: "spend_unconfirmed", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { addrToAmount: {}, targetConf: 0, minConfs: 0, spendUnconfirmed: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* map AddrToAmount = 1 [json_name = "AddrToAmount"];*/ 1: - this.binaryReadMap1(message.addrToAmount, reader, options); - break; - case /* int32 target_conf */ 2: - message.targetConf = reader.int32(); - break; - case /* int32 min_confs */ 3: - message.minConfs = reader.int32(); - break; - case /* bool spend_unconfirmed */ 4: - message.spendUnconfirmed = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap1(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.string(); - break; - case 2: - val = reader.int64().toNumber(); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.EstimateFeeRequest.AddrToAmount"); - } - } - map[key ?? ""] = val ?? 0; - } - internalBinaryWrite(message, writer, options) { - /* map AddrToAmount = 1 [json_name = "AddrToAmount"]; */ - for (let k of Object.keys(message.addrToAmount)) - writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.Varint).int64(message.addrToAmount[k]).join(); - /* int32 target_conf = 2; */ - if (message.targetConf !== 0) - writer.tag(2, WireType.Varint).int32(message.targetConf); - /* int32 min_confs = 3; */ - if (message.minConfs !== 0) - writer.tag(3, WireType.Varint).int32(message.minConfs); - /* bool spend_unconfirmed = 4; */ - if (message.spendUnconfirmed !== false) - writer.tag(4, WireType.Varint).bool(message.spendUnconfirmed); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.EstimateFeeRequest - */ -export const EstimateFeeRequest = new EstimateFeeRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class EstimateFeeResponse$Type extends MessageType { - constructor() { - super("lnrpc.EstimateFeeResponse", [ - { no: 1, name: "fee_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "feerate_sat_per_byte", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "sat_per_vbyte", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { feeSat: 0, feerateSatPerByte: 0, satPerVbyte: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* int64 fee_sat */ 1: - message.feeSat = reader.int64().toNumber(); - break; - case /* int64 feerate_sat_per_byte = 2 [deprecated = true];*/ 2: - message.feerateSatPerByte = reader.int64().toNumber(); - break; - case /* uint64 sat_per_vbyte */ 3: - message.satPerVbyte = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* int64 fee_sat = 1; */ - if (message.feeSat !== 0) - writer.tag(1, WireType.Varint).int64(message.feeSat); - /* int64 feerate_sat_per_byte = 2 [deprecated = true]; */ - if (message.feerateSatPerByte !== 0) - writer.tag(2, WireType.Varint).int64(message.feerateSatPerByte); - /* uint64 sat_per_vbyte = 3; */ - if (message.satPerVbyte !== 0) - writer.tag(3, WireType.Varint).uint64(message.satPerVbyte); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.EstimateFeeResponse - */ -export const EstimateFeeResponse = new EstimateFeeResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SendManyRequest$Type extends MessageType { - constructor() { - super("lnrpc.SendManyRequest", [ - { no: 1, name: "AddrToAmount", kind: "map", jsonName: "AddrToAmount", K: 9 /*ScalarType.STRING*/, V: { kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ } }, - { no: 3, name: "target_conf", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 4, name: "sat_per_vbyte", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "sat_per_byte", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "label", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 7, name: "min_confs", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 8, name: "spend_unconfirmed", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { addrToAmount: {}, targetConf: 0, satPerVbyte: 0, satPerByte: 0, label: "", minConfs: 0, spendUnconfirmed: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* map AddrToAmount = 1 [json_name = "AddrToAmount"];*/ 1: - this.binaryReadMap1(message.addrToAmount, reader, options); - break; - case /* int32 target_conf */ 3: - message.targetConf = reader.int32(); - break; - case /* uint64 sat_per_vbyte */ 4: - message.satPerVbyte = reader.uint64().toNumber(); - break; - case /* int64 sat_per_byte = 5 [deprecated = true];*/ 5: - message.satPerByte = reader.int64().toNumber(); - break; - case /* string label */ 6: - message.label = reader.string(); - break; - case /* int32 min_confs */ 7: - message.minConfs = reader.int32(); - break; - case /* bool spend_unconfirmed */ 8: - message.spendUnconfirmed = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap1(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.string(); - break; - case 2: - val = reader.int64().toNumber(); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.SendManyRequest.AddrToAmount"); - } - } - map[key ?? ""] = val ?? 0; - } - internalBinaryWrite(message, writer, options) { - /* map AddrToAmount = 1 [json_name = "AddrToAmount"]; */ - for (let k of Object.keys(message.addrToAmount)) - writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.Varint).int64(message.addrToAmount[k]).join(); - /* int32 target_conf = 3; */ - if (message.targetConf !== 0) - writer.tag(3, WireType.Varint).int32(message.targetConf); - /* uint64 sat_per_vbyte = 4; */ - if (message.satPerVbyte !== 0) - writer.tag(4, WireType.Varint).uint64(message.satPerVbyte); - /* int64 sat_per_byte = 5 [deprecated = true]; */ - if (message.satPerByte !== 0) - writer.tag(5, WireType.Varint).int64(message.satPerByte); - /* string label = 6; */ - if (message.label !== "") - writer.tag(6, WireType.LengthDelimited).string(message.label); - /* int32 min_confs = 7; */ - if (message.minConfs !== 0) - writer.tag(7, WireType.Varint).int32(message.minConfs); - /* bool spend_unconfirmed = 8; */ - if (message.spendUnconfirmed !== false) - writer.tag(8, WireType.Varint).bool(message.spendUnconfirmed); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.SendManyRequest - */ -export const SendManyRequest = new SendManyRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SendManyResponse$Type extends MessageType { - constructor() { - super("lnrpc.SendManyResponse", [ - { no: 1, name: "txid", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { txid: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string txid */ 1: - message.txid = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string txid = 1; */ - if (message.txid !== "") - writer.tag(1, WireType.LengthDelimited).string(message.txid); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.SendManyResponse - */ -export const SendManyResponse = new SendManyResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SendCoinsRequest$Type extends MessageType { - constructor() { - super("lnrpc.SendCoinsRequest", [ - { no: 1, name: "addr", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "amount", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "target_conf", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 4, name: "sat_per_vbyte", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "sat_per_byte", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "send_all", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 7, name: "label", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 8, name: "min_confs", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 9, name: "spend_unconfirmed", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { addr: "", amount: 0, targetConf: 0, satPerVbyte: 0, satPerByte: 0, sendAll: false, label: "", minConfs: 0, spendUnconfirmed: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string addr */ 1: - message.addr = reader.string(); - break; - case /* int64 amount */ 2: - message.amount = reader.int64().toNumber(); - break; - case /* int32 target_conf */ 3: - message.targetConf = reader.int32(); - break; - case /* uint64 sat_per_vbyte */ 4: - message.satPerVbyte = reader.uint64().toNumber(); - break; - case /* int64 sat_per_byte = 5 [deprecated = true];*/ 5: - message.satPerByte = reader.int64().toNumber(); - break; - case /* bool send_all */ 6: - message.sendAll = reader.bool(); - break; - case /* string label */ 7: - message.label = reader.string(); - break; - case /* int32 min_confs */ 8: - message.minConfs = reader.int32(); - break; - case /* bool spend_unconfirmed */ 9: - message.spendUnconfirmed = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string addr = 1; */ - if (message.addr !== "") - writer.tag(1, WireType.LengthDelimited).string(message.addr); - /* int64 amount = 2; */ - if (message.amount !== 0) - writer.tag(2, WireType.Varint).int64(message.amount); - /* int32 target_conf = 3; */ - if (message.targetConf !== 0) - writer.tag(3, WireType.Varint).int32(message.targetConf); - /* uint64 sat_per_vbyte = 4; */ - if (message.satPerVbyte !== 0) - writer.tag(4, WireType.Varint).uint64(message.satPerVbyte); - /* int64 sat_per_byte = 5 [deprecated = true]; */ - if (message.satPerByte !== 0) - writer.tag(5, WireType.Varint).int64(message.satPerByte); - /* bool send_all = 6; */ - if (message.sendAll !== false) - writer.tag(6, WireType.Varint).bool(message.sendAll); - /* string label = 7; */ - if (message.label !== "") - writer.tag(7, WireType.LengthDelimited).string(message.label); - /* int32 min_confs = 8; */ - if (message.minConfs !== 0) - writer.tag(8, WireType.Varint).int32(message.minConfs); - /* bool spend_unconfirmed = 9; */ - if (message.spendUnconfirmed !== false) - writer.tag(9, WireType.Varint).bool(message.spendUnconfirmed); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.SendCoinsRequest - */ -export const SendCoinsRequest = new SendCoinsRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SendCoinsResponse$Type extends MessageType { - constructor() { - super("lnrpc.SendCoinsResponse", [ - { no: 1, name: "txid", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { txid: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string txid */ 1: - message.txid = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string txid = 1; */ - if (message.txid !== "") - writer.tag(1, WireType.LengthDelimited).string(message.txid); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.SendCoinsResponse - */ -export const SendCoinsResponse = new SendCoinsResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListUnspentRequest$Type extends MessageType { - constructor() { - super("lnrpc.ListUnspentRequest", [ - { no: 1, name: "min_confs", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 2, name: "max_confs", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 3, name: "account", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { minConfs: 0, maxConfs: 0, account: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* int32 min_confs */ 1: - message.minConfs = reader.int32(); - break; - case /* int32 max_confs */ 2: - message.maxConfs = reader.int32(); - break; - case /* string account */ 3: - message.account = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* int32 min_confs = 1; */ - if (message.minConfs !== 0) - writer.tag(1, WireType.Varint).int32(message.minConfs); - /* int32 max_confs = 2; */ - if (message.maxConfs !== 0) - writer.tag(2, WireType.Varint).int32(message.maxConfs); - /* string account = 3; */ - if (message.account !== "") - writer.tag(3, WireType.LengthDelimited).string(message.account); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListUnspentRequest - */ -export const ListUnspentRequest = new ListUnspentRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListUnspentResponse$Type extends MessageType { - constructor() { - super("lnrpc.ListUnspentResponse", [ - { no: 1, name: "utxos", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Utxo } - ]); - } - create(value) { - const message = { utxos: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.Utxo utxos */ 1: - message.utxos.push(Utxo.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.Utxo utxos = 1; */ - for (let i = 0; i < message.utxos.length; i++) - Utxo.internalBinaryWrite(message.utxos[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListUnspentResponse - */ -export const ListUnspentResponse = new ListUnspentResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class NewAddressRequest$Type extends MessageType { - constructor() { - super("lnrpc.NewAddressRequest", [ - { no: 1, name: "type", kind: "enum", T: () => ["lnrpc.AddressType", AddressType] }, - { no: 2, name: "account", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { type: 0, account: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.AddressType type */ 1: - message.type = reader.int32(); - break; - case /* string account */ 2: - message.account = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.AddressType type = 1; */ - if (message.type !== 0) - writer.tag(1, WireType.Varint).int32(message.type); - /* string account = 2; */ - if (message.account !== "") - writer.tag(2, WireType.LengthDelimited).string(message.account); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.NewAddressRequest - */ -export const NewAddressRequest = new NewAddressRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class NewAddressResponse$Type extends MessageType { - constructor() { - super("lnrpc.NewAddressResponse", [ - { no: 1, name: "address", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { address: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string address */ 1: - message.address = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string address = 1; */ - if (message.address !== "") - writer.tag(1, WireType.LengthDelimited).string(message.address); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.NewAddressResponse - */ -export const NewAddressResponse = new NewAddressResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SignMessageRequest$Type extends MessageType { - constructor() { - super("lnrpc.SignMessageRequest", [ - { no: 1, name: "msg", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "single_hash", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { msg: new Uint8Array(0), singleHash: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes msg */ 1: - message.msg = reader.bytes(); - break; - case /* bool single_hash */ 2: - message.singleHash = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes msg = 1; */ - if (message.msg.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.msg); - /* bool single_hash = 2; */ - if (message.singleHash !== false) - writer.tag(2, WireType.Varint).bool(message.singleHash); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.SignMessageRequest - */ -export const SignMessageRequest = new SignMessageRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SignMessageResponse$Type extends MessageType { - constructor() { - super("lnrpc.SignMessageResponse", [ - { no: 1, name: "signature", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { signature: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string signature */ 1: - message.signature = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string signature = 1; */ - if (message.signature !== "") - writer.tag(1, WireType.LengthDelimited).string(message.signature); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.SignMessageResponse - */ -export const SignMessageResponse = new SignMessageResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class VerifyMessageRequest$Type extends MessageType { - constructor() { - super("lnrpc.VerifyMessageRequest", [ - { no: 1, name: "msg", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "signature", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { msg: new Uint8Array(0), signature: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes msg */ 1: - message.msg = reader.bytes(); - break; - case /* string signature */ 2: - message.signature = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes msg = 1; */ - if (message.msg.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.msg); - /* string signature = 2; */ - if (message.signature !== "") - writer.tag(2, WireType.LengthDelimited).string(message.signature); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.VerifyMessageRequest - */ -export const VerifyMessageRequest = new VerifyMessageRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class VerifyMessageResponse$Type extends MessageType { - constructor() { - super("lnrpc.VerifyMessageResponse", [ - { no: 1, name: "valid", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 2, name: "pubkey", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { valid: false, pubkey: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool valid */ 1: - message.valid = reader.bool(); - break; - case /* string pubkey */ 2: - message.pubkey = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool valid = 1; */ - if (message.valid !== false) - writer.tag(1, WireType.Varint).bool(message.valid); - /* string pubkey = 2; */ - if (message.pubkey !== "") - writer.tag(2, WireType.LengthDelimited).string(message.pubkey); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.VerifyMessageResponse - */ -export const VerifyMessageResponse = new VerifyMessageResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ConnectPeerRequest$Type extends MessageType { - constructor() { - super("lnrpc.ConnectPeerRequest", [ - { no: 1, name: "addr", kind: "message", T: () => LightningAddress }, - { no: 2, name: "perm", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 3, name: "timeout", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { perm: false, timeout: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.LightningAddress addr */ 1: - message.addr = LightningAddress.internalBinaryRead(reader, reader.uint32(), options, message.addr); - break; - case /* bool perm */ 2: - message.perm = reader.bool(); - break; - case /* uint64 timeout */ 3: - message.timeout = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.LightningAddress addr = 1; */ - if (message.addr) - LightningAddress.internalBinaryWrite(message.addr, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* bool perm = 2; */ - if (message.perm !== false) - writer.tag(2, WireType.Varint).bool(message.perm); - /* uint64 timeout = 3; */ - if (message.timeout !== 0) - writer.tag(3, WireType.Varint).uint64(message.timeout); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ConnectPeerRequest - */ -export const ConnectPeerRequest = new ConnectPeerRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ConnectPeerResponse$Type extends MessageType { - constructor() { - super("lnrpc.ConnectPeerResponse", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ConnectPeerResponse - */ -export const ConnectPeerResponse = new ConnectPeerResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class DisconnectPeerRequest$Type extends MessageType { - constructor() { - super("lnrpc.DisconnectPeerRequest", [ - { no: 1, name: "pub_key", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { pubKey: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string pub_key */ 1: - message.pubKey = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string pub_key = 1; */ - if (message.pubKey !== "") - writer.tag(1, WireType.LengthDelimited).string(message.pubKey); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.DisconnectPeerRequest - */ -export const DisconnectPeerRequest = new DisconnectPeerRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class DisconnectPeerResponse$Type extends MessageType { - constructor() { - super("lnrpc.DisconnectPeerResponse", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.DisconnectPeerResponse - */ -export const DisconnectPeerResponse = new DisconnectPeerResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class HTLC$Type extends MessageType { - constructor() { - super("lnrpc.HTLC", [ - { no: 1, name: "incoming", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 2, name: "amount", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "hash_lock", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 4, name: "expiration_height", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 5, name: "htlc_index", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "forwarding_channel", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "forwarding_htlc_index", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { incoming: false, amount: 0, hashLock: new Uint8Array(0), expirationHeight: 0, htlcIndex: 0, forwardingChannel: 0, forwardingHtlcIndex: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool incoming */ 1: - message.incoming = reader.bool(); - break; - case /* int64 amount */ 2: - message.amount = reader.int64().toNumber(); - break; - case /* bytes hash_lock */ 3: - message.hashLock = reader.bytes(); - break; - case /* uint32 expiration_height */ 4: - message.expirationHeight = reader.uint32(); - break; - case /* uint64 htlc_index */ 5: - message.htlcIndex = reader.uint64().toNumber(); - break; - case /* uint64 forwarding_channel */ 6: - message.forwardingChannel = reader.uint64().toNumber(); - break; - case /* uint64 forwarding_htlc_index */ 7: - message.forwardingHtlcIndex = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool incoming = 1; */ - if (message.incoming !== false) - writer.tag(1, WireType.Varint).bool(message.incoming); - /* int64 amount = 2; */ - if (message.amount !== 0) - writer.tag(2, WireType.Varint).int64(message.amount); - /* bytes hash_lock = 3; */ - if (message.hashLock.length) - writer.tag(3, WireType.LengthDelimited).bytes(message.hashLock); - /* uint32 expiration_height = 4; */ - if (message.expirationHeight !== 0) - writer.tag(4, WireType.Varint).uint32(message.expirationHeight); - /* uint64 htlc_index = 5; */ - if (message.htlcIndex !== 0) - writer.tag(5, WireType.Varint).uint64(message.htlcIndex); - /* uint64 forwarding_channel = 6; */ - if (message.forwardingChannel !== 0) - writer.tag(6, WireType.Varint).uint64(message.forwardingChannel); - /* uint64 forwarding_htlc_index = 7; */ - if (message.forwardingHtlcIndex !== 0) - writer.tag(7, WireType.Varint).uint64(message.forwardingHtlcIndex); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.HTLC - */ -export const HTLC = new HTLC$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelConstraints$Type extends MessageType { - constructor() { - super("lnrpc.ChannelConstraints", [ - { no: 1, name: "csv_delay", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 2, name: "chan_reserve_sat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "dust_limit_sat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "max_pending_amt_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "min_htlc_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "max_accepted_htlcs", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } - ]); - } - create(value) { - const message = { csvDelay: 0, chanReserveSat: 0, dustLimitSat: 0, maxPendingAmtMsat: 0, minHtlcMsat: 0, maxAcceptedHtlcs: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint32 csv_delay */ 1: - message.csvDelay = reader.uint32(); - break; - case /* uint64 chan_reserve_sat */ 2: - message.chanReserveSat = reader.uint64().toNumber(); - break; - case /* uint64 dust_limit_sat */ 3: - message.dustLimitSat = reader.uint64().toNumber(); - break; - case /* uint64 max_pending_amt_msat */ 4: - message.maxPendingAmtMsat = reader.uint64().toNumber(); - break; - case /* uint64 min_htlc_msat */ 5: - message.minHtlcMsat = reader.uint64().toNumber(); - break; - case /* uint32 max_accepted_htlcs */ 6: - message.maxAcceptedHtlcs = reader.uint32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint32 csv_delay = 1; */ - if (message.csvDelay !== 0) - writer.tag(1, WireType.Varint).uint32(message.csvDelay); - /* uint64 chan_reserve_sat = 2; */ - if (message.chanReserveSat !== 0) - writer.tag(2, WireType.Varint).uint64(message.chanReserveSat); - /* uint64 dust_limit_sat = 3; */ - if (message.dustLimitSat !== 0) - writer.tag(3, WireType.Varint).uint64(message.dustLimitSat); - /* uint64 max_pending_amt_msat = 4; */ - if (message.maxPendingAmtMsat !== 0) - writer.tag(4, WireType.Varint).uint64(message.maxPendingAmtMsat); - /* uint64 min_htlc_msat = 5; */ - if (message.minHtlcMsat !== 0) - writer.tag(5, WireType.Varint).uint64(message.minHtlcMsat); - /* uint32 max_accepted_htlcs = 6; */ - if (message.maxAcceptedHtlcs !== 0) - writer.tag(6, WireType.Varint).uint32(message.maxAcceptedHtlcs); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelConstraints - */ -export const ChannelConstraints = new ChannelConstraints$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class Channel$Type extends MessageType { - constructor() { - super("lnrpc.Channel", [ - { no: 1, name: "active", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 2, name: "remote_pubkey", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "channel_point", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 4, name: "chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 5, name: "capacity", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "local_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "remote_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "commit_fee", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 9, name: "commit_weight", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 10, name: "fee_per_kw", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 11, name: "unsettled_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 12, name: "total_satoshis_sent", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 13, name: "total_satoshis_received", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 14, name: "num_updates", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 15, name: "pending_htlcs", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => HTLC }, - { no: 16, name: "csv_delay", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 17, name: "private", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 18, name: "initiator", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 19, name: "chan_status_flags", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 20, name: "local_chan_reserve_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 21, name: "remote_chan_reserve_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 22, name: "static_remote_key", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 26, name: "commitment_type", kind: "enum", T: () => ["lnrpc.CommitmentType", CommitmentType] }, - { no: 23, name: "lifetime", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 24, name: "uptime", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 25, name: "close_address", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 27, name: "push_amount_sat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 28, name: "thaw_height", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 29, name: "local_constraints", kind: "message", T: () => ChannelConstraints }, - { no: 30, name: "remote_constraints", kind: "message", T: () => ChannelConstraints }, - { no: 31, name: "alias_scids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 32, name: "zero_conf", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 33, name: "zero_conf_confirmed_scid", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { active: false, remotePubkey: "", channelPoint: "", chanId: "0", capacity: 0, localBalance: 0, remoteBalance: 0, commitFee: 0, commitWeight: 0, feePerKw: 0, unsettledBalance: 0, totalSatoshisSent: 0, totalSatoshisReceived: 0, numUpdates: 0, pendingHtlcs: [], csvDelay: 0, private: false, initiator: false, chanStatusFlags: "", localChanReserveSat: 0, remoteChanReserveSat: 0, staticRemoteKey: false, commitmentType: 0, lifetime: 0, uptime: 0, closeAddress: "", pushAmountSat: 0, thawHeight: 0, aliasScids: [], zeroConf: false, zeroConfConfirmedScid: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool active */ 1: - message.active = reader.bool(); - break; - case /* string remote_pubkey */ 2: - message.remotePubkey = reader.string(); - break; - case /* string channel_point */ 3: - message.channelPoint = reader.string(); - break; - case /* uint64 chan_id = 4 [jstype = JS_STRING];*/ 4: - message.chanId = reader.uint64().toString(); - break; - case /* int64 capacity */ 5: - message.capacity = reader.int64().toNumber(); - break; - case /* int64 local_balance */ 6: - message.localBalance = reader.int64().toNumber(); - break; - case /* int64 remote_balance */ 7: - message.remoteBalance = reader.int64().toNumber(); - break; - case /* int64 commit_fee */ 8: - message.commitFee = reader.int64().toNumber(); - break; - case /* int64 commit_weight */ 9: - message.commitWeight = reader.int64().toNumber(); - break; - case /* int64 fee_per_kw */ 10: - message.feePerKw = reader.int64().toNumber(); - break; - case /* int64 unsettled_balance */ 11: - message.unsettledBalance = reader.int64().toNumber(); - break; - case /* int64 total_satoshis_sent */ 12: - message.totalSatoshisSent = reader.int64().toNumber(); - break; - case /* int64 total_satoshis_received */ 13: - message.totalSatoshisReceived = reader.int64().toNumber(); - break; - case /* uint64 num_updates */ 14: - message.numUpdates = reader.uint64().toNumber(); - break; - case /* repeated lnrpc.HTLC pending_htlcs */ 15: - message.pendingHtlcs.push(HTLC.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* uint32 csv_delay = 16 [deprecated = true];*/ 16: - message.csvDelay = reader.uint32(); - break; - case /* bool private */ 17: - message.private = reader.bool(); - break; - case /* bool initiator */ 18: - message.initiator = reader.bool(); - break; - case /* string chan_status_flags */ 19: - message.chanStatusFlags = reader.string(); - break; - case /* int64 local_chan_reserve_sat = 20 [deprecated = true];*/ 20: - message.localChanReserveSat = reader.int64().toNumber(); - break; - case /* int64 remote_chan_reserve_sat = 21 [deprecated = true];*/ 21: - message.remoteChanReserveSat = reader.int64().toNumber(); - break; - case /* bool static_remote_key = 22 [deprecated = true];*/ 22: - message.staticRemoteKey = reader.bool(); - break; - case /* lnrpc.CommitmentType commitment_type */ 26: - message.commitmentType = reader.int32(); - break; - case /* int64 lifetime */ 23: - message.lifetime = reader.int64().toNumber(); - break; - case /* int64 uptime */ 24: - message.uptime = reader.int64().toNumber(); - break; - case /* string close_address */ 25: - message.closeAddress = reader.string(); - break; - case /* uint64 push_amount_sat */ 27: - message.pushAmountSat = reader.uint64().toNumber(); - break; - case /* uint32 thaw_height */ 28: - message.thawHeight = reader.uint32(); - break; - case /* lnrpc.ChannelConstraints local_constraints */ 29: - message.localConstraints = ChannelConstraints.internalBinaryRead(reader, reader.uint32(), options, message.localConstraints); - break; - case /* lnrpc.ChannelConstraints remote_constraints */ 30: - message.remoteConstraints = ChannelConstraints.internalBinaryRead(reader, reader.uint32(), options, message.remoteConstraints); - break; - case /* repeated uint64 alias_scids */ 31: - if (wireType === WireType.LengthDelimited) - for (let e = reader.int32() + reader.pos; reader.pos < e;) - message.aliasScids.push(reader.uint64().toNumber()); - else - message.aliasScids.push(reader.uint64().toNumber()); - break; - case /* bool zero_conf */ 32: - message.zeroConf = reader.bool(); - break; - case /* uint64 zero_conf_confirmed_scid */ 33: - message.zeroConfConfirmedScid = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool active = 1; */ - if (message.active !== false) - writer.tag(1, WireType.Varint).bool(message.active); - /* string remote_pubkey = 2; */ - if (message.remotePubkey !== "") - writer.tag(2, WireType.LengthDelimited).string(message.remotePubkey); - /* string channel_point = 3; */ - if (message.channelPoint !== "") - writer.tag(3, WireType.LengthDelimited).string(message.channelPoint); - /* uint64 chan_id = 4 [jstype = JS_STRING]; */ - if (message.chanId !== "0") - writer.tag(4, WireType.Varint).uint64(message.chanId); - /* int64 capacity = 5; */ - if (message.capacity !== 0) - writer.tag(5, WireType.Varint).int64(message.capacity); - /* int64 local_balance = 6; */ - if (message.localBalance !== 0) - writer.tag(6, WireType.Varint).int64(message.localBalance); - /* int64 remote_balance = 7; */ - if (message.remoteBalance !== 0) - writer.tag(7, WireType.Varint).int64(message.remoteBalance); - /* int64 commit_fee = 8; */ - if (message.commitFee !== 0) - writer.tag(8, WireType.Varint).int64(message.commitFee); - /* int64 commit_weight = 9; */ - if (message.commitWeight !== 0) - writer.tag(9, WireType.Varint).int64(message.commitWeight); - /* int64 fee_per_kw = 10; */ - if (message.feePerKw !== 0) - writer.tag(10, WireType.Varint).int64(message.feePerKw); - /* int64 unsettled_balance = 11; */ - if (message.unsettledBalance !== 0) - writer.tag(11, WireType.Varint).int64(message.unsettledBalance); - /* int64 total_satoshis_sent = 12; */ - if (message.totalSatoshisSent !== 0) - writer.tag(12, WireType.Varint).int64(message.totalSatoshisSent); - /* int64 total_satoshis_received = 13; */ - if (message.totalSatoshisReceived !== 0) - writer.tag(13, WireType.Varint).int64(message.totalSatoshisReceived); - /* uint64 num_updates = 14; */ - if (message.numUpdates !== 0) - writer.tag(14, WireType.Varint).uint64(message.numUpdates); - /* repeated lnrpc.HTLC pending_htlcs = 15; */ - for (let i = 0; i < message.pendingHtlcs.length; i++) - HTLC.internalBinaryWrite(message.pendingHtlcs[i], writer.tag(15, WireType.LengthDelimited).fork(), options).join(); - /* uint32 csv_delay = 16 [deprecated = true]; */ - if (message.csvDelay !== 0) - writer.tag(16, WireType.Varint).uint32(message.csvDelay); - /* bool private = 17; */ - if (message.private !== false) - writer.tag(17, WireType.Varint).bool(message.private); - /* bool initiator = 18; */ - if (message.initiator !== false) - writer.tag(18, WireType.Varint).bool(message.initiator); - /* string chan_status_flags = 19; */ - if (message.chanStatusFlags !== "") - writer.tag(19, WireType.LengthDelimited).string(message.chanStatusFlags); - /* int64 local_chan_reserve_sat = 20 [deprecated = true]; */ - if (message.localChanReserveSat !== 0) - writer.tag(20, WireType.Varint).int64(message.localChanReserveSat); - /* int64 remote_chan_reserve_sat = 21 [deprecated = true]; */ - if (message.remoteChanReserveSat !== 0) - writer.tag(21, WireType.Varint).int64(message.remoteChanReserveSat); - /* bool static_remote_key = 22 [deprecated = true]; */ - if (message.staticRemoteKey !== false) - writer.tag(22, WireType.Varint).bool(message.staticRemoteKey); - /* lnrpc.CommitmentType commitment_type = 26; */ - if (message.commitmentType !== 0) - writer.tag(26, WireType.Varint).int32(message.commitmentType); - /* int64 lifetime = 23; */ - if (message.lifetime !== 0) - writer.tag(23, WireType.Varint).int64(message.lifetime); - /* int64 uptime = 24; */ - if (message.uptime !== 0) - writer.tag(24, WireType.Varint).int64(message.uptime); - /* string close_address = 25; */ - if (message.closeAddress !== "") - writer.tag(25, WireType.LengthDelimited).string(message.closeAddress); - /* uint64 push_amount_sat = 27; */ - if (message.pushAmountSat !== 0) - writer.tag(27, WireType.Varint).uint64(message.pushAmountSat); - /* uint32 thaw_height = 28; */ - if (message.thawHeight !== 0) - writer.tag(28, WireType.Varint).uint32(message.thawHeight); - /* lnrpc.ChannelConstraints local_constraints = 29; */ - if (message.localConstraints) - ChannelConstraints.internalBinaryWrite(message.localConstraints, writer.tag(29, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.ChannelConstraints remote_constraints = 30; */ - if (message.remoteConstraints) - ChannelConstraints.internalBinaryWrite(message.remoteConstraints, writer.tag(30, WireType.LengthDelimited).fork(), options).join(); - /* repeated uint64 alias_scids = 31; */ - if (message.aliasScids.length) { - writer.tag(31, WireType.LengthDelimited).fork(); - for (let i = 0; i < message.aliasScids.length; i++) - writer.uint64(message.aliasScids[i]); - writer.join(); - } - /* bool zero_conf = 32; */ - if (message.zeroConf !== false) - writer.tag(32, WireType.Varint).bool(message.zeroConf); - /* uint64 zero_conf_confirmed_scid = 33; */ - if (message.zeroConfConfirmedScid !== 0) - writer.tag(33, WireType.Varint).uint64(message.zeroConfConfirmedScid); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.Channel - */ -export const Channel = new Channel$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListChannelsRequest$Type extends MessageType { - constructor() { - super("lnrpc.ListChannelsRequest", [ - { no: 1, name: "active_only", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 2, name: "inactive_only", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 3, name: "public_only", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 4, name: "private_only", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 5, name: "peer", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { activeOnly: false, inactiveOnly: false, publicOnly: false, privateOnly: false, peer: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool active_only */ 1: - message.activeOnly = reader.bool(); - break; - case /* bool inactive_only */ 2: - message.inactiveOnly = reader.bool(); - break; - case /* bool public_only */ 3: - message.publicOnly = reader.bool(); - break; - case /* bool private_only */ 4: - message.privateOnly = reader.bool(); - break; - case /* bytes peer */ 5: - message.peer = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool active_only = 1; */ - if (message.activeOnly !== false) - writer.tag(1, WireType.Varint).bool(message.activeOnly); - /* bool inactive_only = 2; */ - if (message.inactiveOnly !== false) - writer.tag(2, WireType.Varint).bool(message.inactiveOnly); - /* bool public_only = 3; */ - if (message.publicOnly !== false) - writer.tag(3, WireType.Varint).bool(message.publicOnly); - /* bool private_only = 4; */ - if (message.privateOnly !== false) - writer.tag(4, WireType.Varint).bool(message.privateOnly); - /* bytes peer = 5; */ - if (message.peer.length) - writer.tag(5, WireType.LengthDelimited).bytes(message.peer); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListChannelsRequest - */ -export const ListChannelsRequest = new ListChannelsRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListChannelsResponse$Type extends MessageType { - constructor() { - super("lnrpc.ListChannelsResponse", [ - { no: 11, name: "channels", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Channel } - ]); - } - create(value) { - const message = { channels: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.Channel channels */ 11: - message.channels.push(Channel.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.Channel channels = 11; */ - for (let i = 0; i < message.channels.length; i++) - Channel.internalBinaryWrite(message.channels[i], writer.tag(11, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListChannelsResponse - */ -export const ListChannelsResponse = new ListChannelsResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class AliasMap$Type extends MessageType { - constructor() { - super("lnrpc.AliasMap", [ - { no: 1, name: "base_scid", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "aliases", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { baseScid: 0, aliases: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 base_scid */ 1: - message.baseScid = reader.uint64().toNumber(); - break; - case /* repeated uint64 aliases */ 2: - if (wireType === WireType.LengthDelimited) - for (let e = reader.int32() + reader.pos; reader.pos < e;) - message.aliases.push(reader.uint64().toNumber()); - else - message.aliases.push(reader.uint64().toNumber()); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 base_scid = 1; */ - if (message.baseScid !== 0) - writer.tag(1, WireType.Varint).uint64(message.baseScid); - /* repeated uint64 aliases = 2; */ - if (message.aliases.length) { - writer.tag(2, WireType.LengthDelimited).fork(); - for (let i = 0; i < message.aliases.length; i++) - writer.uint64(message.aliases[i]); - writer.join(); - } - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.AliasMap - */ -export const AliasMap = new AliasMap$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListAliasesRequest$Type extends MessageType { - constructor() { - super("lnrpc.ListAliasesRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListAliasesRequest - */ -export const ListAliasesRequest = new ListAliasesRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListAliasesResponse$Type extends MessageType { - constructor() { - super("lnrpc.ListAliasesResponse", [ - { no: 1, name: "alias_maps", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => AliasMap } - ]); - } - create(value) { - const message = { aliasMaps: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.AliasMap alias_maps */ 1: - message.aliasMaps.push(AliasMap.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.AliasMap alias_maps = 1; */ - for (let i = 0; i < message.aliasMaps.length; i++) - AliasMap.internalBinaryWrite(message.aliasMaps[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListAliasesResponse - */ -export const ListAliasesResponse = new ListAliasesResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelCloseSummary$Type extends MessageType { - constructor() { - super("lnrpc.ChannelCloseSummary", [ - { no: 1, name: "channel_point", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 3, name: "chain_hash", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 4, name: "closing_tx_hash", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 5, name: "remote_pubkey", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 6, name: "capacity", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "close_height", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 8, name: "settled_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 9, name: "time_locked_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 10, name: "close_type", kind: "enum", T: () => ["lnrpc.ChannelCloseSummary.ClosureType", ChannelCloseSummary_ClosureType] }, - { no: 11, name: "open_initiator", kind: "enum", T: () => ["lnrpc.Initiator", Initiator, "INITIATOR_"] }, - { no: 12, name: "close_initiator", kind: "enum", T: () => ["lnrpc.Initiator", Initiator, "INITIATOR_"] }, - { no: 13, name: "resolutions", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Resolution }, - { no: 14, name: "alias_scids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 15, name: "zero_conf_confirmed_scid", kind: "scalar", T: 4 /*ScalarType.UINT64*/ } - ]); - } - create(value) { - const message = { channelPoint: "", chanId: "0", chainHash: "", closingTxHash: "", remotePubkey: "", capacity: 0, closeHeight: 0, settledBalance: 0, timeLockedBalance: 0, closeType: 0, openInitiator: 0, closeInitiator: 0, resolutions: [], aliasScids: [], zeroConfConfirmedScid: "0" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string channel_point */ 1: - message.channelPoint = reader.string(); - break; - case /* uint64 chan_id = 2 [jstype = JS_STRING];*/ 2: - message.chanId = reader.uint64().toString(); - break; - case /* string chain_hash */ 3: - message.chainHash = reader.string(); - break; - case /* string closing_tx_hash */ 4: - message.closingTxHash = reader.string(); - break; - case /* string remote_pubkey */ 5: - message.remotePubkey = reader.string(); - break; - case /* int64 capacity */ 6: - message.capacity = reader.int64().toNumber(); - break; - case /* uint32 close_height */ 7: - message.closeHeight = reader.uint32(); - break; - case /* int64 settled_balance */ 8: - message.settledBalance = reader.int64().toNumber(); - break; - case /* int64 time_locked_balance */ 9: - message.timeLockedBalance = reader.int64().toNumber(); - break; - case /* lnrpc.ChannelCloseSummary.ClosureType close_type */ 10: - message.closeType = reader.int32(); - break; - case /* lnrpc.Initiator open_initiator */ 11: - message.openInitiator = reader.int32(); - break; - case /* lnrpc.Initiator close_initiator */ 12: - message.closeInitiator = reader.int32(); - break; - case /* repeated lnrpc.Resolution resolutions */ 13: - message.resolutions.push(Resolution.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* repeated uint64 alias_scids */ 14: - if (wireType === WireType.LengthDelimited) - for (let e = reader.int32() + reader.pos; reader.pos < e;) - message.aliasScids.push(reader.uint64().toNumber()); - else - message.aliasScids.push(reader.uint64().toNumber()); - break; - case /* uint64 zero_conf_confirmed_scid = 15 [jstype = JS_STRING];*/ 15: - message.zeroConfConfirmedScid = reader.uint64().toString(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string channel_point = 1; */ - if (message.channelPoint !== "") - writer.tag(1, WireType.LengthDelimited).string(message.channelPoint); - /* uint64 chan_id = 2 [jstype = JS_STRING]; */ - if (message.chanId !== "0") - writer.tag(2, WireType.Varint).uint64(message.chanId); - /* string chain_hash = 3; */ - if (message.chainHash !== "") - writer.tag(3, WireType.LengthDelimited).string(message.chainHash); - /* string closing_tx_hash = 4; */ - if (message.closingTxHash !== "") - writer.tag(4, WireType.LengthDelimited).string(message.closingTxHash); - /* string remote_pubkey = 5; */ - if (message.remotePubkey !== "") - writer.tag(5, WireType.LengthDelimited).string(message.remotePubkey); - /* int64 capacity = 6; */ - if (message.capacity !== 0) - writer.tag(6, WireType.Varint).int64(message.capacity); - /* uint32 close_height = 7; */ - if (message.closeHeight !== 0) - writer.tag(7, WireType.Varint).uint32(message.closeHeight); - /* int64 settled_balance = 8; */ - if (message.settledBalance !== 0) - writer.tag(8, WireType.Varint).int64(message.settledBalance); - /* int64 time_locked_balance = 9; */ - if (message.timeLockedBalance !== 0) - writer.tag(9, WireType.Varint).int64(message.timeLockedBalance); - /* lnrpc.ChannelCloseSummary.ClosureType close_type = 10; */ - if (message.closeType !== 0) - writer.tag(10, WireType.Varint).int32(message.closeType); - /* lnrpc.Initiator open_initiator = 11; */ - if (message.openInitiator !== 0) - writer.tag(11, WireType.Varint).int32(message.openInitiator); - /* lnrpc.Initiator close_initiator = 12; */ - if (message.closeInitiator !== 0) - writer.tag(12, WireType.Varint).int32(message.closeInitiator); - /* repeated lnrpc.Resolution resolutions = 13; */ - for (let i = 0; i < message.resolutions.length; i++) - Resolution.internalBinaryWrite(message.resolutions[i], writer.tag(13, WireType.LengthDelimited).fork(), options).join(); - /* repeated uint64 alias_scids = 14; */ - if (message.aliasScids.length) { - writer.tag(14, WireType.LengthDelimited).fork(); - for (let i = 0; i < message.aliasScids.length; i++) - writer.uint64(message.aliasScids[i]); - writer.join(); - } - /* uint64 zero_conf_confirmed_scid = 15 [jstype = JS_STRING]; */ - if (message.zeroConfConfirmedScid !== "0") - writer.tag(15, WireType.Varint).uint64(message.zeroConfConfirmedScid); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelCloseSummary - */ -export const ChannelCloseSummary = new ChannelCloseSummary$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class Resolution$Type extends MessageType { - constructor() { - super("lnrpc.Resolution", [ - { no: 1, name: "resolution_type", kind: "enum", T: () => ["lnrpc.ResolutionType", ResolutionType] }, - { no: 2, name: "outcome", kind: "enum", T: () => ["lnrpc.ResolutionOutcome", ResolutionOutcome] }, - { no: 3, name: "outpoint", kind: "message", T: () => OutPoint }, - { no: 4, name: "amount_sat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "sweep_txid", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { resolutionType: 0, outcome: 0, amountSat: 0, sweepTxid: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.ResolutionType resolution_type */ 1: - message.resolutionType = reader.int32(); - break; - case /* lnrpc.ResolutionOutcome outcome */ 2: - message.outcome = reader.int32(); - break; - case /* lnrpc.OutPoint outpoint */ 3: - message.outpoint = OutPoint.internalBinaryRead(reader, reader.uint32(), options, message.outpoint); - break; - case /* uint64 amount_sat */ 4: - message.amountSat = reader.uint64().toNumber(); - break; - case /* string sweep_txid */ 5: - message.sweepTxid = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.ResolutionType resolution_type = 1; */ - if (message.resolutionType !== 0) - writer.tag(1, WireType.Varint).int32(message.resolutionType); - /* lnrpc.ResolutionOutcome outcome = 2; */ - if (message.outcome !== 0) - writer.tag(2, WireType.Varint).int32(message.outcome); - /* lnrpc.OutPoint outpoint = 3; */ - if (message.outpoint) - OutPoint.internalBinaryWrite(message.outpoint, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); - /* uint64 amount_sat = 4; */ - if (message.amountSat !== 0) - writer.tag(4, WireType.Varint).uint64(message.amountSat); - /* string sweep_txid = 5; */ - if (message.sweepTxid !== "") - writer.tag(5, WireType.LengthDelimited).string(message.sweepTxid); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.Resolution - */ -export const Resolution = new Resolution$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ClosedChannelsRequest$Type extends MessageType { - constructor() { - super("lnrpc.ClosedChannelsRequest", [ - { no: 1, name: "cooperative", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 2, name: "local_force", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 3, name: "remote_force", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 4, name: "breach", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 5, name: "funding_canceled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 6, name: "abandoned", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { cooperative: false, localForce: false, remoteForce: false, breach: false, fundingCanceled: false, abandoned: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool cooperative */ 1: - message.cooperative = reader.bool(); - break; - case /* bool local_force */ 2: - message.localForce = reader.bool(); - break; - case /* bool remote_force */ 3: - message.remoteForce = reader.bool(); - break; - case /* bool breach */ 4: - message.breach = reader.bool(); - break; - case /* bool funding_canceled */ 5: - message.fundingCanceled = reader.bool(); - break; - case /* bool abandoned */ 6: - message.abandoned = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool cooperative = 1; */ - if (message.cooperative !== false) - writer.tag(1, WireType.Varint).bool(message.cooperative); - /* bool local_force = 2; */ - if (message.localForce !== false) - writer.tag(2, WireType.Varint).bool(message.localForce); - /* bool remote_force = 3; */ - if (message.remoteForce !== false) - writer.tag(3, WireType.Varint).bool(message.remoteForce); - /* bool breach = 4; */ - if (message.breach !== false) - writer.tag(4, WireType.Varint).bool(message.breach); - /* bool funding_canceled = 5; */ - if (message.fundingCanceled !== false) - writer.tag(5, WireType.Varint).bool(message.fundingCanceled); - /* bool abandoned = 6; */ - if (message.abandoned !== false) - writer.tag(6, WireType.Varint).bool(message.abandoned); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ClosedChannelsRequest - */ -export const ClosedChannelsRequest = new ClosedChannelsRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ClosedChannelsResponse$Type extends MessageType { - constructor() { - super("lnrpc.ClosedChannelsResponse", [ - { no: 1, name: "channels", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => ChannelCloseSummary } - ]); - } - create(value) { - const message = { channels: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.ChannelCloseSummary channels */ 1: - message.channels.push(ChannelCloseSummary.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.ChannelCloseSummary channels = 1; */ - for (let i = 0; i < message.channels.length; i++) - ChannelCloseSummary.internalBinaryWrite(message.channels[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ClosedChannelsResponse - */ -export const ClosedChannelsResponse = new ClosedChannelsResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class Peer$Type extends MessageType { - constructor() { - super("lnrpc.Peer", [ - { no: 1, name: "pub_key", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "address", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 4, name: "bytes_sent", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "bytes_recv", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "sat_sent", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "sat_recv", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "inbound", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 9, name: "ping_time", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 10, name: "sync_type", kind: "enum", T: () => ["lnrpc.Peer.SyncType", Peer_SyncType] }, - { no: 11, name: "features", kind: "map", K: 13 /*ScalarType.UINT32*/, V: { kind: "message", T: () => Feature } }, - { no: 12, name: "errors", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => TimestampedError }, - { no: 13, name: "flap_count", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 14, name: "last_flap_ns", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 15, name: "last_ping_payload", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { pubKey: "", address: "", bytesSent: 0, bytesRecv: 0, satSent: 0, satRecv: 0, inbound: false, pingTime: 0, syncType: 0, features: {}, errors: [], flapCount: 0, lastFlapNs: 0, lastPingPayload: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string pub_key */ 1: - message.pubKey = reader.string(); - break; - case /* string address */ 3: - message.address = reader.string(); - break; - case /* uint64 bytes_sent */ 4: - message.bytesSent = reader.uint64().toNumber(); - break; - case /* uint64 bytes_recv */ 5: - message.bytesRecv = reader.uint64().toNumber(); - break; - case /* int64 sat_sent */ 6: - message.satSent = reader.int64().toNumber(); - break; - case /* int64 sat_recv */ 7: - message.satRecv = reader.int64().toNumber(); - break; - case /* bool inbound */ 8: - message.inbound = reader.bool(); - break; - case /* int64 ping_time */ 9: - message.pingTime = reader.int64().toNumber(); - break; - case /* lnrpc.Peer.SyncType sync_type */ 10: - message.syncType = reader.int32(); - break; - case /* map features */ 11: - this.binaryReadMap11(message.features, reader, options); - break; - case /* repeated lnrpc.TimestampedError errors */ 12: - message.errors.push(TimestampedError.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* int32 flap_count */ 13: - message.flapCount = reader.int32(); - break; - case /* int64 last_flap_ns */ 14: - message.lastFlapNs = reader.int64().toNumber(); - break; - case /* bytes last_ping_payload */ 15: - message.lastPingPayload = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap11(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint32(); - break; - case 2: - val = Feature.internalBinaryRead(reader, reader.uint32(), options); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.Peer.features"); - } - } - map[key ?? 0] = val ?? Feature.create(); - } - internalBinaryWrite(message, writer, options) { - /* string pub_key = 1; */ - if (message.pubKey !== "") - writer.tag(1, WireType.LengthDelimited).string(message.pubKey); - /* string address = 3; */ - if (message.address !== "") - writer.tag(3, WireType.LengthDelimited).string(message.address); - /* uint64 bytes_sent = 4; */ - if (message.bytesSent !== 0) - writer.tag(4, WireType.Varint).uint64(message.bytesSent); - /* uint64 bytes_recv = 5; */ - if (message.bytesRecv !== 0) - writer.tag(5, WireType.Varint).uint64(message.bytesRecv); - /* int64 sat_sent = 6; */ - if (message.satSent !== 0) - writer.tag(6, WireType.Varint).int64(message.satSent); - /* int64 sat_recv = 7; */ - if (message.satRecv !== 0) - writer.tag(7, WireType.Varint).int64(message.satRecv); - /* bool inbound = 8; */ - if (message.inbound !== false) - writer.tag(8, WireType.Varint).bool(message.inbound); - /* int64 ping_time = 9; */ - if (message.pingTime !== 0) - writer.tag(9, WireType.Varint).int64(message.pingTime); - /* lnrpc.Peer.SyncType sync_type = 10; */ - if (message.syncType !== 0) - writer.tag(10, WireType.Varint).int32(message.syncType); - /* map features = 11; */ - for (let k of Object.keys(message.features)) { - writer.tag(11, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint32(parseInt(k)); - writer.tag(2, WireType.LengthDelimited).fork(); - Feature.internalBinaryWrite(message.features[k], writer, options); - writer.join().join(); - } - /* repeated lnrpc.TimestampedError errors = 12; */ - for (let i = 0; i < message.errors.length; i++) - TimestampedError.internalBinaryWrite(message.errors[i], writer.tag(12, WireType.LengthDelimited).fork(), options).join(); - /* int32 flap_count = 13; */ - if (message.flapCount !== 0) - writer.tag(13, WireType.Varint).int32(message.flapCount); - /* int64 last_flap_ns = 14; */ - if (message.lastFlapNs !== 0) - writer.tag(14, WireType.Varint).int64(message.lastFlapNs); - /* bytes last_ping_payload = 15; */ - if (message.lastPingPayload.length) - writer.tag(15, WireType.LengthDelimited).bytes(message.lastPingPayload); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.Peer - */ -export const Peer = new Peer$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class TimestampedError$Type extends MessageType { - constructor() { - super("lnrpc.TimestampedError", [ - { no: 1, name: "timestamp", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "error", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { timestamp: 0, error: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 timestamp */ 1: - message.timestamp = reader.uint64().toNumber(); - break; - case /* string error */ 2: - message.error = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 timestamp = 1; */ - if (message.timestamp !== 0) - writer.tag(1, WireType.Varint).uint64(message.timestamp); - /* string error = 2; */ - if (message.error !== "") - writer.tag(2, WireType.LengthDelimited).string(message.error); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.TimestampedError - */ -export const TimestampedError = new TimestampedError$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListPeersRequest$Type extends MessageType { - constructor() { - super("lnrpc.ListPeersRequest", [ - { no: 1, name: "latest_error", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { latestError: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool latest_error */ 1: - message.latestError = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool latest_error = 1; */ - if (message.latestError !== false) - writer.tag(1, WireType.Varint).bool(message.latestError); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListPeersRequest - */ -export const ListPeersRequest = new ListPeersRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListPeersResponse$Type extends MessageType { - constructor() { - super("lnrpc.ListPeersResponse", [ - { no: 1, name: "peers", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Peer } - ]); - } - create(value) { - const message = { peers: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.Peer peers */ 1: - message.peers.push(Peer.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.Peer peers = 1; */ - for (let i = 0; i < message.peers.length; i++) - Peer.internalBinaryWrite(message.peers[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListPeersResponse - */ -export const ListPeersResponse = new ListPeersResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PeerEventSubscription$Type extends MessageType { - constructor() { - super("lnrpc.PeerEventSubscription", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PeerEventSubscription - */ -export const PeerEventSubscription = new PeerEventSubscription$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PeerEvent$Type extends MessageType { - constructor() { - super("lnrpc.PeerEvent", [ - { no: 1, name: "pub_key", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "type", kind: "enum", T: () => ["lnrpc.PeerEvent.EventType", PeerEvent_EventType] } - ]); - } - create(value) { - const message = { pubKey: "", type: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string pub_key */ 1: - message.pubKey = reader.string(); - break; - case /* lnrpc.PeerEvent.EventType type */ 2: - message.type = reader.int32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string pub_key = 1; */ - if (message.pubKey !== "") - writer.tag(1, WireType.LengthDelimited).string(message.pubKey); - /* lnrpc.PeerEvent.EventType type = 2; */ - if (message.type !== 0) - writer.tag(2, WireType.Varint).int32(message.type); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PeerEvent - */ -export const PeerEvent = new PeerEvent$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class GetInfoRequest$Type extends MessageType { - constructor() { - super("lnrpc.GetInfoRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.GetInfoRequest - */ -export const GetInfoRequest = new GetInfoRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class GetInfoResponse$Type extends MessageType { - constructor() { - super("lnrpc.GetInfoResponse", [ - { no: 14, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 20, name: "commit_hash", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 1, name: "identity_pubkey", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "alias", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 17, name: "color", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "num_pending_channels", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 4, name: "num_active_channels", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 15, name: "num_inactive_channels", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 5, name: "num_peers", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 6, name: "block_height", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 8, name: "block_hash", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 13, name: "best_header_timestamp", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 9, name: "synced_to_chain", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 18, name: "synced_to_graph", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 10, name: "testnet", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 16, name: "chains", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Chain }, - { no: 12, name: "uris", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }, - { no: 19, name: "features", kind: "map", K: 13 /*ScalarType.UINT32*/, V: { kind: "message", T: () => Feature } }, - { no: 21, name: "require_htlc_interceptor", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { version: "", commitHash: "", identityPubkey: "", alias: "", color: "", numPendingChannels: 0, numActiveChannels: 0, numInactiveChannels: 0, numPeers: 0, blockHeight: 0, blockHash: "", bestHeaderTimestamp: 0, syncedToChain: false, syncedToGraph: false, testnet: false, chains: [], uris: [], features: {}, requireHtlcInterceptor: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string version */ 14: - message.version = reader.string(); - break; - case /* string commit_hash */ 20: - message.commitHash = reader.string(); - break; - case /* string identity_pubkey */ 1: - message.identityPubkey = reader.string(); - break; - case /* string alias */ 2: - message.alias = reader.string(); - break; - case /* string color */ 17: - message.color = reader.string(); - break; - case /* uint32 num_pending_channels */ 3: - message.numPendingChannels = reader.uint32(); - break; - case /* uint32 num_active_channels */ 4: - message.numActiveChannels = reader.uint32(); - break; - case /* uint32 num_inactive_channels */ 15: - message.numInactiveChannels = reader.uint32(); - break; - case /* uint32 num_peers */ 5: - message.numPeers = reader.uint32(); - break; - case /* uint32 block_height */ 6: - message.blockHeight = reader.uint32(); - break; - case /* string block_hash */ 8: - message.blockHash = reader.string(); - break; - case /* int64 best_header_timestamp */ 13: - message.bestHeaderTimestamp = reader.int64().toNumber(); - break; - case /* bool synced_to_chain */ 9: - message.syncedToChain = reader.bool(); - break; - case /* bool synced_to_graph */ 18: - message.syncedToGraph = reader.bool(); - break; - case /* bool testnet = 10 [deprecated = true];*/ 10: - message.testnet = reader.bool(); - break; - case /* repeated lnrpc.Chain chains */ 16: - message.chains.push(Chain.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* repeated string uris */ 12: - message.uris.push(reader.string()); - break; - case /* map features */ 19: - this.binaryReadMap19(message.features, reader, options); - break; - case /* bool require_htlc_interceptor */ 21: - message.requireHtlcInterceptor = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap19(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint32(); - break; - case 2: - val = Feature.internalBinaryRead(reader, reader.uint32(), options); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.GetInfoResponse.features"); - } - } - map[key ?? 0] = val ?? Feature.create(); - } - internalBinaryWrite(message, writer, options) { - /* string version = 14; */ - if (message.version !== "") - writer.tag(14, WireType.LengthDelimited).string(message.version); - /* string commit_hash = 20; */ - if (message.commitHash !== "") - writer.tag(20, WireType.LengthDelimited).string(message.commitHash); - /* string identity_pubkey = 1; */ - if (message.identityPubkey !== "") - writer.tag(1, WireType.LengthDelimited).string(message.identityPubkey); - /* string alias = 2; */ - if (message.alias !== "") - writer.tag(2, WireType.LengthDelimited).string(message.alias); - /* string color = 17; */ - if (message.color !== "") - writer.tag(17, WireType.LengthDelimited).string(message.color); - /* uint32 num_pending_channels = 3; */ - if (message.numPendingChannels !== 0) - writer.tag(3, WireType.Varint).uint32(message.numPendingChannels); - /* uint32 num_active_channels = 4; */ - if (message.numActiveChannels !== 0) - writer.tag(4, WireType.Varint).uint32(message.numActiveChannels); - /* uint32 num_inactive_channels = 15; */ - if (message.numInactiveChannels !== 0) - writer.tag(15, WireType.Varint).uint32(message.numInactiveChannels); - /* uint32 num_peers = 5; */ - if (message.numPeers !== 0) - writer.tag(5, WireType.Varint).uint32(message.numPeers); - /* uint32 block_height = 6; */ - if (message.blockHeight !== 0) - writer.tag(6, WireType.Varint).uint32(message.blockHeight); - /* string block_hash = 8; */ - if (message.blockHash !== "") - writer.tag(8, WireType.LengthDelimited).string(message.blockHash); - /* int64 best_header_timestamp = 13; */ - if (message.bestHeaderTimestamp !== 0) - writer.tag(13, WireType.Varint).int64(message.bestHeaderTimestamp); - /* bool synced_to_chain = 9; */ - if (message.syncedToChain !== false) - writer.tag(9, WireType.Varint).bool(message.syncedToChain); - /* bool synced_to_graph = 18; */ - if (message.syncedToGraph !== false) - writer.tag(18, WireType.Varint).bool(message.syncedToGraph); - /* bool testnet = 10 [deprecated = true]; */ - if (message.testnet !== false) - writer.tag(10, WireType.Varint).bool(message.testnet); - /* repeated lnrpc.Chain chains = 16; */ - for (let i = 0; i < message.chains.length; i++) - Chain.internalBinaryWrite(message.chains[i], writer.tag(16, WireType.LengthDelimited).fork(), options).join(); - /* repeated string uris = 12; */ - for (let i = 0; i < message.uris.length; i++) - writer.tag(12, WireType.LengthDelimited).string(message.uris[i]); - /* map features = 19; */ - for (let k of Object.keys(message.features)) { - writer.tag(19, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint32(parseInt(k)); - writer.tag(2, WireType.LengthDelimited).fork(); - Feature.internalBinaryWrite(message.features[k], writer, options); - writer.join().join(); - } - /* bool require_htlc_interceptor = 21; */ - if (message.requireHtlcInterceptor !== false) - writer.tag(21, WireType.Varint).bool(message.requireHtlcInterceptor); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.GetInfoResponse - */ -export const GetInfoResponse = new GetInfoResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class GetRecoveryInfoRequest$Type extends MessageType { - constructor() { - super("lnrpc.GetRecoveryInfoRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.GetRecoveryInfoRequest - */ -export const GetRecoveryInfoRequest = new GetRecoveryInfoRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class GetRecoveryInfoResponse$Type extends MessageType { - constructor() { - super("lnrpc.GetRecoveryInfoResponse", [ - { no: 1, name: "recovery_mode", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 2, name: "recovery_finished", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 3, name: "progress", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ } - ]); - } - create(value) { - const message = { recoveryMode: false, recoveryFinished: false, progress: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool recovery_mode */ 1: - message.recoveryMode = reader.bool(); - break; - case /* bool recovery_finished */ 2: - message.recoveryFinished = reader.bool(); - break; - case /* double progress */ 3: - message.progress = reader.double(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool recovery_mode = 1; */ - if (message.recoveryMode !== false) - writer.tag(1, WireType.Varint).bool(message.recoveryMode); - /* bool recovery_finished = 2; */ - if (message.recoveryFinished !== false) - writer.tag(2, WireType.Varint).bool(message.recoveryFinished); - /* double progress = 3; */ - if (message.progress !== 0) - writer.tag(3, WireType.Bit64).double(message.progress); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.GetRecoveryInfoResponse - */ -export const GetRecoveryInfoResponse = new GetRecoveryInfoResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class Chain$Type extends MessageType { - constructor() { - super("lnrpc.Chain", [ - { no: 1, name: "chain", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "network", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { chain: "", network: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string chain */ 1: - message.chain = reader.string(); - break; - case /* string network */ 2: - message.network = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string chain = 1; */ - if (message.chain !== "") - writer.tag(1, WireType.LengthDelimited).string(message.chain); - /* string network = 2; */ - if (message.network !== "") - writer.tag(2, WireType.LengthDelimited).string(message.network); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.Chain - */ -export const Chain = new Chain$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ConfirmationUpdate$Type extends MessageType { - constructor() { - super("lnrpc.ConfirmationUpdate", [ - { no: 1, name: "block_sha", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "block_height", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 3, name: "num_confs_left", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } - ]); - } - create(value) { - const message = { blockSha: new Uint8Array(0), blockHeight: 0, numConfsLeft: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes block_sha */ 1: - message.blockSha = reader.bytes(); - break; - case /* int32 block_height */ 2: - message.blockHeight = reader.int32(); - break; - case /* uint32 num_confs_left */ 3: - message.numConfsLeft = reader.uint32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes block_sha = 1; */ - if (message.blockSha.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.blockSha); - /* int32 block_height = 2; */ - if (message.blockHeight !== 0) - writer.tag(2, WireType.Varint).int32(message.blockHeight); - /* uint32 num_confs_left = 3; */ - if (message.numConfsLeft !== 0) - writer.tag(3, WireType.Varint).uint32(message.numConfsLeft); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ConfirmationUpdate - */ -export const ConfirmationUpdate = new ConfirmationUpdate$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelOpenUpdate$Type extends MessageType { - constructor() { - super("lnrpc.ChannelOpenUpdate", [ - { no: 1, name: "channel_point", kind: "message", T: () => ChannelPoint } - ]); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.ChannelPoint channel_point */ 1: - message.channelPoint = ChannelPoint.internalBinaryRead(reader, reader.uint32(), options, message.channelPoint); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.ChannelPoint channel_point = 1; */ - if (message.channelPoint) - ChannelPoint.internalBinaryWrite(message.channelPoint, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelOpenUpdate - */ -export const ChannelOpenUpdate = new ChannelOpenUpdate$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelCloseUpdate$Type extends MessageType { - constructor() { - super("lnrpc.ChannelCloseUpdate", [ - { no: 1, name: "closing_txid", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "success", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { closingTxid: new Uint8Array(0), success: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes closing_txid */ 1: - message.closingTxid = reader.bytes(); - break; - case /* bool success */ 2: - message.success = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes closing_txid = 1; */ - if (message.closingTxid.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.closingTxid); - /* bool success = 2; */ - if (message.success !== false) - writer.tag(2, WireType.Varint).bool(message.success); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelCloseUpdate - */ -export const ChannelCloseUpdate = new ChannelCloseUpdate$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class CloseChannelRequest$Type extends MessageType { - constructor() { - super("lnrpc.CloseChannelRequest", [ - { no: 1, name: "channel_point", kind: "message", T: () => ChannelPoint }, - { no: 2, name: "force", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 3, name: "target_conf", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 4, name: "sat_per_byte", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "delivery_address", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 6, name: "sat_per_vbyte", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "max_fee_per_vbyte", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { force: false, targetConf: 0, satPerByte: 0, deliveryAddress: "", satPerVbyte: 0, maxFeePerVbyte: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.ChannelPoint channel_point */ 1: - message.channelPoint = ChannelPoint.internalBinaryRead(reader, reader.uint32(), options, message.channelPoint); - break; - case /* bool force */ 2: - message.force = reader.bool(); - break; - case /* int32 target_conf */ 3: - message.targetConf = reader.int32(); - break; - case /* int64 sat_per_byte = 4 [deprecated = true];*/ 4: - message.satPerByte = reader.int64().toNumber(); - break; - case /* string delivery_address */ 5: - message.deliveryAddress = reader.string(); - break; - case /* uint64 sat_per_vbyte */ 6: - message.satPerVbyte = reader.uint64().toNumber(); - break; - case /* uint64 max_fee_per_vbyte */ 7: - message.maxFeePerVbyte = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.ChannelPoint channel_point = 1; */ - if (message.channelPoint) - ChannelPoint.internalBinaryWrite(message.channelPoint, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* bool force = 2; */ - if (message.force !== false) - writer.tag(2, WireType.Varint).bool(message.force); - /* int32 target_conf = 3; */ - if (message.targetConf !== 0) - writer.tag(3, WireType.Varint).int32(message.targetConf); - /* int64 sat_per_byte = 4 [deprecated = true]; */ - if (message.satPerByte !== 0) - writer.tag(4, WireType.Varint).int64(message.satPerByte); - /* string delivery_address = 5; */ - if (message.deliveryAddress !== "") - writer.tag(5, WireType.LengthDelimited).string(message.deliveryAddress); - /* uint64 sat_per_vbyte = 6; */ - if (message.satPerVbyte !== 0) - writer.tag(6, WireType.Varint).uint64(message.satPerVbyte); - /* uint64 max_fee_per_vbyte = 7; */ - if (message.maxFeePerVbyte !== 0) - writer.tag(7, WireType.Varint).uint64(message.maxFeePerVbyte); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.CloseChannelRequest - */ -export const CloseChannelRequest = new CloseChannelRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class CloseStatusUpdate$Type extends MessageType { - constructor() { - super("lnrpc.CloseStatusUpdate", [ - { no: 1, name: "close_pending", kind: "message", oneof: "update", T: () => PendingUpdate }, - { no: 3, name: "chan_close", kind: "message", oneof: "update", T: () => ChannelCloseUpdate } - ]); - } - create(value) { - const message = { update: { oneofKind: undefined } }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.PendingUpdate close_pending */ 1: - message.update = { - oneofKind: "closePending", - closePending: PendingUpdate.internalBinaryRead(reader, reader.uint32(), options, message.update.closePending) - }; - break; - case /* lnrpc.ChannelCloseUpdate chan_close */ 3: - message.update = { - oneofKind: "chanClose", - chanClose: ChannelCloseUpdate.internalBinaryRead(reader, reader.uint32(), options, message.update.chanClose) - }; - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.PendingUpdate close_pending = 1; */ - if (message.update.oneofKind === "closePending") - PendingUpdate.internalBinaryWrite(message.update.closePending, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.ChannelCloseUpdate chan_close = 3; */ - if (message.update.oneofKind === "chanClose") - ChannelCloseUpdate.internalBinaryWrite(message.update.chanClose, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.CloseStatusUpdate - */ -export const CloseStatusUpdate = new CloseStatusUpdate$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PendingUpdate$Type extends MessageType { - constructor() { - super("lnrpc.PendingUpdate", [ - { no: 1, name: "txid", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "output_index", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } - ]); - } - create(value) { - const message = { txid: new Uint8Array(0), outputIndex: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes txid */ 1: - message.txid = reader.bytes(); - break; - case /* uint32 output_index */ 2: - message.outputIndex = reader.uint32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes txid = 1; */ - if (message.txid.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.txid); - /* uint32 output_index = 2; */ - if (message.outputIndex !== 0) - writer.tag(2, WireType.Varint).uint32(message.outputIndex); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PendingUpdate - */ -export const PendingUpdate = new PendingUpdate$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ReadyForPsbtFunding$Type extends MessageType { - constructor() { - super("lnrpc.ReadyForPsbtFunding", [ - { no: 1, name: "funding_address", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "funding_amount", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "psbt", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { fundingAddress: "", fundingAmount: 0, psbt: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string funding_address */ 1: - message.fundingAddress = reader.string(); - break; - case /* int64 funding_amount */ 2: - message.fundingAmount = reader.int64().toNumber(); - break; - case /* bytes psbt */ 3: - message.psbt = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string funding_address = 1; */ - if (message.fundingAddress !== "") - writer.tag(1, WireType.LengthDelimited).string(message.fundingAddress); - /* int64 funding_amount = 2; */ - if (message.fundingAmount !== 0) - writer.tag(2, WireType.Varint).int64(message.fundingAmount); - /* bytes psbt = 3; */ - if (message.psbt.length) - writer.tag(3, WireType.LengthDelimited).bytes(message.psbt); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ReadyForPsbtFunding - */ -export const ReadyForPsbtFunding = new ReadyForPsbtFunding$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class BatchOpenChannelRequest$Type extends MessageType { - constructor() { - super("lnrpc.BatchOpenChannelRequest", [ - { no: 1, name: "channels", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => BatchOpenChannel }, - { no: 2, name: "target_conf", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 3, name: "sat_per_vbyte", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "min_confs", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 5, name: "spend_unconfirmed", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 6, name: "label", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { channels: [], targetConf: 0, satPerVbyte: 0, minConfs: 0, spendUnconfirmed: false, label: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.BatchOpenChannel channels */ 1: - message.channels.push(BatchOpenChannel.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* int32 target_conf */ 2: - message.targetConf = reader.int32(); - break; - case /* int64 sat_per_vbyte */ 3: - message.satPerVbyte = reader.int64().toNumber(); - break; - case /* int32 min_confs */ 4: - message.minConfs = reader.int32(); - break; - case /* bool spend_unconfirmed */ 5: - message.spendUnconfirmed = reader.bool(); - break; - case /* string label */ 6: - message.label = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.BatchOpenChannel channels = 1; */ - for (let i = 0; i < message.channels.length; i++) - BatchOpenChannel.internalBinaryWrite(message.channels[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* int32 target_conf = 2; */ - if (message.targetConf !== 0) - writer.tag(2, WireType.Varint).int32(message.targetConf); - /* int64 sat_per_vbyte = 3; */ - if (message.satPerVbyte !== 0) - writer.tag(3, WireType.Varint).int64(message.satPerVbyte); - /* int32 min_confs = 4; */ - if (message.minConfs !== 0) - writer.tag(4, WireType.Varint).int32(message.minConfs); - /* bool spend_unconfirmed = 5; */ - if (message.spendUnconfirmed !== false) - writer.tag(5, WireType.Varint).bool(message.spendUnconfirmed); - /* string label = 6; */ - if (message.label !== "") - writer.tag(6, WireType.LengthDelimited).string(message.label); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.BatchOpenChannelRequest - */ -export const BatchOpenChannelRequest = new BatchOpenChannelRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class BatchOpenChannel$Type extends MessageType { - constructor() { - super("lnrpc.BatchOpenChannel", [ - { no: 1, name: "node_pubkey", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "local_funding_amount", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "push_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "private", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 5, name: "min_htlc_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "remote_csv_delay", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 7, name: "close_address", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 8, name: "pending_chan_id", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 9, name: "commitment_type", kind: "enum", T: () => ["lnrpc.CommitmentType", CommitmentType] } - ]); - } - create(value) { - const message = { nodePubkey: new Uint8Array(0), localFundingAmount: 0, pushSat: 0, private: false, minHtlcMsat: 0, remoteCsvDelay: 0, closeAddress: "", pendingChanId: new Uint8Array(0), commitmentType: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes node_pubkey */ 1: - message.nodePubkey = reader.bytes(); - break; - case /* int64 local_funding_amount */ 2: - message.localFundingAmount = reader.int64().toNumber(); - break; - case /* int64 push_sat */ 3: - message.pushSat = reader.int64().toNumber(); - break; - case /* bool private */ 4: - message.private = reader.bool(); - break; - case /* int64 min_htlc_msat */ 5: - message.minHtlcMsat = reader.int64().toNumber(); - break; - case /* uint32 remote_csv_delay */ 6: - message.remoteCsvDelay = reader.uint32(); - break; - case /* string close_address */ 7: - message.closeAddress = reader.string(); - break; - case /* bytes pending_chan_id */ 8: - message.pendingChanId = reader.bytes(); - break; - case /* lnrpc.CommitmentType commitment_type */ 9: - message.commitmentType = reader.int32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes node_pubkey = 1; */ - if (message.nodePubkey.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.nodePubkey); - /* int64 local_funding_amount = 2; */ - if (message.localFundingAmount !== 0) - writer.tag(2, WireType.Varint).int64(message.localFundingAmount); - /* int64 push_sat = 3; */ - if (message.pushSat !== 0) - writer.tag(3, WireType.Varint).int64(message.pushSat); - /* bool private = 4; */ - if (message.private !== false) - writer.tag(4, WireType.Varint).bool(message.private); - /* int64 min_htlc_msat = 5; */ - if (message.minHtlcMsat !== 0) - writer.tag(5, WireType.Varint).int64(message.minHtlcMsat); - /* uint32 remote_csv_delay = 6; */ - if (message.remoteCsvDelay !== 0) - writer.tag(6, WireType.Varint).uint32(message.remoteCsvDelay); - /* string close_address = 7; */ - if (message.closeAddress !== "") - writer.tag(7, WireType.LengthDelimited).string(message.closeAddress); - /* bytes pending_chan_id = 8; */ - if (message.pendingChanId.length) - writer.tag(8, WireType.LengthDelimited).bytes(message.pendingChanId); - /* lnrpc.CommitmentType commitment_type = 9; */ - if (message.commitmentType !== 0) - writer.tag(9, WireType.Varint).int32(message.commitmentType); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.BatchOpenChannel - */ -export const BatchOpenChannel = new BatchOpenChannel$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class BatchOpenChannelResponse$Type extends MessageType { - constructor() { - super("lnrpc.BatchOpenChannelResponse", [ - { no: 1, name: "pending_channels", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PendingUpdate } - ]); - } - create(value) { - const message = { pendingChannels: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.PendingUpdate pending_channels */ 1: - message.pendingChannels.push(PendingUpdate.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.PendingUpdate pending_channels = 1; */ - for (let i = 0; i < message.pendingChannels.length; i++) - PendingUpdate.internalBinaryWrite(message.pendingChannels[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.BatchOpenChannelResponse - */ -export const BatchOpenChannelResponse = new BatchOpenChannelResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class OpenChannelRequest$Type extends MessageType { - constructor() { - super("lnrpc.OpenChannelRequest", [ - { no: 1, name: "sat_per_vbyte", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "node_pubkey", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "node_pubkey_string", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 4, name: "local_funding_amount", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "push_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "target_conf", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 7, name: "sat_per_byte", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "private", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 9, name: "min_htlc_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 10, name: "remote_csv_delay", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 11, name: "min_confs", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 12, name: "spend_unconfirmed", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 13, name: "close_address", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 14, name: "funding_shim", kind: "message", T: () => FundingShim }, - { no: 15, name: "remote_max_value_in_flight_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 16, name: "remote_max_htlcs", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 17, name: "max_local_csv", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 18, name: "commitment_type", kind: "enum", T: () => ["lnrpc.CommitmentType", CommitmentType] }, - { no: 19, name: "zero_conf", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 20, name: "scid_alias", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 21, name: "base_fee", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 22, name: "fee_rate", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 23, name: "use_base_fee", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 24, name: "use_fee_rate", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 25, name: "remote_chan_reserve_sat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { satPerVbyte: 0, nodePubkey: new Uint8Array(0), nodePubkeyString: "", localFundingAmount: 0, pushSat: 0, targetConf: 0, satPerByte: 0, private: false, minHtlcMsat: 0, remoteCsvDelay: 0, minConfs: 0, spendUnconfirmed: false, closeAddress: "", remoteMaxValueInFlightMsat: 0, remoteMaxHtlcs: 0, maxLocalCsv: 0, commitmentType: 0, zeroConf: false, scidAlias: false, baseFee: 0, feeRate: 0, useBaseFee: false, useFeeRate: false, remoteChanReserveSat: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 sat_per_vbyte */ 1: - message.satPerVbyte = reader.uint64().toNumber(); - break; - case /* bytes node_pubkey */ 2: - message.nodePubkey = reader.bytes(); - break; - case /* string node_pubkey_string = 3 [deprecated = true];*/ 3: - message.nodePubkeyString = reader.string(); - break; - case /* int64 local_funding_amount */ 4: - message.localFundingAmount = reader.int64().toNumber(); - break; - case /* int64 push_sat */ 5: - message.pushSat = reader.int64().toNumber(); - break; - case /* int32 target_conf */ 6: - message.targetConf = reader.int32(); - break; - case /* int64 sat_per_byte = 7 [deprecated = true];*/ 7: - message.satPerByte = reader.int64().toNumber(); - break; - case /* bool private */ 8: - message.private = reader.bool(); - break; - case /* int64 min_htlc_msat */ 9: - message.minHtlcMsat = reader.int64().toNumber(); - break; - case /* uint32 remote_csv_delay */ 10: - message.remoteCsvDelay = reader.uint32(); - break; - case /* int32 min_confs */ 11: - message.minConfs = reader.int32(); - break; - case /* bool spend_unconfirmed */ 12: - message.spendUnconfirmed = reader.bool(); - break; - case /* string close_address */ 13: - message.closeAddress = reader.string(); - break; - case /* lnrpc.FundingShim funding_shim */ 14: - message.fundingShim = FundingShim.internalBinaryRead(reader, reader.uint32(), options, message.fundingShim); - break; - case /* uint64 remote_max_value_in_flight_msat */ 15: - message.remoteMaxValueInFlightMsat = reader.uint64().toNumber(); - break; - case /* uint32 remote_max_htlcs */ 16: - message.remoteMaxHtlcs = reader.uint32(); - break; - case /* uint32 max_local_csv */ 17: - message.maxLocalCsv = reader.uint32(); - break; - case /* lnrpc.CommitmentType commitment_type */ 18: - message.commitmentType = reader.int32(); - break; - case /* bool zero_conf */ 19: - message.zeroConf = reader.bool(); - break; - case /* bool scid_alias */ 20: - message.scidAlias = reader.bool(); - break; - case /* uint64 base_fee */ 21: - message.baseFee = reader.uint64().toNumber(); - break; - case /* uint64 fee_rate */ 22: - message.feeRate = reader.uint64().toNumber(); - break; - case /* bool use_base_fee */ 23: - message.useBaseFee = reader.bool(); - break; - case /* bool use_fee_rate */ 24: - message.useFeeRate = reader.bool(); - break; - case /* uint64 remote_chan_reserve_sat */ 25: - message.remoteChanReserveSat = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 sat_per_vbyte = 1; */ - if (message.satPerVbyte !== 0) - writer.tag(1, WireType.Varint).uint64(message.satPerVbyte); - /* bytes node_pubkey = 2; */ - if (message.nodePubkey.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.nodePubkey); - /* string node_pubkey_string = 3 [deprecated = true]; */ - if (message.nodePubkeyString !== "") - writer.tag(3, WireType.LengthDelimited).string(message.nodePubkeyString); - /* int64 local_funding_amount = 4; */ - if (message.localFundingAmount !== 0) - writer.tag(4, WireType.Varint).int64(message.localFundingAmount); - /* int64 push_sat = 5; */ - if (message.pushSat !== 0) - writer.tag(5, WireType.Varint).int64(message.pushSat); - /* int32 target_conf = 6; */ - if (message.targetConf !== 0) - writer.tag(6, WireType.Varint).int32(message.targetConf); - /* int64 sat_per_byte = 7 [deprecated = true]; */ - if (message.satPerByte !== 0) - writer.tag(7, WireType.Varint).int64(message.satPerByte); - /* bool private = 8; */ - if (message.private !== false) - writer.tag(8, WireType.Varint).bool(message.private); - /* int64 min_htlc_msat = 9; */ - if (message.minHtlcMsat !== 0) - writer.tag(9, WireType.Varint).int64(message.minHtlcMsat); - /* uint32 remote_csv_delay = 10; */ - if (message.remoteCsvDelay !== 0) - writer.tag(10, WireType.Varint).uint32(message.remoteCsvDelay); - /* int32 min_confs = 11; */ - if (message.minConfs !== 0) - writer.tag(11, WireType.Varint).int32(message.minConfs); - /* bool spend_unconfirmed = 12; */ - if (message.spendUnconfirmed !== false) - writer.tag(12, WireType.Varint).bool(message.spendUnconfirmed); - /* string close_address = 13; */ - if (message.closeAddress !== "") - writer.tag(13, WireType.LengthDelimited).string(message.closeAddress); - /* lnrpc.FundingShim funding_shim = 14; */ - if (message.fundingShim) - FundingShim.internalBinaryWrite(message.fundingShim, writer.tag(14, WireType.LengthDelimited).fork(), options).join(); - /* uint64 remote_max_value_in_flight_msat = 15; */ - if (message.remoteMaxValueInFlightMsat !== 0) - writer.tag(15, WireType.Varint).uint64(message.remoteMaxValueInFlightMsat); - /* uint32 remote_max_htlcs = 16; */ - if (message.remoteMaxHtlcs !== 0) - writer.tag(16, WireType.Varint).uint32(message.remoteMaxHtlcs); - /* uint32 max_local_csv = 17; */ - if (message.maxLocalCsv !== 0) - writer.tag(17, WireType.Varint).uint32(message.maxLocalCsv); - /* lnrpc.CommitmentType commitment_type = 18; */ - if (message.commitmentType !== 0) - writer.tag(18, WireType.Varint).int32(message.commitmentType); - /* bool zero_conf = 19; */ - if (message.zeroConf !== false) - writer.tag(19, WireType.Varint).bool(message.zeroConf); - /* bool scid_alias = 20; */ - if (message.scidAlias !== false) - writer.tag(20, WireType.Varint).bool(message.scidAlias); - /* uint64 base_fee = 21; */ - if (message.baseFee !== 0) - writer.tag(21, WireType.Varint).uint64(message.baseFee); - /* uint64 fee_rate = 22; */ - if (message.feeRate !== 0) - writer.tag(22, WireType.Varint).uint64(message.feeRate); - /* bool use_base_fee = 23; */ - if (message.useBaseFee !== false) - writer.tag(23, WireType.Varint).bool(message.useBaseFee); - /* bool use_fee_rate = 24; */ - if (message.useFeeRate !== false) - writer.tag(24, WireType.Varint).bool(message.useFeeRate); - /* uint64 remote_chan_reserve_sat = 25; */ - if (message.remoteChanReserveSat !== 0) - writer.tag(25, WireType.Varint).uint64(message.remoteChanReserveSat); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.OpenChannelRequest - */ -export const OpenChannelRequest = new OpenChannelRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class OpenStatusUpdate$Type extends MessageType { - constructor() { - super("lnrpc.OpenStatusUpdate", [ - { no: 1, name: "chan_pending", kind: "message", oneof: "update", T: () => PendingUpdate }, - { no: 3, name: "chan_open", kind: "message", oneof: "update", T: () => ChannelOpenUpdate }, - { no: 5, name: "psbt_fund", kind: "message", oneof: "update", T: () => ReadyForPsbtFunding }, - { no: 4, name: "pending_chan_id", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { update: { oneofKind: undefined }, pendingChanId: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.PendingUpdate chan_pending */ 1: - message.update = { - oneofKind: "chanPending", - chanPending: PendingUpdate.internalBinaryRead(reader, reader.uint32(), options, message.update.chanPending) - }; - break; - case /* lnrpc.ChannelOpenUpdate chan_open */ 3: - message.update = { - oneofKind: "chanOpen", - chanOpen: ChannelOpenUpdate.internalBinaryRead(reader, reader.uint32(), options, message.update.chanOpen) - }; - break; - case /* lnrpc.ReadyForPsbtFunding psbt_fund */ 5: - message.update = { - oneofKind: "psbtFund", - psbtFund: ReadyForPsbtFunding.internalBinaryRead(reader, reader.uint32(), options, message.update.psbtFund) - }; - break; - case /* bytes pending_chan_id */ 4: - message.pendingChanId = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.PendingUpdate chan_pending = 1; */ - if (message.update.oneofKind === "chanPending") - PendingUpdate.internalBinaryWrite(message.update.chanPending, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.ChannelOpenUpdate chan_open = 3; */ - if (message.update.oneofKind === "chanOpen") - ChannelOpenUpdate.internalBinaryWrite(message.update.chanOpen, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.ReadyForPsbtFunding psbt_fund = 5; */ - if (message.update.oneofKind === "psbtFund") - ReadyForPsbtFunding.internalBinaryWrite(message.update.psbtFund, writer.tag(5, WireType.LengthDelimited).fork(), options).join(); - /* bytes pending_chan_id = 4; */ - if (message.pendingChanId.length) - writer.tag(4, WireType.LengthDelimited).bytes(message.pendingChanId); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.OpenStatusUpdate - */ -export const OpenStatusUpdate = new OpenStatusUpdate$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class KeyLocator$Type extends MessageType { - constructor() { - super("lnrpc.KeyLocator", [ - { no: 1, name: "key_family", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 2, name: "key_index", kind: "scalar", T: 5 /*ScalarType.INT32*/ } - ]); - } - create(value) { - const message = { keyFamily: 0, keyIndex: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* int32 key_family */ 1: - message.keyFamily = reader.int32(); - break; - case /* int32 key_index */ 2: - message.keyIndex = reader.int32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* int32 key_family = 1; */ - if (message.keyFamily !== 0) - writer.tag(1, WireType.Varint).int32(message.keyFamily); - /* int32 key_index = 2; */ - if (message.keyIndex !== 0) - writer.tag(2, WireType.Varint).int32(message.keyIndex); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.KeyLocator - */ -export const KeyLocator = new KeyLocator$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class KeyDescriptor$Type extends MessageType { - constructor() { - super("lnrpc.KeyDescriptor", [ - { no: 1, name: "raw_key_bytes", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "key_loc", kind: "message", T: () => KeyLocator } - ]); - } - create(value) { - const message = { rawKeyBytes: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes raw_key_bytes */ 1: - message.rawKeyBytes = reader.bytes(); - break; - case /* lnrpc.KeyLocator key_loc */ 2: - message.keyLoc = KeyLocator.internalBinaryRead(reader, reader.uint32(), options, message.keyLoc); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes raw_key_bytes = 1; */ - if (message.rawKeyBytes.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.rawKeyBytes); - /* lnrpc.KeyLocator key_loc = 2; */ - if (message.keyLoc) - KeyLocator.internalBinaryWrite(message.keyLoc, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.KeyDescriptor - */ -export const KeyDescriptor = new KeyDescriptor$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChanPointShim$Type extends MessageType { - constructor() { - super("lnrpc.ChanPointShim", [ - { no: 1, name: "amt", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "chan_point", kind: "message", T: () => ChannelPoint }, - { no: 3, name: "local_key", kind: "message", T: () => KeyDescriptor }, - { no: 4, name: "remote_key", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 5, name: "pending_chan_id", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 6, name: "thaw_height", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } - ]); - } - create(value) { - const message = { amt: 0, remoteKey: new Uint8Array(0), pendingChanId: new Uint8Array(0), thawHeight: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* int64 amt */ 1: - message.amt = reader.int64().toNumber(); - break; - case /* lnrpc.ChannelPoint chan_point */ 2: - message.chanPoint = ChannelPoint.internalBinaryRead(reader, reader.uint32(), options, message.chanPoint); - break; - case /* lnrpc.KeyDescriptor local_key */ 3: - message.localKey = KeyDescriptor.internalBinaryRead(reader, reader.uint32(), options, message.localKey); - break; - case /* bytes remote_key */ 4: - message.remoteKey = reader.bytes(); - break; - case /* bytes pending_chan_id */ 5: - message.pendingChanId = reader.bytes(); - break; - case /* uint32 thaw_height */ 6: - message.thawHeight = reader.uint32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* int64 amt = 1; */ - if (message.amt !== 0) - writer.tag(1, WireType.Varint).int64(message.amt); - /* lnrpc.ChannelPoint chan_point = 2; */ - if (message.chanPoint) - ChannelPoint.internalBinaryWrite(message.chanPoint, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.KeyDescriptor local_key = 3; */ - if (message.localKey) - KeyDescriptor.internalBinaryWrite(message.localKey, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); - /* bytes remote_key = 4; */ - if (message.remoteKey.length) - writer.tag(4, WireType.LengthDelimited).bytes(message.remoteKey); - /* bytes pending_chan_id = 5; */ - if (message.pendingChanId.length) - writer.tag(5, WireType.LengthDelimited).bytes(message.pendingChanId); - /* uint32 thaw_height = 6; */ - if (message.thawHeight !== 0) - writer.tag(6, WireType.Varint).uint32(message.thawHeight); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChanPointShim - */ -export const ChanPointShim = new ChanPointShim$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PsbtShim$Type extends MessageType { - constructor() { - super("lnrpc.PsbtShim", [ - { no: 1, name: "pending_chan_id", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "base_psbt", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "no_publish", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { pendingChanId: new Uint8Array(0), basePsbt: new Uint8Array(0), noPublish: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes pending_chan_id */ 1: - message.pendingChanId = reader.bytes(); - break; - case /* bytes base_psbt */ 2: - message.basePsbt = reader.bytes(); - break; - case /* bool no_publish */ 3: - message.noPublish = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes pending_chan_id = 1; */ - if (message.pendingChanId.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.pendingChanId); - /* bytes base_psbt = 2; */ - if (message.basePsbt.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.basePsbt); - /* bool no_publish = 3; */ - if (message.noPublish !== false) - writer.tag(3, WireType.Varint).bool(message.noPublish); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PsbtShim - */ -export const PsbtShim = new PsbtShim$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class FundingShim$Type extends MessageType { - constructor() { - super("lnrpc.FundingShim", [ - { no: 1, name: "chan_point_shim", kind: "message", oneof: "shim", T: () => ChanPointShim }, - { no: 2, name: "psbt_shim", kind: "message", oneof: "shim", T: () => PsbtShim } - ]); - } - create(value) { - const message = { shim: { oneofKind: undefined } }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.ChanPointShim chan_point_shim */ 1: - message.shim = { - oneofKind: "chanPointShim", - chanPointShim: ChanPointShim.internalBinaryRead(reader, reader.uint32(), options, message.shim.chanPointShim) - }; - break; - case /* lnrpc.PsbtShim psbt_shim */ 2: - message.shim = { - oneofKind: "psbtShim", - psbtShim: PsbtShim.internalBinaryRead(reader, reader.uint32(), options, message.shim.psbtShim) - }; - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.ChanPointShim chan_point_shim = 1; */ - if (message.shim.oneofKind === "chanPointShim") - ChanPointShim.internalBinaryWrite(message.shim.chanPointShim, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.PsbtShim psbt_shim = 2; */ - if (message.shim.oneofKind === "psbtShim") - PsbtShim.internalBinaryWrite(message.shim.psbtShim, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.FundingShim - */ -export const FundingShim = new FundingShim$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class FundingShimCancel$Type extends MessageType { - constructor() { - super("lnrpc.FundingShimCancel", [ - { no: 1, name: "pending_chan_id", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { pendingChanId: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes pending_chan_id */ 1: - message.pendingChanId = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes pending_chan_id = 1; */ - if (message.pendingChanId.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.pendingChanId); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.FundingShimCancel - */ -export const FundingShimCancel = new FundingShimCancel$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class FundingPsbtVerify$Type extends MessageType { - constructor() { - super("lnrpc.FundingPsbtVerify", [ - { no: 1, name: "funded_psbt", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "pending_chan_id", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "skip_finalize", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { fundedPsbt: new Uint8Array(0), pendingChanId: new Uint8Array(0), skipFinalize: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes funded_psbt */ 1: - message.fundedPsbt = reader.bytes(); - break; - case /* bytes pending_chan_id */ 2: - message.pendingChanId = reader.bytes(); - break; - case /* bool skip_finalize */ 3: - message.skipFinalize = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes funded_psbt = 1; */ - if (message.fundedPsbt.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.fundedPsbt); - /* bytes pending_chan_id = 2; */ - if (message.pendingChanId.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.pendingChanId); - /* bool skip_finalize = 3; */ - if (message.skipFinalize !== false) - writer.tag(3, WireType.Varint).bool(message.skipFinalize); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.FundingPsbtVerify - */ -export const FundingPsbtVerify = new FundingPsbtVerify$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class FundingPsbtFinalize$Type extends MessageType { - constructor() { - super("lnrpc.FundingPsbtFinalize", [ - { no: 1, name: "signed_psbt", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "pending_chan_id", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "final_raw_tx", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { signedPsbt: new Uint8Array(0), pendingChanId: new Uint8Array(0), finalRawTx: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes signed_psbt */ 1: - message.signedPsbt = reader.bytes(); - break; - case /* bytes pending_chan_id */ 2: - message.pendingChanId = reader.bytes(); - break; - case /* bytes final_raw_tx */ 3: - message.finalRawTx = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes signed_psbt = 1; */ - if (message.signedPsbt.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.signedPsbt); - /* bytes pending_chan_id = 2; */ - if (message.pendingChanId.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.pendingChanId); - /* bytes final_raw_tx = 3; */ - if (message.finalRawTx.length) - writer.tag(3, WireType.LengthDelimited).bytes(message.finalRawTx); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.FundingPsbtFinalize - */ -export const FundingPsbtFinalize = new FundingPsbtFinalize$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class FundingTransitionMsg$Type extends MessageType { - constructor() { - super("lnrpc.FundingTransitionMsg", [ - { no: 1, name: "shim_register", kind: "message", oneof: "trigger", T: () => FundingShim }, - { no: 2, name: "shim_cancel", kind: "message", oneof: "trigger", T: () => FundingShimCancel }, - { no: 3, name: "psbt_verify", kind: "message", oneof: "trigger", T: () => FundingPsbtVerify }, - { no: 4, name: "psbt_finalize", kind: "message", oneof: "trigger", T: () => FundingPsbtFinalize } - ]); - } - create(value) { - const message = { trigger: { oneofKind: undefined } }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.FundingShim shim_register */ 1: - message.trigger = { - oneofKind: "shimRegister", - shimRegister: FundingShim.internalBinaryRead(reader, reader.uint32(), options, message.trigger.shimRegister) - }; - break; - case /* lnrpc.FundingShimCancel shim_cancel */ 2: - message.trigger = { - oneofKind: "shimCancel", - shimCancel: FundingShimCancel.internalBinaryRead(reader, reader.uint32(), options, message.trigger.shimCancel) - }; - break; - case /* lnrpc.FundingPsbtVerify psbt_verify */ 3: - message.trigger = { - oneofKind: "psbtVerify", - psbtVerify: FundingPsbtVerify.internalBinaryRead(reader, reader.uint32(), options, message.trigger.psbtVerify) - }; - break; - case /* lnrpc.FundingPsbtFinalize psbt_finalize */ 4: - message.trigger = { - oneofKind: "psbtFinalize", - psbtFinalize: FundingPsbtFinalize.internalBinaryRead(reader, reader.uint32(), options, message.trigger.psbtFinalize) - }; - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.FundingShim shim_register = 1; */ - if (message.trigger.oneofKind === "shimRegister") - FundingShim.internalBinaryWrite(message.trigger.shimRegister, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.FundingShimCancel shim_cancel = 2; */ - if (message.trigger.oneofKind === "shimCancel") - FundingShimCancel.internalBinaryWrite(message.trigger.shimCancel, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.FundingPsbtVerify psbt_verify = 3; */ - if (message.trigger.oneofKind === "psbtVerify") - FundingPsbtVerify.internalBinaryWrite(message.trigger.psbtVerify, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.FundingPsbtFinalize psbt_finalize = 4; */ - if (message.trigger.oneofKind === "psbtFinalize") - FundingPsbtFinalize.internalBinaryWrite(message.trigger.psbtFinalize, writer.tag(4, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.FundingTransitionMsg - */ -export const FundingTransitionMsg = new FundingTransitionMsg$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class FundingStateStepResp$Type extends MessageType { - constructor() { - super("lnrpc.FundingStateStepResp", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.FundingStateStepResp - */ -export const FundingStateStepResp = new FundingStateStepResp$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PendingHTLC$Type extends MessageType { - constructor() { - super("lnrpc.PendingHTLC", [ - { no: 1, name: "incoming", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 2, name: "amount", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "outpoint", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 4, name: "maturity_height", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 5, name: "blocks_til_maturity", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 6, name: "stage", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } - ]); - } - create(value) { - const message = { incoming: false, amount: 0, outpoint: "", maturityHeight: 0, blocksTilMaturity: 0, stage: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool incoming */ 1: - message.incoming = reader.bool(); - break; - case /* int64 amount */ 2: - message.amount = reader.int64().toNumber(); - break; - case /* string outpoint */ 3: - message.outpoint = reader.string(); - break; - case /* uint32 maturity_height */ 4: - message.maturityHeight = reader.uint32(); - break; - case /* int32 blocks_til_maturity */ 5: - message.blocksTilMaturity = reader.int32(); - break; - case /* uint32 stage */ 6: - message.stage = reader.uint32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool incoming = 1; */ - if (message.incoming !== false) - writer.tag(1, WireType.Varint).bool(message.incoming); - /* int64 amount = 2; */ - if (message.amount !== 0) - writer.tag(2, WireType.Varint).int64(message.amount); - /* string outpoint = 3; */ - if (message.outpoint !== "") - writer.tag(3, WireType.LengthDelimited).string(message.outpoint); - /* uint32 maturity_height = 4; */ - if (message.maturityHeight !== 0) - writer.tag(4, WireType.Varint).uint32(message.maturityHeight); - /* int32 blocks_til_maturity = 5; */ - if (message.blocksTilMaturity !== 0) - writer.tag(5, WireType.Varint).int32(message.blocksTilMaturity); - /* uint32 stage = 6; */ - if (message.stage !== 0) - writer.tag(6, WireType.Varint).uint32(message.stage); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PendingHTLC - */ -export const PendingHTLC = new PendingHTLC$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PendingChannelsRequest$Type extends MessageType { - constructor() { - super("lnrpc.PendingChannelsRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsRequest - */ -export const PendingChannelsRequest = new PendingChannelsRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PendingChannelsResponse$Type extends MessageType { - constructor() { - super("lnrpc.PendingChannelsResponse", [ - { no: 1, name: "total_limbo_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "pending_open_channels", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PendingChannelsResponse_PendingOpenChannel }, - { no: 3, name: "pending_closing_channels", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PendingChannelsResponse_ClosedChannel }, - { no: 4, name: "pending_force_closing_channels", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PendingChannelsResponse_ForceClosedChannel }, - { no: 5, name: "waiting_close_channels", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PendingChannelsResponse_WaitingCloseChannel } - ]); - } - create(value) { - const message = { totalLimboBalance: 0, pendingOpenChannels: [], pendingClosingChannels: [], pendingForceClosingChannels: [], waitingCloseChannels: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* int64 total_limbo_balance */ 1: - message.totalLimboBalance = reader.int64().toNumber(); - break; - case /* repeated lnrpc.PendingChannelsResponse.PendingOpenChannel pending_open_channels */ 2: - message.pendingOpenChannels.push(PendingChannelsResponse_PendingOpenChannel.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* repeated lnrpc.PendingChannelsResponse.ClosedChannel pending_closing_channels = 3 [deprecated = true];*/ 3: - message.pendingClosingChannels.push(PendingChannelsResponse_ClosedChannel.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* repeated lnrpc.PendingChannelsResponse.ForceClosedChannel pending_force_closing_channels */ 4: - message.pendingForceClosingChannels.push(PendingChannelsResponse_ForceClosedChannel.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* repeated lnrpc.PendingChannelsResponse.WaitingCloseChannel waiting_close_channels */ 5: - message.waitingCloseChannels.push(PendingChannelsResponse_WaitingCloseChannel.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* int64 total_limbo_balance = 1; */ - if (message.totalLimboBalance !== 0) - writer.tag(1, WireType.Varint).int64(message.totalLimboBalance); - /* repeated lnrpc.PendingChannelsResponse.PendingOpenChannel pending_open_channels = 2; */ - for (let i = 0; i < message.pendingOpenChannels.length; i++) - PendingChannelsResponse_PendingOpenChannel.internalBinaryWrite(message.pendingOpenChannels[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - /* repeated lnrpc.PendingChannelsResponse.ClosedChannel pending_closing_channels = 3 [deprecated = true]; */ - for (let i = 0; i < message.pendingClosingChannels.length; i++) - PendingChannelsResponse_ClosedChannel.internalBinaryWrite(message.pendingClosingChannels[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join(); - /* repeated lnrpc.PendingChannelsResponse.ForceClosedChannel pending_force_closing_channels = 4; */ - for (let i = 0; i < message.pendingForceClosingChannels.length; i++) - PendingChannelsResponse_ForceClosedChannel.internalBinaryWrite(message.pendingForceClosingChannels[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join(); - /* repeated lnrpc.PendingChannelsResponse.WaitingCloseChannel waiting_close_channels = 5; */ - for (let i = 0; i < message.waitingCloseChannels.length; i++) - PendingChannelsResponse_WaitingCloseChannel.internalBinaryWrite(message.waitingCloseChannels[i], writer.tag(5, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsResponse - */ -export const PendingChannelsResponse = new PendingChannelsResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PendingChannelsResponse_PendingChannel$Type extends MessageType { - constructor() { - super("lnrpc.PendingChannelsResponse.PendingChannel", [ - { no: 1, name: "remote_node_pub", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "channel_point", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "capacity", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "local_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "remote_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "local_chan_reserve_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "remote_chan_reserve_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "initiator", kind: "enum", T: () => ["lnrpc.Initiator", Initiator, "INITIATOR_"] }, - { no: 9, name: "commitment_type", kind: "enum", T: () => ["lnrpc.CommitmentType", CommitmentType] }, - { no: 10, name: "num_forwarding_packages", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 11, name: "chan_status_flags", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 12, name: "private", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { remoteNodePub: "", channelPoint: "", capacity: 0, localBalance: 0, remoteBalance: 0, localChanReserveSat: 0, remoteChanReserveSat: 0, initiator: 0, commitmentType: 0, numForwardingPackages: 0, chanStatusFlags: "", private: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string remote_node_pub */ 1: - message.remoteNodePub = reader.string(); - break; - case /* string channel_point */ 2: - message.channelPoint = reader.string(); - break; - case /* int64 capacity */ 3: - message.capacity = reader.int64().toNumber(); - break; - case /* int64 local_balance */ 4: - message.localBalance = reader.int64().toNumber(); - break; - case /* int64 remote_balance */ 5: - message.remoteBalance = reader.int64().toNumber(); - break; - case /* int64 local_chan_reserve_sat */ 6: - message.localChanReserveSat = reader.int64().toNumber(); - break; - case /* int64 remote_chan_reserve_sat */ 7: - message.remoteChanReserveSat = reader.int64().toNumber(); - break; - case /* lnrpc.Initiator initiator */ 8: - message.initiator = reader.int32(); - break; - case /* lnrpc.CommitmentType commitment_type */ 9: - message.commitmentType = reader.int32(); - break; - case /* int64 num_forwarding_packages */ 10: - message.numForwardingPackages = reader.int64().toNumber(); - break; - case /* string chan_status_flags */ 11: - message.chanStatusFlags = reader.string(); - break; - case /* bool private */ 12: - message.private = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string remote_node_pub = 1; */ - if (message.remoteNodePub !== "") - writer.tag(1, WireType.LengthDelimited).string(message.remoteNodePub); - /* string channel_point = 2; */ - if (message.channelPoint !== "") - writer.tag(2, WireType.LengthDelimited).string(message.channelPoint); - /* int64 capacity = 3; */ - if (message.capacity !== 0) - writer.tag(3, WireType.Varint).int64(message.capacity); - /* int64 local_balance = 4; */ - if (message.localBalance !== 0) - writer.tag(4, WireType.Varint).int64(message.localBalance); - /* int64 remote_balance = 5; */ - if (message.remoteBalance !== 0) - writer.tag(5, WireType.Varint).int64(message.remoteBalance); - /* int64 local_chan_reserve_sat = 6; */ - if (message.localChanReserveSat !== 0) - writer.tag(6, WireType.Varint).int64(message.localChanReserveSat); - /* int64 remote_chan_reserve_sat = 7; */ - if (message.remoteChanReserveSat !== 0) - writer.tag(7, WireType.Varint).int64(message.remoteChanReserveSat); - /* lnrpc.Initiator initiator = 8; */ - if (message.initiator !== 0) - writer.tag(8, WireType.Varint).int32(message.initiator); - /* lnrpc.CommitmentType commitment_type = 9; */ - if (message.commitmentType !== 0) - writer.tag(9, WireType.Varint).int32(message.commitmentType); - /* int64 num_forwarding_packages = 10; */ - if (message.numForwardingPackages !== 0) - writer.tag(10, WireType.Varint).int64(message.numForwardingPackages); - /* string chan_status_flags = 11; */ - if (message.chanStatusFlags !== "") - writer.tag(11, WireType.LengthDelimited).string(message.chanStatusFlags); - /* bool private = 12; */ - if (message.private !== false) - writer.tag(12, WireType.Varint).bool(message.private); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsResponse.PendingChannel - */ -export const PendingChannelsResponse_PendingChannel = new PendingChannelsResponse_PendingChannel$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PendingChannelsResponse_PendingOpenChannel$Type extends MessageType { - constructor() { - super("lnrpc.PendingChannelsResponse.PendingOpenChannel", [ - { no: 1, name: "channel", kind: "message", T: () => PendingChannelsResponse_PendingChannel }, - { no: 4, name: "commit_fee", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "commit_weight", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "fee_per_kw", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { commitFee: 0, commitWeight: 0, feePerKw: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.PendingChannelsResponse.PendingChannel channel */ 1: - message.channel = PendingChannelsResponse_PendingChannel.internalBinaryRead(reader, reader.uint32(), options, message.channel); - break; - case /* int64 commit_fee */ 4: - message.commitFee = reader.int64().toNumber(); - break; - case /* int64 commit_weight */ 5: - message.commitWeight = reader.int64().toNumber(); - break; - case /* int64 fee_per_kw */ 6: - message.feePerKw = reader.int64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.PendingChannelsResponse.PendingChannel channel = 1; */ - if (message.channel) - PendingChannelsResponse_PendingChannel.internalBinaryWrite(message.channel, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* int64 commit_fee = 4; */ - if (message.commitFee !== 0) - writer.tag(4, WireType.Varint).int64(message.commitFee); - /* int64 commit_weight = 5; */ - if (message.commitWeight !== 0) - writer.tag(5, WireType.Varint).int64(message.commitWeight); - /* int64 fee_per_kw = 6; */ - if (message.feePerKw !== 0) - writer.tag(6, WireType.Varint).int64(message.feePerKw); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsResponse.PendingOpenChannel - */ -export const PendingChannelsResponse_PendingOpenChannel = new PendingChannelsResponse_PendingOpenChannel$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PendingChannelsResponse_WaitingCloseChannel$Type extends MessageType { - constructor() { - super("lnrpc.PendingChannelsResponse.WaitingCloseChannel", [ - { no: 1, name: "channel", kind: "message", T: () => PendingChannelsResponse_PendingChannel }, - { no: 2, name: "limbo_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "commitments", kind: "message", T: () => PendingChannelsResponse_Commitments }, - { no: 4, name: "closing_txid", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { limboBalance: 0, closingTxid: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.PendingChannelsResponse.PendingChannel channel */ 1: - message.channel = PendingChannelsResponse_PendingChannel.internalBinaryRead(reader, reader.uint32(), options, message.channel); - break; - case /* int64 limbo_balance */ 2: - message.limboBalance = reader.int64().toNumber(); - break; - case /* lnrpc.PendingChannelsResponse.Commitments commitments */ 3: - message.commitments = PendingChannelsResponse_Commitments.internalBinaryRead(reader, reader.uint32(), options, message.commitments); - break; - case /* string closing_txid */ 4: - message.closingTxid = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.PendingChannelsResponse.PendingChannel channel = 1; */ - if (message.channel) - PendingChannelsResponse_PendingChannel.internalBinaryWrite(message.channel, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* int64 limbo_balance = 2; */ - if (message.limboBalance !== 0) - writer.tag(2, WireType.Varint).int64(message.limboBalance); - /* lnrpc.PendingChannelsResponse.Commitments commitments = 3; */ - if (message.commitments) - PendingChannelsResponse_Commitments.internalBinaryWrite(message.commitments, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); - /* string closing_txid = 4; */ - if (message.closingTxid !== "") - writer.tag(4, WireType.LengthDelimited).string(message.closingTxid); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsResponse.WaitingCloseChannel - */ -export const PendingChannelsResponse_WaitingCloseChannel = new PendingChannelsResponse_WaitingCloseChannel$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PendingChannelsResponse_Commitments$Type extends MessageType { - constructor() { - super("lnrpc.PendingChannelsResponse.Commitments", [ - { no: 1, name: "local_txid", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "remote_txid", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "remote_pending_txid", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 4, name: "local_commit_fee_sat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "remote_commit_fee_sat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "remote_pending_commit_fee_sat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { localTxid: "", remoteTxid: "", remotePendingTxid: "", localCommitFeeSat: 0, remoteCommitFeeSat: 0, remotePendingCommitFeeSat: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string local_txid */ 1: - message.localTxid = reader.string(); - break; - case /* string remote_txid */ 2: - message.remoteTxid = reader.string(); - break; - case /* string remote_pending_txid */ 3: - message.remotePendingTxid = reader.string(); - break; - case /* uint64 local_commit_fee_sat */ 4: - message.localCommitFeeSat = reader.uint64().toNumber(); - break; - case /* uint64 remote_commit_fee_sat */ 5: - message.remoteCommitFeeSat = reader.uint64().toNumber(); - break; - case /* uint64 remote_pending_commit_fee_sat */ 6: - message.remotePendingCommitFeeSat = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string local_txid = 1; */ - if (message.localTxid !== "") - writer.tag(1, WireType.LengthDelimited).string(message.localTxid); - /* string remote_txid = 2; */ - if (message.remoteTxid !== "") - writer.tag(2, WireType.LengthDelimited).string(message.remoteTxid); - /* string remote_pending_txid = 3; */ - if (message.remotePendingTxid !== "") - writer.tag(3, WireType.LengthDelimited).string(message.remotePendingTxid); - /* uint64 local_commit_fee_sat = 4; */ - if (message.localCommitFeeSat !== 0) - writer.tag(4, WireType.Varint).uint64(message.localCommitFeeSat); - /* uint64 remote_commit_fee_sat = 5; */ - if (message.remoteCommitFeeSat !== 0) - writer.tag(5, WireType.Varint).uint64(message.remoteCommitFeeSat); - /* uint64 remote_pending_commit_fee_sat = 6; */ - if (message.remotePendingCommitFeeSat !== 0) - writer.tag(6, WireType.Varint).uint64(message.remotePendingCommitFeeSat); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsResponse.Commitments - */ -export const PendingChannelsResponse_Commitments = new PendingChannelsResponse_Commitments$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PendingChannelsResponse_ClosedChannel$Type extends MessageType { - constructor() { - super("lnrpc.PendingChannelsResponse.ClosedChannel", [ - { no: 1, name: "channel", kind: "message", T: () => PendingChannelsResponse_PendingChannel }, - { no: 2, name: "closing_txid", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { closingTxid: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.PendingChannelsResponse.PendingChannel channel */ 1: - message.channel = PendingChannelsResponse_PendingChannel.internalBinaryRead(reader, reader.uint32(), options, message.channel); - break; - case /* string closing_txid */ 2: - message.closingTxid = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.PendingChannelsResponse.PendingChannel channel = 1; */ - if (message.channel) - PendingChannelsResponse_PendingChannel.internalBinaryWrite(message.channel, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* string closing_txid = 2; */ - if (message.closingTxid !== "") - writer.tag(2, WireType.LengthDelimited).string(message.closingTxid); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsResponse.ClosedChannel - */ -export const PendingChannelsResponse_ClosedChannel = new PendingChannelsResponse_ClosedChannel$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PendingChannelsResponse_ForceClosedChannel$Type extends MessageType { - constructor() { - super("lnrpc.PendingChannelsResponse.ForceClosedChannel", [ - { no: 1, name: "channel", kind: "message", T: () => PendingChannelsResponse_PendingChannel }, - { no: 2, name: "closing_txid", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "limbo_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "maturity_height", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 5, name: "blocks_til_maturity", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 6, name: "recovered_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "pending_htlcs", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PendingHTLC }, - { no: 9, name: "anchor", kind: "enum", T: () => ["lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorState", PendingChannelsResponse_ForceClosedChannel_AnchorState] } - ]); - } - create(value) { - const message = { closingTxid: "", limboBalance: 0, maturityHeight: 0, blocksTilMaturity: 0, recoveredBalance: 0, pendingHtlcs: [], anchor: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.PendingChannelsResponse.PendingChannel channel */ 1: - message.channel = PendingChannelsResponse_PendingChannel.internalBinaryRead(reader, reader.uint32(), options, message.channel); - break; - case /* string closing_txid */ 2: - message.closingTxid = reader.string(); - break; - case /* int64 limbo_balance */ 3: - message.limboBalance = reader.int64().toNumber(); - break; - case /* uint32 maturity_height */ 4: - message.maturityHeight = reader.uint32(); - break; - case /* int32 blocks_til_maturity */ 5: - message.blocksTilMaturity = reader.int32(); - break; - case /* int64 recovered_balance */ 6: - message.recoveredBalance = reader.int64().toNumber(); - break; - case /* repeated lnrpc.PendingHTLC pending_htlcs */ 8: - message.pendingHtlcs.push(PendingHTLC.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorState anchor */ 9: - message.anchor = reader.int32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.PendingChannelsResponse.PendingChannel channel = 1; */ - if (message.channel) - PendingChannelsResponse_PendingChannel.internalBinaryWrite(message.channel, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* string closing_txid = 2; */ - if (message.closingTxid !== "") - writer.tag(2, WireType.LengthDelimited).string(message.closingTxid); - /* int64 limbo_balance = 3; */ - if (message.limboBalance !== 0) - writer.tag(3, WireType.Varint).int64(message.limboBalance); - /* uint32 maturity_height = 4; */ - if (message.maturityHeight !== 0) - writer.tag(4, WireType.Varint).uint32(message.maturityHeight); - /* int32 blocks_til_maturity = 5; */ - if (message.blocksTilMaturity !== 0) - writer.tag(5, WireType.Varint).int32(message.blocksTilMaturity); - /* int64 recovered_balance = 6; */ - if (message.recoveredBalance !== 0) - writer.tag(6, WireType.Varint).int64(message.recoveredBalance); - /* repeated lnrpc.PendingHTLC pending_htlcs = 8; */ - for (let i = 0; i < message.pendingHtlcs.length; i++) - PendingHTLC.internalBinaryWrite(message.pendingHtlcs[i], writer.tag(8, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorState anchor = 9; */ - if (message.anchor !== 0) - writer.tag(9, WireType.Varint).int32(message.anchor); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PendingChannelsResponse.ForceClosedChannel - */ -export const PendingChannelsResponse_ForceClosedChannel = new PendingChannelsResponse_ForceClosedChannel$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelEventSubscription$Type extends MessageType { - constructor() { - super("lnrpc.ChannelEventSubscription", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelEventSubscription - */ -export const ChannelEventSubscription = new ChannelEventSubscription$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelEventUpdate$Type extends MessageType { - constructor() { - super("lnrpc.ChannelEventUpdate", [ - { no: 1, name: "open_channel", kind: "message", oneof: "channel", T: () => Channel }, - { no: 2, name: "closed_channel", kind: "message", oneof: "channel", T: () => ChannelCloseSummary }, - { no: 3, name: "active_channel", kind: "message", oneof: "channel", T: () => ChannelPoint }, - { no: 4, name: "inactive_channel", kind: "message", oneof: "channel", T: () => ChannelPoint }, - { no: 6, name: "pending_open_channel", kind: "message", oneof: "channel", T: () => PendingUpdate }, - { no: 7, name: "fully_resolved_channel", kind: "message", oneof: "channel", T: () => ChannelPoint }, - { no: 5, name: "type", kind: "enum", T: () => ["lnrpc.ChannelEventUpdate.UpdateType", ChannelEventUpdate_UpdateType] } - ]); - } - create(value) { - const message = { channel: { oneofKind: undefined }, type: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.Channel open_channel */ 1: - message.channel = { - oneofKind: "openChannel", - openChannel: Channel.internalBinaryRead(reader, reader.uint32(), options, message.channel.openChannel) - }; - break; - case /* lnrpc.ChannelCloseSummary closed_channel */ 2: - message.channel = { - oneofKind: "closedChannel", - closedChannel: ChannelCloseSummary.internalBinaryRead(reader, reader.uint32(), options, message.channel.closedChannel) - }; - break; - case /* lnrpc.ChannelPoint active_channel */ 3: - message.channel = { - oneofKind: "activeChannel", - activeChannel: ChannelPoint.internalBinaryRead(reader, reader.uint32(), options, message.channel.activeChannel) - }; - break; - case /* lnrpc.ChannelPoint inactive_channel */ 4: - message.channel = { - oneofKind: "inactiveChannel", - inactiveChannel: ChannelPoint.internalBinaryRead(reader, reader.uint32(), options, message.channel.inactiveChannel) - }; - break; - case /* lnrpc.PendingUpdate pending_open_channel */ 6: - message.channel = { - oneofKind: "pendingOpenChannel", - pendingOpenChannel: PendingUpdate.internalBinaryRead(reader, reader.uint32(), options, message.channel.pendingOpenChannel) - }; - break; - case /* lnrpc.ChannelPoint fully_resolved_channel */ 7: - message.channel = { - oneofKind: "fullyResolvedChannel", - fullyResolvedChannel: ChannelPoint.internalBinaryRead(reader, reader.uint32(), options, message.channel.fullyResolvedChannel) - }; - break; - case /* lnrpc.ChannelEventUpdate.UpdateType type */ 5: - message.type = reader.int32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.Channel open_channel = 1; */ - if (message.channel.oneofKind === "openChannel") - Channel.internalBinaryWrite(message.channel.openChannel, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.ChannelCloseSummary closed_channel = 2; */ - if (message.channel.oneofKind === "closedChannel") - ChannelCloseSummary.internalBinaryWrite(message.channel.closedChannel, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.ChannelPoint active_channel = 3; */ - if (message.channel.oneofKind === "activeChannel") - ChannelPoint.internalBinaryWrite(message.channel.activeChannel, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.ChannelPoint inactive_channel = 4; */ - if (message.channel.oneofKind === "inactiveChannel") - ChannelPoint.internalBinaryWrite(message.channel.inactiveChannel, writer.tag(4, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.PendingUpdate pending_open_channel = 6; */ - if (message.channel.oneofKind === "pendingOpenChannel") - PendingUpdate.internalBinaryWrite(message.channel.pendingOpenChannel, writer.tag(6, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.ChannelPoint fully_resolved_channel = 7; */ - if (message.channel.oneofKind === "fullyResolvedChannel") - ChannelPoint.internalBinaryWrite(message.channel.fullyResolvedChannel, writer.tag(7, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.ChannelEventUpdate.UpdateType type = 5; */ - if (message.type !== 0) - writer.tag(5, WireType.Varint).int32(message.type); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelEventUpdate - */ -export const ChannelEventUpdate = new ChannelEventUpdate$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class WalletAccountBalance$Type extends MessageType { - constructor() { - super("lnrpc.WalletAccountBalance", [ - { no: 1, name: "confirmed_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "unconfirmed_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { confirmedBalance: 0, unconfirmedBalance: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* int64 confirmed_balance */ 1: - message.confirmedBalance = reader.int64().toNumber(); - break; - case /* int64 unconfirmed_balance */ 2: - message.unconfirmedBalance = reader.int64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* int64 confirmed_balance = 1; */ - if (message.confirmedBalance !== 0) - writer.tag(1, WireType.Varint).int64(message.confirmedBalance); - /* int64 unconfirmed_balance = 2; */ - if (message.unconfirmedBalance !== 0) - writer.tag(2, WireType.Varint).int64(message.unconfirmedBalance); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.WalletAccountBalance - */ -export const WalletAccountBalance = new WalletAccountBalance$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class WalletBalanceRequest$Type extends MessageType { - constructor() { - super("lnrpc.WalletBalanceRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.WalletBalanceRequest - */ -export const WalletBalanceRequest = new WalletBalanceRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class WalletBalanceResponse$Type extends MessageType { - constructor() { - super("lnrpc.WalletBalanceResponse", [ - { no: 1, name: "total_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "confirmed_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "unconfirmed_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "locked_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "reserved_balance_anchor_chan", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "account_balance", kind: "map", K: 9 /*ScalarType.STRING*/, V: { kind: "message", T: () => WalletAccountBalance } } - ]); - } - create(value) { - const message = { totalBalance: 0, confirmedBalance: 0, unconfirmedBalance: 0, lockedBalance: 0, reservedBalanceAnchorChan: 0, accountBalance: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* int64 total_balance */ 1: - message.totalBalance = reader.int64().toNumber(); - break; - case /* int64 confirmed_balance */ 2: - message.confirmedBalance = reader.int64().toNumber(); - break; - case /* int64 unconfirmed_balance */ 3: - message.unconfirmedBalance = reader.int64().toNumber(); - break; - case /* int64 locked_balance */ 5: - message.lockedBalance = reader.int64().toNumber(); - break; - case /* int64 reserved_balance_anchor_chan */ 6: - message.reservedBalanceAnchorChan = reader.int64().toNumber(); - break; - case /* map account_balance */ 4: - this.binaryReadMap4(message.accountBalance, reader, options); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap4(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.string(); - break; - case 2: - val = WalletAccountBalance.internalBinaryRead(reader, reader.uint32(), options); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.WalletBalanceResponse.account_balance"); - } - } - map[key ?? ""] = val ?? WalletAccountBalance.create(); - } - internalBinaryWrite(message, writer, options) { - /* int64 total_balance = 1; */ - if (message.totalBalance !== 0) - writer.tag(1, WireType.Varint).int64(message.totalBalance); - /* int64 confirmed_balance = 2; */ - if (message.confirmedBalance !== 0) - writer.tag(2, WireType.Varint).int64(message.confirmedBalance); - /* int64 unconfirmed_balance = 3; */ - if (message.unconfirmedBalance !== 0) - writer.tag(3, WireType.Varint).int64(message.unconfirmedBalance); - /* int64 locked_balance = 5; */ - if (message.lockedBalance !== 0) - writer.tag(5, WireType.Varint).int64(message.lockedBalance); - /* int64 reserved_balance_anchor_chan = 6; */ - if (message.reservedBalanceAnchorChan !== 0) - writer.tag(6, WireType.Varint).int64(message.reservedBalanceAnchorChan); - /* map account_balance = 4; */ - for (let k of Object.keys(message.accountBalance)) { - writer.tag(4, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); - writer.tag(2, WireType.LengthDelimited).fork(); - WalletAccountBalance.internalBinaryWrite(message.accountBalance[k], writer, options); - writer.join().join(); - } - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.WalletBalanceResponse - */ -export const WalletBalanceResponse = new WalletBalanceResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class Amount$Type extends MessageType { - constructor() { - super("lnrpc.Amount", [ - { no: 1, name: "sat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { sat: 0, msat: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 sat */ 1: - message.sat = reader.uint64().toNumber(); - break; - case /* uint64 msat */ 2: - message.msat = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 sat = 1; */ - if (message.sat !== 0) - writer.tag(1, WireType.Varint).uint64(message.sat); - /* uint64 msat = 2; */ - if (message.msat !== 0) - writer.tag(2, WireType.Varint).uint64(message.msat); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.Amount - */ -export const Amount = new Amount$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelBalanceRequest$Type extends MessageType { - constructor() { - super("lnrpc.ChannelBalanceRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelBalanceRequest - */ -export const ChannelBalanceRequest = new ChannelBalanceRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelBalanceResponse$Type extends MessageType { - constructor() { - super("lnrpc.ChannelBalanceResponse", [ - { no: 1, name: "balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "pending_open_balance", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "local_balance", kind: "message", T: () => Amount }, - { no: 4, name: "remote_balance", kind: "message", T: () => Amount }, - { no: 5, name: "unsettled_local_balance", kind: "message", T: () => Amount }, - { no: 6, name: "unsettled_remote_balance", kind: "message", T: () => Amount }, - { no: 7, name: "pending_open_local_balance", kind: "message", T: () => Amount }, - { no: 8, name: "pending_open_remote_balance", kind: "message", T: () => Amount } - ]); - } - create(value) { - const message = { balance: 0, pendingOpenBalance: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* int64 balance = 1 [deprecated = true];*/ 1: - message.balance = reader.int64().toNumber(); - break; - case /* int64 pending_open_balance = 2 [deprecated = true];*/ 2: - message.pendingOpenBalance = reader.int64().toNumber(); - break; - case /* lnrpc.Amount local_balance */ 3: - message.localBalance = Amount.internalBinaryRead(reader, reader.uint32(), options, message.localBalance); - break; - case /* lnrpc.Amount remote_balance */ 4: - message.remoteBalance = Amount.internalBinaryRead(reader, reader.uint32(), options, message.remoteBalance); - break; - case /* lnrpc.Amount unsettled_local_balance */ 5: - message.unsettledLocalBalance = Amount.internalBinaryRead(reader, reader.uint32(), options, message.unsettledLocalBalance); - break; - case /* lnrpc.Amount unsettled_remote_balance */ 6: - message.unsettledRemoteBalance = Amount.internalBinaryRead(reader, reader.uint32(), options, message.unsettledRemoteBalance); - break; - case /* lnrpc.Amount pending_open_local_balance */ 7: - message.pendingOpenLocalBalance = Amount.internalBinaryRead(reader, reader.uint32(), options, message.pendingOpenLocalBalance); - break; - case /* lnrpc.Amount pending_open_remote_balance */ 8: - message.pendingOpenRemoteBalance = Amount.internalBinaryRead(reader, reader.uint32(), options, message.pendingOpenRemoteBalance); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* int64 balance = 1 [deprecated = true]; */ - if (message.balance !== 0) - writer.tag(1, WireType.Varint).int64(message.balance); - /* int64 pending_open_balance = 2 [deprecated = true]; */ - if (message.pendingOpenBalance !== 0) - writer.tag(2, WireType.Varint).int64(message.pendingOpenBalance); - /* lnrpc.Amount local_balance = 3; */ - if (message.localBalance) - Amount.internalBinaryWrite(message.localBalance, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.Amount remote_balance = 4; */ - if (message.remoteBalance) - Amount.internalBinaryWrite(message.remoteBalance, writer.tag(4, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.Amount unsettled_local_balance = 5; */ - if (message.unsettledLocalBalance) - Amount.internalBinaryWrite(message.unsettledLocalBalance, writer.tag(5, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.Amount unsettled_remote_balance = 6; */ - if (message.unsettledRemoteBalance) - Amount.internalBinaryWrite(message.unsettledRemoteBalance, writer.tag(6, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.Amount pending_open_local_balance = 7; */ - if (message.pendingOpenLocalBalance) - Amount.internalBinaryWrite(message.pendingOpenLocalBalance, writer.tag(7, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.Amount pending_open_remote_balance = 8; */ - if (message.pendingOpenRemoteBalance) - Amount.internalBinaryWrite(message.pendingOpenRemoteBalance, writer.tag(8, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelBalanceResponse - */ -export const ChannelBalanceResponse = new ChannelBalanceResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class QueryRoutesRequest$Type extends MessageType { - constructor() { - super("lnrpc.QueryRoutesRequest", [ - { no: 1, name: "pub_key", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "amt", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 12, name: "amt_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "final_cltv_delta", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 5, name: "fee_limit", kind: "message", T: () => FeeLimit }, - { no: 6, name: "ignored_nodes", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 12 /*ScalarType.BYTES*/ }, - { no: 7, name: "ignored_edges", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => EdgeLocator }, - { no: 8, name: "source_pub_key", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 9, name: "use_mission_control", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 10, name: "ignored_pairs", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => NodePair }, - { no: 11, name: "cltv_limit", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 13, name: "dest_custom_records", kind: "map", K: 4 /*ScalarType.UINT64*/, V: { kind: "scalar", T: 12 /*ScalarType.BYTES*/ } }, - { no: 14, name: "outgoing_chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 15, name: "last_hop_pubkey", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 16, name: "route_hints", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => RouteHint }, - { no: 17, name: "dest_features", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["lnrpc.FeatureBit", FeatureBit] }, - { no: 18, name: "time_pref", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ } - ]); - } - create(value) { - const message = { pubKey: "", amt: 0, amtMsat: 0, finalCltvDelta: 0, ignoredNodes: [], ignoredEdges: [], sourcePubKey: "", useMissionControl: false, ignoredPairs: [], cltvLimit: 0, destCustomRecords: {}, outgoingChanId: "0", lastHopPubkey: new Uint8Array(0), routeHints: [], destFeatures: [], timePref: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string pub_key */ 1: - message.pubKey = reader.string(); - break; - case /* int64 amt */ 2: - message.amt = reader.int64().toNumber(); - break; - case /* int64 amt_msat */ 12: - message.amtMsat = reader.int64().toNumber(); - break; - case /* int32 final_cltv_delta */ 4: - message.finalCltvDelta = reader.int32(); - break; - case /* lnrpc.FeeLimit fee_limit */ 5: - message.feeLimit = FeeLimit.internalBinaryRead(reader, reader.uint32(), options, message.feeLimit); - break; - case /* repeated bytes ignored_nodes */ 6: - message.ignoredNodes.push(reader.bytes()); - break; - case /* repeated lnrpc.EdgeLocator ignored_edges = 7 [deprecated = true];*/ 7: - message.ignoredEdges.push(EdgeLocator.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* string source_pub_key */ 8: - message.sourcePubKey = reader.string(); - break; - case /* bool use_mission_control */ 9: - message.useMissionControl = reader.bool(); - break; - case /* repeated lnrpc.NodePair ignored_pairs */ 10: - message.ignoredPairs.push(NodePair.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* uint32 cltv_limit */ 11: - message.cltvLimit = reader.uint32(); - break; - case /* map dest_custom_records */ 13: - this.binaryReadMap13(message.destCustomRecords, reader, options); - break; - case /* uint64 outgoing_chan_id = 14 [jstype = JS_STRING];*/ 14: - message.outgoingChanId = reader.uint64().toString(); - break; - case /* bytes last_hop_pubkey */ 15: - message.lastHopPubkey = reader.bytes(); - break; - case /* repeated lnrpc.RouteHint route_hints */ 16: - message.routeHints.push(RouteHint.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* repeated lnrpc.FeatureBit dest_features */ 17: - if (wireType === WireType.LengthDelimited) - for (let e = reader.int32() + reader.pos; reader.pos < e;) - message.destFeatures.push(reader.int32()); - else - message.destFeatures.push(reader.int32()); - break; - case /* double time_pref */ 18: - message.timePref = reader.double(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap13(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint64().toString(); - break; - case 2: - val = reader.bytes(); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.QueryRoutesRequest.dest_custom_records"); - } - } - map[key ?? "0"] = val ?? new Uint8Array(0); - } - internalBinaryWrite(message, writer, options) { - /* string pub_key = 1; */ - if (message.pubKey !== "") - writer.tag(1, WireType.LengthDelimited).string(message.pubKey); - /* int64 amt = 2; */ - if (message.amt !== 0) - writer.tag(2, WireType.Varint).int64(message.amt); - /* int64 amt_msat = 12; */ - if (message.amtMsat !== 0) - writer.tag(12, WireType.Varint).int64(message.amtMsat); - /* int32 final_cltv_delta = 4; */ - if (message.finalCltvDelta !== 0) - writer.tag(4, WireType.Varint).int32(message.finalCltvDelta); - /* lnrpc.FeeLimit fee_limit = 5; */ - if (message.feeLimit) - FeeLimit.internalBinaryWrite(message.feeLimit, writer.tag(5, WireType.LengthDelimited).fork(), options).join(); - /* repeated bytes ignored_nodes = 6; */ - for (let i = 0; i < message.ignoredNodes.length; i++) - writer.tag(6, WireType.LengthDelimited).bytes(message.ignoredNodes[i]); - /* repeated lnrpc.EdgeLocator ignored_edges = 7 [deprecated = true]; */ - for (let i = 0; i < message.ignoredEdges.length; i++) - EdgeLocator.internalBinaryWrite(message.ignoredEdges[i], writer.tag(7, WireType.LengthDelimited).fork(), options).join(); - /* string source_pub_key = 8; */ - if (message.sourcePubKey !== "") - writer.tag(8, WireType.LengthDelimited).string(message.sourcePubKey); - /* bool use_mission_control = 9; */ - if (message.useMissionControl !== false) - writer.tag(9, WireType.Varint).bool(message.useMissionControl); - /* repeated lnrpc.NodePair ignored_pairs = 10; */ - for (let i = 0; i < message.ignoredPairs.length; i++) - NodePair.internalBinaryWrite(message.ignoredPairs[i], writer.tag(10, WireType.LengthDelimited).fork(), options).join(); - /* uint32 cltv_limit = 11; */ - if (message.cltvLimit !== 0) - writer.tag(11, WireType.Varint).uint32(message.cltvLimit); - /* map dest_custom_records = 13; */ - for (let k of Object.keys(message.destCustomRecords)) - writer.tag(13, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint64(k).tag(2, WireType.LengthDelimited).bytes(message.destCustomRecords[k]).join(); - /* uint64 outgoing_chan_id = 14 [jstype = JS_STRING]; */ - if (message.outgoingChanId !== "0") - writer.tag(14, WireType.Varint).uint64(message.outgoingChanId); - /* bytes last_hop_pubkey = 15; */ - if (message.lastHopPubkey.length) - writer.tag(15, WireType.LengthDelimited).bytes(message.lastHopPubkey); - /* repeated lnrpc.RouteHint route_hints = 16; */ - for (let i = 0; i < message.routeHints.length; i++) - RouteHint.internalBinaryWrite(message.routeHints[i], writer.tag(16, WireType.LengthDelimited).fork(), options).join(); - /* repeated lnrpc.FeatureBit dest_features = 17; */ - if (message.destFeatures.length) { - writer.tag(17, WireType.LengthDelimited).fork(); - for (let i = 0; i < message.destFeatures.length; i++) - writer.int32(message.destFeatures[i]); - writer.join(); - } - /* double time_pref = 18; */ - if (message.timePref !== 0) - writer.tag(18, WireType.Bit64).double(message.timePref); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.QueryRoutesRequest - */ -export const QueryRoutesRequest = new QueryRoutesRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class NodePair$Type extends MessageType { - constructor() { - super("lnrpc.NodePair", [ - { no: 1, name: "from", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "to", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { from: new Uint8Array(0), to: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes from */ 1: - message.from = reader.bytes(); - break; - case /* bytes to */ 2: - message.to = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes from = 1; */ - if (message.from.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.from); - /* bytes to = 2; */ - if (message.to.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.to); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.NodePair - */ -export const NodePair = new NodePair$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class EdgeLocator$Type extends MessageType { - constructor() { - super("lnrpc.EdgeLocator", [ - { no: 1, name: "channel_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 2, name: "direction_reverse", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { channelId: "0", directionReverse: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 channel_id = 1 [jstype = JS_STRING];*/ 1: - message.channelId = reader.uint64().toString(); - break; - case /* bool direction_reverse */ 2: - message.directionReverse = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 channel_id = 1 [jstype = JS_STRING]; */ - if (message.channelId !== "0") - writer.tag(1, WireType.Varint).uint64(message.channelId); - /* bool direction_reverse = 2; */ - if (message.directionReverse !== false) - writer.tag(2, WireType.Varint).bool(message.directionReverse); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.EdgeLocator - */ -export const EdgeLocator = new EdgeLocator$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class QueryRoutesResponse$Type extends MessageType { - constructor() { - super("lnrpc.QueryRoutesResponse", [ - { no: 1, name: "routes", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Route }, - { no: 2, name: "success_prob", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ } - ]); - } - create(value) { - const message = { routes: [], successProb: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.Route routes */ 1: - message.routes.push(Route.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* double success_prob */ 2: - message.successProb = reader.double(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.Route routes = 1; */ - for (let i = 0; i < message.routes.length; i++) - Route.internalBinaryWrite(message.routes[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* double success_prob = 2; */ - if (message.successProb !== 0) - writer.tag(2, WireType.Bit64).double(message.successProb); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.QueryRoutesResponse - */ -export const QueryRoutesResponse = new QueryRoutesResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class Hop$Type extends MessageType { - constructor() { - super("lnrpc.Hop", [ - { no: 1, name: "chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 2, name: "chan_capacity", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "amt_to_forward", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "fee", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "expiry", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 6, name: "amt_to_forward_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "fee_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "pub_key", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 9, name: "tlv_payload", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 10, name: "mpp_record", kind: "message", T: () => MPPRecord }, - { no: 12, name: "amp_record", kind: "message", T: () => AMPRecord }, - { no: 11, name: "custom_records", kind: "map", K: 4 /*ScalarType.UINT64*/, V: { kind: "scalar", T: 12 /*ScalarType.BYTES*/ } }, - { no: 13, name: "metadata", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { chanId: "0", chanCapacity: 0, amtToForward: 0, fee: 0, expiry: 0, amtToForwardMsat: 0, feeMsat: 0, pubKey: "", tlvPayload: false, customRecords: {}, metadata: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 chan_id = 1 [jstype = JS_STRING];*/ 1: - message.chanId = reader.uint64().toString(); - break; - case /* int64 chan_capacity = 2 [deprecated = true];*/ 2: - message.chanCapacity = reader.int64().toNumber(); - break; - case /* int64 amt_to_forward = 3 [deprecated = true];*/ 3: - message.amtToForward = reader.int64().toNumber(); - break; - case /* int64 fee = 4 [deprecated = true];*/ 4: - message.fee = reader.int64().toNumber(); - break; - case /* uint32 expiry */ 5: - message.expiry = reader.uint32(); - break; - case /* int64 amt_to_forward_msat */ 6: - message.amtToForwardMsat = reader.int64().toNumber(); - break; - case /* int64 fee_msat */ 7: - message.feeMsat = reader.int64().toNumber(); - break; - case /* string pub_key */ 8: - message.pubKey = reader.string(); - break; - case /* bool tlv_payload = 9 [deprecated = true];*/ 9: - message.tlvPayload = reader.bool(); - break; - case /* lnrpc.MPPRecord mpp_record */ 10: - message.mppRecord = MPPRecord.internalBinaryRead(reader, reader.uint32(), options, message.mppRecord); - break; - case /* lnrpc.AMPRecord amp_record */ 12: - message.ampRecord = AMPRecord.internalBinaryRead(reader, reader.uint32(), options, message.ampRecord); - break; - case /* map custom_records */ 11: - this.binaryReadMap11(message.customRecords, reader, options); - break; - case /* bytes metadata */ 13: - message.metadata = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap11(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint64().toString(); - break; - case 2: - val = reader.bytes(); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.Hop.custom_records"); - } - } - map[key ?? "0"] = val ?? new Uint8Array(0); - } - internalBinaryWrite(message, writer, options) { - /* uint64 chan_id = 1 [jstype = JS_STRING]; */ - if (message.chanId !== "0") - writer.tag(1, WireType.Varint).uint64(message.chanId); - /* int64 chan_capacity = 2 [deprecated = true]; */ - if (message.chanCapacity !== 0) - writer.tag(2, WireType.Varint).int64(message.chanCapacity); - /* int64 amt_to_forward = 3 [deprecated = true]; */ - if (message.amtToForward !== 0) - writer.tag(3, WireType.Varint).int64(message.amtToForward); - /* int64 fee = 4 [deprecated = true]; */ - if (message.fee !== 0) - writer.tag(4, WireType.Varint).int64(message.fee); - /* uint32 expiry = 5; */ - if (message.expiry !== 0) - writer.tag(5, WireType.Varint).uint32(message.expiry); - /* int64 amt_to_forward_msat = 6; */ - if (message.amtToForwardMsat !== 0) - writer.tag(6, WireType.Varint).int64(message.amtToForwardMsat); - /* int64 fee_msat = 7; */ - if (message.feeMsat !== 0) - writer.tag(7, WireType.Varint).int64(message.feeMsat); - /* string pub_key = 8; */ - if (message.pubKey !== "") - writer.tag(8, WireType.LengthDelimited).string(message.pubKey); - /* bool tlv_payload = 9 [deprecated = true]; */ - if (message.tlvPayload !== false) - writer.tag(9, WireType.Varint).bool(message.tlvPayload); - /* lnrpc.MPPRecord mpp_record = 10; */ - if (message.mppRecord) - MPPRecord.internalBinaryWrite(message.mppRecord, writer.tag(10, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.AMPRecord amp_record = 12; */ - if (message.ampRecord) - AMPRecord.internalBinaryWrite(message.ampRecord, writer.tag(12, WireType.LengthDelimited).fork(), options).join(); - /* map custom_records = 11; */ - for (let k of Object.keys(message.customRecords)) - writer.tag(11, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint64(k).tag(2, WireType.LengthDelimited).bytes(message.customRecords[k]).join(); - /* bytes metadata = 13; */ - if (message.metadata.length) - writer.tag(13, WireType.LengthDelimited).bytes(message.metadata); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.Hop - */ -export const Hop = new Hop$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class MPPRecord$Type extends MessageType { - constructor() { - super("lnrpc.MPPRecord", [ - { no: 11, name: "payment_addr", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 10, name: "total_amt_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { paymentAddr: new Uint8Array(0), totalAmtMsat: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes payment_addr */ 11: - message.paymentAddr = reader.bytes(); - break; - case /* int64 total_amt_msat */ 10: - message.totalAmtMsat = reader.int64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes payment_addr = 11; */ - if (message.paymentAddr.length) - writer.tag(11, WireType.LengthDelimited).bytes(message.paymentAddr); - /* int64 total_amt_msat = 10; */ - if (message.totalAmtMsat !== 0) - writer.tag(10, WireType.Varint).int64(message.totalAmtMsat); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.MPPRecord - */ -export const MPPRecord = new MPPRecord$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class AMPRecord$Type extends MessageType { - constructor() { - super("lnrpc.AMPRecord", [ - { no: 1, name: "root_share", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "set_id", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "child_index", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } - ]); - } - create(value) { - const message = { rootShare: new Uint8Array(0), setId: new Uint8Array(0), childIndex: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes root_share */ 1: - message.rootShare = reader.bytes(); - break; - case /* bytes set_id */ 2: - message.setId = reader.bytes(); - break; - case /* uint32 child_index */ 3: - message.childIndex = reader.uint32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes root_share = 1; */ - if (message.rootShare.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.rootShare); - /* bytes set_id = 2; */ - if (message.setId.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.setId); - /* uint32 child_index = 3; */ - if (message.childIndex !== 0) - writer.tag(3, WireType.Varint).uint32(message.childIndex); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.AMPRecord - */ -export const AMPRecord = new AMPRecord$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class Route$Type extends MessageType { - constructor() { - super("lnrpc.Route", [ - { no: 1, name: "total_time_lock", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 2, name: "total_fees", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "total_amt", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "hops", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Hop }, - { no: 5, name: "total_fees_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "total_amt_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { totalTimeLock: 0, totalFees: 0, totalAmt: 0, hops: [], totalFeesMsat: 0, totalAmtMsat: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint32 total_time_lock */ 1: - message.totalTimeLock = reader.uint32(); - break; - case /* int64 total_fees = 2 [deprecated = true];*/ 2: - message.totalFees = reader.int64().toNumber(); - break; - case /* int64 total_amt = 3 [deprecated = true];*/ 3: - message.totalAmt = reader.int64().toNumber(); - break; - case /* repeated lnrpc.Hop hops */ 4: - message.hops.push(Hop.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* int64 total_fees_msat */ 5: - message.totalFeesMsat = reader.int64().toNumber(); - break; - case /* int64 total_amt_msat */ 6: - message.totalAmtMsat = reader.int64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint32 total_time_lock = 1; */ - if (message.totalTimeLock !== 0) - writer.tag(1, WireType.Varint).uint32(message.totalTimeLock); - /* int64 total_fees = 2 [deprecated = true]; */ - if (message.totalFees !== 0) - writer.tag(2, WireType.Varint).int64(message.totalFees); - /* int64 total_amt = 3 [deprecated = true]; */ - if (message.totalAmt !== 0) - writer.tag(3, WireType.Varint).int64(message.totalAmt); - /* repeated lnrpc.Hop hops = 4; */ - for (let i = 0; i < message.hops.length; i++) - Hop.internalBinaryWrite(message.hops[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join(); - /* int64 total_fees_msat = 5; */ - if (message.totalFeesMsat !== 0) - writer.tag(5, WireType.Varint).int64(message.totalFeesMsat); - /* int64 total_amt_msat = 6; */ - if (message.totalAmtMsat !== 0) - writer.tag(6, WireType.Varint).int64(message.totalAmtMsat); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.Route - */ -export const Route = new Route$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class NodeInfoRequest$Type extends MessageType { - constructor() { - super("lnrpc.NodeInfoRequest", [ - { no: 1, name: "pub_key", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "include_channels", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { pubKey: "", includeChannels: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string pub_key */ 1: - message.pubKey = reader.string(); - break; - case /* bool include_channels */ 2: - message.includeChannels = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string pub_key = 1; */ - if (message.pubKey !== "") - writer.tag(1, WireType.LengthDelimited).string(message.pubKey); - /* bool include_channels = 2; */ - if (message.includeChannels !== false) - writer.tag(2, WireType.Varint).bool(message.includeChannels); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.NodeInfoRequest - */ -export const NodeInfoRequest = new NodeInfoRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class NodeInfo$Type extends MessageType { - constructor() { - super("lnrpc.NodeInfo", [ - { no: 1, name: "node", kind: "message", T: () => LightningNode }, - { no: 2, name: "num_channels", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 3, name: "total_capacity", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "channels", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => ChannelEdge } - ]); - } - create(value) { - const message = { numChannels: 0, totalCapacity: 0, channels: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.LightningNode node */ 1: - message.node = LightningNode.internalBinaryRead(reader, reader.uint32(), options, message.node); - break; - case /* uint32 num_channels */ 2: - message.numChannels = reader.uint32(); - break; - case /* int64 total_capacity */ 3: - message.totalCapacity = reader.int64().toNumber(); - break; - case /* repeated lnrpc.ChannelEdge channels */ 4: - message.channels.push(ChannelEdge.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.LightningNode node = 1; */ - if (message.node) - LightningNode.internalBinaryWrite(message.node, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* uint32 num_channels = 2; */ - if (message.numChannels !== 0) - writer.tag(2, WireType.Varint).uint32(message.numChannels); - /* int64 total_capacity = 3; */ - if (message.totalCapacity !== 0) - writer.tag(3, WireType.Varint).int64(message.totalCapacity); - /* repeated lnrpc.ChannelEdge channels = 4; */ - for (let i = 0; i < message.channels.length; i++) - ChannelEdge.internalBinaryWrite(message.channels[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.NodeInfo - */ -export const NodeInfo = new NodeInfo$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class LightningNode$Type extends MessageType { - constructor() { - super("lnrpc.LightningNode", [ - { no: 1, name: "last_update", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 2, name: "pub_key", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "alias", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 4, name: "addresses", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => NodeAddress }, - { no: 5, name: "color", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 6, name: "features", kind: "map", K: 13 /*ScalarType.UINT32*/, V: { kind: "message", T: () => Feature } }, - { no: 7, name: "custom_records", kind: "map", K: 4 /*ScalarType.UINT64*/, V: { kind: "scalar", T: 12 /*ScalarType.BYTES*/ } } - ]); - } - create(value) { - const message = { lastUpdate: 0, pubKey: "", alias: "", addresses: [], color: "", features: {}, customRecords: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint32 last_update */ 1: - message.lastUpdate = reader.uint32(); - break; - case /* string pub_key */ 2: - message.pubKey = reader.string(); - break; - case /* string alias */ 3: - message.alias = reader.string(); - break; - case /* repeated lnrpc.NodeAddress addresses */ 4: - message.addresses.push(NodeAddress.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* string color */ 5: - message.color = reader.string(); - break; - case /* map features */ 6: - this.binaryReadMap6(message.features, reader, options); - break; - case /* map custom_records */ 7: - this.binaryReadMap7(message.customRecords, reader, options); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap6(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint32(); - break; - case 2: - val = Feature.internalBinaryRead(reader, reader.uint32(), options); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.LightningNode.features"); - } - } - map[key ?? 0] = val ?? Feature.create(); - } - binaryReadMap7(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint64().toString(); - break; - case 2: - val = reader.bytes(); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.LightningNode.custom_records"); - } - } - map[key ?? "0"] = val ?? new Uint8Array(0); - } - internalBinaryWrite(message, writer, options) { - /* uint32 last_update = 1; */ - if (message.lastUpdate !== 0) - writer.tag(1, WireType.Varint).uint32(message.lastUpdate); - /* string pub_key = 2; */ - if (message.pubKey !== "") - writer.tag(2, WireType.LengthDelimited).string(message.pubKey); - /* string alias = 3; */ - if (message.alias !== "") - writer.tag(3, WireType.LengthDelimited).string(message.alias); - /* repeated lnrpc.NodeAddress addresses = 4; */ - for (let i = 0; i < message.addresses.length; i++) - NodeAddress.internalBinaryWrite(message.addresses[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join(); - /* string color = 5; */ - if (message.color !== "") - writer.tag(5, WireType.LengthDelimited).string(message.color); - /* map features = 6; */ - for (let k of Object.keys(message.features)) { - writer.tag(6, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint32(parseInt(k)); - writer.tag(2, WireType.LengthDelimited).fork(); - Feature.internalBinaryWrite(message.features[k], writer, options); - writer.join().join(); - } - /* map custom_records = 7; */ - for (let k of Object.keys(message.customRecords)) - writer.tag(7, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint64(k).tag(2, WireType.LengthDelimited).bytes(message.customRecords[k]).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.LightningNode - */ -export const LightningNode = new LightningNode$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class NodeAddress$Type extends MessageType { - constructor() { - super("lnrpc.NodeAddress", [ - { no: 1, name: "network", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "addr", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { network: "", addr: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string network */ 1: - message.network = reader.string(); - break; - case /* string addr */ 2: - message.addr = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string network = 1; */ - if (message.network !== "") - writer.tag(1, WireType.LengthDelimited).string(message.network); - /* string addr = 2; */ - if (message.addr !== "") - writer.tag(2, WireType.LengthDelimited).string(message.addr); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.NodeAddress - */ -export const NodeAddress = new NodeAddress$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class RoutingPolicy$Type extends MessageType { - constructor() { - super("lnrpc.RoutingPolicy", [ - { no: 1, name: "time_lock_delta", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 2, name: "min_htlc", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "fee_base_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "fee_rate_milli_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "disabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 6, name: "max_htlc_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "last_update", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 8, name: "custom_records", kind: "map", K: 4 /*ScalarType.UINT64*/, V: { kind: "scalar", T: 12 /*ScalarType.BYTES*/ } } - ]); - } - create(value) { - const message = { timeLockDelta: 0, minHtlc: 0, feeBaseMsat: 0, feeRateMilliMsat: 0, disabled: false, maxHtlcMsat: 0, lastUpdate: 0, customRecords: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint32 time_lock_delta */ 1: - message.timeLockDelta = reader.uint32(); - break; - case /* int64 min_htlc */ 2: - message.minHtlc = reader.int64().toNumber(); - break; - case /* int64 fee_base_msat */ 3: - message.feeBaseMsat = reader.int64().toNumber(); - break; - case /* int64 fee_rate_milli_msat */ 4: - message.feeRateMilliMsat = reader.int64().toNumber(); - break; - case /* bool disabled */ 5: - message.disabled = reader.bool(); - break; - case /* uint64 max_htlc_msat */ 6: - message.maxHtlcMsat = reader.uint64().toNumber(); - break; - case /* uint32 last_update */ 7: - message.lastUpdate = reader.uint32(); - break; - case /* map custom_records */ 8: - this.binaryReadMap8(message.customRecords, reader, options); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap8(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint64().toString(); - break; - case 2: - val = reader.bytes(); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.RoutingPolicy.custom_records"); - } - } - map[key ?? "0"] = val ?? new Uint8Array(0); - } - internalBinaryWrite(message, writer, options) { - /* uint32 time_lock_delta = 1; */ - if (message.timeLockDelta !== 0) - writer.tag(1, WireType.Varint).uint32(message.timeLockDelta); - /* int64 min_htlc = 2; */ - if (message.minHtlc !== 0) - writer.tag(2, WireType.Varint).int64(message.minHtlc); - /* int64 fee_base_msat = 3; */ - if (message.feeBaseMsat !== 0) - writer.tag(3, WireType.Varint).int64(message.feeBaseMsat); - /* int64 fee_rate_milli_msat = 4; */ - if (message.feeRateMilliMsat !== 0) - writer.tag(4, WireType.Varint).int64(message.feeRateMilliMsat); - /* bool disabled = 5; */ - if (message.disabled !== false) - writer.tag(5, WireType.Varint).bool(message.disabled); - /* uint64 max_htlc_msat = 6; */ - if (message.maxHtlcMsat !== 0) - writer.tag(6, WireType.Varint).uint64(message.maxHtlcMsat); - /* uint32 last_update = 7; */ - if (message.lastUpdate !== 0) - writer.tag(7, WireType.Varint).uint32(message.lastUpdate); - /* map custom_records = 8; */ - for (let k of Object.keys(message.customRecords)) - writer.tag(8, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint64(k).tag(2, WireType.LengthDelimited).bytes(message.customRecords[k]).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.RoutingPolicy - */ -export const RoutingPolicy = new RoutingPolicy$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelEdge$Type extends MessageType { - constructor() { - super("lnrpc.ChannelEdge", [ - { no: 1, name: "channel_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 2, name: "chan_point", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "last_update", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 4, name: "node1_pub", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 5, name: "node2_pub", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 6, name: "capacity", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "node1_policy", kind: "message", T: () => RoutingPolicy }, - { no: 8, name: "node2_policy", kind: "message", T: () => RoutingPolicy }, - { no: 9, name: "custom_records", kind: "map", K: 4 /*ScalarType.UINT64*/, V: { kind: "scalar", T: 12 /*ScalarType.BYTES*/ } } - ]); - } - create(value) { - const message = { channelId: "0", chanPoint: "", lastUpdate: 0, node1Pub: "", node2Pub: "", capacity: 0, customRecords: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 channel_id = 1 [jstype = JS_STRING];*/ 1: - message.channelId = reader.uint64().toString(); - break; - case /* string chan_point */ 2: - message.chanPoint = reader.string(); - break; - case /* uint32 last_update = 3 [deprecated = true];*/ 3: - message.lastUpdate = reader.uint32(); - break; - case /* string node1_pub */ 4: - message.node1Pub = reader.string(); - break; - case /* string node2_pub */ 5: - message.node2Pub = reader.string(); - break; - case /* int64 capacity */ 6: - message.capacity = reader.int64().toNumber(); - break; - case /* lnrpc.RoutingPolicy node1_policy */ 7: - message.node1Policy = RoutingPolicy.internalBinaryRead(reader, reader.uint32(), options, message.node1Policy); - break; - case /* lnrpc.RoutingPolicy node2_policy */ 8: - message.node2Policy = RoutingPolicy.internalBinaryRead(reader, reader.uint32(), options, message.node2Policy); - break; - case /* map custom_records */ 9: - this.binaryReadMap9(message.customRecords, reader, options); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap9(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint64().toString(); - break; - case 2: - val = reader.bytes(); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.ChannelEdge.custom_records"); - } - } - map[key ?? "0"] = val ?? new Uint8Array(0); - } - internalBinaryWrite(message, writer, options) { - /* uint64 channel_id = 1 [jstype = JS_STRING]; */ - if (message.channelId !== "0") - writer.tag(1, WireType.Varint).uint64(message.channelId); - /* string chan_point = 2; */ - if (message.chanPoint !== "") - writer.tag(2, WireType.LengthDelimited).string(message.chanPoint); - /* uint32 last_update = 3 [deprecated = true]; */ - if (message.lastUpdate !== 0) - writer.tag(3, WireType.Varint).uint32(message.lastUpdate); - /* string node1_pub = 4; */ - if (message.node1Pub !== "") - writer.tag(4, WireType.LengthDelimited).string(message.node1Pub); - /* string node2_pub = 5; */ - if (message.node2Pub !== "") - writer.tag(5, WireType.LengthDelimited).string(message.node2Pub); - /* int64 capacity = 6; */ - if (message.capacity !== 0) - writer.tag(6, WireType.Varint).int64(message.capacity); - /* lnrpc.RoutingPolicy node1_policy = 7; */ - if (message.node1Policy) - RoutingPolicy.internalBinaryWrite(message.node1Policy, writer.tag(7, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.RoutingPolicy node2_policy = 8; */ - if (message.node2Policy) - RoutingPolicy.internalBinaryWrite(message.node2Policy, writer.tag(8, WireType.LengthDelimited).fork(), options).join(); - /* map custom_records = 9; */ - for (let k of Object.keys(message.customRecords)) - writer.tag(9, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint64(k).tag(2, WireType.LengthDelimited).bytes(message.customRecords[k]).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelEdge - */ -export const ChannelEdge = new ChannelEdge$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelGraphRequest$Type extends MessageType { - constructor() { - super("lnrpc.ChannelGraphRequest", [ - { no: 1, name: "include_unannounced", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { includeUnannounced: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool include_unannounced */ 1: - message.includeUnannounced = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool include_unannounced = 1; */ - if (message.includeUnannounced !== false) - writer.tag(1, WireType.Varint).bool(message.includeUnannounced); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelGraphRequest - */ -export const ChannelGraphRequest = new ChannelGraphRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelGraph$Type extends MessageType { - constructor() { - super("lnrpc.ChannelGraph", [ - { no: 1, name: "nodes", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => LightningNode }, - { no: 2, name: "edges", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => ChannelEdge } - ]); - } - create(value) { - const message = { nodes: [], edges: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.LightningNode nodes */ 1: - message.nodes.push(LightningNode.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* repeated lnrpc.ChannelEdge edges */ 2: - message.edges.push(ChannelEdge.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.LightningNode nodes = 1; */ - for (let i = 0; i < message.nodes.length; i++) - LightningNode.internalBinaryWrite(message.nodes[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* repeated lnrpc.ChannelEdge edges = 2; */ - for (let i = 0; i < message.edges.length; i++) - ChannelEdge.internalBinaryWrite(message.edges[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelGraph - */ -export const ChannelGraph = new ChannelGraph$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class NodeMetricsRequest$Type extends MessageType { - constructor() { - super("lnrpc.NodeMetricsRequest", [ - { no: 1, name: "types", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["lnrpc.NodeMetricType", NodeMetricType] } - ]); - } - create(value) { - const message = { types: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.NodeMetricType types */ 1: - if (wireType === WireType.LengthDelimited) - for (let e = reader.int32() + reader.pos; reader.pos < e;) - message.types.push(reader.int32()); - else - message.types.push(reader.int32()); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.NodeMetricType types = 1; */ - if (message.types.length) { - writer.tag(1, WireType.LengthDelimited).fork(); - for (let i = 0; i < message.types.length; i++) - writer.int32(message.types[i]); - writer.join(); - } - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.NodeMetricsRequest - */ -export const NodeMetricsRequest = new NodeMetricsRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class NodeMetricsResponse$Type extends MessageType { - constructor() { - super("lnrpc.NodeMetricsResponse", [ - { no: 1, name: "betweenness_centrality", kind: "map", K: 9 /*ScalarType.STRING*/, V: { kind: "message", T: () => FloatMetric } } - ]); - } - create(value) { - const message = { betweennessCentrality: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* map betweenness_centrality */ 1: - this.binaryReadMap1(message.betweennessCentrality, reader, options); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap1(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.string(); - break; - case 2: - val = FloatMetric.internalBinaryRead(reader, reader.uint32(), options); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.NodeMetricsResponse.betweenness_centrality"); - } - } - map[key ?? ""] = val ?? FloatMetric.create(); - } - internalBinaryWrite(message, writer, options) { - /* map betweenness_centrality = 1; */ - for (let k of Object.keys(message.betweennessCentrality)) { - writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); - writer.tag(2, WireType.LengthDelimited).fork(); - FloatMetric.internalBinaryWrite(message.betweennessCentrality[k], writer, options); - writer.join().join(); - } - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.NodeMetricsResponse - */ -export const NodeMetricsResponse = new NodeMetricsResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class FloatMetric$Type extends MessageType { - constructor() { - super("lnrpc.FloatMetric", [ - { no: 1, name: "value", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ }, - { no: 2, name: "normalized_value", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ } - ]); - } - create(value) { - const message = { value: 0, normalizedValue: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* double value */ 1: - message.value = reader.double(); - break; - case /* double normalized_value */ 2: - message.normalizedValue = reader.double(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* double value = 1; */ - if (message.value !== 0) - writer.tag(1, WireType.Bit64).double(message.value); - /* double normalized_value = 2; */ - if (message.normalizedValue !== 0) - writer.tag(2, WireType.Bit64).double(message.normalizedValue); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.FloatMetric - */ -export const FloatMetric = new FloatMetric$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChanInfoRequest$Type extends MessageType { - constructor() { - super("lnrpc.ChanInfoRequest", [ - { no: 1, name: "chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ } - ]); - } - create(value) { - const message = { chanId: "0" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 chan_id = 1 [jstype = JS_STRING];*/ 1: - message.chanId = reader.uint64().toString(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 chan_id = 1 [jstype = JS_STRING]; */ - if (message.chanId !== "0") - writer.tag(1, WireType.Varint).uint64(message.chanId); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChanInfoRequest - */ -export const ChanInfoRequest = new ChanInfoRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class NetworkInfoRequest$Type extends MessageType { - constructor() { - super("lnrpc.NetworkInfoRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.NetworkInfoRequest - */ -export const NetworkInfoRequest = new NetworkInfoRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class NetworkInfo$Type extends MessageType { - constructor() { - super("lnrpc.NetworkInfo", [ - { no: 1, name: "graph_diameter", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 2, name: "avg_out_degree", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ }, - { no: 3, name: "max_out_degree", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 4, name: "num_nodes", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 5, name: "num_channels", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 6, name: "total_network_capacity", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "avg_channel_size", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ }, - { no: 8, name: "min_channel_size", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 9, name: "max_channel_size", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 10, name: "median_channel_size_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 11, name: "num_zombie_chans", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { graphDiameter: 0, avgOutDegree: 0, maxOutDegree: 0, numNodes: 0, numChannels: 0, totalNetworkCapacity: 0, avgChannelSize: 0, minChannelSize: 0, maxChannelSize: 0, medianChannelSizeSat: 0, numZombieChans: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint32 graph_diameter */ 1: - message.graphDiameter = reader.uint32(); - break; - case /* double avg_out_degree */ 2: - message.avgOutDegree = reader.double(); - break; - case /* uint32 max_out_degree */ 3: - message.maxOutDegree = reader.uint32(); - break; - case /* uint32 num_nodes */ 4: - message.numNodes = reader.uint32(); - break; - case /* uint32 num_channels */ 5: - message.numChannels = reader.uint32(); - break; - case /* int64 total_network_capacity */ 6: - message.totalNetworkCapacity = reader.int64().toNumber(); - break; - case /* double avg_channel_size */ 7: - message.avgChannelSize = reader.double(); - break; - case /* int64 min_channel_size */ 8: - message.minChannelSize = reader.int64().toNumber(); - break; - case /* int64 max_channel_size */ 9: - message.maxChannelSize = reader.int64().toNumber(); - break; - case /* int64 median_channel_size_sat */ 10: - message.medianChannelSizeSat = reader.int64().toNumber(); - break; - case /* uint64 num_zombie_chans */ 11: - message.numZombieChans = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint32 graph_diameter = 1; */ - if (message.graphDiameter !== 0) - writer.tag(1, WireType.Varint).uint32(message.graphDiameter); - /* double avg_out_degree = 2; */ - if (message.avgOutDegree !== 0) - writer.tag(2, WireType.Bit64).double(message.avgOutDegree); - /* uint32 max_out_degree = 3; */ - if (message.maxOutDegree !== 0) - writer.tag(3, WireType.Varint).uint32(message.maxOutDegree); - /* uint32 num_nodes = 4; */ - if (message.numNodes !== 0) - writer.tag(4, WireType.Varint).uint32(message.numNodes); - /* uint32 num_channels = 5; */ - if (message.numChannels !== 0) - writer.tag(5, WireType.Varint).uint32(message.numChannels); - /* int64 total_network_capacity = 6; */ - if (message.totalNetworkCapacity !== 0) - writer.tag(6, WireType.Varint).int64(message.totalNetworkCapacity); - /* double avg_channel_size = 7; */ - if (message.avgChannelSize !== 0) - writer.tag(7, WireType.Bit64).double(message.avgChannelSize); - /* int64 min_channel_size = 8; */ - if (message.minChannelSize !== 0) - writer.tag(8, WireType.Varint).int64(message.minChannelSize); - /* int64 max_channel_size = 9; */ - if (message.maxChannelSize !== 0) - writer.tag(9, WireType.Varint).int64(message.maxChannelSize); - /* int64 median_channel_size_sat = 10; */ - if (message.medianChannelSizeSat !== 0) - writer.tag(10, WireType.Varint).int64(message.medianChannelSizeSat); - /* uint64 num_zombie_chans = 11; */ - if (message.numZombieChans !== 0) - writer.tag(11, WireType.Varint).uint64(message.numZombieChans); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.NetworkInfo - */ -export const NetworkInfo = new NetworkInfo$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class StopRequest$Type extends MessageType { - constructor() { - super("lnrpc.StopRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.StopRequest - */ -export const StopRequest = new StopRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class StopResponse$Type extends MessageType { - constructor() { - super("lnrpc.StopResponse", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.StopResponse - */ -export const StopResponse = new StopResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class GraphTopologySubscription$Type extends MessageType { - constructor() { - super("lnrpc.GraphTopologySubscription", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.GraphTopologySubscription - */ -export const GraphTopologySubscription = new GraphTopologySubscription$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class GraphTopologyUpdate$Type extends MessageType { - constructor() { - super("lnrpc.GraphTopologyUpdate", [ - { no: 1, name: "node_updates", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => NodeUpdate }, - { no: 2, name: "channel_updates", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => ChannelEdgeUpdate }, - { no: 3, name: "closed_chans", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => ClosedChannelUpdate } - ]); - } - create(value) { - const message = { nodeUpdates: [], channelUpdates: [], closedChans: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.NodeUpdate node_updates */ 1: - message.nodeUpdates.push(NodeUpdate.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* repeated lnrpc.ChannelEdgeUpdate channel_updates */ 2: - message.channelUpdates.push(ChannelEdgeUpdate.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* repeated lnrpc.ClosedChannelUpdate closed_chans */ 3: - message.closedChans.push(ClosedChannelUpdate.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.NodeUpdate node_updates = 1; */ - for (let i = 0; i < message.nodeUpdates.length; i++) - NodeUpdate.internalBinaryWrite(message.nodeUpdates[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* repeated lnrpc.ChannelEdgeUpdate channel_updates = 2; */ - for (let i = 0; i < message.channelUpdates.length; i++) - ChannelEdgeUpdate.internalBinaryWrite(message.channelUpdates[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - /* repeated lnrpc.ClosedChannelUpdate closed_chans = 3; */ - for (let i = 0; i < message.closedChans.length; i++) - ClosedChannelUpdate.internalBinaryWrite(message.closedChans[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.GraphTopologyUpdate - */ -export const GraphTopologyUpdate = new GraphTopologyUpdate$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class NodeUpdate$Type extends MessageType { - constructor() { - super("lnrpc.NodeUpdate", [ - { no: 1, name: "addresses", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "identity_key", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "global_features", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 4, name: "alias", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 5, name: "color", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 7, name: "node_addresses", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => NodeAddress }, - { no: 6, name: "features", kind: "map", K: 13 /*ScalarType.UINT32*/, V: { kind: "message", T: () => Feature } } - ]); - } - create(value) { - const message = { addresses: [], identityKey: "", globalFeatures: new Uint8Array(0), alias: "", color: "", nodeAddresses: [], features: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated string addresses = 1 [deprecated = true];*/ 1: - message.addresses.push(reader.string()); - break; - case /* string identity_key */ 2: - message.identityKey = reader.string(); - break; - case /* bytes global_features = 3 [deprecated = true];*/ 3: - message.globalFeatures = reader.bytes(); - break; - case /* string alias */ 4: - message.alias = reader.string(); - break; - case /* string color */ 5: - message.color = reader.string(); - break; - case /* repeated lnrpc.NodeAddress node_addresses */ 7: - message.nodeAddresses.push(NodeAddress.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* map features */ 6: - this.binaryReadMap6(message.features, reader, options); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap6(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint32(); - break; - case 2: - val = Feature.internalBinaryRead(reader, reader.uint32(), options); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.NodeUpdate.features"); - } - } - map[key ?? 0] = val ?? Feature.create(); - } - internalBinaryWrite(message, writer, options) { - /* repeated string addresses = 1 [deprecated = true]; */ - for (let i = 0; i < message.addresses.length; i++) - writer.tag(1, WireType.LengthDelimited).string(message.addresses[i]); - /* string identity_key = 2; */ - if (message.identityKey !== "") - writer.tag(2, WireType.LengthDelimited).string(message.identityKey); - /* bytes global_features = 3 [deprecated = true]; */ - if (message.globalFeatures.length) - writer.tag(3, WireType.LengthDelimited).bytes(message.globalFeatures); - /* string alias = 4; */ - if (message.alias !== "") - writer.tag(4, WireType.LengthDelimited).string(message.alias); - /* string color = 5; */ - if (message.color !== "") - writer.tag(5, WireType.LengthDelimited).string(message.color); - /* repeated lnrpc.NodeAddress node_addresses = 7; */ - for (let i = 0; i < message.nodeAddresses.length; i++) - NodeAddress.internalBinaryWrite(message.nodeAddresses[i], writer.tag(7, WireType.LengthDelimited).fork(), options).join(); - /* map features = 6; */ - for (let k of Object.keys(message.features)) { - writer.tag(6, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint32(parseInt(k)); - writer.tag(2, WireType.LengthDelimited).fork(); - Feature.internalBinaryWrite(message.features[k], writer, options); - writer.join().join(); - } - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.NodeUpdate - */ -export const NodeUpdate = new NodeUpdate$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelEdgeUpdate$Type extends MessageType { - constructor() { - super("lnrpc.ChannelEdgeUpdate", [ - { no: 1, name: "chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 2, name: "chan_point", kind: "message", T: () => ChannelPoint }, - { no: 3, name: "capacity", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "routing_policy", kind: "message", T: () => RoutingPolicy }, - { no: 5, name: "advertising_node", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 6, name: "connecting_node", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { chanId: "0", capacity: 0, advertisingNode: "", connectingNode: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 chan_id = 1 [jstype = JS_STRING];*/ 1: - message.chanId = reader.uint64().toString(); - break; - case /* lnrpc.ChannelPoint chan_point */ 2: - message.chanPoint = ChannelPoint.internalBinaryRead(reader, reader.uint32(), options, message.chanPoint); - break; - case /* int64 capacity */ 3: - message.capacity = reader.int64().toNumber(); - break; - case /* lnrpc.RoutingPolicy routing_policy */ 4: - message.routingPolicy = RoutingPolicy.internalBinaryRead(reader, reader.uint32(), options, message.routingPolicy); - break; - case /* string advertising_node */ 5: - message.advertisingNode = reader.string(); - break; - case /* string connecting_node */ 6: - message.connectingNode = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 chan_id = 1 [jstype = JS_STRING]; */ - if (message.chanId !== "0") - writer.tag(1, WireType.Varint).uint64(message.chanId); - /* lnrpc.ChannelPoint chan_point = 2; */ - if (message.chanPoint) - ChannelPoint.internalBinaryWrite(message.chanPoint, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - /* int64 capacity = 3; */ - if (message.capacity !== 0) - writer.tag(3, WireType.Varint).int64(message.capacity); - /* lnrpc.RoutingPolicy routing_policy = 4; */ - if (message.routingPolicy) - RoutingPolicy.internalBinaryWrite(message.routingPolicy, writer.tag(4, WireType.LengthDelimited).fork(), options).join(); - /* string advertising_node = 5; */ - if (message.advertisingNode !== "") - writer.tag(5, WireType.LengthDelimited).string(message.advertisingNode); - /* string connecting_node = 6; */ - if (message.connectingNode !== "") - writer.tag(6, WireType.LengthDelimited).string(message.connectingNode); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelEdgeUpdate - */ -export const ChannelEdgeUpdate = new ChannelEdgeUpdate$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ClosedChannelUpdate$Type extends MessageType { - constructor() { - super("lnrpc.ClosedChannelUpdate", [ - { no: 1, name: "chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 2, name: "capacity", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "closed_height", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 4, name: "chan_point", kind: "message", T: () => ChannelPoint } - ]); - } - create(value) { - const message = { chanId: "0", capacity: 0, closedHeight: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 chan_id = 1 [jstype = JS_STRING];*/ 1: - message.chanId = reader.uint64().toString(); - break; - case /* int64 capacity */ 2: - message.capacity = reader.int64().toNumber(); - break; - case /* uint32 closed_height */ 3: - message.closedHeight = reader.uint32(); - break; - case /* lnrpc.ChannelPoint chan_point */ 4: - message.chanPoint = ChannelPoint.internalBinaryRead(reader, reader.uint32(), options, message.chanPoint); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 chan_id = 1 [jstype = JS_STRING]; */ - if (message.chanId !== "0") - writer.tag(1, WireType.Varint).uint64(message.chanId); - /* int64 capacity = 2; */ - if (message.capacity !== 0) - writer.tag(2, WireType.Varint).int64(message.capacity); - /* uint32 closed_height = 3; */ - if (message.closedHeight !== 0) - writer.tag(3, WireType.Varint).uint32(message.closedHeight); - /* lnrpc.ChannelPoint chan_point = 4; */ - if (message.chanPoint) - ChannelPoint.internalBinaryWrite(message.chanPoint, writer.tag(4, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ClosedChannelUpdate - */ -export const ClosedChannelUpdate = new ClosedChannelUpdate$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class HopHint$Type extends MessageType { - constructor() { - super("lnrpc.HopHint", [ - { no: 1, name: "node_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 3, name: "fee_base_msat", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 4, name: "fee_proportional_millionths", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 5, name: "cltv_expiry_delta", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } - ]); - } - create(value) { - const message = { nodeId: "", chanId: "0", feeBaseMsat: 0, feeProportionalMillionths: 0, cltvExpiryDelta: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string node_id */ 1: - message.nodeId = reader.string(); - break; - case /* uint64 chan_id = 2 [jstype = JS_STRING];*/ 2: - message.chanId = reader.uint64().toString(); - break; - case /* uint32 fee_base_msat */ 3: - message.feeBaseMsat = reader.uint32(); - break; - case /* uint32 fee_proportional_millionths */ 4: - message.feeProportionalMillionths = reader.uint32(); - break; - case /* uint32 cltv_expiry_delta */ 5: - message.cltvExpiryDelta = reader.uint32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string node_id = 1; */ - if (message.nodeId !== "") - writer.tag(1, WireType.LengthDelimited).string(message.nodeId); - /* uint64 chan_id = 2 [jstype = JS_STRING]; */ - if (message.chanId !== "0") - writer.tag(2, WireType.Varint).uint64(message.chanId); - /* uint32 fee_base_msat = 3; */ - if (message.feeBaseMsat !== 0) - writer.tag(3, WireType.Varint).uint32(message.feeBaseMsat); - /* uint32 fee_proportional_millionths = 4; */ - if (message.feeProportionalMillionths !== 0) - writer.tag(4, WireType.Varint).uint32(message.feeProportionalMillionths); - /* uint32 cltv_expiry_delta = 5; */ - if (message.cltvExpiryDelta !== 0) - writer.tag(5, WireType.Varint).uint32(message.cltvExpiryDelta); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.HopHint - */ -export const HopHint = new HopHint$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SetID$Type extends MessageType { - constructor() { - super("lnrpc.SetID", [ - { no: 1, name: "set_id", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { setId: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes set_id */ 1: - message.setId = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes set_id = 1; */ - if (message.setId.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.setId); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.SetID - */ -export const SetID = new SetID$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class RouteHint$Type extends MessageType { - constructor() { - super("lnrpc.RouteHint", [ - { no: 1, name: "hop_hints", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => HopHint } - ]); - } - create(value) { - const message = { hopHints: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.HopHint hop_hints */ 1: - message.hopHints.push(HopHint.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.HopHint hop_hints = 1; */ - for (let i = 0; i < message.hopHints.length; i++) - HopHint.internalBinaryWrite(message.hopHints[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.RouteHint - */ -export const RouteHint = new RouteHint$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class AMPInvoiceState$Type extends MessageType { - constructor() { - super("lnrpc.AMPInvoiceState", [ - { no: 1, name: "state", kind: "enum", T: () => ["lnrpc.InvoiceHTLCState", InvoiceHTLCState] }, - { no: 2, name: "settle_index", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "settle_time", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "amt_paid_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { state: 0, settleIndex: 0, settleTime: 0, amtPaidMsat: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.InvoiceHTLCState state */ 1: - message.state = reader.int32(); - break; - case /* uint64 settle_index */ 2: - message.settleIndex = reader.uint64().toNumber(); - break; - case /* int64 settle_time */ 3: - message.settleTime = reader.int64().toNumber(); - break; - case /* int64 amt_paid_msat */ 5: - message.amtPaidMsat = reader.int64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.InvoiceHTLCState state = 1; */ - if (message.state !== 0) - writer.tag(1, WireType.Varint).int32(message.state); - /* uint64 settle_index = 2; */ - if (message.settleIndex !== 0) - writer.tag(2, WireType.Varint).uint64(message.settleIndex); - /* int64 settle_time = 3; */ - if (message.settleTime !== 0) - writer.tag(3, WireType.Varint).int64(message.settleTime); - /* int64 amt_paid_msat = 5; */ - if (message.amtPaidMsat !== 0) - writer.tag(5, WireType.Varint).int64(message.amtPaidMsat); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.AMPInvoiceState - */ -export const AMPInvoiceState = new AMPInvoiceState$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class Invoice$Type extends MessageType { - constructor() { - super("lnrpc.Invoice", [ - { no: 1, name: "memo", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "r_preimage", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 4, name: "r_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 5, name: "value", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 23, name: "value_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "settled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 7, name: "creation_date", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "settle_date", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 9, name: "payment_request", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 10, name: "description_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 11, name: "expiry", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 12, name: "fallback_addr", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 13, name: "cltv_expiry", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 14, name: "route_hints", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => RouteHint }, - { no: 15, name: "private", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 16, name: "add_index", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 17, name: "settle_index", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 18, name: "amt_paid", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 19, name: "amt_paid_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 20, name: "amt_paid_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 21, name: "state", kind: "enum", T: () => ["lnrpc.Invoice.InvoiceState", Invoice_InvoiceState] }, - { no: 22, name: "htlcs", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => InvoiceHTLC }, - { no: 24, name: "features", kind: "map", K: 13 /*ScalarType.UINT32*/, V: { kind: "message", T: () => Feature } }, - { no: 25, name: "is_keysend", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 26, name: "payment_addr", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 27, name: "is_amp", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 28, name: "amp_invoice_state", kind: "map", K: 9 /*ScalarType.STRING*/, V: { kind: "message", T: () => AMPInvoiceState } } - ]); - } - create(value) { - const message = { memo: "", rPreimage: new Uint8Array(0), rHash: new Uint8Array(0), value: 0, valueMsat: 0, settled: false, creationDate: 0, settleDate: 0, paymentRequest: "", descriptionHash: new Uint8Array(0), expiry: 0, fallbackAddr: "", cltvExpiry: 0, routeHints: [], private: false, addIndex: 0, settleIndex: 0, amtPaid: 0, amtPaidSat: 0, amtPaidMsat: 0, state: 0, htlcs: [], features: {}, isKeysend: false, paymentAddr: new Uint8Array(0), isAmp: false, ampInvoiceState: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string memo */ 1: - message.memo = reader.string(); - break; - case /* bytes r_preimage */ 3: - message.rPreimage = reader.bytes(); - break; - case /* bytes r_hash */ 4: - message.rHash = reader.bytes(); - break; - case /* int64 value */ 5: - message.value = reader.int64().toNumber(); - break; - case /* int64 value_msat */ 23: - message.valueMsat = reader.int64().toNumber(); - break; - case /* bool settled = 6 [deprecated = true];*/ 6: - message.settled = reader.bool(); - break; - case /* int64 creation_date */ 7: - message.creationDate = reader.int64().toNumber(); - break; - case /* int64 settle_date */ 8: - message.settleDate = reader.int64().toNumber(); - break; - case /* string payment_request */ 9: - message.paymentRequest = reader.string(); - break; - case /* bytes description_hash */ 10: - message.descriptionHash = reader.bytes(); - break; - case /* int64 expiry */ 11: - message.expiry = reader.int64().toNumber(); - break; - case /* string fallback_addr */ 12: - message.fallbackAddr = reader.string(); - break; - case /* uint64 cltv_expiry */ 13: - message.cltvExpiry = reader.uint64().toNumber(); - break; - case /* repeated lnrpc.RouteHint route_hints */ 14: - message.routeHints.push(RouteHint.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* bool private */ 15: - message.private = reader.bool(); - break; - case /* uint64 add_index */ 16: - message.addIndex = reader.uint64().toNumber(); - break; - case /* uint64 settle_index */ 17: - message.settleIndex = reader.uint64().toNumber(); - break; - case /* int64 amt_paid = 18 [deprecated = true];*/ 18: - message.amtPaid = reader.int64().toNumber(); - break; - case /* int64 amt_paid_sat */ 19: - message.amtPaidSat = reader.int64().toNumber(); - break; - case /* int64 amt_paid_msat */ 20: - message.amtPaidMsat = reader.int64().toNumber(); - break; - case /* lnrpc.Invoice.InvoiceState state */ 21: - message.state = reader.int32(); - break; - case /* repeated lnrpc.InvoiceHTLC htlcs */ 22: - message.htlcs.push(InvoiceHTLC.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* map features */ 24: - this.binaryReadMap24(message.features, reader, options); - break; - case /* bool is_keysend */ 25: - message.isKeysend = reader.bool(); - break; - case /* bytes payment_addr */ 26: - message.paymentAddr = reader.bytes(); - break; - case /* bool is_amp */ 27: - message.isAmp = reader.bool(); - break; - case /* map amp_invoice_state */ 28: - this.binaryReadMap28(message.ampInvoiceState, reader, options); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap24(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint32(); - break; - case 2: - val = Feature.internalBinaryRead(reader, reader.uint32(), options); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.Invoice.features"); - } - } - map[key ?? 0] = val ?? Feature.create(); - } - binaryReadMap28(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.string(); - break; - case 2: - val = AMPInvoiceState.internalBinaryRead(reader, reader.uint32(), options); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.Invoice.amp_invoice_state"); - } - } - map[key ?? ""] = val ?? AMPInvoiceState.create(); - } - internalBinaryWrite(message, writer, options) { - /* string memo = 1; */ - if (message.memo !== "") - writer.tag(1, WireType.LengthDelimited).string(message.memo); - /* bytes r_preimage = 3; */ - if (message.rPreimage.length) - writer.tag(3, WireType.LengthDelimited).bytes(message.rPreimage); - /* bytes r_hash = 4; */ - if (message.rHash.length) - writer.tag(4, WireType.LengthDelimited).bytes(message.rHash); - /* int64 value = 5; */ - if (message.value !== 0) - writer.tag(5, WireType.Varint).int64(message.value); - /* int64 value_msat = 23; */ - if (message.valueMsat !== 0) - writer.tag(23, WireType.Varint).int64(message.valueMsat); - /* bool settled = 6 [deprecated = true]; */ - if (message.settled !== false) - writer.tag(6, WireType.Varint).bool(message.settled); - /* int64 creation_date = 7; */ - if (message.creationDate !== 0) - writer.tag(7, WireType.Varint).int64(message.creationDate); - /* int64 settle_date = 8; */ - if (message.settleDate !== 0) - writer.tag(8, WireType.Varint).int64(message.settleDate); - /* string payment_request = 9; */ - if (message.paymentRequest !== "") - writer.tag(9, WireType.LengthDelimited).string(message.paymentRequest); - /* bytes description_hash = 10; */ - if (message.descriptionHash.length) - writer.tag(10, WireType.LengthDelimited).bytes(message.descriptionHash); - /* int64 expiry = 11; */ - if (message.expiry !== 0) - writer.tag(11, WireType.Varint).int64(message.expiry); - /* string fallback_addr = 12; */ - if (message.fallbackAddr !== "") - writer.tag(12, WireType.LengthDelimited).string(message.fallbackAddr); - /* uint64 cltv_expiry = 13; */ - if (message.cltvExpiry !== 0) - writer.tag(13, WireType.Varint).uint64(message.cltvExpiry); - /* repeated lnrpc.RouteHint route_hints = 14; */ - for (let i = 0; i < message.routeHints.length; i++) - RouteHint.internalBinaryWrite(message.routeHints[i], writer.tag(14, WireType.LengthDelimited).fork(), options).join(); - /* bool private = 15; */ - if (message.private !== false) - writer.tag(15, WireType.Varint).bool(message.private); - /* uint64 add_index = 16; */ - if (message.addIndex !== 0) - writer.tag(16, WireType.Varint).uint64(message.addIndex); - /* uint64 settle_index = 17; */ - if (message.settleIndex !== 0) - writer.tag(17, WireType.Varint).uint64(message.settleIndex); - /* int64 amt_paid = 18 [deprecated = true]; */ - if (message.amtPaid !== 0) - writer.tag(18, WireType.Varint).int64(message.amtPaid); - /* int64 amt_paid_sat = 19; */ - if (message.amtPaidSat !== 0) - writer.tag(19, WireType.Varint).int64(message.amtPaidSat); - /* int64 amt_paid_msat = 20; */ - if (message.amtPaidMsat !== 0) - writer.tag(20, WireType.Varint).int64(message.amtPaidMsat); - /* lnrpc.Invoice.InvoiceState state = 21; */ - if (message.state !== 0) - writer.tag(21, WireType.Varint).int32(message.state); - /* repeated lnrpc.InvoiceHTLC htlcs = 22; */ - for (let i = 0; i < message.htlcs.length; i++) - InvoiceHTLC.internalBinaryWrite(message.htlcs[i], writer.tag(22, WireType.LengthDelimited).fork(), options).join(); - /* map features = 24; */ - for (let k of Object.keys(message.features)) { - writer.tag(24, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint32(parseInt(k)); - writer.tag(2, WireType.LengthDelimited).fork(); - Feature.internalBinaryWrite(message.features[k], writer, options); - writer.join().join(); - } - /* bool is_keysend = 25; */ - if (message.isKeysend !== false) - writer.tag(25, WireType.Varint).bool(message.isKeysend); - /* bytes payment_addr = 26; */ - if (message.paymentAddr.length) - writer.tag(26, WireType.LengthDelimited).bytes(message.paymentAddr); - /* bool is_amp = 27; */ - if (message.isAmp !== false) - writer.tag(27, WireType.Varint).bool(message.isAmp); - /* map amp_invoice_state = 28; */ - for (let k of Object.keys(message.ampInvoiceState)) { - writer.tag(28, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); - writer.tag(2, WireType.LengthDelimited).fork(); - AMPInvoiceState.internalBinaryWrite(message.ampInvoiceState[k], writer, options); - writer.join().join(); - } - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.Invoice - */ -export const Invoice = new Invoice$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class InvoiceHTLC$Type extends MessageType { - constructor() { - super("lnrpc.InvoiceHTLC", [ - { no: 1, name: "chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 2, name: "htlc_index", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "amt_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "accept_height", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 5, name: "accept_time", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "resolve_time", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "expiry_height", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 8, name: "state", kind: "enum", T: () => ["lnrpc.InvoiceHTLCState", InvoiceHTLCState] }, - { no: 9, name: "custom_records", kind: "map", K: 4 /*ScalarType.UINT64*/, V: { kind: "scalar", T: 12 /*ScalarType.BYTES*/ } }, - { no: 10, name: "mpp_total_amt_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 11, name: "amp", kind: "message", T: () => AMP } - ]); - } - create(value) { - const message = { chanId: "0", htlcIndex: 0, amtMsat: 0, acceptHeight: 0, acceptTime: 0, resolveTime: 0, expiryHeight: 0, state: 0, customRecords: {}, mppTotalAmtMsat: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 chan_id = 1 [jstype = JS_STRING];*/ 1: - message.chanId = reader.uint64().toString(); - break; - case /* uint64 htlc_index */ 2: - message.htlcIndex = reader.uint64().toNumber(); - break; - case /* uint64 amt_msat */ 3: - message.amtMsat = reader.uint64().toNumber(); - break; - case /* int32 accept_height */ 4: - message.acceptHeight = reader.int32(); - break; - case /* int64 accept_time */ 5: - message.acceptTime = reader.int64().toNumber(); - break; - case /* int64 resolve_time */ 6: - message.resolveTime = reader.int64().toNumber(); - break; - case /* int32 expiry_height */ 7: - message.expiryHeight = reader.int32(); - break; - case /* lnrpc.InvoiceHTLCState state */ 8: - message.state = reader.int32(); - break; - case /* map custom_records */ 9: - this.binaryReadMap9(message.customRecords, reader, options); - break; - case /* uint64 mpp_total_amt_msat */ 10: - message.mppTotalAmtMsat = reader.uint64().toNumber(); - break; - case /* lnrpc.AMP amp */ 11: - message.amp = AMP.internalBinaryRead(reader, reader.uint32(), options, message.amp); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap9(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint64().toString(); - break; - case 2: - val = reader.bytes(); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.InvoiceHTLC.custom_records"); - } - } - map[key ?? "0"] = val ?? new Uint8Array(0); - } - internalBinaryWrite(message, writer, options) { - /* uint64 chan_id = 1 [jstype = JS_STRING]; */ - if (message.chanId !== "0") - writer.tag(1, WireType.Varint).uint64(message.chanId); - /* uint64 htlc_index = 2; */ - if (message.htlcIndex !== 0) - writer.tag(2, WireType.Varint).uint64(message.htlcIndex); - /* uint64 amt_msat = 3; */ - if (message.amtMsat !== 0) - writer.tag(3, WireType.Varint).uint64(message.amtMsat); - /* int32 accept_height = 4; */ - if (message.acceptHeight !== 0) - writer.tag(4, WireType.Varint).int32(message.acceptHeight); - /* int64 accept_time = 5; */ - if (message.acceptTime !== 0) - writer.tag(5, WireType.Varint).int64(message.acceptTime); - /* int64 resolve_time = 6; */ - if (message.resolveTime !== 0) - writer.tag(6, WireType.Varint).int64(message.resolveTime); - /* int32 expiry_height = 7; */ - if (message.expiryHeight !== 0) - writer.tag(7, WireType.Varint).int32(message.expiryHeight); - /* lnrpc.InvoiceHTLCState state = 8; */ - if (message.state !== 0) - writer.tag(8, WireType.Varint).int32(message.state); - /* map custom_records = 9; */ - for (let k of Object.keys(message.customRecords)) - writer.tag(9, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint64(k).tag(2, WireType.LengthDelimited).bytes(message.customRecords[k]).join(); - /* uint64 mpp_total_amt_msat = 10; */ - if (message.mppTotalAmtMsat !== 0) - writer.tag(10, WireType.Varint).uint64(message.mppTotalAmtMsat); - /* lnrpc.AMP amp = 11; */ - if (message.amp) - AMP.internalBinaryWrite(message.amp, writer.tag(11, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.InvoiceHTLC - */ -export const InvoiceHTLC = new InvoiceHTLC$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class AMP$Type extends MessageType { - constructor() { - super("lnrpc.AMP", [ - { no: 1, name: "root_share", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "set_id", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "child_index", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 4, name: "hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 5, name: "preimage", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { rootShare: new Uint8Array(0), setId: new Uint8Array(0), childIndex: 0, hash: new Uint8Array(0), preimage: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes root_share */ 1: - message.rootShare = reader.bytes(); - break; - case /* bytes set_id */ 2: - message.setId = reader.bytes(); - break; - case /* uint32 child_index */ 3: - message.childIndex = reader.uint32(); - break; - case /* bytes hash */ 4: - message.hash = reader.bytes(); - break; - case /* bytes preimage */ 5: - message.preimage = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes root_share = 1; */ - if (message.rootShare.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.rootShare); - /* bytes set_id = 2; */ - if (message.setId.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.setId); - /* uint32 child_index = 3; */ - if (message.childIndex !== 0) - writer.tag(3, WireType.Varint).uint32(message.childIndex); - /* bytes hash = 4; */ - if (message.hash.length) - writer.tag(4, WireType.LengthDelimited).bytes(message.hash); - /* bytes preimage = 5; */ - if (message.preimage.length) - writer.tag(5, WireType.LengthDelimited).bytes(message.preimage); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.AMP - */ -export const AMP = new AMP$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class AddInvoiceResponse$Type extends MessageType { - constructor() { - super("lnrpc.AddInvoiceResponse", [ - { no: 1, name: "r_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "payment_request", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 16, name: "add_index", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 17, name: "payment_addr", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { rHash: new Uint8Array(0), paymentRequest: "", addIndex: 0, paymentAddr: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes r_hash */ 1: - message.rHash = reader.bytes(); - break; - case /* string payment_request */ 2: - message.paymentRequest = reader.string(); - break; - case /* uint64 add_index */ 16: - message.addIndex = reader.uint64().toNumber(); - break; - case /* bytes payment_addr */ 17: - message.paymentAddr = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes r_hash = 1; */ - if (message.rHash.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.rHash); - /* string payment_request = 2; */ - if (message.paymentRequest !== "") - writer.tag(2, WireType.LengthDelimited).string(message.paymentRequest); - /* uint64 add_index = 16; */ - if (message.addIndex !== 0) - writer.tag(16, WireType.Varint).uint64(message.addIndex); - /* bytes payment_addr = 17; */ - if (message.paymentAddr.length) - writer.tag(17, WireType.LengthDelimited).bytes(message.paymentAddr); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.AddInvoiceResponse - */ -export const AddInvoiceResponse = new AddInvoiceResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PaymentHash$Type extends MessageType { - constructor() { - super("lnrpc.PaymentHash", [ - { no: 1, name: "r_hash_str", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "r_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { rHashStr: "", rHash: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string r_hash_str = 1 [deprecated = true];*/ 1: - message.rHashStr = reader.string(); - break; - case /* bytes r_hash */ 2: - message.rHash = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string r_hash_str = 1 [deprecated = true]; */ - if (message.rHashStr !== "") - writer.tag(1, WireType.LengthDelimited).string(message.rHashStr); - /* bytes r_hash = 2; */ - if (message.rHash.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.rHash); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PaymentHash - */ -export const PaymentHash = new PaymentHash$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListInvoiceRequest$Type extends MessageType { - constructor() { - super("lnrpc.ListInvoiceRequest", [ - { no: 1, name: "pending_only", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 4, name: "index_offset", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "num_max_invoices", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "reversed", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { pendingOnly: false, indexOffset: 0, numMaxInvoices: 0, reversed: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool pending_only */ 1: - message.pendingOnly = reader.bool(); - break; - case /* uint64 index_offset */ 4: - message.indexOffset = reader.uint64().toNumber(); - break; - case /* uint64 num_max_invoices */ 5: - message.numMaxInvoices = reader.uint64().toNumber(); - break; - case /* bool reversed */ 6: - message.reversed = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool pending_only = 1; */ - if (message.pendingOnly !== false) - writer.tag(1, WireType.Varint).bool(message.pendingOnly); - /* uint64 index_offset = 4; */ - if (message.indexOffset !== 0) - writer.tag(4, WireType.Varint).uint64(message.indexOffset); - /* uint64 num_max_invoices = 5; */ - if (message.numMaxInvoices !== 0) - writer.tag(5, WireType.Varint).uint64(message.numMaxInvoices); - /* bool reversed = 6; */ - if (message.reversed !== false) - writer.tag(6, WireType.Varint).bool(message.reversed); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListInvoiceRequest - */ -export const ListInvoiceRequest = new ListInvoiceRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListInvoiceResponse$Type extends MessageType { - constructor() { - super("lnrpc.ListInvoiceResponse", [ - { no: 1, name: "invoices", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Invoice }, - { no: 2, name: "last_index_offset", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "first_index_offset", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { invoices: [], lastIndexOffset: 0, firstIndexOffset: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.Invoice invoices */ 1: - message.invoices.push(Invoice.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* uint64 last_index_offset */ 2: - message.lastIndexOffset = reader.uint64().toNumber(); - break; - case /* uint64 first_index_offset */ 3: - message.firstIndexOffset = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.Invoice invoices = 1; */ - for (let i = 0; i < message.invoices.length; i++) - Invoice.internalBinaryWrite(message.invoices[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* uint64 last_index_offset = 2; */ - if (message.lastIndexOffset !== 0) - writer.tag(2, WireType.Varint).uint64(message.lastIndexOffset); - /* uint64 first_index_offset = 3; */ - if (message.firstIndexOffset !== 0) - writer.tag(3, WireType.Varint).uint64(message.firstIndexOffset); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListInvoiceResponse - */ -export const ListInvoiceResponse = new ListInvoiceResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class InvoiceSubscription$Type extends MessageType { - constructor() { - super("lnrpc.InvoiceSubscription", [ - { no: 1, name: "add_index", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "settle_index", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { addIndex: 0, settleIndex: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 add_index */ 1: - message.addIndex = reader.uint64().toNumber(); - break; - case /* uint64 settle_index */ 2: - message.settleIndex = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 add_index = 1; */ - if (message.addIndex !== 0) - writer.tag(1, WireType.Varint).uint64(message.addIndex); - /* uint64 settle_index = 2; */ - if (message.settleIndex !== 0) - writer.tag(2, WireType.Varint).uint64(message.settleIndex); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.InvoiceSubscription - */ -export const InvoiceSubscription = new InvoiceSubscription$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class Payment$Type extends MessageType { - constructor() { - super("lnrpc.Payment", [ - { no: 1, name: "payment_hash", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "value", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "creation_date", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "fee", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "payment_preimage", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 7, name: "value_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "value_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 9, name: "payment_request", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 10, name: "status", kind: "enum", T: () => ["lnrpc.Payment.PaymentStatus", Payment_PaymentStatus] }, - { no: 11, name: "fee_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 12, name: "fee_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 13, name: "creation_time_ns", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 14, name: "htlcs", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => HTLCAttempt }, - { no: 15, name: "payment_index", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 16, name: "failure_reason", kind: "enum", T: () => ["lnrpc.PaymentFailureReason", PaymentFailureReason] } - ]); - } - create(value) { - const message = { paymentHash: "", value: 0, creationDate: 0, fee: 0, paymentPreimage: "", valueSat: 0, valueMsat: 0, paymentRequest: "", status: 0, feeSat: 0, feeMsat: 0, creationTimeNs: 0, htlcs: [], paymentIndex: 0, failureReason: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string payment_hash */ 1: - message.paymentHash = reader.string(); - break; - case /* int64 value = 2 [deprecated = true];*/ 2: - message.value = reader.int64().toNumber(); - break; - case /* int64 creation_date = 3 [deprecated = true];*/ 3: - message.creationDate = reader.int64().toNumber(); - break; - case /* int64 fee = 5 [deprecated = true];*/ 5: - message.fee = reader.int64().toNumber(); - break; - case /* string payment_preimage */ 6: - message.paymentPreimage = reader.string(); - break; - case /* int64 value_sat */ 7: - message.valueSat = reader.int64().toNumber(); - break; - case /* int64 value_msat */ 8: - message.valueMsat = reader.int64().toNumber(); - break; - case /* string payment_request */ 9: - message.paymentRequest = reader.string(); - break; - case /* lnrpc.Payment.PaymentStatus status */ 10: - message.status = reader.int32(); - break; - case /* int64 fee_sat */ 11: - message.feeSat = reader.int64().toNumber(); - break; - case /* int64 fee_msat */ 12: - message.feeMsat = reader.int64().toNumber(); - break; - case /* int64 creation_time_ns */ 13: - message.creationTimeNs = reader.int64().toNumber(); - break; - case /* repeated lnrpc.HTLCAttempt htlcs */ 14: - message.htlcs.push(HTLCAttempt.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* uint64 payment_index */ 15: - message.paymentIndex = reader.uint64().toNumber(); - break; - case /* lnrpc.PaymentFailureReason failure_reason */ 16: - message.failureReason = reader.int32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string payment_hash = 1; */ - if (message.paymentHash !== "") - writer.tag(1, WireType.LengthDelimited).string(message.paymentHash); - /* int64 value = 2 [deprecated = true]; */ - if (message.value !== 0) - writer.tag(2, WireType.Varint).int64(message.value); - /* int64 creation_date = 3 [deprecated = true]; */ - if (message.creationDate !== 0) - writer.tag(3, WireType.Varint).int64(message.creationDate); - /* int64 fee = 5 [deprecated = true]; */ - if (message.fee !== 0) - writer.tag(5, WireType.Varint).int64(message.fee); - /* string payment_preimage = 6; */ - if (message.paymentPreimage !== "") - writer.tag(6, WireType.LengthDelimited).string(message.paymentPreimage); - /* int64 value_sat = 7; */ - if (message.valueSat !== 0) - writer.tag(7, WireType.Varint).int64(message.valueSat); - /* int64 value_msat = 8; */ - if (message.valueMsat !== 0) - writer.tag(8, WireType.Varint).int64(message.valueMsat); - /* string payment_request = 9; */ - if (message.paymentRequest !== "") - writer.tag(9, WireType.LengthDelimited).string(message.paymentRequest); - /* lnrpc.Payment.PaymentStatus status = 10; */ - if (message.status !== 0) - writer.tag(10, WireType.Varint).int32(message.status); - /* int64 fee_sat = 11; */ - if (message.feeSat !== 0) - writer.tag(11, WireType.Varint).int64(message.feeSat); - /* int64 fee_msat = 12; */ - if (message.feeMsat !== 0) - writer.tag(12, WireType.Varint).int64(message.feeMsat); - /* int64 creation_time_ns = 13; */ - if (message.creationTimeNs !== 0) - writer.tag(13, WireType.Varint).int64(message.creationTimeNs); - /* repeated lnrpc.HTLCAttempt htlcs = 14; */ - for (let i = 0; i < message.htlcs.length; i++) - HTLCAttempt.internalBinaryWrite(message.htlcs[i], writer.tag(14, WireType.LengthDelimited).fork(), options).join(); - /* uint64 payment_index = 15; */ - if (message.paymentIndex !== 0) - writer.tag(15, WireType.Varint).uint64(message.paymentIndex); - /* lnrpc.PaymentFailureReason failure_reason = 16; */ - if (message.failureReason !== 0) - writer.tag(16, WireType.Varint).int32(message.failureReason); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.Payment - */ -export const Payment = new Payment$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class HTLCAttempt$Type extends MessageType { - constructor() { - super("lnrpc.HTLCAttempt", [ - { no: 7, name: "attempt_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 1, name: "status", kind: "enum", T: () => ["lnrpc.HTLCAttempt.HTLCStatus", HTLCAttempt_HTLCStatus] }, - { no: 2, name: "route", kind: "message", T: () => Route }, - { no: 3, name: "attempt_time_ns", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "resolve_time_ns", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "failure", kind: "message", T: () => Failure }, - { no: 6, name: "preimage", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { attemptId: 0, status: 0, attemptTimeNs: 0, resolveTimeNs: 0, preimage: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 attempt_id */ 7: - message.attemptId = reader.uint64().toNumber(); - break; - case /* lnrpc.HTLCAttempt.HTLCStatus status */ 1: - message.status = reader.int32(); - break; - case /* lnrpc.Route route */ 2: - message.route = Route.internalBinaryRead(reader, reader.uint32(), options, message.route); - break; - case /* int64 attempt_time_ns */ 3: - message.attemptTimeNs = reader.int64().toNumber(); - break; - case /* int64 resolve_time_ns */ 4: - message.resolveTimeNs = reader.int64().toNumber(); - break; - case /* lnrpc.Failure failure */ 5: - message.failure = Failure.internalBinaryRead(reader, reader.uint32(), options, message.failure); - break; - case /* bytes preimage */ 6: - message.preimage = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 attempt_id = 7; */ - if (message.attemptId !== 0) - writer.tag(7, WireType.Varint).uint64(message.attemptId); - /* lnrpc.HTLCAttempt.HTLCStatus status = 1; */ - if (message.status !== 0) - writer.tag(1, WireType.Varint).int32(message.status); - /* lnrpc.Route route = 2; */ - if (message.route) - Route.internalBinaryWrite(message.route, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - /* int64 attempt_time_ns = 3; */ - if (message.attemptTimeNs !== 0) - writer.tag(3, WireType.Varint).int64(message.attemptTimeNs); - /* int64 resolve_time_ns = 4; */ - if (message.resolveTimeNs !== 0) - writer.tag(4, WireType.Varint).int64(message.resolveTimeNs); - /* lnrpc.Failure failure = 5; */ - if (message.failure) - Failure.internalBinaryWrite(message.failure, writer.tag(5, WireType.LengthDelimited).fork(), options).join(); - /* bytes preimage = 6; */ - if (message.preimage.length) - writer.tag(6, WireType.LengthDelimited).bytes(message.preimage); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.HTLCAttempt - */ -export const HTLCAttempt = new HTLCAttempt$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListPaymentsRequest$Type extends MessageType { - constructor() { - super("lnrpc.ListPaymentsRequest", [ - { no: 1, name: "include_incomplete", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 2, name: "index_offset", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "max_payments", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "reversed", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 5, name: "count_total_payments", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { includeIncomplete: false, indexOffset: 0, maxPayments: 0, reversed: false, countTotalPayments: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool include_incomplete */ 1: - message.includeIncomplete = reader.bool(); - break; - case /* uint64 index_offset */ 2: - message.indexOffset = reader.uint64().toNumber(); - break; - case /* uint64 max_payments */ 3: - message.maxPayments = reader.uint64().toNumber(); - break; - case /* bool reversed */ 4: - message.reversed = reader.bool(); - break; - case /* bool count_total_payments */ 5: - message.countTotalPayments = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool include_incomplete = 1; */ - if (message.includeIncomplete !== false) - writer.tag(1, WireType.Varint).bool(message.includeIncomplete); - /* uint64 index_offset = 2; */ - if (message.indexOffset !== 0) - writer.tag(2, WireType.Varint).uint64(message.indexOffset); - /* uint64 max_payments = 3; */ - if (message.maxPayments !== 0) - writer.tag(3, WireType.Varint).uint64(message.maxPayments); - /* bool reversed = 4; */ - if (message.reversed !== false) - writer.tag(4, WireType.Varint).bool(message.reversed); - /* bool count_total_payments = 5; */ - if (message.countTotalPayments !== false) - writer.tag(5, WireType.Varint).bool(message.countTotalPayments); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListPaymentsRequest - */ -export const ListPaymentsRequest = new ListPaymentsRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListPaymentsResponse$Type extends MessageType { - constructor() { - super("lnrpc.ListPaymentsResponse", [ - { no: 1, name: "payments", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Payment }, - { no: 2, name: "first_index_offset", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "last_index_offset", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "total_num_payments", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { payments: [], firstIndexOffset: 0, lastIndexOffset: 0, totalNumPayments: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.Payment payments */ 1: - message.payments.push(Payment.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* uint64 first_index_offset */ 2: - message.firstIndexOffset = reader.uint64().toNumber(); - break; - case /* uint64 last_index_offset */ 3: - message.lastIndexOffset = reader.uint64().toNumber(); - break; - case /* uint64 total_num_payments */ 4: - message.totalNumPayments = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.Payment payments = 1; */ - for (let i = 0; i < message.payments.length; i++) - Payment.internalBinaryWrite(message.payments[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* uint64 first_index_offset = 2; */ - if (message.firstIndexOffset !== 0) - writer.tag(2, WireType.Varint).uint64(message.firstIndexOffset); - /* uint64 last_index_offset = 3; */ - if (message.lastIndexOffset !== 0) - writer.tag(3, WireType.Varint).uint64(message.lastIndexOffset); - /* uint64 total_num_payments = 4; */ - if (message.totalNumPayments !== 0) - writer.tag(4, WireType.Varint).uint64(message.totalNumPayments); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListPaymentsResponse - */ -export const ListPaymentsResponse = new ListPaymentsResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class DeletePaymentRequest$Type extends MessageType { - constructor() { - super("lnrpc.DeletePaymentRequest", [ - { no: 1, name: "payment_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "failed_htlcs_only", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { paymentHash: new Uint8Array(0), failedHtlcsOnly: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes payment_hash */ 1: - message.paymentHash = reader.bytes(); - break; - case /* bool failed_htlcs_only */ 2: - message.failedHtlcsOnly = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes payment_hash = 1; */ - if (message.paymentHash.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.paymentHash); - /* bool failed_htlcs_only = 2; */ - if (message.failedHtlcsOnly !== false) - writer.tag(2, WireType.Varint).bool(message.failedHtlcsOnly); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.DeletePaymentRequest - */ -export const DeletePaymentRequest = new DeletePaymentRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class DeleteAllPaymentsRequest$Type extends MessageType { - constructor() { - super("lnrpc.DeleteAllPaymentsRequest", [ - { no: 1, name: "failed_payments_only", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 2, name: "failed_htlcs_only", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { failedPaymentsOnly: false, failedHtlcsOnly: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool failed_payments_only */ 1: - message.failedPaymentsOnly = reader.bool(); - break; - case /* bool failed_htlcs_only */ 2: - message.failedHtlcsOnly = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool failed_payments_only = 1; */ - if (message.failedPaymentsOnly !== false) - writer.tag(1, WireType.Varint).bool(message.failedPaymentsOnly); - /* bool failed_htlcs_only = 2; */ - if (message.failedHtlcsOnly !== false) - writer.tag(2, WireType.Varint).bool(message.failedHtlcsOnly); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.DeleteAllPaymentsRequest - */ -export const DeleteAllPaymentsRequest = new DeleteAllPaymentsRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class DeletePaymentResponse$Type extends MessageType { - constructor() { - super("lnrpc.DeletePaymentResponse", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.DeletePaymentResponse - */ -export const DeletePaymentResponse = new DeletePaymentResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class DeleteAllPaymentsResponse$Type extends MessageType { - constructor() { - super("lnrpc.DeleteAllPaymentsResponse", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.DeleteAllPaymentsResponse - */ -export const DeleteAllPaymentsResponse = new DeleteAllPaymentsResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class AbandonChannelRequest$Type extends MessageType { - constructor() { - super("lnrpc.AbandonChannelRequest", [ - { no: 1, name: "channel_point", kind: "message", T: () => ChannelPoint }, - { no: 2, name: "pending_funding_shim_only", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 3, name: "i_know_what_i_am_doing", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { pendingFundingShimOnly: false, iKnowWhatIAmDoing: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.ChannelPoint channel_point */ 1: - message.channelPoint = ChannelPoint.internalBinaryRead(reader, reader.uint32(), options, message.channelPoint); - break; - case /* bool pending_funding_shim_only */ 2: - message.pendingFundingShimOnly = reader.bool(); - break; - case /* bool i_know_what_i_am_doing */ 3: - message.iKnowWhatIAmDoing = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.ChannelPoint channel_point = 1; */ - if (message.channelPoint) - ChannelPoint.internalBinaryWrite(message.channelPoint, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* bool pending_funding_shim_only = 2; */ - if (message.pendingFundingShimOnly !== false) - writer.tag(2, WireType.Varint).bool(message.pendingFundingShimOnly); - /* bool i_know_what_i_am_doing = 3; */ - if (message.iKnowWhatIAmDoing !== false) - writer.tag(3, WireType.Varint).bool(message.iKnowWhatIAmDoing); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.AbandonChannelRequest - */ -export const AbandonChannelRequest = new AbandonChannelRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class AbandonChannelResponse$Type extends MessageType { - constructor() { - super("lnrpc.AbandonChannelResponse", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.AbandonChannelResponse - */ -export const AbandonChannelResponse = new AbandonChannelResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class DebugLevelRequest$Type extends MessageType { - constructor() { - super("lnrpc.DebugLevelRequest", [ - { no: 1, name: "show", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 2, name: "level_spec", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { show: false, levelSpec: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool show */ 1: - message.show = reader.bool(); - break; - case /* string level_spec */ 2: - message.levelSpec = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool show = 1; */ - if (message.show !== false) - writer.tag(1, WireType.Varint).bool(message.show); - /* string level_spec = 2; */ - if (message.levelSpec !== "") - writer.tag(2, WireType.LengthDelimited).string(message.levelSpec); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.DebugLevelRequest - */ -export const DebugLevelRequest = new DebugLevelRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class DebugLevelResponse$Type extends MessageType { - constructor() { - super("lnrpc.DebugLevelResponse", [ - { no: 1, name: "sub_systems", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { subSystems: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string sub_systems */ 1: - message.subSystems = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string sub_systems = 1; */ - if (message.subSystems !== "") - writer.tag(1, WireType.LengthDelimited).string(message.subSystems); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.DebugLevelResponse - */ -export const DebugLevelResponse = new DebugLevelResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PayReqString$Type extends MessageType { - constructor() { - super("lnrpc.PayReqString", [ - { no: 1, name: "pay_req", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { payReq: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string pay_req */ 1: - message.payReq = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string pay_req = 1; */ - if (message.payReq !== "") - writer.tag(1, WireType.LengthDelimited).string(message.payReq); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PayReqString - */ -export const PayReqString = new PayReqString$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PayReq$Type extends MessageType { - constructor() { - super("lnrpc.PayReq", [ - { no: 1, name: "destination", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "payment_hash", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "num_satoshis", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "timestamp", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "expiry", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "description", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 7, name: "description_hash", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 8, name: "fallback_addr", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 9, name: "cltv_expiry", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 10, name: "route_hints", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => RouteHint }, - { no: 11, name: "payment_addr", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 12, name: "num_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 13, name: "features", kind: "map", K: 13 /*ScalarType.UINT32*/, V: { kind: "message", T: () => Feature } } - ]); - } - create(value) { - const message = { destination: "", paymentHash: "", numSatoshis: 0, timestamp: 0, expiry: 0, description: "", descriptionHash: "", fallbackAddr: "", cltvExpiry: 0, routeHints: [], paymentAddr: new Uint8Array(0), numMsat: 0, features: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string destination */ 1: - message.destination = reader.string(); - break; - case /* string payment_hash */ 2: - message.paymentHash = reader.string(); - break; - case /* int64 num_satoshis */ 3: - message.numSatoshis = reader.int64().toNumber(); - break; - case /* int64 timestamp */ 4: - message.timestamp = reader.int64().toNumber(); - break; - case /* int64 expiry */ 5: - message.expiry = reader.int64().toNumber(); - break; - case /* string description */ 6: - message.description = reader.string(); - break; - case /* string description_hash */ 7: - message.descriptionHash = reader.string(); - break; - case /* string fallback_addr */ 8: - message.fallbackAddr = reader.string(); - break; - case /* int64 cltv_expiry */ 9: - message.cltvExpiry = reader.int64().toNumber(); - break; - case /* repeated lnrpc.RouteHint route_hints */ 10: - message.routeHints.push(RouteHint.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* bytes payment_addr */ 11: - message.paymentAddr = reader.bytes(); - break; - case /* int64 num_msat */ 12: - message.numMsat = reader.int64().toNumber(); - break; - case /* map features */ 13: - this.binaryReadMap13(message.features, reader, options); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap13(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint32(); - break; - case 2: - val = Feature.internalBinaryRead(reader, reader.uint32(), options); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.PayReq.features"); - } - } - map[key ?? 0] = val ?? Feature.create(); - } - internalBinaryWrite(message, writer, options) { - /* string destination = 1; */ - if (message.destination !== "") - writer.tag(1, WireType.LengthDelimited).string(message.destination); - /* string payment_hash = 2; */ - if (message.paymentHash !== "") - writer.tag(2, WireType.LengthDelimited).string(message.paymentHash); - /* int64 num_satoshis = 3; */ - if (message.numSatoshis !== 0) - writer.tag(3, WireType.Varint).int64(message.numSatoshis); - /* int64 timestamp = 4; */ - if (message.timestamp !== 0) - writer.tag(4, WireType.Varint).int64(message.timestamp); - /* int64 expiry = 5; */ - if (message.expiry !== 0) - writer.tag(5, WireType.Varint).int64(message.expiry); - /* string description = 6; */ - if (message.description !== "") - writer.tag(6, WireType.LengthDelimited).string(message.description); - /* string description_hash = 7; */ - if (message.descriptionHash !== "") - writer.tag(7, WireType.LengthDelimited).string(message.descriptionHash); - /* string fallback_addr = 8; */ - if (message.fallbackAddr !== "") - writer.tag(8, WireType.LengthDelimited).string(message.fallbackAddr); - /* int64 cltv_expiry = 9; */ - if (message.cltvExpiry !== 0) - writer.tag(9, WireType.Varint).int64(message.cltvExpiry); - /* repeated lnrpc.RouteHint route_hints = 10; */ - for (let i = 0; i < message.routeHints.length; i++) - RouteHint.internalBinaryWrite(message.routeHints[i], writer.tag(10, WireType.LengthDelimited).fork(), options).join(); - /* bytes payment_addr = 11; */ - if (message.paymentAddr.length) - writer.tag(11, WireType.LengthDelimited).bytes(message.paymentAddr); - /* int64 num_msat = 12; */ - if (message.numMsat !== 0) - writer.tag(12, WireType.Varint).int64(message.numMsat); - /* map features = 13; */ - for (let k of Object.keys(message.features)) { - writer.tag(13, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint32(parseInt(k)); - writer.tag(2, WireType.LengthDelimited).fork(); - Feature.internalBinaryWrite(message.features[k], writer, options); - writer.join().join(); - } - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PayReq - */ -export const PayReq = new PayReq$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class Feature$Type extends MessageType { - constructor() { - super("lnrpc.Feature", [ - { no: 2, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "is_required", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 4, name: "is_known", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { name: "", isRequired: false, isKnown: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string name */ 2: - message.name = reader.string(); - break; - case /* bool is_required */ 3: - message.isRequired = reader.bool(); - break; - case /* bool is_known */ 4: - message.isKnown = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string name = 2; */ - if (message.name !== "") - writer.tag(2, WireType.LengthDelimited).string(message.name); - /* bool is_required = 3; */ - if (message.isRequired !== false) - writer.tag(3, WireType.Varint).bool(message.isRequired); - /* bool is_known = 4; */ - if (message.isKnown !== false) - writer.tag(4, WireType.Varint).bool(message.isKnown); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.Feature - */ -export const Feature = new Feature$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class FeeReportRequest$Type extends MessageType { - constructor() { - super("lnrpc.FeeReportRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.FeeReportRequest - */ -export const FeeReportRequest = new FeeReportRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelFeeReport$Type extends MessageType { - constructor() { - super("lnrpc.ChannelFeeReport", [ - { no: 5, name: "chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 1, name: "channel_point", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "base_fee_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "fee_per_mil", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "fee_rate", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ } - ]); - } - create(value) { - const message = { chanId: "0", channelPoint: "", baseFeeMsat: 0, feePerMil: 0, feeRate: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 chan_id = 5 [jstype = JS_STRING];*/ 5: - message.chanId = reader.uint64().toString(); - break; - case /* string channel_point */ 1: - message.channelPoint = reader.string(); - break; - case /* int64 base_fee_msat */ 2: - message.baseFeeMsat = reader.int64().toNumber(); - break; - case /* int64 fee_per_mil */ 3: - message.feePerMil = reader.int64().toNumber(); - break; - case /* double fee_rate */ 4: - message.feeRate = reader.double(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 chan_id = 5 [jstype = JS_STRING]; */ - if (message.chanId !== "0") - writer.tag(5, WireType.Varint).uint64(message.chanId); - /* string channel_point = 1; */ - if (message.channelPoint !== "") - writer.tag(1, WireType.LengthDelimited).string(message.channelPoint); - /* int64 base_fee_msat = 2; */ - if (message.baseFeeMsat !== 0) - writer.tag(2, WireType.Varint).int64(message.baseFeeMsat); - /* int64 fee_per_mil = 3; */ - if (message.feePerMil !== 0) - writer.tag(3, WireType.Varint).int64(message.feePerMil); - /* double fee_rate = 4; */ - if (message.feeRate !== 0) - writer.tag(4, WireType.Bit64).double(message.feeRate); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelFeeReport - */ -export const ChannelFeeReport = new ChannelFeeReport$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class FeeReportResponse$Type extends MessageType { - constructor() { - super("lnrpc.FeeReportResponse", [ - { no: 1, name: "channel_fees", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => ChannelFeeReport }, - { no: 2, name: "day_fee_sum", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "week_fee_sum", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "month_fee_sum", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { channelFees: [], dayFeeSum: 0, weekFeeSum: 0, monthFeeSum: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.ChannelFeeReport channel_fees */ 1: - message.channelFees.push(ChannelFeeReport.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* uint64 day_fee_sum */ 2: - message.dayFeeSum = reader.uint64().toNumber(); - break; - case /* uint64 week_fee_sum */ 3: - message.weekFeeSum = reader.uint64().toNumber(); - break; - case /* uint64 month_fee_sum */ 4: - message.monthFeeSum = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.ChannelFeeReport channel_fees = 1; */ - for (let i = 0; i < message.channelFees.length; i++) - ChannelFeeReport.internalBinaryWrite(message.channelFees[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* uint64 day_fee_sum = 2; */ - if (message.dayFeeSum !== 0) - writer.tag(2, WireType.Varint).uint64(message.dayFeeSum); - /* uint64 week_fee_sum = 3; */ - if (message.weekFeeSum !== 0) - writer.tag(3, WireType.Varint).uint64(message.weekFeeSum); - /* uint64 month_fee_sum = 4; */ - if (message.monthFeeSum !== 0) - writer.tag(4, WireType.Varint).uint64(message.monthFeeSum); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.FeeReportResponse - */ -export const FeeReportResponse = new FeeReportResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PolicyUpdateRequest$Type extends MessageType { - constructor() { - super("lnrpc.PolicyUpdateRequest", [ - { no: 1, name: "global", kind: "scalar", oneof: "scope", T: 8 /*ScalarType.BOOL*/ }, - { no: 2, name: "chan_point", kind: "message", oneof: "scope", T: () => ChannelPoint }, - { no: 3, name: "base_fee_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "fee_rate", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ }, - { no: 9, name: "fee_rate_ppm", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 5, name: "time_lock_delta", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 6, name: "max_htlc_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "min_htlc_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "min_htlc_msat_specified", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { scope: { oneofKind: undefined }, baseFeeMsat: 0, feeRate: 0, feeRatePpm: 0, timeLockDelta: 0, maxHtlcMsat: 0, minHtlcMsat: 0, minHtlcMsatSpecified: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool global */ 1: - message.scope = { - oneofKind: "global", - global: reader.bool() - }; - break; - case /* lnrpc.ChannelPoint chan_point */ 2: - message.scope = { - oneofKind: "chanPoint", - chanPoint: ChannelPoint.internalBinaryRead(reader, reader.uint32(), options, message.scope.chanPoint) - }; - break; - case /* int64 base_fee_msat */ 3: - message.baseFeeMsat = reader.int64().toNumber(); - break; - case /* double fee_rate */ 4: - message.feeRate = reader.double(); - break; - case /* uint32 fee_rate_ppm */ 9: - message.feeRatePpm = reader.uint32(); - break; - case /* uint32 time_lock_delta */ 5: - message.timeLockDelta = reader.uint32(); - break; - case /* uint64 max_htlc_msat */ 6: - message.maxHtlcMsat = reader.uint64().toNumber(); - break; - case /* uint64 min_htlc_msat */ 7: - message.minHtlcMsat = reader.uint64().toNumber(); - break; - case /* bool min_htlc_msat_specified */ 8: - message.minHtlcMsatSpecified = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool global = 1; */ - if (message.scope.oneofKind === "global") - writer.tag(1, WireType.Varint).bool(message.scope.global); - /* lnrpc.ChannelPoint chan_point = 2; */ - if (message.scope.oneofKind === "chanPoint") - ChannelPoint.internalBinaryWrite(message.scope.chanPoint, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - /* int64 base_fee_msat = 3; */ - if (message.baseFeeMsat !== 0) - writer.tag(3, WireType.Varint).int64(message.baseFeeMsat); - /* double fee_rate = 4; */ - if (message.feeRate !== 0) - writer.tag(4, WireType.Bit64).double(message.feeRate); - /* uint32 fee_rate_ppm = 9; */ - if (message.feeRatePpm !== 0) - writer.tag(9, WireType.Varint).uint32(message.feeRatePpm); - /* uint32 time_lock_delta = 5; */ - if (message.timeLockDelta !== 0) - writer.tag(5, WireType.Varint).uint32(message.timeLockDelta); - /* uint64 max_htlc_msat = 6; */ - if (message.maxHtlcMsat !== 0) - writer.tag(6, WireType.Varint).uint64(message.maxHtlcMsat); - /* uint64 min_htlc_msat = 7; */ - if (message.minHtlcMsat !== 0) - writer.tag(7, WireType.Varint).uint64(message.minHtlcMsat); - /* bool min_htlc_msat_specified = 8; */ - if (message.minHtlcMsatSpecified !== false) - writer.tag(8, WireType.Varint).bool(message.minHtlcMsatSpecified); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PolicyUpdateRequest - */ -export const PolicyUpdateRequest = new PolicyUpdateRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class FailedUpdate$Type extends MessageType { - constructor() { - super("lnrpc.FailedUpdate", [ - { no: 1, name: "outpoint", kind: "message", T: () => OutPoint }, - { no: 2, name: "reason", kind: "enum", T: () => ["lnrpc.UpdateFailure", UpdateFailure, "UPDATE_FAILURE_"] }, - { no: 3, name: "update_error", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { reason: 0, updateError: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.OutPoint outpoint */ 1: - message.outpoint = OutPoint.internalBinaryRead(reader, reader.uint32(), options, message.outpoint); - break; - case /* lnrpc.UpdateFailure reason */ 2: - message.reason = reader.int32(); - break; - case /* string update_error */ 3: - message.updateError = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.OutPoint outpoint = 1; */ - if (message.outpoint) - OutPoint.internalBinaryWrite(message.outpoint, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.UpdateFailure reason = 2; */ - if (message.reason !== 0) - writer.tag(2, WireType.Varint).int32(message.reason); - /* string update_error = 3; */ - if (message.updateError !== "") - writer.tag(3, WireType.LengthDelimited).string(message.updateError); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.FailedUpdate - */ -export const FailedUpdate = new FailedUpdate$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PolicyUpdateResponse$Type extends MessageType { - constructor() { - super("lnrpc.PolicyUpdateResponse", [ - { no: 1, name: "failed_updates", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => FailedUpdate } - ]); - } - create(value) { - const message = { failedUpdates: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.FailedUpdate failed_updates */ 1: - message.failedUpdates.push(FailedUpdate.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.FailedUpdate failed_updates = 1; */ - for (let i = 0; i < message.failedUpdates.length; i++) - FailedUpdate.internalBinaryWrite(message.failedUpdates[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.PolicyUpdateResponse - */ -export const PolicyUpdateResponse = new PolicyUpdateResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ForwardingHistoryRequest$Type extends MessageType { - constructor() { - super("lnrpc.ForwardingHistoryRequest", [ - { no: 1, name: "start_time", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "end_time", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "index_offset", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 4, name: "num_max_events", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 5, name: "peer_alias_lookup", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { startTime: 0, endTime: 0, indexOffset: 0, numMaxEvents: 0, peerAliasLookup: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 start_time */ 1: - message.startTime = reader.uint64().toNumber(); - break; - case /* uint64 end_time */ 2: - message.endTime = reader.uint64().toNumber(); - break; - case /* uint32 index_offset */ 3: - message.indexOffset = reader.uint32(); - break; - case /* uint32 num_max_events */ 4: - message.numMaxEvents = reader.uint32(); - break; - case /* bool peer_alias_lookup */ 5: - message.peerAliasLookup = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 start_time = 1; */ - if (message.startTime !== 0) - writer.tag(1, WireType.Varint).uint64(message.startTime); - /* uint64 end_time = 2; */ - if (message.endTime !== 0) - writer.tag(2, WireType.Varint).uint64(message.endTime); - /* uint32 index_offset = 3; */ - if (message.indexOffset !== 0) - writer.tag(3, WireType.Varint).uint32(message.indexOffset); - /* uint32 num_max_events = 4; */ - if (message.numMaxEvents !== 0) - writer.tag(4, WireType.Varint).uint32(message.numMaxEvents); - /* bool peer_alias_lookup = 5; */ - if (message.peerAliasLookup !== false) - writer.tag(5, WireType.Varint).bool(message.peerAliasLookup); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ForwardingHistoryRequest - */ -export const ForwardingHistoryRequest = new ForwardingHistoryRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ForwardingEvent$Type extends MessageType { - constructor() { - super("lnrpc.ForwardingEvent", [ - { no: 1, name: "timestamp", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "chan_id_in", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 4, name: "chan_id_out", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 5, name: "amt_in", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "amt_out", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "fee", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "fee_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 9, name: "amt_in_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 10, name: "amt_out_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 11, name: "timestamp_ns", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 12, name: "peer_alias_in", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 13, name: "peer_alias_out", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { timestamp: 0, chanIdIn: "0", chanIdOut: "0", amtIn: 0, amtOut: 0, fee: 0, feeMsat: 0, amtInMsat: 0, amtOutMsat: 0, timestampNs: 0, peerAliasIn: "", peerAliasOut: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 timestamp = 1 [deprecated = true];*/ 1: - message.timestamp = reader.uint64().toNumber(); - break; - case /* uint64 chan_id_in = 2 [jstype = JS_STRING];*/ 2: - message.chanIdIn = reader.uint64().toString(); - break; - case /* uint64 chan_id_out = 4 [jstype = JS_STRING];*/ 4: - message.chanIdOut = reader.uint64().toString(); - break; - case /* uint64 amt_in */ 5: - message.amtIn = reader.uint64().toNumber(); - break; - case /* uint64 amt_out */ 6: - message.amtOut = reader.uint64().toNumber(); - break; - case /* uint64 fee */ 7: - message.fee = reader.uint64().toNumber(); - break; - case /* uint64 fee_msat */ 8: - message.feeMsat = reader.uint64().toNumber(); - break; - case /* uint64 amt_in_msat */ 9: - message.amtInMsat = reader.uint64().toNumber(); - break; - case /* uint64 amt_out_msat */ 10: - message.amtOutMsat = reader.uint64().toNumber(); - break; - case /* uint64 timestamp_ns */ 11: - message.timestampNs = reader.uint64().toNumber(); - break; - case /* string peer_alias_in */ 12: - message.peerAliasIn = reader.string(); - break; - case /* string peer_alias_out */ 13: - message.peerAliasOut = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 timestamp = 1 [deprecated = true]; */ - if (message.timestamp !== 0) - writer.tag(1, WireType.Varint).uint64(message.timestamp); - /* uint64 chan_id_in = 2 [jstype = JS_STRING]; */ - if (message.chanIdIn !== "0") - writer.tag(2, WireType.Varint).uint64(message.chanIdIn); - /* uint64 chan_id_out = 4 [jstype = JS_STRING]; */ - if (message.chanIdOut !== "0") - writer.tag(4, WireType.Varint).uint64(message.chanIdOut); - /* uint64 amt_in = 5; */ - if (message.amtIn !== 0) - writer.tag(5, WireType.Varint).uint64(message.amtIn); - /* uint64 amt_out = 6; */ - if (message.amtOut !== 0) - writer.tag(6, WireType.Varint).uint64(message.amtOut); - /* uint64 fee = 7; */ - if (message.fee !== 0) - writer.tag(7, WireType.Varint).uint64(message.fee); - /* uint64 fee_msat = 8; */ - if (message.feeMsat !== 0) - writer.tag(8, WireType.Varint).uint64(message.feeMsat); - /* uint64 amt_in_msat = 9; */ - if (message.amtInMsat !== 0) - writer.tag(9, WireType.Varint).uint64(message.amtInMsat); - /* uint64 amt_out_msat = 10; */ - if (message.amtOutMsat !== 0) - writer.tag(10, WireType.Varint).uint64(message.amtOutMsat); - /* uint64 timestamp_ns = 11; */ - if (message.timestampNs !== 0) - writer.tag(11, WireType.Varint).uint64(message.timestampNs); - /* string peer_alias_in = 12; */ - if (message.peerAliasIn !== "") - writer.tag(12, WireType.LengthDelimited).string(message.peerAliasIn); - /* string peer_alias_out = 13; */ - if (message.peerAliasOut !== "") - writer.tag(13, WireType.LengthDelimited).string(message.peerAliasOut); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ForwardingEvent - */ -export const ForwardingEvent = new ForwardingEvent$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ForwardingHistoryResponse$Type extends MessageType { - constructor() { - super("lnrpc.ForwardingHistoryResponse", [ - { no: 1, name: "forwarding_events", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => ForwardingEvent }, - { no: 2, name: "last_offset_index", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } - ]); - } - create(value) { - const message = { forwardingEvents: [], lastOffsetIndex: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.ForwardingEvent forwarding_events */ 1: - message.forwardingEvents.push(ForwardingEvent.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* uint32 last_offset_index */ 2: - message.lastOffsetIndex = reader.uint32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.ForwardingEvent forwarding_events = 1; */ - for (let i = 0; i < message.forwardingEvents.length; i++) - ForwardingEvent.internalBinaryWrite(message.forwardingEvents[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* uint32 last_offset_index = 2; */ - if (message.lastOffsetIndex !== 0) - writer.tag(2, WireType.Varint).uint32(message.lastOffsetIndex); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ForwardingHistoryResponse - */ -export const ForwardingHistoryResponse = new ForwardingHistoryResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ExportChannelBackupRequest$Type extends MessageType { - constructor() { - super("lnrpc.ExportChannelBackupRequest", [ - { no: 1, name: "chan_point", kind: "message", T: () => ChannelPoint } - ]); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.ChannelPoint chan_point */ 1: - message.chanPoint = ChannelPoint.internalBinaryRead(reader, reader.uint32(), options, message.chanPoint); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.ChannelPoint chan_point = 1; */ - if (message.chanPoint) - ChannelPoint.internalBinaryWrite(message.chanPoint, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ExportChannelBackupRequest - */ -export const ExportChannelBackupRequest = new ExportChannelBackupRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelBackup$Type extends MessageType { - constructor() { - super("lnrpc.ChannelBackup", [ - { no: 1, name: "chan_point", kind: "message", T: () => ChannelPoint }, - { no: 2, name: "chan_backup", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { chanBackup: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.ChannelPoint chan_point */ 1: - message.chanPoint = ChannelPoint.internalBinaryRead(reader, reader.uint32(), options, message.chanPoint); - break; - case /* bytes chan_backup */ 2: - message.chanBackup = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.ChannelPoint chan_point = 1; */ - if (message.chanPoint) - ChannelPoint.internalBinaryWrite(message.chanPoint, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* bytes chan_backup = 2; */ - if (message.chanBackup.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.chanBackup); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelBackup - */ -export const ChannelBackup = new ChannelBackup$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class MultiChanBackup$Type extends MessageType { - constructor() { - super("lnrpc.MultiChanBackup", [ - { no: 1, name: "chan_points", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => ChannelPoint }, - { no: 2, name: "multi_chan_backup", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { chanPoints: [], multiChanBackup: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.ChannelPoint chan_points */ 1: - message.chanPoints.push(ChannelPoint.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* bytes multi_chan_backup */ 2: - message.multiChanBackup = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.ChannelPoint chan_points = 1; */ - for (let i = 0; i < message.chanPoints.length; i++) - ChannelPoint.internalBinaryWrite(message.chanPoints[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* bytes multi_chan_backup = 2; */ - if (message.multiChanBackup.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.multiChanBackup); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.MultiChanBackup - */ -export const MultiChanBackup = new MultiChanBackup$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChanBackupExportRequest$Type extends MessageType { - constructor() { - super("lnrpc.ChanBackupExportRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChanBackupExportRequest - */ -export const ChanBackupExportRequest = new ChanBackupExportRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChanBackupSnapshot$Type extends MessageType { - constructor() { - super("lnrpc.ChanBackupSnapshot", [ - { no: 1, name: "single_chan_backups", kind: "message", T: () => ChannelBackups }, - { no: 2, name: "multi_chan_backup", kind: "message", T: () => MultiChanBackup } - ]); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.ChannelBackups single_chan_backups */ 1: - message.singleChanBackups = ChannelBackups.internalBinaryRead(reader, reader.uint32(), options, message.singleChanBackups); - break; - case /* lnrpc.MultiChanBackup multi_chan_backup */ 2: - message.multiChanBackup = MultiChanBackup.internalBinaryRead(reader, reader.uint32(), options, message.multiChanBackup); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.ChannelBackups single_chan_backups = 1; */ - if (message.singleChanBackups) - ChannelBackups.internalBinaryWrite(message.singleChanBackups, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.MultiChanBackup multi_chan_backup = 2; */ - if (message.multiChanBackup) - MultiChanBackup.internalBinaryWrite(message.multiChanBackup, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChanBackupSnapshot - */ -export const ChanBackupSnapshot = new ChanBackupSnapshot$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelBackups$Type extends MessageType { - constructor() { - super("lnrpc.ChannelBackups", [ - { no: 1, name: "chan_backups", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => ChannelBackup } - ]); - } - create(value) { - const message = { chanBackups: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.ChannelBackup chan_backups */ 1: - message.chanBackups.push(ChannelBackup.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.ChannelBackup chan_backups = 1; */ - for (let i = 0; i < message.chanBackups.length; i++) - ChannelBackup.internalBinaryWrite(message.chanBackups[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelBackups - */ -export const ChannelBackups = new ChannelBackups$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class RestoreChanBackupRequest$Type extends MessageType { - constructor() { - super("lnrpc.RestoreChanBackupRequest", [ - { no: 1, name: "chan_backups", kind: "message", oneof: "backup", T: () => ChannelBackups }, - { no: 2, name: "multi_chan_backup", kind: "scalar", oneof: "backup", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { backup: { oneofKind: undefined } }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.ChannelBackups chan_backups */ 1: - message.backup = { - oneofKind: "chanBackups", - chanBackups: ChannelBackups.internalBinaryRead(reader, reader.uint32(), options, message.backup.chanBackups) - }; - break; - case /* bytes multi_chan_backup */ 2: - message.backup = { - oneofKind: "multiChanBackup", - multiChanBackup: reader.bytes() - }; - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.ChannelBackups chan_backups = 1; */ - if (message.backup.oneofKind === "chanBackups") - ChannelBackups.internalBinaryWrite(message.backup.chanBackups, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* bytes multi_chan_backup = 2; */ - if (message.backup.oneofKind === "multiChanBackup") - writer.tag(2, WireType.LengthDelimited).bytes(message.backup.multiChanBackup); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.RestoreChanBackupRequest - */ -export const RestoreChanBackupRequest = new RestoreChanBackupRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class RestoreBackupResponse$Type extends MessageType { - constructor() { - super("lnrpc.RestoreBackupResponse", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.RestoreBackupResponse - */ -export const RestoreBackupResponse = new RestoreBackupResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelBackupSubscription$Type extends MessageType { - constructor() { - super("lnrpc.ChannelBackupSubscription", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelBackupSubscription - */ -export const ChannelBackupSubscription = new ChannelBackupSubscription$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class VerifyChanBackupResponse$Type extends MessageType { - constructor() { - super("lnrpc.VerifyChanBackupResponse", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.VerifyChanBackupResponse - */ -export const VerifyChanBackupResponse = new VerifyChanBackupResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class MacaroonPermission$Type extends MessageType { - constructor() { - super("lnrpc.MacaroonPermission", [ - { no: 1, name: "entity", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "action", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { entity: "", action: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string entity */ 1: - message.entity = reader.string(); - break; - case /* string action */ 2: - message.action = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string entity = 1; */ - if (message.entity !== "") - writer.tag(1, WireType.LengthDelimited).string(message.entity); - /* string action = 2; */ - if (message.action !== "") - writer.tag(2, WireType.LengthDelimited).string(message.action); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.MacaroonPermission - */ -export const MacaroonPermission = new MacaroonPermission$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class BakeMacaroonRequest$Type extends MessageType { - constructor() { - super("lnrpc.BakeMacaroonRequest", [ - { no: 1, name: "permissions", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => MacaroonPermission }, - { no: 2, name: "root_key_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "allow_external_permissions", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { permissions: [], rootKeyId: 0, allowExternalPermissions: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.MacaroonPermission permissions */ 1: - message.permissions.push(MacaroonPermission.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* uint64 root_key_id */ 2: - message.rootKeyId = reader.uint64().toNumber(); - break; - case /* bool allow_external_permissions */ 3: - message.allowExternalPermissions = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.MacaroonPermission permissions = 1; */ - for (let i = 0; i < message.permissions.length; i++) - MacaroonPermission.internalBinaryWrite(message.permissions[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* uint64 root_key_id = 2; */ - if (message.rootKeyId !== 0) - writer.tag(2, WireType.Varint).uint64(message.rootKeyId); - /* bool allow_external_permissions = 3; */ - if (message.allowExternalPermissions !== false) - writer.tag(3, WireType.Varint).bool(message.allowExternalPermissions); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.BakeMacaroonRequest - */ -export const BakeMacaroonRequest = new BakeMacaroonRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class BakeMacaroonResponse$Type extends MessageType { - constructor() { - super("lnrpc.BakeMacaroonResponse", [ - { no: 1, name: "macaroon", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { macaroon: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string macaroon */ 1: - message.macaroon = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string macaroon = 1; */ - if (message.macaroon !== "") - writer.tag(1, WireType.LengthDelimited).string(message.macaroon); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.BakeMacaroonResponse - */ -export const BakeMacaroonResponse = new BakeMacaroonResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListMacaroonIDsRequest$Type extends MessageType { - constructor() { - super("lnrpc.ListMacaroonIDsRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListMacaroonIDsRequest - */ -export const ListMacaroonIDsRequest = new ListMacaroonIDsRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListMacaroonIDsResponse$Type extends MessageType { - constructor() { - super("lnrpc.ListMacaroonIDsResponse", [ - { no: 1, name: "root_key_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { rootKeyIds: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated uint64 root_key_ids */ 1: - if (wireType === WireType.LengthDelimited) - for (let e = reader.int32() + reader.pos; reader.pos < e;) - message.rootKeyIds.push(reader.uint64().toNumber()); - else - message.rootKeyIds.push(reader.uint64().toNumber()); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated uint64 root_key_ids = 1; */ - if (message.rootKeyIds.length) { - writer.tag(1, WireType.LengthDelimited).fork(); - for (let i = 0; i < message.rootKeyIds.length; i++) - writer.uint64(message.rootKeyIds[i]); - writer.join(); - } - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListMacaroonIDsResponse - */ -export const ListMacaroonIDsResponse = new ListMacaroonIDsResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class DeleteMacaroonIDRequest$Type extends MessageType { - constructor() { - super("lnrpc.DeleteMacaroonIDRequest", [ - { no: 1, name: "root_key_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { rootKeyId: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 root_key_id */ 1: - message.rootKeyId = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 root_key_id = 1; */ - if (message.rootKeyId !== 0) - writer.tag(1, WireType.Varint).uint64(message.rootKeyId); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.DeleteMacaroonIDRequest - */ -export const DeleteMacaroonIDRequest = new DeleteMacaroonIDRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class DeleteMacaroonIDResponse$Type extends MessageType { - constructor() { - super("lnrpc.DeleteMacaroonIDResponse", [ - { no: 1, name: "deleted", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { deleted: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool deleted */ 1: - message.deleted = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool deleted = 1; */ - if (message.deleted !== false) - writer.tag(1, WireType.Varint).bool(message.deleted); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.DeleteMacaroonIDResponse - */ -export const DeleteMacaroonIDResponse = new DeleteMacaroonIDResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class MacaroonPermissionList$Type extends MessageType { - constructor() { - super("lnrpc.MacaroonPermissionList", [ - { no: 1, name: "permissions", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => MacaroonPermission } - ]); - } - create(value) { - const message = { permissions: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated lnrpc.MacaroonPermission permissions */ 1: - message.permissions.push(MacaroonPermission.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated lnrpc.MacaroonPermission permissions = 1; */ - for (let i = 0; i < message.permissions.length; i++) - MacaroonPermission.internalBinaryWrite(message.permissions[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.MacaroonPermissionList - */ -export const MacaroonPermissionList = new MacaroonPermissionList$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListPermissionsRequest$Type extends MessageType { - constructor() { - super("lnrpc.ListPermissionsRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListPermissionsRequest - */ -export const ListPermissionsRequest = new ListPermissionsRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ListPermissionsResponse$Type extends MessageType { - constructor() { - super("lnrpc.ListPermissionsResponse", [ - { no: 1, name: "method_permissions", kind: "map", K: 9 /*ScalarType.STRING*/, V: { kind: "message", T: () => MacaroonPermissionList } } - ]); - } - create(value) { - const message = { methodPermissions: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* map method_permissions */ 1: - this.binaryReadMap1(message.methodPermissions, reader, options); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap1(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.string(); - break; - case 2: - val = MacaroonPermissionList.internalBinaryRead(reader, reader.uint32(), options); - break; - default: throw new globalThis.Error("unknown map entry field for field lnrpc.ListPermissionsResponse.method_permissions"); - } - } - map[key ?? ""] = val ?? MacaroonPermissionList.create(); - } - internalBinaryWrite(message, writer, options) { - /* map method_permissions = 1; */ - for (let k of Object.keys(message.methodPermissions)) { - writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); - writer.tag(2, WireType.LengthDelimited).fork(); - MacaroonPermissionList.internalBinaryWrite(message.methodPermissions[k], writer, options); - writer.join().join(); - } - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ListPermissionsResponse - */ -export const ListPermissionsResponse = new ListPermissionsResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class Failure$Type extends MessageType { - constructor() { - super("lnrpc.Failure", [ - { no: 1, name: "code", kind: "enum", T: () => ["lnrpc.Failure.FailureCode", Failure_FailureCode] }, - { no: 3, name: "channel_update", kind: "message", T: () => ChannelUpdate }, - { no: 4, name: "htlc_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "onion_sha_256", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 6, name: "cltv_expiry", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 7, name: "flags", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 8, name: "failure_source_index", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 9, name: "height", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } - ]); - } - create(value) { - const message = { code: 0, htlcMsat: 0, onionSha256: new Uint8Array(0), cltvExpiry: 0, flags: 0, failureSourceIndex: 0, height: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.Failure.FailureCode code */ 1: - message.code = reader.int32(); - break; - case /* lnrpc.ChannelUpdate channel_update */ 3: - message.channelUpdate = ChannelUpdate.internalBinaryRead(reader, reader.uint32(), options, message.channelUpdate); - break; - case /* uint64 htlc_msat */ 4: - message.htlcMsat = reader.uint64().toNumber(); - break; - case /* bytes onion_sha_256 */ 5: - message.onionSha256 = reader.bytes(); - break; - case /* uint32 cltv_expiry */ 6: - message.cltvExpiry = reader.uint32(); - break; - case /* uint32 flags */ 7: - message.flags = reader.uint32(); - break; - case /* uint32 failure_source_index */ 8: - message.failureSourceIndex = reader.uint32(); - break; - case /* uint32 height */ 9: - message.height = reader.uint32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.Failure.FailureCode code = 1; */ - if (message.code !== 0) - writer.tag(1, WireType.Varint).int32(message.code); - /* lnrpc.ChannelUpdate channel_update = 3; */ - if (message.channelUpdate) - ChannelUpdate.internalBinaryWrite(message.channelUpdate, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); - /* uint64 htlc_msat = 4; */ - if (message.htlcMsat !== 0) - writer.tag(4, WireType.Varint).uint64(message.htlcMsat); - /* bytes onion_sha_256 = 5; */ - if (message.onionSha256.length) - writer.tag(5, WireType.LengthDelimited).bytes(message.onionSha256); - /* uint32 cltv_expiry = 6; */ - if (message.cltvExpiry !== 0) - writer.tag(6, WireType.Varint).uint32(message.cltvExpiry); - /* uint32 flags = 7; */ - if (message.flags !== 0) - writer.tag(7, WireType.Varint).uint32(message.flags); - /* uint32 failure_source_index = 8; */ - if (message.failureSourceIndex !== 0) - writer.tag(8, WireType.Varint).uint32(message.failureSourceIndex); - /* uint32 height = 9; */ - if (message.height !== 0) - writer.tag(9, WireType.Varint).uint32(message.height); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.Failure - */ -export const Failure = new Failure$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ChannelUpdate$Type extends MessageType { - constructor() { - super("lnrpc.ChannelUpdate", [ - { no: 1, name: "signature", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "chain_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 4, name: "timestamp", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 10, name: "message_flags", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 5, name: "channel_flags", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 6, name: "time_lock_delta", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 7, name: "htlc_minimum_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "base_fee", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 9, name: "fee_rate", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 11, name: "htlc_maximum_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 12, name: "extra_opaque_data", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { signature: new Uint8Array(0), chainHash: new Uint8Array(0), chanId: "0", timestamp: 0, messageFlags: 0, channelFlags: 0, timeLockDelta: 0, htlcMinimumMsat: 0, baseFee: 0, feeRate: 0, htlcMaximumMsat: 0, extraOpaqueData: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes signature */ 1: - message.signature = reader.bytes(); - break; - case /* bytes chain_hash */ 2: - message.chainHash = reader.bytes(); - break; - case /* uint64 chan_id = 3 [jstype = JS_STRING];*/ 3: - message.chanId = reader.uint64().toString(); - break; - case /* uint32 timestamp */ 4: - message.timestamp = reader.uint32(); - break; - case /* uint32 message_flags */ 10: - message.messageFlags = reader.uint32(); - break; - case /* uint32 channel_flags */ 5: - message.channelFlags = reader.uint32(); - break; - case /* uint32 time_lock_delta */ 6: - message.timeLockDelta = reader.uint32(); - break; - case /* uint64 htlc_minimum_msat */ 7: - message.htlcMinimumMsat = reader.uint64().toNumber(); - break; - case /* uint32 base_fee */ 8: - message.baseFee = reader.uint32(); - break; - case /* uint32 fee_rate */ 9: - message.feeRate = reader.uint32(); - break; - case /* uint64 htlc_maximum_msat */ 11: - message.htlcMaximumMsat = reader.uint64().toNumber(); - break; - case /* bytes extra_opaque_data */ 12: - message.extraOpaqueData = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes signature = 1; */ - if (message.signature.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.signature); - /* bytes chain_hash = 2; */ - if (message.chainHash.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.chainHash); - /* uint64 chan_id = 3 [jstype = JS_STRING]; */ - if (message.chanId !== "0") - writer.tag(3, WireType.Varint).uint64(message.chanId); - /* uint32 timestamp = 4; */ - if (message.timestamp !== 0) - writer.tag(4, WireType.Varint).uint32(message.timestamp); - /* uint32 message_flags = 10; */ - if (message.messageFlags !== 0) - writer.tag(10, WireType.Varint).uint32(message.messageFlags); - /* uint32 channel_flags = 5; */ - if (message.channelFlags !== 0) - writer.tag(5, WireType.Varint).uint32(message.channelFlags); - /* uint32 time_lock_delta = 6; */ - if (message.timeLockDelta !== 0) - writer.tag(6, WireType.Varint).uint32(message.timeLockDelta); - /* uint64 htlc_minimum_msat = 7; */ - if (message.htlcMinimumMsat !== 0) - writer.tag(7, WireType.Varint).uint64(message.htlcMinimumMsat); - /* uint32 base_fee = 8; */ - if (message.baseFee !== 0) - writer.tag(8, WireType.Varint).uint32(message.baseFee); - /* uint32 fee_rate = 9; */ - if (message.feeRate !== 0) - writer.tag(9, WireType.Varint).uint32(message.feeRate); - /* uint64 htlc_maximum_msat = 11; */ - if (message.htlcMaximumMsat !== 0) - writer.tag(11, WireType.Varint).uint64(message.htlcMaximumMsat); - /* bytes extra_opaque_data = 12; */ - if (message.extraOpaqueData.length) - writer.tag(12, WireType.LengthDelimited).bytes(message.extraOpaqueData); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.ChannelUpdate - */ -export const ChannelUpdate = new ChannelUpdate$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class MacaroonId$Type extends MessageType { - constructor() { - super("lnrpc.MacaroonId", [ - { no: 1, name: "nonce", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "storageId", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "ops", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Op } - ]); - } - create(value) { - const message = { nonce: new Uint8Array(0), storageId: new Uint8Array(0), ops: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes nonce */ 1: - message.nonce = reader.bytes(); - break; - case /* bytes storageId */ 2: - message.storageId = reader.bytes(); - break; - case /* repeated lnrpc.Op ops */ 3: - message.ops.push(Op.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes nonce = 1; */ - if (message.nonce.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.nonce); - /* bytes storageId = 2; */ - if (message.storageId.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.storageId); - /* repeated lnrpc.Op ops = 3; */ - for (let i = 0; i < message.ops.length; i++) - Op.internalBinaryWrite(message.ops[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.MacaroonId - */ -export const MacaroonId = new MacaroonId$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class Op$Type extends MessageType { - constructor() { - super("lnrpc.Op", [ - { no: 1, name: "entity", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "actions", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { entity: "", actions: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string entity */ 1: - message.entity = reader.string(); - break; - case /* repeated string actions */ 2: - message.actions.push(reader.string()); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string entity = 1; */ - if (message.entity !== "") - writer.tag(1, WireType.LengthDelimited).string(message.entity); - /* repeated string actions = 2; */ - for (let i = 0; i < message.actions.length; i++) - writer.tag(2, WireType.LengthDelimited).string(message.actions[i]); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.Op - */ -export const Op = new Op$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class CheckMacPermRequest$Type extends MessageType { - constructor() { - super("lnrpc.CheckMacPermRequest", [ - { no: 1, name: "macaroon", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "permissions", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => MacaroonPermission }, - { no: 3, name: "fullMethod", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { macaroon: new Uint8Array(0), permissions: [], fullMethod: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes macaroon */ 1: - message.macaroon = reader.bytes(); - break; - case /* repeated lnrpc.MacaroonPermission permissions */ 2: - message.permissions.push(MacaroonPermission.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* string fullMethod */ 3: - message.fullMethod = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes macaroon = 1; */ - if (message.macaroon.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.macaroon); - /* repeated lnrpc.MacaroonPermission permissions = 2; */ - for (let i = 0; i < message.permissions.length; i++) - MacaroonPermission.internalBinaryWrite(message.permissions[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - /* string fullMethod = 3; */ - if (message.fullMethod !== "") - writer.tag(3, WireType.LengthDelimited).string(message.fullMethod); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.CheckMacPermRequest - */ -export const CheckMacPermRequest = new CheckMacPermRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class CheckMacPermResponse$Type extends MessageType { - constructor() { - super("lnrpc.CheckMacPermResponse", [ - { no: 1, name: "valid", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { valid: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool valid */ 1: - message.valid = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool valid = 1; */ - if (message.valid !== false) - writer.tag(1, WireType.Varint).bool(message.valid); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.CheckMacPermResponse - */ -export const CheckMacPermResponse = new CheckMacPermResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class RPCMiddlewareRequest$Type extends MessageType { - constructor() { - super("lnrpc.RPCMiddlewareRequest", [ - { no: 1, name: "request_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "raw_macaroon", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "custom_caveat_condition", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 4, name: "stream_auth", kind: "message", oneof: "interceptType", T: () => StreamAuth }, - { no: 5, name: "request", kind: "message", oneof: "interceptType", T: () => RPCMessage }, - { no: 6, name: "response", kind: "message", oneof: "interceptType", T: () => RPCMessage }, - { no: 8, name: "reg_complete", kind: "scalar", oneof: "interceptType", T: 8 /*ScalarType.BOOL*/ }, - { no: 7, name: "msg_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { requestId: 0, rawMacaroon: new Uint8Array(0), customCaveatCondition: "", interceptType: { oneofKind: undefined }, msgId: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 request_id */ 1: - message.requestId = reader.uint64().toNumber(); - break; - case /* bytes raw_macaroon */ 2: - message.rawMacaroon = reader.bytes(); - break; - case /* string custom_caveat_condition */ 3: - message.customCaveatCondition = reader.string(); - break; - case /* lnrpc.StreamAuth stream_auth */ 4: - message.interceptType = { - oneofKind: "streamAuth", - streamAuth: StreamAuth.internalBinaryRead(reader, reader.uint32(), options, message.interceptType.streamAuth) - }; - break; - case /* lnrpc.RPCMessage request */ 5: - message.interceptType = { - oneofKind: "request", - request: RPCMessage.internalBinaryRead(reader, reader.uint32(), options, message.interceptType.request) - }; - break; - case /* lnrpc.RPCMessage response */ 6: - message.interceptType = { - oneofKind: "response", - response: RPCMessage.internalBinaryRead(reader, reader.uint32(), options, message.interceptType.response) - }; - break; - case /* bool reg_complete */ 8: - message.interceptType = { - oneofKind: "regComplete", - regComplete: reader.bool() - }; - break; - case /* uint64 msg_id */ 7: - message.msgId = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 request_id = 1; */ - if (message.requestId !== 0) - writer.tag(1, WireType.Varint).uint64(message.requestId); - /* bytes raw_macaroon = 2; */ - if (message.rawMacaroon.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.rawMacaroon); - /* string custom_caveat_condition = 3; */ - if (message.customCaveatCondition !== "") - writer.tag(3, WireType.LengthDelimited).string(message.customCaveatCondition); - /* lnrpc.StreamAuth stream_auth = 4; */ - if (message.interceptType.oneofKind === "streamAuth") - StreamAuth.internalBinaryWrite(message.interceptType.streamAuth, writer.tag(4, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.RPCMessage request = 5; */ - if (message.interceptType.oneofKind === "request") - RPCMessage.internalBinaryWrite(message.interceptType.request, writer.tag(5, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.RPCMessage response = 6; */ - if (message.interceptType.oneofKind === "response") - RPCMessage.internalBinaryWrite(message.interceptType.response, writer.tag(6, WireType.LengthDelimited).fork(), options).join(); - /* bool reg_complete = 8; */ - if (message.interceptType.oneofKind === "regComplete") - writer.tag(8, WireType.Varint).bool(message.interceptType.regComplete); - /* uint64 msg_id = 7; */ - if (message.msgId !== 0) - writer.tag(7, WireType.Varint).uint64(message.msgId); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.RPCMiddlewareRequest - */ -export const RPCMiddlewareRequest = new RPCMiddlewareRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class StreamAuth$Type extends MessageType { - constructor() { - super("lnrpc.StreamAuth", [ - { no: 1, name: "method_full_uri", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { methodFullUri: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string method_full_uri */ 1: - message.methodFullUri = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string method_full_uri = 1; */ - if (message.methodFullUri !== "") - writer.tag(1, WireType.LengthDelimited).string(message.methodFullUri); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.StreamAuth - */ -export const StreamAuth = new StreamAuth$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class RPCMessage$Type extends MessageType { - constructor() { - super("lnrpc.RPCMessage", [ - { no: 1, name: "method_full_uri", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "stream_rpc", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 3, name: "type_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 4, name: "serialized", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 5, name: "is_error", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { methodFullUri: "", streamRpc: false, typeName: "", serialized: new Uint8Array(0), isError: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string method_full_uri */ 1: - message.methodFullUri = reader.string(); - break; - case /* bool stream_rpc */ 2: - message.streamRpc = reader.bool(); - break; - case /* string type_name */ 3: - message.typeName = reader.string(); - break; - case /* bytes serialized */ 4: - message.serialized = reader.bytes(); - break; - case /* bool is_error */ 5: - message.isError = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string method_full_uri = 1; */ - if (message.methodFullUri !== "") - writer.tag(1, WireType.LengthDelimited).string(message.methodFullUri); - /* bool stream_rpc = 2; */ - if (message.streamRpc !== false) - writer.tag(2, WireType.Varint).bool(message.streamRpc); - /* string type_name = 3; */ - if (message.typeName !== "") - writer.tag(3, WireType.LengthDelimited).string(message.typeName); - /* bytes serialized = 4; */ - if (message.serialized.length) - writer.tag(4, WireType.LengthDelimited).bytes(message.serialized); - /* bool is_error = 5; */ - if (message.isError !== false) - writer.tag(5, WireType.Varint).bool(message.isError); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.RPCMessage - */ -export const RPCMessage = new RPCMessage$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class RPCMiddlewareResponse$Type extends MessageType { - constructor() { - super("lnrpc.RPCMiddlewareResponse", [ - { no: 1, name: "ref_msg_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "register", kind: "message", oneof: "middlewareMessage", T: () => MiddlewareRegistration }, - { no: 3, name: "feedback", kind: "message", oneof: "middlewareMessage", T: () => InterceptFeedback } - ]); - } - create(value) { - const message = { refMsgId: 0, middlewareMessage: { oneofKind: undefined } }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 ref_msg_id */ 1: - message.refMsgId = reader.uint64().toNumber(); - break; - case /* lnrpc.MiddlewareRegistration register */ 2: - message.middlewareMessage = { - oneofKind: "register", - register: MiddlewareRegistration.internalBinaryRead(reader, reader.uint32(), options, message.middlewareMessage.register) - }; - break; - case /* lnrpc.InterceptFeedback feedback */ 3: - message.middlewareMessage = { - oneofKind: "feedback", - feedback: InterceptFeedback.internalBinaryRead(reader, reader.uint32(), options, message.middlewareMessage.feedback) - }; - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 ref_msg_id = 1; */ - if (message.refMsgId !== 0) - writer.tag(1, WireType.Varint).uint64(message.refMsgId); - /* lnrpc.MiddlewareRegistration register = 2; */ - if (message.middlewareMessage.oneofKind === "register") - MiddlewareRegistration.internalBinaryWrite(message.middlewareMessage.register, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.InterceptFeedback feedback = 3; */ - if (message.middlewareMessage.oneofKind === "feedback") - InterceptFeedback.internalBinaryWrite(message.middlewareMessage.feedback, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.RPCMiddlewareResponse - */ -export const RPCMiddlewareResponse = new RPCMiddlewareResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class MiddlewareRegistration$Type extends MessageType { - constructor() { - super("lnrpc.MiddlewareRegistration", [ - { no: 1, name: "middleware_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "custom_macaroon_caveat_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 3, name: "read_only_mode", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { middlewareName: "", customMacaroonCaveatName: "", readOnlyMode: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string middleware_name */ 1: - message.middlewareName = reader.string(); - break; - case /* string custom_macaroon_caveat_name */ 2: - message.customMacaroonCaveatName = reader.string(); - break; - case /* bool read_only_mode */ 3: - message.readOnlyMode = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string middleware_name = 1; */ - if (message.middlewareName !== "") - writer.tag(1, WireType.LengthDelimited).string(message.middlewareName); - /* string custom_macaroon_caveat_name = 2; */ - if (message.customMacaroonCaveatName !== "") - writer.tag(2, WireType.LengthDelimited).string(message.customMacaroonCaveatName); - /* bool read_only_mode = 3; */ - if (message.readOnlyMode !== false) - writer.tag(3, WireType.Varint).bool(message.readOnlyMode); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.MiddlewareRegistration - */ -export const MiddlewareRegistration = new MiddlewareRegistration$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class InterceptFeedback$Type extends MessageType { - constructor() { - super("lnrpc.InterceptFeedback", [ - { no: 1, name: "error", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "replace_response", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 3, name: "replacement_serialized", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { error: "", replaceResponse: false, replacementSerialized: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* string error */ 1: - message.error = reader.string(); - break; - case /* bool replace_response */ 2: - message.replaceResponse = reader.bool(); - break; - case /* bytes replacement_serialized */ 3: - message.replacementSerialized = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* string error = 1; */ - if (message.error !== "") - writer.tag(1, WireType.LengthDelimited).string(message.error); - /* bool replace_response = 2; */ - if (message.replaceResponse !== false) - writer.tag(2, WireType.Varint).bool(message.replaceResponse); - /* bytes replacement_serialized = 3; */ - if (message.replacementSerialized.length) - writer.tag(3, WireType.LengthDelimited).bytes(message.replacementSerialized); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message lnrpc.InterceptFeedback - */ -export const InterceptFeedback = new InterceptFeedback$Type(); -/** - * @generated ServiceType for protobuf service lnrpc.Lightning - */ -export const Lightning = new ServiceType("lnrpc.Lightning", [ - { name: "WalletBalance", options: {}, I: WalletBalanceRequest, O: WalletBalanceResponse }, - { name: "ChannelBalance", options: {}, I: ChannelBalanceRequest, O: ChannelBalanceResponse }, - { name: "GetTransactions", options: {}, I: GetTransactionsRequest, O: TransactionDetails }, - { name: "EstimateFee", options: {}, I: EstimateFeeRequest, O: EstimateFeeResponse }, - { name: "SendCoins", options: {}, I: SendCoinsRequest, O: SendCoinsResponse }, - { name: "ListUnspent", options: {}, I: ListUnspentRequest, O: ListUnspentResponse }, - { name: "SubscribeTransactions", serverStreaming: true, options: {}, I: GetTransactionsRequest, O: Transaction }, - { name: "SendMany", options: {}, I: SendManyRequest, O: SendManyResponse }, - { name: "NewAddress", options: {}, I: NewAddressRequest, O: NewAddressResponse }, - { name: "SignMessage", options: {}, I: SignMessageRequest, O: SignMessageResponse }, - { name: "VerifyMessage", options: {}, I: VerifyMessageRequest, O: VerifyMessageResponse }, - { name: "ConnectPeer", options: {}, I: ConnectPeerRequest, O: ConnectPeerResponse }, - { name: "DisconnectPeer", options: {}, I: DisconnectPeerRequest, O: DisconnectPeerResponse }, - { name: "ListPeers", options: {}, I: ListPeersRequest, O: ListPeersResponse }, - { name: "SubscribePeerEvents", serverStreaming: true, options: {}, I: PeerEventSubscription, O: PeerEvent }, - { name: "GetInfo", options: {}, I: GetInfoRequest, O: GetInfoResponse }, - { name: "GetRecoveryInfo", options: {}, I: GetRecoveryInfoRequest, O: GetRecoveryInfoResponse }, - { name: "PendingChannels", options: {}, I: PendingChannelsRequest, O: PendingChannelsResponse }, - { name: "ListChannels", options: {}, I: ListChannelsRequest, O: ListChannelsResponse }, - { name: "SubscribeChannelEvents", serverStreaming: true, options: {}, I: ChannelEventSubscription, O: ChannelEventUpdate }, - { name: "ClosedChannels", options: {}, I: ClosedChannelsRequest, O: ClosedChannelsResponse }, - { name: "OpenChannelSync", options: {}, I: OpenChannelRequest, O: ChannelPoint }, - { name: "OpenChannel", serverStreaming: true, options: {}, I: OpenChannelRequest, O: OpenStatusUpdate }, - { name: "BatchOpenChannel", options: {}, I: BatchOpenChannelRequest, O: BatchOpenChannelResponse }, - { name: "FundingStateStep", options: {}, I: FundingTransitionMsg, O: FundingStateStepResp }, - { name: "ChannelAcceptor", serverStreaming: true, clientStreaming: true, options: {}, I: ChannelAcceptResponse, O: ChannelAcceptRequest }, - { name: "CloseChannel", serverStreaming: true, options: {}, I: CloseChannelRequest, O: CloseStatusUpdate }, - { name: "AbandonChannel", options: {}, I: AbandonChannelRequest, O: AbandonChannelResponse }, - { name: "SendPayment", serverStreaming: true, clientStreaming: true, options: {}, I: SendRequest, O: SendResponse }, - { name: "SendPaymentSync", options: {}, I: SendRequest, O: SendResponse }, - { name: "SendToRoute", serverStreaming: true, clientStreaming: true, options: {}, I: SendToRouteRequest, O: SendResponse }, - { name: "SendToRouteSync", options: {}, I: SendToRouteRequest, O: SendResponse }, - { name: "AddInvoice", options: {}, I: Invoice, O: AddInvoiceResponse }, - { name: "ListInvoices", options: {}, I: ListInvoiceRequest, O: ListInvoiceResponse }, - { name: "LookupInvoice", options: {}, I: PaymentHash, O: Invoice }, - { name: "SubscribeInvoices", serverStreaming: true, options: {}, I: InvoiceSubscription, O: Invoice }, - { name: "DecodePayReq", options: {}, I: PayReqString, O: PayReq }, - { name: "ListPayments", options: {}, I: ListPaymentsRequest, O: ListPaymentsResponse }, - { name: "DeletePayment", options: {}, I: DeletePaymentRequest, O: DeletePaymentResponse }, - { name: "DeleteAllPayments", options: {}, I: DeleteAllPaymentsRequest, O: DeleteAllPaymentsResponse }, - { name: "DescribeGraph", options: {}, I: ChannelGraphRequest, O: ChannelGraph }, - { name: "GetNodeMetrics", options: {}, I: NodeMetricsRequest, O: NodeMetricsResponse }, - { name: "GetChanInfo", options: {}, I: ChanInfoRequest, O: ChannelEdge }, - { name: "GetNodeInfo", options: {}, I: NodeInfoRequest, O: NodeInfo }, - { name: "QueryRoutes", options: {}, I: QueryRoutesRequest, O: QueryRoutesResponse }, - { name: "GetNetworkInfo", options: {}, I: NetworkInfoRequest, O: NetworkInfo }, - { name: "StopDaemon", options: {}, I: StopRequest, O: StopResponse }, - { name: "SubscribeChannelGraph", serverStreaming: true, options: {}, I: GraphTopologySubscription, O: GraphTopologyUpdate }, - { name: "DebugLevel", options: {}, I: DebugLevelRequest, O: DebugLevelResponse }, - { name: "FeeReport", options: {}, I: FeeReportRequest, O: FeeReportResponse }, - { name: "UpdateChannelPolicy", options: {}, I: PolicyUpdateRequest, O: PolicyUpdateResponse }, - { name: "ForwardingHistory", options: {}, I: ForwardingHistoryRequest, O: ForwardingHistoryResponse }, - { name: "ExportChannelBackup", options: {}, I: ExportChannelBackupRequest, O: ChannelBackup }, - { name: "ExportAllChannelBackups", options: {}, I: ChanBackupExportRequest, O: ChanBackupSnapshot }, - { name: "VerifyChanBackup", options: {}, I: ChanBackupSnapshot, O: VerifyChanBackupResponse }, - { name: "RestoreChannelBackups", options: {}, I: RestoreChanBackupRequest, O: RestoreBackupResponse }, - { name: "SubscribeChannelBackups", serverStreaming: true, options: {}, I: ChannelBackupSubscription, O: ChanBackupSnapshot }, - { name: "BakeMacaroon", options: {}, I: BakeMacaroonRequest, O: BakeMacaroonResponse }, - { name: "ListMacaroonIDs", options: {}, I: ListMacaroonIDsRequest, O: ListMacaroonIDsResponse }, - { name: "DeleteMacaroonID", options: {}, I: DeleteMacaroonIDRequest, O: DeleteMacaroonIDResponse }, - { name: "ListPermissions", options: {}, I: ListPermissionsRequest, O: ListPermissionsResponse }, - { name: "CheckMacaroonPermissions", options: {}, I: CheckMacPermRequest, O: CheckMacPermResponse }, - { name: "RegisterRPCMiddleware", serverStreaming: true, clientStreaming: true, options: {}, I: RPCMiddlewareResponse, O: RPCMiddlewareRequest }, - { name: "SendCustomMessage", options: {}, I: SendCustomMessageRequest, O: SendCustomMessageResponse }, - { name: "SubscribeCustomMessages", serverStreaming: true, options: {}, I: SubscribeCustomMessagesRequest, O: CustomMessage }, - { name: "ListAliases", options: {}, I: ListAliasesRequest, O: ListAliasesResponse }, - { name: "LookupHtlc", options: {}, I: LookupHtlcRequest, O: LookupHtlcResponse } -]); diff --git a/proto/lnd/router.client.d.ts b/proto/lnd/router.client.d.ts deleted file mode 100644 index 615290d9..00000000 --- a/proto/lnd/router.client.d.ts +++ /dev/null @@ -1,390 +0,0 @@ -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "router.proto" (package "routerrpc", syntax proto3) -// tslint:disable -import type { RpcTransport } from "@protobuf-ts/runtime-rpc"; -import type { ServiceInfo } from "@protobuf-ts/runtime-rpc"; -import type { UpdateChanStatusResponse } from "./router"; -import type { UpdateChanStatusRequest } from "./router"; -import type { ForwardHtlcInterceptRequest } from "./router"; -import type { ForwardHtlcInterceptResponse } from "./router"; -import type { DuplexStreamingCall } from "@protobuf-ts/runtime-rpc"; -import type { PaymentStatus } from "./router"; -import type { HtlcEvent } from "./router"; -import type { SubscribeHtlcEventsRequest } from "./router"; -import type { BuildRouteResponse } from "./router"; -import type { BuildRouteRequest } from "./router"; -import type { QueryProbabilityResponse } from "./router"; -import type { QueryProbabilityRequest } from "./router"; -import type { SetMissionControlConfigResponse } from "./router"; -import type { SetMissionControlConfigRequest } from "./router"; -import type { GetMissionControlConfigResponse } from "./router"; -import type { GetMissionControlConfigRequest } from "./router"; -import type { XImportMissionControlResponse } from "./router"; -import type { XImportMissionControlRequest } from "./router"; -import type { QueryMissionControlResponse } from "./router"; -import type { QueryMissionControlRequest } from "./router"; -import type { ResetMissionControlResponse } from "./router"; -import type { ResetMissionControlRequest } from "./router"; -import type { HTLCAttempt } from "./lightning"; -import type { SendToRouteResponse } from "./router"; -import type { SendToRouteRequest } from "./router"; -import type { RouteFeeResponse } from "./router"; -import type { RouteFeeRequest } from "./router"; -import type { UnaryCall } from "@protobuf-ts/runtime-rpc"; -import type { TrackPaymentsRequest } from "./router"; -import type { TrackPaymentRequest } from "./router"; -import type { Payment } from "./lightning"; -import type { SendPaymentRequest } from "./router"; -import type { ServerStreamingCall } from "@protobuf-ts/runtime-rpc"; -import type { RpcOptions } from "@protobuf-ts/runtime-rpc"; -/** - * Router is a service that offers advanced interaction with the router - * subsystem of the daemon. - * - * @generated from protobuf service routerrpc.Router - */ -export interface IRouterClient { - /** - * - * SendPaymentV2 attempts to route a payment described by the passed - * PaymentRequest to the final destination. The call returns a stream of - * payment updates. - * - * @generated from protobuf rpc: SendPaymentV2(routerrpc.SendPaymentRequest) returns (stream lnrpc.Payment); - */ - sendPaymentV2(input: SendPaymentRequest, options?: RpcOptions): ServerStreamingCall; - /** - * - * TrackPaymentV2 returns an update stream for the payment identified by the - * payment hash. - * - * @generated from protobuf rpc: TrackPaymentV2(routerrpc.TrackPaymentRequest) returns (stream lnrpc.Payment); - */ - trackPaymentV2(input: TrackPaymentRequest, options?: RpcOptions): ServerStreamingCall; - /** - * - * TrackPayments returns an update stream for every payment that is not in a - * terminal state. Note that if payments are in-flight while starting a new - * subscription, the start of the payment stream could produce out-of-order - * and/or duplicate events. In order to get updates for every in-flight - * payment attempt make sure to subscribe to this method before initiating any - * payments. - * - * @generated from protobuf rpc: TrackPayments(routerrpc.TrackPaymentsRequest) returns (stream lnrpc.Payment); - */ - trackPayments(input: TrackPaymentsRequest, options?: RpcOptions): ServerStreamingCall; - /** - * - * EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it - * may cost to send an HTLC to the target end destination. - * - * @generated from protobuf rpc: EstimateRouteFee(routerrpc.RouteFeeRequest) returns (routerrpc.RouteFeeResponse); - */ - estimateRouteFee(input: RouteFeeRequest, options?: RpcOptions): UnaryCall; - /** - * - * Deprecated, use SendToRouteV2. SendToRoute attempts to make a payment via - * the specified route. This method differs from SendPayment in that it - * allows users to specify a full route manually. This can be used for - * things like rebalancing, and atomic swaps. It differs from the newer - * SendToRouteV2 in that it doesn't return the full HTLC information. - * - * @deprecated - * @generated from protobuf rpc: SendToRoute(routerrpc.SendToRouteRequest) returns (routerrpc.SendToRouteResponse); - */ - sendToRoute(input: SendToRouteRequest, options?: RpcOptions): UnaryCall; - /** - * - * SendToRouteV2 attempts to make a payment via the specified route. This - * method differs from SendPayment in that it allows users to specify a full - * route manually. This can be used for things like rebalancing, and atomic - * swaps. - * - * @generated from protobuf rpc: SendToRouteV2(routerrpc.SendToRouteRequest) returns (lnrpc.HTLCAttempt); - */ - sendToRouteV2(input: SendToRouteRequest, options?: RpcOptions): UnaryCall; - /** - * - * ResetMissionControl clears all mission control state and starts with a clean - * slate. - * - * @generated from protobuf rpc: ResetMissionControl(routerrpc.ResetMissionControlRequest) returns (routerrpc.ResetMissionControlResponse); - */ - resetMissionControl(input: ResetMissionControlRequest, options?: RpcOptions): UnaryCall; - /** - * - * QueryMissionControl exposes the internal mission control state to callers. - * It is a development feature. - * - * @generated from protobuf rpc: QueryMissionControl(routerrpc.QueryMissionControlRequest) returns (routerrpc.QueryMissionControlResponse); - */ - queryMissionControl(input: QueryMissionControlRequest, options?: RpcOptions): UnaryCall; - /** - * - * XImportMissionControl is an experimental API that imports the state provided - * to the internal mission control's state, using all results which are more - * recent than our existing values. These values will only be imported - * in-memory, and will not be persisted across restarts. - * - * @generated from protobuf rpc: XImportMissionControl(routerrpc.XImportMissionControlRequest) returns (routerrpc.XImportMissionControlResponse); - */ - xImportMissionControl(input: XImportMissionControlRequest, options?: RpcOptions): UnaryCall; - /** - * - * GetMissionControlConfig returns mission control's current config. - * - * @generated from protobuf rpc: GetMissionControlConfig(routerrpc.GetMissionControlConfigRequest) returns (routerrpc.GetMissionControlConfigResponse); - */ - getMissionControlConfig(input: GetMissionControlConfigRequest, options?: RpcOptions): UnaryCall; - /** - * - * SetMissionControlConfig will set mission control's config, if the config - * provided is valid. - * - * @generated from protobuf rpc: SetMissionControlConfig(routerrpc.SetMissionControlConfigRequest) returns (routerrpc.SetMissionControlConfigResponse); - */ - setMissionControlConfig(input: SetMissionControlConfigRequest, options?: RpcOptions): UnaryCall; - /** - * - * QueryProbability returns the current success probability estimate for a - * given node pair and amount. - * - * @generated from protobuf rpc: QueryProbability(routerrpc.QueryProbabilityRequest) returns (routerrpc.QueryProbabilityResponse); - */ - queryProbability(input: QueryProbabilityRequest, options?: RpcOptions): UnaryCall; - /** - * - * BuildRoute builds a fully specified route based on a list of hop public - * keys. It retrieves the relevant channel policies from the graph in order to - * calculate the correct fees and time locks. - * - * @generated from protobuf rpc: BuildRoute(routerrpc.BuildRouteRequest) returns (routerrpc.BuildRouteResponse); - */ - buildRoute(input: BuildRouteRequest, options?: RpcOptions): UnaryCall; - /** - * - * SubscribeHtlcEvents creates a uni-directional stream from the server to - * the client which delivers a stream of htlc events. - * - * @generated from protobuf rpc: SubscribeHtlcEvents(routerrpc.SubscribeHtlcEventsRequest) returns (stream routerrpc.HtlcEvent); - */ - subscribeHtlcEvents(input: SubscribeHtlcEventsRequest, options?: RpcOptions): ServerStreamingCall; - /** - * - * Deprecated, use SendPaymentV2. SendPayment attempts to route a payment - * described by the passed PaymentRequest to the final destination. The call - * returns a stream of payment status updates. - * - * @deprecated - * @generated from protobuf rpc: SendPayment(routerrpc.SendPaymentRequest) returns (stream routerrpc.PaymentStatus); - */ - sendPayment(input: SendPaymentRequest, options?: RpcOptions): ServerStreamingCall; - /** - * - * Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for - * the payment identified by the payment hash. - * - * @deprecated - * @generated from protobuf rpc: TrackPayment(routerrpc.TrackPaymentRequest) returns (stream routerrpc.PaymentStatus); - */ - trackPayment(input: TrackPaymentRequest, options?: RpcOptions): ServerStreamingCall; - /** - * * - * HtlcInterceptor dispatches a bi-directional streaming RPC in which - * Forwarded HTLC requests are sent to the client and the client responds with - * a boolean that tells LND if this htlc should be intercepted. - * In case of interception, the htlc can be either settled, cancelled or - * resumed later by using the ResolveHoldForward endpoint. - * - * @generated from protobuf rpc: HtlcInterceptor(stream routerrpc.ForwardHtlcInterceptResponse) returns (stream routerrpc.ForwardHtlcInterceptRequest); - */ - htlcInterceptor(options?: RpcOptions): DuplexStreamingCall; - /** - * - * UpdateChanStatus attempts to manually set the state of a channel - * (enabled, disabled, or auto). A manual "disable" request will cause the - * channel to stay disabled until a subsequent manual request of either - * "enable" or "auto". - * - * @generated from protobuf rpc: UpdateChanStatus(routerrpc.UpdateChanStatusRequest) returns (routerrpc.UpdateChanStatusResponse); - */ - updateChanStatus(input: UpdateChanStatusRequest, options?: RpcOptions): UnaryCall; -} -/** - * Router is a service that offers advanced interaction with the router - * subsystem of the daemon. - * - * @generated from protobuf service routerrpc.Router - */ -export declare class RouterClient implements IRouterClient, ServiceInfo { - private readonly _transport; - typeName: any; - methods: any; - options: any; - constructor(_transport: RpcTransport); - /** - * - * SendPaymentV2 attempts to route a payment described by the passed - * PaymentRequest to the final destination. The call returns a stream of - * payment updates. - * - * @generated from protobuf rpc: SendPaymentV2(routerrpc.SendPaymentRequest) returns (stream lnrpc.Payment); - */ - sendPaymentV2(input: SendPaymentRequest, options?: RpcOptions): ServerStreamingCall; - /** - * - * TrackPaymentV2 returns an update stream for the payment identified by the - * payment hash. - * - * @generated from protobuf rpc: TrackPaymentV2(routerrpc.TrackPaymentRequest) returns (stream lnrpc.Payment); - */ - trackPaymentV2(input: TrackPaymentRequest, options?: RpcOptions): ServerStreamingCall; - /** - * - * TrackPayments returns an update stream for every payment that is not in a - * terminal state. Note that if payments are in-flight while starting a new - * subscription, the start of the payment stream could produce out-of-order - * and/or duplicate events. In order to get updates for every in-flight - * payment attempt make sure to subscribe to this method before initiating any - * payments. - * - * @generated from protobuf rpc: TrackPayments(routerrpc.TrackPaymentsRequest) returns (stream lnrpc.Payment); - */ - trackPayments(input: TrackPaymentsRequest, options?: RpcOptions): ServerStreamingCall; - /** - * - * EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it - * may cost to send an HTLC to the target end destination. - * - * @generated from protobuf rpc: EstimateRouteFee(routerrpc.RouteFeeRequest) returns (routerrpc.RouteFeeResponse); - */ - estimateRouteFee(input: RouteFeeRequest, options?: RpcOptions): UnaryCall; - /** - * - * Deprecated, use SendToRouteV2. SendToRoute attempts to make a payment via - * the specified route. This method differs from SendPayment in that it - * allows users to specify a full route manually. This can be used for - * things like rebalancing, and atomic swaps. It differs from the newer - * SendToRouteV2 in that it doesn't return the full HTLC information. - * - * @deprecated - * @generated from protobuf rpc: SendToRoute(routerrpc.SendToRouteRequest) returns (routerrpc.SendToRouteResponse); - */ - sendToRoute(input: SendToRouteRequest, options?: RpcOptions): UnaryCall; - /** - * - * SendToRouteV2 attempts to make a payment via the specified route. This - * method differs from SendPayment in that it allows users to specify a full - * route manually. This can be used for things like rebalancing, and atomic - * swaps. - * - * @generated from protobuf rpc: SendToRouteV2(routerrpc.SendToRouteRequest) returns (lnrpc.HTLCAttempt); - */ - sendToRouteV2(input: SendToRouteRequest, options?: RpcOptions): UnaryCall; - /** - * - * ResetMissionControl clears all mission control state and starts with a clean - * slate. - * - * @generated from protobuf rpc: ResetMissionControl(routerrpc.ResetMissionControlRequest) returns (routerrpc.ResetMissionControlResponse); - */ - resetMissionControl(input: ResetMissionControlRequest, options?: RpcOptions): UnaryCall; - /** - * - * QueryMissionControl exposes the internal mission control state to callers. - * It is a development feature. - * - * @generated from protobuf rpc: QueryMissionControl(routerrpc.QueryMissionControlRequest) returns (routerrpc.QueryMissionControlResponse); - */ - queryMissionControl(input: QueryMissionControlRequest, options?: RpcOptions): UnaryCall; - /** - * - * XImportMissionControl is an experimental API that imports the state provided - * to the internal mission control's state, using all results which are more - * recent than our existing values. These values will only be imported - * in-memory, and will not be persisted across restarts. - * - * @generated from protobuf rpc: XImportMissionControl(routerrpc.XImportMissionControlRequest) returns (routerrpc.XImportMissionControlResponse); - */ - xImportMissionControl(input: XImportMissionControlRequest, options?: RpcOptions): UnaryCall; - /** - * - * GetMissionControlConfig returns mission control's current config. - * - * @generated from protobuf rpc: GetMissionControlConfig(routerrpc.GetMissionControlConfigRequest) returns (routerrpc.GetMissionControlConfigResponse); - */ - getMissionControlConfig(input: GetMissionControlConfigRequest, options?: RpcOptions): UnaryCall; - /** - * - * SetMissionControlConfig will set mission control's config, if the config - * provided is valid. - * - * @generated from protobuf rpc: SetMissionControlConfig(routerrpc.SetMissionControlConfigRequest) returns (routerrpc.SetMissionControlConfigResponse); - */ - setMissionControlConfig(input: SetMissionControlConfigRequest, options?: RpcOptions): UnaryCall; - /** - * - * QueryProbability returns the current success probability estimate for a - * given node pair and amount. - * - * @generated from protobuf rpc: QueryProbability(routerrpc.QueryProbabilityRequest) returns (routerrpc.QueryProbabilityResponse); - */ - queryProbability(input: QueryProbabilityRequest, options?: RpcOptions): UnaryCall; - /** - * - * BuildRoute builds a fully specified route based on a list of hop public - * keys. It retrieves the relevant channel policies from the graph in order to - * calculate the correct fees and time locks. - * - * @generated from protobuf rpc: BuildRoute(routerrpc.BuildRouteRequest) returns (routerrpc.BuildRouteResponse); - */ - buildRoute(input: BuildRouteRequest, options?: RpcOptions): UnaryCall; - /** - * - * SubscribeHtlcEvents creates a uni-directional stream from the server to - * the client which delivers a stream of htlc events. - * - * @generated from protobuf rpc: SubscribeHtlcEvents(routerrpc.SubscribeHtlcEventsRequest) returns (stream routerrpc.HtlcEvent); - */ - subscribeHtlcEvents(input: SubscribeHtlcEventsRequest, options?: RpcOptions): ServerStreamingCall; - /** - * - * Deprecated, use SendPaymentV2. SendPayment attempts to route a payment - * described by the passed PaymentRequest to the final destination. The call - * returns a stream of payment status updates. - * - * @deprecated - * @generated from protobuf rpc: SendPayment(routerrpc.SendPaymentRequest) returns (stream routerrpc.PaymentStatus); - */ - sendPayment(input: SendPaymentRequest, options?: RpcOptions): ServerStreamingCall; - /** - * - * Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for - * the payment identified by the payment hash. - * - * @deprecated - * @generated from protobuf rpc: TrackPayment(routerrpc.TrackPaymentRequest) returns (stream routerrpc.PaymentStatus); - */ - trackPayment(input: TrackPaymentRequest, options?: RpcOptions): ServerStreamingCall; - /** - * * - * HtlcInterceptor dispatches a bi-directional streaming RPC in which - * Forwarded HTLC requests are sent to the client and the client responds with - * a boolean that tells LND if this htlc should be intercepted. - * In case of interception, the htlc can be either settled, cancelled or - * resumed later by using the ResolveHoldForward endpoint. - * - * @generated from protobuf rpc: HtlcInterceptor(stream routerrpc.ForwardHtlcInterceptResponse) returns (stream routerrpc.ForwardHtlcInterceptRequest); - */ - htlcInterceptor(options?: RpcOptions): DuplexStreamingCall; - /** - * - * UpdateChanStatus attempts to manually set the state of a channel - * (enabled, disabled, or auto). A manual "disable" request will cause the - * channel to stay disabled until a subsequent manual request of either - * "enable" or "auto". - * - * @generated from protobuf rpc: UpdateChanStatus(routerrpc.UpdateChanStatusRequest) returns (routerrpc.UpdateChanStatusResponse); - */ - updateChanStatus(input: UpdateChanStatusRequest, options?: RpcOptions): UnaryCall; -} diff --git a/proto/lnd/router.client.js b/proto/lnd/router.client.js deleted file mode 100644 index 578dabab..00000000 --- a/proto/lnd/router.client.js +++ /dev/null @@ -1,238 +0,0 @@ -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "router.proto" (package "routerrpc", syntax proto3) -// tslint:disable -import { Router } from "./router.js"; -import { stackIntercept } from "@protobuf-ts/runtime-rpc"; -/** - * Router is a service that offers advanced interaction with the router - * subsystem of the daemon. - * - * @generated from protobuf service routerrpc.Router - */ -export class RouterClient { - constructor(_transport) { - this._transport = _transport; - this.typeName = Router.typeName; - this.methods = Router.methods; - this.options = Router.options; - } - /** - * - * SendPaymentV2 attempts to route a payment described by the passed - * PaymentRequest to the final destination. The call returns a stream of - * payment updates. - * - * @generated from protobuf rpc: SendPaymentV2(routerrpc.SendPaymentRequest) returns (stream lnrpc.Payment); - */ - sendPaymentV2(input, options) { - const method = this.methods[0], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * - * TrackPaymentV2 returns an update stream for the payment identified by the - * payment hash. - * - * @generated from protobuf rpc: TrackPaymentV2(routerrpc.TrackPaymentRequest) returns (stream lnrpc.Payment); - */ - trackPaymentV2(input, options) { - const method = this.methods[1], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * - * TrackPayments returns an update stream for every payment that is not in a - * terminal state. Note that if payments are in-flight while starting a new - * subscription, the start of the payment stream could produce out-of-order - * and/or duplicate events. In order to get updates for every in-flight - * payment attempt make sure to subscribe to this method before initiating any - * payments. - * - * @generated from protobuf rpc: TrackPayments(routerrpc.TrackPaymentsRequest) returns (stream lnrpc.Payment); - */ - trackPayments(input, options) { - const method = this.methods[2], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * - * EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it - * may cost to send an HTLC to the target end destination. - * - * @generated from protobuf rpc: EstimateRouteFee(routerrpc.RouteFeeRequest) returns (routerrpc.RouteFeeResponse); - */ - estimateRouteFee(input, options) { - const method = this.methods[3], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * Deprecated, use SendToRouteV2. SendToRoute attempts to make a payment via - * the specified route. This method differs from SendPayment in that it - * allows users to specify a full route manually. This can be used for - * things like rebalancing, and atomic swaps. It differs from the newer - * SendToRouteV2 in that it doesn't return the full HTLC information. - * - * @deprecated - * @generated from protobuf rpc: SendToRoute(routerrpc.SendToRouteRequest) returns (routerrpc.SendToRouteResponse); - */ - sendToRoute(input, options) { - const method = this.methods[4], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * SendToRouteV2 attempts to make a payment via the specified route. This - * method differs from SendPayment in that it allows users to specify a full - * route manually. This can be used for things like rebalancing, and atomic - * swaps. - * - * @generated from protobuf rpc: SendToRouteV2(routerrpc.SendToRouteRequest) returns (lnrpc.HTLCAttempt); - */ - sendToRouteV2(input, options) { - const method = this.methods[5], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * ResetMissionControl clears all mission control state and starts with a clean - * slate. - * - * @generated from protobuf rpc: ResetMissionControl(routerrpc.ResetMissionControlRequest) returns (routerrpc.ResetMissionControlResponse); - */ - resetMissionControl(input, options) { - const method = this.methods[6], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * QueryMissionControl exposes the internal mission control state to callers. - * It is a development feature. - * - * @generated from protobuf rpc: QueryMissionControl(routerrpc.QueryMissionControlRequest) returns (routerrpc.QueryMissionControlResponse); - */ - queryMissionControl(input, options) { - const method = this.methods[7], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * XImportMissionControl is an experimental API that imports the state provided - * to the internal mission control's state, using all results which are more - * recent than our existing values. These values will only be imported - * in-memory, and will not be persisted across restarts. - * - * @generated from protobuf rpc: XImportMissionControl(routerrpc.XImportMissionControlRequest) returns (routerrpc.XImportMissionControlResponse); - */ - xImportMissionControl(input, options) { - const method = this.methods[8], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * GetMissionControlConfig returns mission control's current config. - * - * @generated from protobuf rpc: GetMissionControlConfig(routerrpc.GetMissionControlConfigRequest) returns (routerrpc.GetMissionControlConfigResponse); - */ - getMissionControlConfig(input, options) { - const method = this.methods[9], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * SetMissionControlConfig will set mission control's config, if the config - * provided is valid. - * - * @generated from protobuf rpc: SetMissionControlConfig(routerrpc.SetMissionControlConfigRequest) returns (routerrpc.SetMissionControlConfigResponse); - */ - setMissionControlConfig(input, options) { - const method = this.methods[10], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * QueryProbability returns the current success probability estimate for a - * given node pair and amount. - * - * @generated from protobuf rpc: QueryProbability(routerrpc.QueryProbabilityRequest) returns (routerrpc.QueryProbabilityResponse); - */ - queryProbability(input, options) { - const method = this.methods[11], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * BuildRoute builds a fully specified route based on a list of hop public - * keys. It retrieves the relevant channel policies from the graph in order to - * calculate the correct fees and time locks. - * - * @generated from protobuf rpc: BuildRoute(routerrpc.BuildRouteRequest) returns (routerrpc.BuildRouteResponse); - */ - buildRoute(input, options) { - const method = this.methods[12], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } - /** - * - * SubscribeHtlcEvents creates a uni-directional stream from the server to - * the client which delivers a stream of htlc events. - * - * @generated from protobuf rpc: SubscribeHtlcEvents(routerrpc.SubscribeHtlcEventsRequest) returns (stream routerrpc.HtlcEvent); - */ - subscribeHtlcEvents(input, options) { - const method = this.methods[13], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * - * Deprecated, use SendPaymentV2. SendPayment attempts to route a payment - * described by the passed PaymentRequest to the final destination. The call - * returns a stream of payment status updates. - * - * @deprecated - * @generated from protobuf rpc: SendPayment(routerrpc.SendPaymentRequest) returns (stream routerrpc.PaymentStatus); - */ - sendPayment(input, options) { - const method = this.methods[14], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * - * Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for - * the payment identified by the payment hash. - * - * @deprecated - * @generated from protobuf rpc: TrackPayment(routerrpc.TrackPaymentRequest) returns (stream routerrpc.PaymentStatus); - */ - trackPayment(input, options) { - const method = this.methods[15], opt = this._transport.mergeOptions(options); - return stackIntercept("serverStreaming", this._transport, method, opt, input); - } - /** - * * - * HtlcInterceptor dispatches a bi-directional streaming RPC in which - * Forwarded HTLC requests are sent to the client and the client responds with - * a boolean that tells LND if this htlc should be intercepted. - * In case of interception, the htlc can be either settled, cancelled or - * resumed later by using the ResolveHoldForward endpoint. - * - * @generated from protobuf rpc: HtlcInterceptor(stream routerrpc.ForwardHtlcInterceptResponse) returns (stream routerrpc.ForwardHtlcInterceptRequest); - */ - htlcInterceptor(options) { - const method = this.methods[16], opt = this._transport.mergeOptions(options); - return stackIntercept("duplex", this._transport, method, opt); - } - /** - * - * UpdateChanStatus attempts to manually set the state of a channel - * (enabled, disabled, or auto). A manual "disable" request will cause the - * channel to stay disabled until a subsequent manual request of either - * "enable" or "auto". - * - * @generated from protobuf rpc: UpdateChanStatus(routerrpc.UpdateChanStatusRequest) returns (routerrpc.UpdateChanStatusResponse); - */ - updateChanStatus(input, options) { - const method = this.methods[17], opt = this._transport.mergeOptions(options); - return stackIntercept("unary", this._transport, method, opt, input); - } -} diff --git a/proto/lnd/router.client.ts b/proto/lnd/router.client.ts index ed3a38e1..bea1ae0a 100644 --- a/proto/lnd/router.client.ts +++ b/proto/lnd/router.client.ts @@ -3,40 +3,40 @@ // tslint:disable import type { RpcTransport } from "@protobuf-ts/runtime-rpc"; import type { ServiceInfo } from "@protobuf-ts/runtime-rpc"; -import { Router } from "./router"; -import type { UpdateChanStatusResponse } from "./router"; -import type { UpdateChanStatusRequest } from "./router"; -import type { ForwardHtlcInterceptRequest } from "./router"; -import type { ForwardHtlcInterceptResponse } from "./router"; +import { Router } from "./router.js"; +import type { UpdateChanStatusResponse } from "./router.js"; +import type { UpdateChanStatusRequest } from "./router.js"; +import type { ForwardHtlcInterceptRequest } from "./router.js"; +import type { ForwardHtlcInterceptResponse } from "./router.js"; import type { DuplexStreamingCall } from "@protobuf-ts/runtime-rpc"; -import type { PaymentStatus } from "./router"; -import type { HtlcEvent } from "./router"; -import type { SubscribeHtlcEventsRequest } from "./router"; -import type { BuildRouteResponse } from "./router"; -import type { BuildRouteRequest } from "./router"; -import type { QueryProbabilityResponse } from "./router"; -import type { QueryProbabilityRequest } from "./router"; -import type { SetMissionControlConfigResponse } from "./router"; -import type { SetMissionControlConfigRequest } from "./router"; -import type { GetMissionControlConfigResponse } from "./router"; -import type { GetMissionControlConfigRequest } from "./router"; -import type { XImportMissionControlResponse } from "./router"; -import type { XImportMissionControlRequest } from "./router"; -import type { QueryMissionControlResponse } from "./router"; -import type { QueryMissionControlRequest } from "./router"; -import type { ResetMissionControlResponse } from "./router"; -import type { ResetMissionControlRequest } from "./router"; -import type { HTLCAttempt } from "./lightning"; -import type { SendToRouteResponse } from "./router"; -import type { SendToRouteRequest } from "./router"; -import type { RouteFeeResponse } from "./router"; -import type { RouteFeeRequest } from "./router"; +import type { PaymentStatus } from "./router.js"; +import type { HtlcEvent } from "./router.js"; +import type { SubscribeHtlcEventsRequest } from "./router.js"; +import type { BuildRouteResponse } from "./router.js"; +import type { BuildRouteRequest } from "./router.js"; +import type { QueryProbabilityResponse } from "./router.js"; +import type { QueryProbabilityRequest } from "./router.js"; +import type { SetMissionControlConfigResponse } from "./router.js"; +import type { SetMissionControlConfigRequest } from "./router.js"; +import type { GetMissionControlConfigResponse } from "./router.js"; +import type { GetMissionControlConfigRequest } from "./router.js"; +import type { XImportMissionControlResponse } from "./router.js"; +import type { XImportMissionControlRequest } from "./router.js"; +import type { QueryMissionControlResponse } from "./router.js"; +import type { QueryMissionControlRequest } from "./router.js"; +import type { ResetMissionControlResponse } from "./router.js"; +import type { ResetMissionControlRequest } from "./router.js"; +import type { HTLCAttempt } from "./lightning.js"; +import type { SendToRouteResponse } from "./router.js"; +import type { SendToRouteRequest } from "./router.js"; +import type { RouteFeeResponse } from "./router.js"; +import type { RouteFeeRequest } from "./router.js"; import type { UnaryCall } from "@protobuf-ts/runtime-rpc"; -import type { TrackPaymentsRequest } from "./router"; -import type { TrackPaymentRequest } from "./router"; +import type { TrackPaymentsRequest } from "./router.js"; +import type { TrackPaymentRequest } from "./router.js"; import { stackIntercept } from "@protobuf-ts/runtime-rpc"; -import type { Payment } from "./lightning"; -import type { SendPaymentRequest } from "./router"; +import type { Payment } from "./lightning.js"; +import type { SendPaymentRequest } from "./router.js"; import type { ServerStreamingCall } from "@protobuf-ts/runtime-rpc"; import type { RpcOptions } from "@protobuf-ts/runtime-rpc"; /** diff --git a/proto/lnd/router.d.ts b/proto/lnd/router.d.ts deleted file mode 100644 index 09ea3f39..00000000 --- a/proto/lnd/router.d.ts +++ /dev/null @@ -1,1649 +0,0 @@ -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "router.proto" (package "routerrpc", syntax proto3) -// tslint:disable -import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; -import type { IBinaryWriter } from "@protobuf-ts/runtime"; -import type { BinaryReadOptions } from "@protobuf-ts/runtime"; -import type { IBinaryReader } from "@protobuf-ts/runtime"; -import type { PartialMessage } from "@protobuf-ts/runtime"; -import { MessageType } from "@protobuf-ts/runtime"; -import { ChannelPoint } from "./lightning"; -import { HTLCAttempt } from "./lightning"; -import { Failure_FailureCode } from "./lightning"; -import { Failure } from "./lightning"; -import { Route } from "./lightning"; -import { FeatureBit } from "./lightning"; -import { RouteHint } from "./lightning"; -/** - * @generated from protobuf message routerrpc.SendPaymentRequest - */ -export interface SendPaymentRequest { - /** - * The identity pubkey of the payment recipient - * - * @generated from protobuf field: bytes dest = 1; - */ - dest: Uint8Array; - /** - * - * Number of satoshis to send. - * - * The fields amt and amt_msat are mutually exclusive. - * - * @generated from protobuf field: int64 amt = 2; - */ - amt: number; - /** - * - * Number of millisatoshis to send. - * - * The fields amt and amt_msat are mutually exclusive. - * - * @generated from protobuf field: int64 amt_msat = 12; - */ - amtMsat: number; - /** - * The hash to use within the payment's HTLC - * - * @generated from protobuf field: bytes payment_hash = 3; - */ - paymentHash: Uint8Array; - /** - * - * The CLTV delta from the current height that should be used to set the - * timelock for the final hop. - * - * @generated from protobuf field: int32 final_cltv_delta = 4; - */ - finalCltvDelta: number; - /** - * An optional payment addr to be included within the last hop of the route. - * - * @generated from protobuf field: bytes payment_addr = 20; - */ - paymentAddr: Uint8Array; - /** - * - * A bare-bones invoice for a payment within the Lightning Network. With the - * details of the invoice, the sender has all the data necessary to send a - * payment to the recipient. The amount in the payment request may be zero. In - * that case it is required to set the amt field as well. If no payment request - * is specified, the following fields are required: dest, amt and payment_hash. - * - * @generated from protobuf field: string payment_request = 5; - */ - paymentRequest: string; - /** - * - * An upper limit on the amount of time we should spend when attempting to - * fulfill the payment. This is expressed in seconds. If we cannot make a - * successful payment within this time frame, an error will be returned. - * This field must be non-zero. - * - * @generated from protobuf field: int32 timeout_seconds = 6; - */ - timeoutSeconds: number; - /** - * - * The maximum number of satoshis that will be paid as a fee of the payment. - * If this field is left to the default value of 0, only zero-fee routes will - * be considered. This usually means single hop routes connecting directly to - * the destination. To send the payment without a fee limit, use max int here. - * - * The fields fee_limit_sat and fee_limit_msat are mutually exclusive. - * - * @generated from protobuf field: int64 fee_limit_sat = 7; - */ - feeLimitSat: number; - /** - * - * The maximum number of millisatoshis that will be paid as a fee of the - * payment. If this field is left to the default value of 0, only zero-fee - * routes will be considered. This usually means single hop routes connecting - * directly to the destination. To send the payment without a fee limit, use - * max int here. - * - * The fields fee_limit_sat and fee_limit_msat are mutually exclusive. - * - * @generated from protobuf field: int64 fee_limit_msat = 13; - */ - feeLimitMsat: number; - /** - * - * Deprecated, use outgoing_chan_ids. The channel id of the channel that must - * be taken to the first hop. If zero, any channel may be used (unless - * outgoing_chan_ids are set). - * - * @deprecated - * @generated from protobuf field: uint64 outgoing_chan_id = 8 [deprecated = true, jstype = JS_STRING]; - */ - outgoingChanId: string; - /** - * - * The channel ids of the channels are allowed for the first hop. If empty, - * any channel may be used. - * - * @generated from protobuf field: repeated uint64 outgoing_chan_ids = 19; - */ - outgoingChanIds: number[]; - /** - * - * The pubkey of the last hop of the route. If empty, any hop may be used. - * - * @generated from protobuf field: bytes last_hop_pubkey = 14; - */ - lastHopPubkey: Uint8Array; - /** - * - * An optional maximum total time lock for the route. This should not exceed - * lnd's `--max-cltv-expiry` setting. If zero, then the value of - * `--max-cltv-expiry` is enforced. - * - * @generated from protobuf field: int32 cltv_limit = 9; - */ - cltvLimit: number; - /** - * - * Optional route hints to reach the destination through private channels. - * - * @generated from protobuf field: repeated lnrpc.RouteHint route_hints = 10; - */ - routeHints: RouteHint[]; - /** - * - * An optional field that can be used to pass an arbitrary set of TLV records - * to a peer which understands the new records. This can be used to pass - * application specific data during the payment attempt. Record types are - * required to be in the custom range >= 65536. When using REST, the values - * must be encoded as base64. - * - * @generated from protobuf field: map dest_custom_records = 11; - */ - destCustomRecords: { - [key: string]: Uint8Array; - }; - /** - * If set, circular payments to self are permitted. - * - * @generated from protobuf field: bool allow_self_payment = 15; - */ - allowSelfPayment: boolean; - /** - * - * Features assumed to be supported by the final node. All transitive feature - * dependencies must also be set properly. For a given feature bit pair, either - * optional or remote may be set, but not both. If this field is nil or empty, - * the router will try to load destination features from the graph as a - * fallback. - * - * @generated from protobuf field: repeated lnrpc.FeatureBit dest_features = 16; - */ - destFeatures: FeatureBit[]; - /** - * - * The maximum number of partial payments that may be use to complete the full - * amount. - * - * @generated from protobuf field: uint32 max_parts = 17; - */ - maxParts: number; - /** - * - * If set, only the final payment update is streamed back. Intermediate updates - * that show which htlcs are still in flight are suppressed. - * - * @generated from protobuf field: bool no_inflight_updates = 18; - */ - noInflightUpdates: boolean; - /** - * - * The largest payment split that should be attempted when making a payment if - * splitting is necessary. Setting this value will effectively cause lnd to - * split more aggressively, vs only when it thinks it needs to. Note that this - * value is in milli-satoshis. - * - * @generated from protobuf field: uint64 max_shard_size_msat = 21; - */ - maxShardSizeMsat: number; - /** - * - * If set, an AMP-payment will be attempted. - * - * @generated from protobuf field: bool amp = 22; - */ - amp: boolean; - /** - * - * The time preference for this payment. Set to -1 to optimize for fees - * only, to 1 to optimize for reliability only or a value inbetween for a mix. - * - * @generated from protobuf field: double time_pref = 23; - */ - timePref: number; -} -/** - * @generated from protobuf message routerrpc.TrackPaymentRequest - */ -export interface TrackPaymentRequest { - /** - * The hash of the payment to look up. - * - * @generated from protobuf field: bytes payment_hash = 1; - */ - paymentHash: Uint8Array; - /** - * - * If set, only the final payment update is streamed back. Intermediate updates - * that show which htlcs are still in flight are suppressed. - * - * @generated from protobuf field: bool no_inflight_updates = 2; - */ - noInflightUpdates: boolean; -} -/** - * @generated from protobuf message routerrpc.TrackPaymentsRequest - */ -export interface TrackPaymentsRequest { - /** - * - * If set, only the final payment updates are streamed back. Intermediate - * updates that show which htlcs are still in flight are suppressed. - * - * @generated from protobuf field: bool no_inflight_updates = 1; - */ - noInflightUpdates: boolean; -} -/** - * @generated from protobuf message routerrpc.RouteFeeRequest - */ -export interface RouteFeeRequest { - /** - * - * The destination once wishes to obtain a routing fee quote to. - * - * @generated from protobuf field: bytes dest = 1; - */ - dest: Uint8Array; - /** - * - * The amount one wishes to send to the target destination. - * - * @generated from protobuf field: int64 amt_sat = 2; - */ - amtSat: number; -} -/** - * @generated from protobuf message routerrpc.RouteFeeResponse - */ -export interface RouteFeeResponse { - /** - * - * A lower bound of the estimated fee to the target destination within the - * network, expressed in milli-satoshis. - * - * @generated from protobuf field: int64 routing_fee_msat = 1; - */ - routingFeeMsat: number; - /** - * - * An estimate of the worst case time delay that can occur. Note that callers - * will still need to factor in the final CLTV delta of the last hop into this - * value. - * - * @generated from protobuf field: int64 time_lock_delay = 2; - */ - timeLockDelay: number; -} -/** - * @generated from protobuf message routerrpc.SendToRouteRequest - */ -export interface SendToRouteRequest { - /** - * The payment hash to use for the HTLC. - * - * @generated from protobuf field: bytes payment_hash = 1; - */ - paymentHash: Uint8Array; - /** - * Route that should be used to attempt to complete the payment. - * - * @generated from protobuf field: lnrpc.Route route = 2; - */ - route?: Route; - /** - * - * Whether the payment should be marked as failed when a temporary error is - * returned from the given route. Set it to true so the payment won't be - * failed unless a terminal error is occurred, such as payment timeout, no - * routes, incorrect payment details, or insufficient funds. - * - * @generated from protobuf field: bool skip_temp_err = 3; - */ - skipTempErr: boolean; -} -/** - * @generated from protobuf message routerrpc.SendToRouteResponse - */ -export interface SendToRouteResponse { - /** - * The preimage obtained by making the payment. - * - * @generated from protobuf field: bytes preimage = 1; - */ - preimage: Uint8Array; - /** - * The failure message in case the payment failed. - * - * @generated from protobuf field: lnrpc.Failure failure = 2; - */ - failure?: Failure; -} -/** - * @generated from protobuf message routerrpc.ResetMissionControlRequest - */ -export interface ResetMissionControlRequest { -} -/** - * @generated from protobuf message routerrpc.ResetMissionControlResponse - */ -export interface ResetMissionControlResponse { -} -/** - * @generated from protobuf message routerrpc.QueryMissionControlRequest - */ -export interface QueryMissionControlRequest { -} -/** - * QueryMissionControlResponse contains mission control state. - * - * @generated from protobuf message routerrpc.QueryMissionControlResponse - */ -export interface QueryMissionControlResponse { - /** - * Node pair-level mission control state. - * - * @generated from protobuf field: repeated routerrpc.PairHistory pairs = 2; - */ - pairs: PairHistory[]; -} -/** - * @generated from protobuf message routerrpc.XImportMissionControlRequest - */ -export interface XImportMissionControlRequest { - /** - * Node pair-level mission control state to be imported. - * - * @generated from protobuf field: repeated routerrpc.PairHistory pairs = 1; - */ - pairs: PairHistory[]; - /** - * Whether to force override MC pair history. Note that even with force - * override the failure pair is imported before the success pair and both - * still clamp existing failure/success amounts. - * - * @generated from protobuf field: bool force = 2; - */ - force: boolean; -} -/** - * @generated from protobuf message routerrpc.XImportMissionControlResponse - */ -export interface XImportMissionControlResponse { -} -/** - * PairHistory contains the mission control state for a particular node pair. - * - * @generated from protobuf message routerrpc.PairHistory - */ -export interface PairHistory { - /** - * The source node pubkey of the pair. - * - * @generated from protobuf field: bytes node_from = 1; - */ - nodeFrom: Uint8Array; - /** - * The destination node pubkey of the pair. - * - * @generated from protobuf field: bytes node_to = 2; - */ - nodeTo: Uint8Array; - /** - * @generated from protobuf field: routerrpc.PairData history = 7; - */ - history?: PairData; -} -/** - * @generated from protobuf message routerrpc.PairData - */ -export interface PairData { - /** - * Time of last failure. - * - * @generated from protobuf field: int64 fail_time = 1; - */ - failTime: number; - /** - * - * Lowest amount that failed to forward rounded to whole sats. This may be - * set to zero if the failure is independent of amount. - * - * @generated from protobuf field: int64 fail_amt_sat = 2; - */ - failAmtSat: number; - /** - * - * Lowest amount that failed to forward in millisats. This may be - * set to zero if the failure is independent of amount. - * - * @generated from protobuf field: int64 fail_amt_msat = 4; - */ - failAmtMsat: number; - /** - * Time of last success. - * - * @generated from protobuf field: int64 success_time = 5; - */ - successTime: number; - /** - * Highest amount that we could successfully forward rounded to whole sats. - * - * @generated from protobuf field: int64 success_amt_sat = 6; - */ - successAmtSat: number; - /** - * Highest amount that we could successfully forward in millisats. - * - * @generated from protobuf field: int64 success_amt_msat = 7; - */ - successAmtMsat: number; -} -/** - * @generated from protobuf message routerrpc.GetMissionControlConfigRequest - */ -export interface GetMissionControlConfigRequest { -} -/** - * @generated from protobuf message routerrpc.GetMissionControlConfigResponse - */ -export interface GetMissionControlConfigResponse { - /** - * - * Mission control's currently active config. - * - * @generated from protobuf field: routerrpc.MissionControlConfig config = 1; - */ - config?: MissionControlConfig; -} -/** - * @generated from protobuf message routerrpc.SetMissionControlConfigRequest - */ -export interface SetMissionControlConfigRequest { - /** - * - * The config to set for mission control. Note that all values *must* be set, - * because the full config will be applied. - * - * @generated from protobuf field: routerrpc.MissionControlConfig config = 1; - */ - config?: MissionControlConfig; -} -/** - * @generated from protobuf message routerrpc.SetMissionControlConfigResponse - */ -export interface SetMissionControlConfigResponse { -} -/** - * @generated from protobuf message routerrpc.MissionControlConfig - */ -export interface MissionControlConfig { - /** - * - * The amount of time mission control will take to restore a penalized node - * or channel back to 50% success probability, expressed in seconds. Setting - * this value to a higher value will penalize failures for longer, making - * mission control less likely to route through nodes and channels that we - * have previously recorded failures for. - * - * @generated from protobuf field: uint64 half_life_seconds = 1; - */ - halfLifeSeconds: number; - /** - * - * The probability of success mission control should assign to hop in a route - * where it has no other information available. Higher values will make mission - * control more willing to try hops that we have no information about, lower - * values will discourage trying these hops. - * - * @generated from protobuf field: float hop_probability = 2; - */ - hopProbability: number; - /** - * - * The importance that mission control should place on historical results, - * expressed as a value in [0;1]. Setting this value to 1 will ignore all - * historical payments and just use the hop probability to assess the - * probability of success for each hop. A zero value ignores hop probability - * completely and relies entirely on historical results, unless none are - * available. - * - * @generated from protobuf field: float weight = 3; - */ - weight: number; - /** - * - * The maximum number of payment results that mission control will store. - * - * @generated from protobuf field: uint32 maximum_payment_results = 4; - */ - maximumPaymentResults: number; - /** - * - * The minimum time that must have passed since the previously recorded failure - * before we raise the failure amount. - * - * @generated from protobuf field: uint64 minimum_failure_relax_interval = 5; - */ - minimumFailureRelaxInterval: number; -} -/** - * @generated from protobuf message routerrpc.QueryProbabilityRequest - */ -export interface QueryProbabilityRequest { - /** - * The source node pubkey of the pair. - * - * @generated from protobuf field: bytes from_node = 1; - */ - fromNode: Uint8Array; - /** - * The destination node pubkey of the pair. - * - * @generated from protobuf field: bytes to_node = 2; - */ - toNode: Uint8Array; - /** - * The amount for which to calculate a probability. - * - * @generated from protobuf field: int64 amt_msat = 3; - */ - amtMsat: number; -} -/** - * @generated from protobuf message routerrpc.QueryProbabilityResponse - */ -export interface QueryProbabilityResponse { - /** - * The success probability for the requested pair. - * - * @generated from protobuf field: double probability = 1; - */ - probability: number; - /** - * The historical data for the requested pair. - * - * @generated from protobuf field: routerrpc.PairData history = 2; - */ - history?: PairData; -} -/** - * @generated from protobuf message routerrpc.BuildRouteRequest - */ -export interface BuildRouteRequest { - /** - * - * The amount to send expressed in msat. If set to zero, the minimum routable - * amount is used. - * - * @generated from protobuf field: int64 amt_msat = 1; - */ - amtMsat: number; - /** - * - * CLTV delta from the current height that should be used for the timelock - * of the final hop - * - * @generated from protobuf field: int32 final_cltv_delta = 2; - */ - finalCltvDelta: number; - /** - * - * The channel id of the channel that must be taken to the first hop. If zero, - * any channel may be used. - * - * @generated from protobuf field: uint64 outgoing_chan_id = 3 [jstype = JS_STRING]; - */ - outgoingChanId: string; - /** - * - * A list of hops that defines the route. This does not include the source hop - * pubkey. - * - * @generated from protobuf field: repeated bytes hop_pubkeys = 4; - */ - hopPubkeys: Uint8Array[]; - /** - * An optional payment addr to be included within the last hop of the route. - * - * @generated from protobuf field: bytes payment_addr = 5; - */ - paymentAddr: Uint8Array; -} -/** - * @generated from protobuf message routerrpc.BuildRouteResponse - */ -export interface BuildRouteResponse { - /** - * - * Fully specified route that can be used to execute the payment. - * - * @generated from protobuf field: lnrpc.Route route = 1; - */ - route?: Route; -} -/** - * @generated from protobuf message routerrpc.SubscribeHtlcEventsRequest - */ -export interface SubscribeHtlcEventsRequest { -} -/** - * - * HtlcEvent contains the htlc event that was processed. These are served on a - * best-effort basis; events are not persisted, delivery is not guaranteed - * (in the event of a crash in the switch, forward events may be lost) and - * some events may be replayed upon restart. Events consumed from this package - * should be de-duplicated by the htlc's unique combination of incoming and - * outgoing channel id and htlc id. [EXPERIMENTAL] - * - * @generated from protobuf message routerrpc.HtlcEvent - */ -export interface HtlcEvent { - /** - * - * The short channel id that the incoming htlc arrived at our node on. This - * value is zero for sends. - * - * @generated from protobuf field: uint64 incoming_channel_id = 1; - */ - incomingChannelId: number; - /** - * - * The short channel id that the outgoing htlc left our node on. This value - * is zero for receives. - * - * @generated from protobuf field: uint64 outgoing_channel_id = 2; - */ - outgoingChannelId: number; - /** - * - * Incoming id is the index of the incoming htlc in the incoming channel. - * This value is zero for sends. - * - * @generated from protobuf field: uint64 incoming_htlc_id = 3; - */ - incomingHtlcId: number; - /** - * - * Outgoing id is the index of the outgoing htlc in the outgoing channel. - * This value is zero for receives. - * - * @generated from protobuf field: uint64 outgoing_htlc_id = 4; - */ - outgoingHtlcId: number; - /** - * - * The time in unix nanoseconds that the event occurred. - * - * @generated from protobuf field: uint64 timestamp_ns = 5; - */ - timestampNs: number; - /** - * - * The event type indicates whether the htlc was part of a send, receive or - * forward. - * - * @generated from protobuf field: routerrpc.HtlcEvent.EventType event_type = 6; - */ - eventType: HtlcEvent_EventType; - /** - * @generated from protobuf oneof: event - */ - event: { - oneofKind: "forwardEvent"; - /** - * @generated from protobuf field: routerrpc.ForwardEvent forward_event = 7; - */ - forwardEvent: ForwardEvent; - } | { - oneofKind: "forwardFailEvent"; - /** - * @generated from protobuf field: routerrpc.ForwardFailEvent forward_fail_event = 8; - */ - forwardFailEvent: ForwardFailEvent; - } | { - oneofKind: "settleEvent"; - /** - * @generated from protobuf field: routerrpc.SettleEvent settle_event = 9; - */ - settleEvent: SettleEvent; - } | { - oneofKind: "linkFailEvent"; - /** - * @generated from protobuf field: routerrpc.LinkFailEvent link_fail_event = 10; - */ - linkFailEvent: LinkFailEvent; - } | { - oneofKind: "subscribedEvent"; - /** - * @generated from protobuf field: routerrpc.SubscribedEvent subscribed_event = 11; - */ - subscribedEvent: SubscribedEvent; - } | { - oneofKind: "finalHtlcEvent"; - /** - * @generated from protobuf field: routerrpc.FinalHtlcEvent final_htlc_event = 12; - */ - finalHtlcEvent: FinalHtlcEvent; - } | { - oneofKind: undefined; - }; -} -/** - * @generated from protobuf enum routerrpc.HtlcEvent.EventType - */ -export declare enum HtlcEvent_EventType { - /** - * @generated from protobuf enum value: UNKNOWN = 0; - */ - UNKNOWN = 0, - /** - * @generated from protobuf enum value: SEND = 1; - */ - SEND = 1, - /** - * @generated from protobuf enum value: RECEIVE = 2; - */ - RECEIVE = 2, - /** - * @generated from protobuf enum value: FORWARD = 3; - */ - FORWARD = 3 -} -/** - * @generated from protobuf message routerrpc.HtlcInfo - */ -export interface HtlcInfo { - /** - * The timelock on the incoming htlc. - * - * @generated from protobuf field: uint32 incoming_timelock = 1; - */ - incomingTimelock: number; - /** - * The timelock on the outgoing htlc. - * - * @generated from protobuf field: uint32 outgoing_timelock = 2; - */ - outgoingTimelock: number; - /** - * The amount of the incoming htlc. - * - * @generated from protobuf field: uint64 incoming_amt_msat = 3; - */ - incomingAmtMsat: number; - /** - * The amount of the outgoing htlc. - * - * @generated from protobuf field: uint64 outgoing_amt_msat = 4; - */ - outgoingAmtMsat: number; -} -/** - * @generated from protobuf message routerrpc.ForwardEvent - */ -export interface ForwardEvent { - /** - * Info contains details about the htlc that was forwarded. - * - * @generated from protobuf field: routerrpc.HtlcInfo info = 1; - */ - info?: HtlcInfo; -} -/** - * @generated from protobuf message routerrpc.ForwardFailEvent - */ -export interface ForwardFailEvent { -} -/** - * @generated from protobuf message routerrpc.SettleEvent - */ -export interface SettleEvent { - /** - * The revealed preimage. - * - * @generated from protobuf field: bytes preimage = 1; - */ - preimage: Uint8Array; -} -/** - * @generated from protobuf message routerrpc.FinalHtlcEvent - */ -export interface FinalHtlcEvent { - /** - * @generated from protobuf field: bool settled = 1; - */ - settled: boolean; - /** - * @generated from protobuf field: bool offchain = 2; - */ - offchain: boolean; -} -/** - * @generated from protobuf message routerrpc.SubscribedEvent - */ -export interface SubscribedEvent { -} -/** - * @generated from protobuf message routerrpc.LinkFailEvent - */ -export interface LinkFailEvent { - /** - * Info contains details about the htlc that we failed. - * - * @generated from protobuf field: routerrpc.HtlcInfo info = 1; - */ - info?: HtlcInfo; - /** - * FailureCode is the BOLT error code for the failure. - * - * @generated from protobuf field: lnrpc.Failure.FailureCode wire_failure = 2; - */ - wireFailure: Failure_FailureCode; - /** - * - * FailureDetail provides additional information about the reason for the - * failure. This detail enriches the information provided by the wire message - * and may be 'no detail' if the wire message requires no additional metadata. - * - * @generated from protobuf field: routerrpc.FailureDetail failure_detail = 3; - */ - failureDetail: FailureDetail; - /** - * A string representation of the link failure. - * - * @generated from protobuf field: string failure_string = 4; - */ - failureString: string; -} -/** - * @generated from protobuf message routerrpc.PaymentStatus - */ -export interface PaymentStatus { - /** - * Current state the payment is in. - * - * @generated from protobuf field: routerrpc.PaymentState state = 1; - */ - state: PaymentState; - /** - * - * The pre-image of the payment when state is SUCCEEDED. - * - * @generated from protobuf field: bytes preimage = 2; - */ - preimage: Uint8Array; - /** - * - * The HTLCs made in attempt to settle the payment [EXPERIMENTAL]. - * - * @generated from protobuf field: repeated lnrpc.HTLCAttempt htlcs = 4; - */ - htlcs: HTLCAttempt[]; -} -/** - * @generated from protobuf message routerrpc.CircuitKey - */ -export interface CircuitKey { - /** - * / The id of the channel that the is part of this circuit. - * - * @generated from protobuf field: uint64 chan_id = 1; - */ - chanId: number; - /** - * / The index of the incoming htlc in the incoming channel. - * - * @generated from protobuf field: uint64 htlc_id = 2; - */ - htlcId: number; -} -/** - * @generated from protobuf message routerrpc.ForwardHtlcInterceptRequest - */ -export interface ForwardHtlcInterceptRequest { - /** - * - * The key of this forwarded htlc. It defines the incoming channel id and - * the index in this channel. - * - * @generated from protobuf field: routerrpc.CircuitKey incoming_circuit_key = 1; - */ - incomingCircuitKey?: CircuitKey; - /** - * The incoming htlc amount. - * - * @generated from protobuf field: uint64 incoming_amount_msat = 5; - */ - incomingAmountMsat: number; - /** - * The incoming htlc expiry. - * - * @generated from protobuf field: uint32 incoming_expiry = 6; - */ - incomingExpiry: number; - /** - * - * The htlc payment hash. This value is not guaranteed to be unique per - * request. - * - * @generated from protobuf field: bytes payment_hash = 2; - */ - paymentHash: Uint8Array; - /** - * The requested outgoing channel id for this forwarded htlc. Because of - * non-strict forwarding, this isn't necessarily the channel over which the - * packet will be forwarded eventually. A different channel to the same peer - * may be selected as well. - * - * @generated from protobuf field: uint64 outgoing_requested_chan_id = 7; - */ - outgoingRequestedChanId: number; - /** - * The outgoing htlc amount. - * - * @generated from protobuf field: uint64 outgoing_amount_msat = 3; - */ - outgoingAmountMsat: number; - /** - * The outgoing htlc expiry. - * - * @generated from protobuf field: uint32 outgoing_expiry = 4; - */ - outgoingExpiry: number; - /** - * Any custom records that were present in the payload. - * - * @generated from protobuf field: map custom_records = 8; - */ - customRecords: { - [key: string]: Uint8Array; - }; - /** - * The onion blob for the next hop - * - * @generated from protobuf field: bytes onion_blob = 9; - */ - onionBlob: Uint8Array; - /** - * The block height at which this htlc will be auto-failed to prevent the - * channel from force-closing. - * - * @generated from protobuf field: int32 auto_fail_height = 10; - */ - autoFailHeight: number; -} -/** - * * - * ForwardHtlcInterceptResponse enables the caller to resolve a previously hold - * forward. The caller can choose either to: - * - `Resume`: Execute the default behavior (usually forward). - * - `Reject`: Fail the htlc backwards. - * - `Settle`: Settle this htlc with a given preimage. - * - * @generated from protobuf message routerrpc.ForwardHtlcInterceptResponse - */ -export interface ForwardHtlcInterceptResponse { - /** - * * - * The key of this forwarded htlc. It defines the incoming channel id and - * the index in this channel. - * - * @generated from protobuf field: routerrpc.CircuitKey incoming_circuit_key = 1; - */ - incomingCircuitKey?: CircuitKey; - /** - * The resolve action for this intercepted htlc. - * - * @generated from protobuf field: routerrpc.ResolveHoldForwardAction action = 2; - */ - action: ResolveHoldForwardAction; - /** - * The preimage in case the resolve action is Settle. - * - * @generated from protobuf field: bytes preimage = 3; - */ - preimage: Uint8Array; - /** - * Encrypted failure message in case the resolve action is Fail. - * - * If failure_message is specified, the failure_code field must be set - * to zero. - * - * @generated from protobuf field: bytes failure_message = 4; - */ - failureMessage: Uint8Array; - /** - * Return the specified failure code in case the resolve action is Fail. The - * message data fields are populated automatically. - * - * If a non-zero failure_code is specified, failure_message must not be set. - * - * For backwards-compatibility reasons, TEMPORARY_CHANNEL_FAILURE is the - * default value for this field. - * - * @generated from protobuf field: lnrpc.Failure.FailureCode failure_code = 5; - */ - failureCode: Failure_FailureCode; -} -/** - * @generated from protobuf message routerrpc.UpdateChanStatusRequest - */ -export interface UpdateChanStatusRequest { - /** - * @generated from protobuf field: lnrpc.ChannelPoint chan_point = 1; - */ - chanPoint?: ChannelPoint; - /** - * @generated from protobuf field: routerrpc.ChanStatusAction action = 2; - */ - action: ChanStatusAction; -} -/** - * @generated from protobuf message routerrpc.UpdateChanStatusResponse - */ -export interface UpdateChanStatusResponse { -} -/** - * @generated from protobuf enum routerrpc.FailureDetail - */ -export declare enum FailureDetail { - /** - * @generated from protobuf enum value: UNKNOWN = 0; - */ - UNKNOWN = 0, - /** - * @generated from protobuf enum value: NO_DETAIL = 1; - */ - NO_DETAIL = 1, - /** - * @generated from protobuf enum value: ONION_DECODE = 2; - */ - ONION_DECODE = 2, - /** - * @generated from protobuf enum value: LINK_NOT_ELIGIBLE = 3; - */ - LINK_NOT_ELIGIBLE = 3, - /** - * @generated from protobuf enum value: ON_CHAIN_TIMEOUT = 4; - */ - ON_CHAIN_TIMEOUT = 4, - /** - * @generated from protobuf enum value: HTLC_EXCEEDS_MAX = 5; - */ - HTLC_EXCEEDS_MAX = 5, - /** - * @generated from protobuf enum value: INSUFFICIENT_BALANCE = 6; - */ - INSUFFICIENT_BALANCE = 6, - /** - * @generated from protobuf enum value: INCOMPLETE_FORWARD = 7; - */ - INCOMPLETE_FORWARD = 7, - /** - * @generated from protobuf enum value: HTLC_ADD_FAILED = 8; - */ - HTLC_ADD_FAILED = 8, - /** - * @generated from protobuf enum value: FORWARDS_DISABLED = 9; - */ - FORWARDS_DISABLED = 9, - /** - * @generated from protobuf enum value: INVOICE_CANCELED = 10; - */ - INVOICE_CANCELED = 10, - /** - * @generated from protobuf enum value: INVOICE_UNDERPAID = 11; - */ - INVOICE_UNDERPAID = 11, - /** - * @generated from protobuf enum value: INVOICE_EXPIRY_TOO_SOON = 12; - */ - INVOICE_EXPIRY_TOO_SOON = 12, - /** - * @generated from protobuf enum value: INVOICE_NOT_OPEN = 13; - */ - INVOICE_NOT_OPEN = 13, - /** - * @generated from protobuf enum value: MPP_INVOICE_TIMEOUT = 14; - */ - MPP_INVOICE_TIMEOUT = 14, - /** - * @generated from protobuf enum value: ADDRESS_MISMATCH = 15; - */ - ADDRESS_MISMATCH = 15, - /** - * @generated from protobuf enum value: SET_TOTAL_MISMATCH = 16; - */ - SET_TOTAL_MISMATCH = 16, - /** - * @generated from protobuf enum value: SET_TOTAL_TOO_LOW = 17; - */ - SET_TOTAL_TOO_LOW = 17, - /** - * @generated from protobuf enum value: SET_OVERPAID = 18; - */ - SET_OVERPAID = 18, - /** - * @generated from protobuf enum value: UNKNOWN_INVOICE = 19; - */ - UNKNOWN_INVOICE = 19, - /** - * @generated from protobuf enum value: INVALID_KEYSEND = 20; - */ - INVALID_KEYSEND = 20, - /** - * @generated from protobuf enum value: MPP_IN_PROGRESS = 21; - */ - MPP_IN_PROGRESS = 21, - /** - * @generated from protobuf enum value: CIRCULAR_ROUTE = 22; - */ - CIRCULAR_ROUTE = 22 -} -/** - * @generated from protobuf enum routerrpc.PaymentState - */ -export declare enum PaymentState { - /** - * - * Payment is still in flight. - * - * @generated from protobuf enum value: IN_FLIGHT = 0; - */ - IN_FLIGHT = 0, - /** - * - * Payment completed successfully. - * - * @generated from protobuf enum value: SUCCEEDED = 1; - */ - SUCCEEDED = 1, - /** - * - * There are more routes to try, but the payment timeout was exceeded. - * - * @generated from protobuf enum value: FAILED_TIMEOUT = 2; - */ - FAILED_TIMEOUT = 2, - /** - * - * All possible routes were tried and failed permanently. Or were no - * routes to the destination at all. - * - * @generated from protobuf enum value: FAILED_NO_ROUTE = 3; - */ - FAILED_NO_ROUTE = 3, - /** - * - * A non-recoverable error has occurred. - * - * @generated from protobuf enum value: FAILED_ERROR = 4; - */ - FAILED_ERROR = 4, - /** - * - * Payment details incorrect (unknown hash, invalid amt or - * invalid final cltv delta) - * - * @generated from protobuf enum value: FAILED_INCORRECT_PAYMENT_DETAILS = 5; - */ - FAILED_INCORRECT_PAYMENT_DETAILS = 5, - /** - * - * Insufficient local balance. - * - * @generated from protobuf enum value: FAILED_INSUFFICIENT_BALANCE = 6; - */ - FAILED_INSUFFICIENT_BALANCE = 6 -} -/** - * @generated from protobuf enum routerrpc.ResolveHoldForwardAction - */ -export declare enum ResolveHoldForwardAction { - /** - * @generated from protobuf enum value: SETTLE = 0; - */ - SETTLE = 0, - /** - * @generated from protobuf enum value: FAIL = 1; - */ - FAIL = 1, - /** - * @generated from protobuf enum value: RESUME = 2; - */ - RESUME = 2 -} -/** - * @generated from protobuf enum routerrpc.ChanStatusAction - */ -export declare enum ChanStatusAction { - /** - * @generated from protobuf enum value: ENABLE = 0; - */ - ENABLE = 0, - /** - * @generated from protobuf enum value: DISABLE = 1; - */ - DISABLE = 1, - /** - * @generated from protobuf enum value: AUTO = 2; - */ - AUTO = 2 -} -declare class SendPaymentRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SendPaymentRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendPaymentRequest): SendPaymentRequest; - private binaryReadMap11; - internalBinaryWrite(message: SendPaymentRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.SendPaymentRequest - */ -export declare const SendPaymentRequest: SendPaymentRequest$Type; -declare class TrackPaymentRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): TrackPaymentRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TrackPaymentRequest): TrackPaymentRequest; - internalBinaryWrite(message: TrackPaymentRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.TrackPaymentRequest - */ -export declare const TrackPaymentRequest: TrackPaymentRequest$Type; -declare class TrackPaymentsRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): TrackPaymentsRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TrackPaymentsRequest): TrackPaymentsRequest; - internalBinaryWrite(message: TrackPaymentsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.TrackPaymentsRequest - */ -export declare const TrackPaymentsRequest: TrackPaymentsRequest$Type; -declare class RouteFeeRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): RouteFeeRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RouteFeeRequest): RouteFeeRequest; - internalBinaryWrite(message: RouteFeeRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.RouteFeeRequest - */ -export declare const RouteFeeRequest: RouteFeeRequest$Type; -declare class RouteFeeResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): RouteFeeResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RouteFeeResponse): RouteFeeResponse; - internalBinaryWrite(message: RouteFeeResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.RouteFeeResponse - */ -export declare const RouteFeeResponse: RouteFeeResponse$Type; -declare class SendToRouteRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SendToRouteRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendToRouteRequest): SendToRouteRequest; - internalBinaryWrite(message: SendToRouteRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.SendToRouteRequest - */ -export declare const SendToRouteRequest: SendToRouteRequest$Type; -declare class SendToRouteResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SendToRouteResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendToRouteResponse): SendToRouteResponse; - internalBinaryWrite(message: SendToRouteResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.SendToRouteResponse - */ -export declare const SendToRouteResponse: SendToRouteResponse$Type; -declare class ResetMissionControlRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ResetMissionControlRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResetMissionControlRequest): ResetMissionControlRequest; - internalBinaryWrite(message: ResetMissionControlRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.ResetMissionControlRequest - */ -export declare const ResetMissionControlRequest: ResetMissionControlRequest$Type; -declare class ResetMissionControlResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ResetMissionControlResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResetMissionControlResponse): ResetMissionControlResponse; - internalBinaryWrite(message: ResetMissionControlResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.ResetMissionControlResponse - */ -export declare const ResetMissionControlResponse: ResetMissionControlResponse$Type; -declare class QueryMissionControlRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): QueryMissionControlRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryMissionControlRequest): QueryMissionControlRequest; - internalBinaryWrite(message: QueryMissionControlRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.QueryMissionControlRequest - */ -export declare const QueryMissionControlRequest: QueryMissionControlRequest$Type; -declare class QueryMissionControlResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): QueryMissionControlResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryMissionControlResponse): QueryMissionControlResponse; - internalBinaryWrite(message: QueryMissionControlResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.QueryMissionControlResponse - */ -export declare const QueryMissionControlResponse: QueryMissionControlResponse$Type; -declare class XImportMissionControlRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): XImportMissionControlRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: XImportMissionControlRequest): XImportMissionControlRequest; - internalBinaryWrite(message: XImportMissionControlRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.XImportMissionControlRequest - */ -export declare const XImportMissionControlRequest: XImportMissionControlRequest$Type; -declare class XImportMissionControlResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): XImportMissionControlResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: XImportMissionControlResponse): XImportMissionControlResponse; - internalBinaryWrite(message: XImportMissionControlResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.XImportMissionControlResponse - */ -export declare const XImportMissionControlResponse: XImportMissionControlResponse$Type; -declare class PairHistory$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PairHistory; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PairHistory): PairHistory; - internalBinaryWrite(message: PairHistory, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.PairHistory - */ -export declare const PairHistory: PairHistory$Type; -declare class PairData$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PairData; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PairData): PairData; - internalBinaryWrite(message: PairData, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.PairData - */ -export declare const PairData: PairData$Type; -declare class GetMissionControlConfigRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): GetMissionControlConfigRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetMissionControlConfigRequest): GetMissionControlConfigRequest; - internalBinaryWrite(message: GetMissionControlConfigRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.GetMissionControlConfigRequest - */ -export declare const GetMissionControlConfigRequest: GetMissionControlConfigRequest$Type; -declare class GetMissionControlConfigResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): GetMissionControlConfigResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetMissionControlConfigResponse): GetMissionControlConfigResponse; - internalBinaryWrite(message: GetMissionControlConfigResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.GetMissionControlConfigResponse - */ -export declare const GetMissionControlConfigResponse: GetMissionControlConfigResponse$Type; -declare class SetMissionControlConfigRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SetMissionControlConfigRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetMissionControlConfigRequest): SetMissionControlConfigRequest; - internalBinaryWrite(message: SetMissionControlConfigRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.SetMissionControlConfigRequest - */ -export declare const SetMissionControlConfigRequest: SetMissionControlConfigRequest$Type; -declare class SetMissionControlConfigResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SetMissionControlConfigResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetMissionControlConfigResponse): SetMissionControlConfigResponse; - internalBinaryWrite(message: SetMissionControlConfigResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.SetMissionControlConfigResponse - */ -export declare const SetMissionControlConfigResponse: SetMissionControlConfigResponse$Type; -declare class MissionControlConfig$Type extends MessageType { - constructor(); - create(value?: PartialMessage): MissionControlConfig; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MissionControlConfig): MissionControlConfig; - internalBinaryWrite(message: MissionControlConfig, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.MissionControlConfig - */ -export declare const MissionControlConfig: MissionControlConfig$Type; -declare class QueryProbabilityRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): QueryProbabilityRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryProbabilityRequest): QueryProbabilityRequest; - internalBinaryWrite(message: QueryProbabilityRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.QueryProbabilityRequest - */ -export declare const QueryProbabilityRequest: QueryProbabilityRequest$Type; -declare class QueryProbabilityResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): QueryProbabilityResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryProbabilityResponse): QueryProbabilityResponse; - internalBinaryWrite(message: QueryProbabilityResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.QueryProbabilityResponse - */ -export declare const QueryProbabilityResponse: QueryProbabilityResponse$Type; -declare class BuildRouteRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): BuildRouteRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BuildRouteRequest): BuildRouteRequest; - internalBinaryWrite(message: BuildRouteRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.BuildRouteRequest - */ -export declare const BuildRouteRequest: BuildRouteRequest$Type; -declare class BuildRouteResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): BuildRouteResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BuildRouteResponse): BuildRouteResponse; - internalBinaryWrite(message: BuildRouteResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.BuildRouteResponse - */ -export declare const BuildRouteResponse: BuildRouteResponse$Type; -declare class SubscribeHtlcEventsRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SubscribeHtlcEventsRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscribeHtlcEventsRequest): SubscribeHtlcEventsRequest; - internalBinaryWrite(message: SubscribeHtlcEventsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.SubscribeHtlcEventsRequest - */ -export declare const SubscribeHtlcEventsRequest: SubscribeHtlcEventsRequest$Type; -declare class HtlcEvent$Type extends MessageType { - constructor(); - create(value?: PartialMessage): HtlcEvent; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: HtlcEvent): HtlcEvent; - internalBinaryWrite(message: HtlcEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.HtlcEvent - */ -export declare const HtlcEvent: HtlcEvent$Type; -declare class HtlcInfo$Type extends MessageType { - constructor(); - create(value?: PartialMessage): HtlcInfo; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: HtlcInfo): HtlcInfo; - internalBinaryWrite(message: HtlcInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.HtlcInfo - */ -export declare const HtlcInfo: HtlcInfo$Type; -declare class ForwardEvent$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ForwardEvent; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ForwardEvent): ForwardEvent; - internalBinaryWrite(message: ForwardEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.ForwardEvent - */ -export declare const ForwardEvent: ForwardEvent$Type; -declare class ForwardFailEvent$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ForwardFailEvent; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ForwardFailEvent): ForwardFailEvent; - internalBinaryWrite(message: ForwardFailEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.ForwardFailEvent - */ -export declare const ForwardFailEvent: ForwardFailEvent$Type; -declare class SettleEvent$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SettleEvent; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SettleEvent): SettleEvent; - internalBinaryWrite(message: SettleEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.SettleEvent - */ -export declare const SettleEvent: SettleEvent$Type; -declare class FinalHtlcEvent$Type extends MessageType { - constructor(); - create(value?: PartialMessage): FinalHtlcEvent; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FinalHtlcEvent): FinalHtlcEvent; - internalBinaryWrite(message: FinalHtlcEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.FinalHtlcEvent - */ -export declare const FinalHtlcEvent: FinalHtlcEvent$Type; -declare class SubscribedEvent$Type extends MessageType { - constructor(); - create(value?: PartialMessage): SubscribedEvent; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscribedEvent): SubscribedEvent; - internalBinaryWrite(message: SubscribedEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.SubscribedEvent - */ -export declare const SubscribedEvent: SubscribedEvent$Type; -declare class LinkFailEvent$Type extends MessageType { - constructor(); - create(value?: PartialMessage): LinkFailEvent; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LinkFailEvent): LinkFailEvent; - internalBinaryWrite(message: LinkFailEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.LinkFailEvent - */ -export declare const LinkFailEvent: LinkFailEvent$Type; -declare class PaymentStatus$Type extends MessageType { - constructor(); - create(value?: PartialMessage): PaymentStatus; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PaymentStatus): PaymentStatus; - internalBinaryWrite(message: PaymentStatus, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.PaymentStatus - */ -export declare const PaymentStatus: PaymentStatus$Type; -declare class CircuitKey$Type extends MessageType { - constructor(); - create(value?: PartialMessage): CircuitKey; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CircuitKey): CircuitKey; - internalBinaryWrite(message: CircuitKey, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.CircuitKey - */ -export declare const CircuitKey: CircuitKey$Type; -declare class ForwardHtlcInterceptRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ForwardHtlcInterceptRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ForwardHtlcInterceptRequest): ForwardHtlcInterceptRequest; - private binaryReadMap8; - internalBinaryWrite(message: ForwardHtlcInterceptRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.ForwardHtlcInterceptRequest - */ -export declare const ForwardHtlcInterceptRequest: ForwardHtlcInterceptRequest$Type; -declare class ForwardHtlcInterceptResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): ForwardHtlcInterceptResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ForwardHtlcInterceptResponse): ForwardHtlcInterceptResponse; - internalBinaryWrite(message: ForwardHtlcInterceptResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.ForwardHtlcInterceptResponse - */ -export declare const ForwardHtlcInterceptResponse: ForwardHtlcInterceptResponse$Type; -declare class UpdateChanStatusRequest$Type extends MessageType { - constructor(); - create(value?: PartialMessage): UpdateChanStatusRequest; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateChanStatusRequest): UpdateChanStatusRequest; - internalBinaryWrite(message: UpdateChanStatusRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.UpdateChanStatusRequest - */ -export declare const UpdateChanStatusRequest: UpdateChanStatusRequest$Type; -declare class UpdateChanStatusResponse$Type extends MessageType { - constructor(); - create(value?: PartialMessage): UpdateChanStatusResponse; - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateChanStatusResponse): UpdateChanStatusResponse; - internalBinaryWrite(message: UpdateChanStatusResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; -} -/** - * @generated MessageType for protobuf message routerrpc.UpdateChanStatusResponse - */ -export declare const UpdateChanStatusResponse: UpdateChanStatusResponse$Type; -/** - * @generated ServiceType for protobuf service routerrpc.Router - */ -export declare const Router: any; -export {}; diff --git a/proto/lnd/router.js b/proto/lnd/router.js deleted file mode 100644 index de199014..00000000 --- a/proto/lnd/router.js +++ /dev/null @@ -1,2519 +0,0 @@ -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "router.proto" (package "routerrpc", syntax proto3) -// tslint:disable -// @generated by protobuf-ts 2.8.1 with parameter long_type_number,output_javascript -// @generated from protobuf file "router.proto" (package "routerrpc", syntax proto3) -// tslint:disable -import { Payment } from "./lightning.js"; -import { ServiceType } from "@protobuf-ts/runtime-rpc"; -import { UnknownFieldHandler } from "@protobuf-ts/runtime"; -import { WireType } from "@protobuf-ts/runtime"; -import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; -import { MessageType } from "@protobuf-ts/runtime"; -import { ChannelPoint } from "./lightning.js"; -import { HTLCAttempt } from "./lightning.js"; -import { Failure_FailureCode } from "./lightning.js"; -import { Failure } from "./lightning.js"; -import { Route } from "./lightning.js"; -import { FeatureBit } from "./lightning.js"; -import { RouteHint } from "./lightning.js"; -/** - * @generated from protobuf enum routerrpc.HtlcEvent.EventType - */ -export var HtlcEvent_EventType; -(function (HtlcEvent_EventType) { - /** - * @generated from protobuf enum value: UNKNOWN = 0; - */ - HtlcEvent_EventType[HtlcEvent_EventType["UNKNOWN"] = 0] = "UNKNOWN"; - /** - * @generated from protobuf enum value: SEND = 1; - */ - HtlcEvent_EventType[HtlcEvent_EventType["SEND"] = 1] = "SEND"; - /** - * @generated from protobuf enum value: RECEIVE = 2; - */ - HtlcEvent_EventType[HtlcEvent_EventType["RECEIVE"] = 2] = "RECEIVE"; - /** - * @generated from protobuf enum value: FORWARD = 3; - */ - HtlcEvent_EventType[HtlcEvent_EventType["FORWARD"] = 3] = "FORWARD"; -})(HtlcEvent_EventType || (HtlcEvent_EventType = {})); -/** - * @generated from protobuf enum routerrpc.FailureDetail - */ -export var FailureDetail; -(function (FailureDetail) { - /** - * @generated from protobuf enum value: UNKNOWN = 0; - */ - FailureDetail[FailureDetail["UNKNOWN"] = 0] = "UNKNOWN"; - /** - * @generated from protobuf enum value: NO_DETAIL = 1; - */ - FailureDetail[FailureDetail["NO_DETAIL"] = 1] = "NO_DETAIL"; - /** - * @generated from protobuf enum value: ONION_DECODE = 2; - */ - FailureDetail[FailureDetail["ONION_DECODE"] = 2] = "ONION_DECODE"; - /** - * @generated from protobuf enum value: LINK_NOT_ELIGIBLE = 3; - */ - FailureDetail[FailureDetail["LINK_NOT_ELIGIBLE"] = 3] = "LINK_NOT_ELIGIBLE"; - /** - * @generated from protobuf enum value: ON_CHAIN_TIMEOUT = 4; - */ - FailureDetail[FailureDetail["ON_CHAIN_TIMEOUT"] = 4] = "ON_CHAIN_TIMEOUT"; - /** - * @generated from protobuf enum value: HTLC_EXCEEDS_MAX = 5; - */ - FailureDetail[FailureDetail["HTLC_EXCEEDS_MAX"] = 5] = "HTLC_EXCEEDS_MAX"; - /** - * @generated from protobuf enum value: INSUFFICIENT_BALANCE = 6; - */ - FailureDetail[FailureDetail["INSUFFICIENT_BALANCE"] = 6] = "INSUFFICIENT_BALANCE"; - /** - * @generated from protobuf enum value: INCOMPLETE_FORWARD = 7; - */ - FailureDetail[FailureDetail["INCOMPLETE_FORWARD"] = 7] = "INCOMPLETE_FORWARD"; - /** - * @generated from protobuf enum value: HTLC_ADD_FAILED = 8; - */ - FailureDetail[FailureDetail["HTLC_ADD_FAILED"] = 8] = "HTLC_ADD_FAILED"; - /** - * @generated from protobuf enum value: FORWARDS_DISABLED = 9; - */ - FailureDetail[FailureDetail["FORWARDS_DISABLED"] = 9] = "FORWARDS_DISABLED"; - /** - * @generated from protobuf enum value: INVOICE_CANCELED = 10; - */ - FailureDetail[FailureDetail["INVOICE_CANCELED"] = 10] = "INVOICE_CANCELED"; - /** - * @generated from protobuf enum value: INVOICE_UNDERPAID = 11; - */ - FailureDetail[FailureDetail["INVOICE_UNDERPAID"] = 11] = "INVOICE_UNDERPAID"; - /** - * @generated from protobuf enum value: INVOICE_EXPIRY_TOO_SOON = 12; - */ - FailureDetail[FailureDetail["INVOICE_EXPIRY_TOO_SOON"] = 12] = "INVOICE_EXPIRY_TOO_SOON"; - /** - * @generated from protobuf enum value: INVOICE_NOT_OPEN = 13; - */ - FailureDetail[FailureDetail["INVOICE_NOT_OPEN"] = 13] = "INVOICE_NOT_OPEN"; - /** - * @generated from protobuf enum value: MPP_INVOICE_TIMEOUT = 14; - */ - FailureDetail[FailureDetail["MPP_INVOICE_TIMEOUT"] = 14] = "MPP_INVOICE_TIMEOUT"; - /** - * @generated from protobuf enum value: ADDRESS_MISMATCH = 15; - */ - FailureDetail[FailureDetail["ADDRESS_MISMATCH"] = 15] = "ADDRESS_MISMATCH"; - /** - * @generated from protobuf enum value: SET_TOTAL_MISMATCH = 16; - */ - FailureDetail[FailureDetail["SET_TOTAL_MISMATCH"] = 16] = "SET_TOTAL_MISMATCH"; - /** - * @generated from protobuf enum value: SET_TOTAL_TOO_LOW = 17; - */ - FailureDetail[FailureDetail["SET_TOTAL_TOO_LOW"] = 17] = "SET_TOTAL_TOO_LOW"; - /** - * @generated from protobuf enum value: SET_OVERPAID = 18; - */ - FailureDetail[FailureDetail["SET_OVERPAID"] = 18] = "SET_OVERPAID"; - /** - * @generated from protobuf enum value: UNKNOWN_INVOICE = 19; - */ - FailureDetail[FailureDetail["UNKNOWN_INVOICE"] = 19] = "UNKNOWN_INVOICE"; - /** - * @generated from protobuf enum value: INVALID_KEYSEND = 20; - */ - FailureDetail[FailureDetail["INVALID_KEYSEND"] = 20] = "INVALID_KEYSEND"; - /** - * @generated from protobuf enum value: MPP_IN_PROGRESS = 21; - */ - FailureDetail[FailureDetail["MPP_IN_PROGRESS"] = 21] = "MPP_IN_PROGRESS"; - /** - * @generated from protobuf enum value: CIRCULAR_ROUTE = 22; - */ - FailureDetail[FailureDetail["CIRCULAR_ROUTE"] = 22] = "CIRCULAR_ROUTE"; -})(FailureDetail || (FailureDetail = {})); -/** - * @generated from protobuf enum routerrpc.PaymentState - */ -export var PaymentState; -(function (PaymentState) { - /** - * - * Payment is still in flight. - * - * @generated from protobuf enum value: IN_FLIGHT = 0; - */ - PaymentState[PaymentState["IN_FLIGHT"] = 0] = "IN_FLIGHT"; - /** - * - * Payment completed successfully. - * - * @generated from protobuf enum value: SUCCEEDED = 1; - */ - PaymentState[PaymentState["SUCCEEDED"] = 1] = "SUCCEEDED"; - /** - * - * There are more routes to try, but the payment timeout was exceeded. - * - * @generated from protobuf enum value: FAILED_TIMEOUT = 2; - */ - PaymentState[PaymentState["FAILED_TIMEOUT"] = 2] = "FAILED_TIMEOUT"; - /** - * - * All possible routes were tried and failed permanently. Or were no - * routes to the destination at all. - * - * @generated from protobuf enum value: FAILED_NO_ROUTE = 3; - */ - PaymentState[PaymentState["FAILED_NO_ROUTE"] = 3] = "FAILED_NO_ROUTE"; - /** - * - * A non-recoverable error has occurred. - * - * @generated from protobuf enum value: FAILED_ERROR = 4; - */ - PaymentState[PaymentState["FAILED_ERROR"] = 4] = "FAILED_ERROR"; - /** - * - * Payment details incorrect (unknown hash, invalid amt or - * invalid final cltv delta) - * - * @generated from protobuf enum value: FAILED_INCORRECT_PAYMENT_DETAILS = 5; - */ - PaymentState[PaymentState["FAILED_INCORRECT_PAYMENT_DETAILS"] = 5] = "FAILED_INCORRECT_PAYMENT_DETAILS"; - /** - * - * Insufficient local balance. - * - * @generated from protobuf enum value: FAILED_INSUFFICIENT_BALANCE = 6; - */ - PaymentState[PaymentState["FAILED_INSUFFICIENT_BALANCE"] = 6] = "FAILED_INSUFFICIENT_BALANCE"; -})(PaymentState || (PaymentState = {})); -/** - * @generated from protobuf enum routerrpc.ResolveHoldForwardAction - */ -export var ResolveHoldForwardAction; -(function (ResolveHoldForwardAction) { - /** - * @generated from protobuf enum value: SETTLE = 0; - */ - ResolveHoldForwardAction[ResolveHoldForwardAction["SETTLE"] = 0] = "SETTLE"; - /** - * @generated from protobuf enum value: FAIL = 1; - */ - ResolveHoldForwardAction[ResolveHoldForwardAction["FAIL"] = 1] = "FAIL"; - /** - * @generated from protobuf enum value: RESUME = 2; - */ - ResolveHoldForwardAction[ResolveHoldForwardAction["RESUME"] = 2] = "RESUME"; -})(ResolveHoldForwardAction || (ResolveHoldForwardAction = {})); -/** - * @generated from protobuf enum routerrpc.ChanStatusAction - */ -export var ChanStatusAction; -(function (ChanStatusAction) { - /** - * @generated from protobuf enum value: ENABLE = 0; - */ - ChanStatusAction[ChanStatusAction["ENABLE"] = 0] = "ENABLE"; - /** - * @generated from protobuf enum value: DISABLE = 1; - */ - ChanStatusAction[ChanStatusAction["DISABLE"] = 1] = "DISABLE"; - /** - * @generated from protobuf enum value: AUTO = 2; - */ - ChanStatusAction[ChanStatusAction["AUTO"] = 2] = "AUTO"; -})(ChanStatusAction || (ChanStatusAction = {})); -// @generated message type with reflection information, may provide speed optimized methods -class SendPaymentRequest$Type extends MessageType { - constructor() { - super("routerrpc.SendPaymentRequest", [ - { no: 1, name: "dest", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "amt", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 12, name: "amt_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "payment_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 4, name: "final_cltv_delta", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 20, name: "payment_addr", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 5, name: "payment_request", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 6, name: "timeout_seconds", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 7, name: "fee_limit_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 13, name: "fee_limit_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 8, name: "outgoing_chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 19, name: "outgoing_chan_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 14, name: "last_hop_pubkey", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 9, name: "cltv_limit", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 10, name: "route_hints", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => RouteHint }, - { no: 11, name: "dest_custom_records", kind: "map", K: 4 /*ScalarType.UINT64*/, V: { kind: "scalar", T: 12 /*ScalarType.BYTES*/ } }, - { no: 15, name: "allow_self_payment", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 16, name: "dest_features", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["lnrpc.FeatureBit", FeatureBit] }, - { no: 17, name: "max_parts", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 18, name: "no_inflight_updates", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 21, name: "max_shard_size_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 22, name: "amp", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 23, name: "time_pref", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ } - ]); - } - create(value) { - const message = { dest: new Uint8Array(0), amt: 0, amtMsat: 0, paymentHash: new Uint8Array(0), finalCltvDelta: 0, paymentAddr: new Uint8Array(0), paymentRequest: "", timeoutSeconds: 0, feeLimitSat: 0, feeLimitMsat: 0, outgoingChanId: "0", outgoingChanIds: [], lastHopPubkey: new Uint8Array(0), cltvLimit: 0, routeHints: [], destCustomRecords: {}, allowSelfPayment: false, destFeatures: [], maxParts: 0, noInflightUpdates: false, maxShardSizeMsat: 0, amp: false, timePref: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes dest */ 1: - message.dest = reader.bytes(); - break; - case /* int64 amt */ 2: - message.amt = reader.int64().toNumber(); - break; - case /* int64 amt_msat */ 12: - message.amtMsat = reader.int64().toNumber(); - break; - case /* bytes payment_hash */ 3: - message.paymentHash = reader.bytes(); - break; - case /* int32 final_cltv_delta */ 4: - message.finalCltvDelta = reader.int32(); - break; - case /* bytes payment_addr */ 20: - message.paymentAddr = reader.bytes(); - break; - case /* string payment_request */ 5: - message.paymentRequest = reader.string(); - break; - case /* int32 timeout_seconds */ 6: - message.timeoutSeconds = reader.int32(); - break; - case /* int64 fee_limit_sat */ 7: - message.feeLimitSat = reader.int64().toNumber(); - break; - case /* int64 fee_limit_msat */ 13: - message.feeLimitMsat = reader.int64().toNumber(); - break; - case /* uint64 outgoing_chan_id = 8 [deprecated = true, jstype = JS_STRING];*/ 8: - message.outgoingChanId = reader.uint64().toString(); - break; - case /* repeated uint64 outgoing_chan_ids */ 19: - if (wireType === WireType.LengthDelimited) - for (let e = reader.int32() + reader.pos; reader.pos < e;) - message.outgoingChanIds.push(reader.uint64().toNumber()); - else - message.outgoingChanIds.push(reader.uint64().toNumber()); - break; - case /* bytes last_hop_pubkey */ 14: - message.lastHopPubkey = reader.bytes(); - break; - case /* int32 cltv_limit */ 9: - message.cltvLimit = reader.int32(); - break; - case /* repeated lnrpc.RouteHint route_hints */ 10: - message.routeHints.push(RouteHint.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* map dest_custom_records */ 11: - this.binaryReadMap11(message.destCustomRecords, reader, options); - break; - case /* bool allow_self_payment */ 15: - message.allowSelfPayment = reader.bool(); - break; - case /* repeated lnrpc.FeatureBit dest_features */ 16: - if (wireType === WireType.LengthDelimited) - for (let e = reader.int32() + reader.pos; reader.pos < e;) - message.destFeatures.push(reader.int32()); - else - message.destFeatures.push(reader.int32()); - break; - case /* uint32 max_parts */ 17: - message.maxParts = reader.uint32(); - break; - case /* bool no_inflight_updates */ 18: - message.noInflightUpdates = reader.bool(); - break; - case /* uint64 max_shard_size_msat */ 21: - message.maxShardSizeMsat = reader.uint64().toNumber(); - break; - case /* bool amp */ 22: - message.amp = reader.bool(); - break; - case /* double time_pref */ 23: - message.timePref = reader.double(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap11(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint64().toString(); - break; - case 2: - val = reader.bytes(); - break; - default: throw new globalThis.Error("unknown map entry field for field routerrpc.SendPaymentRequest.dest_custom_records"); - } - } - map[key ?? "0"] = val ?? new Uint8Array(0); - } - internalBinaryWrite(message, writer, options) { - /* bytes dest = 1; */ - if (message.dest.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.dest); - /* int64 amt = 2; */ - if (message.amt !== 0) - writer.tag(2, WireType.Varint).int64(message.amt); - /* int64 amt_msat = 12; */ - if (message.amtMsat !== 0) - writer.tag(12, WireType.Varint).int64(message.amtMsat); - /* bytes payment_hash = 3; */ - if (message.paymentHash.length) - writer.tag(3, WireType.LengthDelimited).bytes(message.paymentHash); - /* int32 final_cltv_delta = 4; */ - if (message.finalCltvDelta !== 0) - writer.tag(4, WireType.Varint).int32(message.finalCltvDelta); - /* bytes payment_addr = 20; */ - if (message.paymentAddr.length) - writer.tag(20, WireType.LengthDelimited).bytes(message.paymentAddr); - /* string payment_request = 5; */ - if (message.paymentRequest !== "") - writer.tag(5, WireType.LengthDelimited).string(message.paymentRequest); - /* int32 timeout_seconds = 6; */ - if (message.timeoutSeconds !== 0) - writer.tag(6, WireType.Varint).int32(message.timeoutSeconds); - /* int64 fee_limit_sat = 7; */ - if (message.feeLimitSat !== 0) - writer.tag(7, WireType.Varint).int64(message.feeLimitSat); - /* int64 fee_limit_msat = 13; */ - if (message.feeLimitMsat !== 0) - writer.tag(13, WireType.Varint).int64(message.feeLimitMsat); - /* uint64 outgoing_chan_id = 8 [deprecated = true, jstype = JS_STRING]; */ - if (message.outgoingChanId !== "0") - writer.tag(8, WireType.Varint).uint64(message.outgoingChanId); - /* repeated uint64 outgoing_chan_ids = 19; */ - if (message.outgoingChanIds.length) { - writer.tag(19, WireType.LengthDelimited).fork(); - for (let i = 0; i < message.outgoingChanIds.length; i++) - writer.uint64(message.outgoingChanIds[i]); - writer.join(); - } - /* bytes last_hop_pubkey = 14; */ - if (message.lastHopPubkey.length) - writer.tag(14, WireType.LengthDelimited).bytes(message.lastHopPubkey); - /* int32 cltv_limit = 9; */ - if (message.cltvLimit !== 0) - writer.tag(9, WireType.Varint).int32(message.cltvLimit); - /* repeated lnrpc.RouteHint route_hints = 10; */ - for (let i = 0; i < message.routeHints.length; i++) - RouteHint.internalBinaryWrite(message.routeHints[i], writer.tag(10, WireType.LengthDelimited).fork(), options).join(); - /* map dest_custom_records = 11; */ - for (let k of Object.keys(message.destCustomRecords)) - writer.tag(11, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint64(k).tag(2, WireType.LengthDelimited).bytes(message.destCustomRecords[k]).join(); - /* bool allow_self_payment = 15; */ - if (message.allowSelfPayment !== false) - writer.tag(15, WireType.Varint).bool(message.allowSelfPayment); - /* repeated lnrpc.FeatureBit dest_features = 16; */ - if (message.destFeatures.length) { - writer.tag(16, WireType.LengthDelimited).fork(); - for (let i = 0; i < message.destFeatures.length; i++) - writer.int32(message.destFeatures[i]); - writer.join(); - } - /* uint32 max_parts = 17; */ - if (message.maxParts !== 0) - writer.tag(17, WireType.Varint).uint32(message.maxParts); - /* bool no_inflight_updates = 18; */ - if (message.noInflightUpdates !== false) - writer.tag(18, WireType.Varint).bool(message.noInflightUpdates); - /* uint64 max_shard_size_msat = 21; */ - if (message.maxShardSizeMsat !== 0) - writer.tag(21, WireType.Varint).uint64(message.maxShardSizeMsat); - /* bool amp = 22; */ - if (message.amp !== false) - writer.tag(22, WireType.Varint).bool(message.amp); - /* double time_pref = 23; */ - if (message.timePref !== 0) - writer.tag(23, WireType.Bit64).double(message.timePref); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.SendPaymentRequest - */ -export const SendPaymentRequest = new SendPaymentRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class TrackPaymentRequest$Type extends MessageType { - constructor() { - super("routerrpc.TrackPaymentRequest", [ - { no: 1, name: "payment_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "no_inflight_updates", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { paymentHash: new Uint8Array(0), noInflightUpdates: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes payment_hash */ 1: - message.paymentHash = reader.bytes(); - break; - case /* bool no_inflight_updates */ 2: - message.noInflightUpdates = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes payment_hash = 1; */ - if (message.paymentHash.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.paymentHash); - /* bool no_inflight_updates = 2; */ - if (message.noInflightUpdates !== false) - writer.tag(2, WireType.Varint).bool(message.noInflightUpdates); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.TrackPaymentRequest - */ -export const TrackPaymentRequest = new TrackPaymentRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class TrackPaymentsRequest$Type extends MessageType { - constructor() { - super("routerrpc.TrackPaymentsRequest", [ - { no: 1, name: "no_inflight_updates", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { noInflightUpdates: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool no_inflight_updates */ 1: - message.noInflightUpdates = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool no_inflight_updates = 1; */ - if (message.noInflightUpdates !== false) - writer.tag(1, WireType.Varint).bool(message.noInflightUpdates); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.TrackPaymentsRequest - */ -export const TrackPaymentsRequest = new TrackPaymentsRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class RouteFeeRequest$Type extends MessageType { - constructor() { - super("routerrpc.RouteFeeRequest", [ - { no: 1, name: "dest", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "amt_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { dest: new Uint8Array(0), amtSat: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes dest */ 1: - message.dest = reader.bytes(); - break; - case /* int64 amt_sat */ 2: - message.amtSat = reader.int64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes dest = 1; */ - if (message.dest.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.dest); - /* int64 amt_sat = 2; */ - if (message.amtSat !== 0) - writer.tag(2, WireType.Varint).int64(message.amtSat); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.RouteFeeRequest - */ -export const RouteFeeRequest = new RouteFeeRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class RouteFeeResponse$Type extends MessageType { - constructor() { - super("routerrpc.RouteFeeResponse", [ - { no: 1, name: "routing_fee_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "time_lock_delay", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { routingFeeMsat: 0, timeLockDelay: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* int64 routing_fee_msat */ 1: - message.routingFeeMsat = reader.int64().toNumber(); - break; - case /* int64 time_lock_delay */ 2: - message.timeLockDelay = reader.int64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* int64 routing_fee_msat = 1; */ - if (message.routingFeeMsat !== 0) - writer.tag(1, WireType.Varint).int64(message.routingFeeMsat); - /* int64 time_lock_delay = 2; */ - if (message.timeLockDelay !== 0) - writer.tag(2, WireType.Varint).int64(message.timeLockDelay); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.RouteFeeResponse - */ -export const RouteFeeResponse = new RouteFeeResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SendToRouteRequest$Type extends MessageType { - constructor() { - super("routerrpc.SendToRouteRequest", [ - { no: 1, name: "payment_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "route", kind: "message", T: () => Route }, - { no: 3, name: "skip_temp_err", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { paymentHash: new Uint8Array(0), skipTempErr: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes payment_hash */ 1: - message.paymentHash = reader.bytes(); - break; - case /* lnrpc.Route route */ 2: - message.route = Route.internalBinaryRead(reader, reader.uint32(), options, message.route); - break; - case /* bool skip_temp_err */ 3: - message.skipTempErr = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes payment_hash = 1; */ - if (message.paymentHash.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.paymentHash); - /* lnrpc.Route route = 2; */ - if (message.route) - Route.internalBinaryWrite(message.route, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - /* bool skip_temp_err = 3; */ - if (message.skipTempErr !== false) - writer.tag(3, WireType.Varint).bool(message.skipTempErr); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.SendToRouteRequest - */ -export const SendToRouteRequest = new SendToRouteRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SendToRouteResponse$Type extends MessageType { - constructor() { - super("routerrpc.SendToRouteResponse", [ - { no: 1, name: "preimage", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "failure", kind: "message", T: () => Failure } - ]); - } - create(value) { - const message = { preimage: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes preimage */ 1: - message.preimage = reader.bytes(); - break; - case /* lnrpc.Failure failure */ 2: - message.failure = Failure.internalBinaryRead(reader, reader.uint32(), options, message.failure); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes preimage = 1; */ - if (message.preimage.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.preimage); - /* lnrpc.Failure failure = 2; */ - if (message.failure) - Failure.internalBinaryWrite(message.failure, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.SendToRouteResponse - */ -export const SendToRouteResponse = new SendToRouteResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ResetMissionControlRequest$Type extends MessageType { - constructor() { - super("routerrpc.ResetMissionControlRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.ResetMissionControlRequest - */ -export const ResetMissionControlRequest = new ResetMissionControlRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ResetMissionControlResponse$Type extends MessageType { - constructor() { - super("routerrpc.ResetMissionControlResponse", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.ResetMissionControlResponse - */ -export const ResetMissionControlResponse = new ResetMissionControlResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class QueryMissionControlRequest$Type extends MessageType { - constructor() { - super("routerrpc.QueryMissionControlRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.QueryMissionControlRequest - */ -export const QueryMissionControlRequest = new QueryMissionControlRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class QueryMissionControlResponse$Type extends MessageType { - constructor() { - super("routerrpc.QueryMissionControlResponse", [ - { no: 2, name: "pairs", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PairHistory } - ]); - } - create(value) { - const message = { pairs: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated routerrpc.PairHistory pairs */ 2: - message.pairs.push(PairHistory.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated routerrpc.PairHistory pairs = 2; */ - for (let i = 0; i < message.pairs.length; i++) - PairHistory.internalBinaryWrite(message.pairs[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.QueryMissionControlResponse - */ -export const QueryMissionControlResponse = new QueryMissionControlResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class XImportMissionControlRequest$Type extends MessageType { - constructor() { - super("routerrpc.XImportMissionControlRequest", [ - { no: 1, name: "pairs", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PairHistory }, - { no: 2, name: "force", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { pairs: [], force: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated routerrpc.PairHistory pairs */ 1: - message.pairs.push(PairHistory.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* bool force */ 2: - message.force = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* repeated routerrpc.PairHistory pairs = 1; */ - for (let i = 0; i < message.pairs.length; i++) - PairHistory.internalBinaryWrite(message.pairs[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* bool force = 2; */ - if (message.force !== false) - writer.tag(2, WireType.Varint).bool(message.force); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.XImportMissionControlRequest - */ -export const XImportMissionControlRequest = new XImportMissionControlRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class XImportMissionControlResponse$Type extends MessageType { - constructor() { - super("routerrpc.XImportMissionControlResponse", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.XImportMissionControlResponse - */ -export const XImportMissionControlResponse = new XImportMissionControlResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PairHistory$Type extends MessageType { - constructor() { - super("routerrpc.PairHistory", [ - { no: 1, name: "node_from", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "node_to", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 7, name: "history", kind: "message", T: () => PairData } - ]); - } - create(value) { - const message = { nodeFrom: new Uint8Array(0), nodeTo: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes node_from */ 1: - message.nodeFrom = reader.bytes(); - break; - case /* bytes node_to */ 2: - message.nodeTo = reader.bytes(); - break; - case /* routerrpc.PairData history */ 7: - message.history = PairData.internalBinaryRead(reader, reader.uint32(), options, message.history); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes node_from = 1; */ - if (message.nodeFrom.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.nodeFrom); - /* bytes node_to = 2; */ - if (message.nodeTo.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.nodeTo); - /* routerrpc.PairData history = 7; */ - if (message.history) - PairData.internalBinaryWrite(message.history, writer.tag(7, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.PairHistory - */ -export const PairHistory = new PairHistory$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PairData$Type extends MessageType { - constructor() { - super("routerrpc.PairData", [ - { no: 1, name: "fail_time", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "fail_amt_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "fail_amt_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "success_time", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "success_amt_sat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 7, name: "success_amt_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { failTime: 0, failAmtSat: 0, failAmtMsat: 0, successTime: 0, successAmtSat: 0, successAmtMsat: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* int64 fail_time */ 1: - message.failTime = reader.int64().toNumber(); - break; - case /* int64 fail_amt_sat */ 2: - message.failAmtSat = reader.int64().toNumber(); - break; - case /* int64 fail_amt_msat */ 4: - message.failAmtMsat = reader.int64().toNumber(); - break; - case /* int64 success_time */ 5: - message.successTime = reader.int64().toNumber(); - break; - case /* int64 success_amt_sat */ 6: - message.successAmtSat = reader.int64().toNumber(); - break; - case /* int64 success_amt_msat */ 7: - message.successAmtMsat = reader.int64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* int64 fail_time = 1; */ - if (message.failTime !== 0) - writer.tag(1, WireType.Varint).int64(message.failTime); - /* int64 fail_amt_sat = 2; */ - if (message.failAmtSat !== 0) - writer.tag(2, WireType.Varint).int64(message.failAmtSat); - /* int64 fail_amt_msat = 4; */ - if (message.failAmtMsat !== 0) - writer.tag(4, WireType.Varint).int64(message.failAmtMsat); - /* int64 success_time = 5; */ - if (message.successTime !== 0) - writer.tag(5, WireType.Varint).int64(message.successTime); - /* int64 success_amt_sat = 6; */ - if (message.successAmtSat !== 0) - writer.tag(6, WireType.Varint).int64(message.successAmtSat); - /* int64 success_amt_msat = 7; */ - if (message.successAmtMsat !== 0) - writer.tag(7, WireType.Varint).int64(message.successAmtMsat); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.PairData - */ -export const PairData = new PairData$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class GetMissionControlConfigRequest$Type extends MessageType { - constructor() { - super("routerrpc.GetMissionControlConfigRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.GetMissionControlConfigRequest - */ -export const GetMissionControlConfigRequest = new GetMissionControlConfigRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class GetMissionControlConfigResponse$Type extends MessageType { - constructor() { - super("routerrpc.GetMissionControlConfigResponse", [ - { no: 1, name: "config", kind: "message", T: () => MissionControlConfig } - ]); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* routerrpc.MissionControlConfig config */ 1: - message.config = MissionControlConfig.internalBinaryRead(reader, reader.uint32(), options, message.config); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* routerrpc.MissionControlConfig config = 1; */ - if (message.config) - MissionControlConfig.internalBinaryWrite(message.config, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.GetMissionControlConfigResponse - */ -export const GetMissionControlConfigResponse = new GetMissionControlConfigResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SetMissionControlConfigRequest$Type extends MessageType { - constructor() { - super("routerrpc.SetMissionControlConfigRequest", [ - { no: 1, name: "config", kind: "message", T: () => MissionControlConfig } - ]); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* routerrpc.MissionControlConfig config */ 1: - message.config = MissionControlConfig.internalBinaryRead(reader, reader.uint32(), options, message.config); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* routerrpc.MissionControlConfig config = 1; */ - if (message.config) - MissionControlConfig.internalBinaryWrite(message.config, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.SetMissionControlConfigRequest - */ -export const SetMissionControlConfigRequest = new SetMissionControlConfigRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SetMissionControlConfigResponse$Type extends MessageType { - constructor() { - super("routerrpc.SetMissionControlConfigResponse", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.SetMissionControlConfigResponse - */ -export const SetMissionControlConfigResponse = new SetMissionControlConfigResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class MissionControlConfig$Type extends MessageType { - constructor() { - super("routerrpc.MissionControlConfig", [ - { no: 1, name: "half_life_seconds", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "hop_probability", kind: "scalar", T: 2 /*ScalarType.FLOAT*/ }, - { no: 3, name: "weight", kind: "scalar", T: 2 /*ScalarType.FLOAT*/ }, - { no: 4, name: "maximum_payment_results", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 5, name: "minimum_failure_relax_interval", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { halfLifeSeconds: 0, hopProbability: 0, weight: 0, maximumPaymentResults: 0, minimumFailureRelaxInterval: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 half_life_seconds */ 1: - message.halfLifeSeconds = reader.uint64().toNumber(); - break; - case /* float hop_probability */ 2: - message.hopProbability = reader.float(); - break; - case /* float weight */ 3: - message.weight = reader.float(); - break; - case /* uint32 maximum_payment_results */ 4: - message.maximumPaymentResults = reader.uint32(); - break; - case /* uint64 minimum_failure_relax_interval */ 5: - message.minimumFailureRelaxInterval = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 half_life_seconds = 1; */ - if (message.halfLifeSeconds !== 0) - writer.tag(1, WireType.Varint).uint64(message.halfLifeSeconds); - /* float hop_probability = 2; */ - if (message.hopProbability !== 0) - writer.tag(2, WireType.Bit32).float(message.hopProbability); - /* float weight = 3; */ - if (message.weight !== 0) - writer.tag(3, WireType.Bit32).float(message.weight); - /* uint32 maximum_payment_results = 4; */ - if (message.maximumPaymentResults !== 0) - writer.tag(4, WireType.Varint).uint32(message.maximumPaymentResults); - /* uint64 minimum_failure_relax_interval = 5; */ - if (message.minimumFailureRelaxInterval !== 0) - writer.tag(5, WireType.Varint).uint64(message.minimumFailureRelaxInterval); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.MissionControlConfig - */ -export const MissionControlConfig = new MissionControlConfig$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class QueryProbabilityRequest$Type extends MessageType { - constructor() { - super("routerrpc.QueryProbabilityRequest", [ - { no: 1, name: "from_node", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 2, name: "to_node", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 3, name: "amt_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { fromNode: new Uint8Array(0), toNode: new Uint8Array(0), amtMsat: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes from_node */ 1: - message.fromNode = reader.bytes(); - break; - case /* bytes to_node */ 2: - message.toNode = reader.bytes(); - break; - case /* int64 amt_msat */ 3: - message.amtMsat = reader.int64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes from_node = 1; */ - if (message.fromNode.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.fromNode); - /* bytes to_node = 2; */ - if (message.toNode.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.toNode); - /* int64 amt_msat = 3; */ - if (message.amtMsat !== 0) - writer.tag(3, WireType.Varint).int64(message.amtMsat); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.QueryProbabilityRequest - */ -export const QueryProbabilityRequest = new QueryProbabilityRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class QueryProbabilityResponse$Type extends MessageType { - constructor() { - super("routerrpc.QueryProbabilityResponse", [ - { no: 1, name: "probability", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ }, - { no: 2, name: "history", kind: "message", T: () => PairData } - ]); - } - create(value) { - const message = { probability: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* double probability */ 1: - message.probability = reader.double(); - break; - case /* routerrpc.PairData history */ 2: - message.history = PairData.internalBinaryRead(reader, reader.uint32(), options, message.history); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* double probability = 1; */ - if (message.probability !== 0) - writer.tag(1, WireType.Bit64).double(message.probability); - /* routerrpc.PairData history = 2; */ - if (message.history) - PairData.internalBinaryWrite(message.history, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.QueryProbabilityResponse - */ -export const QueryProbabilityResponse = new QueryProbabilityResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class BuildRouteRequest$Type extends MessageType { - constructor() { - super("routerrpc.BuildRouteRequest", [ - { no: 1, name: "amt_msat", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "final_cltv_delta", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, - { no: 3, name: "outgoing_chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/ }, - { no: 4, name: "hop_pubkeys", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 12 /*ScalarType.BYTES*/ }, - { no: 5, name: "payment_addr", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { amtMsat: 0, finalCltvDelta: 0, outgoingChanId: "0", hopPubkeys: [], paymentAddr: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* int64 amt_msat */ 1: - message.amtMsat = reader.int64().toNumber(); - break; - case /* int32 final_cltv_delta */ 2: - message.finalCltvDelta = reader.int32(); - break; - case /* uint64 outgoing_chan_id = 3 [jstype = JS_STRING];*/ 3: - message.outgoingChanId = reader.uint64().toString(); - break; - case /* repeated bytes hop_pubkeys */ 4: - message.hopPubkeys.push(reader.bytes()); - break; - case /* bytes payment_addr */ 5: - message.paymentAddr = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* int64 amt_msat = 1; */ - if (message.amtMsat !== 0) - writer.tag(1, WireType.Varint).int64(message.amtMsat); - /* int32 final_cltv_delta = 2; */ - if (message.finalCltvDelta !== 0) - writer.tag(2, WireType.Varint).int32(message.finalCltvDelta); - /* uint64 outgoing_chan_id = 3 [jstype = JS_STRING]; */ - if (message.outgoingChanId !== "0") - writer.tag(3, WireType.Varint).uint64(message.outgoingChanId); - /* repeated bytes hop_pubkeys = 4; */ - for (let i = 0; i < message.hopPubkeys.length; i++) - writer.tag(4, WireType.LengthDelimited).bytes(message.hopPubkeys[i]); - /* bytes payment_addr = 5; */ - if (message.paymentAddr.length) - writer.tag(5, WireType.LengthDelimited).bytes(message.paymentAddr); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.BuildRouteRequest - */ -export const BuildRouteRequest = new BuildRouteRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class BuildRouteResponse$Type extends MessageType { - constructor() { - super("routerrpc.BuildRouteResponse", [ - { no: 1, name: "route", kind: "message", T: () => Route } - ]); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.Route route */ 1: - message.route = Route.internalBinaryRead(reader, reader.uint32(), options, message.route); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.Route route = 1; */ - if (message.route) - Route.internalBinaryWrite(message.route, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.BuildRouteResponse - */ -export const BuildRouteResponse = new BuildRouteResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SubscribeHtlcEventsRequest$Type extends MessageType { - constructor() { - super("routerrpc.SubscribeHtlcEventsRequest", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.SubscribeHtlcEventsRequest - */ -export const SubscribeHtlcEventsRequest = new SubscribeHtlcEventsRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class HtlcEvent$Type extends MessageType { - constructor() { - super("routerrpc.HtlcEvent", [ - { no: 1, name: "incoming_channel_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "outgoing_channel_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "incoming_htlc_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "outgoing_htlc_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 5, name: "timestamp_ns", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "event_type", kind: "enum", T: () => ["routerrpc.HtlcEvent.EventType", HtlcEvent_EventType] }, - { no: 7, name: "forward_event", kind: "message", oneof: "event", T: () => ForwardEvent }, - { no: 8, name: "forward_fail_event", kind: "message", oneof: "event", T: () => ForwardFailEvent }, - { no: 9, name: "settle_event", kind: "message", oneof: "event", T: () => SettleEvent }, - { no: 10, name: "link_fail_event", kind: "message", oneof: "event", T: () => LinkFailEvent }, - { no: 11, name: "subscribed_event", kind: "message", oneof: "event", T: () => SubscribedEvent }, - { no: 12, name: "final_htlc_event", kind: "message", oneof: "event", T: () => FinalHtlcEvent } - ]); - } - create(value) { - const message = { incomingChannelId: 0, outgoingChannelId: 0, incomingHtlcId: 0, outgoingHtlcId: 0, timestampNs: 0, eventType: 0, event: { oneofKind: undefined } }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 incoming_channel_id */ 1: - message.incomingChannelId = reader.uint64().toNumber(); - break; - case /* uint64 outgoing_channel_id */ 2: - message.outgoingChannelId = reader.uint64().toNumber(); - break; - case /* uint64 incoming_htlc_id */ 3: - message.incomingHtlcId = reader.uint64().toNumber(); - break; - case /* uint64 outgoing_htlc_id */ 4: - message.outgoingHtlcId = reader.uint64().toNumber(); - break; - case /* uint64 timestamp_ns */ 5: - message.timestampNs = reader.uint64().toNumber(); - break; - case /* routerrpc.HtlcEvent.EventType event_type */ 6: - message.eventType = reader.int32(); - break; - case /* routerrpc.ForwardEvent forward_event */ 7: - message.event = { - oneofKind: "forwardEvent", - forwardEvent: ForwardEvent.internalBinaryRead(reader, reader.uint32(), options, message.event.forwardEvent) - }; - break; - case /* routerrpc.ForwardFailEvent forward_fail_event */ 8: - message.event = { - oneofKind: "forwardFailEvent", - forwardFailEvent: ForwardFailEvent.internalBinaryRead(reader, reader.uint32(), options, message.event.forwardFailEvent) - }; - break; - case /* routerrpc.SettleEvent settle_event */ 9: - message.event = { - oneofKind: "settleEvent", - settleEvent: SettleEvent.internalBinaryRead(reader, reader.uint32(), options, message.event.settleEvent) - }; - break; - case /* routerrpc.LinkFailEvent link_fail_event */ 10: - message.event = { - oneofKind: "linkFailEvent", - linkFailEvent: LinkFailEvent.internalBinaryRead(reader, reader.uint32(), options, message.event.linkFailEvent) - }; - break; - case /* routerrpc.SubscribedEvent subscribed_event */ 11: - message.event = { - oneofKind: "subscribedEvent", - subscribedEvent: SubscribedEvent.internalBinaryRead(reader, reader.uint32(), options, message.event.subscribedEvent) - }; - break; - case /* routerrpc.FinalHtlcEvent final_htlc_event */ 12: - message.event = { - oneofKind: "finalHtlcEvent", - finalHtlcEvent: FinalHtlcEvent.internalBinaryRead(reader, reader.uint32(), options, message.event.finalHtlcEvent) - }; - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 incoming_channel_id = 1; */ - if (message.incomingChannelId !== 0) - writer.tag(1, WireType.Varint).uint64(message.incomingChannelId); - /* uint64 outgoing_channel_id = 2; */ - if (message.outgoingChannelId !== 0) - writer.tag(2, WireType.Varint).uint64(message.outgoingChannelId); - /* uint64 incoming_htlc_id = 3; */ - if (message.incomingHtlcId !== 0) - writer.tag(3, WireType.Varint).uint64(message.incomingHtlcId); - /* uint64 outgoing_htlc_id = 4; */ - if (message.outgoingHtlcId !== 0) - writer.tag(4, WireType.Varint).uint64(message.outgoingHtlcId); - /* uint64 timestamp_ns = 5; */ - if (message.timestampNs !== 0) - writer.tag(5, WireType.Varint).uint64(message.timestampNs); - /* routerrpc.HtlcEvent.EventType event_type = 6; */ - if (message.eventType !== 0) - writer.tag(6, WireType.Varint).int32(message.eventType); - /* routerrpc.ForwardEvent forward_event = 7; */ - if (message.event.oneofKind === "forwardEvent") - ForwardEvent.internalBinaryWrite(message.event.forwardEvent, writer.tag(7, WireType.LengthDelimited).fork(), options).join(); - /* routerrpc.ForwardFailEvent forward_fail_event = 8; */ - if (message.event.oneofKind === "forwardFailEvent") - ForwardFailEvent.internalBinaryWrite(message.event.forwardFailEvent, writer.tag(8, WireType.LengthDelimited).fork(), options).join(); - /* routerrpc.SettleEvent settle_event = 9; */ - if (message.event.oneofKind === "settleEvent") - SettleEvent.internalBinaryWrite(message.event.settleEvent, writer.tag(9, WireType.LengthDelimited).fork(), options).join(); - /* routerrpc.LinkFailEvent link_fail_event = 10; */ - if (message.event.oneofKind === "linkFailEvent") - LinkFailEvent.internalBinaryWrite(message.event.linkFailEvent, writer.tag(10, WireType.LengthDelimited).fork(), options).join(); - /* routerrpc.SubscribedEvent subscribed_event = 11; */ - if (message.event.oneofKind === "subscribedEvent") - SubscribedEvent.internalBinaryWrite(message.event.subscribedEvent, writer.tag(11, WireType.LengthDelimited).fork(), options).join(); - /* routerrpc.FinalHtlcEvent final_htlc_event = 12; */ - if (message.event.oneofKind === "finalHtlcEvent") - FinalHtlcEvent.internalBinaryWrite(message.event.finalHtlcEvent, writer.tag(12, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.HtlcEvent - */ -export const HtlcEvent = new HtlcEvent$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class HtlcInfo$Type extends MessageType { - constructor() { - super("routerrpc.HtlcInfo", [ - { no: 1, name: "incoming_timelock", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 2, name: "outgoing_timelock", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 3, name: "incoming_amt_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "outgoing_amt_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { incomingTimelock: 0, outgoingTimelock: 0, incomingAmtMsat: 0, outgoingAmtMsat: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint32 incoming_timelock */ 1: - message.incomingTimelock = reader.uint32(); - break; - case /* uint32 outgoing_timelock */ 2: - message.outgoingTimelock = reader.uint32(); - break; - case /* uint64 incoming_amt_msat */ 3: - message.incomingAmtMsat = reader.uint64().toNumber(); - break; - case /* uint64 outgoing_amt_msat */ 4: - message.outgoingAmtMsat = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint32 incoming_timelock = 1; */ - if (message.incomingTimelock !== 0) - writer.tag(1, WireType.Varint).uint32(message.incomingTimelock); - /* uint32 outgoing_timelock = 2; */ - if (message.outgoingTimelock !== 0) - writer.tag(2, WireType.Varint).uint32(message.outgoingTimelock); - /* uint64 incoming_amt_msat = 3; */ - if (message.incomingAmtMsat !== 0) - writer.tag(3, WireType.Varint).uint64(message.incomingAmtMsat); - /* uint64 outgoing_amt_msat = 4; */ - if (message.outgoingAmtMsat !== 0) - writer.tag(4, WireType.Varint).uint64(message.outgoingAmtMsat); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.HtlcInfo - */ -export const HtlcInfo = new HtlcInfo$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ForwardEvent$Type extends MessageType { - constructor() { - super("routerrpc.ForwardEvent", [ - { no: 1, name: "info", kind: "message", T: () => HtlcInfo } - ]); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* routerrpc.HtlcInfo info */ 1: - message.info = HtlcInfo.internalBinaryRead(reader, reader.uint32(), options, message.info); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* routerrpc.HtlcInfo info = 1; */ - if (message.info) - HtlcInfo.internalBinaryWrite(message.info, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.ForwardEvent - */ -export const ForwardEvent = new ForwardEvent$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ForwardFailEvent$Type extends MessageType { - constructor() { - super("routerrpc.ForwardFailEvent", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.ForwardFailEvent - */ -export const ForwardFailEvent = new ForwardFailEvent$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SettleEvent$Type extends MessageType { - constructor() { - super("routerrpc.SettleEvent", [ - { no: 1, name: "preimage", kind: "scalar", T: 12 /*ScalarType.BYTES*/ } - ]); - } - create(value) { - const message = { preimage: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bytes preimage */ 1: - message.preimage = reader.bytes(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bytes preimage = 1; */ - if (message.preimage.length) - writer.tag(1, WireType.LengthDelimited).bytes(message.preimage); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.SettleEvent - */ -export const SettleEvent = new SettleEvent$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class FinalHtlcEvent$Type extends MessageType { - constructor() { - super("routerrpc.FinalHtlcEvent", [ - { no: 1, name: "settled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, - { no: 2, name: "offchain", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } - ]); - } - create(value) { - const message = { settled: false, offchain: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* bool settled */ 1: - message.settled = reader.bool(); - break; - case /* bool offchain */ 2: - message.offchain = reader.bool(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* bool settled = 1; */ - if (message.settled !== false) - writer.tag(1, WireType.Varint).bool(message.settled); - /* bool offchain = 2; */ - if (message.offchain !== false) - writer.tag(2, WireType.Varint).bool(message.offchain); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.FinalHtlcEvent - */ -export const FinalHtlcEvent = new FinalHtlcEvent$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class SubscribedEvent$Type extends MessageType { - constructor() { - super("routerrpc.SubscribedEvent", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.SubscribedEvent - */ -export const SubscribedEvent = new SubscribedEvent$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class LinkFailEvent$Type extends MessageType { - constructor() { - super("routerrpc.LinkFailEvent", [ - { no: 1, name: "info", kind: "message", T: () => HtlcInfo }, - { no: 2, name: "wire_failure", kind: "enum", T: () => ["lnrpc.Failure.FailureCode", Failure_FailureCode] }, - { no: 3, name: "failure_detail", kind: "enum", T: () => ["routerrpc.FailureDetail", FailureDetail] }, - { no: 4, name: "failure_string", kind: "scalar", T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value) { - const message = { wireFailure: 0, failureDetail: 0, failureString: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* routerrpc.HtlcInfo info */ 1: - message.info = HtlcInfo.internalBinaryRead(reader, reader.uint32(), options, message.info); - break; - case /* lnrpc.Failure.FailureCode wire_failure */ 2: - message.wireFailure = reader.int32(); - break; - case /* routerrpc.FailureDetail failure_detail */ 3: - message.failureDetail = reader.int32(); - break; - case /* string failure_string */ 4: - message.failureString = reader.string(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* routerrpc.HtlcInfo info = 1; */ - if (message.info) - HtlcInfo.internalBinaryWrite(message.info, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* lnrpc.Failure.FailureCode wire_failure = 2; */ - if (message.wireFailure !== 0) - writer.tag(2, WireType.Varint).int32(message.wireFailure); - /* routerrpc.FailureDetail failure_detail = 3; */ - if (message.failureDetail !== 0) - writer.tag(3, WireType.Varint).int32(message.failureDetail); - /* string failure_string = 4; */ - if (message.failureString !== "") - writer.tag(4, WireType.LengthDelimited).string(message.failureString); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.LinkFailEvent - */ -export const LinkFailEvent = new LinkFailEvent$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class PaymentStatus$Type extends MessageType { - constructor() { - super("routerrpc.PaymentStatus", [ - { no: 1, name: "state", kind: "enum", T: () => ["routerrpc.PaymentState", PaymentState] }, - { no: 2, name: "preimage", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 4, name: "htlcs", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => HTLCAttempt } - ]); - } - create(value) { - const message = { state: 0, preimage: new Uint8Array(0), htlcs: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* routerrpc.PaymentState state */ 1: - message.state = reader.int32(); - break; - case /* bytes preimage */ 2: - message.preimage = reader.bytes(); - break; - case /* repeated lnrpc.HTLCAttempt htlcs */ 4: - message.htlcs.push(HTLCAttempt.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* routerrpc.PaymentState state = 1; */ - if (message.state !== 0) - writer.tag(1, WireType.Varint).int32(message.state); - /* bytes preimage = 2; */ - if (message.preimage.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.preimage); - /* repeated lnrpc.HTLCAttempt htlcs = 4; */ - for (let i = 0; i < message.htlcs.length; i++) - HTLCAttempt.internalBinaryWrite(message.htlcs[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.PaymentStatus - */ -export const PaymentStatus = new PaymentStatus$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class CircuitKey$Type extends MessageType { - constructor() { - super("routerrpc.CircuitKey", [ - { no: 1, name: "chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 2, name: "htlc_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ } - ]); - } - create(value) { - const message = { chanId: 0, htlcId: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint64 chan_id */ 1: - message.chanId = reader.uint64().toNumber(); - break; - case /* uint64 htlc_id */ 2: - message.htlcId = reader.uint64().toNumber(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* uint64 chan_id = 1; */ - if (message.chanId !== 0) - writer.tag(1, WireType.Varint).uint64(message.chanId); - /* uint64 htlc_id = 2; */ - if (message.htlcId !== 0) - writer.tag(2, WireType.Varint).uint64(message.htlcId); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.CircuitKey - */ -export const CircuitKey = new CircuitKey$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ForwardHtlcInterceptRequest$Type extends MessageType { - constructor() { - super("routerrpc.ForwardHtlcInterceptRequest", [ - { no: 1, name: "incoming_circuit_key", kind: "message", T: () => CircuitKey }, - { no: 5, name: "incoming_amount_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 6, name: "incoming_expiry", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 2, name: "payment_hash", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 7, name: "outgoing_requested_chan_id", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 3, name: "outgoing_amount_msat", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 2 /*LongType.NUMBER*/ }, - { no: 4, name: "outgoing_expiry", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, - { no: 8, name: "custom_records", kind: "map", K: 4 /*ScalarType.UINT64*/, V: { kind: "scalar", T: 12 /*ScalarType.BYTES*/ } }, - { no: 9, name: "onion_blob", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 10, name: "auto_fail_height", kind: "scalar", T: 5 /*ScalarType.INT32*/ } - ]); - } - create(value) { - const message = { incomingAmountMsat: 0, incomingExpiry: 0, paymentHash: new Uint8Array(0), outgoingRequestedChanId: 0, outgoingAmountMsat: 0, outgoingExpiry: 0, customRecords: {}, onionBlob: new Uint8Array(0), autoFailHeight: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* routerrpc.CircuitKey incoming_circuit_key */ 1: - message.incomingCircuitKey = CircuitKey.internalBinaryRead(reader, reader.uint32(), options, message.incomingCircuitKey); - break; - case /* uint64 incoming_amount_msat */ 5: - message.incomingAmountMsat = reader.uint64().toNumber(); - break; - case /* uint32 incoming_expiry */ 6: - message.incomingExpiry = reader.uint32(); - break; - case /* bytes payment_hash */ 2: - message.paymentHash = reader.bytes(); - break; - case /* uint64 outgoing_requested_chan_id */ 7: - message.outgoingRequestedChanId = reader.uint64().toNumber(); - break; - case /* uint64 outgoing_amount_msat */ 3: - message.outgoingAmountMsat = reader.uint64().toNumber(); - break; - case /* uint32 outgoing_expiry */ 4: - message.outgoingExpiry = reader.uint32(); - break; - case /* map custom_records */ 8: - this.binaryReadMap8(message.customRecords, reader, options); - break; - case /* bytes onion_blob */ 9: - message.onionBlob = reader.bytes(); - break; - case /* int32 auto_fail_height */ 10: - message.autoFailHeight = reader.int32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - binaryReadMap8(map, reader, options) { - let len = reader.uint32(), end = reader.pos + len, key, val; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case 1: - key = reader.uint64().toString(); - break; - case 2: - val = reader.bytes(); - break; - default: throw new globalThis.Error("unknown map entry field for field routerrpc.ForwardHtlcInterceptRequest.custom_records"); - } - } - map[key ?? "0"] = val ?? new Uint8Array(0); - } - internalBinaryWrite(message, writer, options) { - /* routerrpc.CircuitKey incoming_circuit_key = 1; */ - if (message.incomingCircuitKey) - CircuitKey.internalBinaryWrite(message.incomingCircuitKey, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* uint64 incoming_amount_msat = 5; */ - if (message.incomingAmountMsat !== 0) - writer.tag(5, WireType.Varint).uint64(message.incomingAmountMsat); - /* uint32 incoming_expiry = 6; */ - if (message.incomingExpiry !== 0) - writer.tag(6, WireType.Varint).uint32(message.incomingExpiry); - /* bytes payment_hash = 2; */ - if (message.paymentHash.length) - writer.tag(2, WireType.LengthDelimited).bytes(message.paymentHash); - /* uint64 outgoing_requested_chan_id = 7; */ - if (message.outgoingRequestedChanId !== 0) - writer.tag(7, WireType.Varint).uint64(message.outgoingRequestedChanId); - /* uint64 outgoing_amount_msat = 3; */ - if (message.outgoingAmountMsat !== 0) - writer.tag(3, WireType.Varint).uint64(message.outgoingAmountMsat); - /* uint32 outgoing_expiry = 4; */ - if (message.outgoingExpiry !== 0) - writer.tag(4, WireType.Varint).uint32(message.outgoingExpiry); - /* map custom_records = 8; */ - for (let k of Object.keys(message.customRecords)) - writer.tag(8, WireType.LengthDelimited).fork().tag(1, WireType.Varint).uint64(k).tag(2, WireType.LengthDelimited).bytes(message.customRecords[k]).join(); - /* bytes onion_blob = 9; */ - if (message.onionBlob.length) - writer.tag(9, WireType.LengthDelimited).bytes(message.onionBlob); - /* int32 auto_fail_height = 10; */ - if (message.autoFailHeight !== 0) - writer.tag(10, WireType.Varint).int32(message.autoFailHeight); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.ForwardHtlcInterceptRequest - */ -export const ForwardHtlcInterceptRequest = new ForwardHtlcInterceptRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class ForwardHtlcInterceptResponse$Type extends MessageType { - constructor() { - super("routerrpc.ForwardHtlcInterceptResponse", [ - { no: 1, name: "incoming_circuit_key", kind: "message", T: () => CircuitKey }, - { no: 2, name: "action", kind: "enum", T: () => ["routerrpc.ResolveHoldForwardAction", ResolveHoldForwardAction] }, - { no: 3, name: "preimage", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 4, name: "failure_message", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }, - { no: 5, name: "failure_code", kind: "enum", T: () => ["lnrpc.Failure.FailureCode", Failure_FailureCode] } - ]); - } - create(value) { - const message = { action: 0, preimage: new Uint8Array(0), failureMessage: new Uint8Array(0), failureCode: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* routerrpc.CircuitKey incoming_circuit_key */ 1: - message.incomingCircuitKey = CircuitKey.internalBinaryRead(reader, reader.uint32(), options, message.incomingCircuitKey); - break; - case /* routerrpc.ResolveHoldForwardAction action */ 2: - message.action = reader.int32(); - break; - case /* bytes preimage */ 3: - message.preimage = reader.bytes(); - break; - case /* bytes failure_message */ 4: - message.failureMessage = reader.bytes(); - break; - case /* lnrpc.Failure.FailureCode failure_code */ 5: - message.failureCode = reader.int32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* routerrpc.CircuitKey incoming_circuit_key = 1; */ - if (message.incomingCircuitKey) - CircuitKey.internalBinaryWrite(message.incomingCircuitKey, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* routerrpc.ResolveHoldForwardAction action = 2; */ - if (message.action !== 0) - writer.tag(2, WireType.Varint).int32(message.action); - /* bytes preimage = 3; */ - if (message.preimage.length) - writer.tag(3, WireType.LengthDelimited).bytes(message.preimage); - /* bytes failure_message = 4; */ - if (message.failureMessage.length) - writer.tag(4, WireType.LengthDelimited).bytes(message.failureMessage); - /* lnrpc.Failure.FailureCode failure_code = 5; */ - if (message.failureCode !== 0) - writer.tag(5, WireType.Varint).int32(message.failureCode); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.ForwardHtlcInterceptResponse - */ -export const ForwardHtlcInterceptResponse = new ForwardHtlcInterceptResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class UpdateChanStatusRequest$Type extends MessageType { - constructor() { - super("routerrpc.UpdateChanStatusRequest", [ - { no: 1, name: "chan_point", kind: "message", T: () => ChannelPoint }, - { no: 2, name: "action", kind: "enum", T: () => ["routerrpc.ChanStatusAction", ChanStatusAction] } - ]); - } - create(value) { - const message = { action: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* lnrpc.ChannelPoint chan_point */ 1: - message.chanPoint = ChannelPoint.internalBinaryRead(reader, reader.uint32(), options, message.chanPoint); - break; - case /* routerrpc.ChanStatusAction action */ 2: - message.action = reader.int32(); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message, writer, options) { - /* lnrpc.ChannelPoint chan_point = 1; */ - if (message.chanPoint) - ChannelPoint.internalBinaryWrite(message.chanPoint, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* routerrpc.ChanStatusAction action = 2; */ - if (message.action !== 0) - writer.tag(2, WireType.Varint).int32(message.action); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.UpdateChanStatusRequest - */ -export const UpdateChanStatusRequest = new UpdateChanStatusRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods -class UpdateChanStatusResponse$Type extends MessageType { - constructor() { - super("routerrpc.UpdateChanStatusResponse", []); - } - create(value) { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader, length, options, target) { - return target ?? this.create(); - } - internalBinaryWrite(message, writer, options) { - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message routerrpc.UpdateChanStatusResponse - */ -export const UpdateChanStatusResponse = new UpdateChanStatusResponse$Type(); -/** - * @generated ServiceType for protobuf service routerrpc.Router - */ -export const Router = new ServiceType("routerrpc.Router", [ - { name: "SendPaymentV2", serverStreaming: true, options: {}, I: SendPaymentRequest, O: Payment }, - { name: "TrackPaymentV2", serverStreaming: true, options: {}, I: TrackPaymentRequest, O: Payment }, - { name: "TrackPayments", serverStreaming: true, options: {}, I: TrackPaymentsRequest, O: Payment }, - { name: "EstimateRouteFee", options: {}, I: RouteFeeRequest, O: RouteFeeResponse }, - { name: "SendToRoute", options: {}, I: SendToRouteRequest, O: SendToRouteResponse }, - { name: "SendToRouteV2", options: {}, I: SendToRouteRequest, O: HTLCAttempt }, - { name: "ResetMissionControl", options: {}, I: ResetMissionControlRequest, O: ResetMissionControlResponse }, - { name: "QueryMissionControl", options: {}, I: QueryMissionControlRequest, O: QueryMissionControlResponse }, - { name: "XImportMissionControl", options: {}, I: XImportMissionControlRequest, O: XImportMissionControlResponse }, - { name: "GetMissionControlConfig", options: {}, I: GetMissionControlConfigRequest, O: GetMissionControlConfigResponse }, - { name: "SetMissionControlConfig", options: {}, I: SetMissionControlConfigRequest, O: SetMissionControlConfigResponse }, - { name: "QueryProbability", options: {}, I: QueryProbabilityRequest, O: QueryProbabilityResponse }, - { name: "BuildRoute", options: {}, I: BuildRouteRequest, O: BuildRouteResponse }, - { name: "SubscribeHtlcEvents", serverStreaming: true, options: {}, I: SubscribeHtlcEventsRequest, O: HtlcEvent }, - { name: "SendPayment", serverStreaming: true, options: {}, I: SendPaymentRequest, O: PaymentStatus }, - { name: "TrackPayment", serverStreaming: true, options: {}, I: TrackPaymentRequest, O: PaymentStatus }, - { name: "HtlcInterceptor", serverStreaming: true, clientStreaming: true, options: {}, I: ForwardHtlcInterceptResponse, O: ForwardHtlcInterceptRequest }, - { name: "UpdateChanStatus", options: {}, I: UpdateChanStatusRequest, O: UpdateChanStatusResponse } -]); diff --git a/proto/lnd/router.ts b/proto/lnd/router.ts index 745bd8c1..e4371c17 100644 --- a/proto/lnd/router.ts +++ b/proto/lnd/router.ts @@ -1,7 +1,7 @@ // @generated by protobuf-ts 2.8.1 with parameter long_type_number // @generated from protobuf file "router.proto" (package "routerrpc", syntax proto3) // tslint:disable -import { Payment } from "./lightning"; +import { Payment } from "./lightning.js"; import { ServiceType } from "@protobuf-ts/runtime-rpc"; import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; import type { IBinaryWriter } from "@protobuf-ts/runtime"; @@ -13,13 +13,13 @@ import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; -import { ChannelPoint } from "./lightning"; -import { HTLCAttempt } from "./lightning"; -import { Failure_FailureCode } from "./lightning"; -import { Failure } from "./lightning"; -import { Route } from "./lightning"; -import { FeatureBit } from "./lightning"; -import { RouteHint } from "./lightning"; +import { ChannelPoint } from "./lightning.js"; +import { HTLCAttempt } from "./lightning.js"; +import { Failure_FailureCode } from "./lightning.js"; +import { Failure } from "./lightning.js"; +import { Route } from "./lightning.js"; +import { FeatureBit } from "./lightning.js"; +import { RouteHint } from "./lightning.js"; /** * @generated from protobuf message routerrpc.SendPaymentRequest */ diff --git a/proto/protoc-gen-pub.exe b/proto/protoc-gen-pub.exe index 80ef68cbcc772e56cc2bfc168f873682db63f68f..9946f980db5d79310421c8d9f8e6a0b0f635e827 100644 GIT binary patch delta 2311819 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

9>>AbhYf}zWydqG>-8gGZ0i`rl@@c;C)w?SzD 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 {er83{re4{r@We8dQac#!TN1JYvU%_@3_Jk zzT2YS_=aYo{Wc%P;KKGjkM1c}&0NVe@yFCMHQP|u?zpCR27BL2&*AyDWroIjhncO5 z3sW}CKd@z$Qmzr)$4Ogeut+L>BEPW(YcJHY|eERWA z2UN?L{#v#dK2th-Tz5)C8B6(hXK(v0zaISD*k#dU)K&j$iq_>BEw8M6F0biav;UX( zf_&{qCfu)P&73FurSsqszwC2w&YuhD31+Z3>bS4%@3~V(SyvC3{8I_-I_W62@8}+d z<~$ppT;q&WLQ?npXQf~GVUjibAYX6anVi~o4FsA2shg;0?RTW75O z-1q5!(faI#ao-gDme-$3*|a}#mcjHnGJHXia=o6LcLfC5T3b(iy=>vhGN!rxbBgoi z>YiR$5t^c}raeDHp!bxL^?d#GqN0o|o|}qKG^y`jIDf7~Zug0E%V+RNO+9wSM*f>( zN53m;lSOmFm3#*W(QxCfFEs;FGOlE%JU(~*j}FJeXhHUsCDL2-6i&IzLa)a}VZTn@-RqDN`CYSzD_Is|$k)qeixWwt>%^yD>m3y(d z{Z_I#bJ!$DDEz_MdWaDUoaRk(HX?`f%#$ zpcRsm$2GpIwA@r|Zd>lS;W?ks_L=p|gFic))QOs&PoLFb-IwUN{-al!UgS?-mG0BV zE0t#MGBFVSzMDx|@K!6wlh>yXOWZ4C((P}$!2W%kRd9dR8|xKwwC|-&*nG8bnQAC& z8PnVEj=#!79sm5UwG5fyo_js;$^!0{33`_;fBL9KGM&9p$Mf68uWrYJwSMlcT5H!f z)vuV{5UqOf?^Lc&6&%6s^Fj)QUdgtGXL7Wx`sH|Jcdcu{|BJ6zI@|G{U)1-rX-dr^ z-H;7kyG;IkZBxA7J=OR`W#m+mEnE1jYnm0`IA&a2`f&XpKDGlpJQM7tXxOW{iw_u8+Qb}YG& z8>;>`qH3WL-?D3d3&IbUTTh#}{>|EXbIcB%ikSOi2mij~3$NGKzG0~nG?y~&`7ycH z(NAdIuH#-;!ex$J40kkHOHa;xc1{UH7j3~%K9$PpL+eDb#9pThMghPj=wAuy8P%=t_{N>D~YSm zW2`4jX}L^SWSN!w)OhOrJs}q^EA+kMwYpNnH}$*lMi)!FKK*9FduO?2W`(>FIG=d) zapU<1wo|`dZeF*pdtqv)Dw}L+&H_R8n~^78mYfS&cFBhC07EqM3fKC->n^+4?rglg z^3R7i|95?0@?+og{X@F>Kbw;wbDjpgw#=E!&8J>G;YF&}`{R}-Ra4zwz0R6&Px;-A z`zp($XIozOOZm04l5cN}6#MnlTU50k>;FGGvqm@llY{ldd*wy{n2xQPHKAu$^jy2U zsYkC?INqK+uZ(H!tP8jOmdNteRF>CUH_8d0m!J9EUG2d2`kq}r{Er)7#x9@tD&@ci zCAH`Jv6jImvAW*(%d0-cv;8x>Fo)|@nPoG}Nlu3YFKyyk!Wg&hGVKv(?cB1$*H2z1 zn^ow$c;k|zxh5y?cRjDZwZQs*$NlfKHrcwKEK|}oKEK=b=O;7UgPg0hU$Ot;zIEkt zP<@5bviw`~MEPGVb`GUG2+e;mm0% zpEq*ub-ZS>e4d=7yt};l@jX{UTK1%I{bYEyk@Li5X0>&%xE{@6=er?$|Fp zIul}9&%M|&N!BWI<8+4(b6XCvzhS9brqq48{;f+?=***ETtCaq%T%{0Njc

izE0MJ?6Q`8U4Y;;6DcpJG-PU(2M7+H2yMEoc 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%0DRU3c6gy=#dFH;UCmLRC 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


`84adW}fD>kwmd(2a0*UtVMeNoNn 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%0Do92-tS#$FE{!C}O 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

dGfVAf8=c> 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≪xAIf=S-@asiS8i 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

Y7hX+j4(_`++F`=~6;< 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

Eigb5lC$ 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�x;`flHO5l63+QCIr*B~9D?zBuSJx7VE? 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