UNPKG

@kadena/kadena-cli

Version:

Kadena CLI tool to interact with the Kadena blockchain (manage keys, transactions, etc.)

63 lines 2.57 kB
import { Pact, createClient } from '@kadena/client'; import { KADENANAMES_NAMESPACE_MAINNET_MODULE, KADENANAMES_NAMESPACE_TESTNET_MODULE, } from '../../../constants/kadenanames.js'; const chainId = '15'; // kadenanames running on chain 15 export function ensureKdaExtension(name) { const lowerCaseName = name.toLowerCase(); if (!lowerCaseName.endsWith('.kda')) { return `${lowerCaseName}.kda`; } return lowerCaseName; } const client = ({ networkId, networkHost, }) => createClient(`${networkHost}/chainweb/0.0/${networkId}/chain/${chainId}/pact`); export async function kdnResolveNameToAddress(name, network, networkId, networkHost) { try { const module = network === 'testnet' ? KADENANAMES_NAMESPACE_TESTNET_MODULE : KADENANAMES_NAMESPACE_MAINNET_MODULE; const transaction = Pact.builder .execution(Pact.modules[module]['get-address'](ensureKdaExtension(name.trim()))) .setMeta({ chainId }) .setNetworkId(networkId) .createTransaction(); const response = await client({ networkId, networkHost, }).dirtyRead(transaction); return parseChainResponse(response, 'address'); } catch (error) { return undefined; } } export async function kdnResolveAddressToName(address, network, networkId, networkHost) { try { const module = network === 'testnet' ? KADENANAMES_NAMESPACE_TESTNET_MODULE : KADENANAMES_NAMESPACE_MAINNET_MODULE; const transaction = Pact.builder .execution(Pact.modules[module]['get-name'](address.trim())) .setMeta({ chainId }) .setNetworkId(networkId) .createTransaction(); const response = await client({ networkId, networkHost, }).dirtyRead(transaction); return parseChainResponse(response, 'name'); } catch (error) { return undefined; } } function parseChainResponse(response, subject) { var _a, _b; if (((_a = response.result) === null || _a === void 0 ? void 0 : _a.status) === 'success') { return response.result.data; } else if (((_b = response.result) === null || _b === void 0 ? void 0 : _b.status) === 'failure') { const errorMessage = `Failed to retrieve ${subject}: ${JSON.stringify(response.result.error)}`; throw new Error(errorMessage); } throw new Error(`Failed to retrieve ${subject}: Unknown error`); } //# sourceMappingURL=txKdnResolverChain.js.map