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
@@ -1,5 +1,7 @@
1
1
  syntax = "proto3";
2
2
 
3
+ import "tapcommon.proto";
4
+
3
5
  package taprpc;
4
6
 
5
7
  option go_package = "github.com/lightninglabs/taproot-assets/taprpc";
@@ -87,6 +89,13 @@ service TaprootAssets {
87
89
  */
88
90
  rpc ExportProof (ExportProofRequest) returns (ProofFile);
89
91
 
92
+ /* tapcli: `proofs unpack`
93
+ UnpackProofFile unpacks a proof file into a list of the individual raw
94
+ proofs in the proof chain.
95
+ */
96
+ rpc UnpackProofFile (UnpackProofFileRequest)
97
+ returns (UnpackProofFileResponse);
98
+
90
99
  /* tapcli: `assets send`
91
100
  SendAsset uses one or multiple passed Taproot Asset address(es) to attempt
92
101
  to complete an asset send. The method returns information w.r.t the on chain
@@ -120,7 +129,7 @@ service TaprootAssets {
120
129
  FetchAssetMeta allows a caller to fetch the reveal meta data for an asset
121
130
  either by the asset ID for that asset, or a meta hash.
122
131
  */
123
- rpc FetchAssetMeta (FetchAssetMetaRequest) returns (AssetMeta);
132
+ rpc FetchAssetMeta (FetchAssetMetaRequest) returns (FetchAssetMetaResponse);
124
133
 
125
134
  /* tapcli: `events receive`
126
135
  SubscribeReceiveEvents allows a caller to subscribe to receive events for
@@ -135,6 +144,19 @@ service TaprootAssets {
135
144
  */
136
145
  rpc SubscribeSendEvents (SubscribeSendEventsRequest)
137
146
  returns (stream SendEvent);
147
+
148
+ /*
149
+ RegisterTransfer informs the daemon about a new inbound transfer that has
150
+ happened. This is used for interactive transfers where no TAP address is
151
+ involved and the recipient is aware of the transfer through an out-of-band
152
+ protocol but the daemon hasn't been informed about the completion of the
153
+ transfer. For this to work, the proof must already be in the recipient's
154
+ local universe (e.g. through the use of the universerpc.InsertProof RPC or
155
+ the universe proof courier and universe sync mechanisms) and this call
156
+ simply instructs the daemon to detect the transfer as an asset it owns.
157
+ */
158
+ rpc RegisterTransfer (RegisterTransferRequest)
159
+ returns (RegisterTransferResponse);
138
160
  }
139
161
 
140
162
  enum AssetType {
@@ -186,8 +208,19 @@ message AssetMeta {
186
208
  }
187
209
 
188
210
  message ListAssetRequest {
211
+ // Whether to include each asset's witness in the response. The witness
212
+ // either contains the spending signatures or the split commitment witness,
213
+ // which can both be large and usually aren't very useful on the command
214
+ // line, so are omitted by default.
189
215
  bool with_witness = 1;
216
+
217
+ // Include assets that are marked as spent (which is always true for burn
218
+ // or tombstone assets).
190
219
  bool include_spent = 2;
220
+
221
+ // Include assets that are leased (locked/reserved) by the daemon for a
222
+ // pending transfer. Leased assets cannot be used by the daemon until the
223
+ // pending transfer is confirmed or the lease expires.
191
224
  bool include_leased = 3;
192
225
 
193
226
  // List assets that aren't confirmed yet. Only freshly minted assets will
@@ -196,6 +229,29 @@ message ListAssetRequest {
196
229
  // confirmed (check either transfers or receives for unconfirmed outbound or
197
230
  // inbound assets).
198
231
  bool include_unconfirmed_mints = 4;
232
+
233
+ // Only return assets with amount greater or equal to this value.
234
+ uint64 min_amount = 5;
235
+
236
+ // Only return assets with amount less or equal to this value.
237
+ uint64 max_amount = 6;
238
+
239
+ // Only return assets that belong to the group with this key.
240
+ bytes group_key = 7;
241
+
242
+ // Return all assets that use this script key.
243
+ ScriptKey script_key = 8;
244
+
245
+ // Return all assets that are currently anchored on this outpoint.
246
+ OutPoint anchor_outpoint = 9;
247
+
248
+ // The script key type to filter the assets by. If not set, only assets with
249
+ // a BIP-0086 script key will be returned (which is the equivalent of
250
+ // setting script_key_type.explicit_type = SCRIPT_KEY_BIP86). If the type
251
+ // is set to SCRIPT_KEY_BURN or SCRIPT_KEY_TOMBSTONE the include_spent flag
252
+ // will automatically be set to true, because assets of that type are always
253
+ // marked as spent.
254
+ ScriptKeyTypeQuery script_key_type = 10;
199
255
  }
200
256
 
201
257
  message AnchorInfo {
@@ -230,6 +286,9 @@ message AnchorInfo {
230
286
 
231
287
  // The height of the block which contains the anchor transaction.
232
288
  uint32 block_height = 8;
289
+
290
+ // The UTC Unix timestamp of the block containing the anchor transaction.
291
+ int64 block_timestamp = 9;
233
292
  }
234
293
 
235
294
  message GenesisInfo {
@@ -255,8 +314,40 @@ message GenesisInfo {
255
314
  uint32 output_index = 6;
256
315
  }
257
316
 
317
+ /*
318
+ This message represents an external key used for deriving and managing
319
+ hierarchical deterministic (HD) wallet addresses according to BIP-86.
320
+ */
321
+ message ExternalKey {
322
+ /*
323
+ This field specifies the extended public key derived at depth 3 of the
324
+ BIP-86 hierarchy (e.g., m/86'/0'/0'). This key serves as the parent key for
325
+ deriving child public keys and addresses.
326
+ */
327
+ string xpub = 1;
328
+
329
+ /*
330
+ This field specifies the fingerprint of the master key, derived from the
331
+ first 4 bytes of the hash160 of the master public key. It is used to
332
+ identify the master key in BIP-86 derivation schemes.
333
+ */
334
+ bytes master_fingerprint = 2;
335
+
336
+ /*
337
+ This field specifies the extended BIP-86 derivation path used to derive a
338
+ child key from the XPub. Starting from the base path of the XPub
339
+ (e.g., m/86'/0'/0'), this path must contain exactly 5 components in total
340
+ (e.g., m/86'/0'/0'/0/0), with the additional components defining specific
341
+ child keys, such as individual addresses.
342
+ */
343
+ string derivation_path = 3;
344
+ }
345
+
258
346
  message GroupKeyRequest {
259
- // The internal key for the asset group before any tweaks have been applied.
347
+ /*
348
+ The internal key for the asset group before any tweaks have been applied.
349
+ If this field is set then external_key must be empty, and vice versa.
350
+ */
260
351
  KeyDescriptor raw_key = 1;
261
352
 
262
353
  /*
@@ -279,6 +370,16 @@ message GroupKeyRequest {
279
370
  member of this asset group.
280
371
  */
281
372
  bytes new_asset = 4;
373
+
374
+ /*
375
+ The external key is an optional field that allows specifying an
376
+ external signing key for the group virtual transaction during minting.
377
+ This key enables signing operations to be performed externally, outside
378
+ the daemon.
379
+
380
+ If this field is set then raw_key must be empty, and vice versa.
381
+ */
382
+ ExternalKey external_key = 5;
282
383
  }
283
384
 
284
385
  message TxOut {
@@ -420,6 +521,9 @@ message Asset {
420
521
  // Describes where in the chain the asset is currently anchored.
421
522
  AnchorInfo chain_anchor = 12;
422
523
 
524
+ // The asset's previous witnesses, which either contain the spending
525
+ // witness stack (usually a signature) or the split commitment witness
526
+ // (which is used to prove the split commitment of a split asset).
423
527
  repeated PrevWitness prev_witnesses = 13;
424
528
 
425
529
  // Indicates whether the asset has been spent.
@@ -437,6 +541,7 @@ message Asset {
437
541
  // assets in this output are destroyed and can no longer be spent.
438
542
  bool is_burn = 17;
439
543
 
544
+ // Deprecated, use script_key_type instead!
440
545
  // Indicates whether this script key has either been derived by the local
441
546
  // wallet or was explicitly declared to be known by using the
442
547
  // DeclareScriptKey RPC. Knowing the key conceptually means the key belongs
@@ -447,6 +552,7 @@ message Asset {
447
552
  // script key will be shown in the wallet balance.
448
553
  bool script_key_declared_known = 18;
449
554
 
555
+ // Deprecated, use script_key_type instead!
450
556
  // Indicates whether the script key is known to have a Tapscript spend path,
451
557
  // meaning that the Taproot merkle root tweak is not empty. This will only
452
558
  // ever be true if either script_key_is_local or script_key_internals_known
@@ -459,21 +565,37 @@ message Asset {
459
565
  // field is null, it means the presence of a decimal display field is
460
566
  // unknown in the current context.
461
567
  DecimalDisplay decimal_display = 20;
568
+
569
+ // The type of the script key. This type is either user-declared when custom
570
+ // script keys are added, or automatically determined by the daemon for
571
+ // standard operations (e.g. BIP-86 keys, burn keys, tombstone keys, channel
572
+ // related keys).
573
+ ScriptKeyType script_key_type = 21;
462
574
  }
463
575
 
464
576
  message PrevWitness {
577
+ // The previous input asset that this witness is for.
465
578
  PrevInputAsset prev_id = 1;
466
579
 
580
+ // The witness stack that is used to prove the asset owner's authorization
581
+ // to spend an asset. This is only set if the asset is the root asset of an
582
+ // asset split.
467
583
  repeated bytes tx_witness = 2;
468
584
 
585
+ // The split commitment that is used to prove the split commitment of a
586
+ // split asset. This is only set if the asset is a split asset.
469
587
  SplitCommitment split_commitment = 3;
470
588
  }
471
589
 
472
590
  message SplitCommitment {
591
+ // The root asset that contains the transaction witness that authorizes the
592
+ // spend of the asset.
473
593
  Asset root_asset = 1;
474
594
  }
475
595
 
476
596
  message ListAssetResponse {
597
+ // The list of assets found in the database matching the request query
598
+ // parameters.
477
599
  repeated Asset assets = 1;
478
600
 
479
601
  // This is a count of unconfirmed outgoing transfers. Unconfirmed transfers
@@ -487,7 +609,15 @@ message ListAssetResponse {
487
609
  }
488
610
 
489
611
  message ListUtxosRequest {
612
+ // Whether to include UTXOs that are marked as leased (locked/reserved) by
613
+ // the wallet for a pending transfer. Leased UTXOs cannot be used by the
614
+ // wallet until the pending transfer is confirmed or the lease expires.
490
615
  bool include_leased = 1;
616
+
617
+ // The script key type to filter the assets by. If not set, only assets with
618
+ // a BIP-0086 script key will be returned (which is the equivalent of
619
+ // setting script_key_type.explicit_type = SCRIPT_KEY_BIP86).
620
+ ScriptKeyTypeQuery script_key_type = 2;
491
621
  }
492
622
 
493
623
  message ManagedUtxo {
@@ -585,6 +715,14 @@ message ListBalancesRequest {
585
715
 
586
716
  // An option to include previous leased assets in the balances.
587
717
  bool include_leased = 5;
718
+
719
+ // The script key type to filter the assets by. If not set, only assets with
720
+ // a BIP-0086 script key will be returned (which is the equivalent of
721
+ // setting script_key_type.explicit_type = SCRIPT_KEY_BIP86). If the type
722
+ // is set to SCRIPT_KEY_BURN or SCRIPT_KEY_TOMBSTONE the include_spent flag
723
+ // will automatically be set to true, because assets of that type are always
724
+ // marked as spent.
725
+ ScriptKeyTypeQuery script_key_type = 6;
588
726
  }
589
727
 
590
728
  message AssetBalance {
@@ -593,6 +731,9 @@ message AssetBalance {
593
731
 
594
732
  // The balance of the asset owned by the target daemon.
595
733
  uint64 balance = 3;
734
+
735
+ // The group key of the asset (if it belongs to a group).
736
+ bytes group_key = 4;
596
737
  }
597
738
 
598
739
  message AssetGroupBalance {
@@ -604,9 +745,20 @@ message AssetGroupBalance {
604
745
  }
605
746
 
606
747
  message ListBalancesResponse {
748
+ // The map of asset balances, where the key is the asset ID and the value
749
+ // is the balance of that asset owned by the target daemon. This is only
750
+ // set if group_by.asset_id is true in the request.
607
751
  map<string, AssetBalance> asset_balances = 1;
608
752
 
753
+ // The map of asset group balances, where the key is the group key
754
+ // and the value is the balance of that group owned by the target daemon.
755
+ // This is only set if group_by.group_key is true in the request.
609
756
  map<string, AssetGroupBalance> asset_group_balances = 2;
757
+
758
+ // This is a count of unconfirmed outgoing transfers. Unconfirmed transfers
759
+ // (and the change resulting from them) do not appear in the balance. The
760
+ // balance only represents confirmed assets that are owned by the daemon.
761
+ uint64 unconfirmed_transfers = 3;
610
762
  }
611
763
 
612
764
  message ListTransfersRequest {
@@ -644,14 +796,22 @@ message ChainHash {
644
796
  }
645
797
 
646
798
  message AssetTransfer {
799
+ // The timestamp of the transfer in UTC Unix time seconds.
647
800
  int64 transfer_timestamp = 1;
648
801
 
649
- // The new transaction that commits to the set of Taproot Assets found
650
- // at the above new anchor point.
802
+ // The new transaction that commits to the set of Taproot Assets found at
803
+ // the above new anchor point. Note that this is in raw byte format, not
804
+ // the reversed hex string format that is used for displayed txids. When
805
+ // listing assets on the CLI we purposefully use the display format so it
806
+ // is easier to copy and paste into other tools.
651
807
  bytes anchor_tx_hash = 2;
652
808
 
809
+ // The height hint of the anchor transaction. This is the height at which
810
+ // the anchor transaction was published, so the actual inclusion height
811
+ // will be greater than this value.
653
812
  uint32 anchor_tx_height_hint = 3;
654
813
 
814
+ // The total fees paid by the anchor transaction in satoshis.
655
815
  int64 anchor_tx_chain_fees = 4;
656
816
 
657
817
  // Describes the set of spent assets.
@@ -664,6 +824,20 @@ message AssetTransfer {
664
824
  // transaction. If this value is unset, the anchor transaction is
665
825
  // unconfirmed.
666
826
  ChainHash anchor_tx_block_hash = 7;
827
+
828
+ // The block height of the blockchain block that contains the anchor
829
+ // transaction. If the anchor transaction is still unconfirmed, this value
830
+ // will be 0.
831
+ uint32 anchor_tx_block_height = 8;
832
+
833
+ // An optional short label for the transfer. This label can be used to track
834
+ // the progress of the transfer via the logs or an event subscription.
835
+ // Multiple transfers can share the same label.
836
+ string label = 9;
837
+
838
+ // The L1 transaction that anchors the Taproot Asset commitment where the
839
+ // asset resides.
840
+ bytes anchor_tx = 10;
667
841
  }
668
842
 
669
843
  message TransferInput {
@@ -686,17 +860,38 @@ message TransferOutputAnchor {
686
860
  // chain.
687
861
  string outpoint = 1;
688
862
 
863
+ // The anchor transaction output's value in satoshis.
689
864
  int64 value = 2;
690
865
 
866
+ // The anchor transaction output's internal key, which is the Taproot
867
+ // internal key of the on-chain output.
691
868
  bytes internal_key = 3;
692
869
 
870
+ // The Taproot Asset root commitment hash, which is the root of the
871
+ // Taproot Asset commitment tree for the asset that was created.
693
872
  bytes taproot_asset_root = 4;
694
873
 
874
+ // The Taproot merkle root hash committed to by the outpoint of this
875
+ // output. If there is no Tapscript sibling, this is equal to the Taproot
876
+ // Asset root commitment hash.
877
+ // If there is a Tapscript sibling, this is the tap branch root hash of the
878
+ // Taproot Asset root hash and the tapscript sibling.
695
879
  bytes merkle_root = 5;
696
880
 
881
+ // The serialized preimage of a Tapscript sibling, if there was one. If this
882
+ // is empty, then the merkle_root hash is equal to the Taproot root hash
883
+ // of the anchor output.
697
884
  bytes tapscript_sibling = 6;
698
885
 
886
+ // The number of passive assets that were committed to this output.
887
+ // Passive assets are assets that are not actively spent, but are instead
888
+ // passively carried along with the main asset and re-anchored in the
889
+ // anchor output.
699
890
  uint32 num_passive_assets = 7;
891
+
892
+ // The actual output's script, which is the P2TR script for the final
893
+ // Taproot output key created by this transfer output.
894
+ bytes pk_script = 8;
700
895
  }
701
896
 
702
897
  enum OutputType {
@@ -733,30 +928,65 @@ enum ProofDeliveryStatus {
733
928
  }
734
929
 
735
930
  message TransferOutput {
931
+ // The transfer output's on-chain anchor information, which contains the
932
+ // BTC-level output information that anchors the Taproot Asset commitment
933
+ // for this output.
736
934
  TransferOutputAnchor anchor = 1;
737
935
 
936
+ // The script key of the asset that was created.
738
937
  bytes script_key = 2;
739
938
 
939
+ // Indicates whether the script key is known to the wallet of the lnd node
940
+ // connected to the Taproot Asset daemon. If true, the asset will be shown
941
+ // in the wallet balance.
740
942
  bool script_key_is_local = 3;
741
943
 
944
+ // The amount of the asset that was created in this output.
742
945
  uint64 amount = 4;
743
946
 
744
947
  // The new individual transition proof (not a full proof file) that proves
745
948
  // the inclusion of the new asset within the new AnchorTx.
746
949
  bytes new_proof_blob = 5;
747
950
 
951
+ // The split commitment root hash of the asset that was created in this
952
+ // output. This is only set if the asset is a split root output, meaning
953
+ // that the asset is a split root output that carries the change from a
954
+ // split or a tombstone from a non-interactive full value send output.
748
955
  bytes split_commit_root_hash = 6;
749
956
 
957
+ // The type of the output. This is used to distinguish between a simple
958
+ // output that is not a split root and does not carry passive assets, and a
959
+ // split root output that carries the change from a split or a tombstone
960
+ // from a non-interactive full value send output.
750
961
  OutputType output_type = 7;
751
962
 
963
+ // The asset version of the output. This is used to determine how the asset
964
+ // is encoded in the Taproot Asset commitment tree.
752
965
  AssetVersion asset_version = 8;
753
966
 
967
+ // The lock time of the output, which is an optional field that can be set
968
+ // to delay the spending of the output until a certain time in the future.
754
969
  uint64 lock_time = 9;
755
970
 
971
+ // The relative lock time of the output, which is an optional field that
972
+ // can be set to delay the spending of the output relative to the block
973
+ // height at which the output is confirmed.
756
974
  uint64 relative_lock_time = 10;
757
975
 
758
976
  // The delivery status of the proof associated with this output.
759
977
  ProofDeliveryStatus proof_delivery_status = 11;
978
+
979
+ // The asset ID of the asset that was created in this output.
980
+ bytes asset_id = 12;
981
+
982
+ // The proof courier address that was used to deliver the proof for this
983
+ // output.
984
+ string proof_courier_addr = 13;
985
+
986
+ // The Taproot Asset address that was used to create the output. This is
987
+ // only set for new outputs for tapd versions that support the address V2
988
+ // format. For older versions, this field will be empty.
989
+ string tap_addr = 14;
760
990
  }
761
991
 
762
992
  message StopRequest {
@@ -769,9 +999,16 @@ message DebugLevelRequest {
769
999
  // If true, all the valid debug sub-systems will be returned.
770
1000
  bool show = 1;
771
1001
 
1002
+ // If set, the debug level for the sub-system will be set to this value.
1003
+ // Can be one of: "trace", "debug", "info", "warn", "error", "critical",
1004
+ // "off", to set a global level, optionally followed by a comma-separated
1005
+ // list of sub-systems to set the level for. For example:
1006
+ // "debug,TADB=info,UNIV=warn".
772
1007
  string level_spec = 2;
773
1008
  }
774
1009
  message DebugLevelResponse {
1010
+ // The list of available logging sub-systems that can be set to a specific
1011
+ // debug level.
775
1012
  string sub_systems = 1;
776
1013
  }
777
1014
 
@@ -786,22 +1023,33 @@ enum AddrVersion {
786
1023
  // ADDR_VERSION_V1 is the address version that uses V2 Taproot Asset
787
1024
  // commitments.
788
1025
  ADDR_VERSION_V1 = 2;
1026
+
1027
+ // ADDR_VERSION_V2 is the address version that supports sending grouped
1028
+ // assets and require the new auth mailbox proof courier address format.
1029
+ ADDR_VERSION_V2 = 3;
789
1030
  }
790
1031
 
791
1032
  message Addr {
792
1033
  // The bech32 encoded Taproot Asset address.
793
1034
  string encoded = 1;
794
1035
 
795
- // The asset ID that uniquely identifies the asset.
1036
+ // The asset ID that uniquely identifies the asset. This can be all zeroes
1037
+ // for V2 addresses that have a group key set.
796
1038
  bytes asset_id = 2;
797
1039
 
798
1040
  // The type of the asset.
799
1041
  AssetType asset_type = 3;
800
1042
 
801
- // The total amount of the asset stored in this Taproot Asset UTXO.
1043
+ // The total amount of the asset stored in this Taproot Asset UTXO. The
1044
+ // amount is allowed to be unset for V2 addresses, where the sender will
1045
+ // post a fragment containing the asset IDs and amounts to the proof
1046
+ // courier's auth mailbox.
802
1047
  uint64 amount = 4;
803
1048
 
804
- // The group key of the asset (if it exists)
1049
+ // The group key of the asset group to receive assets for. If this field
1050
+ // is set, then any asset of the group can be sent to this address. Can only
1051
+ // be specified for V2 addresses. If this field is set, the asset_id
1052
+ // field must be empty.
805
1053
  bytes group_key = 5;
806
1054
 
807
1055
  /*
@@ -828,7 +1076,9 @@ message Addr {
828
1076
  */
829
1077
  bytes taproot_output_key = 9;
830
1078
 
831
- // The address of the proof courier service used in proof transfer.
1079
+ // The address of the proof courier service used in proof transfer. For V2
1080
+ // addresses the proof courier address is mandatory and must be a valid auth
1081
+ // mailbox address (authmailbox+universerpc://host:port).
832
1082
  string proof_courier_addr = 10;
833
1083
 
834
1084
  // The asset version of the address.
@@ -859,12 +1109,23 @@ message QueryAddrRequest {
859
1109
  }
860
1110
 
861
1111
  message QueryAddrResponse {
1112
+ // The list of addresses that match the query parameters.
862
1113
  repeated Addr addrs = 1;
863
1114
  }
864
1115
 
865
1116
  message NewAddrRequest {
1117
+ /*
1118
+ The asset ID to create the address for. This is required for V0 and V1
1119
+ addresses. For V2 addresses, this field is optional and must be empty if the
1120
+ group key is set.
1121
+ */
866
1122
  bytes asset_id = 1;
867
1123
 
1124
+ /*
1125
+ The number of asset units to be sent to the address. This is required for V0
1126
+ and V1 addresses. For V2 addresses, this field is optional and can be left
1127
+ at 0 to indicate that the sender can choose the amount of assets to send.
1128
+ */
868
1129
  uint64 amt = 2;
869
1130
 
870
1131
  /*
@@ -910,6 +1171,91 @@ message NewAddrRequest {
910
1171
  The version of this address.
911
1172
  */
912
1173
  AddrVersion address_version = 8;
1174
+
1175
+ /*
1176
+ The group key to receive assets for. This can only be specified for V2
1177
+ addresses. If this field is set, the asset_id field must be empty.
1178
+ */
1179
+ bytes group_key = 9;
1180
+
1181
+ /*
1182
+ If set, the daemon skips the connectivity check to the proof courier service
1183
+ when creating an address. Connection checks currently apply only to certain
1184
+ address schemes. Use this to create addresses while offline.
1185
+ */
1186
+ bool skip_proof_courier_conn_check = 10;
1187
+ }
1188
+
1189
+ enum ScriptKeyType {
1190
+ /*
1191
+ The type of script key is not known. This should only be stored for assets
1192
+ where we don't know the internal key of the script key (e.g. for imported
1193
+ proofs).
1194
+ */
1195
+ SCRIPT_KEY_UNKNOWN = 0;
1196
+
1197
+ /*
1198
+ The script key is a normal BIP-86 key. This means that the internal key is
1199
+ turned into a Taproot output key by applying a BIP-86 tweak to it.
1200
+ */
1201
+ SCRIPT_KEY_BIP86 = 1;
1202
+
1203
+ /*
1204
+ The script key is a key that contains a script path that is defined by the
1205
+ user and is therefore external to the tapd wallet. Spending this key
1206
+ requires providing a specific witness and must be signed through the vPSBT
1207
+ signing flow.
1208
+ */
1209
+ SCRIPT_KEY_SCRIPT_PATH_EXTERNAL = 2;
1210
+
1211
+ /*
1212
+ The script key is a specific un-spendable key that indicates a burnt asset.
1213
+ Assets with this key type can never be spent again, as a burn key is a
1214
+ tweaked NUMS key that nobody knows the private key for.
1215
+ */
1216
+ SCRIPT_KEY_BURN = 3;
1217
+
1218
+ /*
1219
+ The script key is a specific un-spendable key that indicates a tombstone
1220
+ output. This is only the case for zero-value assets that result from a
1221
+ non-interactive (TAP address) send where no change was left over.
1222
+ */
1223
+ SCRIPT_KEY_TOMBSTONE = 4;
1224
+
1225
+ /*
1226
+ The script key is used for an asset that resides within a Taproot Asset
1227
+ Channel. That means the script key is either a funding key (OP_TRUE), a
1228
+ commitment output key (to_local, to_remote, htlc), or a HTLC second-level
1229
+ transaction output key. Keys related to channels are not shown in asset
1230
+ balances (unless specifically requested) and are never used for coin
1231
+ selection.
1232
+ */
1233
+ SCRIPT_KEY_CHANNEL = 5;
1234
+
1235
+ /*
1236
+ The script key is derived using the asset ID and a single leaf that contains
1237
+ an un-spendable Pedersen commitment key
1238
+ `(OP_CHECKSIG <NUMS_key + asset_id * G>)`. This can be used to create
1239
+ unique script keys for each virtual packet in the fragment, to avoid proof
1240
+ collisions in the universe, where the script keys should be spendable by
1241
+ a hardware wallet that only supports miniscript policies for signing P2TR
1242
+ outputs.
1243
+ */
1244
+ SCRIPT_KEY_UNIQUE_PEDERSEN = 6;
1245
+ }
1246
+
1247
+ message ScriptKeyTypeQuery {
1248
+ oneof type {
1249
+ // Query for assets of a specific script key type.
1250
+ ScriptKeyType explicit_type = 1;
1251
+
1252
+ // Query for assets with all script key types.
1253
+ bool all_types = 2;
1254
+
1255
+ // TODO(guggero): Add a bit field that allows querying for multiple
1256
+ // script key types at once. Need a way to do a WHERE ... IN () type SQL
1257
+ // query that is compatible with all backends first though.
1258
+ }
913
1259
  }
914
1260
 
915
1261
  message ScriptKey {
@@ -930,6 +1276,14 @@ message ScriptKey {
930
1276
  empty then a BIP-86 style tweak is applied to the internal key.
931
1277
  */
932
1278
  bytes tap_tweak = 3;
1279
+
1280
+ /*
1281
+ The type of the script key. This type is either user-declared when custom
1282
+ script keys are added, or automatically determined by the daemon for
1283
+ standard operations (e.g. BIP-86 keys, burn keys, tombstone keys, channel
1284
+ related keys).
1285
+ */
1286
+ ScriptKeyType type = 4;
933
1287
  }
934
1288
 
935
1289
  message KeyLocator {
@@ -977,6 +1331,7 @@ message TapBranch {
977
1331
  }
978
1332
 
979
1333
  message DecodeAddrRequest {
1334
+ // The bech32 encoded Taproot Asset address to decode.
980
1335
  string addr = 1;
981
1336
  }
982
1337
 
@@ -985,6 +1340,8 @@ message ProofFile {
985
1340
  // individual mint/transfer proof.
986
1341
  bytes raw_proof_file = 1;
987
1342
 
1343
+ // The genesis point of the proof file, which is the asset's genesis
1344
+ // transaction outpoint.
988
1345
  string genesis_point = 2;
989
1346
  }
990
1347
 
@@ -1053,6 +1410,7 @@ message DecodedProof {
1053
1410
  }
1054
1411
 
1055
1412
  message VerifyProofResponse {
1413
+ // Whether the proof file was valid or not.
1056
1414
  bool valid = 1;
1057
1415
 
1058
1416
  // The decoded last proof in the file if the proof file was valid.
@@ -1079,18 +1437,37 @@ message DecodeProofRequest {
1079
1437
  }
1080
1438
 
1081
1439
  message DecodeProofResponse {
1440
+ // The decoded, more human-readable proof.
1082
1441
  DecodedProof decoded_proof = 1;
1083
1442
  }
1084
1443
 
1085
1444
  message ExportProofRequest {
1445
+ // The asset ID of the asset to export the proof for.
1086
1446
  bytes asset_id = 1;
1447
+
1448
+ // The script key of the asset to export the proof for.
1087
1449
  bytes script_key = 2;
1450
+
1451
+ // The on-chain outpoint of the asset to export the proof for.
1088
1452
  OutPoint outpoint = 3;
1089
1453
 
1090
1454
  // TODO(roasbeef): specify information to make new state transition in proof
1091
1455
  // file?
1092
1456
  }
1093
1457
 
1458
+ message UnpackProofFileRequest {
1459
+ // The raw proof file encoded as bytes. Must be a file and not just an
1460
+ // individual mint/transfer proof.
1461
+ bytes raw_proof_file = 1;
1462
+ }
1463
+
1464
+ message UnpackProofFileResponse {
1465
+ // The individual proofs contained in the proof file, ordered by their
1466
+ // appearance within the file (issuance proof first, last known transfer
1467
+ // last).
1468
+ repeated bytes raw_proofs = 1;
1469
+ }
1470
+
1094
1471
  enum AddrEventStatus {
1095
1472
  ADDR_EVENT_STATUS_UNKNOWN = 0;
1096
1473
  ADDR_EVENT_STATUS_TRANSACTION_DETECTED = 1;
@@ -1143,6 +1520,14 @@ message AddrReceivesRequest {
1143
1520
 
1144
1521
  // Filter receives by a specific status. Leave empty to get all receives.
1145
1522
  AddrEventStatus filter_status = 2;
1523
+
1524
+ // Filter receives by creation time greater than or equal to this timestamp.
1525
+ // If not set, no start time filtering is applied.
1526
+ uint64 start_timestamp = 3;
1527
+
1528
+ // Filter receives by creation time less than or equal to this timestamp.
1529
+ // If not set, no end time filtering is applied.
1530
+ uint64 end_timestamp = 4;
1146
1531
  }
1147
1532
 
1148
1533
  message AddrReceivesResponse {
@@ -1151,22 +1536,66 @@ message AddrReceivesResponse {
1151
1536
  }
1152
1537
 
1153
1538
  message SendAssetRequest {
1539
+ // The list of TAP addresses to send assets to. The amount to send to each
1540
+ // address is determined by the amount specified in the address itself. For
1541
+ // V2 addresses that are allowed to not specify an amount, use the
1542
+ // addresses_with_amounts list to specify the amount to send to each
1543
+ // address. The tap_addrs and addresses_with_amounts lists are mutually
1544
+ // exclusive, meaning that if addresses_with_amounts is set, then tap_addrs
1545
+ // must be empty, and vice versa.
1154
1546
  repeated string tap_addrs = 1;
1155
1547
 
1156
1548
  // The optional fee rate to use for the minting transaction, in sat/kw.
1157
1549
  uint32 fee_rate = 2;
1158
- // TODO(roasbeef): maybe in future add details re type of ProofCourier or
1159
- // w/e
1550
+
1551
+ // An optional short label for the send transfer. This label can be used to
1552
+ // track the progress of the transfer via the logs or an event subscription.
1553
+ // Multiple transfers can share the same label.
1554
+ string label = 3;
1555
+
1556
+ // A flag to skip the proof courier ping check. This is useful for
1557
+ // testing purposes and for forced transfers when the proof courier
1558
+ // is not immediately available.
1559
+ bool skip_proof_courier_ping_check = 4;
1560
+
1561
+ // A list of addresses and the amounts of asset units to send to them. This
1562
+ // must be used for V2 TAP addresses that don't specify an amount in the
1563
+ // address itself and allow the sender to choose the amount to send. The
1564
+ // tap_addrs and addresses_with_amounts lists are mutually exclusive,
1565
+ // meaning that if addresses_with_amounts is set, then tap_addrs must be
1566
+ // empty, and vice versa.
1567
+ repeated AddressWithAmount addresses_with_amounts = 5;
1568
+ }
1569
+
1570
+ message AddressWithAmount {
1571
+ // The TAP address to send assets to.
1572
+ string tap_addr = 1;
1573
+
1574
+ // The amount of asset units to send to the address. This is only used for
1575
+ // re-usable V2 addresses that don't specify an amount in the address itself
1576
+ // and allow the sender to specify the amount on each send attempt. For V0
1577
+ // or V1 addresses, this can be left empty (zero) as the amount is taken
1578
+ // from the address itself.
1579
+ uint64 amount = 2;
1160
1580
  }
1161
1581
 
1162
1582
  message PrevInputAsset {
1583
+ // The previous input's anchor point, which is the on-chain outpoint the
1584
+ // asset was anchored to.
1163
1585
  string anchor_point = 1;
1586
+
1587
+ // The asset ID of the asset that was spent as an input.
1164
1588
  bytes asset_id = 2;
1589
+
1590
+ // The script key of the asset that was spent as an input.
1165
1591
  bytes script_key = 3;
1592
+
1593
+ // The amount of the asset that was spent as an input.
1166
1594
  uint64 amount = 4;
1167
1595
  }
1168
1596
 
1169
1597
  message SendAssetResponse {
1598
+ // The transfer that was created to send assets to one or more addresses.
1170
1599
  AssetTransfer transfer = 1;
1171
1600
  }
1172
1601
 
@@ -1174,13 +1603,32 @@ message GetInfoRequest {
1174
1603
  }
1175
1604
 
1176
1605
  message GetInfoResponse {
1606
+ // The full version string of the Taproot Asset daemon.
1177
1607
  string version = 1;
1608
+
1609
+ // The full version string of the LND node that this daemon is connected to.
1178
1610
  string lnd_version = 2;
1611
+
1612
+ // The network this daemon is connected to, e.g. "mainnet", "testnet", or
1613
+ // any other supported network.
1179
1614
  string network = 3;
1615
+
1616
+ // The public key of the LND node that this daemon is connected to.
1180
1617
  string lnd_identity_pubkey = 4;
1618
+
1619
+ // The alias of the LND node that this daemon is connected to.
1181
1620
  string node_alias = 5;
1621
+
1622
+ // The current block height as seen by the LND node this daemon is
1623
+ // connected to.
1182
1624
  uint32 block_height = 6;
1625
+
1626
+ // The current block hash as seen by the LND node this daemon is connected
1627
+ // to.
1183
1628
  string block_hash = 7;
1629
+
1630
+ // Whether the LND node this daemon is connected to is synced to the
1631
+ // Bitcoin chain.
1184
1632
  bool sync_to_chain = 8;
1185
1633
  }
1186
1634
 
@@ -1200,6 +1648,54 @@ message FetchAssetMetaRequest {
1200
1648
  }
1201
1649
  }
1202
1650
 
1651
+ message FetchAssetMetaResponse {
1652
+ /*
1653
+ The raw data of the asset meta data. Based on the type below, this may be
1654
+ structured data such as a text file or PDF. The size of the data is limited
1655
+ to 1MiB.
1656
+ */
1657
+ bytes data = 1;
1658
+
1659
+ // The type of the asset meta data.
1660
+ AssetMetaType type = 2;
1661
+
1662
+ /*
1663
+ The hash of the meta. This is the hash of the TLV serialization of the meta
1664
+ itself.
1665
+ */
1666
+ bytes meta_hash = 3;
1667
+
1668
+ /*
1669
+ A map of unknown odd TLV types that were encountered during asset meta data
1670
+ decoding.
1671
+ */
1672
+ map<uint64, bytes> unknown_odd_types = 4;
1673
+
1674
+ /*
1675
+ The decimal display value of the asset. This is used to determine the number
1676
+ of decimal places to display when presenting the asset amount to the user.
1677
+ */
1678
+ uint32 decimal_display = 5;
1679
+
1680
+ /*
1681
+ Boolean flag indicating whether the asset-group issuer publishes
1682
+ universe-supply commitments to the canonical universe set.
1683
+ */
1684
+ bool universe_commitments = 6;
1685
+
1686
+ /*
1687
+ List of canonical universe URLs where the asset-group issuer publishes
1688
+ asset-related proofs.
1689
+ */
1690
+ repeated string canonical_universe_urls = 7;
1691
+
1692
+ /*
1693
+ The public key that is used to verify universe supply commitment related
1694
+ on-chain outputs and proofs.
1695
+ */
1696
+ bytes delegation_key = 8;
1697
+ }
1698
+
1203
1699
  message BurnAssetRequest {
1204
1700
  oneof asset {
1205
1701
  // The asset ID of the asset to burn units of.
@@ -1209,6 +1705,7 @@ message BurnAssetRequest {
1209
1705
  string asset_id_str = 2;
1210
1706
  }
1211
1707
 
1708
+ // The number of asset units to burn. This must be greater than zero.
1212
1709
  uint64 amount_to_burn = 3;
1213
1710
 
1214
1711
  // A safety check to ensure the user is aware of the destructive nature of
@@ -1257,21 +1754,10 @@ message AssetBurn {
1257
1754
  }
1258
1755
 
1259
1756
  message ListBurnsResponse {
1757
+ // The list of asset burns that match the query parameters.
1260
1758
  repeated AssetBurn burns = 1;
1261
1759
  }
1262
1760
 
1263
- message OutPoint {
1264
- /*
1265
- Raw bytes representing the transaction id.
1266
- */
1267
- bytes txid = 1;
1268
-
1269
- /*
1270
- The index of the output on the transaction.
1271
- */
1272
- uint32 output_index = 2;
1273
- }
1274
-
1275
1761
  message SubscribeReceiveEventsRequest {
1276
1762
  // Filter receives by a specific address. Leave empty to get all receive
1277
1763
  // events for all addresses.
@@ -1309,6 +1795,14 @@ message SubscribeSendEventsRequest {
1309
1795
  // Filter send events by a specific recipient script key. Leave empty to get
1310
1796
  // all receive events for all parcels.
1311
1797
  bytes filter_script_key = 1;
1798
+
1799
+ // Filter send events by a specific label. Leave empty to not filter by
1800
+ // transfer label.
1801
+ string filter_label = 2;
1802
+
1803
+ // The start time as a Unix timestamp in microseconds. If not set (default
1804
+ // value 0), the daemon will start streaming events from the current time.
1805
+ int64 start_timestamp = 3;
1312
1806
  }
1313
1807
 
1314
1808
  enum SendState {
@@ -1403,9 +1897,17 @@ message SendEvent {
1403
1897
 
1404
1898
  // An optional error, indicating that executing the send_state failed.
1405
1899
  string error = 9;
1900
+
1901
+ // The label of the transfer.
1902
+ string transfer_label = 10;
1903
+
1904
+ // The next send state that will be executed.
1905
+ string next_send_state = 11;
1406
1906
  }
1407
1907
 
1408
1908
  message AnchorTransaction {
1909
+ // The on-chain anchor transaction PSBT packet that was created by the
1910
+ // daemon.
1409
1911
  bytes anchor_psbt = 1;
1410
1912
 
1411
1913
  /*
@@ -1435,4 +1937,23 @@ message AnchorTransaction {
1435
1937
  The final, signed anchor transaction that was broadcast to the network.
1436
1938
  */
1437
1939
  bytes final_tx = 6;
1438
- }
1940
+ }
1941
+
1942
+ message RegisterTransferRequest {
1943
+ // The asset ID of the asset to register the transfer for.
1944
+ bytes asset_id = 1;
1945
+
1946
+ // The optional group key of the asset to register the transfer for.
1947
+ bytes group_key = 2;
1948
+
1949
+ // The script key of the asset to register the transfer for.
1950
+ bytes script_key = 3;
1951
+
1952
+ // The outpoint of the transaction that was used to receive the asset.
1953
+ taprpc.OutPoint outpoint = 4;
1954
+ }
1955
+
1956
+ message RegisterTransferResponse {
1957
+ // The asset transfer that was registered.
1958
+ Asset registered_asset = 1;
1959
+ }