UNPKG

viem

Version:

TypeScript Interface for Ethereum

26 lines 1.09 kB
"use strict"; 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