Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions modules/express/src/typedRoutes/api/v2/canonicalAddress.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ export const CanonicalAddressRequestParams = {
* Request body for canonical address conversion
*/
export const CanonicalAddressRequestBody = {
/** Address to canonicalize - can be in any supported format (base58, cashaddr, etc.) */
/** Address to canonicalize - can be in any supported format (base58, cashaddr for BCH only, etc.) */
address: t.string,
/** Desired address format: 'base58' or 'cashaddr' (BCH/BSV: defaults to 'base58', LTC: ignored as addresses are returned unchanged) */
/** Desired address format: 'base58' (supported by BCH, BSV, LTC) or 'cashaddr' (supported by BCH only). Defaults to 'base58'. LTC ignores this parameter. */
version: optional(t.union([t.literal('base58'), t.literal('cashaddr')])),
/** @deprecated Use version instead. Fallback parameter for version. */
scriptHashVersion: optional(t.union([t.literal('base58'), t.literal('cashaddr')])),
Expand All @@ -30,18 +30,23 @@ export const CanonicalAddressRequestBody = {
*
* **Supported Coins:**
* - **Bitcoin Cash (BCH/TBCH)**: Converts between base58 and cashaddr formats
* - **Bitcoin SV (BSV/TBSV)**: Converts between base58 and cashaddr formats
* - **Bitcoin SV (BSV/TBSV)**: Supports base58 format only (cashaddr not supported)
* - **Litecoin (LTC/TLTC)**: Returns address unchanged (included for API consistency)
*
* **Address Formats:**
* - **base58**: Traditional Bitcoin-style addresses (e.g., '1BpEi6DfDAUFd7GtittLSdBeYJvcoaVggu', '3CWFddi6m4ndiGyKqzYvsFYagqDLPVMTzC')
* - **cashaddr**: Bitcoin Cash address format with network prefix (e.g., 'bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a')
*
* **BCH/BSV Behavior:**
* **BCH Behavior:**
* - version='base58': Converts any input format to base58 canonical format
* - version='cashaddr': Converts any input format to cashaddr format (adds network prefix if missing)
* - Default (no version): Converts to base58 format
*
* **BSV Behavior (Deprecated):**
* - version='base58': Converts address to base58 canonical format
* - version='cashaddr': Not supported - will return error "unsupported address format cashaddr for network bitcoinsv"
* - Default (no version): Converts to base58 format
*
* **LTC Behavior:**
* - Returns the input address unchanged regardless of version parameter
* - Included for API consistency but performs no transformation
Expand Down