viem
Version:
26 lines • 1.09 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatAbiItem = formatAbiItem;
exports.formatAbiParams = formatAbiParams;
const abi_js_1 = require("../../errors/abi.js");
function formatAbiItem(abiItem, { includeName = false } = {}) {
if (abiItem.type !== 'function' &&
abiItem.type !== 'event' &&
abiItem.type !== 'error')
throw new abi_js_1.InvalidDefinitionTypeError(abiItem.type);
return `${abiItem.name}(${formatAbiParams(abiItem.inputs, { includeName })})`;
}
function formatAbiParams(params, { includeName = false } = {}) {
if (!params)
return '';
return params
.map((param) => formatAbiParam(param, { includeName }))
.join(includeName ? ', ' : ',');
}
function formatAbiParam(param, { includeName }) {
if (param.type.startsWith('tuple')) {
return `(${formatAbiParams(param.components, { includeName })})${param.type.slice('tuple'.length)}`;
}
return param.type + (includeName && param.name ? ` ${param.name}` : '');
}
//# sourceMappingURL=formatAbiItem.js.map
;