UNPKG

ox

Version:

Ethereum Standard Library

88 lines 3.04 kB
import type * as abitype from 'abitype'; import type * as Errors from './Errors.js'; import * as formatAbiParameter from './internal/human-readable/formatAbiParameter.js'; import * as parseAbiParameter from './internal/human-readable/parseAbiParameter.js'; /** Root type for an ABI parameter. */ export type AbiParameter = abitype.AbiParameter; /** A parameter on an ABI event. */ export type AbiEventParameter = abitype.AbiEventParameter; 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 declare function format<const parameter extends AbiParameter | AbiEventParameter>(parameter: parameter | AbiParameter | AbiEventParameter): format.ReturnType<parameter>; export declare namespace format { type ReturnType<parameter extends AbiParameter | AbiEventParameter = AbiParameter> = formatAbiParameter.FormatAbiParameter<parameter>; type ErrorType = Errors.GlobalErrorType; } /** * 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 declare function from<const parameter extends AbiParameter | string | readonly string[]>(parameter: parameter | AbiParameter | string | readonly string[]): from.ReturnType<parameter>; export declare namespace from { type ReturnType<parameter extends AbiParameter | string | readonly string[]> = parameter extends string ? parseAbiParameter.ParseAbiParameter<parameter> : parameter extends readonly string[] ? parseAbiParameter.ParseAbiParameter<parameter> : parameter; type ErrorType = Errors.GlobalErrorType; } //# sourceMappingURL=AbiParameter.d.ts.map