UNPKG

ox

Version:

Ethereum Standard Library

82 lines 2.2 kB
import * as formatAbiParameter from './internal/human-readable/formatAbiParameter.js'; import * as parseAbiParameter from './internal/human-readable/parseAbiParameter.js'; export { InvalidAbiParameterError, InvalidAbiTypeParameterError, InvalidFunctionModifierError, InvalidModifierError, InvalidParameterError, SolidityProtectedKeywordError, } from './internal/human-readable/errors.js'; export { InvalidParenthesisError } from './internal/human-readable/errors.js'; /** * Formats an {@link ox#AbiParameter.AbiParameter} into a **Human Readable ABI Parameter**. * * @example * ```ts twoslash * import { AbiParameter } from 'ox' * * const formatted = AbiParameter.format({ * name: 'spender', * type: 'address' * }) * * formatted * // ^? * ``` * * @param parameter - The ABI Parameter to format. * @returns The formatted ABI Parameter. */ export function format(parameter) { return formatAbiParameter.formatAbiParameter(parameter); } /** * Parses an arbitrary **JSON ABI Parameter** or **Human Readable ABI Parameter** into a typed {@link ox#AbiParameter.AbiParameter}. * * @example * ### JSON Parameters * * ```ts twoslash * import { AbiParameter } from 'ox' * * const parameter = AbiParameter.from({ * name: 'spender', * type: 'address' * }) * * parameter * //^? * ``` * * @example * ### Human Readable Parameters * * ```ts twoslash * import { AbiParameter } from 'ox' * * const parameter = AbiParameter.from('address spender') * * parameter * //^? * ``` * * @example * It is possible to specify `struct`s along with your definition: * * ```ts twoslash * import { AbiParameter } from 'ox' * * const parameter = AbiParameter.from([ * 'struct Foo { address spender; uint256 amount; }', * 'Foo foo' * ]) * * parameter * //^? * ``` * * @param parameter - The ABI Parameter to parse. * @returns The typed ABI Parameter. */ export function from(parameter) { if (Array.isArray(parameter)) return parseAbiParameter.parseAbiParameter(parameter); if (typeof parameter === 'string') return parseAbiParameter.parseAbiParameter(parameter); return parameter; } //# sourceMappingURL=AbiParameter.js.map