UNPKG

ox

Version:

Ethereum Standard Library

30 lines 1.02 kB
import { InvalidAbiItemError } from './errors.js'; import { isStructSignature } from './runtime/signatures.js'; import { parseStructs } from './runtime/structs.js'; import { parseSignature } from './runtime/utils.js'; /** * Parses human-readable ABI item (e.g. error, event, function) into `Abi` item. * * @param signature - Human-readable ABI item * @returns Parsed `Abi` item. */ export function parseAbiItem(signature) { let abiItem; if (typeof signature === 'string') abiItem = parseSignature(signature); else { const structs = parseStructs(signature); const length = signature.length; for (let i = 0; i < length; i++) { const signature_ = signature[i]; if (isStructSignature(signature_)) continue; abiItem = parseSignature(signature_, structs); break; } } if (!abiItem) throw new InvalidAbiItemError({ signature }); return abiItem; } //# sourceMappingURL=parseAbiItem.js.map