@kadena/kadena-cli
Version:
Kadena CLI tool to interact with the Kadena blockchain (manage keys, transactions, etc.)
63 lines • 2.57 kB
JavaScript
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