astra-lightning 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/.github/workflows/unit-test.yml +20 -0
  2. package/CHANGELOG.md +46 -1
  3. package/README.md +2 -0
  4. package/bolt02/ids.json +1 -0
  5. package/grpc/grpc_services.json +1 -1
  6. package/grpc/protos/lightning.proto +251 -28
  7. package/grpc/protos/rfqrpc/rfq.proto +53 -5
  8. package/grpc/protos/router.proto +9 -4
  9. package/grpc/protos/routerrpc/router.proto +26 -4
  10. package/grpc/protos/{tapchannelrpc.proto → tapchannel.proto} +105 -25
  11. package/grpc/protos/tapcommon.proto +36 -0
  12. package/grpc/protos/taprootassets.proto +544 -23
  13. package/grpc/protos/walletkit.proto +78 -6
  14. package/index.js +162 -160
  15. package/lnd_methods/generic/get_height.js +1 -1
  16. package/lnd_methods/index.js +162 -160
  17. package/lnd_methods/info/constants.json +7 -0
  18. package/lnd_methods/invoices/create_invoice.js +10 -14
  19. package/lnd_methods/invoices/subscribe_to_invoice.d.ts +4 -0
  20. package/lnd_methods/invoices/subscribe_to_invoice.js +21 -21
  21. package/lnd_methods/macaroon/methods.json +4 -0
  22. package/lnd_methods/offchain/decode_asset_pay_req.d.ts +69 -28
  23. package/lnd_methods/offchain/decode_asset_pay_req.js +54 -61
  24. package/lnd_methods/offchain/get_pending_channels.d.ts +16 -0
  25. package/lnd_methods/offchain/get_pending_channels.js +6 -0
  26. package/lnd_methods/offchain/get_routing_fee_estimate.d.ts +32 -0
  27. package/lnd_methods/offchain/get_routing_fee_estimate.js +86 -0
  28. package/lnd_methods/offchain/index.d.ts +60 -60
  29. package/lnd_methods/offchain/index.js +6 -4
  30. package/lnd_methods/offchain/pay_via_routes.d.ts +4 -0
  31. package/lnd_methods/onchain/close_channel.d.ts +4 -0
  32. package/lnd_methods/onchain/close_channel.js +4 -0
  33. package/lnd_methods/onchain/open_channels.d.ts +1 -0
  34. package/lnd_methods/onchain/open_channels.js +7 -1
  35. package/lnd_methods/onchain/request_chain_fee_increase.js +5 -0
  36. package/lnd_methods/onchain/subscribe_to_blocks.js +1 -1
  37. package/lnd_responses/confirmed_from_payment_status.js +38 -40
  38. package/lnd_responses/constants.json +1 -0
  39. package/lnd_responses/forward_from_htlc_event.js +31 -31
  40. package/lnd_responses/info_as_wallet_info.js +28 -28
  41. package/lnd_responses/payment_request_details.js +28 -32
  42. package/lnd_responses/pending_as_pending_channels.js +8 -0
  43. package/lnd_responses/pending_from_payment.js +24 -24
  44. package/lnd_responses/routes_from_query_routes.js +30 -30
  45. package/lnd_responses/rpc_channel_as_channel.js +10 -9
  46. package/lnd_responses/rpc_fees_as_channel_fees.js +16 -16
  47. package/lnd_responses/rpc_forward_as_forward_request.js +27 -27
  48. package/lnd_responses/rpc_payment_as_payment.js +28 -31
  49. package/package.json +24 -20
  50. package/test/lnd_methods/offchain/test_get_routing_fee_estimate.js +82 -0
  51. package/test/lnd_methods/onchain/test_close_channel.js +5 -0
  52. package/test/lnd_methods/onchain/test_open_channels.js +5 -1
  53. package/test/lnd_methods/onchain/test_request_chain_fee_increase.js +13 -0
  54. package/test/lnd_responses/test_pending_as_pending_channels.js +34 -1
  55. package/test.js +194 -22
  56. package/.yarn/cache/@babel-code-frame-npm-7.25.7-40a9f53f43-f235cdf9c5.zip +0 -0
  57. package/.yarn/cache/@babel-helper-validator-identifier-npm-7.25.7-1c758f0472-062f55208d.zip +0 -0
  58. package/.yarn/cache/@babel-highlight-npm-7.25.7-308b20da71-b6aa45c5bf.zip +0 -0
  59. package/.yarn/cache/@grpc-grpc-js-npm-1.12.2-733ec8eabe-ee51317f92.zip +0 -0
  60. package/.yarn/cache/@grpc-proto-loader-npm-0.7.13-be5b6af1c1-399c1b8a46.zip +0 -0
  61. package/.yarn/cache/@jest-schemas-npm-29.6.3-292730e442-910040425f.zip +0 -0
  62. package/.yarn/cache/@js-sdsl-ordered-map-npm-4.4.2-158f6c6b74-a927ae4ff8.zip +0 -0
  63. package/.yarn/cache/@noble-hashes-npm-1.5.0-87c768d742-9cc031d5c8.zip +0 -0
  64. package/.yarn/cache/@nodelib-fs.scandir-npm-2.1.5-89c67370dd-a970d595bd.zip +0 -0
  65. package/.yarn/cache/@nodelib-fs.stat-npm-2.0.5-01f4dd3030-012480b5ca.zip +0 -0
  66. package/.yarn/cache/@nodelib-fs.walk-npm-1.2.8-b4a89da548-190c643f15.zip +0 -0
  67. package/.yarn/cache/@protobufjs-aspromise-npm-1.1.2-71d00b938f-011fe7ef08.zip +0 -0
  68. package/.yarn/cache/@protobufjs-base64-npm-1.1.2-cd8ca6814a-67173ac34d.zip +0 -0
  69. package/.yarn/cache/@protobufjs-codegen-npm-2.0.4-36e188bbe6-59240c850b.zip +0 -0
  70. package/.yarn/cache/@protobufjs-eventemitter-npm-1.1.0-029cc7d431-0369163a3d.zip +0 -0
  71. package/.yarn/cache/@protobufjs-fetch-npm-1.1.0-ca857b7df4-3fce7e09eb.zip +0 -0
  72. package/.yarn/cache/@protobufjs-float-npm-1.0.2-5678f64d08-5781e12412.zip +0 -0
  73. package/.yarn/cache/@protobufjs-inquire-npm-1.1.0-3c7759e9ce-ca06f02eaf.zip +0 -0
  74. package/.yarn/cache/@protobufjs-path-npm-1.1.2-641d08de76-856eeb532b.zip +0 -0
  75. package/.yarn/cache/@protobufjs-pool-npm-1.1.0-47a76f96a1-d6a34fbbd2.zip +0 -0
  76. package/.yarn/cache/@protobufjs-utf8-npm-1.1.0-02c590807c-f9bf3163d1.zip +0 -0
  77. package/.yarn/cache/@sinclair-typebox-npm-0.27.8-23e206d653-00bd7362a3.zip +0 -0
  78. package/.yarn/cache/@tsd-typescript-npm-5.4.5-31c3b104b3-86498d5e15.zip +0 -0
  79. package/.yarn/cache/@types-caseless-npm-0.12.5-d7dbdab81c-f6a3628add.zip +0 -0
  80. package/.yarn/cache/@types-eslint-npm-7.29.0-46534a7300-df13991c55.zip +0 -0
  81. package/.yarn/cache/@types-estree-npm-1.0.6-b5e23f2ea2-8825d6e729.zip +0 -0
  82. package/.yarn/cache/@types-json-schema-npm-7.0.15-fd16381786-97ed0cb44d.zip +0 -0
  83. package/.yarn/cache/@types-minimist-npm-1.2.5-c85664a9d8-477047b606.zip +0 -0
  84. package/.yarn/cache/@types-node-npm-22.7.5-0428b60a8c-1a8bbb504e.zip +0 -0
  85. package/.yarn/cache/@types-node-npm-22.7.6-cbb64e0ad4-6afe2a1bd7.zip +0 -0
  86. package/.yarn/cache/@types-normalize-package-data-npm-2.4.4-676a8ba353-65dff72b54.zip +0 -0
  87. package/.yarn/cache/@types-request-npm-2.48.12-d921ef35cb-20dfad0a46.zip +0 -0
  88. package/.yarn/cache/@types-tough-cookie-npm-4.0.5-8c5e2162e1-f19409d019.zip +0 -0
  89. package/.yarn/cache/@types-ws-npm-8.5.12-90c42288cf-ddefb6ad16.zip +0 -0
  90. package/.yarn/cache/ansi-escapes-npm-4.3.2-3ad173702f-93111c4218.zip +0 -0
  91. package/.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip +0 -0
  92. package/.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip +0 -0
  93. package/.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-513b44c3b2.zip +0 -0
  94. package/.yarn/cache/ansi-styles-npm-5.2.0-72fc7003e3-d7f4e97ce0.zip +0 -0
  95. package/.yarn/cache/array-union-npm-2.1.0-4e4852b221-5bee12395c.zip +0 -0
  96. package/.yarn/cache/arrify-npm-1.0.1-affafba9fe-745075dd4a.zip +0 -0
  97. package/.yarn/cache/async-npm-3.2.4-aba13508f9-43d07459a4.zip +0 -0
  98. package/.yarn/cache/async-npm-3.2.6-aa4f5aa081-ee6eb8cd8a.zip +0 -0
  99. package/.yarn/cache/asyncjs-util-npm-1.2.12-f1ef4c2905-55ff005a7f.zip +0 -0
  100. package/.yarn/cache/asynckit-npm-0.4.0-c718858525-7b78c451df.zip +0 -0
  101. package/.yarn/cache/base-x-npm-3.0.10-2d05c06792-5230773955.zip +0 -0
  102. package/.yarn/cache/base-x-npm-4.0.0-64a1f6fa5e-b25db9e07e.zip +0 -0
  103. package/.yarn/cache/bech32-npm-2.0.0-ad98b7dd79-fa15acb270.zip +0 -0
  104. package/.yarn/cache/bip174-npm-2.1.1-d9fcaf36f9-bc5b99e7d1.zip +0 -0
  105. package/.yarn/cache/bip66-npm-1.1.5-e1d2ea7768-956cff6e51.zip +0 -0
  106. package/.yarn/cache/bitcoin-ops-npm-1.4.1-e1e62763b3-3daa3303d6.zip +0 -0
  107. package/.yarn/cache/bitcoinjs-lib-npm-6.1.3-8b823f7e69-b1d9ffd999.zip +0 -0
  108. package/.yarn/cache/bitcoinjs-lib-npm-6.1.6-d063b5a8ff-04370cf699.zip +0 -0
  109. package/.yarn/cache/bn.js-npm-5.2.1-dc952b1965-3dd8c8d380.zip +0 -0
  110. package/.yarn/cache/bolt07-npm-1.8.4-297a4ac40d-58cdf15aba.zip +0 -0
  111. package/.yarn/cache/bolt07-npm-1.9.4-6f74865601-d18efc5f83.zip +0 -0
  112. package/.yarn/cache/bolt09-npm-1.0.0-b3d5b54cf9-09d53b86f2.zip +0 -0
  113. package/.yarn/cache/bolt09-npm-2.1.0-1fc0cfcef2-629cd3bdd4.zip +0 -0
  114. package/.yarn/cache/braces-npm-3.0.3-582c14023c-b95aa0b3bd.zip +0 -0
  115. package/.yarn/cache/bs58-npm-4.0.1-8d2a7822b1-b3c5365bb9.zip +0 -0
  116. package/.yarn/cache/bs58-npm-5.0.0-da02537b92-2475cb0684.zip +0 -0
  117. package/.yarn/cache/bs58check-npm-2.1.2-4e87e40195-43bdf08a5d.zip +0 -0
  118. package/.yarn/cache/bs58check-npm-3.0.1-be32851e5e-dbbecc7a09.zip +0 -0
  119. package/.yarn/cache/camelcase-keys-npm-6.2.2-d13777ec12-43c9af1adf.zip +0 -0
  120. package/.yarn/cache/camelcase-npm-5.3.1-5db8af62c5-e6effce26b.zip +0 -0
  121. package/.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-ec3661d38f.zip +0 -0
  122. package/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip +0 -0
  123. package/.yarn/cache/cipher-base-npm-1.0.4-2e98b97140-47d3568dbc.zip +0 -0
  124. package/.yarn/cache/cliui-npm-8.0.1-3b029092cf-79648b3b00.zip +0 -0
  125. package/.yarn/cache/color-convert-npm-1.9.3-1fe690075e-fd7a64a17c.zip +0 -0
  126. package/.yarn/cache/color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip +0 -0
  127. package/.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip +0 -0
  128. package/.yarn/cache/color-name-npm-1.1.4-025792b0ea-b044585952.zip +0 -0
  129. package/.yarn/cache/combined-stream-npm-1.0.8-dc14d4a63a-49fa4aeb49.zip +0 -0
  130. package/.yarn/cache/create-hash-npm-1.2.0-afd048e1ce-02a6ae3bb9.zip +0 -0
  131. package/.yarn/cache/decamelize-keys-npm-1.1.1-4cfa36ed4b-fc645fe20b.zip +0 -0
  132. package/.yarn/cache/decamelize-npm-1.2.0-c5a2fdc622-ad8c51a7e7.zip +0 -0
  133. package/.yarn/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-46fe6e83e2.zip +0 -0
  134. package/.yarn/cache/diff-sequences-npm-29.6.3-18ab2c9949-f4914158e1.zip +0 -0
  135. package/.yarn/cache/dir-glob-npm-3.0.1-1aea628b1b-fa05e18324.zip +0 -0
  136. package/.yarn/cache/ecpair-npm-2.1.0-d034fc21e2-924a776808.zip +0 -0
  137. package/.yarn/cache/emoji-regex-npm-8.0.0-213764015c-d4c5c39d5a.zip +0 -0
  138. package/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-c1c2b8b65f.zip +0 -0
  139. package/.yarn/cache/escalade-npm-3.2.0-19b50dd48f-47b029c83d.zip +0 -0
  140. package/.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip +0 -0
  141. package/.yarn/cache/eslint-formatter-pretty-npm-4.1.0-30790f28b4-e8e0cd3843.zip +0 -0
  142. package/.yarn/cache/eslint-rule-docs-npm-1.1.235-64d33df34f-b163596f9a.zip +0 -0
  143. package/.yarn/cache/fast-glob-npm-3.3.2-0a8cb4f2ca-900e4979f4.zip +0 -0
  144. package/.yarn/cache/fastq-npm-1.17.1-56d4554993-a8c5b26788.zip +0 -0
  145. package/.yarn/cache/fill-range-npm-7.1.1-bf491486db-b4abfbca38.zip +0 -0
  146. package/.yarn/cache/find-up-npm-4.1.0-c3ccf8d855-4c172680e8.zip +0 -0
  147. package/.yarn/cache/form-data-npm-2.5.2-f40bcd738c-89ed3d9623.zip +0 -0
  148. package/.yarn/cache/function-bind-npm-1.1.2-7a55be9b03-2b0ff4ce70.zip +0 -0
  149. package/.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-b9769a836d.zip +0 -0
  150. package/.yarn/cache/glob-parent-npm-5.1.2-021ab32634-f4f2bfe242.zip +0 -0
  151. package/.yarn/cache/globby-npm-11.1.0-bdcdf20c71-b4be8885e0.zip +0 -0
  152. package/.yarn/cache/hard-rejection-npm-2.1.0-a80f2a977d-7baaf80a0c.zip +0 -0
  153. package/.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip +0 -0
  154. package/.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip +0 -0
  155. package/.yarn/cache/hash-base-npm-3.1.0-26fc5711dd-26b7e97ac3.zip +0 -0
  156. package/.yarn/cache/hasown-npm-2.0.2-80fe6c9901-e8516f776a.zip +0 -0
  157. package/.yarn/cache/hosted-git-info-npm-2.8.9-62c44fa93f-c955394bda.zip +0 -0
  158. package/.yarn/cache/hosted-git-info-npm-4.1.0-4efcdf8fd3-c3f87b3c2f.zip +0 -0
  159. package/.yarn/cache/ignore-npm-5.3.2-346d3ba017-2acfd32a57.zip +0 -0
  160. package/.yarn/cache/indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip +0 -0
  161. package/.yarn/cache/inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip +0 -0
  162. package/.yarn/cache/invoices-npm-3.0.0-123907e565-27119b1449.zip +0 -0
  163. package/.yarn/cache/irregular-plurals-npm-3.5.0-2415613615-5b663091dc.zip +0 -0
  164. package/.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-eef4417e3c.zip +0 -0
  165. package/.yarn/cache/is-core-module-npm-2.15.1-34c73a6cbd-df134c1681.zip +0 -0
  166. package/.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-df033653d0.zip +0 -0
  167. package/.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip +0 -0
  168. package/.yarn/cache/is-glob-npm-4.0.3-cb87bf1bdb-d381c1319f.zip +0 -0
  169. package/.yarn/cache/is-number-npm-7.0.0-060086935c-456ac6f8e0.zip +0 -0
  170. package/.yarn/cache/is-plain-obj-npm-1.1.0-1046f64c0b-0ee0480779.zip +0 -0
  171. package/.yarn/cache/is-unicode-supported-npm-0.1.0-0833e1bbfb-a2aab86ee7.zip +0 -0
  172. package/.yarn/cache/jest-diff-npm-29.7.0-0149e01930-08e24a9dd4.zip +0 -0
  173. package/.yarn/cache/jest-get-type-npm-29.6.3-500477292e-88ac9102d4.zip +0 -0
  174. package/.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-8a95213a5a.zip +0 -0
  175. package/.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-798ed4cf33.zip +0 -0
  176. package/.yarn/cache/kind-of-npm-6.0.3-ab15f36220-3ab01e7b1d.zip +0 -0
  177. package/.yarn/cache/lines-and-columns-npm-1.2.4-d6c7cc5799-0c37f9f7fa.zip +0 -0
  178. package/.yarn/cache/locate-path-npm-5.0.0-46580c43e4-83e51725e6.zip +0 -0
  179. package/.yarn/cache/lodash.camelcase-npm-4.3.0-bf268e3bf0-cb9227612f.zip +0 -0
  180. package/.yarn/cache/log-symbols-npm-4.1.0-0a13492d8b-fce1497b31.zip +0 -0
  181. package/.yarn/cache/long-npm-5.2.3-61dddb7586-885ede7c3d.zip +0 -0
  182. package/.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip +0 -0
  183. package/.yarn/cache/map-obj-npm-1.0.1-fa55100fac-9949e7baec.zip +0 -0
  184. package/.yarn/cache/map-obj-npm-4.3.0-d53e32935d-fbc554934d.zip +0 -0
  185. package/.yarn/cache/md5.js-npm-1.3.5-130901125a-098494d885.zip +0 -0
  186. package/.yarn/cache/meow-npm-9.0.0-8b2707248e-99799c4724.zip +0 -0
  187. package/.yarn/cache/merge2-npm-1.4.1-a2507bd06c-7268db63ed.zip +0 -0
  188. package/.yarn/cache/micromatch-npm-4.0.8-c9570e4aca-79920eb634.zip +0 -0
  189. package/.yarn/cache/mime-db-npm-1.52.0-b5371d6fd2-0d99a03585.zip +0 -0
  190. package/.yarn/cache/mime-types-npm-2.1.35-dd9ea9f3e2-89a5b7f1de.zip +0 -0
  191. package/.yarn/cache/min-indent-npm-1.0.1-77031f50e1-bfc6dd03c5.zip +0 -0
  192. package/.yarn/cache/minimist-options-npm-4.1.0-64ca250fc1-8c040b3068.zip +0 -0
  193. package/.yarn/cache/normalize-package-data-npm-2.5.0-af0345deed-7999112efc.zip +0 -0
  194. package/.yarn/cache/normalize-package-data-npm-3.0.3-1a49056685-bbcee00339.zip +0 -0
  195. package/.yarn/cache/p-limit-npm-2.3.0-94a0310039-84ff17f1a3.zip +0 -0
  196. package/.yarn/cache/p-locate-npm-4.1.0-eec6872537-513bd14a45.zip +0 -0
  197. package/.yarn/cache/p-try-npm-2.2.0-e0390dbaf8-f8a8e9a769.zip +0 -0
  198. package/.yarn/cache/parse-json-npm-5.2.0-00a63b1199-62085b17d6.zip +0 -0
  199. package/.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-505807199d.zip +0 -0
  200. package/.yarn/cache/path-parse-npm-1.0.7-09564527b7-49abf3d811.zip +0 -0
  201. package/.yarn/cache/path-type-npm-4.0.0-10d47fc86a-5b1e2daa24.zip +0 -0
  202. package/.yarn/cache/picocolors-npm-1.1.1-4fede47cf1-e1cf46bf84.zip +0 -0
  203. package/.yarn/cache/picomatch-npm-2.3.1-c782cfd986-050c865ce8.zip +0 -0
  204. package/.yarn/cache/plur-npm-4.0.0-96f2a49c24-fea2e903ef.zip +0 -0
  205. package/.yarn/cache/pretty-format-npm-29.7.0-7d330b2ea2-032c160238.zip +0 -0
  206. package/.yarn/cache/protobufjs-npm-7.4.0-12c56a3adc-ba0e6b6054.zip +0 -0
  207. package/.yarn/cache/psbt-npm-3.0.0-7f3e8059ba-1dddca470a.zip +0 -0
  208. package/.yarn/cache/pushdata-bitcoin-npm-1.0.1-959a90bb14-8452106d4b.zip +0 -0
  209. package/.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-b676f8c040.zip +0 -0
  210. package/.yarn/cache/quick-lru-npm-4.0.1-ef8aa17c9c-bea46e1abf.zip +0 -0
  211. package/.yarn/cache/randombytes-npm-2.1.0-e3da76bccf-d779499376.zip +0 -0
  212. package/.yarn/cache/react-is-npm-18.3.1-370a81e1e9-e20fe84c86.zip +0 -0
  213. package/.yarn/cache/read-pkg-npm-5.2.0-50426bd8dc-eb696e6052.zip +0 -0
  214. package/.yarn/cache/read-pkg-up-npm-7.0.1-11895bed9a-e4e93ce70e.zip +0 -0
  215. package/.yarn/cache/readable-stream-npm-3.6.2-d2a6069158-bdcbe6c22e.zip +0 -0
  216. package/.yarn/cache/redent-npm-3.0.0-31892f4906-fa1ef20404.zip +0 -0
  217. package/.yarn/cache/require-directory-npm-2.1.1-8608aee50b-fb47e70bf0.zip +0 -0
  218. package/.yarn/cache/resolve-npm-1.22.8-098f379dfe-f8a26958aa.zip +0 -0
  219. package/.yarn/cache/resolve-patch-f6b5304cab-5479b7d431.zip +0 -0
  220. package/.yarn/cache/reusify-npm-1.0.4-95ac4aec11-c3076ebcc2.zip +0 -0
  221. package/.yarn/cache/ripemd160-npm-2.0.2-7b1fb8dc76-006accc405.zip +0 -0
  222. package/.yarn/cache/run-parallel-npm-1.2.0-3f47ff2034-cb4f97ad25.zip +0 -0
  223. package/.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip +0 -0
  224. package/.yarn/cache/semver-npm-5.7.2-938ee91eaa-fb4ab5e0dd.zip +0 -0
  225. package/.yarn/cache/semver-npm-7.6.3-57e82c14d5-4110ec5d01.zip +0 -0
  226. package/.yarn/cache/sha.js-npm-2.4.11-14868df4ca-ebd3f59d4b.zip +0 -0
  227. package/.yarn/cache/slash-npm-3.0.0-b87de2279a-94a93fff61.zip +0 -0
  228. package/.yarn/cache/spdx-correct-npm-3.2.0-ffae008484-e9ae98d22f.zip +0 -0
  229. package/.yarn/cache/spdx-exceptions-npm-2.5.0-718ed4b7d6-bb127d6e25.zip +0 -0
  230. package/.yarn/cache/spdx-expression-parse-npm-3.0.1-b718cbb35a-a1c6e104a2.zip +0 -0
  231. package/.yarn/cache/spdx-license-ids-npm-3.0.20-f08e1eabc0-0c57750bed.zip +0 -0
  232. package/.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip +0 -0
  233. package/.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-8417646695.zip +0 -0
  234. package/.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-f3cd25890a.zip +0 -0
  235. package/.yarn/cache/strip-indent-npm-3.0.0-519e75a28d-18f045d57d.zip +0 -0
  236. package/.yarn/cache/supports-color-npm-5.5.0-183ac537bc-95f6f4ba5a.zip +0 -0
  237. package/.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-3dda818de0.zip +0 -0
  238. package/.yarn/cache/supports-hyperlinks-npm-2.3.0-d19176eba2-9ee0de3c8c.zip +0 -0
  239. package/.yarn/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-53b1e247e6.zip +0 -0
  240. package/.yarn/cache/tiny-secp256k1-npm-2.2.2-54168b74b6-2b38491186.zip +0 -0
  241. package/.yarn/cache/tiny-secp256k1-npm-2.2.3-8c5163b5d1-f7a74a1fce.zip +0 -0
  242. package/.yarn/cache/to-regex-range-npm-5.0.1-f1e8263b00-f76fa01b3d.zip +0 -0
  243. package/.yarn/cache/trim-newlines-npm-3.0.1-22f1f216de-b530f3fadf.zip +0 -0
  244. package/.yarn/cache/tsd-npm-0.31.2-07f84c93d0-23bb84f8ba.zip +0 -0
  245. package/.yarn/cache/type-fest-npm-0.18.1-47b079775d-e96dcee18a.zip +0 -0
  246. package/.yarn/cache/type-fest-npm-0.21.3-5ff2a9c6fd-e6b32a3b38.zip +0 -0
  247. package/.yarn/cache/type-fest-npm-0.6.0-76b229965b-b2188e6e4b.zip +0 -0
  248. package/.yarn/cache/type-fest-npm-0.8.1-351ad028fe-d61c4b2eba.zip +0 -0
  249. package/.yarn/cache/type-fest-npm-4.26.1-274c31182d-7188db3bca.zip +0 -0
  250. package/.yarn/cache/typeforce-npm-1.18.0-372e34e2a2-e3b21e27e7.zip +0 -0
  251. package/.yarn/cache/typescript-npm-5.6.3-cc9b3687b0-ba302f8822.zip +0 -0
  252. package/.yarn/cache/typescript-patch-be88537122-ade87bce23.zip +0 -0
  253. package/.yarn/cache/uint8array-tools-npm-0.0.7-96ca58a124-6ffc45c7d2.zip +0 -0
  254. package/.yarn/cache/undici-types-npm-6.19.8-9f12285b7a-de51f1b447.zip +0 -0
  255. package/.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip +0 -0
  256. package/.yarn/cache/validate-npm-package-license-npm-3.0.4-7af8adc7a8-35703ac889.zip +0 -0
  257. package/.yarn/cache/varuint-bitcoin-npm-1.1.2-83f928c112-1c900bf08f.zip +0 -0
  258. package/.yarn/cache/wif-npm-2.0.6-f351bf025a-8c3147ef98.zip +0 -0
  259. package/.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-a790b846fd.zip +0 -0
  260. package/.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-54f0fb9562.zip +0 -0
  261. package/.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip +0 -0
  262. package/.yarn/cache/yargs-npm-17.7.2-80b62638e1-73b572e863.zip +0 -0
  263. package/.yarn/cache/yargs-parser-npm-20.2.9-a1d19e598d-8bb69015f2.zip +0 -0
  264. package/.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-ed2d96a616.zip +0 -0
  265. package/.yarn/install-state.gz +0 -0
@@ -131,8 +131,7 @@ message AddAssetBuyOrderRequest {
131
131
  // The unix timestamp in seconds after which the order is no longer valid.
132
132
  uint64 expiry = 3;
133
133
 
134
- // peer_pub_key is an optional field for specifying the public key of the
135
- // intended recipient peer for the order.
134
+ // The public key of the intended recipient peer for the order.
136
135
  bytes peer_pub_key = 4;
137
136
 
138
137
  // timeout_seconds is the number of seconds to wait for the peer to respond
@@ -144,6 +143,16 @@ message AddAssetBuyOrderRequest {
144
143
  // the RFQ negotiation to work. This flag shouldn't be set outside of test
145
144
  // scenarios.
146
145
  bool skip_asset_channel_check = 6;
146
+
147
+ // An optional text field that can be used to provide additional metadata
148
+ // about the buy order to the price oracle. This can include information
149
+ // about the wallet end user that initiated the transaction, or any
150
+ // authentication information that the price oracle can use to give out a
151
+ // more accurate (or discount) asset rate. Though not verified or enforced
152
+ // by tapd, the suggested format for this field is a JSON string.
153
+ // This field is optional and can be left empty if no metadata is available.
154
+ // The maximum length of this field is 32'768 bytes.
155
+ string price_oracle_metadata = 7;
147
156
  }
148
157
 
149
158
  message AddAssetBuyOrderResponse {
@@ -173,8 +182,7 @@ message AddAssetSellOrderRequest {
173
182
  // The unix timestamp in seconds after which the order is no longer valid.
174
183
  uint64 expiry = 3;
175
184
 
176
- // peer_pub_key is an optional field for specifying the public key of the
177
- // intended recipient peer for the order.
185
+ // The public key of the intended recipient peer for the order.
178
186
  bytes peer_pub_key = 4;
179
187
 
180
188
  // timeout_seconds is the number of seconds to wait for the peer to respond
@@ -186,6 +194,16 @@ message AddAssetSellOrderRequest {
186
194
  // the RFQ negotiation to work. This flag shouldn't be set outside of test
187
195
  // scenarios.
188
196
  bool skip_asset_channel_check = 6;
197
+
198
+ // An optional text field that can be used to provide additional metadata
199
+ // about the sell order to the price oracle. This can include information
200
+ // about the wallet end user that initiated the transaction, or any
201
+ // authentication information that the price oracle can use to give out a
202
+ // more accurate (or discount) asset rate. Though not verified or enforced
203
+ // by tapd, the suggested format for this field is a JSON string.
204
+ // This field is optional and can be left empty if no metadata is available.
205
+ // The maximum length of this field is 32'768 bytes.
206
+ string price_oracle_metadata = 7;
189
207
  }
190
208
 
191
209
  message AddAssetSellOrderResponse {
@@ -229,6 +247,16 @@ message AddAssetBuyOfferResponse {
229
247
  message QueryPeerAcceptedQuotesRequest {
230
248
  }
231
249
 
250
+ message AssetSpec {
251
+ // The 32-byte asset ID specified as raw bytes.
252
+ bytes id = 1;
253
+
254
+ // The 32-byte asset group public key, serialized in BIP340 format.
255
+ // BIP340 defines a canonical encoding for Schnorr public keys.
256
+ // This field is serialized using schnorr.SerializePubKey.
257
+ bytes group_pub_key = 2;
258
+ }
259
+
232
260
  message PeerAcceptedBuyQuote {
233
261
  // Quote counterparty peer.
234
262
  string peer = 1;
@@ -258,6 +286,16 @@ message PeerAcceptedBuyQuote {
258
286
  // asset unit equivalent of 354 satoshis, which is the minimum amount for an
259
287
  // HTLC to be above the dust limit.
260
288
  uint64 min_transportable_units = 7;
289
+
290
+ // An optional user-provided text field used to provide additional metadata
291
+ // about the buy order to the price oracle. This can include information
292
+ // about the wallet end user that initiated the transaction, or any
293
+ // authentication information that the price oracle can use to give out a
294
+ // more accurate (or discount) asset rate.
295
+ string price_oracle_metadata = 8;
296
+
297
+ // The subject asset specifier.
298
+ AssetSpec asset_spec = 9;
261
299
  }
262
300
 
263
301
  message PeerAcceptedSellQuote {
@@ -287,6 +325,16 @@ message PeerAcceptedSellQuote {
287
325
  // amount for a non-dust HTLC) plus the equivalent of one asset unit in
288
326
  // milli-satoshis.
289
327
  uint64 min_transportable_msat = 7;
328
+
329
+ // An optional user-provided text field used to provide additional metadata
330
+ // about the sell order to the price oracle. This can include information
331
+ // about the wallet end user that initiated the transaction, or any
332
+ // authentication information that the price oracle can use to give out a
333
+ // more accurate (or discount) asset rate.
334
+ string price_oracle_metadata = 8;
335
+
336
+ // The subject asset specifier.
337
+ AssetSpec asset_spec = 9;
290
338
  }
291
339
 
292
340
  // QuoteRespStatus is an enum that represents the status of a quote response.
@@ -385,4 +433,4 @@ message RfqEvent {
385
433
  // RFQ service.
386
434
  AcceptHtlcEvent accept_htlc = 3;
387
435
  }
388
- }
436
+ }
@@ -227,10 +227,11 @@ message SendPaymentRequest {
227
227
  string payment_request = 5;
228
228
 
229
229
  /*
230
- An upper limit on the amount of time we should spend when attempting to
231
- fulfill the payment. This is expressed in seconds. If we cannot make a
232
- successful payment within this time frame, an error will be returned.
233
- This field must be non-zero.
230
+ An optional limit, expressed in seconds, on the time to wait before
231
+ attempting the first HTLC. Once HTLCs are in flight, the payment will
232
+ not be aborted until the HTLCs are either settled or failed. If the field
233
+ is not set or is explicitly set to zero, the default value of 60 seconds
234
+ will be applied.
234
235
  */
235
236
  int32 timeout_seconds = 6;
236
237
 
@@ -1063,6 +1064,10 @@ message ForwardHtlcInterceptResponse {
1063
1064
  // Any custom records that should be set on the p2p wire message message of
1064
1065
  // the resumed HTLC. This field is ignored if the action is not
1065
1066
  // RESUME_MODIFIED.
1067
+ //
1068
+ // This map will merge with the existing set of custom records (if any),
1069
+ // replacing any conflicting types. Note that there currently is no support
1070
+ // for deleting existing custom records (they can only be replaced).
1066
1071
  map<uint64, bytes> out_wire_custom_records = 8;
1067
1072
  }
1068
1073
 
@@ -195,6 +195,13 @@ service Router {
195
195
  */
196
196
  rpc XDeleteLocalChanAliases (DeleteAliasesRequest)
197
197
  returns (DeleteAliasesResponse);
198
+
199
+ /*
200
+ XFindBaseLocalChanAlias is an experimental API that looks up the base scid
201
+ for a local chan alias that was registered during the current runtime.
202
+ */
203
+ rpc XFindBaseLocalChanAlias (FindBaseAliasRequest)
204
+ returns (FindBaseAliasResponse);
198
205
  }
199
206
 
200
207
  message SendPaymentRequest {
@@ -227,10 +234,11 @@ message SendPaymentRequest {
227
234
  string payment_request = 5;
228
235
 
229
236
  /*
230
- An upper limit on the amount of time we should spend when attempting to
231
- fulfill the payment. This is expressed in seconds. If we cannot make a
232
- successful payment within this time frame, an error will be returned.
233
- This field must be non-zero.
237
+ An optional limit, expressed in seconds, on the time to wait before
238
+ attempting the first HTLC. Once HTLCs are in flight, the payment will
239
+ not be aborted until the HTLCs are either settled or failed. If the field
240
+ is not set or is explicitly set to zero, the default value of 60 seconds
241
+ will be applied.
234
242
  */
235
243
  int32 timeout_seconds = 6;
236
244
 
@@ -1063,6 +1071,10 @@ message ForwardHtlcInterceptResponse {
1063
1071
  // Any custom records that should be set on the p2p wire message message of
1064
1072
  // the resumed HTLC. This field is ignored if the action is not
1065
1073
  // RESUME_MODIFIED.
1074
+ //
1075
+ // This map will merge with the existing set of custom records (if any),
1076
+ // replacing any conflicting types. Note that there currently is no support
1077
+ // for deleting existing custom records (they can only be replaced).
1066
1078
  map<uint64, bytes> out_wire_custom_records = 8;
1067
1079
  }
1068
1080
 
@@ -1111,4 +1123,14 @@ message DeleteAliasesRequest {
1111
1123
 
1112
1124
  message DeleteAliasesResponse {
1113
1125
  repeated lnrpc.AliasMap alias_maps = 1;
1126
+ }
1127
+
1128
+ message FindBaseAliasRequest {
1129
+ // The alias we want to look up the base scid for.
1130
+ uint64 alias = 1;
1131
+ }
1132
+
1133
+ message FindBaseAliasResponse {
1134
+ // The base scid that resulted from the base scid look up.
1135
+ uint64 base = 1;
1114
1136
  }
@@ -10,13 +10,14 @@ import "routerrpc/router.proto";
10
10
  import "taprootassets.proto";
11
11
 
12
12
  service TaprootAssetChannels {
13
- /*
13
+ /* litcli: `ln fundchannel`
14
14
  FundChannel initiates the channel funding negotiation with a peer for the
15
15
  creation of a channel that contains a specified amount of a given asset.
16
16
  */
17
17
  rpc FundChannel (FundChannelRequest) returns (FundChannelResponse);
18
18
 
19
19
  /*
20
+ Deprecated.
20
21
  EncodeCustomRecords allows RPC users to encode Taproot Asset channel related
21
22
  data into the TLV format that is used in the custom records of the lnd
22
23
  payment or other channel related RPCs. This RPC is completely stateless and
@@ -24,9 +25,11 @@ service TaprootAssetChannels {
24
25
  validation.
25
26
  */
26
27
  rpc EncodeCustomRecords (EncodeCustomRecordsRequest)
27
- returns (EncodeCustomRecordsResponse);
28
+ returns (EncodeCustomRecordsResponse) {
29
+ option deprecated = true;
30
+ };
28
31
 
29
- /*
32
+ /* litcli: `ln sendpayment`
30
33
  SendPayment is a wrapper around lnd's routerrpc.SendPaymentV2 RPC method
31
34
  with asset specific parameters. It allows RPC users to send asset keysend
32
35
  payments (direct payments) or payments to an invoice with a specified asset
@@ -34,17 +37,19 @@ service TaprootAssetChannels {
34
37
  */
35
38
  rpc SendPayment (SendPaymentRequest) returns (stream SendPaymentResponse);
36
39
 
37
- /*
40
+ /* litcli: `ln addinvoice`
38
41
  AddInvoice is a wrapper around lnd's lnrpc.AddInvoice method with asset
39
42
  specific parameters. It allows RPC users to create invoices that correspond
40
- to the specified asset amount.
43
+ to the specified asset amount. If a peer pubkey is specified, then only that
44
+ peer will be used for RFQ negotiations. If none is specified then RFQ quotes
45
+ for all peers with suitable asset channels will be created.
41
46
  */
42
47
  rpc AddInvoice (AddInvoiceRequest) returns (AddInvoiceResponse);
43
48
 
44
- /*
49
+ /* litcli: `ln decodeassetinvoice`
45
50
  DecodeAssetPayReq is similar to lnd's lnrpc.DecodePayReq, but it accepts an
46
- asset ID and returns the invoice amount expressed in asset units along side
47
- the normal information.
51
+ asset ID or group key and returns the invoice amount expressed in asset
52
+ units along side the normal information.
48
53
  */
49
54
  rpc DecodeAssetPayReq (AssetPayReq) returns (AssetPayReqResponse);
50
55
  }
@@ -70,6 +75,11 @@ message FundChannelRequest {
70
75
  // is equivalent to a donation to the remote party, unless they reimburse
71
76
  // the funds in another way (outside the protocol).
72
77
  int64 push_sat = 5;
78
+
79
+ // The group key to use for the channel. This can be used instead of the
80
+ // asset_id to allow assets from a fungible group to be used for the channel
81
+ // funding instead of just assets from a single minting tranche (asset_id).
82
+ bytes group_key = 6;
73
83
  }
74
84
 
75
85
  message FundChannelResponse {
@@ -93,6 +103,7 @@ message RouterSendPaymentData {
93
103
 
94
104
  message EncodeCustomRecordsRequest {
95
105
  oneof input {
106
+ // The custom records to encode for a payment request.
96
107
  RouterSendPaymentData router_send_payment = 1;
97
108
  }
98
109
  }
@@ -106,7 +117,7 @@ message SendPaymentRequest {
106
117
  // The asset ID to use for the payment. This must be set for both invoice
107
118
  // and keysend payments, unless RFQ negotiation was already done beforehand
108
119
  // and payment_request.first_hop_custom_records already contains valid RFQ
109
- // data.
120
+ // data. Mutually exclusive to group_key.
110
121
  bytes asset_id = 1;
111
122
 
112
123
  // The asset amount to send in a keysend payment. This amount is ignored for
@@ -117,8 +128,8 @@ message SendPaymentRequest {
117
128
  uint64 asset_amount = 2;
118
129
 
119
130
  // The node identity public key of the peer to ask for a quote for sending
120
- // out the assets and converting them to satoshis. This must be specified if
121
- // there are multiple channels with the given asset ID.
131
+ // out the assets and converting them to satoshis. If set, only a quote with
132
+ // this peer may be negotiated to carry out the payment.
122
133
  bytes peer_pubkey = 3;
123
134
 
124
135
  // The full lnd payment request to send. All fields behave the same way as
@@ -142,6 +153,27 @@ message SendPaymentRequest {
142
153
  // are sent out to the network than the invoice amount plus routing fees
143
154
  // require to be paid.
144
155
  bool allow_overpay = 6;
156
+
157
+ // The group key which dictates which assets may be used for this payment.
158
+ // Mutually exclusive to asset_id.
159
+ bytes group_key = 7;
160
+
161
+ // An optional text field that can be used to provide additional metadata
162
+ // about the payment to the price oracle. This can include information
163
+ // about the wallet end user that initiated the transaction, or any
164
+ // authentication information that the price oracle can use to give out a
165
+ // more accurate (or discount) asset rate. Though not verified or enforced
166
+ // by tapd, the suggested format for this field is a JSON string.
167
+ // This field is optional and can be left empty if no metadata is available.
168
+ // The maximum length of this field is 32'768 bytes.
169
+ string price_oracle_metadata = 8;
170
+ }
171
+
172
+ message AcceptedSellQuotes {
173
+ // If swapping of assets is necessary to carry out the payment, a number of
174
+ // RFQ quotes may be negotiated for that purpose. The following field
175
+ // contains all the sell orders that were negotiated with our peers.
176
+ repeated rfqrpc.PeerAcceptedSellQuote accepted_sell_orders = 1;
145
177
  }
146
178
 
147
179
  message SendPaymentResponse {
@@ -150,44 +182,75 @@ message SendPaymentResponse {
150
182
  // sell order is negotiated with the channel peer. The result will be
151
183
  // the first message in the response stream. If no swap is needed, the
152
184
  // payment results will be streamed directly.
185
+ // Deprecated. This will now only contain the first quote that was
186
+ // negotiated. Since the introduction of multi-rfq we now negotiate
187
+ // multiple quotes in the context of a payment. Use the new field named
188
+ // "accepted_sell_orders" to retrieve all of them.
153
189
  rfqrpc.PeerAcceptedSellQuote accepted_sell_order = 1;
154
190
 
155
- // The payment result of a single payment attempt. Multiple attempts may
156
- // be returned per payment request until either the payment succeeds or
157
- // the payment times out.
191
+ // If swapping of assets is necessary to carry out the payment, a number
192
+ // of RFQ quotes may be negotiated for that purpose. The following field
193
+ // contains all the sell orders that were negotiated with our peers.
194
+ AcceptedSellQuotes accepted_sell_orders = 3;
195
+
196
+ // The payment result of a single payment attempt. Multiple attempts
197
+ // may be returned per payment request until either the payment
198
+ // succeeds or the payment times out.
158
199
  lnrpc.Payment payment_result = 2;
159
200
  }
160
201
  }
161
202
 
162
203
  message HodlInvoice {
204
+ // The payment hash of the HODL invoice to be created.
163
205
  bytes payment_hash = 1;
164
206
  }
165
207
 
166
208
  message AddInvoiceRequest {
167
- // The asset ID to use for the invoice.
209
+ // The asset ID to use for the invoice. Mutually exclusive to group_key.
168
210
  bytes asset_id = 1;
169
211
 
170
212
  // The asset amount to receive.
171
213
  uint64 asset_amount = 2;
172
214
 
173
215
  // The node identity public key of the peer to ask for a quote for receiving
174
- // assets and converting them from satoshis. This must be specified if
175
- // there are multiple channels with the given asset ID.
216
+ // assets and converting them from satoshis. When specified only quotes with
217
+ // this peer will be negotiated.
176
218
  bytes peer_pubkey = 3;
177
219
 
178
- // The full lnd invoice request to send. All fields (except for the value
179
- // and the route hints) behave the same way as they do for lnd's
180
- // lnrpc.AddInvoice RPC method (see the API docs at
220
+ // The full lnd invoice request to send. All fields behave the same way as
221
+ // they do for lnd's lnrpc.AddInvoice RPC method (see the API docs at
181
222
  // https://lightning.engineering/api-docs/api/lnd/lightning/add-invoice
182
- // for more details). The value/value_msat fields will be overwritten by the
183
- // satoshi (or milli-satoshi) equivalent of the asset amount, after
184
- // negotiating a quote with a peer that supports the given asset ID.
223
+ // for more details).
224
+ //
225
+ // Only one of the asset_amount/value/value_msat may be set to dictate the
226
+ // value of the invoice. When using asset_amount, the value/value_msat
227
+ // fields will be overwritten by the satoshi (or milli-satoshi) equivalent
228
+ // of the asset amount, after negotiating a quote with a peer that supports
229
+ // the given asset ID.
230
+ //
231
+ // If the value/value_msat are used, we still receive assets, but they will
232
+ // exactly evaluate to the defined amount in sats/msats.
185
233
  lnrpc.Invoice invoice_request = 4;
186
234
 
187
235
  // If set, then this will make the invoice created a hodl invoice, which
188
236
  // won't be settled automatically. Instead, users will need to use the
189
237
  // invoicesrpc.SettleInvoice call to manually settle the invoice.
190
238
  HodlInvoice hodl_invoice = 5;
239
+
240
+ // The group key which dictates which assets may be accepted for this
241
+ // invoice. If set, any asset that belongs to this group may be accepted to
242
+ // settle this invoice. Mutually exclusive to asset_id.
243
+ bytes group_key = 6;
244
+
245
+ // An optional text field that can be used to provide additional metadata
246
+ // about the invoice to the price oracle. This can include information
247
+ // about the wallet end user that initiated the transaction, or any
248
+ // authentication information that the price oracle can use to give out a
249
+ // more accurate (or discount) asset rate. Though not verified or enforced
250
+ // by tapd, the suggested format for this field is a JSON string.
251
+ // This field is optional and can be left empty if no metadata is available.
252
+ // The maximum length of this field is 32'768 bytes.
253
+ string price_oracle_metadata = 7;
191
254
  }
192
255
 
193
256
  message AddInvoiceResponse {
@@ -200,11 +263,26 @@ message AddInvoiceResponse {
200
263
 
201
264
  message AssetPayReq {
202
265
  // The asset ID that will be used to resolve the invoice's satoshi amount.
266
+ // Mutually exclusive to group_key.
203
267
  bytes asset_id = 1;
204
268
 
205
269
  // The normal LN invoice that whose amount will be mapped to units of the
206
270
  // asset ID.
207
271
  string pay_req_string = 2;
272
+
273
+ // The group key that will be used to resolve the invoice's satoshi amount.
274
+ // Mutually exclusive to asset_id.
275
+ bytes group_key = 3;
276
+
277
+ // An optional text field that can be used to provide additional metadata
278
+ // about the invoice to the price oracle. This can include information
279
+ // about the wallet end user that initiated the transaction, or any
280
+ // authentication information that the price oracle can use to give out a
281
+ // more accurate (or discount) asset rate. Though not verified or enforced
282
+ // by tapd, the suggested format for this field is a JSON string.
283
+ // This field is optional and can be left empty if no metadata is available.
284
+ // The maximum length of this field is 32'768 bytes.
285
+ string price_oracle_metadata = 4;
208
286
  }
209
287
 
210
288
  message AssetPayReqResponse {
@@ -218,9 +296,11 @@ message AssetPayReqResponse {
218
296
  taprpc.AssetGroup asset_group = 3;
219
297
 
220
298
  // Genesis information for the asset ID which includes the meta hash, and
221
- // asset ID.
299
+ // asset ID. This is only set if the payment request was decoded with an
300
+ // asset ID and not with a group key (since a group can contain assets from
301
+ // different minting events or genesis infos).
222
302
  taprpc.GenesisInfo genesis_info = 4;
223
303
 
224
304
  // The normal decoded payment request.
225
305
  lnrpc.PayReq pay_req = 5;
226
- }
306
+ }
@@ -0,0 +1,36 @@
1
+ syntax = "proto3";
2
+
3
+ package taprpc;
4
+
5
+ option go_package = "github.com/lightninglabs/taproot-assets/taprpc";
6
+
7
+ // Represents a Bitcoin transaction outpoint.
8
+ message OutPoint {
9
+ /*
10
+ Raw bytes representing the transaction id.
11
+ */
12
+ bytes txid = 1;
13
+
14
+ /*
15
+ The index of the output on the transaction.
16
+ */
17
+ uint32 output_index = 2;
18
+ }
19
+
20
+ // A transaction outpoint annotated with TAP-level asset metadata. It uniquely
21
+ // identifies an asset anchored at a specific outpoint.
22
+ message AssetOutPoint {
23
+ // The outpoint of the asset anchor, represented as a string in the
24
+ // format "<txid>:<vout>". The <txid> is the transaction ID of the UTXO,
25
+ // hex-encoded and byte-reversed (i.e., the internal little-endian
26
+ // 32-byte value is reversed to big-endian hex format) to match standard
27
+ // Bitcoin RPC and UI conventions.
28
+ string anchor_out_point = 1;
29
+
30
+ // The asset ID of the asset anchored at the outpoint.
31
+ bytes asset_id = 2;
32
+
33
+ // The script key of the asset. This is the taproot output key that the
34
+ // asset is locked to.
35
+ bytes script_key = 3;
36
+ }