From 7e1d801ac0712e080023e0115dd173299c369ad1 Mon Sep 17 00:00:00 2001 From: leo42 Date: Mon, 21 Aug 2023 12:51:31 +0200 Subject: [PATCH] Resolve CIP-68 Handles --- server/utils/helpers.ts | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/server/utils/helpers.ts b/server/utils/helpers.ts index 0e05209..9d82c7f 100644 --- a/server/utils/helpers.ts +++ b/server/utils/helpers.ts @@ -70,21 +70,31 @@ export async function translateAdaHandle( "Handle is malformed" ); } - const handleInHex = Buffer.from(handle).toString("hex"); - const url = `${koiosUrl}/asset_address_list?_asset_policy=${policyId}&_asset_name=${handleInHex}`; - - const data = (await axios.get(url)).data; - - if (data.length === 0) { - throw createErrorWithCode( - HttpStatusCode.NOT_FOUND, - "Handle does not exist" - ); + const address222 = await resolveAddress("000de140"+handleInHex); + if (address222) return address222; + const address314 = await resolveAddress("0013ab30"+handleInHex); + if (address314) return address314; + + const address = await resolveAddress(handleInHex); + if (address) return address; else throw createErrorWithCode( + HttpStatusCode.NOT_FOUND, + "Handle does not exist" + ); + + + async function resolveAddress(handleInHex: string){ + const url = `${koiosUrl}/asset_address_list?_asset_policy=${policyId}&_asset_name=${handleInHex}`; + + const data = (await axios.get(url)).data; + + if (data.length === 0) { + return null; + } + + const address = data[0].payment_address; + return address; } - - const address = data[0].payment_address; - return address; } export async function getFromVM(params: any) {