diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts index 459914f91d..b08b9729b3 100644 --- a/frontend/src/app/components/transaction/transaction.component.ts +++ b/frontend/src/app/components/transaction/transaction.component.ts @@ -1136,7 +1136,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { } private formatFragment(fragmentParams: URLSearchParams, anchor: string | null = null): string | null { - const params = new URLSearchParams(fragmentParams.toString()); + const params = new URLSearchParams(fragmentParams); for (const [key, value] of Array.from(params.entries())) { if (value === '') { params.delete(key); @@ -1145,7 +1145,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { if (anchor) { params.set(anchor, ''); } - return params.toString() || null; + return Array.from(params.entries()).map(([key, value]) => `${key}=${value}`).join('&') || null; } toggleGraph() { diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index d22322fa24..c0b2bc38b9 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -478,16 +478,31 @@
A third party may need to verify unpublished script paths for a Taproot address. One option is to reveal each script by spending coins through every path on-chain, but this hurts privacy and may not be possible if a script is timelocked, for example.
-A more private option is to share the Taproot data directly with the third party using the Taproot Tree widget. On the address page, use the
Alternatively, you can share the Taproot data privately with the third party, using the Taproot Tree widget to fill in scripts that are not already known from on-chain spends. On the address page, use the
The following formats are supported:
+PSBT: hex or base64-encoded PSBT involving this address. It should include input PSBT_IN_TAP_LEAF_SCRIPT records, output PSBT_OUT_TAP_TREE and PSBT_OUT_TAP_INTERNAL_KEY records, or both.Taptree: hex or base64-encoded PSBT_OUT_TAP_TREE value. If the internal key of the address is not known from an on-chain spend, provide it in the Internal Key field.Tapleaves: comma-separated PSBT_IN_TAP_LEAF_SCRIPT records, in the format <control-block>:<script><leaf-version>.You can also embed the data directly in the URL fragment. Click the links below for examples:
/address/<address>#taptree=<taptree>/address/<address>#psbt=<PSBT>/address/<address>#taptree=<taptree>/address/<address>#tapleaf=<control-block>:<script><leaf-version>Cryptographic checks on the provided data are done in the browser so the verifier can independently confirm that the provided scripts commit to the Taproot output key for the address.
+The provided tapleaves are cryptographically verified against the address before being added to the Taproot Tree widget. Verification happens entirely in the browser, using the following process for each leaf derived from passed data:
+