feat(elements): add elements_getunblindedurl endpoint#360
Open
BullishNode wants to merge 5 commits intofeatures/liquid2from
Open
feat(elements): add elements_getunblindedurl endpoint#360BullishNode wants to merge 5 commits intofeatures/liquid2from
BullishNode wants to merge 5 commits intofeatures/liquid2from
Conversation
824a691 to
f4ea32e
Compare
Add new function to construct Liquid explorer URLs with unblinding data.
The function:
- Takes txid and optional base_url as parameters
- Calls gettransaction to retrieve transaction with blinding factors
- Extracts amountblinder, assetblinder, asset, and amount from details
- Filters out entries with zero blinders (unblinded outputs)
- Converts amounts from BTC to satoshis
- Constructs URL with #blinded= fragment containing comma-separated
blinding data for each output
URL format:
{base_url}/tx/{txid}#blinded={amount},{asset},{amountblinder},{assetblinder},...
Returns JSON: {"url": "...", "txid": "..."}
Closes #359
Register the new endpoint in requesthandler.sh to expose the
elements_getunblindedurl function via HTTP.
Endpoint: GET /elements_getunblindedurl/{txid}[/{base_url}]
The base_url parameter is URL-encoded and decoded in the handler
to support URLs like https://liquid.bullbitcoin.com
Part of #359
Grant watcher-level access to the new endpoint since it only reads transaction data and doesn't perform any spending operations. Part of #359
Security fix: Validate txid parameter before processing to prevent potential injection or malformed input issues. - Checks txid is not empty - Validates txid is exactly 64 hexadecimal characters - Returns proper error JSON if validation fails Code review fix for PR #360
f4ea32e to
8efc65a
Compare
- Add liquid_explorer_url property to schema (required when elements enabled) - Add prompt in elements prompter for explorer URL - Add LIQUID_EXPLORER_URL to proxy.env template - Update elements_getunblindedurl to use env var instead of parameter - Simplify endpoint to only take txid (base_url from config)
aba8ba5 to
95d7d0d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add new Cyphernode endpoint to construct Liquid explorer URLs with unblinded transaction data.
Changes
elements_getunblindedurl()function toelements_blockchainrpc.shrequesthandler.shapi.propertiesEndpoint
Response:
{ "url": "https://liquid.network/tx/{txid}#blinded={amount},{asset},{amountblinder},{assetblinder},...", "txid": "{txid}" }URL Format
The
#blinded=fragment contains comma-separated values for each output:Multiple outputs are concatenated with commas.
Implementation Details
gettransactionRPC on spender node to get blinding dataRelated