Skip to content

Commit ceb083c

Browse files
committed
Asset Id validation on bip21 uri
1 parent 27a4da7 commit ceb083c

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/ga_tx.cpp

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -456,12 +456,24 @@ namespace sdk {
456456
result["error"] = res::id_invalid_payment_request_assetid;
457457
break;
458458
} else if (uri_params["bip21-params"].contains("assetid")) {
459+
const std::string assetid = uri_params["bip21-params"]["assetid"];
460+
if (assetid.length() != 64) {
461+
result["error"] = res::id_invalid_payment_request_assetid;
462+
break;
463+
}
464+
unsigned char buff[32];
465+
size_t written;
466+
int ret = wally_hex_to_bytes(assetid.data(), buff, 32, &written);
467+
if (ret != WALLY_OK) {
468+
result["error"] = res::id_invalid_payment_request_assetid;
469+
break;
470+
}
459471
addressees_have_assets = true;
460472

461-
if (uri_params["bip21-params"]["assetid"] == net_params.policy_asset()) {
473+
if (assetid == net_params.policy_asset()) {
462474
addressee["asset_tag"] = "btc";
463475
} else {
464-
addressee["asset_tag"] = uri_params["bip21-params"]["assetid"];
476+
addressee["asset_tag"] = assetid;
465477
}
466478
}
467479
}

0 commit comments

Comments
 (0)