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.
- package/.github/workflows/unit-test.yml +20 -0
- package/CHANGELOG.md +46 -1
- package/README.md +2 -0
- package/bolt02/ids.json +1 -0
- package/grpc/grpc_services.json +1 -1
- package/grpc/protos/lightning.proto +251 -28
- package/grpc/protos/rfqrpc/rfq.proto +53 -5
- package/grpc/protos/router.proto +9 -4
- package/grpc/protos/routerrpc/router.proto +26 -4
- package/grpc/protos/{tapchannelrpc.proto → tapchannel.proto} +105 -25
- package/grpc/protos/tapcommon.proto +36 -0
- package/grpc/protos/taprootassets.proto +544 -23
- package/grpc/protos/walletkit.proto +78 -6
- package/index.js +162 -160
- package/lnd_methods/generic/get_height.js +1 -1
- package/lnd_methods/index.js +162 -160
- package/lnd_methods/info/constants.json +7 -0
- package/lnd_methods/invoices/create_invoice.js +10 -14
- package/lnd_methods/invoices/subscribe_to_invoice.d.ts +4 -0
- package/lnd_methods/invoices/subscribe_to_invoice.js +21 -21
- package/lnd_methods/macaroon/methods.json +4 -0
- package/lnd_methods/offchain/decode_asset_pay_req.d.ts +69 -28
- package/lnd_methods/offchain/decode_asset_pay_req.js +54 -61
- package/lnd_methods/offchain/get_pending_channels.d.ts +16 -0
- package/lnd_methods/offchain/get_pending_channels.js +6 -0
- package/lnd_methods/offchain/get_routing_fee_estimate.d.ts +32 -0
- package/lnd_methods/offchain/get_routing_fee_estimate.js +86 -0
- package/lnd_methods/offchain/index.d.ts +60 -60
- package/lnd_methods/offchain/index.js +6 -4
- package/lnd_methods/offchain/pay_via_routes.d.ts +4 -0
- package/lnd_methods/onchain/close_channel.d.ts +4 -0
- package/lnd_methods/onchain/close_channel.js +4 -0
- package/lnd_methods/onchain/open_channels.d.ts +1 -0
- package/lnd_methods/onchain/open_channels.js +7 -1
- package/lnd_methods/onchain/request_chain_fee_increase.js +5 -0
- package/lnd_methods/onchain/subscribe_to_blocks.js +1 -1
- package/lnd_responses/confirmed_from_payment_status.js +38 -40
- package/lnd_responses/constants.json +1 -0
- package/lnd_responses/forward_from_htlc_event.js +31 -31
- package/lnd_responses/info_as_wallet_info.js +28 -28
- package/lnd_responses/payment_request_details.js +28 -32
- package/lnd_responses/pending_as_pending_channels.js +8 -0
- package/lnd_responses/pending_from_payment.js +24 -24
- package/lnd_responses/routes_from_query_routes.js +30 -30
- package/lnd_responses/rpc_channel_as_channel.js +10 -9
- package/lnd_responses/rpc_fees_as_channel_fees.js +16 -16
- package/lnd_responses/rpc_forward_as_forward_request.js +27 -27
- package/lnd_responses/rpc_payment_as_payment.js +28 -31
- package/package.json +24 -20
- package/test/lnd_methods/offchain/test_get_routing_fee_estimate.js +82 -0
- package/test/lnd_methods/onchain/test_close_channel.js +5 -0
- package/test/lnd_methods/onchain/test_open_channels.js +5 -1
- package/test/lnd_methods/onchain/test_request_chain_fee_increase.js +13 -0
- package/test/lnd_responses/test_pending_as_pending_channels.js +34 -1
- package/test.js +194 -22
- package/.yarn/cache/@babel-code-frame-npm-7.25.7-40a9f53f43-f235cdf9c5.zip +0 -0
- package/.yarn/cache/@babel-helper-validator-identifier-npm-7.25.7-1c758f0472-062f55208d.zip +0 -0
- package/.yarn/cache/@babel-highlight-npm-7.25.7-308b20da71-b6aa45c5bf.zip +0 -0
- package/.yarn/cache/@grpc-grpc-js-npm-1.12.2-733ec8eabe-ee51317f92.zip +0 -0
- package/.yarn/cache/@grpc-proto-loader-npm-0.7.13-be5b6af1c1-399c1b8a46.zip +0 -0
- package/.yarn/cache/@jest-schemas-npm-29.6.3-292730e442-910040425f.zip +0 -0
- package/.yarn/cache/@js-sdsl-ordered-map-npm-4.4.2-158f6c6b74-a927ae4ff8.zip +0 -0
- package/.yarn/cache/@noble-hashes-npm-1.5.0-87c768d742-9cc031d5c8.zip +0 -0
- package/.yarn/cache/@nodelib-fs.scandir-npm-2.1.5-89c67370dd-a970d595bd.zip +0 -0
- package/.yarn/cache/@nodelib-fs.stat-npm-2.0.5-01f4dd3030-012480b5ca.zip +0 -0
- package/.yarn/cache/@nodelib-fs.walk-npm-1.2.8-b4a89da548-190c643f15.zip +0 -0
- package/.yarn/cache/@protobufjs-aspromise-npm-1.1.2-71d00b938f-011fe7ef08.zip +0 -0
- package/.yarn/cache/@protobufjs-base64-npm-1.1.2-cd8ca6814a-67173ac34d.zip +0 -0
- package/.yarn/cache/@protobufjs-codegen-npm-2.0.4-36e188bbe6-59240c850b.zip +0 -0
- package/.yarn/cache/@protobufjs-eventemitter-npm-1.1.0-029cc7d431-0369163a3d.zip +0 -0
- package/.yarn/cache/@protobufjs-fetch-npm-1.1.0-ca857b7df4-3fce7e09eb.zip +0 -0
- package/.yarn/cache/@protobufjs-float-npm-1.0.2-5678f64d08-5781e12412.zip +0 -0
- package/.yarn/cache/@protobufjs-inquire-npm-1.1.0-3c7759e9ce-ca06f02eaf.zip +0 -0
- package/.yarn/cache/@protobufjs-path-npm-1.1.2-641d08de76-856eeb532b.zip +0 -0
- package/.yarn/cache/@protobufjs-pool-npm-1.1.0-47a76f96a1-d6a34fbbd2.zip +0 -0
- package/.yarn/cache/@protobufjs-utf8-npm-1.1.0-02c590807c-f9bf3163d1.zip +0 -0
- package/.yarn/cache/@sinclair-typebox-npm-0.27.8-23e206d653-00bd7362a3.zip +0 -0
- package/.yarn/cache/@tsd-typescript-npm-5.4.5-31c3b104b3-86498d5e15.zip +0 -0
- package/.yarn/cache/@types-caseless-npm-0.12.5-d7dbdab81c-f6a3628add.zip +0 -0
- package/.yarn/cache/@types-eslint-npm-7.29.0-46534a7300-df13991c55.zip +0 -0
- package/.yarn/cache/@types-estree-npm-1.0.6-b5e23f2ea2-8825d6e729.zip +0 -0
- package/.yarn/cache/@types-json-schema-npm-7.0.15-fd16381786-97ed0cb44d.zip +0 -0
- package/.yarn/cache/@types-minimist-npm-1.2.5-c85664a9d8-477047b606.zip +0 -0
- package/.yarn/cache/@types-node-npm-22.7.5-0428b60a8c-1a8bbb504e.zip +0 -0
- package/.yarn/cache/@types-node-npm-22.7.6-cbb64e0ad4-6afe2a1bd7.zip +0 -0
- package/.yarn/cache/@types-normalize-package-data-npm-2.4.4-676a8ba353-65dff72b54.zip +0 -0
- package/.yarn/cache/@types-request-npm-2.48.12-d921ef35cb-20dfad0a46.zip +0 -0
- package/.yarn/cache/@types-tough-cookie-npm-4.0.5-8c5e2162e1-f19409d019.zip +0 -0
- package/.yarn/cache/@types-ws-npm-8.5.12-90c42288cf-ddefb6ad16.zip +0 -0
- package/.yarn/cache/ansi-escapes-npm-4.3.2-3ad173702f-93111c4218.zip +0 -0
- package/.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip +0 -0
- package/.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip +0 -0
- package/.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-513b44c3b2.zip +0 -0
- package/.yarn/cache/ansi-styles-npm-5.2.0-72fc7003e3-d7f4e97ce0.zip +0 -0
- package/.yarn/cache/array-union-npm-2.1.0-4e4852b221-5bee12395c.zip +0 -0
- package/.yarn/cache/arrify-npm-1.0.1-affafba9fe-745075dd4a.zip +0 -0
- package/.yarn/cache/async-npm-3.2.4-aba13508f9-43d07459a4.zip +0 -0
- package/.yarn/cache/async-npm-3.2.6-aa4f5aa081-ee6eb8cd8a.zip +0 -0
- package/.yarn/cache/asyncjs-util-npm-1.2.12-f1ef4c2905-55ff005a7f.zip +0 -0
- package/.yarn/cache/asynckit-npm-0.4.0-c718858525-7b78c451df.zip +0 -0
- package/.yarn/cache/base-x-npm-3.0.10-2d05c06792-5230773955.zip +0 -0
- package/.yarn/cache/base-x-npm-4.0.0-64a1f6fa5e-b25db9e07e.zip +0 -0
- package/.yarn/cache/bech32-npm-2.0.0-ad98b7dd79-fa15acb270.zip +0 -0
- package/.yarn/cache/bip174-npm-2.1.1-d9fcaf36f9-bc5b99e7d1.zip +0 -0
- package/.yarn/cache/bip66-npm-1.1.5-e1d2ea7768-956cff6e51.zip +0 -0
- package/.yarn/cache/bitcoin-ops-npm-1.4.1-e1e62763b3-3daa3303d6.zip +0 -0
- package/.yarn/cache/bitcoinjs-lib-npm-6.1.3-8b823f7e69-b1d9ffd999.zip +0 -0
- package/.yarn/cache/bitcoinjs-lib-npm-6.1.6-d063b5a8ff-04370cf699.zip +0 -0
- package/.yarn/cache/bn.js-npm-5.2.1-dc952b1965-3dd8c8d380.zip +0 -0
- package/.yarn/cache/bolt07-npm-1.8.4-297a4ac40d-58cdf15aba.zip +0 -0
- package/.yarn/cache/bolt07-npm-1.9.4-6f74865601-d18efc5f83.zip +0 -0
- package/.yarn/cache/bolt09-npm-1.0.0-b3d5b54cf9-09d53b86f2.zip +0 -0
- package/.yarn/cache/bolt09-npm-2.1.0-1fc0cfcef2-629cd3bdd4.zip +0 -0
- package/.yarn/cache/braces-npm-3.0.3-582c14023c-b95aa0b3bd.zip +0 -0
- package/.yarn/cache/bs58-npm-4.0.1-8d2a7822b1-b3c5365bb9.zip +0 -0
- package/.yarn/cache/bs58-npm-5.0.0-da02537b92-2475cb0684.zip +0 -0
- package/.yarn/cache/bs58check-npm-2.1.2-4e87e40195-43bdf08a5d.zip +0 -0
- package/.yarn/cache/bs58check-npm-3.0.1-be32851e5e-dbbecc7a09.zip +0 -0
- package/.yarn/cache/camelcase-keys-npm-6.2.2-d13777ec12-43c9af1adf.zip +0 -0
- package/.yarn/cache/camelcase-npm-5.3.1-5db8af62c5-e6effce26b.zip +0 -0
- package/.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-ec3661d38f.zip +0 -0
- package/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip +0 -0
- package/.yarn/cache/cipher-base-npm-1.0.4-2e98b97140-47d3568dbc.zip +0 -0
- package/.yarn/cache/cliui-npm-8.0.1-3b029092cf-79648b3b00.zip +0 -0
- package/.yarn/cache/color-convert-npm-1.9.3-1fe690075e-fd7a64a17c.zip +0 -0
- package/.yarn/cache/color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip +0 -0
- package/.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip +0 -0
- package/.yarn/cache/color-name-npm-1.1.4-025792b0ea-b044585952.zip +0 -0
- package/.yarn/cache/combined-stream-npm-1.0.8-dc14d4a63a-49fa4aeb49.zip +0 -0
- package/.yarn/cache/create-hash-npm-1.2.0-afd048e1ce-02a6ae3bb9.zip +0 -0
- package/.yarn/cache/decamelize-keys-npm-1.1.1-4cfa36ed4b-fc645fe20b.zip +0 -0
- package/.yarn/cache/decamelize-npm-1.2.0-c5a2fdc622-ad8c51a7e7.zip +0 -0
- package/.yarn/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-46fe6e83e2.zip +0 -0
- package/.yarn/cache/diff-sequences-npm-29.6.3-18ab2c9949-f4914158e1.zip +0 -0
- package/.yarn/cache/dir-glob-npm-3.0.1-1aea628b1b-fa05e18324.zip +0 -0
- package/.yarn/cache/ecpair-npm-2.1.0-d034fc21e2-924a776808.zip +0 -0
- package/.yarn/cache/emoji-regex-npm-8.0.0-213764015c-d4c5c39d5a.zip +0 -0
- package/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-c1c2b8b65f.zip +0 -0
- package/.yarn/cache/escalade-npm-3.2.0-19b50dd48f-47b029c83d.zip +0 -0
- package/.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip +0 -0
- package/.yarn/cache/eslint-formatter-pretty-npm-4.1.0-30790f28b4-e8e0cd3843.zip +0 -0
- package/.yarn/cache/eslint-rule-docs-npm-1.1.235-64d33df34f-b163596f9a.zip +0 -0
- package/.yarn/cache/fast-glob-npm-3.3.2-0a8cb4f2ca-900e4979f4.zip +0 -0
- package/.yarn/cache/fastq-npm-1.17.1-56d4554993-a8c5b26788.zip +0 -0
- package/.yarn/cache/fill-range-npm-7.1.1-bf491486db-b4abfbca38.zip +0 -0
- package/.yarn/cache/find-up-npm-4.1.0-c3ccf8d855-4c172680e8.zip +0 -0
- package/.yarn/cache/form-data-npm-2.5.2-f40bcd738c-89ed3d9623.zip +0 -0
- package/.yarn/cache/function-bind-npm-1.1.2-7a55be9b03-2b0ff4ce70.zip +0 -0
- package/.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-b9769a836d.zip +0 -0
- package/.yarn/cache/glob-parent-npm-5.1.2-021ab32634-f4f2bfe242.zip +0 -0
- package/.yarn/cache/globby-npm-11.1.0-bdcdf20c71-b4be8885e0.zip +0 -0
- package/.yarn/cache/hard-rejection-npm-2.1.0-a80f2a977d-7baaf80a0c.zip +0 -0
- package/.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip +0 -0
- package/.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip +0 -0
- package/.yarn/cache/hash-base-npm-3.1.0-26fc5711dd-26b7e97ac3.zip +0 -0
- package/.yarn/cache/hasown-npm-2.0.2-80fe6c9901-e8516f776a.zip +0 -0
- package/.yarn/cache/hosted-git-info-npm-2.8.9-62c44fa93f-c955394bda.zip +0 -0
- package/.yarn/cache/hosted-git-info-npm-4.1.0-4efcdf8fd3-c3f87b3c2f.zip +0 -0
- package/.yarn/cache/ignore-npm-5.3.2-346d3ba017-2acfd32a57.zip +0 -0
- package/.yarn/cache/indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip +0 -0
- package/.yarn/cache/inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip +0 -0
- package/.yarn/cache/invoices-npm-3.0.0-123907e565-27119b1449.zip +0 -0
- package/.yarn/cache/irregular-plurals-npm-3.5.0-2415613615-5b663091dc.zip +0 -0
- package/.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-eef4417e3c.zip +0 -0
- package/.yarn/cache/is-core-module-npm-2.15.1-34c73a6cbd-df134c1681.zip +0 -0
- package/.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-df033653d0.zip +0 -0
- package/.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip +0 -0
- package/.yarn/cache/is-glob-npm-4.0.3-cb87bf1bdb-d381c1319f.zip +0 -0
- package/.yarn/cache/is-number-npm-7.0.0-060086935c-456ac6f8e0.zip +0 -0
- package/.yarn/cache/is-plain-obj-npm-1.1.0-1046f64c0b-0ee0480779.zip +0 -0
- package/.yarn/cache/is-unicode-supported-npm-0.1.0-0833e1bbfb-a2aab86ee7.zip +0 -0
- package/.yarn/cache/jest-diff-npm-29.7.0-0149e01930-08e24a9dd4.zip +0 -0
- package/.yarn/cache/jest-get-type-npm-29.6.3-500477292e-88ac9102d4.zip +0 -0
- package/.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-8a95213a5a.zip +0 -0
- package/.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-798ed4cf33.zip +0 -0
- package/.yarn/cache/kind-of-npm-6.0.3-ab15f36220-3ab01e7b1d.zip +0 -0
- package/.yarn/cache/lines-and-columns-npm-1.2.4-d6c7cc5799-0c37f9f7fa.zip +0 -0
- package/.yarn/cache/locate-path-npm-5.0.0-46580c43e4-83e51725e6.zip +0 -0
- package/.yarn/cache/lodash.camelcase-npm-4.3.0-bf268e3bf0-cb9227612f.zip +0 -0
- package/.yarn/cache/log-symbols-npm-4.1.0-0a13492d8b-fce1497b31.zip +0 -0
- package/.yarn/cache/long-npm-5.2.3-61dddb7586-885ede7c3d.zip +0 -0
- package/.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip +0 -0
- package/.yarn/cache/map-obj-npm-1.0.1-fa55100fac-9949e7baec.zip +0 -0
- package/.yarn/cache/map-obj-npm-4.3.0-d53e32935d-fbc554934d.zip +0 -0
- package/.yarn/cache/md5.js-npm-1.3.5-130901125a-098494d885.zip +0 -0
- package/.yarn/cache/meow-npm-9.0.0-8b2707248e-99799c4724.zip +0 -0
- package/.yarn/cache/merge2-npm-1.4.1-a2507bd06c-7268db63ed.zip +0 -0
- package/.yarn/cache/micromatch-npm-4.0.8-c9570e4aca-79920eb634.zip +0 -0
- package/.yarn/cache/mime-db-npm-1.52.0-b5371d6fd2-0d99a03585.zip +0 -0
- package/.yarn/cache/mime-types-npm-2.1.35-dd9ea9f3e2-89a5b7f1de.zip +0 -0
- package/.yarn/cache/min-indent-npm-1.0.1-77031f50e1-bfc6dd03c5.zip +0 -0
- package/.yarn/cache/minimist-options-npm-4.1.0-64ca250fc1-8c040b3068.zip +0 -0
- package/.yarn/cache/normalize-package-data-npm-2.5.0-af0345deed-7999112efc.zip +0 -0
- package/.yarn/cache/normalize-package-data-npm-3.0.3-1a49056685-bbcee00339.zip +0 -0
- package/.yarn/cache/p-limit-npm-2.3.0-94a0310039-84ff17f1a3.zip +0 -0
- package/.yarn/cache/p-locate-npm-4.1.0-eec6872537-513bd14a45.zip +0 -0
- package/.yarn/cache/p-try-npm-2.2.0-e0390dbaf8-f8a8e9a769.zip +0 -0
- package/.yarn/cache/parse-json-npm-5.2.0-00a63b1199-62085b17d6.zip +0 -0
- package/.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-505807199d.zip +0 -0
- package/.yarn/cache/path-parse-npm-1.0.7-09564527b7-49abf3d811.zip +0 -0
- package/.yarn/cache/path-type-npm-4.0.0-10d47fc86a-5b1e2daa24.zip +0 -0
- package/.yarn/cache/picocolors-npm-1.1.1-4fede47cf1-e1cf46bf84.zip +0 -0
- package/.yarn/cache/picomatch-npm-2.3.1-c782cfd986-050c865ce8.zip +0 -0
- package/.yarn/cache/plur-npm-4.0.0-96f2a49c24-fea2e903ef.zip +0 -0
- package/.yarn/cache/pretty-format-npm-29.7.0-7d330b2ea2-032c160238.zip +0 -0
- package/.yarn/cache/protobufjs-npm-7.4.0-12c56a3adc-ba0e6b6054.zip +0 -0
- package/.yarn/cache/psbt-npm-3.0.0-7f3e8059ba-1dddca470a.zip +0 -0
- package/.yarn/cache/pushdata-bitcoin-npm-1.0.1-959a90bb14-8452106d4b.zip +0 -0
- package/.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-b676f8c040.zip +0 -0
- package/.yarn/cache/quick-lru-npm-4.0.1-ef8aa17c9c-bea46e1abf.zip +0 -0
- package/.yarn/cache/randombytes-npm-2.1.0-e3da76bccf-d779499376.zip +0 -0
- package/.yarn/cache/react-is-npm-18.3.1-370a81e1e9-e20fe84c86.zip +0 -0
- package/.yarn/cache/read-pkg-npm-5.2.0-50426bd8dc-eb696e6052.zip +0 -0
- package/.yarn/cache/read-pkg-up-npm-7.0.1-11895bed9a-e4e93ce70e.zip +0 -0
- package/.yarn/cache/readable-stream-npm-3.6.2-d2a6069158-bdcbe6c22e.zip +0 -0
- package/.yarn/cache/redent-npm-3.0.0-31892f4906-fa1ef20404.zip +0 -0
- package/.yarn/cache/require-directory-npm-2.1.1-8608aee50b-fb47e70bf0.zip +0 -0
- package/.yarn/cache/resolve-npm-1.22.8-098f379dfe-f8a26958aa.zip +0 -0
- package/.yarn/cache/resolve-patch-f6b5304cab-5479b7d431.zip +0 -0
- package/.yarn/cache/reusify-npm-1.0.4-95ac4aec11-c3076ebcc2.zip +0 -0
- package/.yarn/cache/ripemd160-npm-2.0.2-7b1fb8dc76-006accc405.zip +0 -0
- package/.yarn/cache/run-parallel-npm-1.2.0-3f47ff2034-cb4f97ad25.zip +0 -0
- package/.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip +0 -0
- package/.yarn/cache/semver-npm-5.7.2-938ee91eaa-fb4ab5e0dd.zip +0 -0
- package/.yarn/cache/semver-npm-7.6.3-57e82c14d5-4110ec5d01.zip +0 -0
- package/.yarn/cache/sha.js-npm-2.4.11-14868df4ca-ebd3f59d4b.zip +0 -0
- package/.yarn/cache/slash-npm-3.0.0-b87de2279a-94a93fff61.zip +0 -0
- package/.yarn/cache/spdx-correct-npm-3.2.0-ffae008484-e9ae98d22f.zip +0 -0
- package/.yarn/cache/spdx-exceptions-npm-2.5.0-718ed4b7d6-bb127d6e25.zip +0 -0
- package/.yarn/cache/spdx-expression-parse-npm-3.0.1-b718cbb35a-a1c6e104a2.zip +0 -0
- package/.yarn/cache/spdx-license-ids-npm-3.0.20-f08e1eabc0-0c57750bed.zip +0 -0
- package/.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip +0 -0
- package/.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-8417646695.zip +0 -0
- package/.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-f3cd25890a.zip +0 -0
- package/.yarn/cache/strip-indent-npm-3.0.0-519e75a28d-18f045d57d.zip +0 -0
- package/.yarn/cache/supports-color-npm-5.5.0-183ac537bc-95f6f4ba5a.zip +0 -0
- package/.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-3dda818de0.zip +0 -0
- package/.yarn/cache/supports-hyperlinks-npm-2.3.0-d19176eba2-9ee0de3c8c.zip +0 -0
- package/.yarn/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-53b1e247e6.zip +0 -0
- package/.yarn/cache/tiny-secp256k1-npm-2.2.2-54168b74b6-2b38491186.zip +0 -0
- package/.yarn/cache/tiny-secp256k1-npm-2.2.3-8c5163b5d1-f7a74a1fce.zip +0 -0
- package/.yarn/cache/to-regex-range-npm-5.0.1-f1e8263b00-f76fa01b3d.zip +0 -0
- package/.yarn/cache/trim-newlines-npm-3.0.1-22f1f216de-b530f3fadf.zip +0 -0
- package/.yarn/cache/tsd-npm-0.31.2-07f84c93d0-23bb84f8ba.zip +0 -0
- package/.yarn/cache/type-fest-npm-0.18.1-47b079775d-e96dcee18a.zip +0 -0
- package/.yarn/cache/type-fest-npm-0.21.3-5ff2a9c6fd-e6b32a3b38.zip +0 -0
- package/.yarn/cache/type-fest-npm-0.6.0-76b229965b-b2188e6e4b.zip +0 -0
- package/.yarn/cache/type-fest-npm-0.8.1-351ad028fe-d61c4b2eba.zip +0 -0
- package/.yarn/cache/type-fest-npm-4.26.1-274c31182d-7188db3bca.zip +0 -0
- package/.yarn/cache/typeforce-npm-1.18.0-372e34e2a2-e3b21e27e7.zip +0 -0
- package/.yarn/cache/typescript-npm-5.6.3-cc9b3687b0-ba302f8822.zip +0 -0
- package/.yarn/cache/typescript-patch-be88537122-ade87bce23.zip +0 -0
- package/.yarn/cache/uint8array-tools-npm-0.0.7-96ca58a124-6ffc45c7d2.zip +0 -0
- package/.yarn/cache/undici-types-npm-6.19.8-9f12285b7a-de51f1b447.zip +0 -0
- package/.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip +0 -0
- package/.yarn/cache/validate-npm-package-license-npm-3.0.4-7af8adc7a8-35703ac889.zip +0 -0
- package/.yarn/cache/varuint-bitcoin-npm-1.1.2-83f928c112-1c900bf08f.zip +0 -0
- package/.yarn/cache/wif-npm-2.0.6-f351bf025a-8c3147ef98.zip +0 -0
- package/.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-a790b846fd.zip +0 -0
- package/.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-54f0fb9562.zip +0 -0
- package/.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip +0 -0
- package/.yarn/cache/yargs-npm-17.7.2-80b62638e1-73b572e863.zip +0 -0
- package/.yarn/cache/yargs-parser-npm-20.2.9-a1d19e598d-8bb69015f2.zip +0 -0
- package/.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-ed2d96a616.zip +0 -0
- package/.yarn/install-state.gz +0 -0
package/package.json
CHANGED
|
@@ -1,32 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"author": {
|
|
3
|
-
"name": "
|
|
3
|
+
"name": "Alex Bosworth",
|
|
4
|
+
"url": "https://twitter.com/alexbosworth"
|
|
4
5
|
},
|
|
5
6
|
"bugs": {
|
|
6
7
|
"url": "https://github.com/alexbosworth/lightning/issues"
|
|
7
8
|
},
|
|
8
9
|
"dependencies": {
|
|
9
|
-
"@grpc/grpc-js": "1.
|
|
10
|
-
"@grpc/proto-loader": "0.
|
|
11
|
-
"@types/node": "
|
|
12
|
-
"@types/request": "2.48.
|
|
13
|
-
"@types/ws": "8.
|
|
10
|
+
"@grpc/grpc-js": "1.14.1",
|
|
11
|
+
"@grpc/proto-loader": "0.8.0",
|
|
12
|
+
"@types/node": "24.10.1",
|
|
13
|
+
"@types/request": "2.48.13",
|
|
14
|
+
"@types/ws": "8.18.1",
|
|
14
15
|
"async": "3.2.6",
|
|
15
16
|
"asyncjs-util": "1.2.12",
|
|
16
|
-
"bitcoinjs-lib": "6.1.
|
|
17
|
-
"bn.js": "5.2.
|
|
17
|
+
"bitcoinjs-lib": "6.1.7",
|
|
18
|
+
"bn.js": "5.2.2",
|
|
18
19
|
"bolt07": "1.9.4",
|
|
19
|
-
"bolt09": "2.
|
|
20
|
-
"ecpair": "
|
|
21
|
-
"invoices": "
|
|
22
|
-
"psbt": "
|
|
23
|
-
"tiny-secp256k1": "2.2.
|
|
24
|
-
"type-fest": "
|
|
20
|
+
"bolt09": "2.2.0",
|
|
21
|
+
"ecpair": "3.0.0",
|
|
22
|
+
"invoices": "4.0.0",
|
|
23
|
+
"psbt": "4.0.0",
|
|
24
|
+
"tiny-secp256k1": "2.2.4",
|
|
25
|
+
"type-fest": "5.2.0"
|
|
25
26
|
},
|
|
26
27
|
"description": "Lightning Network client library",
|
|
27
28
|
"devDependencies": {
|
|
28
|
-
"tsd": "0.
|
|
29
|
-
"typescript": "5.
|
|
29
|
+
"tsd": "0.33.0",
|
|
30
|
+
"typescript": "5.9.3"
|
|
30
31
|
},
|
|
31
32
|
"engines": {
|
|
32
33
|
"node": ">=18"
|
|
@@ -34,14 +35,17 @@
|
|
|
34
35
|
"keywords": [
|
|
35
36
|
"grpc",
|
|
36
37
|
"lightning-network",
|
|
37
|
-
"lnd"
|
|
38
|
-
"taproot-assets"
|
|
38
|
+
"lnd"
|
|
39
39
|
],
|
|
40
40
|
"license": "MIT",
|
|
41
41
|
"main": "index.js",
|
|
42
42
|
"name": "astra-lightning",
|
|
43
|
+
"repository": {
|
|
44
|
+
"type": "git",
|
|
45
|
+
"url": "git+https://github.com/alexbosworth/lightning.git"
|
|
46
|
+
},
|
|
43
47
|
"scripts": {
|
|
44
|
-
"test": "npx nyc@17.
|
|
48
|
+
"test": "npx nyc@17.1.0 node --experimental-test-coverage --test && npm run test:types",
|
|
45
49
|
"test:types": "tsd",
|
|
46
50
|
"unit-tests": "node --test && npm run test:types"
|
|
47
51
|
},
|
|
@@ -49,5 +53,5 @@
|
|
|
49
53
|
"directory": "test/typescript"
|
|
50
54
|
},
|
|
51
55
|
"types": "index.d.ts",
|
|
52
|
-
"version": "1.1.
|
|
56
|
+
"version": "1.1.4"
|
|
53
57
|
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
const {rejects, deepStrictEqual} = require('node:assert').strict;
|
|
2
|
+
const test = require('node:test');
|
|
3
|
+
const {getRoutingFeeEstimate} = require('../../../');
|
|
4
|
+
|
|
5
|
+
const makeLnd = ({err, res}) => {
|
|
6
|
+
const r = {
|
|
7
|
+
routing_fee_msat: '1',
|
|
8
|
+
time_lock_delay: '1',
|
|
9
|
+
failure_reason: 'FAILURE_REASON_NONE',
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
router: {
|
|
14
|
+
estimateRouteFee: ({}, cbk) => cbk(err, res !== undefined ? res : r),
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const makeArgs = override => {
|
|
20
|
+
const args = {lnd: makeLnd({}), request: 'request'};
|
|
21
|
+
|
|
22
|
+
Object.keys(override || {}).forEach(key => args[key] = override[key]);
|
|
23
|
+
|
|
24
|
+
return args;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const tests = [
|
|
28
|
+
{
|
|
29
|
+
args: makeArgs({lnd: undefined}),
|
|
30
|
+
description: 'LND is required',
|
|
31
|
+
error: [400, 'ExpectedAuthenticatedLndToGetRoutingFeeEstimate'],
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
args: makeArgs({request: undefined}),
|
|
35
|
+
description: 'Request is required',
|
|
36
|
+
error: [400, 'ExpectedPaymentRequestToGetRoutingFeeEstimate'],
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
args: makeArgs({}),
|
|
40
|
+
description: 'A route fee estimate is returned',
|
|
41
|
+
expected: {fee_mtokens: '1', timeout: 1},
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
args: makeArgs({lnd: makeLnd({err: 'err'})}),
|
|
45
|
+
description: 'An error is not expected',
|
|
46
|
+
error: [503, 'UnexpectedGetRoutingFeeEstimateError', {err: 'err'}],
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
args: makeArgs({lnd: makeLnd({res: null})}),
|
|
50
|
+
description: 'A result is expected',
|
|
51
|
+
error: [503, 'ExpectedGetRoutingFeeEstimateResponse'],
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
args: makeArgs({lnd: makeLnd({res: {}})}),
|
|
55
|
+
description: 'A result fee is expected',
|
|
56
|
+
error: [503, 'ExpectedFeeInGetRoutingFeeEstimateResponse'],
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
args: makeArgs({lnd: makeLnd({res: {routing_fee_msat: '1'}})}),
|
|
60
|
+
description: 'A result timeout is expected',
|
|
61
|
+
error: [503, 'ExpectedTimeoutInGetRouteFeeEstimateResponse'],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
args: makeArgs({
|
|
65
|
+
lnd: makeLnd({res: {routing_fee_msat: '1', time_lock_delay: '1'}}),
|
|
66
|
+
}),
|
|
67
|
+
description: 'A result non failure code is expected',
|
|
68
|
+
error: [404, 'RouteToDestinationNotFound', {failure: undefined}],
|
|
69
|
+
},
|
|
70
|
+
];
|
|
71
|
+
|
|
72
|
+
tests.forEach(({args, description, error, expected}) => {
|
|
73
|
+
return test(description, async () => {
|
|
74
|
+
if (!!error) {
|
|
75
|
+
await rejects(getRoutingFeeEstimate(args), error, 'Got expected error');
|
|
76
|
+
} else {
|
|
77
|
+
deepStrictEqual(await getRoutingFeeEstimate(args), expected, 'Got res');
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return;
|
|
81
|
+
});
|
|
82
|
+
});
|
|
@@ -197,6 +197,11 @@ const tests = [
|
|
|
197
197
|
description: 'A channel is closed with a tx fee',
|
|
198
198
|
expected: {transaction_id: '04030201', transaction_vout: 0},
|
|
199
199
|
},
|
|
200
|
+
{
|
|
201
|
+
args: makeArgs({is_graceful_close: true}),
|
|
202
|
+
description: 'A channel is closed with a graceful exit',
|
|
203
|
+
expected: {transaction_id: '04030201', transaction_vout: 0},
|
|
204
|
+
},
|
|
200
205
|
];
|
|
201
206
|
|
|
202
207
|
tests.forEach(({args, description, error, expected}) => {
|
|
@@ -135,7 +135,11 @@ const tests = [
|
|
|
135
135
|
args: {
|
|
136
136
|
channels: [
|
|
137
137
|
{capacity: 1, partner_public_key: nodeKey1},
|
|
138
|
-
{
|
|
138
|
+
{
|
|
139
|
+
capacity: 2,
|
|
140
|
+
is_allowing_minimal_reserve: true,
|
|
141
|
+
partner_public_key: nodeKey2,
|
|
142
|
+
},
|
|
139
143
|
],
|
|
140
144
|
lnd: {
|
|
141
145
|
default: {
|
|
@@ -44,6 +44,19 @@ const tests = [
|
|
|
44
44
|
description: 'A tx output index is required',
|
|
45
45
|
error: [400, 'ExpectedTransactionOutputIndexToRequestFeeBump'],
|
|
46
46
|
},
|
|
47
|
+
{
|
|
48
|
+
args: makeArgs({
|
|
49
|
+
lnd: {
|
|
50
|
+
wallet: {
|
|
51
|
+
bumpFee: ({}, cbk) => cbk({
|
|
52
|
+
details: 'invalid output index 999 for transaction with 3 outputs',
|
|
53
|
+
}),
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
}),
|
|
57
|
+
description: 'Unknown UTXO error is passed back',
|
|
58
|
+
error: [404, 'SpecifiedOutpointNotFoundInWalletUtxos'],
|
|
59
|
+
},
|
|
47
60
|
{
|
|
48
61
|
args: makeArgs({
|
|
49
62
|
lnd: {
|
|
@@ -57,7 +57,8 @@ const makePendingForceClosingChannel = overrides => {
|
|
|
57
57
|
const makePendingOpenChannel = overrides => {
|
|
58
58
|
const res = {
|
|
59
59
|
channel: makeChannel({}),
|
|
60
|
-
confirmation_height:
|
|
60
|
+
confirmation_height: 0,
|
|
61
|
+
confirmations_until_active: 0,
|
|
61
62
|
commit_fee: '1',
|
|
62
63
|
commit_weight: '1',
|
|
63
64
|
fee_per_kw: '1',
|
|
@@ -114,6 +115,8 @@ const makeExpectedPending = overrides => {
|
|
|
114
115
|
is_timelocked: true,
|
|
115
116
|
local_balance: 1,
|
|
116
117
|
local_reserve: 1,
|
|
118
|
+
opening_funding_height: undefined,
|
|
119
|
+
opening_waiting_blocks: undefined,
|
|
117
120
|
partner_public_key: Buffer.alloc(33).toString('hex'),
|
|
118
121
|
pending_balance: 1,
|
|
119
122
|
pending_payments: [{
|
|
@@ -438,6 +441,36 @@ const tests = [
|
|
|
438
441
|
],
|
|
439
442
|
}),
|
|
440
443
|
},
|
|
444
|
+
{
|
|
445
|
+
args: makeArgs({
|
|
446
|
+
pending_force_closing_channels: [],
|
|
447
|
+
pending_open_channels: [
|
|
448
|
+
makePendingOpenChannel({
|
|
449
|
+
confirmation_height: 1,
|
|
450
|
+
confirmations_until_active: 3,
|
|
451
|
+
}),
|
|
452
|
+
],
|
|
453
|
+
waiting_close_channels: [],
|
|
454
|
+
}),
|
|
455
|
+
description: 'Pending open channels are mapped',
|
|
456
|
+
expected: makeExpected({
|
|
457
|
+
pending_channels: [
|
|
458
|
+
makeExpectedPending({
|
|
459
|
+
close_transaction_id: undefined,
|
|
460
|
+
is_closing: false,
|
|
461
|
+
is_opening: true,
|
|
462
|
+
is_timelocked: false,
|
|
463
|
+
opening_funding_height: 1,
|
|
464
|
+
opening_waiting_blocks: 3,
|
|
465
|
+
pending_balance: undefined,
|
|
466
|
+
pending_payments: undefined,
|
|
467
|
+
recovered_tokens: undefined,
|
|
468
|
+
timelock_blocks: undefined,
|
|
469
|
+
timelock_expiration: undefined,
|
|
470
|
+
}),
|
|
471
|
+
],
|
|
472
|
+
}),
|
|
473
|
+
},
|
|
441
474
|
];
|
|
442
475
|
|
|
443
476
|
tests.forEach(({args, description, error, expected}) => {
|
package/test.js
CHANGED
|
@@ -3,7 +3,8 @@ const {
|
|
|
3
3
|
getChannels,
|
|
4
4
|
payTaprootInvoice,
|
|
5
5
|
decodePaymentRequest,
|
|
6
|
-
decodeAssetPayReq
|
|
6
|
+
decodeAssetPayReq,
|
|
7
|
+
createInvoice,
|
|
7
8
|
} = require("./index.js");
|
|
8
9
|
const fs = require("fs");
|
|
9
10
|
// const dayjs = require("dayjs");
|
|
@@ -21,13 +22,17 @@ const LND_SOCKET = "54.92.19.81:10109"; */
|
|
|
21
22
|
// const invoice =
|
|
22
23
|
// "lnbcrt10u1p5q3r0zpp50v0asn72aav354e27cals6l7j76sln0pzzvxktgur2wmlkf44mfqdy0f3hxv6fmv9ehxet5f9zr5dtzvscnywtyx56rjcnyxcuxxctyxc6xvvnrxfjxyvf5xymnxvnpx5erxef5x56rvcf58ymrvvnrxvunqefcvvcngv3ex3skzdm98q6rkctdda6kuap6xycrqwscqzzsxqrrssrzjqg3zz9zaagxqxan9fqzr6k7yvf900uf26m0z7c2g0rf55raupqclpakyc0a4gzq2v5qqqqlgqqqqqqgq2qsp58qmfwjwdrvr9dzjs2esms3cpvvgff3g4hsunszne3v7wszwcq62s9qxpqysgqscq2e3sqa0pfe5yzjdnp8q4temjazdw6y77c49tpvnhz0d4kjux92tw3gy9vvrh68qqef594frdp2uqhvwjy0sd7ezdcanvlln2rusgpg5w96t";
|
|
23
24
|
|
|
24
|
-
const LND_SOCKET = "127.0.0.1:
|
|
25
|
-
const LND_MACAROON=
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
const
|
|
30
|
-
|
|
25
|
+
const LND_SOCKET = "127.0.0.1:8444";
|
|
26
|
+
const LND_MACAROON =
|
|
27
|
+
"0201036c6e6402f801030a10cd485d60d65e48a8f253aeca1f20d5e51201301a160a0761646472657373120472656164120577726974651a130a04696e666f120472656164120577726974651a170a08696e766f69636573120472656164120577726974651a210a086d616361726f6f6e120867656e6572617465120472656164120577726974651a160a076d657373616765120472656164120577726974651a170a086f6666636861696e120472656164120577726974651a160a076f6e636861696e120472656164120577726974651a140a057065657273120472656164120577726974651a180a067369676e6572120867656e657261746512047265616400000620d0b51747c52a6444a78c9e08947671f20362dfffc89404c10afb68d09e72a6e2";
|
|
28
|
+
const LND_TPROOT_ASSET_MACAROON =
|
|
29
|
+
"0201047461706402d001030a10d5485d60d65e48a8f253aeca1f20d5e51201301a180a09616464726573736573120472656164120577726974651a150a06617373657473120472656164120577726974651a170a086368616e6e656c73120472656164120577726974651a150a066461656d6f6e120472656164120577726974651a130a046d696e74120472656164120577726974651a150a0670726f6f6673120472656164120577726974651a120a03726671120472656164120577726974651a170a08756e6976657273651204726561641205777269746500000620501385af6ee7b06d073829f55af1a69d6a3ecc4cfb59129c88c379a429f44440";
|
|
30
|
+
const base64Cert =
|
|
31
|
+
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNERENDQWJLZ0F3SUJBZ0lSQUo3Rys0QzdYWldMN3hzMzk3bjMyUGd3Q2dZSUtvWkl6ajBFQXdJd01ERWcKTUI0R0ExVUVDaE1YYkdsMFpDQmhkWFJ2WjJWdVpYSmhkR1ZrSUdObGNuUXhEREFLQmdOVkJBTVRBMkp2WWpBZQpGdzB5TlRFeU1ESXdNakEzTURoYUZ3MHlOekF4TWpjd01qQTNNRGhhTURBeElEQWVCZ05WQkFvVEYyeHBkR1FnCllYVjBiMmRsYm1WeVlYUmxaQ0JqWlhKME1Rd3dDZ1lEVlFRREV3TmliMkl3V1RBVEJnY3Foa2pPUFFJQkJnZ3EKaGtqT1BRTUJCd05DQUFTU3BKdmh6M1lXVG5jTFVNR3Rvb1poUHNTVmlwR09RTWszbHkyMGRqUUk2OXd1M2gyRAphdG5TVGRSOTBCT2FhWUlrZ1lXRWpWV3Era1VDSWxXdjliMmJvNEdzTUlHcE1BNEdBMVVkRHdFQi93UUVBd0lDCnBEQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBVEFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQjBHQTFVZERnUVcKQkJTaE9PZDArRmxSL0xzZ0t0MWROQktKQXBwSkREQlNCZ05WSFJFRVN6QkpnZ05pYjJLQ0NXeHZZMkZzYUc5egpkSUlFZFc1cGVJSUtkVzVwZUhCaFkydGxkSUlIWW5WbVkyOXVib2NFZndBQUFZY1FBQUFBQUFBQUFBQUFBQUFBCkFBQUFBWWNFckJNQUF6QUtCZ2dxaGtqT1BRUURBZ05JQURCRkFpRUExRm8xakg3Z0IzY2pBblNSaUNKbDF3a1kKZGYxYnZVd1JSSzl0V1NIclFlc0NJR2tKQWkxWk5hNm9DeXFpemNObXZORmpUWXJHY1BmRUxxTCtiSjAyZUIvbAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==";
|
|
32
|
+
const assetId =
|
|
33
|
+
"b787a089e60451305c090b7b3604b7a107e13d0a955c8ed1043d874a448aa465";
|
|
34
|
+
const invoice =
|
|
35
|
+
"";
|
|
31
36
|
|
|
32
37
|
const { lnd } = authenticatedLndGrpc({
|
|
33
38
|
cert: base64Cert,
|
|
@@ -40,7 +45,6 @@ const { lnd: tpr } = authenticatedLndGrpc({
|
|
|
40
45
|
socket: LND_SOCKET,
|
|
41
46
|
});
|
|
42
47
|
|
|
43
|
-
|
|
44
48
|
const payWithTpr = async (invoice, assetId) => {
|
|
45
49
|
// const provider = new ethers.JsonRpcProvider('https://eth-sepolia.g.alchemy.com/v2/ClvXGqSMvZ6nEb_G5ekJGsZwNdsp72oz');
|
|
46
50
|
// const lspSigner = new ethers.Wallet('dd5862c69e641fb052092d34724ce62764186abf87474656f2b2149684dca754', provider);
|
|
@@ -159,8 +163,6 @@ const payWithTpr = async (invoice, assetId) => {
|
|
|
159
163
|
// const hash = sha256.hex(Buffer.from("9060effcf05155835f7baf0089a2fc086eb6d9f4dbb680c1744261b562a51519", "hex"));
|
|
160
164
|
// console.log("🚀 ~ hash:", hash)
|
|
161
165
|
|
|
162
|
-
|
|
163
|
-
|
|
164
166
|
//getPayemntById();
|
|
165
167
|
//getGasFee();
|
|
166
168
|
|
|
@@ -173,22 +175,192 @@ const payWithTpr = async (invoice, assetId) => {
|
|
|
173
175
|
// }
|
|
174
176
|
// queryBalance();
|
|
175
177
|
|
|
176
|
-
const
|
|
177
|
-
|
|
178
|
-
|
|
178
|
+
const addTapdInvoice = async () => {
|
|
179
|
+
const ret = await createInvoice({
|
|
180
|
+
lnd,
|
|
181
|
+
tpr,
|
|
182
|
+
mtokens: 1000,
|
|
183
|
+
asset_id: assetId,
|
|
184
|
+
}).catch((e) => {
|
|
185
|
+
console.error("Failed to create invoice:", e.message);
|
|
186
|
+
});
|
|
187
|
+
console.log("🚀 ~ addTapdInvoice ~ ret:", ret);
|
|
188
|
+
};
|
|
179
189
|
|
|
180
|
-
|
|
190
|
+
const decodeTapdInvoice = async()=>{
|
|
191
|
+
const invoice ='lnbcrt1200u1p5ja2pgpp58ahjcpwgt9zcvda6cchnrl5wyr4r9vjg487qrxvlh7vd88rxnhssdqqcqzzsxqr23srzjqw7ng5fg7qnyr49nm9qtt6nvnwxfefpygrctxdmfx9uf8l0awcaura2jdhvguyylxuqqqqlgqqqqqqgq2qsp5g54dp5lug8dqne4pglj0j0tglv3rtawk76rlqmqcppavfy8dzr4q9qxpqysgqt9jde9vcwpc27ayzpv7q3j63nej52xfjeuhew65y22zvd0vjans9hz206sxf67n8zz6mr803d7skpcz762vqaj6mrf0uwlxtdtv6u9qpahal9g'
|
|
192
|
+
const ret = await decodeAssetPayReq({
|
|
181
193
|
asset_id: assetId,
|
|
182
194
|
pay_req_string: invoice,
|
|
183
195
|
tpr: tpr,
|
|
184
196
|
}).catch((error) => console.log(error.message));
|
|
185
197
|
console.log("🚀 ~ ret:", ret);
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
const listChannels = async()=>{
|
|
201
|
+
const ret = await getChannels({ lnd }).catch((error) => console.log(error));
|
|
202
|
+
console.log("🚀 ~ test ~ ret:", ret);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
const getBestLndChannel = async (asset) => {
|
|
206
|
+
const assetId = asset.assetId;
|
|
207
|
+
const isBTC = asset.isBTC;
|
|
208
|
+
// const lnd = await getLnd();
|
|
209
|
+
const ret = await getChannels({ lnd }).catch(() => {
|
|
210
|
+
return {channels: []};
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
console.log("🚀 ~ getBestLndChannel ~ ret:", ret);
|
|
214
|
+
|
|
215
|
+
let filterChannels = [];
|
|
216
|
+
let sortTprChannels = [];
|
|
217
|
+
let capacity = BigInt(0);
|
|
218
|
+
let local_balance = BigInt(0);
|
|
219
|
+
let remote_balance = BigInt(0);
|
|
220
|
+
|
|
221
|
+
if (isBTC) {
|
|
222
|
+
filterChannels = ret.channels.filter(channel =>
|
|
223
|
+
channel.type === "anchor" || channel.commitment_type === "ANCHORS"
|
|
224
|
+
);
|
|
225
|
+
|
|
226
|
+
sortTprChannels = filterChannels.sort((a, b) => {
|
|
227
|
+
return b.local_balance - a.local_balance;
|
|
228
|
+
});
|
|
229
|
+
} else {
|
|
230
|
+
filterChannels = ret.channels.filter(channel => {
|
|
231
|
+
if (!channel.commitment_type.includes("SIMPLE_TAPROOT")) {
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
if (!channel.is_active) {
|
|
236
|
+
return false;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
if (!channel.custom_channel_data) {
|
|
240
|
+
return false;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
let data;
|
|
244
|
+
|
|
245
|
+
try {
|
|
246
|
+
data = JSON.parse(channel.custom_channel_data);
|
|
247
|
+
} catch (_) {
|
|
248
|
+
return false;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
const hasLocal = (data.local_assets || []).some(a => a.asset_id === assetId);
|
|
252
|
+
const hasFunding = (data.funding_assets || []).some(a =>
|
|
253
|
+
a.asset_genesis && a.asset_genesis.asset_id === assetId
|
|
254
|
+
);
|
|
255
|
+
const hasRemote = (data.remote_assets || []).some(a => a.asset_id === assetId);
|
|
256
|
+
|
|
257
|
+
return hasLocal || hasFunding || hasRemote;
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
sortTprChannels = filterChannels.sort((a, b) => {
|
|
262
|
+
let aData;
|
|
263
|
+
let bData;
|
|
264
|
+
|
|
265
|
+
try {
|
|
266
|
+
aData = JSON.parse(a.custom_channel_data);
|
|
267
|
+
} catch (_) {
|
|
268
|
+
aData = {};
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
try {
|
|
272
|
+
bData = JSON.parse(b.custom_channel_data);
|
|
273
|
+
} catch (_) {
|
|
274
|
+
bData = {};
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
const aLocal = (aData.local_assets || []).find(x => x.asset_id === assetId);
|
|
278
|
+
const bLocal = (bData.local_assets || []).find(x => x.asset_id === assetId);
|
|
279
|
+
|
|
280
|
+
const aAmt = aLocal ? aLocal.amount || 0 : 0;
|
|
281
|
+
const bAmt = bLocal ? bLocal.amount || 0 : 0;
|
|
282
|
+
|
|
283
|
+
return bAmt - aAmt;
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
if (!filterChannels.length) {
|
|
288
|
+
throw new Error("no available channel");
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
const maxLocalBalanceChannel = sortTprChannels[0];
|
|
292
|
+
|
|
293
|
+
const effectiveSatsBalance =
|
|
294
|
+
BigInt(maxLocalBalanceChannel.local_balance) -
|
|
295
|
+
BigInt(maxLocalBalanceChannel.local_reserve);
|
|
296
|
+
|
|
297
|
+
const remoteSatsBalance =
|
|
298
|
+
BigInt(maxLocalBalanceChannel.remote_balance) -
|
|
299
|
+
BigInt(maxLocalBalanceChannel.remote_reserve);
|
|
300
|
+
|
|
301
|
+
if (isBTC) {
|
|
302
|
+
capacity = BigInt(maxLocalBalanceChannel.capacity);
|
|
303
|
+
local_balance = BigInt(maxLocalBalanceChannel.local_balance);
|
|
304
|
+
remote_balance = BigInt(maxLocalBalanceChannel.remote_balance);
|
|
305
|
+
} else {
|
|
306
|
+
const data = maxLocalBalanceChannel.custom_channel_data
|
|
307
|
+
? JSON.parse(maxLocalBalanceChannel.custom_channel_data)
|
|
308
|
+
: {};
|
|
309
|
+
|
|
310
|
+
const fundingAsset = (data.funding_assets || []).find(a =>
|
|
311
|
+
a.asset_genesis && a.asset_genesis.asset_id === assetId
|
|
312
|
+
);
|
|
313
|
+
|
|
314
|
+
const localAsset = (data.local_assets || []).find(a => a.asset_id === assetId);
|
|
315
|
+
const remoteAsset = (data.remote_assets || []).find(a => a.asset_id === assetId);
|
|
316
|
+
|
|
317
|
+
const capStr = (data && data.capacity) || (fundingAsset && fundingAsset.amount) || '0';
|
|
318
|
+
const localStr = (localAsset && localAsset.amount) || '0';
|
|
319
|
+
const remoteStr = (remoteAsset && remoteAsset.amount) || '0';
|
|
320
|
+
|
|
321
|
+
capacity = BigInt(capStr);
|
|
322
|
+
local_balance = BigInt(localStr);
|
|
323
|
+
remote_balance = BigInt(remoteStr);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
const retChannelInfo = {
|
|
327
|
+
maxLocalBalanceChannel,
|
|
328
|
+
effectiveSatsBalance: effectiveSatsBalance.toString(),
|
|
329
|
+
remoteSatsBalance: remoteSatsBalance.toString(),
|
|
330
|
+
satsCapacity: maxLocalBalanceChannel.capacity.toString(),
|
|
331
|
+
localAssetCapacity: capacity.toString(),
|
|
332
|
+
localAssetbalance: local_balance.toString(),
|
|
333
|
+
remoteAssetbalance: remote_balance.toString(),
|
|
334
|
+
};
|
|
335
|
+
|
|
336
|
+
return retChannelInfo;
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
const test = async () => {
|
|
340
|
+
await addTapdInvoice();
|
|
341
|
+
//await decodeTapdInvoice();
|
|
342
|
+
//await listChannels();
|
|
343
|
+
// const ret = await getBestLndChannel({
|
|
344
|
+
// assetId: assetId,
|
|
345
|
+
// isBTC: false,
|
|
346
|
+
// });
|
|
347
|
+
// const channel = ret.maxLocalBalanceChannel;
|
|
348
|
+
// const invoice = "lnbcrt1m1p5jlhxqpp5ggyqrhhd3z4vv9gc9ed5rwav2pkcp2a3hzs2jgqrcu2d9rvsuzdsdqqcqzzsxqrrssrzjqtf52q9rcl98spzl347ldn5j3akdyxpkgva2xf8wdkf6va4s752cpa68fzwydgre25qqqqlgqqqqqqgq2qsp53l74ektwr30wf2ttvgftrgg3v0c8vctzy7xtfjh3vh53wjhl2a7s9qxpqysgqlfta3xezgxptgxjg76wr77k8qj282q4e5mctdtzdew3euheru9skpyvmkh2rxjf95suy58ngjtphq6ca2zl7k7zrpf2k4p0dj3c099sqsas48e"
|
|
349
|
+
// const peerPubkey = channel.partner_public_key;
|
|
350
|
+
// const retPay = await payTaprootInvoice({
|
|
351
|
+
// tpr: tpr,
|
|
352
|
+
// asset_id: assetId,
|
|
353
|
+
// asset_amount: 10,
|
|
354
|
+
// peer_pubkey: peerPubkey,
|
|
355
|
+
// payment_request: {
|
|
356
|
+
// payment_request: invoice,
|
|
357
|
+
// fee_limit_sat: 100,
|
|
358
|
+
// allow_self_payment: true,
|
|
359
|
+
// timeout_seconds: 60 * 5,
|
|
360
|
+
// outgoing_chan_id: channel.channel_id,
|
|
361
|
+
// },
|
|
362
|
+
// });
|
|
363
|
+
// console.log("🚀 ~ test ~ retPay:", retPay)
|
|
364
|
+
|
|
193
365
|
};
|
|
194
366
|
test();
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|