🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

ox

Package Overview
Dependencies
Maintainers
2
Versions
415
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ox - npm Package Compare versions

Comparing version
1.0.0-beta.8
to
1.0.0-beta.9
+88
dist/core/AbiParameter.d.ts
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
{"version":3,"file":"AbiParameter.d.ts","sourceRoot":"","sources":["../../src/core/AbiParameter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,SAAS,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,kBAAkB,MAAM,iDAAiD,CAAA;AACrF,OAAO,KAAK,iBAAiB,MAAM,gDAAgD,CAAA;AAEnF,sCAAsC;AACtC,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;AAE/C,mCAAmC;AACnC,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAA;AAEzD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAE7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,MAAM,CACpB,KAAK,CAAC,SAAS,SAAS,YAAY,GAAG,iBAAiB,EAExD,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,iBAAiB,GACtD,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAE9B;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,UAAU,CACb,SAAS,SAAS,YAAY,GAAG,iBAAiB,GAAG,YAAY,IAC/D,kBAAkB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAEpD,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,IAAI,CAClB,KAAK,CAAC,SAAS,SAAS,YAAY,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,EAEjE,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,GAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAM5B;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,UAAU,CAAC,SAAS,SAAS,YAAY,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,IACzE,SAAS,SAAS,MAAM,GACpB,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAC9C,SAAS,SAAS,SAAS,MAAM,EAAE,GACjC,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAC9C,SAAS,CAAA;IAEjB,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC"}
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
{"version":3,"file":"AbiParameter.js","sourceRoot":"","sources":["../../src/core/AbiParameter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,kBAAkB,MAAM,iDAAiD,CAAA;AACrF,OAAO,KAAK,iBAAiB,MAAM,gDAAgD,CAAA;AAQnF,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAE7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,MAAM,CAGpB,SAAuD;IAEvD,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,SAAsB,CAAU,CAAA;AAC/E,CAAC;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,UAAU,IAAI,CAGlB,SAAgE;IAEhE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1B,OAAO,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAU,CAAA;IAChE,IAAI,OAAO,SAAS,KAAK,QAAQ;QAC/B,OAAO,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAU,CAAA;IAChE,OAAO,SAAkB,CAAA;AAC3B,CAAC"}
import type { AbiItemType, AbiParameter } from 'abitype';
import { BaseError } from '../../Errors.js';
import type { Modifier } from './types/signatures.js';
export declare class InvalidAbiItemError extends BaseError {
name: string;
constructor({ signature }: {
signature: string | object;
});
}
export declare class UnknownTypeError extends BaseError {
name: string;
constructor({ type }: {
type: string;
});
}
export declare class UnknownSolidityTypeError extends BaseError {
name: string;
constructor({ type }: {
type: string;
});
}
export declare class InvalidAbiParameterError extends BaseError {
name: string;
constructor({ param }: {
param: string | object;
});
}
export declare class InvalidAbiParametersError extends BaseError {
name: string;
constructor({ params }: {
params: string | object;
});
}
export declare class InvalidParameterError extends BaseError {
name: string;
constructor({ param }: {
param: string;
});
}
export declare class SolidityProtectedKeywordError extends BaseError {
name: string;
constructor({ param, name }: {
param: string;
name: string;
});
}
export declare class InvalidModifierError extends BaseError {
name: string;
constructor({ param, type, modifier, }: {
param: string;
type?: AbiItemType | 'struct' | undefined;
modifier: Modifier;
});
}
export declare class InvalidFunctionModifierError extends BaseError {
name: string;
constructor({ param, type, modifier, }: {
param: string;
type?: AbiItemType | 'struct' | undefined;
modifier: Modifier;
});
}
export declare class InvalidAbiTypeParameterError extends BaseError {
name: string;
constructor({ abiParameter, }: {
abiParameter: AbiParameter & {
indexed?: boolean | undefined;
};
});
}
export declare class InvalidSignatureError extends BaseError {
name: string;
constructor({ signature, type, }: {
signature: string;
type: AbiItemType | 'struct';
});
}
export declare class UnknownSignatureError extends BaseError {
name: string;
constructor({ signature }: {
signature: string;
});
}
export declare class InvalidStructSignatureError extends BaseError {
name: string;
constructor({ signature }: {
signature: string;
});
}
export declare class InvalidParenthesisError extends BaseError {
name: string;
constructor({ current, depth }: {
current: string;
depth: number;
});
}
export declare class CircularReferenceError extends BaseError {
name: string;
constructor({ type }: {
type: string;
});
}
//# sourceMappingURL=errors.d.ts.map
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/errors.ts"],"names":[],"mappings":"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"}
import { BaseError } from '../../Errors.js';
export class InvalidAbiItemError extends BaseError {
name = 'AbiItem.InvalidAbiItemError';
constructor({ signature }) {
super('Failed to parse ABI item.', {
details: `parseAbiItem(${JSON.stringify(signature, null, 2)})`,
docsPath: '/api/AbiItem/from',
});
}
}
export class UnknownTypeError extends BaseError {
name = 'HumanReadableAbi.UnknownTypeError';
constructor({ type }) {
super('Unknown type.', {
metaMessages: [
`Type "${type}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`,
],
});
}
}
export class UnknownSolidityTypeError extends BaseError {
name = 'HumanReadableAbi.UnknownSolidityTypeError';
constructor({ type }) {
super('Unknown type.', {
metaMessages: [`Type "${type}" is not a valid ABI type.`],
});
}
}
export class InvalidAbiParameterError extends BaseError {
name = 'AbiParameter.InvalidAbiParameterError';
constructor({ param }) {
super('Failed to parse ABI parameter.', {
details: `parseAbiParameter(${JSON.stringify(param, null, 2)})`,
docsPath: '/api/AbiParameter/from',
});
}
}
export class InvalidAbiParametersError extends BaseError {
name = 'AbiParameters.InvalidAbiParametersError';
constructor({ params }) {
super('Failed to parse ABI parameters.', {
details: `parseAbiParameters(${JSON.stringify(params, null, 2)})`,
docsPath: '/api/AbiParameters/from',
});
}
}
export class InvalidParameterError extends BaseError {
name = 'HumanReadableAbi.InvalidParameterError';
constructor({ param }) {
super('Invalid ABI parameter.', {
details: param,
});
}
}
export class SolidityProtectedKeywordError extends BaseError {
name = 'HumanReadableAbi.SolidityProtectedKeywordError';
constructor({ param, name }) {
super('Invalid ABI parameter.', {
details: param,
metaMessages: [
`"${name}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`,
],
});
}
}
export class InvalidModifierError extends BaseError {
name = 'HumanReadableAbi.InvalidModifierError';
constructor({ param, type, modifier, }) {
super('Invalid ABI parameter.', {
details: param,
metaMessages: [
`Modifier "${modifier}" not allowed${type ? ` in "${type}" type` : ''}.`,
],
});
}
}
export class InvalidFunctionModifierError extends BaseError {
name = 'HumanReadableAbi.InvalidFunctionModifierError';
constructor({ param, type, modifier, }) {
super('Invalid ABI parameter.', {
details: param,
metaMessages: [
`Modifier "${modifier}" not allowed${type ? ` in "${type}" type` : ''}.`,
`Data location can only be specified for array, struct, or mapping types, but "${modifier}" was given.`,
],
});
}
}
export class InvalidAbiTypeParameterError extends BaseError {
name = 'HumanReadableAbi.InvalidAbiTypeParameterError';
constructor({ abiParameter, }) {
super('Invalid ABI parameter.', {
details: JSON.stringify(abiParameter, null, 2),
metaMessages: ['ABI parameter type is invalid.'],
});
}
}
export class InvalidSignatureError extends BaseError {
name = 'Abi.InvalidSignatureError';
constructor({ signature, type, }) {
super(`Invalid ${type} signature.`, {
details: signature,
});
}
}
export class UnknownSignatureError extends BaseError {
name = 'Abi.UnknownSignatureError';
constructor({ signature }) {
super('Unknown signature.', {
details: signature,
});
}
}
export class InvalidStructSignatureError extends BaseError {
name = 'Abi.InvalidStructSignatureError';
constructor({ signature }) {
super('Invalid struct signature.', {
details: signature,
metaMessages: ['No properties exist.'],
});
}
}
export class InvalidParenthesisError extends BaseError {
name = 'HumanReadableAbi.InvalidParenthesisError';
constructor({ current, depth }) {
super('Unbalanced parentheses.', {
metaMessages: [
`"${current.trim()}" has too many ${depth > 0 ? 'opening' : 'closing'} parentheses.`,
],
details: `Depth "${depth}"`,
});
}
}
export class CircularReferenceError extends BaseError {
name = 'Abi.CircularReferenceError';
constructor({ type }) {
super('Circular reference detected.', {
metaMessages: [`Struct "${type}" is a circular reference.`],
});
}
}
//# sourceMappingURL=errors.js.map
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAG3C,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IACvC,IAAI,GAAG,6BAA6B,CAAA;IAE7C,YAAY,EAAE,SAAS,EAAkC;QACvD,KAAK,CAAC,2BAA2B,EAAE;YACjC,OAAO,EAAE,gBAAgB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG;YAC9D,QAAQ,EAAE,mBAAmB;SAC9B,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IACpC,IAAI,GAAG,mCAAmC,CAAA;IAEnD,YAAY,EAAE,IAAI,EAAoB;QACpC,KAAK,CAAC,eAAe,EAAE;YACrB,YAAY,EAAE;gBACZ,SAAS,IAAI,8EAA8E;aAC5F;SACF,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,SAAS;IAC5C,IAAI,GAAG,2CAA2C,CAAA;IAE3D,YAAY,EAAE,IAAI,EAAoB;QACpC,KAAK,CAAC,eAAe,EAAE;YACrB,YAAY,EAAE,CAAC,SAAS,IAAI,4BAA4B,CAAC;SAC1D,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,SAAS;IAC5C,IAAI,GAAG,uCAAuC,CAAA;IAEvD,YAAY,EAAE,KAAK,EAA8B;QAC/C,KAAK,CAAC,gCAAgC,EAAE;YACtC,OAAO,EAAE,qBAAqB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG;YAC/D,QAAQ,EAAE,wBAAwB;SACnC,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,SAAS;IAC7C,IAAI,GAAG,yCAAyC,CAAA;IAEzD,YAAY,EAAE,MAAM,EAA+B;QACjD,KAAK,CAAC,iCAAiC,EAAE;YACvC,OAAO,EAAE,sBAAsB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG;YACjE,QAAQ,EAAE,yBAAyB;SACpC,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,SAAS;IACzC,IAAI,GAAG,wCAAwC,CAAA;IAExD,YAAY,EAAE,KAAK,EAAqB;QACtC,KAAK,CAAC,wBAAwB,EAAE;YAC9B,OAAO,EAAE,KAAK;SACf,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,6BAA8B,SAAQ,SAAS;IACjD,IAAI,GAAG,gDAAgD,CAAA;IAEhE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAmC;QAC1D,KAAK,CAAC,wBAAwB,EAAE;YAC9B,OAAO,EAAE,KAAK;YACd,YAAY,EAAE;gBACZ,IAAI,IAAI,uGAAuG;aAChH;SACF,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACxC,IAAI,GAAG,uCAAuC,CAAA;IAEvD,YAAY,EACV,KAAK,EACL,IAAI,EACJ,QAAQ,GAKT;QACC,KAAK,CAAC,wBAAwB,EAAE;YAC9B,OAAO,EAAE,KAAK;YACd,YAAY,EAAE;gBACZ,aAAa,QAAQ,gBACnB,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,EAChC,GAAG;aACJ;SACF,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,4BAA6B,SAAQ,SAAS;IAChD,IAAI,GAAG,+CAA+C,CAAA;IAE/D,YAAY,EACV,KAAK,EACL,IAAI,EACJ,QAAQ,GAKT;QACC,KAAK,CAAC,wBAAwB,EAAE;YAC9B,OAAO,EAAE,KAAK;YACd,YAAY,EAAE;gBACZ,aAAa,QAAQ,gBACnB,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,EAChC,GAAG;gBACH,iFAAiF,QAAQ,cAAc;aACxG;SACF,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,4BAA6B,SAAQ,SAAS;IAChD,IAAI,GAAG,+CAA+C,CAAA;IAE/D,YAAY,EACV,YAAY,GAGb;QACC,KAAK,CAAC,wBAAwB,EAAE;YAC9B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,YAAY,EAAE,CAAC,gCAAgC,CAAC;SACjD,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,SAAS;IACzC,IAAI,GAAG,2BAA2B,CAAA;IAE3C,YAAY,EACV,SAAS,EACT,IAAI,GAIL;QACC,KAAK,CAAC,WAAW,IAAI,aAAa,EAAE;YAClC,OAAO,EAAE,SAAS;SACnB,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,SAAS;IACzC,IAAI,GAAG,2BAA2B,CAAA;IAE3C,YAAY,EAAE,SAAS,EAAyB;QAC9C,KAAK,CAAC,oBAAoB,EAAE;YAC1B,OAAO,EAAE,SAAS;SACnB,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,SAAS;IAC/C,IAAI,GAAG,iCAAiC,CAAA;IAEjD,YAAY,EAAE,SAAS,EAAyB;QAC9C,KAAK,CAAC,2BAA2B,EAAE;YACjC,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,CAAC,sBAAsB,CAAC;SACvC,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,SAAS;IAC3C,IAAI,GAAG,0CAA0C,CAAA;IAE1D,YAAY,EAAE,OAAO,EAAE,KAAK,EAAsC;QAChE,KAAK,CAAC,yBAAyB,EAAE;YAC/B,YAAY,EAAE;gBACZ,IAAI,OAAO,CAAC,IAAI,EAAE,kBAChB,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAC1B,eAAe;aAChB;YACD,OAAO,EAAE,UAAU,KAAK,GAAG;SAC5B,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IAC1C,IAAI,GAAG,4BAA4B,CAAA;IAE5C,YAAY,EAAE,IAAI,EAAoB;QACpC,KAAK,CAAC,8BAA8B,EAAE;YACpC,YAAY,EAAE,CAAC,WAAW,IAAI,4BAA4B,CAAC;SAC5D,CAAC,CAAA;IACJ,CAAC;CACF"}
import type { Abi } from 'abitype';
import { type FormatAbiItem } from './formatAbiItem.js';
/**
* Parses JSON ABI into human-readable ABI
*
* @param abi - ABI
* @returns Human-readable ABI
*/
export type FormatAbi<abi extends Abi | readonly unknown[]> = Abi extends abi ? readonly string[] : abi extends readonly [] ? never : abi extends Abi ? {
[key in keyof abi]: FormatAbiItem<abi[key]>;
} : readonly string[];
/**
* Parses JSON ABI into human-readable ABI
*
* @param abi - ABI
* @returns Human-readable ABI
*/
export declare function formatAbi<const abi extends Abi | readonly unknown[]>(abi: abi): FormatAbi<abi>;
//# sourceMappingURL=formatAbi.d.ts.map
{"version":3,"file":"formatAbi.d.ts","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/formatAbi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,oBAAoB,CAAA;AAEtE;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,GAAG,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,IAAI,GAAG,SAAS,GAAG,GACzE,SAAS,MAAM,EAAE,GACjB,GAAG,SAAS,SAAS,EAAE,GACrB,KAAK,GACL,GAAG,SAAS,GAAG,GACb;KACG,GAAG,IAAI,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC5C,GACD,SAAS,MAAM,EAAE,CAAA;AAEzB;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EAClE,GAAG,EAAE,GAAG,GACP,SAAS,CAAC,GAAG,CAAC,CAShB"}
import { formatAbiItem } from './formatAbiItem.js';
/**
* Parses JSON ABI into human-readable ABI
*
* @param abi - ABI
* @returns Human-readable ABI
*/
export function formatAbi(abi) {
const signatures = [];
const length = abi.length;
for (let i = 0; i < length; i++) {
const abiItem = abi[i];
const signature = formatAbiItem(abiItem);
signatures.push(signature);
}
return signatures;
}
//# sourceMappingURL=formatAbi.js.map
{"version":3,"file":"formatAbi.js","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/formatAbi.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAkBtE;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CACvB,GAAQ;IAER,MAAM,UAAU,GAAG,EAAE,CAAA;IACrB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAE,CAAA;QACvB,MAAM,SAAS,GAAG,aAAa,CAAC,OAAsB,CAAC,CAAA;QACvD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,UAAuC,CAAA;AAChD,CAAC"}
import type { Abi, AbiConstructor, AbiError, AbiEvent, AbiEventParameter, AbiFallback, AbiFunction, AbiParameter, AbiReceive, AbiStateMutability } from 'abitype';
import { type FormatAbiParameters as FormatAbiParameters_ } from './formatAbiParameters.js';
import type { AssertName } from './types/signatures.js';
/**
* Formats ABI item (e.g. error, event, function) into human-readable ABI item
*
* @param abiItem - ABI item
* @returns Human-readable ABI item
*/
export type FormatAbiItem<abiItem extends Abi[number]> = Abi[number] extends abiItem ? string : (abiItem extends AbiFunction ? AbiFunction extends abiItem ? string : `function ${AssertName<abiItem['name']>}(${FormatAbiParameters<abiItem['inputs']>})${abiItem['stateMutability'] extends Exclude<AbiStateMutability, 'nonpayable'> ? ` ${abiItem['stateMutability']}` : ''}${abiItem['outputs']['length'] extends 0 ? '' : ` returns (${FormatAbiParameters<abiItem['outputs']>})`}` : never) | (abiItem extends AbiEvent ? AbiEvent extends abiItem ? string : `event ${AssertName<abiItem['name']>}(${FormatAbiParameters<abiItem['inputs']>})` : never) | (abiItem extends AbiError ? AbiError extends abiItem ? string : `error ${AssertName<abiItem['name']>}(${FormatAbiParameters<abiItem['inputs']>})` : never) | (abiItem extends AbiConstructor ? AbiConstructor extends abiItem ? string : `constructor(${FormatAbiParameters<abiItem['inputs']>})${abiItem['stateMutability'] extends 'payable' ? ' payable' : ''}` : never) | (abiItem extends AbiFallback ? AbiFallback extends abiItem ? string : `fallback() external${abiItem['stateMutability'] extends 'payable' ? ' payable' : ''}` : never) | (abiItem extends AbiReceive ? AbiReceive extends abiItem ? string : 'receive() external payable' : never);
type FormatAbiParameters<abiParameters extends readonly (AbiParameter | AbiEventParameter)[]> = abiParameters['length'] extends 0 ? '' : FormatAbiParameters_<abiParameters extends readonly [
AbiParameter | AbiEventParameter,
...(readonly (AbiParameter | AbiEventParameter)[])
] ? abiParameters : never>;
/**
* Formats ABI item (e.g. error, event, function) into human-readable ABI item
*
* @param abiItem - ABI item
* @returns Human-readable ABI item
*/
export declare function formatAbiItem<const abiItem extends Abi[number]>(abiItem: abiItem): FormatAbiItem<abiItem>;
export {};
//# sourceMappingURL=formatAbiItem.d.ts.map
{"version":3,"file":"formatAbiItem.d.ts","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/formatAbiItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,UAAU,EACV,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,KAAK,mBAAmB,IAAI,oBAAoB,EAEjD,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,GAAG,CAAC,MAAM,CAAC,IACnD,GAAG,CAAC,MAAM,CAAC,SAAS,OAAO,GACvB,MAAM,GAEF,CAAC,OAAO,SAAS,WAAW,GACxB,WAAW,SAAS,OAAO,GACzB,MAAM,GACN,YAAY,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,mBAAmB,CAC5D,OAAO,CAAC,QAAQ,CAAC,CAClB,IAAI,OAAO,CAAC,iBAAiB,CAAC,SAAS,OAAO,CAC7C,kBAAkB,EAClB,YAAY,CACb,GACG,IAAI,OAAO,CAAC,iBAAiB,CAAC,EAAE,GAChC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GAC3C,EAAE,GACF,aAAa,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,GAC/D,KAAK,CAAC,GACV,CAAC,OAAO,SAAS,QAAQ,GACrB,QAAQ,SAAS,OAAO,GACtB,MAAM,GACN,SAAS,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,mBAAmB,CACzD,OAAO,CAAC,QAAQ,CAAC,CAClB,GAAG,GACN,KAAK,CAAC,GACV,CAAC,OAAO,SAAS,QAAQ,GACrB,QAAQ,SAAS,OAAO,GACtB,MAAM,GACN,SAAS,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,mBAAmB,CACzD,OAAO,CAAC,QAAQ,CAAC,CAClB,GAAG,GACN,KAAK,CAAC,GACV,CAAC,OAAO,SAAS,cAAc,GAC3B,cAAc,SAAS,OAAO,GAC5B,MAAM,GACN,eAAe,mBAAmB,CAChC,OAAO,CAAC,QAAQ,CAAC,CAClB,IAAI,OAAO,CAAC,iBAAiB,CAAC,SAAS,SAAS,GAC7C,UAAU,GACV,EAAE,EAAE,GACV,KAAK,CAAC,GACV,CAAC,OAAO,SAAS,WAAW,GACxB,WAAW,SAAS,OAAO,GACzB,MAAM,GACN,sBAAsB,OAAO,CAAC,iBAAiB,CAAC,SAAS,SAAS,GAC9D,UAAU,GACV,EAAE,EAAE,GACV,KAAK,CAAC,GACV,CAAC,OAAO,SAAS,UAAU,GACvB,UAAU,SAAS,OAAO,GACxB,MAAM,GACN,4BAA4B,GAC9B,KAAK,CAAC,CAAA;AAEpB,KAAK,mBAAmB,CACtB,aAAa,SAAS,SAAS,CAAC,YAAY,GAAG,iBAAiB,CAAC,EAAE,IACjE,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,GACjC,EAAE,GACF,oBAAoB,CAClB,aAAa,SAAS,SAAS;IAC7B,YAAY,GAAG,iBAAiB;IAChC,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,iBAAiB,CAAC,EAAE,CAAC;CACnD,GACG,aAAa,GACb,KAAK,CACV,CAAA;AAEL;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,CAAC,OAAO,SAAS,GAAG,CAAC,MAAM,CAAC,EAC7D,OAAO,EAAE,OAAO,GACf,aAAa,CAAC,OAAO,CAAC,CAoCxB"}
import { formatAbiParameters, } from './formatAbiParameters.js';
/**
* Formats ABI item (e.g. error, event, function) into human-readable ABI item
*
* @param abiItem - ABI item
* @returns Human-readable ABI item
*/
export function formatAbiItem(abiItem) {
if (abiItem.type === 'function')
return `function ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability && abiItem.stateMutability !== 'nonpayable'
? ` ${abiItem.stateMutability}`
: ''}${abiItem.outputs?.length
? ` returns (${formatAbiParameters(abiItem.outputs)})`
: ''}`;
if (abiItem.type === 'event')
return `event ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;
if (abiItem.type === 'error')
return `error ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;
if (abiItem.type === 'constructor')
return `constructor(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;
if (abiItem.type === 'fallback')
return `fallback() external${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;
return 'receive() external payable';
}
//# sourceMappingURL=formatAbiItem.js.map
{"version":3,"file":"formatAbiItem.js","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/formatAbiItem.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AA4EjC;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAgB;IAQhB,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU;QAC7B,OAAO,YAAY,OAAO,CAAC,IAAI,IAAI,mBAAmB,CACpD,OAAO,CAAC,MAAgB,CACzB,IACC,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,KAAK,YAAY;YACjE,CAAC,CAAC,IAAI,OAAO,CAAC,eAAe,EAAE;YAC/B,CAAC,CAAC,EACN,GACE,OAAO,CAAC,OAAO,EAAE,MAAM;YACrB,CAAC,CAAC,aAAa,mBAAmB,CAAC,OAAO,CAAC,OAAiB,CAAC,GAAG;YAChE,CAAC,CAAC,EACN,EAAE,CAAA;IACJ,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;QAC1B,OAAO,SAAS,OAAO,CAAC,IAAI,IAAI,mBAAmB,CACjD,OAAO,CAAC,MAAgB,CACzB,GAAG,CAAA;IACN,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;QAC1B,OAAO,SAAS,OAAO,CAAC,IAAI,IAAI,mBAAmB,CACjD,OAAO,CAAC,MAAgB,CACzB,GAAG,CAAA;IACN,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa;QAChC,OAAO,eAAe,mBAAmB,CAAC,OAAO,CAAC,MAAgB,CAAC,IACjE,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EACvD,EAAE,CAAA;IACJ,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU;QAC7B,OAAO,sBACL,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EACvD,EAAY,CAAA;IACd,OAAO,4BAAsC,CAAA;AAC/C,CAAC"}
import type { AbiEventParameter, AbiParameter } from 'abitype';
import type { IsNarrowable, Join } from './types.js';
import type { AssertName } from './types/signatures.js';
/**
* Formats `AbiParameter` to human-readable ABI parameter.
*
* @param abiParameter - ABI parameter
* @returns Human-readable ABI parameter
*/
export type FormatAbiParameter<abiParameter extends AbiParameter | AbiEventParameter> = abiParameter extends {
name?: infer name extends string;
type: `tuple${infer array}`;
components: infer components extends readonly AbiParameter[];
indexed?: infer indexed extends boolean;
} ? FormatAbiParameter<{
type: `(${Join<{
[key in keyof components]: FormatAbiParameter<{
type: components[key]['type'];
} & (IsNarrowable<components[key]['name'], string> extends true ? {
name: components[key]['name'];
} : unknown) & (components[key] extends {
components: readonly AbiParameter[];
} ? {
components: components[key]['components'];
} : unknown)>;
}, ', '>})${array}`;
} & (IsNarrowable<name, string> extends true ? {
name: name;
} : unknown) & (IsNarrowable<indexed, boolean> extends true ? {
indexed: indexed;
} : unknown)> : `${abiParameter['type']}${abiParameter extends {
indexed: true;
} ? ' indexed' : ''}${abiParameter['name'] extends infer name extends string ? name extends '' ? '' : ` ${AssertName<name>}` : ''}`;
/**
* Formats `AbiParameter` to human-readable ABI parameter.
*
* @param abiParameter - ABI parameter
* @returns Human-readable ABI parameter
*/
export declare function formatAbiParameter<const abiParameter extends AbiParameter | AbiEventParameter>(abiParameter: abiParameter): FormatAbiParameter<abiParameter>;
//# sourceMappingURL=formatAbiParameter.d.ts.map
{"version":3,"file":"formatAbiParameter.d.ts","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/formatAbiParameter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,CAC5B,YAAY,SAAS,YAAY,GAAG,iBAAiB,IACnD,YAAY,SAAS;IACvB,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,MAAM,CAAA;IAChC,IAAI,EAAE,QAAQ,MAAM,KAAK,EAAE,CAAA;IAC3B,UAAU,EAAE,MAAM,UAAU,SAAS,SAAS,YAAY,EAAE,CAAA;IAC5D,OAAO,CAAC,EAAE,MAAM,OAAO,SAAS,OAAO,CAAA;CACxC,GACG,kBAAkB,CAChB;IACE,IAAI,EAAE,IAAI,IAAI,CACZ;SACG,GAAG,IAAI,MAAM,UAAU,GAAG,kBAAkB,CAC3C;YACE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;SAC9B,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,SAAS,IAAI,GAC3D;YAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;SAAE,GACjC,OAAO,CAAC,GACV,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS;YAAE,UAAU,EAAE,SAAS,YAAY,EAAE,CAAA;SAAE,GAC5D;YAAE,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAA;SAAE,GAC7C,OAAO,CAAC,CACf;KACF,EACD,IAAI,CACL,IAAI,KAAK,EAAE,CAAA;CACb,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,IAAI,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG,OAAO,CAAC,GACtE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,GACxC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GACpB,OAAO,CAAC,CACf,GACD,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,YAAY,SAAS;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAC5D,UAAU,GACV,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,MAAM,IAAI,SAAS,MAAM,GAC3D,IAAI,SAAS,EAAE,GACb,EAAE,GACF,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,GACxB,EAAE,EAAE,CAAA;AAKZ;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,CAAC,YAAY,SAAS,YAAY,GAAG,iBAAiB,EAC3D,YAAY,EAAE,YAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAyB9D"}
import { execTyped } from './regex.js';
// https://regexr.com/7f7rv
const tupleRegex = /^tuple(?<array>(\[(\d*)\])*)$/;
/**
* Formats `AbiParameter` to human-readable ABI parameter.
*
* @param abiParameter - ABI parameter
* @returns Human-readable ABI parameter
*/
export function formatAbiParameter(abiParameter) {
let type = abiParameter.type;
if (tupleRegex.test(abiParameter.type) && 'components' in abiParameter) {
type = '(';
const length = abiParameter.components.length;
for (let i = 0; i < length; i++) {
const component = abiParameter.components[i];
type += formatAbiParameter(component);
if (i < length - 1)
type += ', ';
}
const result = execTyped(tupleRegex, abiParameter.type);
type += `)${result?.array || ''}`;
return formatAbiParameter({
...abiParameter,
type,
});
}
// Add `indexed` to type if in `abiParameter`
if ('indexed' in abiParameter && abiParameter.indexed)
type = `${type} indexed`;
// Return human-readable ABI parameter
if (abiParameter.name)
return `${type} ${abiParameter.name}`;
return type;
}
//# sourceMappingURL=formatAbiParameter.js.map
{"version":3,"file":"formatAbiParameter.js","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/formatAbiParameter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAgDtC,2BAA2B;AAC3B,MAAM,UAAU,GAAG,+BAA+B,CAAA;AAElD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAEhC,YAA0B;IAG1B,IAAI,IAAI,GAAG,YAAY,CAAC,IAAI,CAAA;IAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;QACvE,IAAI,GAAG,GAAG,CAAA;QACV,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAgB,CAAA;QACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAE,CAAA;YAC7C,IAAI,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAA;YACrC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC;gBAAE,IAAI,IAAI,IAAI,CAAA;QAClC,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,CAAqB,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;QAC3E,IAAI,IAAI,IAAI,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,CAAA;QACjC,OAAO,kBAAkB,CAAC;YACxB,GAAG,YAAY;YACf,IAAI;SACL,CAAW,CAAA;IACd,CAAC;IACD,6CAA6C;IAC7C,IAAI,SAAS,IAAI,YAAY,IAAI,YAAY,CAAC,OAAO;QACnD,IAAI,GAAG,GAAG,IAAI,UAAU,CAAA;IAC1B,sCAAsC;IACtC,IAAI,YAAY,CAAC,IAAI;QAAE,OAAO,GAAG,IAAI,IAAI,YAAY,CAAC,IAAI,EAAY,CAAA;IACtE,OAAO,IAAc,CAAA;AACvB,CAAC"}
import type { AbiEventParameter, AbiParameter } from 'abitype';
import type { Join } from './types.js';
import { type FormatAbiParameter } from './formatAbiParameter.js';
/**
* Formats `AbiParameter`s to human-readable ABI parameter.
*
* @param abiParameters - ABI parameters
* @returns Human-readable ABI parameters
*/
export type FormatAbiParameters<abiParameters extends readonly [
AbiParameter | AbiEventParameter,
...(readonly (AbiParameter | AbiEventParameter)[])
]> = Join<{
[key in keyof abiParameters]: FormatAbiParameter<abiParameters[key]>;
}, ', '>;
/**
* Formats `AbiParameter`s to human-readable ABI parameters.
*
* @param abiParameters - ABI parameters
* @returns Human-readable ABI parameters
*/
export declare function formatAbiParameters<const abiParameters extends readonly [
AbiParameter | AbiEventParameter,
...(readonly (AbiParameter | AbiEventParameter)[])
]>(abiParameters: abiParameters): FormatAbiParameters<abiParameters>;
//# sourceMappingURL=formatAbiParameters.d.ts.map
{"version":3,"file":"formatAbiParameters.d.ts","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/formatAbiParameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,yBAAyB,CAAA;AAEhC;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,CAC7B,aAAa,SAAS,SAAS;IAC7B,YAAY,GAAG,iBAAiB;IAChC,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,iBAAiB,CAAC,EAAE,CAAC;CACnD,IACC,IAAI,CACN;KACG,GAAG,IAAI,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CACrE,EACD,IAAI,CACL,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,CAAC,aAAa,SAAS,SAAS;IACnC,YAAY,GAAG,iBAAiB;IAChC,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,iBAAiB,CAAC,EAAE,CAAC;CACnD,EACD,aAAa,EAAE,aAAa,GAAG,mBAAmB,CAAC,aAAa,CAAC,CASlE"}
import { formatAbiParameter, } from './formatAbiParameter.js';
/**
* Formats `AbiParameter`s to human-readable ABI parameters.
*
* @param abiParameters - ABI parameters
* @returns Human-readable ABI parameters
*/
export function formatAbiParameters(abiParameters) {
let params = '';
const length = abiParameters.length;
for (let i = 0; i < length; i++) {
const abiParameter = abiParameters[i];
params += formatAbiParameter(abiParameter);
if (i !== length - 1)
params += ', ';
}
return params;
}
//# sourceMappingURL=formatAbiParameters.js.map
{"version":3,"file":"formatAbiParameters.js","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/formatAbiParameters.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,kBAAkB,GACnB,MAAM,yBAAyB,CAAA;AAoBhC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAKjC,aAA4B;IAC5B,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAA;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAE,CAAA;QACtC,MAAM,IAAI,kBAAkB,CAAC,YAAY,CAAC,CAAA;QAC1C,IAAI,CAAC,KAAK,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,IAAI,CAAA;IACtC,CAAC;IACD,OAAO,MAA4C,CAAA;AACrD,CAAC"}
import type { Abi } from 'abitype';
import type { Error, Filter } from './types.js';
import type { Signatures } from './types/signatures.js';
import type { ParseStructs } from './types/structs.js';
import type { ParseSignature } from './types/utils.js';
/**
* Parses human-readable ABI into JSON `Abi`.
*
* @param signatures - Human-readable ABI
* @returns Parsed `Abi`.
*/
export type ParseAbi<signatures extends readonly string[]> = string[] extends signatures ? Abi : signatures extends readonly string[] ? signatures extends Signatures<signatures> ? ParseStructs<signatures> extends infer structs ? {
[key in keyof signatures]: signatures[key] extends string ? ParseSignature<signatures[key], structs> : never;
} extends infer mapped extends readonly unknown[] ? Filter<mapped, never> extends infer result ? result extends readonly [] ? never : result : never : never : never : never : never;
/**
* Parses human-readable ABI into JSON `Abi`.
*
* @param signatures - Human-Readable ABI
* @returns Parsed `Abi`.
*/
export declare function parseAbi<const signatures extends readonly string[]>(signatures: signatures['length'] extends 0 ? Error<'At least one signature required'> : Signatures<signatures> extends signatures ? signatures : Signatures<signatures>): ParseAbi<signatures>;
//# sourceMappingURL=parseAbi.d.ts.map
{"version":3,"file":"parseAbi.d.ts","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/parseAbi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAI/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,CAAC,UAAU,SAAS,SAAS,MAAM,EAAE,IACvD,MAAM,EAAE,SAAS,UAAU,GACvB,GAAG,GACH,UAAU,SAAS,SAAS,MAAM,EAAE,GAClC,UAAU,SAAS,UAAU,CAAC,UAAU,CAAC,GACvC,YAAY,CAAC,UAAU,CAAC,SAAS,MAAM,OAAO,GAC5C;KACG,GAAG,IAAI,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,MAAM,GACrD,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GACxC,KAAK;CACV,SAAS,MAAM,MAAM,SAAS,SAAS,OAAO,EAAE,GAC/C,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,MAAM,MAAM,GACxC,MAAM,SAAS,SAAS,EAAE,GACxB,KAAK,GACL,MAAM,GACR,KAAK,GACP,KAAK,GACP,KAAK,GACP,KAAK,GACP,KAAK,CAAA;AAEb;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,CAAC,UAAU,SAAS,SAAS,MAAM,EAAE,EACjE,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,GACtC,KAAK,CAAC,iCAAiC,CAAC,GACxC,UAAU,CAAC,UAAU,CAAC,SAAS,UAAU,GACvC,UAAU,GACV,UAAU,CAAC,UAAU,CAAC,GAC3B,QAAQ,CAAC,UAAU,CAAC,CAUtB"}
import { isStructSignature } from './runtime/signatures.js';
import { parseStructs } from './runtime/structs.js';
import { parseSignature } from './runtime/utils.js';
/**
* Parses human-readable ABI into JSON `Abi`.
*
* @param signatures - Human-Readable ABI
* @returns Parsed `Abi`.
*/
export function parseAbi(signatures) {
const structs = parseStructs(signatures);
const abi = [];
const length = signatures.length;
for (let i = 0; i < length; i++) {
const signature = signatures[i];
if (isStructSignature(signature))
continue;
abi.push(parseSignature(signature, structs));
}
return abi;
}
//# sourceMappingURL=parseAbi.js.map
{"version":3,"file":"parseAbi.js","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/parseAbi.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAgCnD;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CACtB,UAI4B;IAE5B,MAAM,OAAO,GAAG,YAAY,CAAC,UAA+B,CAAC,CAAA;IAC7D,MAAM,GAAG,GAAG,EAAE,CAAA;IACd,MAAM,MAAM,GAAG,UAAU,CAAC,MAAgB,CAAA;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,SAAS,GAAI,UAAgC,CAAC,CAAC,CAAE,CAAA;QACvD,IAAI,iBAAiB,CAAC,SAAS,CAAC;YAAE,SAAQ;QAC1C,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;IAC9C,CAAC;IACD,OAAO,GAAsC,CAAA;AAC/C,CAAC"}
import type { Abi } from 'abitype';
import type { Narrow } from 'abitype';
import type { Error, Filter } from './types.js';
import type { Signature, Signatures } from './types/signatures.js';
import type { ParseStructs } from './types/structs.js';
import type { ParseSignature } from './types/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 type ParseAbiItem<signature extends string | readonly string[] | readonly unknown[]> = (signature extends string ? string extends signature ? Abi[number] : signature extends Signature<signature> ? ParseSignature<signature> : never : never) | (signature extends readonly string[] ? string[] extends signature ? Abi[number] : signature extends Signatures<signature> ? ParseStructs<signature> extends infer structs ? {
[key in keyof signature]: ParseSignature<signature[key] extends string ? signature[key] : never, structs>;
} extends infer mapped extends readonly unknown[] ? Filter<mapped, never>[0] extends infer result ? result extends undefined ? never : result : never : never : never : never : never);
/**
* Parses human-readable ABI item (e.g. error, event, function) into `Abi` item.
*
* @param signature - Human-readable ABI item
* @returns Parsed `Abi` item.
*/
export declare function parseAbiItem<signature extends string | readonly string[] | readonly unknown[]>(signature: Narrow<signature> & ((signature extends string ? string extends signature ? unknown : Signature<signature> : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<'At least one signature required.'> : string[] extends signature ? unknown : Signatures<signature> : never))): ParseAbiItem<signature>;
//# sourceMappingURL=parseAbiItem.d.ts.map
{"version":3,"file":"parseAbiItem.d.ts","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/parseAbiItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAK/C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,CACtB,SAAS,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,OAAO,EAAE,IAE/D,CAAC,SAAS,SAAS,MAAM,GACrB,MAAM,SAAS,SAAS,GACtB,GAAG,CAAC,MAAM,CAAC,GACX,SAAS,SAAS,SAAS,CAAC,SAAS,CAAC,GACpC,cAAc,CAAC,SAAS,CAAC,GACzB,KAAK,GACT,KAAK,CAAC,GACV,CAAC,SAAS,SAAS,SAAS,MAAM,EAAE,GAChC,MAAM,EAAE,SAAS,SAAS,GACxB,GAAG,CAAC,MAAM,CAAC,GACX,SAAS,SAAS,UAAU,CAAC,SAAS,CAAC,GACrC,YAAY,CAAC,SAAS,CAAC,SAAS,MAAM,OAAO,GAC3C;KACG,GAAG,IAAI,MAAM,SAAS,GAAG,cAAc,CACtC,SAAS,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,EACtD,OAAO,CACR;CACF,SAAS,MAAM,MAAM,SAAS,SAAS,OAAO,EAAE,GAE/C,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,MAAM,GAC3C,MAAM,SAAS,SAAS,GACtB,KAAK,GACL,MAAM,GACR,KAAK,GACP,KAAK,GACP,KAAK,GACP,KAAK,GACT,KAAK,CAAC,CAAA;AAEd;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,SAAS,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,OAAO,EAAE,EAEjE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAC1B,CACI,CAAC,SAAS,SAAS,MAAM,GACrB,MAAM,SAAS,SAAS,GACtB,OAAO,GACP,SAAS,CAAC,SAAS,CAAC,GACtB,KAAK,CAAC,GACV,CAAC,SAAS,SAAS,SAAS,MAAM,EAAE,GAChC,SAAS,SAAS,SAAS,EAAE,GAC3B,KAAK,CAAC,kCAAkC,CAAC,GACzC,MAAM,EAAE,SAAS,SAAS,GACxB,OAAO,GACP,UAAU,CAAC,SAAS,CAAC,GACzB,KAAK,CAAC,CACb,GACF,YAAY,CAAC,SAAS,CAAC,CAiBzB"}
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
{"version":3,"file":"parseAbiItem.js","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/parseAbiItem.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AA2CnD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAG1B,SAcG;IAEH,IAAI,OAA4C,CAAA;IAChD,IAAI,OAAO,SAAS,KAAK,QAAQ;QAC/B,OAAO,GAAG,cAAc,CAAC,SAAS,CAA4B,CAAA;SAC3D,CAAC;QACJ,MAAM,OAAO,GAAG,YAAY,CAAC,SAA8B,CAAC,CAAA;QAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAgB,CAAA;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,UAAU,GAAI,SAA+B,CAAC,CAAC,CAAE,CAAA;YACvD,IAAI,iBAAiB,CAAC,UAAU,CAAC;gBAAE,SAAQ;YAC3C,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE,OAAO,CAA4B,CAAA;YACxE,MAAK;QACP,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,mBAAmB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IAC1D,OAAO,OAAkC,CAAA;AAC3C,CAAC"}
import type { AbiParameter } from 'abitype';
import type { Narrow } from 'abitype';
import type { Error, Filter } from './types.js';
import type { IsStructSignature, Modifier } from './types/signatures.js';
import type { ParseStructs } from './types/structs.js';
import type { ParseAbiParameter as ParseAbiParameter_ } from './types/utils.js';
/**
* Parses human-readable ABI parameter into `AbiParameter`.
*
* @param param - Human-readable ABI parameter
* @returns Parsed `AbiParameter`.
*/
export type ParseAbiParameter<param extends string | readonly string[] | readonly unknown[]> = (param extends string ? param extends '' ? never : string extends param ? AbiParameter : ParseAbiParameter_<param, {
modifier: Modifier;
}> : never) | (param extends readonly string[] ? string[] extends param ? AbiParameter : ParseStructs<param> extends infer structs ? {
[key in keyof param]: param[key] extends string ? IsStructSignature<param[key]> extends true ? never : ParseAbiParameter_<param[key], {
modifier: Modifier;
structs: structs;
}> : never;
} extends infer mapped extends readonly unknown[] ? Filter<mapped, never>[0] extends infer result ? result extends undefined ? never : result : never : never : never : never);
/**
* Parses human-readable ABI parameter into `AbiParameter`.
*
* @param param - Human-readable ABI parameter
* @returns Parsed `AbiParameter`.
*/
export declare function parseAbiParameter<param extends string | readonly string[] | readonly unknown[]>(param: Narrow<param> & ((param extends string ? param extends '' ? Error<'Empty string is not allowed.'> : unknown : never) | (param extends readonly string[] ? param extends readonly [] ? Error<'At least one parameter required.'> : string[] extends param ? unknown : unknown : never))): ParseAbiParameter<param>;
//# sourceMappingURL=parseAbiParameter.d.ts.map
{"version":3,"file":"parseAbiParameter.d.ts","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/parseAbiParameter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAK/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAE/E;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,CAC3B,KAAK,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,OAAO,EAAE,IAE3D,CAAC,KAAK,SAAS,MAAM,GACjB,KAAK,SAAS,EAAE,GACd,KAAK,GACL,MAAM,SAAS,KAAK,GAClB,YAAY,GACZ,kBAAkB,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC,GACrD,KAAK,CAAC,GACV,CAAC,KAAK,SAAS,SAAS,MAAM,EAAE,GAC5B,MAAM,EAAE,SAAS,KAAK,GACpB,YAAY,GACZ,YAAY,CAAC,KAAK,CAAC,SAAS,MAAM,OAAO,GACvC;KACG,GAAG,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,MAAM,GAC3C,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,GACxC,KAAK,GACL,kBAAkB,CAChB,KAAK,CAAC,GAAG,CAAC,EACV;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CACzC,GACH,KAAK;CACV,SAAS,MAAM,MAAM,SAAS,SAAS,OAAO,EAAE,GAC/C,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,MAAM,GAC3C,MAAM,SAAS,SAAS,GACtB,KAAK,GACL,MAAM,GACR,KAAK,GACP,KAAK,GACP,KAAK,GACT,KAAK,CAAC,CAAA;AAEd;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,OAAO,EAAE,EAE7D,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAClB,CACI,CAAC,KAAK,SAAS,MAAM,GACjB,KAAK,SAAS,EAAE,GACd,KAAK,CAAC,8BAA8B,CAAC,GACrC,OAAO,GACT,KAAK,CAAC,GACV,CAAC,KAAK,SAAS,SAAS,MAAM,EAAE,GAC5B,KAAK,SAAS,SAAS,EAAE,GACvB,KAAK,CAAC,kCAAkC,CAAC,GACzC,MAAM,EAAE,SAAS,KAAK,GACpB,OAAO,GACP,OAAO,GACX,KAAK,CAAC,CACb,GACF,iBAAiB,CAAC,KAAK,CAAC,CAoB1B"}
import { InvalidAbiParameterError } from './errors.js';
import { isStructSignature, modifiers } from './runtime/signatures.js';
import { parseStructs } from './runtime/structs.js';
import { parseAbiParameter as parseAbiParameter_ } from './runtime/utils.js';
/**
* Parses human-readable ABI parameter into `AbiParameter`.
*
* @param param - Human-readable ABI parameter
* @returns Parsed `AbiParameter`.
*/
export function parseAbiParameter(param) {
let abiParameter;
if (typeof param === 'string')
abiParameter = parseAbiParameter_(param, {
modifiers,
});
else {
const structs = parseStructs(param);
const length = param.length;
for (let i = 0; i < length; i++) {
const signature = param[i];
if (isStructSignature(signature))
continue;
abiParameter = parseAbiParameter_(signature, { modifiers, structs });
break;
}
}
if (!abiParameter)
throw new InvalidAbiParameterError({ param });
return abiParameter;
}
//# sourceMappingURL=parseAbiParameter.js.map
{"version":3,"file":"parseAbiParameter.js","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/parseAbiParameter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AA4C5E;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAG/B,KAcG;IAEH,IAAI,YAAsC,CAAA;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3B,YAAY,GAAG,kBAAkB,CAAC,KAAK,EAAE;YACvC,SAAS;SACV,CAA6B,CAAA;SAC3B,CAAC;QACJ,MAAM,OAAO,GAAG,YAAY,CAAC,KAA0B,CAAC,CAAA;QACxD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAgB,CAAA;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,SAAS,GAAI,KAA2B,CAAC,CAAC,CAAE,CAAA;YAClD,IAAI,iBAAiB,CAAC,SAAS,CAAC;gBAAE,SAAQ;YAC1C,YAAY,GAAG,kBAAkB,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA;YACpE,MAAK;QACP,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,wBAAwB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAEhE,OAAO,YAAwC,CAAA;AACjD,CAAC"}
import type { AbiParameter } from 'abitype';
import type { Narrow } from 'abitype';
import type { Error, Filter } from './types.js';
import type { IsStructSignature, Modifier } from './types/signatures.js';
import type { ParseStructs } from './types/structs.js';
import type { SplitParameters } from './types/utils.js';
import type { ParseAbiParameters as ParseAbiParameters_ } from './types/utils.js';
/**
* Parses human-readable ABI parameters into `AbiParameter`s.
*
* @param params - Human-readable ABI parameters
* @returns Parsed `AbiParameter`s.
*/
export type ParseAbiParameters<params extends string | readonly string[] | readonly unknown[]> = (params extends string ? params extends '' ? never : string extends params ? readonly AbiParameter[] : ParseAbiParameters_<SplitParameters<params>, {
modifier: Modifier;
}> : never) | (params extends readonly string[] ? string[] extends params ? AbiParameter : ParseStructs<params> extends infer structs ? {
[key in keyof params]: params[key] extends string ? IsStructSignature<params[key]> extends true ? never : ParseAbiParameters_<SplitParameters<params[key]>, {
modifier: Modifier;
structs: structs;
}> : never;
} extends infer mapped extends readonly unknown[] ? Filter<mapped, never> extends readonly [...infer content] ? content['length'] extends 0 ? never : DeepFlatten<content> : never : never : never : never);
/**
* Flatten all members of `T`.
*
* @param T - List of items to flatten
* @param Acc - The accumulator used while recursing
* @returns The flattened array
*/
type DeepFlatten<T extends readonly unknown[], Acc extends readonly unknown[] = readonly []> = T extends readonly [infer head, ...infer tail] ? tail extends undefined ? never : head extends readonly unknown[] ? DeepFlatten<tail, readonly [...Acc, ...DeepFlatten<head>]> : DeepFlatten<tail, readonly [...Acc, head]> : Acc;
/**
* Parses human-readable ABI parameters into `AbiParameter`s.
*
* @param params - Human-readable ABI parameters
* @returns Parsed `AbiParameter`s.
*/
export declare function parseAbiParameters<params extends string | readonly string[] | readonly unknown[]>(params: Narrow<params> & ((params extends string ? params extends '' ? Error<'Empty string is not allowed.'> : unknown : never) | (params extends readonly string[] ? params extends readonly [] ? Error<'At least one parameter required.'> : string[] extends params ? unknown : unknown : never))): ParseAbiParameters<params>;
export {};
//# sourceMappingURL=parseAbiParameters.d.ts.map
{"version":3,"file":"parseAbiParameters.d.ts","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/parseAbiParameters.ts"],"names":[],"mappings":"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"}
import { InvalidAbiParametersError } from './errors.js';
import { isStructSignature, modifiers } from './runtime/signatures.js';
import { parseStructs } from './runtime/structs.js';
import { splitParameters } from './runtime/utils.js';
import { parseAbiParameter as parseAbiParameter_ } from './runtime/utils.js';
/**
* Parses human-readable ABI parameters into `AbiParameter`s.
*
* @param params - Human-readable ABI parameters
* @returns Parsed `AbiParameter`s.
*/
export function parseAbiParameters(params) {
const abiParameters = [];
if (typeof params === 'string') {
const parameters = splitParameters(params);
const length = parameters.length;
for (let i = 0; i < length; i++) {
abiParameters.push(parseAbiParameter_(parameters[i], { modifiers }));
}
}
else {
const structs = parseStructs(params);
const length = params.length;
for (let i = 0; i < length; i++) {
const signature = params[i];
if (isStructSignature(signature))
continue;
const parameters = splitParameters(signature);
const length = parameters.length;
for (let k = 0; k < length; k++) {
abiParameters.push(parseAbiParameter_(parameters[k], { modifiers, structs }));
}
}
}
if (abiParameters.length === 0)
throw new InvalidAbiParametersError({ params });
return abiParameters;
}
//# sourceMappingURL=parseAbiParameters.js.map
{"version":3,"file":"parseAbiParameters.js","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/parseAbiParameters.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AA+D5E;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAGhC,MAcG;IAEH,MAAM,aAAa,GAAmB,EAAE,CAAA;IACxC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,YAAY,CAAC,MAA2B,CAAC,CAAA;QACzD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAgB,CAAA;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,SAAS,GAAI,MAA4B,CAAC,CAAC,CAAE,CAAA;YACnD,IAAI,iBAAiB,CAAC,SAAS,CAAC;gBAAE,SAAQ;YAC1C,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;YAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChC,aAAa,CAAC,IAAI,CAChB,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAC3D,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAC5B,MAAM,IAAI,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAEjD,OAAO,aAA2C,CAAA;AACpD,CAAC"}
/** @internal */
export declare function execTyped<type>(regex: RegExp, string: string): type | undefined;
/** @internal */
export declare const bytesRegex: RegExp;
/** @internal */
export declare const integerRegex: RegExp;
/** @internal */
export declare const isTupleRegex: RegExp;
//# sourceMappingURL=regex.d.ts.map
{"version":3,"file":"regex.d.ts","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/regex.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAEnC,IAAI,GAAG,SAAS,CACzC;AAED,gBAAgB;AAChB,eAAO,MAAM,UAAU,QAAyC,CAAA;AAEhE,gBAAgB;AAChB,eAAO,MAAM,YAAY,QACuG,CAAA;AAEhI,gBAAgB;AAChB,eAAO,MAAM,YAAY,QAAiB,CAAA"}
/** @internal */
export function execTyped(regex, string) {
const match = regex.exec(string);
return match?.groups;
}
/** @internal */
export const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;
/** @internal */
export const integerRegex = /^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;
/** @internal */
export const isTupleRegex = /^\(.+?\).*?$/;
//# sourceMappingURL=regex.js.map
{"version":3,"file":"regex.js","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/regex.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,MAAM,UAAU,SAAS,CAAO,KAAa,EAAE,MAAc;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAChC,OAAO,KAAK,EAAE,MAA0B,CAAA;AAC1C,CAAC;AAED,gBAAgB;AAChB,MAAM,CAAC,MAAM,UAAU,GAAG,sCAAsC,CAAA;AAEhE,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GACvB,8HAA8H,CAAA;AAEhI,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAA"}
import type { AbiItemType, AbiParameter } from 'abitype';
import type { StructLookup } from '../types/structs.js';
/**
* Gets the parameter cache key namespaced by `type` and `structs`. This prevents
* parameters from being accessible to types that don't allow them (e.g.
* `string indexed foo` not allowed outside of `type: 'event'`) and ensures
* different struct definitions with the same name are cached separately.
* @param param ABI parameter string
* @param type ABI parameter type
* @param structs Struct definitions to include in cache key
* @returns Cache key for `parameterCache`.
*/
export declare function getParameterCacheKey(param: string, type?: AbiItemType | 'struct', structs?: StructLookup): string;
/**
* Basic cache seeded with common ABI parameter strings.
*
* **Note: When seeding more parameters, make sure you benchmark performance. The current number is the ideal balance between performance and having an already existing cache.**
*/
export declare const parameterCache: Map<string, AbiParameter & {
indexed?: boolean;
}>;
//# sourceMappingURL=cache.d.ts.map
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../../src/core/internal/human-readable/runtime/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,EAC7B,OAAO,CAAC,EAAE,YAAY,UAcvB;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc;cAEE,OAAO;EAwDlC,CAAA"}
/**
* Gets the parameter cache key namespaced by `type` and `structs`. This prevents
* parameters from being accessible to types that don't allow them (e.g.
* `string indexed foo` not allowed outside of `type: 'event'`) and ensures
* different struct definitions with the same name are cached separately.
* @param param ABI parameter string
* @param type ABI parameter type
* @param structs Struct definitions to include in cache key
* @returns Cache key for `parameterCache`.
*/
export function getParameterCacheKey(param, type, structs) {
let structKey = '';
if (structs)
for (const struct of Object.entries(structs)) {
if (!struct)
continue;
let propertyKey = '';
for (const property of struct[1]) {
propertyKey += `[${property.type}${property.name ? `:${property.name}` : ''}]`;
}
structKey += `(${struct[0]}{${propertyKey}})`;
}
if (type)
return `${type}:${param}${structKey}`;
return `${param}${structKey}`;
}
/**
* Basic cache seeded with common ABI parameter strings.
*
* **Note: When seeding more parameters, make sure you benchmark performance. The current number is the ideal balance between performance and having an already existing cache.**
*/
export const parameterCache = new Map([
// Unnamed
['address', { type: 'address' }],
['bool', { type: 'bool' }],
['bytes', { type: 'bytes' }],
['bytes32', { type: 'bytes32' }],
['int', { type: 'int256' }],
['int256', { type: 'int256' }],
['string', { type: 'string' }],
['uint', { type: 'uint256' }],
['uint8', { type: 'uint8' }],
['uint16', { type: 'uint16' }],
['uint24', { type: 'uint24' }],
['uint32', { type: 'uint32' }],
['uint64', { type: 'uint64' }],
['uint96', { type: 'uint96' }],
['uint112', { type: 'uint112' }],
['uint160', { type: 'uint160' }],
['uint192', { type: 'uint192' }],
['uint256', { type: 'uint256' }],
// Named
['address owner', { type: 'address', name: 'owner' }],
['address to', { type: 'address', name: 'to' }],
['bool approved', { type: 'bool', name: 'approved' }],
['bytes _data', { type: 'bytes', name: '_data' }],
['bytes data', { type: 'bytes', name: 'data' }],
['bytes signature', { type: 'bytes', name: 'signature' }],
['bytes32 hash', { type: 'bytes32', name: 'hash' }],
['bytes32 r', { type: 'bytes32', name: 'r' }],
['bytes32 root', { type: 'bytes32', name: 'root' }],
['bytes32 s', { type: 'bytes32', name: 's' }],
['string name', { type: 'string', name: 'name' }],
['string symbol', { type: 'string', name: 'symbol' }],
['string tokenURI', { type: 'string', name: 'tokenURI' }],
['uint tokenId', { type: 'uint256', name: 'tokenId' }],
['uint8 v', { type: 'uint8', name: 'v' }],
['uint256 balance', { type: 'uint256', name: 'balance' }],
['uint256 tokenId', { type: 'uint256', name: 'tokenId' }],
['uint256 value', { type: 'uint256', name: 'value' }],
// Indexed
[
'event:address indexed from',
{ type: 'address', name: 'from', indexed: true },
],
['event:address indexed to', { type: 'address', name: 'to', indexed: true }],
[
'event:uint indexed tokenId',
{ type: 'uint256', name: 'tokenId', indexed: true },
],
[
'event:uint256 indexed tokenId',
{ type: 'uint256', name: 'tokenId', indexed: true },
],
]);
//# sourceMappingURL=cache.js.map
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../../src/core/internal/human-readable/runtime/cache.ts"],"names":[],"mappings":"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"}
import type { AbiStateMutability } from 'abitype';
import type { FunctionModifier, Modifier } from '../types/signatures.js';
export declare function isErrorSignature(signature: string): boolean;
export declare function execErrorSignature(signature: string): {
name: string;
parameters: string;
} | undefined;
export declare function isEventSignature(signature: string): boolean;
export declare function execEventSignature(signature: string): {
name: string;
parameters: string;
} | undefined;
export declare function isFunctionSignature(signature: string): boolean;
export declare function execFunctionSignature(signature: string): {
name: string;
parameters: string;
stateMutability?: AbiStateMutability;
returns?: string;
} | undefined;
export declare function isStructSignature(signature: string): boolean;
export declare function execStructSignature(signature: string): {
name: string;
properties: string;
} | undefined;
export declare function isConstructorSignature(signature: string): boolean;
export declare function execConstructorSignature(signature: string): {
parameters: string;
stateMutability?: Extract<AbiStateMutability, "payable">;
} | undefined;
export declare function isFallbackSignature(signature: string): boolean;
export declare function execFallbackSignature(signature: string): {
parameters: string;
stateMutability?: Extract<AbiStateMutability, "payable">;
} | undefined;
export declare function isReceiveSignature(signature: string): boolean;
export declare const modifiers: Set<Modifier>;
export declare const eventModifiers: Set<"indexed">;
export declare const functionModifiers: Set<FunctionModifier>;
//# sourceMappingURL=signatures.d.ts.map
{"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../../../../src/core/internal/human-readable/runtime/signatures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,OAAO,KAAK,EAEV,gBAAgB,EAChB,QAAQ,EACT,MAAM,wBAAwB,CAAA;AAK/B,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,WAEjD;AACD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM;UACzB,MAAM;gBAAc,MAAM;cAIpD;AAKD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,WAEjD;AACD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM;UACzB,MAAM;gBAAc,MAAM;cAIpD;AAKD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,WAEpD;AACD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM;UAE7C,MAAM;gBACA,MAAM;sBACA,kBAAkB;cAC1B,MAAM;cAEnB;AAKD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,WAElD;AACD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM;UAC1B,MAAM;gBAAc,MAAM;cAIpD;AAKD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,WAEvD;AACD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM;gBAE1C,MAAM;sBACA,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC;cAE3D;AAKD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,WAEpD;AACD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM;gBAEvC,MAAM;sBACA,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC;cAE3D;AAID,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,WAEnD;AAED,eAAO,MAAM,SAAS,eAKpB,CAAA;AACF,eAAO,MAAM,cAAc,gBAAsC,CAAA;AACjE,eAAO,MAAM,iBAAiB,uBAI5B,CAAA"}
import { execTyped } from '../regex.js';
// https://regexr.com/7gmok
const errorSignatureRegex = /^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;
export function isErrorSignature(signature) {
return errorSignatureRegex.test(signature);
}
export function execErrorSignature(signature) {
return execTyped(errorSignatureRegex, signature);
}
// https://regexr.com/7gmoq
const eventSignatureRegex = /^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;
export function isEventSignature(signature) {
return eventSignatureRegex.test(signature);
}
export function execEventSignature(signature) {
return execTyped(eventSignatureRegex, signature);
}
// https://regexr.com/7gmot
const functionSignatureRegex = /^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;
export function isFunctionSignature(signature) {
return functionSignatureRegex.test(signature);
}
export function execFunctionSignature(signature) {
return execTyped(functionSignatureRegex, signature);
}
// https://regexr.com/7gmp3
const structSignatureRegex = /^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;
export function isStructSignature(signature) {
return structSignatureRegex.test(signature);
}
export function execStructSignature(signature) {
return execTyped(structSignatureRegex, signature);
}
// https://regexr.com/78u01
const constructorSignatureRegex = /^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;
export function isConstructorSignature(signature) {
return constructorSignatureRegex.test(signature);
}
export function execConstructorSignature(signature) {
return execTyped(constructorSignatureRegex, signature);
}
// https://regexr.com/7srtn
const fallbackSignatureRegex = /^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;
export function isFallbackSignature(signature) {
return fallbackSignatureRegex.test(signature);
}
export function execFallbackSignature(signature) {
return execTyped(fallbackSignatureRegex, signature);
}
// https://regexr.com/78u1k
const receiveSignatureRegex = /^receive\(\) external payable$/;
export function isReceiveSignature(signature) {
return receiveSignatureRegex.test(signature);
}
export const modifiers = new Set([
'memory',
'indexed',
'storage',
'calldata',
]);
export const eventModifiers = new Set(['indexed']);
export const functionModifiers = new Set([
'calldata',
'memory',
'storage',
]);
//# sourceMappingURL=signatures.js.map
{"version":3,"file":"signatures.js","sourceRoot":"","sources":["../../../../../src/core/internal/human-readable/runtime/signatures.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAOvC,2BAA2B;AAC3B,MAAM,mBAAmB,GACvB,iEAAiE,CAAA;AACnE,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC5C,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,SAAS,CACd,mBAAmB,EACnB,SAAS,CACV,CAAA;AACH,CAAC;AAED,2BAA2B;AAC3B,MAAM,mBAAmB,GACvB,iEAAiE,CAAA;AACnE,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC5C,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,SAAS,CACd,mBAAmB,EACnB,SAAS,CACV,CAAA;AACH,CAAC;AAED,2BAA2B;AAC3B,MAAM,sBAAsB,GAC1B,kMAAkM,CAAA;AACpM,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,OAAO,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC/C,CAAC;AACD,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACrD,OAAO,SAAS,CAKb,sBAAsB,EAAE,SAAS,CAAC,CAAA;AACvC,CAAC;AAED,2BAA2B;AAC3B,MAAM,oBAAoB,GACxB,mEAAmE,CAAA;AACrE,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,OAAO,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC7C,CAAC;AACD,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,OAAO,SAAS,CACd,oBAAoB,EACpB,SAAS,CACV,CAAA;AACH,CAAC;AAED,2BAA2B;AAC3B,MAAM,yBAAyB,GAC7B,0EAA0E,CAAA;AAC5E,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,OAAO,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAClD,CAAC;AACD,MAAM,UAAU,wBAAwB,CAAC,SAAiB;IACxD,OAAO,SAAS,CAGb,yBAAyB,EAAE,SAAS,CAAC,CAAA;AAC1C,CAAC;AAED,2BAA2B;AAC3B,MAAM,sBAAsB,GAC1B,8DAA8D,CAAA;AAChE,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,OAAO,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC/C,CAAC;AACD,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACrD,OAAO,SAAS,CAGb,sBAAsB,EAAE,SAAS,CAAC,CAAA;AACvC,CAAC;AAED,2BAA2B;AAC3B,MAAM,qBAAqB,GAAG,gCAAgC,CAAA;AAC9D,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAW;IACzC,QAAQ;IACR,SAAS;IACT,SAAS;IACT,UAAU;CACX,CAAC,CAAA;AACF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAgB,CAAC,SAAS,CAAC,CAAC,CAAA;AACjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAmB;IACzD,UAAU;IACV,QAAQ;IACR,SAAS;CACV,CAAC,CAAA"}
import type { StructLookup } from '../types/structs.js';
export declare function parseStructs(signatures: readonly string[]): StructLookup;
//# sourceMappingURL=structs.d.ts.map
{"version":3,"file":"structs.d.ts","sourceRoot":"","sources":["../../../../../src/core/internal/human-readable/runtime/structs.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAIvD,wBAAgB,YAAY,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,gBAuCzD"}
import { execTyped, isTupleRegex } from '../regex.js';
import { UnknownTypeError } from '../errors.js';
import { InvalidAbiTypeParameterError } from '../errors.js';
import { InvalidSignatureError, InvalidStructSignatureError, } from '../errors.js';
import { CircularReferenceError } from '../errors.js';
import { execStructSignature, isStructSignature } from './signatures.js';
import { isSolidityType, parseAbiParameter } from './utils.js';
export function parseStructs(signatures) {
// Create "shallow" version of each struct (and filter out non-structs or invalid structs)
const shallowStructs = {};
const signaturesLength = signatures.length;
for (let i = 0; i < signaturesLength; i++) {
const signature = signatures[i];
if (!isStructSignature(signature))
continue;
const match = execStructSignature(signature);
if (!match)
throw new InvalidSignatureError({ signature, type: 'struct' });
const properties = match.properties.split(';');
const components = [];
const propertiesLength = properties.length;
for (let k = 0; k < propertiesLength; k++) {
const property = properties[k];
const trimmed = property.trim();
if (!trimmed)
continue;
const abiParameter = parseAbiParameter(trimmed, {
type: 'struct',
});
components.push(abiParameter);
}
if (!components.length)
throw new InvalidStructSignatureError({ signature });
shallowStructs[match.name] = components;
}
// Resolve nested structs inside each parameter
const resolvedStructs = {};
const entries = Object.entries(shallowStructs);
const entriesLength = entries.length;
for (let i = 0; i < entriesLength; i++) {
const [name, parameters] = entries[i];
resolvedStructs[name] = resolveStructs(parameters, shallowStructs);
}
return resolvedStructs;
}
const typeWithoutTupleRegex = /^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;
function resolveStructs(abiParameters = [], structs = {}, ancestors = new Set()) {
const components = [];
const length = abiParameters.length;
for (let i = 0; i < length; i++) {
const abiParameter = abiParameters[i];
const isTuple = isTupleRegex.test(abiParameter.type);
if (isTuple)
components.push(abiParameter);
else {
const match = execTyped(typeWithoutTupleRegex, abiParameter.type);
if (!match?.type)
throw new InvalidAbiTypeParameterError({ abiParameter });
const { array, type } = match;
if (type in structs) {
if (ancestors.has(type))
throw new CircularReferenceError({ type });
components.push({
...abiParameter,
type: `tuple${array ?? ''}`,
components: resolveStructs(structs[type], structs, new Set([...ancestors, type])),
});
}
else {
if (isSolidityType(type))
components.push(abiParameter);
else
throw new UnknownTypeError({ type });
}
}
}
return components;
}
//# sourceMappingURL=structs.js.map
{"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../../../src/core/internal/human-readable/runtime/structs.ts"],"names":[],"mappings":"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"}
import type { AbiItemType, AbiType, SolidityArray, SolidityBytes, SolidityString, SolidityTuple } from 'abitype';
import type { Modifier } from '../types/signatures.js';
import type { StructLookup } from '../types/structs.js';
export declare function parseSignature(signature: string, structs?: StructLookup): {
name: string;
type: string;
inputs: (({
type: string;
name?: string | undefined;
internalType?: import("abitype").AbiInternalType | undefined;
} & {
indexed?: boolean;
}) | {
indexed: boolean;
name: string;
type: string;
} | {
indexed?: undefined;
name: string;
type: string;
} | {
indexed: boolean;
name?: undefined;
type: string;
} | {
indexed?: undefined;
name?: undefined;
type: string;
})[];
} | {
type: string;
stateMutability: string;
};
export declare function parseFunctionSignature(signature: string, structs?: StructLookup): {
name: string;
type: string;
stateMutability: import("abitype").AbiStateMutability;
inputs: (({
type: string;
name?: string | undefined;
internalType?: import("abitype").AbiInternalType | undefined;
} & {
indexed?: boolean;
}) | {
indexed: boolean;
name: string;
type: string;
} | {
indexed?: undefined;
name: string;
type: string;
} | {
indexed: boolean;
name?: undefined;
type: string;
} | {
indexed?: undefined;
name?: undefined;
type: string;
})[];
outputs: (({
type: string;
name?: string | undefined;
internalType?: import("abitype").AbiInternalType | undefined;
} & {
indexed?: boolean;
}) | {
indexed: boolean;
name: string;
type: string;
} | {
indexed?: undefined;
name: string;
type: string;
} | {
indexed: boolean;
name?: undefined;
type: string;
} | {
indexed?: undefined;
name?: undefined;
type: string;
})[];
};
export declare function parseEventSignature(signature: string, structs?: StructLookup): {
name: string;
type: string;
inputs: (({
type: string;
name?: string | undefined;
internalType?: import("abitype").AbiInternalType | undefined;
} & {
indexed?: boolean;
}) | {
indexed: boolean;
name: string;
type: string;
} | {
indexed?: undefined;
name: string;
type: string;
} | {
indexed: boolean;
name?: undefined;
type: string;
} | {
indexed?: undefined;
name?: undefined;
type: string;
})[];
};
export declare function parseErrorSignature(signature: string, structs?: StructLookup): {
name: string;
type: string;
inputs: (({
type: string;
name?: string | undefined;
internalType?: import("abitype").AbiInternalType | undefined;
} & {
indexed?: boolean;
}) | {
indexed: boolean;
name: string;
type: string;
} | {
indexed?: undefined;
name: string;
type: string;
} | {
indexed: boolean;
name?: undefined;
type: string;
} | {
indexed?: undefined;
name?: undefined;
type: string;
})[];
};
export declare function parseConstructorSignature(signature: string, structs?: StructLookup): {
type: string;
stateMutability: string;
inputs: (({
type: string;
name?: string | undefined;
internalType?: import("abitype").AbiInternalType | undefined;
} & {
indexed?: boolean;
}) | {
indexed: boolean;
name: string;
type: string;
} | {
indexed?: undefined;
name: string;
type: string;
} | {
indexed: boolean;
name?: undefined;
type: string;
} | {
indexed?: undefined;
name?: undefined;
type: string;
})[];
};
export declare function parseFallbackSignature(signature: string): {
type: string;
stateMutability: string;
};
type ParseOptions = {
modifiers?: Set<Modifier>;
structs?: StructLookup;
type?: AbiItemType | 'struct';
};
export declare function parseAbiParameter(param: string, options?: ParseOptions): ({
type: string;
name?: string | undefined;
internalType?: import("abitype").AbiInternalType | undefined;
} & {
indexed?: boolean;
}) | {
indexed: boolean;
name: string;
type: string;
} | {
indexed?: undefined;
name: string;
type: string;
} | {
indexed: boolean;
name?: undefined;
type: string;
} | {
indexed?: undefined;
name?: undefined;
type: string;
};
export declare function splitParameters(params: string, result?: string[], current?: string, depth?: number): readonly string[];
export declare function isSolidityType(type: string): type is Exclude<AbiType, SolidityTuple | SolidityArray>;
/** @internal */
export declare function isSolidityKeyword(name: string): boolean;
/** @internal */
export declare function isValidDataLocation(type: string, isArray: boolean): type is Exclude<AbiType, SolidityString | Extract<SolidityBytes, 'bytes'> | SolidityArray>;
export {};
//# sourceMappingURL=utils.d.ts.map
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/core/internal/human-readable/runtime/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAA;AAWhB,OAAO,KAAK,EAAoB,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAkBvD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsB3E;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,YAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwC3B;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,YAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB3B;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,YAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;EAa3B;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,YAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB3B;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM;;;EAQvD;AAQD,KAAK,YAAY,GAAG;IAClB,SAAS,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IACzB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAA;CAC9B,CAAA;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;EAkFtE;AAGD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAM,EAAO,EACrB,OAAO,SAAK,EACZ,KAAK,SAAI,GACR,SAAS,MAAM,EAAE,CAyBnB;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GACX,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAAC,CASzD;AAKD,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,WAW7C;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACf,IAAI,IAAI,OAAO,CAChB,OAAO,EACP,cAAc,GAAG,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,aAAa,CACjE,CAEA"}
import { bytesRegex, execTyped, integerRegex, isTupleRegex } from '../regex.js';
import { UnknownSolidityTypeError } from '../errors.js';
import { InvalidFunctionModifierError, InvalidModifierError, InvalidParameterError, SolidityProtectedKeywordError, } from '../errors.js';
import { InvalidSignatureError, UnknownSignatureError } from '../errors.js';
import { InvalidParenthesisError } from '../errors.js';
import { getParameterCacheKey, parameterCache } from './cache.js';
import { eventModifiers, execConstructorSignature, execErrorSignature, execEventSignature, execFallbackSignature, execFunctionSignature, functionModifiers, isConstructorSignature, isErrorSignature, isEventSignature, isFallbackSignature, isFunctionSignature, isReceiveSignature, } from './signatures.js';
export function parseSignature(signature, structs = {}) {
if (isFunctionSignature(signature))
return parseFunctionSignature(signature, structs);
if (isEventSignature(signature))
return parseEventSignature(signature, structs);
if (isErrorSignature(signature))
return parseErrorSignature(signature, structs);
if (isConstructorSignature(signature))
return parseConstructorSignature(signature, structs);
if (isFallbackSignature(signature))
return parseFallbackSignature(signature);
if (isReceiveSignature(signature))
return {
type: 'receive',
stateMutability: 'payable',
};
throw new UnknownSignatureError({ signature });
}
export function parseFunctionSignature(signature, structs = {}) {
const match = execFunctionSignature(signature);
if (!match)
throw new InvalidSignatureError({ signature, type: 'function' });
const inputParams = splitParameters(match.parameters);
const inputs = [];
const inputLength = inputParams.length;
for (let i = 0; i < inputLength; i++) {
inputs.push(parseAbiParameter(inputParams[i], {
modifiers: functionModifiers,
structs,
type: 'function',
}));
}
const outputs = [];
if (match.returns) {
const outputParams = splitParameters(match.returns);
const outputLength = outputParams.length;
for (let i = 0; i < outputLength; i++) {
outputs.push(parseAbiParameter(outputParams[i], {
modifiers: functionModifiers,
structs,
type: 'function',
}));
}
}
return {
name: match.name,
type: 'function',
stateMutability: match.stateMutability ?? 'nonpayable',
inputs,
outputs,
};
}
export function parseEventSignature(signature, structs = {}) {
const match = execEventSignature(signature);
if (!match)
throw new InvalidSignatureError({ signature, type: 'event' });
const params = splitParameters(match.parameters);
const abiParameters = [];
const length = params.length;
for (let i = 0; i < length; i++)
abiParameters.push(parseAbiParameter(params[i], {
modifiers: eventModifiers,
structs,
type: 'event',
}));
return { name: match.name, type: 'event', inputs: abiParameters };
}
export function parseErrorSignature(signature, structs = {}) {
const match = execErrorSignature(signature);
if (!match)
throw new InvalidSignatureError({ signature, type: 'error' });
const params = splitParameters(match.parameters);
const abiParameters = [];
const length = params.length;
for (let i = 0; i < length; i++)
abiParameters.push(parseAbiParameter(params[i], { structs, type: 'error' }));
return { name: match.name, type: 'error', inputs: abiParameters };
}
export function parseConstructorSignature(signature, structs = {}) {
const match = execConstructorSignature(signature);
if (!match)
throw new InvalidSignatureError({ signature, type: 'constructor' });
const params = splitParameters(match.parameters);
const abiParameters = [];
const length = params.length;
for (let i = 0; i < length; i++)
abiParameters.push(parseAbiParameter(params[i], { structs, type: 'constructor' }));
return {
type: 'constructor',
stateMutability: match.stateMutability ?? 'nonpayable',
inputs: abiParameters,
};
}
export function parseFallbackSignature(signature) {
const match = execFallbackSignature(signature);
if (!match)
throw new InvalidSignatureError({ signature, type: 'fallback' });
return {
type: 'fallback',
stateMutability: match.stateMutability ?? 'nonpayable',
};
}
const abiParameterWithoutTupleRegex = /^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/;
const abiParameterWithTupleRegex = /^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/;
const dynamicIntegerRegex = /^u?int$/;
export function parseAbiParameter(param, options) {
// optional namespace cache by `type`
const parameterCacheKey = getParameterCacheKey(param, options?.type, options?.structs);
if (parameterCache.has(parameterCacheKey))
return parameterCache.get(parameterCacheKey);
const isTuple = isTupleRegex.test(param);
const match = execTyped(isTuple ? abiParameterWithTupleRegex : abiParameterWithoutTupleRegex, param);
if (!match)
throw new InvalidParameterError({ param });
if (match.name && isSolidityKeyword(match.name))
throw new SolidityProtectedKeywordError({ param, name: match.name });
const name = match.name ? { name: match.name } : {};
const indexed = match.modifier === 'indexed' ? { indexed: true } : {};
const structs = options?.structs ?? {};
let type;
let components = {};
if (isTuple) {
type = 'tuple';
const params = splitParameters(match.type);
const components_ = [];
const length = params.length;
for (let i = 0; i < length; i++) {
// remove `modifiers` from `options` to prevent from being added to tuple components
components_.push(parseAbiParameter(params[i], { structs }));
}
components = { components: components_ };
}
else if (match.type in structs) {
type = 'tuple';
components = { components: structs[match.type] };
}
else if (dynamicIntegerRegex.test(match.type)) {
type = `${match.type}256`;
}
else if (match.type === 'address payable') {
type = 'address';
}
else {
type = match.type;
if (!(options?.type === 'struct') && !isSolidityType(type))
throw new UnknownSolidityTypeError({ type });
}
if (match.modifier) {
// Check if modifier exists, but is not allowed (e.g. `indexed` in `functionModifiers`)
if (!options?.modifiers?.has?.(match.modifier))
throw new InvalidModifierError({
param,
type: options?.type,
modifier: match.modifier,
});
// Check if resolved `type` is valid if there is a function modifier
if (functionModifiers.has(match.modifier) &&
!isValidDataLocation(type, !!match.array))
throw new InvalidFunctionModifierError({
param,
type: options?.type,
modifier: match.modifier,
});
}
const abiParameter = {
type: `${type}${match.array ?? ''}`,
...name,
...indexed,
...components,
};
parameterCache.set(parameterCacheKey, abiParameter);
return abiParameter;
}
// s/o latika for this
export function splitParameters(params, result = [], current = '', depth = 0) {
const length = params.trim().length;
// biome-ignore lint/correctness/noUnreachable: recursive
for (let i = 0; i < length; i++) {
const char = params[i];
const tail = params.slice(i + 1);
switch (char) {
case ',':
return depth === 0
? splitParameters(tail, [...result, current.trim()])
: splitParameters(tail, result, `${current}${char}`, depth);
case '(':
return splitParameters(tail, result, `${current}${char}`, depth + 1);
case ')':
return splitParameters(tail, result, `${current}${char}`, depth - 1);
default:
return splitParameters(tail, result, `${current}${char}`, depth);
}
}
if (current === '')
return result;
if (depth !== 0)
throw new InvalidParenthesisError({ current, depth });
result.push(current.trim());
return result;
}
export function isSolidityType(type) {
return (type === 'address' ||
type === 'bool' ||
type === 'function' ||
type === 'string' ||
bytesRegex.test(type) ||
integerRegex.test(type));
}
const protectedKeywordsRegex = /^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;
/** @internal */
export function isSolidityKeyword(name) {
return (name === 'address' ||
name === 'bool' ||
name === 'function' ||
name === 'string' ||
name === 'tuple' ||
bytesRegex.test(name) ||
integerRegex.test(name) ||
protectedKeywordsRegex.test(name));
}
/** @internal */
export function isValidDataLocation(type, isArray) {
return isArray || type === 'bytes' || type === 'string' || type === 'tuple';
}
//# sourceMappingURL=utils.js.map
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/core/internal/human-readable/runtime/utils.ts"],"names":[],"mappings":"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"}
/** @internal */
export type Error<messages extends string | string[]> = messages extends string ? [`Error: ${messages}`] : {
[key in keyof messages]: messages[key] extends infer message extends string ? `Error: ${message}` : never;
};
/** @internal */
export type Filter<items extends readonly unknown[], item, acc extends readonly unknown[] = []> = items extends readonly [
infer head,
...infer tail extends readonly unknown[]
] ? [head] extends [item] ? Filter<tail, item, acc> : Filter<tail, item, [...acc, head]> : readonly [...acc];
/** @internal */
export type IsNarrowable<type, type2> = IsUnknown<type> extends true ? false : IsNever<(type extends type2 ? true : false) & (type2 extends type ? false : true)> extends true ? false : true;
/** @internal */
export type IsNever<type> = [type] extends [never] ? true : false;
/** @internal */
export type IsUnknown<type> = unknown extends type ? true : false;
/** @internal */
export type Join<array extends readonly unknown[], separator extends string | number> = array extends readonly [infer head, ...infer tail] ? tail['length'] extends 0 ? `${head & string}` : `${head & string}${separator}${Join<tail, separator>}` : never;
/** @internal */
export type Merge<object1, object2> = Omit<object1, keyof object2> & object2;
/** @internal */
export type Pretty<type> = {
[key in keyof type]: type[key];
} & unknown;
/** @internal */
export type Trim<type, chars extends string = ' '> = TrimLeft<TrimRight<type, chars>, chars>;
type TrimLeft<t, chars extends string = ' '> = t extends `${chars}${infer tail}` ? TrimLeft<tail> : t;
type TrimRight<t, chars extends string = ' '> = t extends `${infer head}${chars}` ? TrimRight<head> : t;
export {};
//# sourceMappingURL=types.d.ts.map
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/types.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,MAAM,MAAM,KAAK,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,QAAQ,SAAS,MAAM,GAC3E,CAAC,UAAU,QAAQ,EAAE,CAAC,GACtB;KACG,GAAG,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,MAAM,OAAO,SAC1D,MAAM,GACJ,UAAU,OAAO,EAAE,GACnB,KAAK;CACV,CAAA;AAEL,gBAAgB;AAChB,MAAM,MAAM,MAAM,CAChB,KAAK,SAAS,SAAS,OAAO,EAAE,EAChC,IAAI,EACJ,GAAG,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,IACjC,KAAK,SAAS,SAAS;IACzB,MAAM,IAAI;IACV,GAAG,MAAM,IAAI,SAAS,SAAS,OAAO,EAAE;CACzC,GACG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GACnB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,GACvB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GACpC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAA;AAErB,gBAAgB;AAChB,MAAM,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,IAClC,SAAS,CAAC,IAAI,CAAC,SAAS,IAAI,GACxB,KAAK,GACL,OAAO,CACH,CAAC,IAAI,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GACjC,CAAC,KAAK,SAAS,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,CACtC,SAAS,IAAI,GACd,KAAK,GACL,IAAI,CAAA;AAEZ,gBAAgB;AAChB,MAAM,MAAM,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AAEjE,gBAAgB;AAChB,MAAM,MAAM,SAAS,CAAC,IAAI,IAAI,OAAO,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,CAAA;AAEjE,gBAAgB;AAChB,MAAM,MAAM,IAAI,CACd,KAAK,SAAS,SAAS,OAAO,EAAE,EAChC,SAAS,SAAS,MAAM,GAAG,MAAM,IAC/B,KAAK,SAAS,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAClD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GACtB,GAAG,IAAI,GAAG,MAAM,EAAE,GAClB,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,GACxD,KAAK,CAAA;AAET,gBAAgB;AAChB,MAAM,MAAM,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,GAAG,OAAO,CAAA;AAE5E,gBAAgB;AAChB,MAAM,MAAM,MAAM,CAAC,IAAI,IAAI;KAAG,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;CAAE,GAAG,OAAO,CAAA;AAEvE,gBAAgB;AAChB,MAAM,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,MAAM,GAAG,GAAG,IAAI,QAAQ,CAC3D,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EACtB,KAAK,CACN,CAAA;AACD,KAAK,QAAQ,CAAC,CAAC,EAAE,KAAK,SAAS,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,MAAM,IAAI,EAAE,GAC5E,QAAQ,CAAC,IAAI,CAAC,GACd,CAAC,CAAA;AACL,KAAK,SAAS,CACZ,CAAC,EACD,KAAK,SAAS,MAAM,GAAG,GAAG,IACxB,CAAC,SAAS,GAAG,MAAM,IAAI,GAAG,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA"}
export {};
//# sourceMappingURL=types.js.map
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/types.ts"],"names":[],"mappings":""}
import type { AbiStateMutability } from 'abitype';
import type { Error } from '../types.js';
export type ErrorSignature<name extends string = string, parameters extends string = string> = `error ${name}(${parameters})`;
export type IsErrorSignature<signature extends string> = signature extends ErrorSignature<infer name> ? IsName<name> : false;
export type EventSignature<name extends string = string, parameters extends string = string> = `event ${name}(${parameters})`;
export type IsEventSignature<signature extends string> = signature extends EventSignature<infer name> ? IsName<name> : false;
export type FunctionSignature<name extends string = string, tail extends string = string> = `function ${name}(${tail}`;
export type IsFunctionSignature<signature> = signature extends FunctionSignature<infer name> ? IsName<name> extends true ? signature extends ValidFunctionSignatures ? true : signature extends `function ${string}(${infer parameters})` ? parameters extends InvalidFunctionParameters ? false : true : false : false : false;
export type Scope = 'public' | 'external';
type Returns = `returns (${string})` | `returns(${string})`;
type ValidFunctionSignatures = `function ${string}()` | `function ${string}() ${Returns}` | `function ${string}() ${AbiStateMutability}` | `function ${string}() ${Scope}` | `function ${string}() ${AbiStateMutability} ${Returns}` | `function ${string}() ${Scope} ${Returns}` | `function ${string}() ${Scope} ${AbiStateMutability}` | `function ${string}() ${Scope} ${AbiStateMutability} ${Returns}` | `function ${string}(${string}) ${Returns}` | `function ${string}(${string}) ${AbiStateMutability}` | `function ${string}(${string}) ${Scope}` | `function ${string}(${string}) ${AbiStateMutability} ${Returns}` | `function ${string}(${string}) ${Scope} ${Returns}` | `function ${string}(${string}) ${Scope} ${AbiStateMutability}` | `function ${string}(${string}) ${Scope} ${AbiStateMutability} ${Returns}`;
export type StructSignature<name extends string = string, properties extends string = string> = `struct ${name} {${properties}}`;
export type IsStructSignature<signature extends string> = signature extends StructSignature<infer name> ? IsName<name> : false;
type ConstructorSignature<tail extends string = string> = `constructor(${tail}`;
export type IsConstructorSignature<signature> = signature extends ConstructorSignature ? signature extends ValidConstructorSignatures ? true : false : false;
type ValidConstructorSignatures = `constructor(${string})` | `constructor(${string}) payable`;
export type FallbackSignature<abiStateMutability extends '' | ' payable' = '' | ' payable'> = `fallback() external${abiStateMutability}`;
export type IsFallbackSignature<signature extends string> = signature extends FallbackSignature<''> | FallbackSignature<' payable'> ? true : false;
export type ReceiveSignature = 'receive() external payable';
export type IsSignature<type extends string> = (IsErrorSignature<type> extends true ? true : never) | (IsEventSignature<type> extends true ? true : never) | (IsFunctionSignature<type> extends true ? true : never) | (IsStructSignature<type> extends true ? true : never) | (IsConstructorSignature<type> extends true ? true : never) | (IsFallbackSignature<type> extends true ? true : never) | (type extends ReceiveSignature ? true : never) extends infer condition ? [condition] extends [never] ? false : true : false;
export type Signature<string1 extends string, string2 extends string | unknown = unknown> = IsSignature<string1> extends true ? string1 : string extends string1 ? string1 : Error<`Signature "${string1}" is invalid${string2 extends string ? ` at position ${string2}` : ''}.`>;
export type Signatures<signatures extends readonly string[]> = {
[key in keyof signatures]: Signature<signatures[key], key>;
};
export type Modifier = 'calldata' | 'indexed' | 'memory' | 'payable' | 'storage';
export type FunctionModifier = Extract<Modifier, 'calldata' | 'memory' | 'payable' | 'storage'>;
export type EventModifier = Extract<Modifier, 'indexed'>;
export type IsName<name extends string> = name extends '' ? false : ValidateName<name> extends name ? true : false;
export type AssertName<name extends string> = ValidateName<name> extends infer invalidName extends string[] ? `[${invalidName[number]}]` : name;
export type ValidateName<name extends string, checkCharacters extends boolean = false> = name extends `${string}${' '}${string}` ? Error<`Identifier "${name}" cannot contain whitespace.`> : IsSolidityKeyword<name> extends true ? Error<`"${name}" is a protected Solidity keyword.`> : name extends `${number}` ? Error<`Identifier "${name}" cannot be a number string.`> : name extends `${number}${string}` ? Error<`Identifier "${name}" cannot start with a number.`> : checkCharacters extends true ? IsValidCharacter<name> extends true ? name : Error<`"${name}" contains invalid character.`> : name;
export type IsSolidityKeyword<type extends string> = type extends SolidityKeywords ? true : false;
export type SolidityKeywords = 'after' | 'alias' | 'anonymous' | 'apply' | 'auto' | 'byte' | 'calldata' | 'case' | 'catch' | 'constant' | 'copyof' | 'default' | 'defined' | 'error' | 'event' | 'external' | 'false' | 'final' | 'function' | 'immutable' | 'implements' | 'in' | 'indexed' | 'inline' | 'internal' | 'let' | 'mapping' | 'match' | 'memory' | 'mutable' | 'null' | 'of' | 'override' | 'partial' | 'private' | 'promise' | 'public' | 'pure' | 'reference' | 'relocatable' | 'return' | 'returns' | 'sizeof' | 'static' | 'storage' | 'struct' | 'super' | 'supports' | 'switch' | 'this' | 'true' | 'try' | 'typedef' | 'typeof' | 'var' | 'view' | 'virtual' | `address${`[${string}]` | ''}` | `bool${`[${string}]` | ''}` | `string${`[${string}]` | ''}` | `tuple${`[${string}]` | ''}` | `bytes${number | ''}${`[${string}]` | ''}` | `${'u' | ''}int${number | ''}${`[${string}]` | ''}`;
export type IsValidCharacter<character extends string> = character extends `${ValidCharacters}${infer tail}` ? tail extends '' ? true : IsValidCharacter<tail> : false;
type ValidCharacters = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '_' | '$';
type InvalidFunctionParameters = `${string}${MangledReturns} (${string}` | `${string}) ${MangledReturns}${string}` | `${string})${string}${MangledReturns}${string}(${string}`;
type MangledReturns = `r${string}eturns` | `re${string}turns` | `ret${string}urns` | `retu${string}rns` | `retur${string}ns` | `return${string}s` | `r${string}e${string}turns` | `r${string}et${string}urns` | `r${string}etu${string}rns` | `r${string}etur${string}ns` | `r${string}eturn${string}s` | `re${string}t${string}urns` | `re${string}tu${string}rns` | `re${string}tur${string}ns` | `re${string}turn${string}s` | `ret${string}u${string}rns` | `ret${string}ur${string}ns` | `ret${string}urn${string}s` | `retu${string}r${string}ns` | `retu${string}rn${string}s` | `retur${string}n${string}s` | `r${string}e${string}t${string}urns` | `r${string}e${string}tu${string}rns` | `r${string}e${string}tur${string}ns` | `r${string}e${string}turn${string}s` | `re${string}t${string}u${string}rns` | `re${string}t${string}ur${string}ns` | `re${string}t${string}urn${string}s` | `ret${string}u${string}r${string}ns` | `ret${string}u${string}rn${string}s` | `retu${string}r${string}n${string}s` | `r${string}e${string}t${string}u${string}rns` | `r${string}e${string}t${string}ur${string}ns` | `r${string}e${string}t${string}urn${string}s` | `re${string}t${string}u${string}r${string}ns` | `re${string}t${string}u${string}rn${string}s` | `ret${string}u${string}r${string}n${string}s` | `r${string}e${string}t${string}u${string}r${string}ns` | `r${string}e${string}t${string}u${string}rn${string}s` | `re${string}t${string}u${string}r${string}n${string}s` | `r${string}e${string}t${string}u${string}r${string}n${string}s`;
export {};
//# sourceMappingURL=signatures.d.ts.map
{"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../../../../src/core/internal/human-readable/types/signatures.ts"],"names":[],"mappings":"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"}
export {};
//# sourceMappingURL=signatures.js.map
{"version":3,"file":"signatures.js","sourceRoot":"","sources":["../../../../../src/core/internal/human-readable/types/signatures.ts"],"names":[],"mappings":""}
import type { AbiParameter } from 'abitype';
import type { Error, Trim } from '../types.js';
import type { StructSignature } from './signatures.js';
import type { ParseAbiParameter } from './utils.js';
export type StructLookup = Record<string, readonly AbiParameter[]>;
export type ParseStructs<signatures extends readonly string[]> = {
[signature in signatures[number] as ParseStruct<signature> extends infer struct extends {
name: string;
} ? struct['name'] : never]: ParseStruct<signature>['components'];
} extends infer structs extends Record<string, readonly (AbiParameter & {
type: string;
})[]> ? {
[structName in keyof structs]: ResolveStructs<structs[structName], structs>;
} : never;
export type ParseStruct<signature extends string, structs extends StructLookup | unknown = unknown> = signature extends StructSignature<infer name, infer properties> ? {
readonly name: Trim<name>;
readonly components: ParseStructProperties<properties, structs>;
} : never;
export type ResolveStructs<abiParameters extends readonly (AbiParameter & {
type: string;
})[], structs extends Record<string, readonly (AbiParameter & {
type: string;
})[]>, keyReferences extends {
[_: string]: unknown;
} | unknown = unknown> = readonly [
...{
[key in keyof abiParameters]: abiParameters[key]['type'] extends `${infer head extends string & keyof structs}[${infer tail}]` ? head extends keyof keyReferences ? Error<`Circular reference detected. Struct "${abiParameters[key]['type']}" is a circular reference.`> : {
readonly name: abiParameters[key]['name'];
readonly type: `tuple[${tail}]`;
readonly components: ResolveStructs<structs[head], structs, keyReferences & {
[_ in head]: true;
}>;
} : abiParameters[key]['type'] extends keyof structs ? abiParameters[key]['type'] extends keyof keyReferences ? Error<`Circular reference detected. Struct "${abiParameters[key]['type']}" is a circular reference.`> : {
readonly name: abiParameters[key]['name'];
readonly type: 'tuple';
readonly components: ResolveStructs<structs[abiParameters[key]['type']], structs, keyReferences & {
[_ in abiParameters[key]['type']]: true;
}>;
} : abiParameters[key];
}
];
export type ParseStructProperties<signature extends string, structs extends StructLookup | unknown = unknown, result extends any[] = []> = Trim<signature> extends `${infer head};${infer tail}` ? ParseStructProperties<tail, structs, [
...result,
ParseAbiParameter<head, {
structs: structs;
}>
]> : result;
//# sourceMappingURL=structs.d.ts.map
{"version":3,"file":"structs.d.ts","sourceRoot":"","sources":["../../../../../src/core/internal/human-readable/types/structs.ts"],"names":[],"mappings":"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"}
export {};
//# sourceMappingURL=structs.js.map
{"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../../../src/core/internal/human-readable/types/structs.ts"],"names":[],"mappings":""}
import type { AbiParameter, AbiStateMutability, AbiType, SolidityFixedArrayRange } from 'abitype';
import type { ResolvedRegister } from 'abitype';
import type { Error, IsUnknown, Merge, Pretty, Trim } from '../types.js';
import type { ErrorSignature, EventModifier, EventSignature, FallbackSignature, FunctionModifier, FunctionSignature, IsConstructorSignature, IsErrorSignature, IsEventSignature, IsFunctionSignature, Modifier, ReceiveSignature, Scope, ValidateName } from './signatures.js';
import type { StructLookup } from './structs.js';
export type ParseSignature<signature extends string, structs extends StructLookup | unknown = unknown> = (IsErrorSignature<signature> extends true ? signature extends ErrorSignature<infer name, infer parameters> ? {
readonly name: name;
readonly type: 'error';
readonly inputs: ParseAbiParameters<SplitParameters<parameters>, {
structs: structs;
}>;
} : never : never) | (IsEventSignature<signature> extends true ? signature extends EventSignature<infer name, infer parameters> ? {
readonly name: name;
readonly type: 'event';
readonly inputs: ParseAbiParameters<SplitParameters<parameters>, {
modifier: EventModifier;
structs: structs;
}>;
} : never : never) | (IsFunctionSignature<signature> extends true ? signature extends FunctionSignature<infer name, infer tail> ? {
readonly name: name;
readonly type: 'function';
readonly stateMutability: _ParseFunctionParametersAndStateMutability<signature>['StateMutability'];
readonly inputs: ParseAbiParameters<SplitParameters<_ParseFunctionParametersAndStateMutability<signature>['Inputs']>, {
modifier: FunctionModifier;
structs: structs;
}>;
readonly outputs: tail extends `${string}returns (${infer returns})` | `${string}returns(${infer returns})` ? ParseAbiParameters<SplitParameters<returns>, {
modifier: FunctionModifier;
structs: structs;
}> : readonly [];
} : never : never) | (IsConstructorSignature<signature> extends true ? {
readonly type: 'constructor';
readonly stateMutability: _ParseConstructorParametersAndStateMutability<signature>['StateMutability'];
readonly inputs: ParseAbiParameters<SplitParameters<_ParseConstructorParametersAndStateMutability<signature>['Inputs']>, {
structs: structs;
}>;
} : never) | (signature extends FallbackSignature<infer stateMutability> ? {
readonly type: 'fallback';
readonly stateMutability: stateMutability extends `${string}payable` ? 'payable' : 'nonpayable';
} : never) | (signature extends ReceiveSignature ? {
readonly type: 'receive';
readonly stateMutability: 'payable';
} : never);
type ParseOptions = {
modifier?: Modifier;
structs?: StructLookup | unknown;
};
type DefaultParseOptions = object;
export type ParseAbiParameters<signatures extends readonly string[], options extends ParseOptions = DefaultParseOptions> = signatures extends [''] ? readonly [] : readonly [
...{
[key in keyof signatures]: ParseAbiParameter<signatures[key], options>;
}
];
export type ParseAbiParameter<signature extends string, options extends ParseOptions = DefaultParseOptions> = (signature extends `(${string})${string}` ? _ParseTuple<signature, options> : signature extends `${infer type} ${infer tail}` ? Trim<tail> extends infer trimmed extends string ? // TODO: data location modifiers only allowed for struct/array types
{
readonly type: Trim<type>;
} & _SplitNameOrModifier<trimmed, options> : never : {
readonly type: signature;
}) extends infer shallowParameter extends AbiParameter & {
type: string;
indexed?: boolean;
} ? (shallowParameter['type'] extends keyof options['structs'] ? {
readonly type: 'tuple';
readonly components: options['structs'][shallowParameter['type']];
} & (IsUnknown<shallowParameter['name']> extends false ? {
readonly name: shallowParameter['name'];
} : object) & (shallowParameter['indexed'] extends true ? {
readonly indexed: true;
} : object) : shallowParameter['type'] extends `${infer type extends string & keyof options['structs']}[${infer tail}]` ? {
readonly type: `tuple[${tail}]`;
readonly components: options['structs'][type];
} & (IsUnknown<shallowParameter['name']> extends false ? {
readonly name: shallowParameter['name'];
} : object) & (shallowParameter['indexed'] extends true ? {
readonly indexed: true;
} : object) : shallowParameter) extends infer Parameter extends AbiParameter & {
type: string;
indexed?: boolean;
} ? Pretty<_ValidateAbiParameter<Parameter>> : never : never;
export type SplitParameters<signature extends string, result extends unknown[] = [], current extends string = '', depth extends readonly number[] = []> = signature extends '' ? current extends '' ? [...result] : depth['length'] extends 0 ? [...result, Trim<current>] : Error<`Unbalanced parentheses. "${current}" has too many opening parentheses.`> : signature extends `${infer char}${infer tail}` ? char extends ',' ? depth['length'] extends 0 ? SplitParameters<tail, [...result, Trim<current>], ''> : SplitParameters<tail, result, `${current}${char}`, depth> : char extends '(' ? SplitParameters<tail, result, `${current}${char}`, [...depth, 1]> : char extends ')' ? depth['length'] extends 0 ? Error<`Unbalanced parentheses. "${current}" has too many closing parentheses.`> : SplitParameters<tail, result, `${current}${char}`, Pop<depth>> : SplitParameters<tail, result, `${current}${char}`, depth> : [];
type Pop<type extends readonly number[]> = type extends [...infer head, any] ? head : [];
export type _ValidateAbiParameter<abiParameter extends AbiParameter> = (abiParameter extends {
name: string;
} ? ValidateName<abiParameter['name']> extends infer name ? name extends abiParameter['name'] ? abiParameter : Merge<abiParameter, {
readonly name: name;
}> : never : abiParameter) extends infer parameter ? (ResolvedRegister['strictAbiType'] extends true ? parameter extends {
type: AbiType;
} ? parameter : Merge<parameter, {
readonly type: Error<`Type "${parameter extends {
type: string;
} ? parameter['type'] : string}" is not a valid ABI type.`>;
}> : parameter) extends infer parameter2 extends {
type: unknown;
} ? parameter2['type'] extends `${infer prefix extends 'u' | ''}int${infer suffix extends `[${string}]` | ''}` ? Pretty<Merge<parameter2, {
readonly type: `${prefix}int256${suffix}`;
}>> : parameter2 : never : never;
export type _ParseFunctionParametersAndStateMutability<signature extends string> = signature extends `${infer head}returns (${string})` | `${infer head}returns(${string})` ? _ParseFunctionParametersAndStateMutability<Trim<head>> : signature extends `function ${string}(${infer parameters})` ? {
Inputs: parameters;
StateMutability: 'nonpayable';
} : signature extends `function ${string}(${infer parameters}) ${infer scopeOrStateMutability extends Scope | AbiStateMutability | `${Scope} ${AbiStateMutability}`}` ? {
Inputs: parameters;
StateMutability: _ParseStateMutability<scopeOrStateMutability>;
} : signature extends `function ${string}(${infer tail}` ? _UnwrapNameOrModifier<tail> extends {
nameOrModifier: infer scopeOrStateMutability extends string;
End: infer parameters;
} ? {
Inputs: parameters;
StateMutability: _ParseStateMutability<scopeOrStateMutability>;
} : never : never;
type _ParseStateMutability<signature extends string> = signature extends `${Scope} ${infer stateMutability extends AbiStateMutability}` ? stateMutability : signature extends AbiStateMutability ? signature : 'nonpayable';
type _ParseConstructorParametersAndStateMutability<signature extends string> = signature extends `constructor(${infer parameters}) payable` ? {
Inputs: parameters;
StateMutability: 'payable';
} : signature extends `constructor(${infer parameters})` ? {
Inputs: parameters;
StateMutability: 'nonpayable';
} : never;
export type _ParseTuple<signature extends `(${string})${string}`, options extends ParseOptions = DefaultParseOptions> =
/** Tuples without name or modifier (e.g. `(string)`, `(string foo)`) */
signature extends `(${infer parameters})` ? {
readonly type: 'tuple';
readonly components: ParseAbiParameters<SplitParameters<parameters>, Omit<options, 'modifier'>>;
} : signature extends `(${infer head})[${'' | `${SolidityFixedArrayRange}`}]` ? signature extends `(${head})[${infer size}]` ? {
readonly type: `tuple[${size}]`;
readonly components: ParseAbiParameters<SplitParameters<head>, Omit<options, 'modifier'>>;
} : never : signature extends `(${infer parameters})[${'' | `${SolidityFixedArrayRange}`}] ${infer nameOrModifier}` ? signature extends `(${parameters})[${infer size}] ${nameOrModifier}` ? nameOrModifier extends `${string}) ${string}` ? _UnwrapNameOrModifier<nameOrModifier> extends infer parts extends {
nameOrModifier: string;
End: string;
} ? {
readonly type: 'tuple';
readonly components: ParseAbiParameters<SplitParameters<`${parameters})[${size}] ${parts['End']}`>, Omit<options, 'modifier'>>;
} & _SplitNameOrModifier<parts['nameOrModifier'], options> : never : {
readonly type: `tuple[${size}]`;
readonly components: ParseAbiParameters<SplitParameters<parameters>, Omit<options, 'modifier'>>;
} & _SplitNameOrModifier<nameOrModifier, options> : never : signature extends `(${infer parameters}) ${infer nameOrModifier}` ? nameOrModifier extends `${string}) ${string}` ? _UnwrapNameOrModifier<nameOrModifier> extends infer parts extends {
nameOrModifier: string;
End: string;
} ? {
readonly type: 'tuple';
readonly components: ParseAbiParameters<SplitParameters<`${parameters}) ${parts['End']}`>, Omit<options, 'modifier'>>;
} & _SplitNameOrModifier<parts['nameOrModifier'], options> : never : {
readonly type: 'tuple';
readonly components: ParseAbiParameters<SplitParameters<parameters>, Omit<options, 'modifier'>>;
} & _SplitNameOrModifier<nameOrModifier, options> : never;
export type _SplitNameOrModifier<signature extends string, options extends ParseOptions = DefaultParseOptions> = Trim<signature> extends infer trimmed ? options extends {
modifier: Modifier;
} ? trimmed extends `${infer mod extends options['modifier']} ${infer name}` ? Pretty<{
readonly name: Trim<name>;
} & (mod extends 'indexed' ? {
readonly indexed: true;
} : object)> : trimmed extends options['modifier'] ? trimmed extends 'indexed' ? {
readonly indexed: true;
} : object : {
readonly name: trimmed;
} : {
readonly name: trimmed;
} : never;
export type _UnwrapNameOrModifier<signature extends string, current extends string = ''> = signature extends `${infer head}) ${infer tail}` ? _UnwrapNameOrModifier<tail, `${current}${current extends '' ? '' : ') '}${head}`> : {
End: Trim<current>;
nameOrModifier: Trim<signature>;
};
export {};
//# sourceMappingURL=utils.d.ts.map
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/core/internal/human-readable/types/utils.ts"],"names":[],"mappings":"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"}
export {};
//# sourceMappingURL=utils.js.map
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/core/internal/human-readable/types/utils.ts"],"names":[],"mappings":""}
import { AbiParameter } from 'ox'
import { describe, expectTypeOf, test } from 'vp/test'
describe('AbiParameter.format', () => {
test('infers parameter', () => {
const formatted = AbiParameter.format(value)
expectTypeOf(formatted).toEqualTypeOf<'address spender'>()
})
test('not narrowable', () => {
const formatted = AbiParameter.format({} as AbiParameter.AbiParameter)
expectTypeOf(formatted).toEqualTypeOf<string>()
})
const value = {
name: 'spender',
type: 'address',
} as const
})
describe('AbiParameter.from', () => {
test('infers parameter', () => {
const parameter = AbiParameter.from(value)
expectTypeOf(parameter).toEqualTypeOf(value)
})
test('from signature', () => {
const parameter = AbiParameter.from('address spender')
expectTypeOf(parameter).toEqualTypeOf(value)
})
test('not narrowable', () => {
const parameter = AbiParameter.from({} as AbiParameter.AbiParameter)
expectTypeOf(parameter).toEqualTypeOf<AbiParameter.AbiParameter>()
})
const value = {
name: 'spender',
type: 'address',
} as const
})
import { AbiParameter } from 'ox'
import { describe, expect, test } from 'vp/test'
describe('from', () => {
test('json parameter', () => {
expect(AbiParameter.from({ name: 'spender', type: 'address' }))
.toMatchInlineSnapshot(`
{
"name": "spender",
"type": "address",
}
`)
})
test('human-readable parameter', () => {
expect(AbiParameter.from('address spender')).toMatchInlineSnapshot(`
{
"name": "spender",
"type": "address",
}
`)
})
test('human-readable parameter with structs', () => {
expect(
AbiParameter.from([
'struct Foo { address spender; uint256 amount; }',
'Foo foo',
]),
).toMatchInlineSnapshot(`
{
"components": [
{
"name": "spender",
"type": "address",
},
{
"name": "amount",
"type": "uint256",
},
],
"name": "foo",
"type": "tuple",
}
`)
})
})
describe('format', () => {
test('parameter', () => {
expect(
AbiParameter.format({ name: 'spender', type: 'address' }),
).toMatchInlineSnapshot(`"address spender"`)
})
test('tuple parameter', () => {
expect(
AbiParameter.format({
components: [
{ name: 'spender', type: 'address' },
{ name: 'amount', type: 'uint256' },
],
name: 'foo',
type: 'tuple',
}),
).toMatchInlineSnapshot(`"(address spender, uint256 amount) foo"`)
})
})
test('exports', () => {
expect(Object.keys(AbiParameter)).toMatchInlineSnapshot(`
[
"InvalidAbiParameterError",
"InvalidAbiTypeParameterError",
"InvalidFunctionModifierError",
"InvalidModifierError",
"InvalidParameterError",
"SolidityProtectedKeywordError",
"InvalidParenthesisError",
"format",
"from",
]
`)
})
import { bench, describe } from 'vp/test'
import * as Abi from './Abi.js'
const signatures = [
'function name() view returns (string)',
'function symbol() view returns (string)',
'function decimals() view returns (uint8)',
'function totalSupply() view returns (uint256)',
'function balanceOf(address owner) view returns (uint256)',
'function transfer(address to, uint256 amount) returns (bool)',
'function transferFrom(address from, address to, uint256 amount) returns (bool)',
'function approve(address spender, uint256 amount) returns (bool)',
'function allowance(address owner, address spender) view returns (uint256)',
'event Transfer(address indexed from, address indexed to, uint256 amount)',
'event Approval(address indexed owner, address indexed spender, uint256 amount)',
] as const
const abi = Abi.from(signatures)
describe('Abi.from', () => {
bench('erc20 human-readable ABI', () => {
Abi.from(signatures)
})
})
describe('Abi.format', () => {
bench('erc20 JSON ABI', () => {
Abi.format(abi)
})
})
import { bench, describe } from 'vp/test'
import * as AbiParameter from './AbiParameter.js'
const parameter = { name: 'spender', type: 'address' } as const
const tuple = {
components: [
{ name: 'spender', type: 'address' },
{ name: 'amount', type: 'uint256' },
],
name: 'foo',
type: 'tuple',
} as const
describe('AbiParameter.from', () => {
bench('address spender', () => {
AbiParameter.from('address spender')
})
bench('struct Foo', () => {
AbiParameter.from([
'struct Foo { address spender; uint256 amount; }',
'Foo foo',
])
})
})
describe('AbiParameter.format', () => {
bench('address spender', () => {
AbiParameter.format(parameter)
})
bench('(address spender, uint256 amount) foo', () => {
AbiParameter.format(tuple)
})
})
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 function format<
const parameter extends AbiParameter | AbiEventParameter,
>(
parameter: parameter | AbiParameter | AbiEventParameter,
): format.ReturnType<parameter> {
return formatAbiParameter.formatAbiParameter(parameter as parameter) as never
}
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 function from<
const parameter extends AbiParameter | string | readonly string[],
>(
parameter: parameter | AbiParameter | string | readonly string[],
): from.ReturnType<parameter> {
if (Array.isArray(parameter))
return parseAbiParameter.parseAbiParameter(parameter) as never
if (typeof parameter === 'string')
return parseAbiParameter.parseAbiParameter(parameter) as never
return parameter as never
}
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
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

import { expect, test } from 'vp/test'
import {
CircularReferenceError,
InvalidAbiItemError,
InvalidAbiParameterError,
InvalidAbiParametersError,
InvalidAbiTypeParameterError,
InvalidFunctionModifierError,
InvalidModifierError,
InvalidParameterError,
InvalidParenthesisError,
InvalidSignatureError,
InvalidStructSignatureError,
SolidityProtectedKeywordError,
UnknownSignatureError,
UnknownSolidityTypeError,
UnknownTypeError,
} from './errors.js'
test('InvalidAbiItemError', () => {
expect(new InvalidAbiItemError({ signature: 'address' }))
.toMatchInlineSnapshot(`
[AbiItem.InvalidAbiItemError: Failed to parse ABI item.
Details: parseAbiItem("address")
See: https://oxlib.sh/api/AbiItem/from]
`)
})
test('UnknownTypeError', () => {
expect(new UnknownTypeError({ type: 'Foo' })).toMatchInlineSnapshot(`
[HumanReadableAbi.UnknownTypeError: Unknown type.
Type "Foo" is not a valid ABI type. Perhaps you forgot to include a struct signature?]
`)
})
test('UnknownSolidityTypeError', () => {
expect(new UnknownSolidityTypeError({ type: 'Foo' })).toMatchInlineSnapshot(`
[HumanReadableAbi.UnknownSolidityTypeError: Unknown type.
Type "Foo" is not a valid ABI type.]
`)
})
test('InvalidAbiParamterError', () => {
expect(new InvalidAbiParameterError({ param: 'address owner' }))
.toMatchInlineSnapshot(`
[AbiParameter.InvalidAbiParameterError: Failed to parse ABI parameter.
Details: parseAbiParameter("address owner")
See: https://oxlib.sh/api/AbiParameter/from]
`)
})
test('InvalidAbiParamtersError', () => {
expect(new InvalidAbiParametersError({ params: 'address owner' }))
.toMatchInlineSnapshot(`
[AbiParameters.InvalidAbiParametersError: Failed to parse ABI parameters.
Details: parseAbiParameters("address owner")
See: https://oxlib.sh/api/AbiParameters/from]
`)
})
test('InvalidParameterError', () => {
expect(
new InvalidParameterError({
param: 'address',
}),
).toMatchInlineSnapshot(`
[HumanReadableAbi.InvalidParameterError: Invalid ABI parameter.
Details: address]
`)
})
test('SolidityProtectedKeywordError', () => {
expect(
new SolidityProtectedKeywordError({
param: 'address',
name: 'address',
}),
).toMatchInlineSnapshot(`
[HumanReadableAbi.SolidityProtectedKeywordError: Invalid ABI parameter.
"address" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html
Details: address]
`)
})
test('InvalidModifierError', () => {
expect(
new InvalidModifierError({
param: 'address',
modifier: 'calldata',
type: 'event',
}),
).toMatchInlineSnapshot(`
[HumanReadableAbi.InvalidModifierError: Invalid ABI parameter.
Modifier "calldata" not allowed in "event" type.
Details: address]
`)
expect(
new InvalidModifierError({
param: 'address',
modifier: 'calldata',
}),
).toMatchInlineSnapshot(`
[HumanReadableAbi.InvalidModifierError: Invalid ABI parameter.
Modifier "calldata" not allowed.
Details: address]
`)
})
test('InvalidFunctionModifierError', () => {
expect(
new InvalidFunctionModifierError({
param: 'address',
modifier: 'calldata',
type: 'function',
}),
).toMatchInlineSnapshot(`
[HumanReadableAbi.InvalidFunctionModifierError: Invalid ABI parameter.
Modifier "calldata" not allowed in "function" type.
Data location can only be specified for array, struct, or mapping types, but "calldata" was given.
Details: address]
`)
})
test('InvalidAbiTypeParameterError', () => {
expect(
new InvalidAbiTypeParameterError({
abiParameter: { type: 'address' },
}),
).toMatchInlineSnapshot(`
[HumanReadableAbi.InvalidAbiTypeParameterError: Invalid ABI parameter.
ABI parameter type is invalid.
Details: {
"type": "address"
}]
`)
})
test('InvalidSignatureError', () => {
expect(
new InvalidSignatureError({
signature: 'function name??()',
type: 'function',
}),
).toMatchInlineSnapshot(`
[Abi.InvalidSignatureError: Invalid function signature.
Details: function name??()]
`)
expect(
new InvalidSignatureError({
signature: 'function name??()',
type: 'struct',
}),
).toMatchInlineSnapshot(`
[Abi.InvalidSignatureError: Invalid struct signature.
Details: function name??()]
`)
expect(
new InvalidSignatureError({
signature: 'function name??()',
type: 'error',
}),
).toMatchInlineSnapshot(`
[Abi.InvalidSignatureError: Invalid error signature.
Details: function name??()]
`)
expect(
new InvalidSignatureError({
signature: 'function name??()',
type: 'event',
}),
).toMatchInlineSnapshot(`
[Abi.InvalidSignatureError: Invalid event signature.
Details: function name??()]
`)
expect(
new InvalidSignatureError({
signature: 'function name??()',
type: 'constructor',
}),
).toMatchInlineSnapshot(`
[Abi.InvalidSignatureError: Invalid constructor signature.
Details: function name??()]
`)
})
test('UnknownSignatureError', () => {
expect(new UnknownSignatureError({ signature: 'invalid' }))
.toMatchInlineSnapshot(`
[Abi.UnknownSignatureError: Unknown signature.
Details: invalid]
`)
})
test('InvalidStructSignatureError', () => {
expect(new InvalidStructSignatureError({ signature: 'struct Foo{}' }))
.toMatchInlineSnapshot(`
[Abi.InvalidStructSignatureError: Invalid struct signature.
No properties exist.
Details: struct Foo{}]
`)
})
test('InvalidParenthesisError', () => {
expect(new InvalidParenthesisError({ current: '(Foo))', depth: -1 }))
.toMatchInlineSnapshot(`
[HumanReadableAbi.InvalidParenthesisError: Unbalanced parentheses.
"(Foo))" has too many closing parentheses.
Details: Depth "-1"]
`)
expect(new InvalidParenthesisError({ current: '((Foo)', depth: 1 }))
.toMatchInlineSnapshot(`
[HumanReadableAbi.InvalidParenthesisError: Unbalanced parentheses.
"((Foo)" has too many opening parentheses.
Details: Depth "1"]
`)
})
test('CircularReferenceError', () => {
expect(new CircularReferenceError({ type: 'Foo' })).toMatchInlineSnapshot(`
[Abi.CircularReferenceError: Circular reference detected.
Struct "Foo" is a circular reference.]
`)
})
import type { AbiItemType, AbiParameter } from 'abitype'
import { BaseError } from '../../Errors.js'
import type { Modifier } from './types/signatures.js'
export class InvalidAbiItemError extends BaseError {
override name = 'AbiItem.InvalidAbiItemError'
constructor({ signature }: { signature: string | object }) {
super('Failed to parse ABI item.', {
details: `parseAbiItem(${JSON.stringify(signature, null, 2)})`,
docsPath: '/api/AbiItem/from',
})
}
}
export class UnknownTypeError extends BaseError {
override name = 'HumanReadableAbi.UnknownTypeError'
constructor({ type }: { type: string }) {
super('Unknown type.', {
metaMessages: [
`Type "${type}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`,
],
})
}
}
export class UnknownSolidityTypeError extends BaseError {
override name = 'HumanReadableAbi.UnknownSolidityTypeError'
constructor({ type }: { type: string }) {
super('Unknown type.', {
metaMessages: [`Type "${type}" is not a valid ABI type.`],
})
}
}
export class InvalidAbiParameterError extends BaseError {
override name = 'AbiParameter.InvalidAbiParameterError'
constructor({ param }: { param: string | object }) {
super('Failed to parse ABI parameter.', {
details: `parseAbiParameter(${JSON.stringify(param, null, 2)})`,
docsPath: '/api/AbiParameter/from',
})
}
}
export class InvalidAbiParametersError extends BaseError {
override name = 'AbiParameters.InvalidAbiParametersError'
constructor({ params }: { params: string | object }) {
super('Failed to parse ABI parameters.', {
details: `parseAbiParameters(${JSON.stringify(params, null, 2)})`,
docsPath: '/api/AbiParameters/from',
})
}
}
export class InvalidParameterError extends BaseError {
override name = 'HumanReadableAbi.InvalidParameterError'
constructor({ param }: { param: string }) {
super('Invalid ABI parameter.', {
details: param,
})
}
}
export class SolidityProtectedKeywordError extends BaseError {
override name = 'HumanReadableAbi.SolidityProtectedKeywordError'
constructor({ param, name }: { param: string; name: string }) {
super('Invalid ABI parameter.', {
details: param,
metaMessages: [
`"${name}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`,
],
})
}
}
export class InvalidModifierError extends BaseError {
override name = 'HumanReadableAbi.InvalidModifierError'
constructor({
param,
type,
modifier,
}: {
param: string
type?: AbiItemType | 'struct' | undefined
modifier: Modifier
}) {
super('Invalid ABI parameter.', {
details: param,
metaMessages: [
`Modifier "${modifier}" not allowed${
type ? ` in "${type}" type` : ''
}.`,
],
})
}
}
export class InvalidFunctionModifierError extends BaseError {
override name = 'HumanReadableAbi.InvalidFunctionModifierError'
constructor({
param,
type,
modifier,
}: {
param: string
type?: AbiItemType | 'struct' | undefined
modifier: Modifier
}) {
super('Invalid ABI parameter.', {
details: param,
metaMessages: [
`Modifier "${modifier}" not allowed${
type ? ` in "${type}" type` : ''
}.`,
`Data location can only be specified for array, struct, or mapping types, but "${modifier}" was given.`,
],
})
}
}
export class InvalidAbiTypeParameterError extends BaseError {
override name = 'HumanReadableAbi.InvalidAbiTypeParameterError'
constructor({
abiParameter,
}: {
abiParameter: AbiParameter & { indexed?: boolean | undefined }
}) {
super('Invalid ABI parameter.', {
details: JSON.stringify(abiParameter, null, 2),
metaMessages: ['ABI parameter type is invalid.'],
})
}
}
export class InvalidSignatureError extends BaseError {
override name = 'Abi.InvalidSignatureError'
constructor({
signature,
type,
}: {
signature: string
type: AbiItemType | 'struct'
}) {
super(`Invalid ${type} signature.`, {
details: signature,
})
}
}
export class UnknownSignatureError extends BaseError {
override name = 'Abi.UnknownSignatureError'
constructor({ signature }: { signature: string }) {
super('Unknown signature.', {
details: signature,
})
}
}
export class InvalidStructSignatureError extends BaseError {
override name = 'Abi.InvalidStructSignatureError'
constructor({ signature }: { signature: string }) {
super('Invalid struct signature.', {
details: signature,
metaMessages: ['No properties exist.'],
})
}
}
export class InvalidParenthesisError extends BaseError {
override name = 'HumanReadableAbi.InvalidParenthesisError'
constructor({ current, depth }: { current: string; depth: number }) {
super('Unbalanced parentheses.', {
metaMessages: [
`"${current.trim()}" has too many ${
depth > 0 ? 'opening' : 'closing'
} parentheses.`,
],
details: `Depth "${depth}"`,
})
}
}
export class CircularReferenceError extends BaseError {
override name = 'Abi.CircularReferenceError'
constructor({ type }: { type: string }) {
super('Circular reference detected.', {
metaMessages: [`Struct "${type}" is a circular reference.`],
})
}
}
import { expectTypeOf, test } from 'vp/test'
import type { Abi } from 'abitype'
import { seaportAbi } from '../../../../test/abis/json.js'
import type { FormatAbi } from './formatAbi.js'
import { formatAbi } from './formatAbi.js'
test('FormatAbi', () => {
expectTypeOf<FormatAbi<[]>>().toEqualTypeOf<never>()
expectTypeOf<
FormatAbi<
readonly [
{
readonly name: 'foo'
readonly type: 'function'
readonly stateMutability: 'nonpayable'
readonly inputs: readonly []
readonly outputs: readonly []
},
{
readonly name: 'bar'
readonly type: 'function'
readonly stateMutability: 'nonpayable'
readonly inputs: readonly [
{
readonly type: 'tuple'
readonly components: readonly [
{
readonly name: 'name'
readonly type: 'string'
},
]
},
{
readonly type: 'bytes32'
},
]
readonly outputs: readonly []
},
]
>
>().toEqualTypeOf<
readonly ['function foo()', 'function bar((string name), bytes32)']
>()
expectTypeOf<
FormatAbi<
readonly [
{
readonly name: 'balanceOf'
readonly type: 'function'
readonly stateMutability: 'view'
readonly inputs: readonly [
{
readonly name: 'owner'
readonly type: 'address'
},
]
readonly outputs: readonly [
{
readonly type: 'uint256'
},
]
},
{
readonly name: 'Transfer'
readonly type: 'event'
readonly inputs: readonly [
{
readonly name: 'from'
readonly type: 'address'
readonly indexed: true
},
{
readonly name: 'to'
readonly type: 'address'
readonly indexed: true
},
{
readonly name: 'amount'
readonly type: 'uint256'
},
]
},
]
>
>().toEqualTypeOf<
readonly [
'function balanceOf(address owner) view returns (uint256)',
'event Transfer(address indexed from, address indexed to, uint256 amount)',
]
>()
})
test('formatAbi', () => {
expectTypeOf(formatAbi([])).toEqualTypeOf<never>()
// Array
const res = formatAbi([
{
name: 'bar',
type: 'function',
stateMutability: 'nonpayable',
inputs: [
{
type: 'tuple',
components: [
{
name: 'name',
type: 'string',
},
],
},
{
type: 'bytes32',
},
],
outputs: [],
},
])
expectTypeOf<typeof res>().toEqualTypeOf<
readonly ['function bar((string name), bytes32)']
>()
const abi2 = [
{
type: 'function',
name: 'foo',
inputs: [],
outputs: [],
stateMutability: 'view',
},
]
expectTypeOf(formatAbi(abi2)).toEqualTypeOf<readonly string[]>()
const param = abi2 as Abi
expectTypeOf(formatAbi(param)).toEqualTypeOf<readonly string[]>()
const getOrderType = formatAbi(seaportAbi)[10]
expectTypeOf<
typeof getOrderType
>().toEqualTypeOf<'function getOrderHash((address offerer, address zone, (uint8 itemType, address token, uint256 identifierOrCriteria, uint256 startAmount, uint256 endAmount)[] offer, (uint8 itemType, address token, uint256 identifierOrCriteria, uint256 startAmount, uint256 endAmount, address recipient)[] consideration, uint8 orderType, uint256 startTime, uint256 endTime, bytes32 zoneHash, uint256 salt, bytes32 conduitKey, uint256 counter) order) view returns (bytes32 orderHash)'>()
})
import { expect, test } from 'vp/test'
import { seaportAbi } from '../../../../test/abis/json.js'
import { formatAbi } from './formatAbi.js'
const customSolidityErrorsAbi = [
{ inputs: [], stateMutability: 'nonpayable', type: 'constructor' },
{ inputs: [], name: 'ApprovalCallerNotOwnerNorApproved', type: 'error' },
{ inputs: [], name: 'ApprovalQueryForNonexistentToken', type: 'error' },
] as const
test('formatAbi', () => {
const result = formatAbi(seaportAbi)
expect(result).toMatchSnapshot()
expect(formatAbi(customSolidityErrorsAbi)).toMatchInlineSnapshot(`
[
"constructor()",
"error ApprovalCallerNotOwnerNorApproved()",
"error ApprovalQueryForNonexistentToken()",
]
`)
})
import type { Abi } from 'abitype'
import { type FormatAbiItem, formatAbiItem } from './formatAbiItem.js'
/**
* Parses JSON ABI into human-readable ABI
*
* @param abi - ABI
* @returns Human-readable ABI
*/
export type FormatAbi<abi extends Abi | readonly unknown[]> = Abi extends abi
? readonly string[]
: abi extends readonly []
? never
: abi extends Abi
? {
[key in keyof abi]: FormatAbiItem<abi[key]>
}
: readonly string[]
/**
* Parses JSON ABI into human-readable ABI
*
* @param abi - ABI
* @returns Human-readable ABI
*/
export function formatAbi<const abi extends Abi | readonly unknown[]>(
abi: abi,
): FormatAbi<abi> {
const signatures = []
const length = abi.length
for (let i = 0; i < length; i++) {
const abiItem = abi[i]!
const signature = formatAbiItem(abiItem as Abi[number])
signatures.push(signature)
}
return signatures as unknown as FormatAbi<abi>
}
import { expectTypeOf, test } from 'vp/test'
import type {
Abi,
AbiConstructor,
AbiError,
AbiEvent,
AbiFallback,
AbiFunction,
AbiReceive,
} from 'abitype'
import type { FormatAbiItem } from './formatAbiItem.js'
import { formatAbiItem } from './formatAbiItem.js'
test('FormatAbiItem', () => {
expectTypeOf<FormatAbiItem<Abi[number]>>().toEqualTypeOf<string>()
expectTypeOf<FormatAbiItem<AbiFunction>>().toEqualTypeOf<string>()
expectTypeOf<FormatAbiItem<AbiEvent>>().toEqualTypeOf<string>()
expectTypeOf<FormatAbiItem<AbiError>>().toEqualTypeOf<string>()
expectTypeOf<FormatAbiItem<AbiConstructor>>().toEqualTypeOf<string>()
expectTypeOf<FormatAbiItem<AbiFallback>>().toEqualTypeOf<string>()
expectTypeOf<FormatAbiItem<AbiReceive>>().toEqualTypeOf<string>()
expectTypeOf<
FormatAbiItem<{
readonly name: 'foo'
readonly type: 'function'
readonly stateMutability: 'nonpayable'
readonly inputs: readonly []
readonly outputs: readonly []
}>
>().toEqualTypeOf<'function foo()'>()
expectTypeOf<
FormatAbiItem<{
readonly name: 'address'
readonly type: 'function'
readonly stateMutability: 'nonpayable'
readonly inputs: readonly []
readonly outputs: readonly []
}>
>().toEqualTypeOf<'function [Error: "address" is a protected Solidity keyword.]()'>()
expectTypeOf<
FormatAbiItem<{
readonly name: 'Transfer'
readonly type: 'event'
readonly inputs: readonly [
{
readonly name: 'from'
readonly type: 'address'
readonly indexed: true
},
{
readonly name: 'to'
readonly type: 'address'
readonly indexed: true
},
{
readonly name: 'amount'
readonly type: 'uint256'
},
]
}>
>().toEqualTypeOf<'event Transfer(address indexed from, address indexed to, uint256 amount)'>()
})
test('formatAbiItem', () => {
expectTypeOf(
formatAbiItem({
name: 'foo',
type: 'function',
stateMutability: 'nonpayable',
inputs: [],
outputs: [],
}),
).toEqualTypeOf<'function foo()'>()
expectTypeOf(
formatAbiItem({
name: 'foo',
type: 'function',
stateMutability: 'nonpayable',
inputs: [
{
type: 'tuple',
components: [
{
type: 'string',
},
],
},
{
type: 'address',
},
],
outputs: [],
}),
).toEqualTypeOf<'function foo((string), address)'>()
const abiItem: Abi[number] = {
type: 'function',
name: 'foo',
inputs: [],
outputs: [],
stateMutability: 'nonpayable',
}
expectTypeOf(formatAbiItem(abiItem)).toEqualTypeOf<string>()
expectTypeOf(
formatAbiItem({ type: 'fallback', stateMutability: 'nonpayable' }),
).toEqualTypeOf<'fallback() external'>()
expectTypeOf(
formatAbiItem({ type: 'fallback', stateMutability: 'payable' }),
).toEqualTypeOf<'fallback() external payable'>()
})
import { expect, test } from 'vp/test'
import { seaportAbi } from '../../../../test/abis/json.js'
import { formatAbiItem } from './formatAbiItem.js'
test('default', () => {
const result = formatAbiItem(seaportAbi[1])
expect(result).toMatchInlineSnapshot(
'"function cancel((address offerer, address zone, (uint8 itemType, address token, uint256 identifierOrCriteria, uint256 startAmount, uint256 endAmount)[] offer, (uint8 itemType, address token, uint256 identifierOrCriteria, uint256 startAmount, uint256 endAmount, address recipient)[] consideration, uint8 orderType, uint256 startTime, uint256 endTime, bytes32 zoneHash, uint256 salt, bytes32 conduitKey, uint256 counter)[] orders) returns (bool cancelled)"',
)
})
test.each([
{
abiItem: {
type: 'function',
name: 'foo',
inputs: [{ type: 'string' }],
outputs: [],
stateMutability: 'nonpayable',
} as const,
expected: 'function foo(string)',
},
{
abiItem: {
type: 'event',
name: 'Foo',
inputs: [
{ type: 'address', name: 'from', indexed: true },
{ type: 'address', name: 'to', indexed: true },
{ type: 'uint256', name: 'amount' },
],
} as const,
expected:
'event Foo(address indexed from, address indexed to, uint256 amount)',
},
{
abiItem: {
type: 'constructor',
stateMutability: 'nonpayable',
inputs: [{ type: 'string' }],
} as const,
expected: 'constructor(string)',
},
{
abiItem: {
type: 'constructor',
stateMutability: 'payable',
inputs: [{ type: 'string' }],
} as const,
expected: 'constructor(string) payable',
},
{
abiItem: {
type: 'fallback',
stateMutability: 'nonpayable',
} as const,
expected: 'fallback() external',
},
{
abiItem: {
type: 'fallback',
stateMutability: 'payable',
} as const,
expected: 'fallback() external payable',
},
{
abiItem: {
type: 'receive',
stateMutability: 'payable',
} as const,
expected: 'receive() external payable',
},
{
abiItem: {
type: 'function',
name: 'initWormhole',
inputs: [
{
type: 'tuple[]',
name: 'configs',
components: [
{
type: 'uint256',
name: 'chainId',
},
{
type: 'uint16',
name: 'wormholeChainId',
},
],
},
],
outputs: [],
stateMutability: 'nonpayable',
} as const,
expected:
'function initWormhole((uint256 chainId, uint16 wormholeChainId)[] configs)',
},
])('formatAbiItem($expected)', ({ abiItem, expected }) => {
expect(formatAbiItem(abiItem)).toEqual(expected)
})
import type {
Abi,
AbiConstructor,
AbiError,
AbiEvent,
AbiEventParameter,
AbiFallback,
AbiFunction,
AbiParameter,
AbiReceive,
AbiStateMutability,
} from 'abitype'
import {
type FormatAbiParameters as FormatAbiParameters_,
formatAbiParameters,
} from './formatAbiParameters.js'
import type { AssertName } from './types/signatures.js'
/**
* Formats ABI item (e.g. error, event, function) into human-readable ABI item
*
* @param abiItem - ABI item
* @returns Human-readable ABI item
*/
export type FormatAbiItem<abiItem extends Abi[number]> =
Abi[number] extends abiItem
? string
:
| (abiItem extends AbiFunction
? AbiFunction extends abiItem
? string
: `function ${AssertName<abiItem['name']>}(${FormatAbiParameters<
abiItem['inputs']
>})${abiItem['stateMutability'] extends Exclude<
AbiStateMutability,
'nonpayable'
>
? ` ${abiItem['stateMutability']}`
: ''}${abiItem['outputs']['length'] extends 0
? ''
: ` returns (${FormatAbiParameters<abiItem['outputs']>})`}`
: never)
| (abiItem extends AbiEvent
? AbiEvent extends abiItem
? string
: `event ${AssertName<abiItem['name']>}(${FormatAbiParameters<
abiItem['inputs']
>})`
: never)
| (abiItem extends AbiError
? AbiError extends abiItem
? string
: `error ${AssertName<abiItem['name']>}(${FormatAbiParameters<
abiItem['inputs']
>})`
: never)
| (abiItem extends AbiConstructor
? AbiConstructor extends abiItem
? string
: `constructor(${FormatAbiParameters<
abiItem['inputs']
>})${abiItem['stateMutability'] extends 'payable'
? ' payable'
: ''}`
: never)
| (abiItem extends AbiFallback
? AbiFallback extends abiItem
? string
: `fallback() external${abiItem['stateMutability'] extends 'payable'
? ' payable'
: ''}`
: never)
| (abiItem extends AbiReceive
? AbiReceive extends abiItem
? string
: 'receive() external payable'
: never)
type FormatAbiParameters<
abiParameters extends readonly (AbiParameter | AbiEventParameter)[],
> = abiParameters['length'] extends 0
? ''
: FormatAbiParameters_<
abiParameters extends readonly [
AbiParameter | AbiEventParameter,
...(readonly (AbiParameter | AbiEventParameter)[]),
]
? abiParameters
: never
>
/**
* Formats ABI item (e.g. error, event, function) into human-readable ABI item
*
* @param abiItem - ABI item
* @returns Human-readable ABI item
*/
export function formatAbiItem<const abiItem extends Abi[number]>(
abiItem: abiItem,
): FormatAbiItem<abiItem> {
type Result = FormatAbiItem<abiItem>
type Params = readonly [
AbiParameter | AbiEventParameter,
...(readonly (AbiParameter | AbiEventParameter)[]),
]
if (abiItem.type === 'function')
return `function ${abiItem.name}(${formatAbiParameters(
abiItem.inputs as Params,
)})${
abiItem.stateMutability && abiItem.stateMutability !== 'nonpayable'
? ` ${abiItem.stateMutability}`
: ''
}${
abiItem.outputs?.length
? ` returns (${formatAbiParameters(abiItem.outputs as Params)})`
: ''
}`
if (abiItem.type === 'event')
return `event ${abiItem.name}(${formatAbiParameters(
abiItem.inputs as Params,
)})`
if (abiItem.type === 'error')
return `error ${abiItem.name}(${formatAbiParameters(
abiItem.inputs as Params,
)})`
if (abiItem.type === 'constructor')
return `constructor(${formatAbiParameters(abiItem.inputs as Params)})${
abiItem.stateMutability === 'payable' ? ' payable' : ''
}`
if (abiItem.type === 'fallback')
return `fallback() external${
abiItem.stateMutability === 'payable' ? ' payable' : ''
}` as Result
return 'receive() external payable' as Result
}
import { expectTypeOf, test } from 'vp/test'
import type { AbiParameter } from 'abitype'
import type { FormatAbiParameter } from './formatAbiParameter.js'
import { formatAbiParameter } from './formatAbiParameter.js'
test('FormatAbiParameter', () => {
// string
expectTypeOf<
FormatAbiParameter<{
readonly type: 'address'
readonly name: 'from'
}>
>().toEqualTypeOf<'address from'>()
expectTypeOf<
FormatAbiParameter<{
readonly type: 'address'
readonly name: 'from'
readonly indexed: true
}>
>().toEqualTypeOf<'address indexed from'>()
expectTypeOf<
FormatAbiParameter<{
readonly type: 'address'
readonly name: ''
}>
>().toEqualTypeOf<'address'>()
expectTypeOf<
FormatAbiParameter<{
type: 'address'
name: 'address'
}>
>().toEqualTypeOf<'address [Error: "address" is a protected Solidity keyword.]'>()
expectTypeOf<
FormatAbiParameter<{
type: 'address'
name: '123'
}>
>().toEqualTypeOf<'address [Error: Identifier "123" cannot be a number string.]'>()
// Array
expectTypeOf<
FormatAbiParameter<{
readonly type: 'tuple'
readonly components: readonly [
{
readonly name: 'name'
readonly type: 'string'
},
]
}>
>().toEqualTypeOf<'(string name)'>()
expectTypeOf<
FormatAbiParameter<{
readonly type: 'tuple'
readonly components: readonly [
{
readonly type: 'string'
readonly name: 'bar'
},
]
readonly name: 'foo'
}>
>().toEqualTypeOf<'(string bar) foo'>()
expectTypeOf<
FormatAbiParameter<{
readonly components: [
{
readonly components: [
{
readonly type: 'string'
readonly name: 'foo'
},
]
readonly type: 'tuple'
},
]
readonly type: 'tuple'
}>
>().toEqualTypeOf<'((string foo))'>()
expectTypeOf<
FormatAbiParameter<{
readonly components: [
{
readonly components: [
{
readonly components: [
{
readonly components: [
{
readonly type: 'string'
},
]
readonly type: 'tuple'
},
]
readonly type: 'tuple'
},
]
readonly type: 'tuple'
},
]
readonly type: 'tuple'
}>
>().toEqualTypeOf<'((((string))))'>()
})
test('formatAbiParameter', () => {
expectTypeOf(
formatAbiParameter({
type: 'tuple',
components: [{ type: 'string' }],
}),
).toEqualTypeOf<'(string)'>()
const param = { type: 'address' }
const param2: AbiParameter = param
expectTypeOf(formatAbiParameter(param)).toEqualTypeOf<string>()
expectTypeOf(formatAbiParameter(param2)).toEqualTypeOf<string>()
})
import { assertType, expect, expectTypeOf, test } from 'vp/test'
import { formatAbiParameter } from './formatAbiParameter.js'
test('default', () => {
const result = formatAbiParameter({ type: 'address', name: 'foo' })
expect(result).toEqual('address foo')
expectTypeOf(result).toEqualTypeOf<'address foo'>()
})
test('tuple', () => {
const result = formatAbiParameter({
type: 'tuple',
components: [
{ type: 'string', name: 'bar' },
{ type: 'string', name: 'baz' },
],
name: 'foo',
})
expect(result).toMatchInlineSnapshot('"(string bar, string baz) foo"')
expectTypeOf(result).toEqualTypeOf<'(string bar, string baz) foo'>()
})
test('tuple[][]', () => {
const result = formatAbiParameter({
type: 'tuple[123][]',
components: [
{ type: 'string', name: 'bar' },
{ type: 'string', name: 'baz' },
],
name: 'foo',
})
expect(result).toMatchInlineSnapshot('"(string bar, string baz)[123][] foo"')
expectTypeOf(result).toEqualTypeOf<'(string bar, string baz)[123][] foo'>()
})
test.each([
{
abiParameter: { type: 'string' },
expected: 'string',
},
{
abiParameter: { name: 'foo', type: 'string' },
expected: 'string foo',
},
{
abiParameter: { name: 'foo', type: 'string', indexed: true },
expected: 'string indexed foo',
},
{
abiParameter: { type: 'tuple', components: [{ type: 'string' }] },
expected: '(string)',
},
{
abiParameter: {
type: 'tuple',
components: [{ name: 'foo', type: 'string' }],
},
expected: '(string foo)',
},
{
abiParameter: {
type: 'tuple',
name: 'foo',
components: [{ name: 'bar', type: 'string' }],
},
expected: '(string bar) foo',
},
{
abiParameter: {
type: 'tuple',
name: 'foo',
components: [
{ name: 'bar', type: 'string' },
{ name: 'baz', type: 'string' },
],
},
expected: '(string bar, string baz) foo',
},
{
abiParameter: { type: 'string', indexed: false },
expected: 'string',
},
{
abiParameter: { type: 'string', indexed: true },
expected: 'string indexed',
},
{
abiParameter: { type: 'string', indexed: true, name: 'foo' },
expected: 'string indexed foo',
},
])('formatAbiParameter($abiParameter)', ({ abiParameter, expected }) => {
expect(formatAbiParameter(abiParameter)).toEqual(expected)
})
test('nested tuple', () => {
const result = formatAbiParameter({
components: [
{
components: [
{
components: [
{
components: [
{
name: 'baz',
type: 'string',
},
],
name: 'bar',
type: 'tuple',
},
],
name: 'foo',
type: 'tuple[1]',
},
],
name: 'boo',
type: 'tuple',
},
],
type: 'tuple',
})
expect(result).toMatchInlineSnapshot('"((((string baz) bar)[1] foo) boo)"')
assertType<'((((string baz) bar)[1] foo) boo)'>(result)
})
import type { AbiEventParameter, AbiParameter } from 'abitype'
import { execTyped } from './regex.js'
import type { IsNarrowable, Join } from './types.js'
import type { AssertName } from './types/signatures.js'
/**
* Formats `AbiParameter` to human-readable ABI parameter.
*
* @param abiParameter - ABI parameter
* @returns Human-readable ABI parameter
*/
export type FormatAbiParameter<
abiParameter extends AbiParameter | AbiEventParameter,
> = abiParameter extends {
name?: infer name extends string
type: `tuple${infer array}`
components: infer components extends readonly AbiParameter[]
indexed?: infer indexed extends boolean
}
? FormatAbiParameter<
{
type: `(${Join<
{
[key in keyof components]: FormatAbiParameter<
{
type: components[key]['type']
} & (IsNarrowable<components[key]['name'], string> extends true
? { name: components[key]['name'] }
: unknown) &
(components[key] extends { components: readonly AbiParameter[] }
? { components: components[key]['components'] }
: unknown)
>
},
', '
>})${array}`
} & (IsNarrowable<name, string> extends true ? { name: name } : unknown) &
(IsNarrowable<indexed, boolean> extends true
? { indexed: indexed }
: unknown)
>
: `${abiParameter['type']}${abiParameter extends { indexed: true }
? ' indexed'
: ''}${abiParameter['name'] extends infer name extends string
? name extends ''
? ''
: ` ${AssertName<name>}`
: ''}`
// https://regexr.com/7f7rv
const tupleRegex = /^tuple(?<array>(\[(\d*)\])*)$/
/**
* Formats `AbiParameter` to human-readable ABI parameter.
*
* @param abiParameter - ABI parameter
* @returns Human-readable ABI parameter
*/
export function formatAbiParameter<
const abiParameter extends AbiParameter | AbiEventParameter,
>(abiParameter: abiParameter): FormatAbiParameter<abiParameter> {
type Result = FormatAbiParameter<abiParameter>
let type = abiParameter.type
if (tupleRegex.test(abiParameter.type) && 'components' in abiParameter) {
type = '('
const length = abiParameter.components.length as number
for (let i = 0; i < length; i++) {
const component = abiParameter.components[i]!
type += formatAbiParameter(component)
if (i < length - 1) type += ', '
}
const result = execTyped<{ array?: string }>(tupleRegex, abiParameter.type)
type += `)${result?.array || ''}`
return formatAbiParameter({
...abiParameter,
type,
}) as Result
}
// Add `indexed` to type if in `abiParameter`
if ('indexed' in abiParameter && abiParameter.indexed)
type = `${type} indexed`
// Return human-readable ABI parameter
if (abiParameter.name) return `${type} ${abiParameter.name}` as Result
return type as Result
}
import { expectTypeOf, test } from 'vp/test'
import type { AbiParameter } from 'abitype'
import type { FormatAbiParameters } from './formatAbiParameters.js'
import { formatAbiParameters } from './formatAbiParameters.js'
test('FormatAbiParameters', () => {
// @ts-expect-error must have at least one parameter
expectTypeOf<FormatAbiParameters<[]>>().toEqualTypeOf<never>()
// string
expectTypeOf<
FormatAbiParameters<
[
{
readonly type: 'address'
readonly name: 'from'
},
]
>
>().toEqualTypeOf<'address from'>()
expectTypeOf<
FormatAbiParameters<
[
{
readonly type: 'address'
readonly name: 'from'
readonly indexed: true
},
]
>
>().toEqualTypeOf<'address indexed from'>()
// Array
expectTypeOf<
FormatAbiParameters<
[
{
readonly type: 'tuple'
readonly components: readonly [
{
readonly name: 'name'
readonly type: 'string'
},
]
},
]
>
>().toEqualTypeOf<'(string name)'>()
expectTypeOf<
FormatAbiParameters<
[
{
readonly type: 'tuple'
readonly components: readonly [
{
readonly type: 'string'
readonly name: 'bar'
},
]
readonly name: 'foo'
},
]
>
>().toEqualTypeOf<'(string bar) foo'>()
})
test('formatAbiParameter', () => {
expectTypeOf(
formatAbiParameters([
{
type: 'tuple',
components: [{ type: 'string' }],
},
]),
).toEqualTypeOf<'(string)'>()
const param = { type: 'address' }
const param2: AbiParameter = param
expectTypeOf(formatAbiParameters([param])).toEqualTypeOf<string>()
expectTypeOf(
formatAbiParameters([param, param]),
).toEqualTypeOf<`${string}, ${string}`>()
expectTypeOf(
formatAbiParameters([param2, param2]),
).toEqualTypeOf<`${string}, ${string}`>()
})
import { expect, expectTypeOf, test } from 'vp/test'
import { formatAbiParameters } from './formatAbiParameters.js'
test('default', () => {
const result = formatAbiParameters([
{ type: 'address', name: 'foo' },
{ type: 'uint256', name: 'bar' },
])
expect(result).toEqual('address foo, uint256 bar')
expectTypeOf(result).toEqualTypeOf<'address foo, uint256 bar'>()
})
test('tuple', () => {
const result = formatAbiParameters([
{
type: 'tuple',
components: [
{ type: 'string', name: 'bar' },
{ type: 'string', name: 'baz' },
],
name: 'foo',
},
{ type: 'uint256', name: 'bar' },
])
expect(result).toMatchInlineSnapshot(
'"(string bar, string baz) foo, uint256 bar"',
)
expectTypeOf(
result,
).toEqualTypeOf<'(string bar, string baz) foo, uint256 bar'>()
})
import type { AbiEventParameter, AbiParameter } from 'abitype'
import type { Join } from './types.js'
import {
type FormatAbiParameter,
formatAbiParameter,
} from './formatAbiParameter.js'
/**
* Formats `AbiParameter`s to human-readable ABI parameter.
*
* @param abiParameters - ABI parameters
* @returns Human-readable ABI parameters
*/
export type FormatAbiParameters<
abiParameters extends readonly [
AbiParameter | AbiEventParameter,
...(readonly (AbiParameter | AbiEventParameter)[]),
],
> = Join<
{
[key in keyof abiParameters]: FormatAbiParameter<abiParameters[key]>
},
', '
>
/**
* Formats `AbiParameter`s to human-readable ABI parameters.
*
* @param abiParameters - ABI parameters
* @returns Human-readable ABI parameters
*/
export function formatAbiParameters<
const abiParameters extends readonly [
AbiParameter | AbiEventParameter,
...(readonly (AbiParameter | AbiEventParameter)[]),
],
>(abiParameters: abiParameters): FormatAbiParameters<abiParameters> {
let params = ''
const length = abiParameters.length
for (let i = 0; i < length; i++) {
const abiParameter = abiParameters[i]!
params += formatAbiParameter(abiParameter)
if (i !== length - 1) params += ', '
}
return params as FormatAbiParameters<abiParameters>
}
import { attest } from '@ark/attest'
import { Abi, AbiItem, AbiParameter, AbiParameters } from 'ox'
import { describe, test } from 'vp/test'
import type { seaportHumanReadableAbi } from '../../../../test/abis/human-readable.js'
describe('human-readable ABI type instantiations', () => {
test('Abi.from.ReturnType: erc20-sized ABI', () => {
type Result = Abi.from.ReturnType<
[
'function name() view returns (string)',
'function symbol() view returns (string)',
'function decimals() view returns (uint8)',
'function totalSupply() view returns (uint256)',
'function balanceOf(address owner) view returns (uint256)',
'function transfer(address to, uint256 amount) returns (bool)',
'function transferFrom(address from, address to, uint256 amount) returns (bool)',
'function approve(address spender, uint256 amount) returns (bool)',
'function allowance(address owner, address spender) view returns (uint256)',
'event Transfer(address indexed from, address indexed to, uint256 amount)',
'event Approval(address indexed owner, address indexed spender, uint256 amount)',
]
>
attest.instantiations([45_000, 'instantiations'])
attest<Result>({} as Result)
})
test('Abi.from.ReturnType: seaport human-readable ABI', () => {
type Result = Abi.from.ReturnType<typeof seaportHumanReadableAbi>
attest.instantiations([5_000_000, 'instantiations'])
attest<Result>({} as Result)
})
test('AbiItem.from.ReturnType: struct item', () => {
type Result = AbiItem.from.ReturnType<
[
'struct Foo { address spender; uint256 amount; }',
'function approve(Foo foo) returns (bool)',
]
>
attest.instantiations([15_000, 'instantiations'])
attest<Result>({} as Result)
})
test('AbiParameters.from.ReturnType: nested tuple parameters', () => {
type Result =
AbiParameters.from.ReturnType<'(uint8 a, uint8[] b, (uint8 x, uint8 y)[] c) s, (uint x, uint y) t, uint256 a'>
attest.instantiations([20_000, 'instantiations'])
attest<Result>({} as Result)
})
test('AbiParameter.from.ReturnType: struct parameter', () => {
type Result = AbiParameter.from.ReturnType<
['struct Foo { address spender; uint256 amount; }', 'Foo foo']
>
attest.instantiations([10_000, 'instantiations'])
attest<Result>({} as Result)
})
})
import { expect, test } from 'vp/test'
import { formatAbiItem } from './formatAbiItem.js'
import { parseAbiItem } from './parseAbiItem.js'
test.each([
{
type: 'fallback',
stateMutability: 'payable',
} as const,
{
type: 'fallback',
stateMutability: 'nonpayable',
} as const,
{
type: 'receive',
stateMutability: 'payable',
} as const,
{
type: 'function',
name: 'foo',
inputs: [{ type: 'string' }],
outputs: [],
stateMutability: 'nonpayable',
} as const,
{
type: 'event',
name: 'Foo',
inputs: [
{ type: 'address', name: 'from', indexed: true },
{ type: 'address', name: 'to', indexed: true },
{ type: 'uint256', name: 'amount' },
],
} as const,
{
type: 'constructor',
stateMutability: 'nonpayable',
inputs: [{ type: 'string' }],
} as const,
{
type: 'constructor',
stateMutability: 'payable',
inputs: [{ type: 'string' }],
} as const,
{
type: 'function',
name: 'initWormhole',
inputs: [
{
type: 'tuple[]',
name: 'configs',
components: [
{
type: 'uint256',
name: 'chainId',
},
{
type: 'uint16',
name: 'wormholeChainId',
},
],
},
],
outputs: [],
stateMutability: 'nonpayable',
} as const,
])('use of parseAbiItem - formatAbiItem should be reversible', (abiItem) => {
expect(parseAbiItem(formatAbiItem(abiItem))).toEqual(abiItem)
})
import { expectTypeOf, test } from 'vp/test'
import type { Abi } from 'abitype'
import { seaportHumanReadableAbi } from '../../../../test/abis/human-readable.js'
import type { IsAbi } from 'abitype'
import type { ParseAbi } from './parseAbi.js'
import { parseAbi } from './parseAbi.js'
test('ParseAbi', () => {
type SeaportAbi = ParseAbi<typeof seaportHumanReadableAbi>
expectTypeOf<IsAbi<SeaportAbi>>().toEqualTypeOf<true>()
expectTypeOf<ParseAbi<[]>>().toEqualTypeOf<never>()
expectTypeOf<
ParseAbi<['struct Foo { string name; }']>
>().toEqualTypeOf<never>()
expectTypeOf<
ParseAbi<
[
'function foo()',
'function bar(Foo, bytes32)',
'struct Foo { string name; }',
]
>
>().toEqualTypeOf<
readonly [
{
readonly name: 'foo'
readonly type: 'function'
readonly stateMutability: 'nonpayable'
readonly inputs: readonly []
readonly outputs: readonly []
},
{
readonly name: 'bar'
readonly type: 'function'
readonly stateMutability: 'nonpayable'
readonly inputs: readonly [
{
readonly type: 'tuple'
readonly components: readonly [
{
readonly name: 'name'
readonly type: 'string'
},
]
},
{
readonly type: 'bytes32'
},
]
readonly outputs: readonly []
},
]
>()
expectTypeOf<
ParseAbi<
[
'function balanceOf(address owner) view returns (uint256)',
'event Transfer(address indexed from, address indexed to, uint256 amount)',
]
>
>().toEqualTypeOf<
readonly [
{
readonly name: 'balanceOf'
readonly type: 'function'
readonly stateMutability: 'view'
readonly inputs: readonly [
{
readonly name: 'owner'
readonly type: 'address'
},
]
readonly outputs: readonly [
{
readonly type: 'uint256'
},
]
},
{
readonly name: 'Transfer'
readonly type: 'event'
readonly inputs: readonly [
{
readonly name: 'from'
readonly type: 'address'
readonly indexed: true
},
{
readonly name: 'to'
readonly type: 'address'
readonly indexed: true
},
{
readonly name: 'amount'
readonly type: 'uint256'
},
]
},
]
>()
expectTypeOf<ParseAbi<['function foo ()']>>().toEqualTypeOf<never>()
})
test('parseAbi', () => {
// @ts-expect-error empty array not allowed
expectTypeOf(parseAbi([])).toEqualTypeOf<never>()
expectTypeOf(parseAbi(['struct Foo { string name; }'])).toEqualTypeOf<never>()
// Array
const res2 = parseAbi([
'function bar(Foo, bytes32)',
'struct Foo { string name; }',
])
expectTypeOf<typeof res2>().toEqualTypeOf<
readonly [
{
readonly name: 'bar'
readonly type: 'function'
readonly stateMutability: 'nonpayable'
readonly inputs: readonly [
{
readonly type: 'tuple'
readonly components: readonly [
{
readonly name: 'name'
readonly type: 'string'
},
]
},
{
readonly type: 'bytes32'
},
]
readonly outputs: readonly []
},
]
>()
const abi2 = [
'function foo()',
'function bar(Foo, bytes32)',
'struct Foo { string name; }',
]
expectTypeOf(parseAbi(abi2)).toEqualTypeOf<Abi>()
// @ts-expect-error invalid signature
expectTypeOf(parseAbi(['function foo ()'])).toEqualTypeOf<never>()
const param: string[] = abi2
expectTypeOf(parseAbi(param)).toEqualTypeOf<Abi>()
const getOrderType = parseAbi(seaportHumanReadableAbi)[10]
expectTypeOf<typeof getOrderType>().toEqualTypeOf<{
readonly name: 'getOrderStatus'
readonly type: 'function'
readonly stateMutability: 'view'
readonly inputs: readonly [
{
readonly type: 'bytes32'
readonly name: 'orderHash'
},
]
readonly outputs: readonly [
{
readonly type: 'bool'
readonly name: 'isValidated'
},
{
readonly type: 'bool'
readonly name: 'isCancelled'
},
{
readonly type: 'uint256'
readonly name: 'totalFilled'
},
{
readonly type: 'uint256'
readonly name: 'totalSize'
},
]
}>()
})
import { expect, test } from 'vp/test'
import { seaportHumanReadableAbi } from '../../../../test/abis/human-readable.js'
import { parseAbi } from './parseAbi.js'
const customSolidityErrorsHumanReadableAbi = [
'constructor()',
'error ApprovalCallerNotOwnerNorApproved()',
'error ApprovalQueryForNonexistentToken()',
] as const
test('parseAbi', () => {
const result = parseAbi(seaportHumanReadableAbi)
expect(result).toMatchSnapshot()
expect(parseAbi(customSolidityErrorsHumanReadableAbi)).toMatchInlineSnapshot(`
[
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor",
},
{
"inputs": [],
"name": "ApprovalCallerNotOwnerNorApproved",
"type": "error",
},
{
"inputs": [],
"name": "ApprovalQueryForNonexistentToken",
"type": "error",
},
]
`)
})
test('busts cache', () => {
const result1 = parseAbi([
'function balanceOf(Baz baz)',
'struct Baz {uint amount; string role;}',
])
expect(result1[0].inputs).toMatchInlineSnapshot(`
[
{
"components": [
{
"name": "amount",
"type": "uint256",
},
{
"name": "role",
"type": "string",
},
],
"name": "baz",
"type": "tuple",
},
]
`)
const result2 = parseAbi([
'function balanceOf(Baz baz)',
'struct Baz {uint price; string role;}',
])
expect(result2[0].inputs).toMatchInlineSnapshot(`
[
{
"components": [
{
"name": "price",
"type": "uint256",
},
{
"name": "role",
"type": "string",
},
],
"name": "baz",
"type": "tuple",
},
]
`)
})
import type { Abi } from 'abitype'
import type { Error, Filter } from './types.js'
import { isStructSignature } from './runtime/signatures.js'
import { parseStructs } from './runtime/structs.js'
import { parseSignature } from './runtime/utils.js'
import type { Signatures } from './types/signatures.js'
import type { ParseStructs } from './types/structs.js'
import type { ParseSignature } from './types/utils.js'
/**
* Parses human-readable ABI into JSON `Abi`.
*
* @param signatures - Human-readable ABI
* @returns Parsed `Abi`.
*/
export type ParseAbi<signatures extends readonly string[]> =
string[] extends signatures
? Abi // If `T` was not able to be inferred (e.g. just `string[]`), return `Abi`
: signatures extends readonly string[]
? signatures extends Signatures<signatures> // Validate signatures
? ParseStructs<signatures> extends infer structs
? {
[key in keyof signatures]: signatures[key] extends string
? ParseSignature<signatures[key], structs>
: never
} extends infer mapped extends readonly unknown[]
? Filter<mapped, never> extends infer result
? result extends readonly []
? never
: result
: never
: never
: never
: never
: never
/**
* Parses human-readable ABI into JSON `Abi`.
*
* @param signatures - Human-Readable ABI
* @returns Parsed `Abi`.
*/
export function parseAbi<const signatures extends readonly string[]>(
signatures: signatures['length'] extends 0
? Error<'At least one signature required'>
: Signatures<signatures> extends signatures
? signatures
: Signatures<signatures>,
): ParseAbi<signatures> {
const structs = parseStructs(signatures as readonly string[])
const abi = []
const length = signatures.length as number
for (let i = 0; i < length; i++) {
const signature = (signatures as readonly string[])[i]!
if (isStructSignature(signature)) continue
abi.push(parseSignature(signature, structs))
}
return abi as unknown as ParseAbi<signatures>
}
import { expectTypeOf, test } from 'vp/test'
import type { Abi } from 'abitype'
import type { ParseAbiItem } from './parseAbiItem.js'
import { parseAbiItem } from './parseAbiItem.js'
test('ParseAbiItem', () => {
expectTypeOf<ParseAbiItem<''>>().toEqualTypeOf<never>()
expectTypeOf<ParseAbiItem<['']>>().toEqualTypeOf<never>()
expectTypeOf<
ParseAbiItem<['struct Foo { string name; }']>
>().toEqualTypeOf<never>()
// string
expectTypeOf<ParseAbiItem<'function foo()'>>().toEqualTypeOf<{
readonly name: 'foo'
readonly type: 'function'
readonly stateMutability: 'nonpayable'
readonly inputs: readonly []
readonly outputs: readonly []
}>()
// Array
expectTypeOf<
ParseAbiItem<['function bar(Foo, bytes32)', 'struct Foo { string name; }']>
>().toEqualTypeOf<{
readonly name: 'bar'
readonly type: 'function'
readonly stateMutability: 'nonpayable'
readonly inputs: readonly [
{
readonly type: 'tuple'
readonly components: readonly [
{
readonly name: 'name'
readonly type: 'string'
},
]
},
{
readonly type: 'bytes32'
},
]
readonly outputs: readonly []
}>()
expectTypeOf<
ParseAbiItem<
[
'event Transfer(address indexed from, address indexed to, uint256 amount)',
]
>
>().toEqualTypeOf<{
readonly name: 'Transfer'
readonly type: 'event'
readonly inputs: readonly [
{
readonly name: 'from'
readonly type: 'address'
readonly indexed: true
},
{
readonly name: 'to'
readonly type: 'address'
readonly indexed: true
},
{
readonly name: 'amount'
readonly type: 'uint256'
},
]
}>()
const abiItem = ['function bar(Foo, bytes32)', 'struct Foo { string name; }']
expectTypeOf<ParseAbiItem<typeof abiItem>>().toEqualTypeOf<Abi[number]>()
expectTypeOf<ParseAbiItem<['function foo ()']>>().toEqualTypeOf<never>()
})
test('parseAbiItem', () => {
// @ts-expect-error empty array not allowed
expectTypeOf(parseAbiItem([])).toEqualTypeOf<never>()
expectTypeOf(
parseAbiItem(['struct Foo { string name; }']),
).toEqualTypeOf<never>()
// string
expectTypeOf(parseAbiItem('function foo()')).toEqualTypeOf<{
readonly name: 'foo'
readonly type: 'function'
readonly stateMutability: 'nonpayable'
readonly inputs: readonly []
readonly outputs: readonly []
}>()
expectTypeOf(parseAbiItem('function foo((string), address)')).toEqualTypeOf<{
readonly name: 'foo'
readonly type: 'function'
readonly stateMutability: 'nonpayable'
readonly inputs: readonly [
{
readonly type: 'tuple'
readonly components: readonly [
{
readonly type: 'string'
},
]
},
{
readonly type: 'address'
},
]
readonly outputs: readonly []
}>()
expectTypeOf(
// @ts-expect-error invalid signature
parseAbiItem(''),
).toEqualTypeOf<never>()
// Array
const res2 = parseAbiItem([
'function bar(Foo, bytes32)',
'struct Foo { string name; }',
])
expectTypeOf<typeof res2>().toEqualTypeOf<{
readonly name: 'bar'
readonly type: 'function'
readonly stateMutability: 'nonpayable'
readonly inputs: readonly [
{
readonly type: 'tuple'
readonly components: readonly [
{
readonly name: 'name'
readonly type: 'string'
},
]
},
{
readonly type: 'bytes32'
},
]
readonly outputs: readonly []
}>()
const abi2 = [
'function foo()',
'function bar(Foo, bytes32)',
'struct Foo { string name; }',
]
expectTypeOf(parseAbiItem(abi2)).toEqualTypeOf<Abi[number]>()
// @ts-expect-error invalid signature
expectTypeOf(parseAbiItem(['function foo ()'])).toEqualTypeOf<never>()
const signature: string = 'function foo()'
expectTypeOf(parseAbiItem(signature)).toEqualTypeOf<Abi[number]>()
// fallback
expectTypeOf(parseAbiItem('fallback() external')).toEqualTypeOf<{
readonly type: 'fallback'
readonly stateMutability: 'nonpayable'
}>()
expectTypeOf(parseAbiItem('fallback() external payable')).toEqualTypeOf<{
readonly type: 'fallback'
readonly stateMutability: 'payable'
}>()
// receive
expectTypeOf(parseAbiItem('receive() external payable')).toEqualTypeOf<{
readonly type: 'receive'
readonly stateMutability: 'payable'
}>()
})
test('nested tuples', () => {
const formattedAbiItem =
'function stepChanges((uint256 characterID, uint64 newPosition, uint24 xp, uint24 epoch, uint8 hp, (int32 x, int32 y, uint8 hp, uint8 kind)[5] monsters, (uint8 monsterIndexPlus1, uint8 attackCardsUsed1, uint8 attackCardsUsed2, uint8 defenseCardsUsed1, uint8 defenseCardsUsed2) battle) stateChanges, uint256 action, bool revetOnInvalidMoves) pure returns ((uint256 characterID, uint64 newPosition, uint24 xp, uint24 epoch, uint8 hp, (int32 x, int32 y, uint8 hp, uint8 kind)[5] monsters, (uint8 monsterIndexPlus1, uint8 attackCardsUsed1, uint8 attackCardsUsed2, uint8 defenseCardsUsed1, uint8 defenseCardsUsed2) battle))'
const abiItem = parseAbiItem(formattedAbiItem)
expectTypeOf(abiItem.stateMutability).toEqualTypeOf<'pure'>()
expectTypeOf(abiItem.inputs.length).toEqualTypeOf<3>()
})
import { expect, test } from 'vp/test'
import { parseAbiItem } from './parseAbiItem.js'
test('parseAbiItem', () => {
// @ts-expect-error invalid signature type
expect(() => parseAbiItem('')).toThrowErrorMatchingInlineSnapshot(
`[Abi.UnknownSignatureError: Unknown signature.]`,
)
// @ts-expect-error invalid signature type
expect(() => parseAbiItem([])).toThrowErrorMatchingInlineSnapshot(
`
[AbiItem.InvalidAbiItemError: Failed to parse ABI item.
Details: parseAbiItem([])
See: https://oxlib.sh/api/AbiItem/from]
`,
)
expect(() =>
parseAbiItem(['struct Foo { string name; }']),
).toThrowErrorMatchingInlineSnapshot(
`
[AbiItem.InvalidAbiItemError: Failed to parse ABI item.
Details: parseAbiItem([
"struct Foo { string name; }"
])
See: https://oxlib.sh/api/AbiItem/from]
`,
)
})
test.each([
{
signature: ['function foo(string)'],
expected: {
type: 'function',
name: 'foo',
inputs: [{ type: 'string' }],
outputs: [],
stateMutability: 'nonpayable',
},
},
{
signature: [
'event Foo(address indexed from, address indexed to, uint256 amount)',
],
expected: {
type: 'event',
name: 'Foo',
inputs: [
{ type: 'address', name: 'from', indexed: true },
{ type: 'address', name: 'to', indexed: true },
{ type: 'uint256', name: 'amount' },
],
},
},
{
signature: ['fallback() external'],
expected: {
type: 'fallback',
stateMutability: 'nonpayable',
},
},
{
signature: ['fallback() external payable'],
expected: {
type: 'fallback',
stateMutability: 'payable',
},
},
])('parseAbiItem($signature)', ({ signature, expected }) => {
expect(parseAbiItem(signature)).toEqual(expected)
})
test.each([
{
signature: ['struct Foo { string bar; }', 'function foo(Foo)'],
expected: {
type: 'function',
name: 'foo',
inputs: [
{ type: 'tuple', components: [{ name: 'bar', type: 'string' }] },
],
outputs: [],
stateMutability: 'nonpayable',
},
},
])('parseAbiItem($signature)', ({ signature, expected }) => {
expect(parseAbiItem(signature)).toEqual(expected)
})
test('nested tuples', () => {
const formattedAbiItem =
'function stepChanges((uint256 characterID, uint64 newPosition, uint24 xp, uint24 epoch, uint8 hp, (int32 x, int32 y, uint8 hp, uint8 kind)[5] monsters, (uint8 monsterIndexPlus1, uint8 attackCardsUsed1, uint8 attackCardsUsed2, uint8 defenseCardsUsed1, uint8 defenseCardsUsed2) battle) stateChanges, uint256 action, bool revetOnInvalidMoves) pure returns ((uint256 characterID, uint64 newPosition, uint24 xp, uint24 epoch, uint8 hp, (int32 x, int32 y, uint8 hp, uint8 kind)[5] monsters, (uint8 monsterIndexPlus1, uint8 attackCardsUsed1, uint8 attackCardsUsed2, uint8 defenseCardsUsed1, uint8 defenseCardsUsed2) battle))'
expect(parseAbiItem(formattedAbiItem)).toMatchInlineSnapshot(
`
{
"inputs": [
{
"components": [
{
"name": "characterID",
"type": "uint256",
},
{
"name": "newPosition",
"type": "uint64",
},
{
"name": "xp",
"type": "uint24",
},
{
"name": "epoch",
"type": "uint24",
},
{
"name": "hp",
"type": "uint8",
},
{
"components": [
{
"name": "x",
"type": "int32",
},
{
"name": "y",
"type": "int32",
},
{
"name": "hp",
"type": "uint8",
},
{
"name": "kind",
"type": "uint8",
},
],
"name": "monsters",
"type": "tuple[5]",
},
{
"components": [
{
"name": "monsterIndexPlus1",
"type": "uint8",
},
{
"name": "attackCardsUsed1",
"type": "uint8",
},
{
"name": "attackCardsUsed2",
"type": "uint8",
},
{
"name": "defenseCardsUsed1",
"type": "uint8",
},
{
"name": "defenseCardsUsed2",
"type": "uint8",
},
],
"name": "battle",
"type": "tuple",
},
],
"name": "stateChanges",
"type": "tuple",
},
{
"name": "action",
"type": "uint256",
},
{
"name": "revetOnInvalidMoves",
"type": "bool",
},
],
"name": "stepChanges",
"outputs": [
{
"components": [
{
"name": "characterID",
"type": "uint256",
},
{
"name": "newPosition",
"type": "uint64",
},
{
"name": "xp",
"type": "uint24",
},
{
"name": "epoch",
"type": "uint24",
},
{
"name": "hp",
"type": "uint8",
},
{
"components": [
{
"name": "x",
"type": "int32",
},
{
"name": "y",
"type": "int32",
},
{
"name": "hp",
"type": "uint8",
},
{
"name": "kind",
"type": "uint8",
},
],
"name": "monsters",
"type": "tuple[5]",
},
{
"components": [
{
"name": "monsterIndexPlus1",
"type": "uint8",
},
{
"name": "attackCardsUsed1",
"type": "uint8",
},
{
"name": "attackCardsUsed2",
"type": "uint8",
},
{
"name": "defenseCardsUsed1",
"type": "uint8",
},
{
"name": "defenseCardsUsed2",
"type": "uint8",
},
],
"name": "battle",
"type": "tuple",
},
],
"type": "tuple",
},
],
"stateMutability": "pure",
"type": "function",
}
`,
)
})
import type { Abi } from 'abitype'
import type { Narrow } from 'abitype'
import type { Error, Filter } from './types.js'
import { InvalidAbiItemError } from './errors.js'
import { isStructSignature } from './runtime/signatures.js'
import { parseStructs } from './runtime/structs.js'
import { parseSignature } from './runtime/utils.js'
import type { Signature, Signatures } from './types/signatures.js'
import type { ParseStructs } from './types/structs.js'
import type { ParseSignature } from './types/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 type ParseAbiItem<
signature extends string | readonly string[] | readonly unknown[],
> =
| (signature extends string
? string extends signature
? Abi[number]
: signature extends Signature<signature> // Validate signature
? ParseSignature<signature>
: never
: never)
| (signature extends readonly string[]
? string[] extends signature
? Abi[number] // Return generic Abi item since type was no inferrable
: signature extends Signatures<signature> // Validate signature
? ParseStructs<signature> extends infer structs
? {
[key in keyof signature]: ParseSignature<
signature[key] extends string ? signature[key] : never,
structs
>
} extends infer mapped extends readonly unknown[]
? // Filter out `never` since those are structs
Filter<mapped, never>[0] extends infer result
? result extends undefined // convert `undefined` to `never` (e.g. `ParseAbiItem<['struct Foo { string name; }']>`)
? never
: result
: never
: never
: never
: never
: never)
/**
* 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 extends string | readonly string[] | readonly unknown[],
>(
signature: Narrow<signature> &
(
| (signature extends string
? string extends signature
? unknown
: Signature<signature>
: never)
| (signature extends readonly string[]
? signature extends readonly [] // empty array
? Error<'At least one signature required.'>
: string[] extends signature
? unknown
: Signatures<signature>
: never)
),
): ParseAbiItem<signature> {
let abiItem: ParseAbiItem<signature> | undefined
if (typeof signature === 'string')
abiItem = parseSignature(signature) as ParseAbiItem<signature>
else {
const structs = parseStructs(signature as readonly string[])
const length = signature.length as number
for (let i = 0; i < length; i++) {
const signature_ = (signature as readonly string[])[i]!
if (isStructSignature(signature_)) continue
abiItem = parseSignature(signature_, structs) as ParseAbiItem<signature>
break
}
}
if (!abiItem) throw new InvalidAbiItemError({ signature })
return abiItem as ParseAbiItem<signature>
}
import { expectTypeOf, test } from 'vp/test'
import type { AbiParameter } from 'abitype'
import type { ParseAbiParameter } from './parseAbiParameter.js'
import { parseAbiParameter } from './parseAbiParameter.js'
test('ParseAbiParameter', () => {
expectTypeOf<ParseAbiParameter<''>>().toEqualTypeOf<never>()
expectTypeOf<ParseAbiParameter<[]>>().toEqualTypeOf<never>()
expectTypeOf<
ParseAbiParameter<['struct Foo { string name; }']>
>().toEqualTypeOf<never>()
// string
expectTypeOf<ParseAbiParameter<'address from'>>().toEqualTypeOf<{
readonly type: 'address'
readonly name: 'from'
}>()
expectTypeOf<ParseAbiParameter<'address indexed from'>>().toEqualTypeOf<{
readonly type: 'address'
readonly name: 'from'
readonly indexed: true
}>()
expectTypeOf<ParseAbiParameter<'address calldata foo'>>().toEqualTypeOf<{
readonly type: 'address'
readonly name: 'foo'
}>()
// Array
expectTypeOf<
ParseAbiParameter<['Foo', 'struct Foo { string name; }']>
>().toEqualTypeOf<{
readonly type: 'tuple'
readonly components: readonly [
{
readonly name: 'name'
readonly type: 'string'
},
]
}>()
expectTypeOf<ParseAbiParameter<'(string bar) foo'>>().toEqualTypeOf<{
readonly type: 'tuple'
readonly components: readonly [
{
readonly type: 'string'
readonly name: 'bar'
},
]
readonly name: 'foo'
}>()
})
test('parseAbiParameter', () => {
// @ts-expect-error empty array not allowed
expectTypeOf(parseAbiParameter([])).toEqualTypeOf<never>()
expectTypeOf(
parseAbiParameter(['struct Foo { string name; }']),
).toEqualTypeOf<never>()
expectTypeOf(parseAbiParameter('(string)')).toEqualTypeOf<{
readonly type: 'tuple'
readonly components: readonly [{ readonly type: 'string' }]
}>()
const param: string = 'address'
expectTypeOf(parseAbiParameter(param)).toEqualTypeOf<AbiParameter>()
})
import { assertType, expect, test } from 'vp/test'
import { parseAbiParameter } from './parseAbiParameter.js'
test('parseAbiParameter', () => {
// @ts-expect-error invalid signature type
expect(() => parseAbiParameter('')).toThrowErrorMatchingInlineSnapshot(
`[HumanReadableAbi.InvalidParameterError: Invalid ABI parameter.]`,
)
// @ts-expect-error invalid signature type
expect(() => parseAbiParameter([])).toThrowErrorMatchingInlineSnapshot(
`
[AbiParameter.InvalidAbiParameterError: Failed to parse ABI parameter.
Details: parseAbiParameter([])
See: https://oxlib.sh/api/AbiParameter/from]
`,
)
expect(() =>
parseAbiParameter(['struct Foo { string name; }']),
).toThrowErrorMatchingInlineSnapshot(
`
[AbiParameter.InvalidAbiParameterError: Failed to parse ABI parameter.
Details: parseAbiParameter([
"struct Foo { string name; }"
])
See: https://oxlib.sh/api/AbiParameter/from]
`,
)
expect(() =>
parseAbiParameter(['struct Foo { string memory bar; }', 'Foo indexed foo']),
).toThrowErrorMatchingInlineSnapshot(
`
[HumanReadableAbi.InvalidModifierError: Invalid ABI parameter.
Modifier "memory" not allowed in "struct" type.
Details: string memory bar]
`,
)
expect([parseAbiParameter('address from')]).toMatchInlineSnapshot(`
[
{
"name": "from",
"type": "address",
},
]
`)
})
test.each([
{ signature: 'string', expected: { type: 'string' } },
{ signature: 'string foo', expected: { name: 'foo', type: 'string' } },
{
signature: 'string indexed foo',
expected: { name: 'foo', type: 'string', indexed: true },
},
{
signature: 'string calldata foo',
expected: { name: 'foo', type: 'string' },
},
{
signature: '(string)',
expected: { type: 'tuple', components: [{ type: 'string' }] },
},
{
signature: '(string foo)',
expected: { type: 'tuple', components: [{ name: 'foo', type: 'string' }] },
},
{
signature: '(string bar) foo',
expected: {
type: 'tuple',
name: 'foo',
components: [{ name: 'bar', type: 'string' }],
},
},
{
signature: '(string bar, string baz) foo',
expected: {
type: 'tuple',
name: 'foo',
components: [
{ name: 'bar', type: 'string' },
{ name: 'baz', type: 'string' },
],
},
},
{ signature: 'string[]', expected: { type: 'string[]' } },
])('parseAbiParameter($signature)', ({ signature, expected }) => {
expect(parseAbiParameter(signature)).toEqual(expected)
})
test.each([
{
signatures: ['struct Foo { string bar; }', 'Foo'],
expected: { type: 'tuple', components: [{ name: 'bar', type: 'string' }] },
},
{
signatures: ['struct Foo { string bar; }', 'Foo foo'],
expected: {
type: 'tuple',
name: 'foo',
components: [{ name: 'bar', type: 'string' }],
},
},
{
signatures: ['struct Foo { string bar; }', 'Foo indexed foo'],
expected: {
type: 'tuple',
name: 'foo',
indexed: true,
components: [{ name: 'bar', type: 'string' }],
},
},
])('parseAbiParameter($signatures)', ({ signatures, expected }) => {
expect(parseAbiParameter(signatures)).toEqual(expected)
})
test('nested tuple', () => {
const result = parseAbiParameter('((((string baz) bar)[1] foo) boo)')
expect(result).toMatchInlineSnapshot(`
{
"components": [
{
"components": [
{
"components": [
{
"components": [
{
"name": "baz",
"type": "string",
},
],
"name": "bar",
"type": "tuple",
},
],
"name": "foo",
"type": "tuple[1]",
},
],
"name": "boo",
"type": "tuple",
},
],
"type": "tuple",
}
`)
assertType<{
type: 'tuple'
components: readonly [
{
type: 'tuple'
components: readonly [
{
type: 'tuple[1]'
components: readonly [
{
type: 'tuple'
components: readonly [
{
type: 'string'
name: 'baz'
},
]
name: 'bar'
},
]
name: 'foo'
},
]
name: 'boo'
},
]
}>(result)
})
test('struct name collision', () => {
const result1 = parseAbiParameter(['struct Foo { string bar; }', 'Foo'])
expect(result1).toEqual({
type: 'tuple',
components: [{ name: 'bar', type: 'string' }],
})
const result2 = parseAbiParameter(['struct Foo { address bar; }', 'Foo'])
expect(result2).toEqual({
type: 'tuple',
components: [{ name: 'bar', type: 'address' }],
})
const result3 = parseAbiParameter([
'struct Foo { uint256 amount; address token; }',
'Foo',
])
expect(result3).toEqual({
type: 'tuple',
components: [
{ name: 'amount', type: 'uint256' },
{ name: 'token', type: 'address' },
],
})
})
import type { AbiParameter } from 'abitype'
import type { Narrow } from 'abitype'
import type { Error, Filter } from './types.js'
import { InvalidAbiParameterError } from './errors.js'
import { isStructSignature, modifiers } from './runtime/signatures.js'
import { parseStructs } from './runtime/structs.js'
import { parseAbiParameter as parseAbiParameter_ } from './runtime/utils.js'
import type { IsStructSignature, Modifier } from './types/signatures.js'
import type { ParseStructs } from './types/structs.js'
import type { ParseAbiParameter as ParseAbiParameter_ } from './types/utils.js'
/**
* Parses human-readable ABI parameter into `AbiParameter`.
*
* @param param - Human-readable ABI parameter
* @returns Parsed `AbiParameter`.
*/
export type ParseAbiParameter<
param extends string | readonly string[] | readonly unknown[],
> =
| (param extends string
? param extends ''
? never
: string extends param
? AbiParameter
: ParseAbiParameter_<param, { modifier: Modifier }>
: never)
| (param extends readonly string[]
? string[] extends param
? AbiParameter // Return generic AbiParameter item since type was no inferrable
: ParseStructs<param> extends infer structs
? {
[key in keyof param]: param[key] extends string
? IsStructSignature<param[key]> extends true
? never
: ParseAbiParameter_<
param[key],
{ modifier: Modifier; structs: structs }
>
: never
} extends infer mapped extends readonly unknown[]
? Filter<mapped, never>[0] extends infer result
? result extends undefined
? never
: result
: never
: never
: never
: never)
/**
* Parses human-readable ABI parameter into `AbiParameter`.
*
* @param param - Human-readable ABI parameter
* @returns Parsed `AbiParameter`.
*/
export function parseAbiParameter<
param extends string | readonly string[] | readonly unknown[],
>(
param: Narrow<param> &
(
| (param extends string
? param extends ''
? Error<'Empty string is not allowed.'>
: unknown
: never)
| (param extends readonly string[]
? param extends readonly [] // empty array
? Error<'At least one parameter required.'>
: string[] extends param
? unknown
: unknown // TODO: Validate param string
: never)
),
): ParseAbiParameter<param> {
let abiParameter: AbiParameter | undefined
if (typeof param === 'string')
abiParameter = parseAbiParameter_(param, {
modifiers,
}) as ParseAbiParameter<param>
else {
const structs = parseStructs(param as readonly string[])
const length = param.length as number
for (let i = 0; i < length; i++) {
const signature = (param as readonly string[])[i]!
if (isStructSignature(signature)) continue
abiParameter = parseAbiParameter_(signature, { modifiers, structs })
break
}
}
if (!abiParameter) throw new InvalidAbiParameterError({ param })
return abiParameter as ParseAbiParameter<param>
}
import { expectTypeOf, test } from 'vp/test'
import type { AbiParameter } from 'abitype'
import type { ParseAbiParameters } from './parseAbiParameters.js'
import { parseAbiParameters } from './parseAbiParameters.js'
test('ParseAbiParameters', () => {
expectTypeOf<ParseAbiParameters<''>>().toEqualTypeOf<never>()
expectTypeOf<ParseAbiParameters<[]>>().toEqualTypeOf<never>()
expectTypeOf<
ParseAbiParameters<['struct Foo { string name; }']>
>().toEqualTypeOf<never>()
// string
expectTypeOf<
ParseAbiParameters<'address from, address to, uint256 amount'>
>().toEqualTypeOf<
readonly [
{
readonly type: 'address'
readonly name: 'from'
},
{
readonly type: 'address'
readonly name: 'to'
},
{
readonly type: 'uint256'
readonly name: 'amount'
},
]
>()
expectTypeOf<
ParseAbiParameters<'address indexed from, address indexed to, uint256 indexed amount'>
>().toEqualTypeOf<
readonly [
{
readonly type: 'address'
readonly name: 'from'
readonly indexed: true
},
{
readonly type: 'address'
readonly name: 'to'
readonly indexed: true
},
{
readonly type: 'uint256'
readonly name: 'amount'
readonly indexed: true
},
]
>()
expectTypeOf<
ParseAbiParameters<'address calldata foo, address memory bar, uint256 storage baz'>
>().toEqualTypeOf<
readonly [
{
readonly type: 'address'
readonly name: 'foo'
},
{
readonly type: 'address'
readonly name: 'bar'
},
{
readonly type: 'uint256'
readonly name: 'baz'
},
]
>()
// Array
expectTypeOf<
ParseAbiParameters<['Foo, bytes32', 'struct Foo { string name; }']>
>().toEqualTypeOf<
readonly [
{
readonly type: 'tuple'
readonly components: readonly [
{
readonly name: 'name'
readonly type: 'string'
},
]
},
{ readonly type: 'bytes32' },
]
>()
})
test('parseAbiParameters', () => {
// @ts-expect-error empty array not allowed
expectTypeOf(parseAbiParameters([])).toEqualTypeOf<never>()
expectTypeOf(
parseAbiParameters(['struct Foo { string name; }']),
).toEqualTypeOf<never>()
expectTypeOf(parseAbiParameters('(string)')).toEqualTypeOf<
readonly [
{
readonly type: 'tuple'
readonly components: readonly [{ readonly type: 'string' }]
},
]
>()
const param: string = 'address, string'
expectTypeOf(parseAbiParameters(param)).toEqualTypeOf<
readonly AbiParameter[]
>()
expectTypeOf(parseAbiParameters(['(uint256 a),(uint256 b)'])).toEqualTypeOf<
readonly [
{
readonly type: 'tuple'
readonly components: readonly [
{
readonly type: 'uint256'
readonly name: 'a'
},
]
},
{
readonly type: 'tuple'
readonly components: readonly [
{
readonly type: 'uint256'
readonly name: 'b'
},
]
},
]
>()
expectTypeOf(
parseAbiParameters(['(uint256 a)', '(uint256 b)']),
).toEqualTypeOf<
readonly [
{
readonly type: 'tuple'
readonly components: readonly [
{
readonly type: 'uint256'
readonly name: 'a'
},
]
},
{
readonly type: 'tuple'
readonly components: readonly [
{
readonly type: 'uint256'
readonly name: 'b'
},
]
},
]
>()
})
import { expect, test } from 'vp/test'
import { parseAbiParameters } from './parseAbiParameters.js'
test('parseAbiParameters', () => {
// @ts-expect-error invalid signature type
expect(() => parseAbiParameters('')).toThrowErrorMatchingInlineSnapshot(
`
[AbiParameters.InvalidAbiParametersError: Failed to parse ABI parameters.
Details: parseAbiParameters("")
See: https://oxlib.sh/api/AbiParameters/from]
`,
)
// @ts-expect-error invalid signature type
expect(() => parseAbiParameters([])).toThrowErrorMatchingInlineSnapshot(
`
[AbiParameters.InvalidAbiParametersError: Failed to parse ABI parameters.
Details: parseAbiParameters([])
See: https://oxlib.sh/api/AbiParameters/from]
`,
)
expect(() =>
parseAbiParameters(['struct Foo { string name; }']),
).toThrowErrorMatchingInlineSnapshot(
`
[AbiParameters.InvalidAbiParametersError: Failed to parse ABI parameters.
Details: parseAbiParameters([
"struct Foo { string name; }"
])
See: https://oxlib.sh/api/AbiParameters/from]
`,
)
expect(parseAbiParameters('address from')).toMatchInlineSnapshot(`
[
{
"name": "from",
"type": "address",
},
]
`)
})
test.each([
{
signatures: 'string, string',
expected: [{ type: 'string' }, { type: 'string' }],
},
{
signatures: 'string foo, string bar',
expected: [
{ type: 'string', name: 'foo' },
{ type: 'string', name: 'bar' },
],
},
])('parseAbiParameters($signatures)', ({ signatures, expected }) => {
expect(parseAbiParameters(signatures)).toEqual(expected)
})
test.each([
{
signatures: ['struct Foo { string bar; }', 'Foo, string'],
expected: [
{ type: 'tuple', components: [{ name: 'bar', type: 'string' }] },
{ type: 'string' },
],
},
{
signatures: ['string foo, string bar'],
expected: [
{ name: 'foo', type: 'string' },
{ name: 'bar', type: 'string' },
],
},
])('parseAbiParameters($signatures)', ({ signatures, expected }) => {
expect(parseAbiParameters(signatures)).toEqual(expected)
})
import type { AbiParameter } from 'abitype'
import type { Narrow } from 'abitype'
import type { Error, Filter } from './types.js'
import { InvalidAbiParametersError } from './errors.js'
import { isStructSignature, modifiers } from './runtime/signatures.js'
import { parseStructs } from './runtime/structs.js'
import { splitParameters } from './runtime/utils.js'
import { parseAbiParameter as parseAbiParameter_ } from './runtime/utils.js'
import type { IsStructSignature, Modifier } from './types/signatures.js'
import type { ParseStructs } from './types/structs.js'
import type { SplitParameters } from './types/utils.js'
import type { ParseAbiParameters as ParseAbiParameters_ } from './types/utils.js'
/**
* Parses human-readable ABI parameters into `AbiParameter`s.
*
* @param params - Human-readable ABI parameters
* @returns Parsed `AbiParameter`s.
*/
export type ParseAbiParameters<
params extends string | readonly string[] | readonly unknown[],
> =
| (params extends string
? params extends ''
? never
: string extends params
? readonly AbiParameter[]
: ParseAbiParameters_<SplitParameters<params>, { modifier: Modifier }>
: never)
| (params extends readonly string[]
? string[] extends params
? AbiParameter // Return generic AbiParameter item since type was no inferrable
: ParseStructs<params> extends infer structs
? {
[key in keyof params]: params[key] extends string
? IsStructSignature<params[key]> extends true
? never
: ParseAbiParameters_<
SplitParameters<params[key]>,
{ modifier: Modifier; structs: structs }
>
: never
} extends infer mapped extends readonly unknown[]
? Filter<mapped, never> extends readonly [...infer content]
? content['length'] extends 0
? never
: DeepFlatten<content>
: never
: never
: never
: never)
/**
* Flatten all members of `T`.
*
* @param T - List of items to flatten
* @param Acc - The accumulator used while recursing
* @returns The flattened array
*/
type DeepFlatten<
T extends readonly unknown[],
Acc extends readonly unknown[] = readonly [],
> = T extends readonly [infer head, ...infer tail]
? tail extends undefined
? never
: head extends readonly unknown[]
? DeepFlatten<tail, readonly [...Acc, ...DeepFlatten<head>]>
: DeepFlatten<tail, readonly [...Acc, head]>
: Acc
/**
* Parses human-readable ABI parameters into `AbiParameter`s.
*
* @param params - Human-readable ABI parameters
* @returns Parsed `AbiParameter`s.
*/
export function parseAbiParameters<
params extends string | readonly string[] | readonly unknown[],
>(
params: Narrow<params> &
(
| (params extends string
? params extends ''
? Error<'Empty string is not allowed.'>
: unknown
: never)
| (params extends readonly string[]
? params extends readonly [] // empty array
? Error<'At least one parameter required.'>
: string[] extends params
? unknown
: unknown // TODO: Validate param string
: never)
),
): ParseAbiParameters<params> {
const abiParameters: AbiParameter[] = []
if (typeof params === 'string') {
const parameters = splitParameters(params)
const length = parameters.length
for (let i = 0; i < length; i++) {
abiParameters.push(parseAbiParameter_(parameters[i]!, { modifiers }))
}
} else {
const structs = parseStructs(params as readonly string[])
const length = params.length as number
for (let i = 0; i < length; i++) {
const signature = (params as readonly string[])[i]!
if (isStructSignature(signature)) continue
const parameters = splitParameters(signature)
const length = parameters.length
for (let k = 0; k < length; k++) {
abiParameters.push(
parseAbiParameter_(parameters[k]!, { modifiers, structs }),
)
}
}
}
if (abiParameters.length === 0)
throw new InvalidAbiParametersError({ params })
return abiParameters as ParseAbiParameters<params>
}
/** @internal */
export function execTyped<type>(regex: RegExp, string: string) {
const match = regex.exec(string)
return match?.groups as type | undefined
}
/** @internal */
export const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/
/** @internal */
export const integerRegex =
/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/
/** @internal */
export const isTupleRegex = /^\(.+?\).*?$/
import type { AbiItemType, AbiParameter } from 'abitype'
import type { StructLookup } from '../types/structs.js'
/**
* Gets the parameter cache key namespaced by `type` and `structs`. This prevents
* parameters from being accessible to types that don't allow them (e.g.
* `string indexed foo` not allowed outside of `type: 'event'`) and ensures
* different struct definitions with the same name are cached separately.
* @param param ABI parameter string
* @param type ABI parameter type
* @param structs Struct definitions to include in cache key
* @returns Cache key for `parameterCache`.
*/
export function getParameterCacheKey(
param: string,
type?: AbiItemType | 'struct',
structs?: StructLookup,
) {
let structKey = ''
if (structs)
for (const struct of Object.entries(structs)) {
if (!struct) continue
let propertyKey = ''
for (const property of struct[1]) {
propertyKey += `[${property.type}${property.name ? `:${property.name}` : ''}]`
}
structKey += `(${struct[0]}{${propertyKey}})`
}
if (type) return `${type}:${param}${structKey}`
return `${param}${structKey}`
}
/**
* Basic cache seeded with common ABI parameter strings.
*
* **Note: When seeding more parameters, make sure you benchmark performance. The current number is the ideal balance between performance and having an already existing cache.**
*/
export const parameterCache = new Map<
string,
AbiParameter & { indexed?: boolean }
>([
// Unnamed
['address', { type: 'address' }],
['bool', { type: 'bool' }],
['bytes', { type: 'bytes' }],
['bytes32', { type: 'bytes32' }],
['int', { type: 'int256' }],
['int256', { type: 'int256' }],
['string', { type: 'string' }],
['uint', { type: 'uint256' }],
['uint8', { type: 'uint8' }],
['uint16', { type: 'uint16' }],
['uint24', { type: 'uint24' }],
['uint32', { type: 'uint32' }],
['uint64', { type: 'uint64' }],
['uint96', { type: 'uint96' }],
['uint112', { type: 'uint112' }],
['uint160', { type: 'uint160' }],
['uint192', { type: 'uint192' }],
['uint256', { type: 'uint256' }],
// Named
['address owner', { type: 'address', name: 'owner' }],
['address to', { type: 'address', name: 'to' }],
['bool approved', { type: 'bool', name: 'approved' }],
['bytes _data', { type: 'bytes', name: '_data' }],
['bytes data', { type: 'bytes', name: 'data' }],
['bytes signature', { type: 'bytes', name: 'signature' }],
['bytes32 hash', { type: 'bytes32', name: 'hash' }],
['bytes32 r', { type: 'bytes32', name: 'r' }],
['bytes32 root', { type: 'bytes32', name: 'root' }],
['bytes32 s', { type: 'bytes32', name: 's' }],
['string name', { type: 'string', name: 'name' }],
['string symbol', { type: 'string', name: 'symbol' }],
['string tokenURI', { type: 'string', name: 'tokenURI' }],
['uint tokenId', { type: 'uint256', name: 'tokenId' }],
['uint8 v', { type: 'uint8', name: 'v' }],
['uint256 balance', { type: 'uint256', name: 'balance' }],
['uint256 tokenId', { type: 'uint256', name: 'tokenId' }],
['uint256 value', { type: 'uint256', name: 'value' }],
// Indexed
[
'event:address indexed from',
{ type: 'address', name: 'from', indexed: true },
],
['event:address indexed to', { type: 'address', name: 'to', indexed: true }],
[
'event:uint indexed tokenId',
{ type: 'uint256', name: 'tokenId', indexed: true },
],
[
'event:uint256 indexed tokenId',
{ type: 'uint256', name: 'tokenId', indexed: true },
],
])
import { expect, test } from 'vp/test'
import {
execConstructorSignature,
execErrorSignature,
execEventSignature,
execFunctionSignature,
execStructSignature,
isConstructorSignature,
isErrorSignature,
isEventSignature,
isFallbackSignature,
isFunctionSignature,
isReceiveSignature,
isStructSignature,
} from './signatures.js'
test('isErrorSignature', () => {
expect(isErrorSignature('error Name(string)')).toMatchInlineSnapshot('true')
expect(isErrorSignature('error $(string)')).toMatchInlineSnapshot('true')
expect(isErrorSignature('error $_a9(string)')).toMatchInlineSnapshot('true')
expect(isErrorSignature('error _(string)')).toMatchInlineSnapshot('true')
expect(isErrorSignature('error abc$_9(string)')).toMatchInlineSnapshot('true')
expect(isErrorSignature('function name(string)')).toMatchInlineSnapshot(
'false',
)
expect(isErrorSignature('error 9abc(string)')).toMatchInlineSnapshot('false')
})
test('execErrorSignature', () => {
expect(execErrorSignature('error Name(string)')).toMatchInlineSnapshot(`
{
"name": "Name",
"parameters": "string",
}
`)
expect(execErrorSignature('function name(string)')).toMatchInlineSnapshot(
'undefined',
)
})
test('isEventSignature', () => {
expect(isEventSignature('event Name(string)')).toMatchInlineSnapshot('true')
expect(isEventSignature('event $(string)')).toMatchInlineSnapshot('true')
expect(isEventSignature('event $_a9(string)')).toMatchInlineSnapshot('true')
expect(isEventSignature('event _(string)')).toMatchInlineSnapshot('true')
expect(isEventSignature('event abc$_9(string)')).toMatchInlineSnapshot('true')
expect(isEventSignature('function name(string)')).toMatchInlineSnapshot(
'false',
)
expect(isEventSignature('event 9abc(string)')).toMatchInlineSnapshot('false')
})
test('execEventSignature', () => {
expect(execEventSignature('event Name(string)')).toMatchInlineSnapshot(`
{
"name": "Name",
"parameters": "string",
}
`)
expect(execEventSignature('event Name(string indexed foo)'))
.toMatchInlineSnapshot(`
{
"name": "Name",
"parameters": "string indexed foo",
}
`)
expect(execEventSignature('function name(string)')).toMatchInlineSnapshot(
'undefined',
)
})
test('isFunctionSignature', () => {
expect(isFunctionSignature('function name(string)')).toMatchInlineSnapshot(
'true',
)
expect(
isFunctionSignature('function name(string) returns (uint256)'),
).toMatchInlineSnapshot('true')
expect(
isFunctionSignature('function name(string) returns(uint256)'),
).toMatchInlineSnapshot('true')
expect(isFunctionSignature('function $(string)')).toMatchInlineSnapshot(
'true',
)
expect(isFunctionSignature('function $_a9(string)')).toMatchInlineSnapshot(
'true',
)
expect(isFunctionSignature('function _(string)')).toMatchInlineSnapshot(
'true',
)
expect(isFunctionSignature('function abc$_9(string)')).toMatchInlineSnapshot(
'true',
)
expect(isFunctionSignature('struct Name { string; }')).toMatchInlineSnapshot(
'false',
)
expect(isFunctionSignature('function 9abc(string)')).toMatchInlineSnapshot(
'false',
)
})
test('execFunctionSignature', () => {
expect(execFunctionSignature('function name(string)')).toMatchInlineSnapshot(`
{
"name": "name",
"parameters": "string",
"returns": undefined,
"scope": undefined,
"stateMutability": undefined,
}
`)
expect(execFunctionSignature('function foo() view returns (uint256)'))
.toMatchInlineSnapshot(`
{
"name": "foo",
"parameters": "",
"returns": "uint256",
"scope": undefined,
"stateMutability": "view",
}
`)
expect(execFunctionSignature('function foo() view returns(uint256)'))
.toMatchInlineSnapshot(`
{
"name": "foo",
"parameters": "",
"returns": "uint256",
"scope": undefined,
"stateMutability": "view",
}
`)
expect(
execFunctionSignature('struct Name { string; }'),
).toMatchInlineSnapshot('undefined')
})
test('isStructSignature', () => {
expect(isStructSignature('struct Name { string; }')).toMatchInlineSnapshot(
'true',
)
expect(isStructSignature('struct $ { string; }')).toMatchInlineSnapshot(
'true',
)
expect(isStructSignature('struct $_a9 { string; }')).toMatchInlineSnapshot(
'true',
)
expect(isStructSignature('struct _ { string; }')).toMatchInlineSnapshot(
'true',
)
expect(isStructSignature('struct abc$_9 { string; }')).toMatchInlineSnapshot(
'true',
)
expect(isStructSignature('function name(string)')).toMatchInlineSnapshot(
'false',
)
expect(isStructSignature('struct 9abc { string; }')).toMatchInlineSnapshot(
'false',
)
})
test('execStructSignature', () => {
expect(execStructSignature('struct Name { string; }')).toMatchInlineSnapshot(`
{
"name": "Name",
"properties": " string; ",
}
`)
expect(execStructSignature('function name(string)')).toMatchInlineSnapshot(
'undefined',
)
})
test('isConstructorSignature', () => {
expect(isConstructorSignature('constructor(string)')).toMatchInlineSnapshot(
'true',
)
expect(isConstructorSignature('function name(string)')).toMatchInlineSnapshot(
'false',
)
})
test('execConstructorSignature', () => {
expect(execConstructorSignature('constructor(string)')).toMatchInlineSnapshot(
`
{
"parameters": "string",
"stateMutability": undefined,
}
`,
)
expect(
execConstructorSignature('constructor(string) payable'),
).toMatchInlineSnapshot(
`
{
"parameters": "string",
"stateMutability": "payable",
}
`,
)
expect(
execConstructorSignature('constructor(string) '),
).toMatchInlineSnapshot('undefined')
expect(
execConstructorSignature('constructor(string) external'),
).toMatchInlineSnapshot('undefined')
expect(
execConstructorSignature('constructor(string)external'),
).toMatchInlineSnapshot('undefined')
expect(
execConstructorSignature('function name(string)'),
).toMatchInlineSnapshot('undefined')
})
test('isFallbackSignature', () => {
expect(isFallbackSignature('fallback() external')).toMatchInlineSnapshot(
'true',
)
expect(
isFallbackSignature('fallback() external payable'),
).toMatchInlineSnapshot('true')
expect(isFallbackSignature('function name(string)')).toMatchInlineSnapshot(
'false',
)
})
test('isReceiveSignature', () => {
expect(
isReceiveSignature('receive() external payable'),
).toMatchInlineSnapshot('true')
expect(isReceiveSignature('function name(string)')).toMatchInlineSnapshot(
'false',
)
})
import type { AbiStateMutability } from 'abitype'
import { execTyped } from '../regex.js'
import type {
EventModifier,
FunctionModifier,
Modifier,
} from '../types/signatures.js'
// https://regexr.com/7gmok
const errorSignatureRegex =
/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/
export function isErrorSignature(signature: string) {
return errorSignatureRegex.test(signature)
}
export function execErrorSignature(signature: string) {
return execTyped<{ name: string; parameters: string }>(
errorSignatureRegex,
signature,
)
}
// https://regexr.com/7gmoq
const eventSignatureRegex =
/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/
export function isEventSignature(signature: string) {
return eventSignatureRegex.test(signature)
}
export function execEventSignature(signature: string) {
return execTyped<{ name: string; parameters: string }>(
eventSignatureRegex,
signature,
)
}
// https://regexr.com/7gmot
const functionSignatureRegex =
/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/
export function isFunctionSignature(signature: string) {
return functionSignatureRegex.test(signature)
}
export function execFunctionSignature(signature: string) {
return execTyped<{
name: string
parameters: string
stateMutability?: AbiStateMutability
returns?: string
}>(functionSignatureRegex, signature)
}
// https://regexr.com/7gmp3
const structSignatureRegex =
/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/
export function isStructSignature(signature: string) {
return structSignatureRegex.test(signature)
}
export function execStructSignature(signature: string) {
return execTyped<{ name: string; properties: string }>(
structSignatureRegex,
signature,
)
}
// https://regexr.com/78u01
const constructorSignatureRegex =
/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/
export function isConstructorSignature(signature: string) {
return constructorSignatureRegex.test(signature)
}
export function execConstructorSignature(signature: string) {
return execTyped<{
parameters: string
stateMutability?: Extract<AbiStateMutability, 'payable'>
}>(constructorSignatureRegex, signature)
}
// https://regexr.com/7srtn
const fallbackSignatureRegex =
/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/
export function isFallbackSignature(signature: string) {
return fallbackSignatureRegex.test(signature)
}
export function execFallbackSignature(signature: string) {
return execTyped<{
parameters: string
stateMutability?: Extract<AbiStateMutability, 'payable'>
}>(fallbackSignatureRegex, signature)
}
// https://regexr.com/78u1k
const receiveSignatureRegex = /^receive\(\) external payable$/
export function isReceiveSignature(signature: string) {
return receiveSignatureRegex.test(signature)
}
export const modifiers = new Set<Modifier>([
'memory',
'indexed',
'storage',
'calldata',
])
export const eventModifiers = new Set<EventModifier>(['indexed'])
export const functionModifiers = new Set<FunctionModifier>([
'calldata',
'memory',
'storage',
])
import { expect, test } from 'vp/test'
import { parseStructs } from './structs.js'
test('no structs', () => {
expect(parseStructs([])).toMatchInlineSnapshot('{}')
expect(parseStructs([''])).toMatchInlineSnapshot('{}')
expect(parseStructs(['function foo()', 'event Foo()'])).toMatchInlineSnapshot(
'{}',
)
expect(
parseStructs(['function addPerson(Person person)']),
).toMatchInlineSnapshot('{}')
})
test('parses basic structs', () => {
expect(
parseStructs([
'struct Foo { string bar; address baz; }',
'struct FulfillmentComponent { uint256 orderIndex; uint256 itemIndex; }',
]),
).toMatchInlineSnapshot(`
{
"Foo": [
{
"name": "bar",
"type": "string",
},
{
"name": "baz",
"type": "address",
},
],
"FulfillmentComponent": [
{
"name": "orderIndex",
"type": "uint256",
},
{
"name": "itemIndex",
"type": "uint256",
},
],
}
`)
})
test('parses valid names', () => {
expect(
parseStructs([
'struct $ { string; }',
'struct $_a9 { string; }',
'struct _ { string; }',
'struct abc$_9 { string; }',
]),
).toMatchInlineSnapshot(`
{
"$": [
{
"type": "string",
},
],
"$_a9": [
{
"type": "string",
},
],
"_": [
{
"type": "string",
},
],
"abc$_9": [
{
"type": "string",
},
],
}
`)
})
test('parses and resolves nested structs', () => {
expect(
parseStructs([
'struct Fulfillment { FulfillmentComponent[] offerComponents; FulfillmentComponent[] considerationComponents; }',
'struct FulfillmentComponent { uint256 orderIndex; uint256 itemIndex; }',
'struct Foo { Fulfillment fulfillment; }',
]),
).toMatchInlineSnapshot(`
{
"Foo": [
{
"components": [
{
"components": [
{
"name": "orderIndex",
"type": "uint256",
},
{
"name": "itemIndex",
"type": "uint256",
},
],
"name": "offerComponents",
"type": "tuple[]",
},
{
"components": [
{
"name": "orderIndex",
"type": "uint256",
},
{
"name": "itemIndex",
"type": "uint256",
},
],
"name": "considerationComponents",
"type": "tuple[]",
},
],
"name": "fulfillment",
"type": "tuple",
},
],
"Fulfillment": [
{
"components": [
{
"name": "orderIndex",
"type": "uint256",
},
{
"name": "itemIndex",
"type": "uint256",
},
],
"name": "offerComponents",
"type": "tuple[]",
},
{
"components": [
{
"name": "orderIndex",
"type": "uint256",
},
{
"name": "itemIndex",
"type": "uint256",
},
],
"name": "considerationComponents",
"type": "tuple[]",
},
],
"FulfillmentComponent": [
{
"name": "orderIndex",
"type": "uint256",
},
{
"name": "itemIndex",
"type": "uint256",
},
],
}
`)
})
test('no properties', () => {
expect(() =>
parseStructs(['struct Foo {}']),
).toThrowErrorMatchingInlineSnapshot(
`
[Abi.InvalidStructSignatureError: Invalid struct signature.
No properties exist.
Details: struct Foo {}]
`,
)
})
test('struct does not exist when resolving', () => {
expect(() => parseStructs(['struct Foo { Bar bar; }']))
.toThrowErrorMatchingInlineSnapshot(`
[HumanReadableAbi.UnknownTypeError: Unknown type.
Type "Bar" is not a valid ABI type. Perhaps you forgot to include a struct signature?]
`)
})
test('throws if recursive structs are detected', () => {
expect(() =>
parseStructs(['struct Foo { Bar bar; }', 'struct Bar { Foo foo; }']),
).toThrowErrorMatchingInlineSnapshot(
`
[Abi.CircularReferenceError: Circular reference detected.
Struct "Bar" is a circular reference.]
`,
)
})
test.todo('throws if property is missing semicolon', () => {
expect(() =>
parseStructs(['struct Foo { string bar; address baz }']),
).toThrowErrorMatchingInlineSnapshot()
})
import type { AbiParameter } from 'abitype'
import { execTyped, isTupleRegex } from '../regex.js'
import { UnknownTypeError } from '../errors.js'
import { InvalidAbiTypeParameterError } from '../errors.js'
import {
InvalidSignatureError,
InvalidStructSignatureError,
} from '../errors.js'
import { CircularReferenceError } from '../errors.js'
import type { StructLookup } from '../types/structs.js'
import { execStructSignature, isStructSignature } from './signatures.js'
import { isSolidityType, parseAbiParameter } from './utils.js'
export function parseStructs(signatures: readonly string[]) {
// Create "shallow" version of each struct (and filter out non-structs or invalid structs)
const shallowStructs: StructLookup = {}
const signaturesLength = signatures.length
for (let i = 0; i < signaturesLength; i++) {
const signature = signatures[i]!
if (!isStructSignature(signature)) continue
const match = execStructSignature(signature)
if (!match) throw new InvalidSignatureError({ signature, type: 'struct' })
const properties = match.properties.split(';')
const components: AbiParameter[] = []
const propertiesLength = properties.length
for (let k = 0; k < propertiesLength; k++) {
const property = properties[k]!
const trimmed = property.trim()
if (!trimmed) continue
const abiParameter = parseAbiParameter(trimmed, {
type: 'struct',
})
components.push(abiParameter)
}
if (!components.length) throw new InvalidStructSignatureError({ signature })
shallowStructs[match.name] = components
}
// Resolve nested structs inside each parameter
const resolvedStructs: StructLookup = {}
const entries = Object.entries(shallowStructs)
const entriesLength = entries.length
for (let i = 0; i < entriesLength; i++) {
const [name, parameters] = entries[i]!
resolvedStructs[name] = resolveStructs(parameters, shallowStructs)
}
return resolvedStructs
}
const typeWithoutTupleRegex =
/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/
function resolveStructs(
abiParameters: readonly (AbiParameter & { indexed?: true })[] = [],
structs: StructLookup = {},
ancestors = new Set<string>(),
) {
const components: AbiParameter[] = []
const length = abiParameters.length
for (let i = 0; i < length; i++) {
const abiParameter = abiParameters[i]!
const isTuple = isTupleRegex.test(abiParameter.type)
if (isTuple) components.push(abiParameter)
else {
const match = execTyped<{ array?: string; type: string }>(
typeWithoutTupleRegex,
abiParameter.type,
)
if (!match?.type) throw new InvalidAbiTypeParameterError({ abiParameter })
const { array, type } = match
if (type in structs) {
if (ancestors.has(type)) throw new CircularReferenceError({ type })
components.push({
...abiParameter,
type: `tuple${array ?? ''}`,
components: resolveStructs(
structs[type],
structs,
new Set([...ancestors, type]),
),
})
} else {
if (isSolidityType(type)) components.push(abiParameter)
else throw new UnknownTypeError({ type })
}
}
}
return components
}
import { expect, test } from 'vp/test'
import { functionModifiers } from './signatures.js'
import {
isSolidityKeyword,
isSolidityType,
isValidDataLocation,
parseAbiParameter,
parseConstructorSignature,
parseErrorSignature,
parseEventSignature,
parseFallbackSignature,
parseFunctionSignature,
parseSignature,
splitParameters,
} from './utils.js'
const baseFunctionExpected = {
name: 'foo',
type: 'function',
inputs: [],
outputs: [],
stateMutability: 'nonpayable',
}
const baseEventExpected = {
name: 'Foo',
type: 'event',
inputs: [],
}
test.each([
{
signature: 'function foo()',
expected: baseFunctionExpected,
},
{
signature: 'function foo(string)',
expected: {
...baseFunctionExpected,
inputs: [{ type: 'string' }],
},
},
{
signature: 'function foo(string) view',
expected: {
...baseFunctionExpected,
inputs: [{ type: 'string' }],
stateMutability: 'view',
},
},
{
signature: 'function foo(string) public view',
expected: {
...baseFunctionExpected,
inputs: [{ type: 'string' }],
stateMutability: 'view',
},
},
{
signature: 'function foo(address payable to) external',
expected: {
...baseFunctionExpected,
inputs: [{ type: 'address', name: 'to' }],
stateMutability: 'nonpayable',
},
},
{
signature: 'function foo(string) public view returns (string)',
expected: {
...baseFunctionExpected,
inputs: [{ type: 'string' }],
outputs: [{ type: 'string' }],
stateMutability: 'view',
},
},
{
signature: 'event Foo()',
expected: baseEventExpected,
},
{
signature: 'event Foo(string indexed)',
expected: {
...baseEventExpected,
inputs: [{ type: 'string', indexed: true }],
},
},
{
signature: 'event Foo(string indexed foo)',
expected: {
...baseEventExpected,
inputs: [{ type: 'string', indexed: true, name: 'foo' }],
},
},
{
signature: 'error Foo(string foo)',
expected: {
name: 'Foo',
type: 'error',
inputs: [{ type: 'string', name: 'foo' }],
},
},
{
signature: 'receive() external payable',
expected: {
type: 'receive',
stateMutability: 'payable',
},
},
{
signature: 'fallback() external payable',
expected: {
type: 'fallback',
stateMutability: 'payable',
},
},
{
signature: 'fallback() external',
expected: {
type: 'fallback',
stateMutability: 'nonpayable',
},
},
])('parseSignature($signature)', ({ signature, expected }) => {
expect(parseSignature(signature)).toEqual(expected)
})
test('invalid signature', () => {
expect(() => parseSignature('')).toThrowErrorMatchingInlineSnapshot(
`[Abi.UnknownSignatureError: Unknown signature.]`,
)
expect(() =>
parseSignature('method foo(string) (address)'),
).toThrowErrorMatchingInlineSnapshot(
`
[Abi.UnknownSignatureError: Unknown signature.
Details: method foo(string) (address)]
`,
)
expect(() =>
parseSignature('error Foo(string memory foo)'),
).toThrowErrorMatchingInlineSnapshot(
`
[HumanReadableAbi.InvalidModifierError: Invalid ABI parameter.
Modifier "memory" not allowed in "error" type.
Details: string memory foo]
`,
)
expect(() =>
parseSignature('event Foo(string memory foo)'),
).toThrowErrorMatchingInlineSnapshot(
`
[HumanReadableAbi.InvalidModifierError: Invalid ABI parameter.
Modifier "memory" not allowed in "event" type.
Details: string memory foo]
`,
)
expect(() =>
parseSignature('function 9abc()'),
).toThrowErrorMatchingInlineSnapshot(
`
[Abi.UnknownSignatureError: Unknown signature.
Details: function 9abc()]
`,
)
expect(() =>
parseFunctionSignature('function foo() invalid'),
).toThrowErrorMatchingInlineSnapshot(
`
[Abi.InvalidSignatureError: Invalid function signature.
Details: function foo() invalid]
`,
)
expect(() =>
parseEventSignature('event Foo(string memory foo) invalid'),
).toThrowErrorMatchingInlineSnapshot(
`
[Abi.InvalidSignatureError: Invalid event signature.
Details: event Foo(string memory foo) invalid]
`,
)
expect(() => {
parseErrorSignature('error Foo(string memory foo) invalid')
}).toThrowErrorMatchingInlineSnapshot(
`
[Abi.InvalidSignatureError: Invalid error signature.
Details: error Foo(string memory foo) invalid]
`,
)
expect(() => {
parseConstructorSignature('constructor() invalid')
}).toThrowErrorMatchingInlineSnapshot(
`
[Abi.InvalidSignatureError: Invalid constructor signature.
Details: constructor() invalid]
`,
)
expect(() => {
parseFallbackSignature('fallback() external invalid')
}).toThrowErrorMatchingInlineSnapshot(
`
[Abi.InvalidSignatureError: Invalid fallback signature.
Details: fallback() external invalid]
`,
)
})
test('empty string', () => {
expect(() => parseAbiParameter('')).toThrowErrorMatchingInlineSnapshot(
`[HumanReadableAbi.InvalidParameterError: Invalid ABI parameter.]`,
)
expect(() => parseAbiParameter('foo ,')).toThrowErrorMatchingInlineSnapshot(
`
[HumanReadableAbi.InvalidParameterError: Invalid ABI parameter.
Details: foo ,]
`,
)
})
test('Invalid solidity type', () => {
expect(() => parseAbiParameter('strings'))
.toThrowErrorMatchingInlineSnapshot(`
[HumanReadableAbi.UnknownSolidityTypeError: Unknown type.
Type "strings" is not a valid ABI type.]
`)
})
test('Invalid solidity type in tuple', () => {
expect(() => parseAbiParameter('(strings)'))
.toThrowErrorMatchingInlineSnapshot(`
[HumanReadableAbi.UnknownSolidityTypeError: Unknown type.
Type "strings" is not a valid ABI type.]
`)
})
test('Invalid solidity type in nested tuple', () => {
expect(() => parseAbiParameter('((strings))'))
.toThrowErrorMatchingInlineSnapshot(`
[HumanReadableAbi.UnknownSolidityTypeError: Unknown type.
Type "strings" is not a valid ABI type.]
`)
})
test('Struct type without context', () => {
expect(() => parseAbiParameter('Demo demo'))
.toThrowErrorMatchingInlineSnapshot(`
[HumanReadableAbi.UnknownSolidityTypeError: Unknown type.
Type "Demo" is not a valid ABI type.]
`)
})
test('Struct type with context', () => {
expect(parseAbiParameter('Demo demo', { type: 'struct' })).toEqual({
type: 'Demo',
name: 'demo',
})
})
test('indexed not allowed', () => {
expect(() =>
parseAbiParameter('string indexed foo'),
).toThrowErrorMatchingInlineSnapshot(
`
[HumanReadableAbi.InvalidModifierError: Invalid ABI parameter.
Modifier "indexed" not allowed.
Details: string indexed foo]
`,
)
})
test('modifier not allowed', () => {
expect(() =>
parseAbiParameter('uint256 calldata foo'),
).toThrowErrorMatchingInlineSnapshot(
`
[HumanReadableAbi.InvalidModifierError: Invalid ABI parameter.
Modifier "calldata" not allowed.
Details: uint256 calldata foo]
`,
)
})
test('valid name', () => {
expect(parseAbiParameter('uint256 $')).toEqual({
type: 'uint256',
name: '$',
})
expect(parseAbiParameter('uint256 $_a9')).toEqual({
type: 'uint256',
name: '$_a9',
})
expect(parseAbiParameter('uint256 _')).toEqual({
type: 'uint256',
name: '_',
})
expect(parseAbiParameter('uint256 abc$_9')).toEqual({
type: 'uint256',
name: 'abc$_9',
})
})
test('invalid name', () => {
expect(() =>
parseAbiParameter('uint256 address'),
).toThrowErrorMatchingInlineSnapshot(
`
[HumanReadableAbi.SolidityProtectedKeywordError: Invalid ABI parameter.
"address" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html
Details: uint256 address]
`,
)
expect(() =>
parseAbiParameter('uint256 9abc'),
).toThrowErrorMatchingInlineSnapshot(
`
[HumanReadableAbi.InvalidParameterError: Invalid ABI parameter.
Details: uint256 9abc]
`,
)
})
test('invalid data location', () => {
expect(() =>
parseAbiParameter('uint256 memory foo', { modifiers: functionModifiers }),
).toThrowErrorMatchingInlineSnapshot(
`
[HumanReadableAbi.InvalidFunctionModifierError: Invalid ABI parameter.
Modifier "memory" not allowed.
Data location can only be specified for array, struct, or mapping types, but "memory" was given.
Details: uint256 memory foo]
`,
)
})
test('valid data location', () => {
expect(
parseAbiParameter('uint256[] memory foo', { modifiers: functionModifiers }),
).toMatchInlineSnapshot(`
{
"name": "foo",
"type": "uint256[]",
}
`)
expect(
parseAbiParameter('string memory foo', { modifiers: functionModifiers }),
).toMatchInlineSnapshot(`
{
"name": "foo",
"type": "string",
}
`)
expect(
parseAbiParameter('Foo memory foo', {
modifiers: functionModifiers,
structs: { Foo: [{ type: 'string' }] },
}),
).toMatchInlineSnapshot(`
{
"components": [
{
"type": "string",
},
],
"name": "foo",
"type": "tuple",
}
`)
})
test.each(['address', 'bool', 'bytes32', 'int256', 'string', 'uint256'])(
'parseAbiParameter($type)',
(type) => {
expect(parseAbiParameter(type)).toEqual({ type })
},
)
test.each([
'address indexed',
'bool indexed',
'bytes32 indexed',
'int256 indexed',
'string indexed',
'uint256 indexed',
])("parseAbiParameter($type, { modifiers: 'indexed' })", (type) => {
expect(
parseAbiParameter(type, {
modifiers: new Set(['indexed']),
}),
).toEqual({
type: type.replace(' indexed', ''),
indexed: true,
})
})
test.each([
'address[] calldata',
'bool[] calldata',
'bytes32[] calldata',
'int256[] calldata',
'string calldata',
'uint256[] calldata',
'bytes calldata',
])(
"parseAbiParameter($type, { modifiers: ['calldata', 'memory'] })",
(type) => {
expect(
parseAbiParameter(type, {
modifiers: new Set(['calldata', 'memory']),
}),
).toEqual({
type: type.replace(/\scalldata|memory/, ''),
})
},
)
test.each([
'address foo',
'bool foo',
'bytes32 foo',
'int256 foo',
'string foo',
'uint256 foo',
])('parseAbiParameter($type)', (type) => {
expect(parseAbiParameter(type)).toEqual({
name: 'foo',
type: type.replace(' foo', ''),
})
})
test('dynamic integer', () => {
expect(parseAbiParameter('int')).toMatchInlineSnapshot(`
{
"type": "int256",
}
`)
expect(parseAbiParameter('uint')).toMatchInlineSnapshot(`
{
"type": "uint256",
}
`)
})
test('structs', () => {
expect(
parseAbiParameter('Foo foo', { structs: { Foo: [{ type: 'string' }] } }),
).toMatchInlineSnapshot(`
{
"components": [
{
"type": "string",
},
],
"name": "foo",
"type": "tuple",
}
`)
expect(
parseAbiParameter('Foo[] foo', { structs: { Foo: [{ type: 'string' }] } }),
).toMatchInlineSnapshot(`
{
"components": [
{
"type": "string",
},
],
"name": "foo",
"type": "tuple[]",
}
`)
})
test('inline tuples', () => {
expect(parseAbiParameter('(string) foo')).toMatchInlineSnapshot(`
{
"components": [
{
"type": "string",
},
],
"name": "foo",
"type": "tuple",
}
`)
expect(parseAbiParameter('(string, string) foo')).toMatchInlineSnapshot(`
{
"components": [
{
"type": "string",
},
{
"type": "string",
},
],
"name": "foo",
"type": "tuple",
}
`)
expect(
parseAbiParameter('(Foo, address bar) foo', {
structs: { Foo: [{ type: 'string' }] },
}),
).toMatchInlineSnapshot(`
{
"components": [
{
"components": [
{
"type": "string",
},
],
"type": "tuple",
},
{
"name": "bar",
"type": "address",
},
],
"name": "foo",
"type": "tuple",
}
`)
})
test.each([
{ params: '', expected: [] },
{ params: 'string', expected: ['string'] },
{ params: 'string indexed foo', expected: ['string indexed foo'] },
{ params: 'string, address', expected: ['string', 'address'] },
{
params: 'string foo, address bar',
expected: ['string foo', 'address bar'],
},
{
params: 'string indexed foo, address indexed bar',
expected: ['string indexed foo', 'address indexed bar'],
},
{
params:
'address owner, (bool loading, (string[][] names) cats)[] dog, uint tokenId',
expected: [
'address owner',
'(bool loading, (string[][] names) cats)[] dog',
'uint tokenId',
],
},
{
params: ' ',
expected: [],
},
])('splitParameters($params)', ({ params, expected }) => {
expect(splitParameters(params)).toEqual(expected)
})
test.each([
'address',
'bool',
'bytes32',
'int256',
'string',
'uint256',
'function',
])('isSolidityType($type)', (type) => {
expect(isSolidityType(type)).toEqual(true)
})
test('isSolidityType', () => {
expect(isSolidityType('foo')).toEqual(false)
})
test.each([
'address',
'bool',
'bytes32',
'int256',
'string',
'uint256',
'function',
'view',
'override',
'let',
'var',
'typeof',
'promise',
'in',
'of',
'reference',
'implements',
'mapping',
'error',
'event',
'struct',
'alias',
'byte',
'case',
'copyof',
'final',
'external',
'public',
'internal',
'pure',
'match',
'apply',
'case',
'null',
'mutable',
'inline',
'static',
'partial',
'relocatable',
'try',
'catch',
'switch',
'supports',
'mapping',
'virtual',
'return',
'returns',
'after',
'auto',
'default',
'defined',
'typedef',
'typeof',
])('isInvalidSolidiyName($name)', (name) => {
expect(isSolidityKeyword(name)).toEqual(true)
})
test.each(['bytes', 'string', 'tuple'])(
'isValidDataLocation($type)',
(type) => {
expect(isValidDataLocation(type as any, false)).toEqual(true)
},
)
test('Unbalanced Parethesis', () => {
expect(() =>
splitParameters('address owner, ((string name)'),
).toThrowErrorMatchingInlineSnapshot(
`
[HumanReadableAbi.InvalidParenthesisError: Unbalanced parentheses.
"((string name)" has too many opening parentheses.
Details: Depth "1"]
`,
)
expect(() =>
splitParameters('address owner, (((string name)'),
).toThrowErrorMatchingInlineSnapshot(
`
[HumanReadableAbi.InvalidParenthesisError: Unbalanced parentheses.
"(((string name)" has too many opening parentheses.
Details: Depth "2"]
`,
)
expect(() =>
splitParameters('address owner, (string name))'),
).toThrowErrorMatchingInlineSnapshot(
`
[HumanReadableAbi.InvalidParenthesisError: Unbalanced parentheses.
"(string name))" has too many closing parentheses.
Details: Depth "-1"]
`,
)
expect(() =>
splitParameters('address owner, (string name)))'),
).toThrowErrorMatchingInlineSnapshot(
`
[HumanReadableAbi.InvalidParenthesisError: Unbalanced parentheses.
"(string name)))" has too many closing parentheses.
Details: Depth "-2"]
`,
)
})
import type {
AbiItemType,
AbiType,
SolidityArray,
SolidityBytes,
SolidityString,
SolidityTuple,
} from 'abitype'
import { bytesRegex, execTyped, integerRegex, isTupleRegex } from '../regex.js'
import { UnknownSolidityTypeError } from '../errors.js'
import {
InvalidFunctionModifierError,
InvalidModifierError,
InvalidParameterError,
SolidityProtectedKeywordError,
} from '../errors.js'
import { InvalidSignatureError, UnknownSignatureError } from '../errors.js'
import { InvalidParenthesisError } from '../errors.js'
import type { FunctionModifier, Modifier } from '../types/signatures.js'
import type { StructLookup } from '../types/structs.js'
import { getParameterCacheKey, parameterCache } from './cache.js'
import {
eventModifiers,
execConstructorSignature,
execErrorSignature,
execEventSignature,
execFallbackSignature,
execFunctionSignature,
functionModifiers,
isConstructorSignature,
isErrorSignature,
isEventSignature,
isFallbackSignature,
isFunctionSignature,
isReceiveSignature,
} from './signatures.js'
export function parseSignature(signature: string, structs: StructLookup = {}) {
if (isFunctionSignature(signature))
return parseFunctionSignature(signature, structs)
if (isEventSignature(signature))
return parseEventSignature(signature, structs)
if (isErrorSignature(signature))
return parseErrorSignature(signature, structs)
if (isConstructorSignature(signature))
return parseConstructorSignature(signature, structs)
if (isFallbackSignature(signature)) return parseFallbackSignature(signature)
if (isReceiveSignature(signature))
return {
type: 'receive',
stateMutability: 'payable',
}
throw new UnknownSignatureError({ signature })
}
export function parseFunctionSignature(
signature: string,
structs: StructLookup = {},
) {
const match = execFunctionSignature(signature)
if (!match) throw new InvalidSignatureError({ signature, type: 'function' })
const inputParams = splitParameters(match.parameters)
const inputs = []
const inputLength = inputParams.length
for (let i = 0; i < inputLength; i++) {
inputs.push(
parseAbiParameter(inputParams[i]!, {
modifiers: functionModifiers,
structs,
type: 'function',
}),
)
}
const outputs = []
if (match.returns) {
const outputParams = splitParameters(match.returns)
const outputLength = outputParams.length
for (let i = 0; i < outputLength; i++) {
outputs.push(
parseAbiParameter(outputParams[i]!, {
modifiers: functionModifiers,
structs,
type: 'function',
}),
)
}
}
return {
name: match.name,
type: 'function',
stateMutability: match.stateMutability ?? 'nonpayable',
inputs,
outputs,
}
}
export function parseEventSignature(
signature: string,
structs: StructLookup = {},
) {
const match = execEventSignature(signature)
if (!match) throw new InvalidSignatureError({ signature, type: 'event' })
const params = splitParameters(match.parameters)
const abiParameters = []
const length = params.length
for (let i = 0; i < length; i++)
abiParameters.push(
parseAbiParameter(params[i]!, {
modifiers: eventModifiers,
structs,
type: 'event',
}),
)
return { name: match.name, type: 'event', inputs: abiParameters }
}
export function parseErrorSignature(
signature: string,
structs: StructLookup = {},
) {
const match = execErrorSignature(signature)
if (!match) throw new InvalidSignatureError({ signature, type: 'error' })
const params = splitParameters(match.parameters)
const abiParameters = []
const length = params.length
for (let i = 0; i < length; i++)
abiParameters.push(
parseAbiParameter(params[i]!, { structs, type: 'error' }),
)
return { name: match.name, type: 'error', inputs: abiParameters }
}
export function parseConstructorSignature(
signature: string,
structs: StructLookup = {},
) {
const match = execConstructorSignature(signature)
if (!match)
throw new InvalidSignatureError({ signature, type: 'constructor' })
const params = splitParameters(match.parameters)
const abiParameters = []
const length = params.length
for (let i = 0; i < length; i++)
abiParameters.push(
parseAbiParameter(params[i]!, { structs, type: 'constructor' }),
)
return {
type: 'constructor',
stateMutability: match.stateMutability ?? 'nonpayable',
inputs: abiParameters,
}
}
export function parseFallbackSignature(signature: string) {
const match = execFallbackSignature(signature)
if (!match) throw new InvalidSignatureError({ signature, type: 'fallback' })
return {
type: 'fallback',
stateMutability: match.stateMutability ?? 'nonpayable',
}
}
const abiParameterWithoutTupleRegex =
/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/
const abiParameterWithTupleRegex =
/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/
const dynamicIntegerRegex = /^u?int$/
type ParseOptions = {
modifiers?: Set<Modifier>
structs?: StructLookup
type?: AbiItemType | 'struct'
}
export function parseAbiParameter(param: string, options?: ParseOptions) {
// optional namespace cache by `type`
const parameterCacheKey = getParameterCacheKey(
param,
options?.type,
options?.structs,
)
if (parameterCache.has(parameterCacheKey))
return parameterCache.get(parameterCacheKey)!
const isTuple = isTupleRegex.test(param)
const match = execTyped<{
array?: string
modifier?: Modifier
name?: string
type: string
}>(
isTuple ? abiParameterWithTupleRegex : abiParameterWithoutTupleRegex,
param,
)
if (!match) throw new InvalidParameterError({ param })
if (match.name && isSolidityKeyword(match.name))
throw new SolidityProtectedKeywordError({ param, name: match.name })
const name = match.name ? { name: match.name } : {}
const indexed = match.modifier === 'indexed' ? { indexed: true } : {}
const structs = options?.structs ?? {}
let type: string
let components = {}
if (isTuple) {
type = 'tuple'
const params = splitParameters(match.type)
const components_ = []
const length = params.length
for (let i = 0; i < length; i++) {
// remove `modifiers` from `options` to prevent from being added to tuple components
components_.push(parseAbiParameter(params[i]!, { structs }))
}
components = { components: components_ }
} else if (match.type in structs) {
type = 'tuple'
components = { components: structs[match.type] }
} else if (dynamicIntegerRegex.test(match.type)) {
type = `${match.type}256`
} else if (match.type === 'address payable') {
type = 'address'
} else {
type = match.type
if (!(options?.type === 'struct') && !isSolidityType(type))
throw new UnknownSolidityTypeError({ type })
}
if (match.modifier) {
// Check if modifier exists, but is not allowed (e.g. `indexed` in `functionModifiers`)
if (!options?.modifiers?.has?.(match.modifier))
throw new InvalidModifierError({
param,
type: options?.type,
modifier: match.modifier,
})
// Check if resolved `type` is valid if there is a function modifier
if (
functionModifiers.has(match.modifier as FunctionModifier) &&
!isValidDataLocation(type, !!match.array)
)
throw new InvalidFunctionModifierError({
param,
type: options?.type,
modifier: match.modifier,
})
}
const abiParameter = {
type: `${type}${match.array ?? ''}`,
...name,
...indexed,
...components,
}
parameterCache.set(parameterCacheKey, abiParameter)
return abiParameter
}
// s/o latika for this
export function splitParameters(
params: string,
result: string[] = [],
current = '',
depth = 0,
): readonly string[] {
const length = params.trim().length
// biome-ignore lint/correctness/noUnreachable: recursive
for (let i = 0; i < length; i++) {
const char = params[i]
const tail = params.slice(i + 1)
switch (char) {
case ',':
return depth === 0
? splitParameters(tail, [...result, current.trim()])
: splitParameters(tail, result, `${current}${char}`, depth)
case '(':
return splitParameters(tail, result, `${current}${char}`, depth + 1)
case ')':
return splitParameters(tail, result, `${current}${char}`, depth - 1)
default:
return splitParameters(tail, result, `${current}${char}`, depth)
}
}
if (current === '') return result
if (depth !== 0) throw new InvalidParenthesisError({ current, depth })
result.push(current.trim())
return result
}
export function isSolidityType(
type: string,
): type is Exclude<AbiType, SolidityTuple | SolidityArray> {
return (
type === 'address' ||
type === 'bool' ||
type === 'function' ||
type === 'string' ||
bytesRegex.test(type) ||
integerRegex.test(type)
)
}
const protectedKeywordsRegex =
/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/
/** @internal */
export function isSolidityKeyword(name: string) {
return (
name === 'address' ||
name === 'bool' ||
name === 'function' ||
name === 'string' ||
name === 'tuple' ||
bytesRegex.test(name) ||
integerRegex.test(name) ||
protectedKeywordsRegex.test(name)
)
}
/** @internal */
export function isValidDataLocation(
type: string,
isArray: boolean,
): type is Exclude<
AbiType,
SolidityString | Extract<SolidityBytes, 'bytes'> | SolidityArray
> {
return isArray || type === 'bytes' || type === 'string' || type === 'tuple'
}
/** @internal */
export type Error<messages extends string | string[]> = messages extends string
? [`Error: ${messages}`]
: {
[key in keyof messages]: messages[key] extends infer message extends
string
? `Error: ${message}`
: never
}
/** @internal */
export type Filter<
items extends readonly unknown[],
item,
acc extends readonly unknown[] = [],
> = items extends readonly [
infer head,
...infer tail extends readonly unknown[],
]
? [head] extends [item]
? Filter<tail, item, acc>
: Filter<tail, item, [...acc, head]>
: readonly [...acc]
/** @internal */
export type IsNarrowable<type, type2> =
IsUnknown<type> extends true
? false
: IsNever<
(type extends type2 ? true : false) &
(type2 extends type ? false : true)
> extends true
? false
: true
/** @internal */
export type IsNever<type> = [type] extends [never] ? true : false
/** @internal */
export type IsUnknown<type> = unknown extends type ? true : false
/** @internal */
export type Join<
array extends readonly unknown[],
separator extends string | number,
> = array extends readonly [infer head, ...infer tail]
? tail['length'] extends 0
? `${head & string}`
: `${head & string}${separator}${Join<tail, separator>}`
: never
/** @internal */
export type Merge<object1, object2> = Omit<object1, keyof object2> & object2
/** @internal */
export type Pretty<type> = { [key in keyof type]: type[key] } & unknown
/** @internal */
export type Trim<type, chars extends string = ' '> = TrimLeft<
TrimRight<type, chars>,
chars
>
type TrimLeft<t, chars extends string = ' '> = t extends `${chars}${infer tail}`
? TrimLeft<tail>
: t
type TrimRight<
t,
chars extends string = ' ',
> = t extends `${infer head}${chars}` ? TrimRight<head> : t
import { assertType, expectTypeOf, test } from 'vp/test'
import type {
IsConstructorSignature,
IsErrorSignature,
IsEventSignature,
IsFallbackSignature,
IsFunctionSignature,
IsName,
IsSignature,
IsSolidityKeyword,
IsStructSignature,
IsValidCharacter,
Signature,
Signatures,
SolidityKeywords,
ValidateName,
} from './signatures.js'
test('IsErrorSignature', () => {
// basic
assertType<IsErrorSignature<'error Foo()'>>(true)
// params
assertType<IsErrorSignature<'error Foo(string bar)'>>(true)
assertType<IsErrorSignature<'error Foo(string bar, string baz)'>>(true)
assertType<IsErrorSignature<'error Foo(string bar, (string baz))'>>(true)
// invalid
assertType<IsErrorSignature<'error ()'>>(false)
assertType<IsErrorSignature<'Foo()'>>(false)
assertType<IsErrorSignature<'error Foo(string bar'>>(false)
assertType<IsErrorSignature<'event Foo((string) indexed name)'>>(false)
})
test('IsEventSignature', () => {
// basic
assertType<IsEventSignature<'event Foo()'>>(true)
// params
assertType<IsEventSignature<'event Foo(string bar)'>>(true)
assertType<IsEventSignature<'event Foo(string bar, string baz)'>>(true)
assertType<IsEventSignature<'event Foo(string bar, (string baz))'>>(true)
// invalid
assertType<IsEventSignature<'event ()'>>(false)
assertType<IsEventSignature<'Foo()'>>(false)
assertType<IsEventSignature<'event Foo(string bar'>>(false)
})
test('IsFunctionSignature', () => {
// basic
assertType<IsFunctionSignature<'function foo()'>>(true)
assertType<IsFunctionSignature<'function foo() returns (uint256)'>>(true)
assertType<IsFunctionSignature<'function foo() returns(uint256)'>>(true)
assertType<IsFunctionSignature<'function foo() view'>>(true)
assertType<IsFunctionSignature<'function foo() public'>>(true)
// combinations
assertType<IsFunctionSignature<'function foo() view returns (uint256)'>>(true)
assertType<IsFunctionSignature<'function foo() view returns(uint256)'>>(true)
assertType<IsFunctionSignature<'function foo() public view'>>(true)
assertType<
IsFunctionSignature<'function foo() public view returns (uint256)'>
>(true)
assertType<
IsFunctionSignature<'function foo() public view returns(uint256)'>
>(true)
// params
assertType<IsFunctionSignature<'function foo(uint256, uint256)'>>(true)
assertType<IsFunctionSignature<'function foo(uint256) returns (uint256)'>>(
true,
)
assertType<IsFunctionSignature<'function foo(uint256) returns(uint256)'>>(
true,
)
assertType<IsFunctionSignature<'function foo(uint256) view'>>(true)
assertType<IsFunctionSignature<'function foo(uint256) public'>>(true)
assertType<
IsFunctionSignature<'function foo(uint256) view returns (uint256)'>
>(true)
assertType<
IsFunctionSignature<'function foo(uint256) view returns(uint256)'>
>(true)
assertType<IsFunctionSignature<'function foo(uint256) public view'>>(true)
assertType<
IsFunctionSignature<'function foo(uint256) public view returns (uint256)'>
>(true)
assertType<
IsFunctionSignature<'function foo(uint256) public view returns(uint256)'>
>(true)
assertType<
IsFunctionSignature<'function foo(uint256) public view returns (uint256 tokenId)'>
>(true)
assertType<
IsFunctionSignature<'function foo(uint256) public view returns(uint256 tokenId)'>
>(true)
assertType<
IsFunctionSignature<'function foo(uint256) public view returns (uint256 tokenId, uint256 balance)'>
>(true)
assertType<
IsFunctionSignature<'function foo(uint256) public view returns(uint256 tokenId, uint256 balance)'>
>(true)
// invalid
assertType<IsFunctionSignature<'function ()'>>(false)
assertType<IsFunctionSignature<'function foo() '>>(false)
assertType<IsFunctionSignature<'function foo() public'>>(false)
assertType<IsFunctionSignature<'function foo() re turns (uint256)'>>(false)
assertType<IsFunctionSignature<'function foo() re tur ns (uint256)'>>(false)
assertType<IsFunctionSignature<'foo()'>>(false)
})
test('IsStructSignature', () => {
// basic
assertType<IsStructSignature<'struct Foo {}'>>(true)
// properties
assertType<IsStructSignature<'struct Foo { string bar; }'>>(true)
assertType<IsStructSignature<'struct Foo { string bar; string baz; }'>>(true)
assertType<IsStructSignature<'struct Foo { string bar; (string baz) baz; }'>>(
true,
)
// invalid
assertType<IsStructSignature<'struct {}'>>(false)
assertType<IsStructSignature<'Foo {}'>>(false)
assertType<IsStructSignature<'struct Foo {string bar'>>(false)
})
test('IsConstructorSignature', () => {
assertType<IsConstructorSignature<'constructor()'>>(true)
assertType<IsConstructorSignature<'constructor() payable'>>(true)
assertType<IsConstructorSignature<'constructor(string)'>>(true)
assertType<IsConstructorSignature<'constructor(string name)'>>(true)
assertType<IsConstructorSignature<'constructor(string name, string symbol)'>>(
true,
)
assertType<IsConstructorSignature<'constructor(string memory name)'>>(true)
assertType<IsConstructorSignature<'constructor(string memory name) payable'>>(
true,
)
assertType<IsConstructorSignature<'constructor()payable'>>(false)
assertType<IsConstructorSignature<'constructor(string'>>(false)
})
test('IsFallbackSignature', () => {
assertType<IsFallbackSignature<'fallback() external'>>(true)
assertType<IsFallbackSignature<'fallback() external payable'>>(true)
assertType<IsFallbackSignature<'fallback() externalpayable'>>(false)
assertType<IsFallbackSignature<'fallback() external nonpayable'>>(false)
assertType<IsFallbackSignature<'fallback()'>>(false)
})
test('IsSignature', () => {
// basic
assertType<IsSignature<'function foo()'>>(true)
assertType<IsSignature<'constructor()'>>(true)
assertType<IsSignature<'fallback() external'>>(true)
assertType<IsSignature<'receive() external payable'>>(true)
assertType<IsSignature<'event Foo()'>>(true)
assertType<IsSignature<'error Foo()'>>(true)
assertType<IsSignature<'struct Foo {}'>>(true)
// invalid
assertType<IsSignature<'foo()'>>(false)
assertType<IsSignature<'function ()'>>(false)
assertType<IsSignature<'constructor ()'>>(false)
assertType<IsSignature<'fallback ()'>>(false)
assertType<IsSignature<'receive() payable'>>(false)
assertType<IsSignature<'event ()'>>(false)
assertType<IsSignature<'error ()'>>(false)
assertType<IsSignature<'struct {}'>>(false)
})
test('Signature', () => {
assertType<Signature<'function foo()'>>('function foo()')
assertType<Signature<'function foo ()'>>([
'Error: Signature "function foo ()" is invalid.',
])
// assertType<Signature<'function foo??()'>>([
// 'Error: Signature "function foo??()" is invalid.',
// ])
})
test('Signatures', () => {
assertType<Signatures<['function foo()']>>(['function foo()'])
assertType<Signatures<['function foo ()']>>([
['Error: Signature "function foo ()" is invalid at position 0.'],
])
})
test('IsName', () => {
expectTypeOf<IsName<''>>().toEqualTypeOf<false>()
expectTypeOf<IsName<' '>>().toEqualTypeOf<false>()
expectTypeOf<IsName<'foo'>>().toEqualTypeOf<true>()
// no whitespace
expectTypeOf<IsName<' foo'>>().toEqualTypeOf<false>()
expectTypeOf<IsName<'foo '>>().toEqualTypeOf<false>()
expectTypeOf<IsName<' foo '>>().toEqualTypeOf<false>()
// no solidity keywords
expectTypeOf<IsName<'alias'>>().toEqualTypeOf<false>()
expectTypeOf<IsName<'copyof'>>().toEqualTypeOf<false>()
expectTypeOf<IsName<'virtual'>>().toEqualTypeOf<false>()
// no number strings
expectTypeOf<IsName<'123'>>().toEqualTypeOf<false>()
expectTypeOf<IsName<'12foo'>>().toEqualTypeOf<false>()
// no invalid characters
// expectTypeOf<IsName<'foo?'>>().toEqualTypeOf<false>()
// expectTypeOf<IsName<'foo,'>>().toEqualTypeOf<false>()
})
test('ValidateName', () => {
expectTypeOf<ValidateName<'foo'>>().toEqualTypeOf<'foo'>()
expectTypeOf<ValidateName<'foo$', true>>().toEqualTypeOf<'foo$'>()
expectTypeOf<ValidateName<'foo bar'>>().toEqualTypeOf<
['Error: Identifier "foo bar" cannot contain whitespace.']
>()
expectTypeOf<ValidateName<'alias'>>().toEqualTypeOf<
['Error: "alias" is a protected Solidity keyword.']
>()
expectTypeOf<ValidateName<'123'>>().toEqualTypeOf<
['Error: Identifier "123" cannot be a number string.']
>()
expectTypeOf<ValidateName<'12foo'>>().toEqualTypeOf<
['Error: Identifier "12foo" cannot start with a number.']
>()
expectTypeOf<ValidateName<'foo?', true>>().toEqualTypeOf<
['Error: "foo?" contains invalid character.']
>()
})
test('IsSolidityKeyword', () => {
expectTypeOf<IsSolidityKeyword<SolidityKeywords>>().toEqualTypeOf<true>()
expectTypeOf<IsSolidityKeyword<'calldata'>>().toEqualTypeOf<true>()
expectTypeOf<IsSolidityKeyword<'byte'>>().toEqualTypeOf<true>()
expectTypeOf<IsSolidityKeyword<'memory'>>().toEqualTypeOf<true>()
expectTypeOf<IsSolidityKeyword<'foo'>>().toEqualTypeOf<false>()
expectTypeOf<IsSolidityKeyword<'bar'>>().toEqualTypeOf<false>()
})
test('IsValidCharacter', () => {
expectTypeOf<IsValidCharacter<'A'>>().toEqualTypeOf<true>()
expectTypeOf<IsValidCharacter<'foobarbaz'>>().toEqualTypeOf<true>()
expectTypeOf<IsValidCharacter<'123123'>>().toEqualTypeOf<true>()
expectTypeOf<IsValidCharacter<'___'>>().toEqualTypeOf<true>()
expectTypeOf<IsValidCharacter<'$$$'>>().toEqualTypeOf<true>()
expectTypeOf<IsValidCharacter<'foo_123'>>().toEqualTypeOf<true>()
expectTypeOf<IsValidCharacter<'foo_123?'>>().toEqualTypeOf<false>()
expectTypeOf<IsValidCharacter<'foo!123'>>().toEqualTypeOf<false>()
expectTypeOf<IsValidCharacter<''>>().toEqualTypeOf<false>()
expectTypeOf<IsValidCharacter<' '>>().toEqualTypeOf<false>()
})
import type { AbiStateMutability } from 'abitype'
import type { Error } from '../types.js'
export type ErrorSignature<
name extends string = string,
parameters extends string = string,
> = `error ${name}(${parameters})`
export type IsErrorSignature<signature extends string> =
signature extends ErrorSignature<infer name> ? IsName<name> : false
export type EventSignature<
name extends string = string,
parameters extends string = string,
> = `event ${name}(${parameters})`
export type IsEventSignature<signature extends string> =
signature extends EventSignature<infer name> ? IsName<name> : false
export type FunctionSignature<
name extends string = string,
tail extends string = string,
> = `function ${name}(${tail}`
export type IsFunctionSignature<signature> =
signature extends FunctionSignature<infer name>
? IsName<name> extends true
? signature extends ValidFunctionSignatures
? true
: // Check that `Parameters` is not absorbing other types (e.g. `returns`)
signature extends `function ${string}(${infer parameters})`
? parameters extends InvalidFunctionParameters
? false
: true
: false
: false
: false
export type Scope = 'public' | 'external' // `internal` or `private` functions wouldn't make it to ABI so can ignore
type Returns = `returns (${string})` | `returns(${string})`
// Almost all valid function signatures, except `function ${string}(${infer parameters})` since `parameters` can absorb returns
type ValidFunctionSignatures =
| `function ${string}()`
// basic
| `function ${string}() ${Returns}`
| `function ${string}() ${AbiStateMutability}`
| `function ${string}() ${Scope}`
// combinations
| `function ${string}() ${AbiStateMutability} ${Returns}`
| `function ${string}() ${Scope} ${Returns}`
| `function ${string}() ${Scope} ${AbiStateMutability}`
| `function ${string}() ${Scope} ${AbiStateMutability} ${Returns}`
// Parameters
| `function ${string}(${string}) ${Returns}`
| `function ${string}(${string}) ${AbiStateMutability}`
| `function ${string}(${string}) ${Scope}`
| `function ${string}(${string}) ${AbiStateMutability} ${Returns}`
| `function ${string}(${string}) ${Scope} ${Returns}`
| `function ${string}(${string}) ${Scope} ${AbiStateMutability}`
| `function ${string}(${string}) ${Scope} ${AbiStateMutability} ${Returns}`
export type StructSignature<
name extends string = string,
properties extends string = string,
> = `struct ${name} {${properties}}`
export type IsStructSignature<signature extends string> =
signature extends StructSignature<infer name> ? IsName<name> : false
type ConstructorSignature<tail extends string = string> = `constructor(${tail}`
export type IsConstructorSignature<signature> =
signature extends ConstructorSignature
? signature extends ValidConstructorSignatures
? true
: false
: false
type ValidConstructorSignatures =
| `constructor(${string})`
| `constructor(${string}) payable`
export type FallbackSignature<
abiStateMutability extends '' | ' payable' = '' | ' payable',
> = `fallback() external${abiStateMutability}`
export type IsFallbackSignature<signature extends string> = signature extends
| FallbackSignature<''>
| FallbackSignature<' payable'>
? true
: false
export type ReceiveSignature = 'receive() external payable'
// TODO: Maybe use this for signature validation one day
// https://twitter.com/devanshj__/status/1610423724708343808
export type IsSignature<type extends string> =
| (IsErrorSignature<type> extends true ? true : never)
| (IsEventSignature<type> extends true ? true : never)
| (IsFunctionSignature<type> extends true ? true : never)
| (IsStructSignature<type> extends true ? true : never)
| (IsConstructorSignature<type> extends true ? true : never)
| (IsFallbackSignature<type> extends true ? true : never)
| (type extends ReceiveSignature ? true : never) extends infer condition
? [condition] extends [never]
? false
: true
: false
export type Signature<
string1 extends string,
string2 extends string | unknown = unknown,
> =
IsSignature<string1> extends true
? string1
: string extends string1 // if exactly `string` (not narrowed), then pass through as valid
? string1
: Error<`Signature "${string1}" is invalid${string2 extends string
? ` at position ${string2}`
: ''}.`>
export type Signatures<signatures extends readonly string[]> = {
[key in keyof signatures]: Signature<signatures[key], key>
}
export type Modifier = 'calldata' | 'indexed' | 'memory' | 'payable' | 'storage'
export type FunctionModifier = Extract<
Modifier,
'calldata' | 'memory' | 'payable' | 'storage'
>
export type EventModifier = Extract<Modifier, 'indexed'>
export type IsName<name extends string> = name extends ''
? false
: ValidateName<name> extends name
? true
: false
export type AssertName<name extends string> =
ValidateName<name> extends infer invalidName extends string[]
? `[${invalidName[number]}]`
: name
export type ValidateName<
name extends string,
checkCharacters extends boolean = false,
> = name extends `${string}${' '}${string}`
? Error<`Identifier "${name}" cannot contain whitespace.`>
: IsSolidityKeyword<name> extends true
? Error<`"${name}" is a protected Solidity keyword.`>
: name extends `${number}`
? Error<`Identifier "${name}" cannot be a number string.`>
: name extends `${number}${string}`
? Error<`Identifier "${name}" cannot start with a number.`>
: checkCharacters extends true
? IsValidCharacter<name> extends true
? name
: Error<`"${name}" contains invalid character.`>
: name
export type IsSolidityKeyword<type extends string> =
type extends SolidityKeywords ? true : false
export type SolidityKeywords =
| 'after'
| 'alias'
| 'anonymous'
| 'apply'
| 'auto'
| 'byte'
| 'calldata'
| 'case'
| 'catch'
| 'constant'
| 'copyof'
| 'default'
| 'defined'
| 'error'
| 'event'
| 'external'
| 'false'
| 'final'
| 'function'
| 'immutable'
| 'implements'
| 'in'
| 'indexed'
| 'inline'
| 'internal'
| 'let'
| 'mapping'
| 'match'
| 'memory'
| 'mutable'
| 'null'
| 'of'
| 'override'
| 'partial'
| 'private'
| 'promise'
| 'public'
| 'pure'
| 'reference'
| 'relocatable'
| 'return'
| 'returns'
| 'sizeof'
| 'static'
| 'storage'
| 'struct'
| 'super'
| 'supports'
| 'switch'
| 'this'
| 'true'
| 'try'
| 'typedef'
| 'typeof'
| 'var'
| 'view'
| 'virtual'
| `address${`[${string}]` | ''}`
| `bool${`[${string}]` | ''}`
| `string${`[${string}]` | ''}`
| `tuple${`[${string}]` | ''}`
| `bytes${number | ''}${`[${string}]` | ''}`
| `${'u' | ''}int${number | ''}${`[${string}]` | ''}`
export type IsValidCharacter<character extends string> =
character extends `${ValidCharacters}${infer tail}`
? tail extends ''
? true
: IsValidCharacter<tail>
: false
// biome-ignore format: no formatting
type ValidCharacters =
// uppercase letters
| 'A'
| 'B'
| 'C'
| 'D'
| 'E'
| 'F'
| 'G'
| 'H'
| 'I'
| 'J'
| 'K'
| 'L'
| 'M'
| 'N'
| 'O'
| 'P'
| 'Q'
| 'R'
| 'S'
| 'T'
| 'U'
| 'V'
| 'W'
| 'X'
| 'Y'
| 'Z'
// lowercase letters
| 'a'
| 'b'
| 'c'
| 'd'
| 'e'
| 'f'
| 'g'
| 'h'
| 'i'
| 'j'
| 'k'
| 'l'
| 'm'
| 'n'
| 'o'
| 'p'
| 'q'
| 'r'
| 's'
| 't'
| 'u'
| 'v'
| 'w'
| 'x'
| 'y'
| 'z'
// numbers
| '0'
| '1'
| '2'
| '3'
| '4'
| '5'
| '6'
| '7'
| '8'
| '9'
// special characters
| '_'
| '$'
// Template string inference can absorb `returns`:
// type Result = `function foo(string) return s (uint256)` extends `function ${string}(${infer Parameters})` ? Parameters : never
// // ^? type Result = "string ) return s (uint256"
// So we need to validate against `returns` keyword with all combinations of whitespace
type InvalidFunctionParameters =
| `${string}${MangledReturns} (${string}`
| `${string}) ${MangledReturns}${string}`
| `${string})${string}${MangledReturns}${string}(${string}`
// r_e_t_u_r_n_s
type MangledReturns =
// Single
| `r${string}eturns`
| `re${string}turns`
| `ret${string}urns`
| `retu${string}rns`
| `retur${string}ns`
| `return${string}s`
// Double
// `r_e*`
| `r${string}e${string}turns`
| `r${string}et${string}urns`
| `r${string}etu${string}rns`
| `r${string}etur${string}ns`
| `r${string}eturn${string}s`
// `re_t*`
| `re${string}t${string}urns`
| `re${string}tu${string}rns`
| `re${string}tur${string}ns`
| `re${string}turn${string}s`
// `ret_u*`
| `ret${string}u${string}rns`
| `ret${string}ur${string}ns`
| `ret${string}urn${string}s`
// `retu_r*`
| `retu${string}r${string}ns`
| `retu${string}rn${string}s`
// `retur_n*`
| `retur${string}n${string}s`
// Triple
// `r_e_t*`
| `r${string}e${string}t${string}urns`
| `r${string}e${string}tu${string}rns`
| `r${string}e${string}tur${string}ns`
| `r${string}e${string}turn${string}s`
// `re_t_u*`
| `re${string}t${string}u${string}rns`
| `re${string}t${string}ur${string}ns`
| `re${string}t${string}urn${string}s`
// `ret_u_r*`
| `ret${string}u${string}r${string}ns`
| `ret${string}u${string}rn${string}s`
// `retu_r_n*`
| `retu${string}r${string}n${string}s`
// Quadruple
// `r_e_t_u*`
| `r${string}e${string}t${string}u${string}rns`
| `r${string}e${string}t${string}ur${string}ns`
| `r${string}e${string}t${string}urn${string}s`
// `re_t_u_r*`
| `re${string}t${string}u${string}r${string}ns`
| `re${string}t${string}u${string}rn${string}s`
// `ret_u_r_n*`
| `ret${string}u${string}r${string}n${string}s`
// Quintuple
// `r_e_t_u_r*`
| `r${string}e${string}t${string}u${string}r${string}ns`
| `r${string}e${string}t${string}u${string}rn${string}s`
// `re_t_u_r_n*`
| `re${string}t${string}u${string}r${string}n${string}s`
// Sextuple
// `r_e_t_u_r_n_s`
| `r${string}e${string}t${string}u${string}r${string}n${string}s`
import { expectTypeOf, test } from 'vp/test'
import type {
ParseStruct,
ParseStructProperties,
ParseStructs,
ResolveStructs,
StructLookup,
} from './structs.js'
test('ParseStructs', () => {
type Result = ParseStructs<
[
'struct Person { Name name; }',
'struct Name { Foo foo; }',
'struct Foo { string bar; }',
'function addPerson(Person person)',
]
>
expectTypeOf<Result>().toEqualTypeOf<{
Person: readonly [
{
readonly name: 'name'
readonly type: 'tuple'
readonly components: readonly [
{
readonly name: 'foo'
readonly type: 'tuple'
readonly components: readonly [
{
readonly type: 'string'
readonly name: 'bar'
},
]
},
]
},
]
Foo: readonly [{ readonly type: 'string'; readonly name: 'bar' }]
Name: readonly [
{
readonly type: 'tuple'
readonly name: 'foo'
readonly components: readonly [
{ readonly type: 'string'; readonly name: 'bar' },
]
},
]
}>()
expectTypeOf<
ParseStructs<['struct Foo { Bar bar; }', 'struct Bar { Foo foo; }']>
>().toEqualTypeOf<{
Foo: readonly [
{
readonly name: 'bar'
readonly type: 'tuple'
readonly components: readonly [
{
readonly name: 'foo'
readonly type: 'tuple'
readonly components: readonly [
[
'Error: Circular reference detected. Struct "Bar" is a circular reference.',
],
]
},
]
},
]
Bar: readonly [
{
readonly name: 'foo'
readonly type: 'tuple'
readonly components: readonly [
{
readonly name: 'bar'
readonly type: 'tuple'
readonly components: readonly [
[
'Error: Circular reference detected. Struct "Foo" is a circular reference.',
],
]
},
]
},
]
}>()
expectTypeOf<ParseStructs<['struct Foo { Foo foo; }']>>().toEqualTypeOf<{
Foo: readonly [
{
readonly name: 'foo'
readonly type: 'tuple'
readonly components: readonly [
[
'Error: Circular reference detected. Struct "Foo" is a circular reference.',
],
]
},
]
}>()
expectTypeOf<
ParseStructs<['struct Person { Name name;']>
>().toEqualTypeOf<{}>()
expectTypeOf<ParseStructs<[]>>().toEqualTypeOf<{}>()
expectTypeOf<
ParseStructs<['function addPerson(Person person)']>
>().toEqualTypeOf<{}>()
})
test('ParseStruct', () => {
expectTypeOf<
ParseStruct<'struct Foo { string foo; string bar; }'>
>().toEqualTypeOf<{
readonly name: 'Foo'
readonly components: [
{ readonly type: 'string'; readonly name: 'foo' },
{ readonly type: 'string'; readonly name: 'bar' },
]
}>()
expectTypeOf<ParseStruct<'struct Foo {}'>>().toEqualTypeOf<{
readonly name: 'Foo'
readonly components: []
}>()
expectTypeOf<ParseStruct<'struct Foo { Bar bar; }'>>().toEqualTypeOf<{
readonly name: 'Foo'
readonly components: [
{
readonly type: 'Bar'
readonly name: 'bar'
},
]
}>()
expectTypeOf<ParseStruct<''>>().toEqualTypeOf<never>()
expectTypeOf<ParseStruct<'function foo()'>>().toEqualTypeOf<never>()
})
test('ResolveStructs', () => {
type Result = ResolveStructs<
[{ type: 'Name'; name: 'name' }],
{
Person: [{ type: 'Name'; name: 'name' }]
Name: [{ type: 'Foo'; name: 'foo' }]
Foo: [{ type: 'string'; name: 'bar' }, { type: 'uint16'; name: 'baz' }]
}
>
expectTypeOf<Result>().toEqualTypeOf<
readonly [
{
readonly name: 'name'
readonly type: 'tuple'
readonly components: readonly [
{
readonly name: 'foo'
readonly type: 'tuple'
readonly components: readonly [
{ type: 'string'; name: 'bar' },
{ type: 'uint16'; name: 'baz' },
]
},
]
},
]
>()
expectTypeOf<ResolveStructs<[], StructLookup>>().toEqualTypeOf<readonly []>()
expectTypeOf<
ResolveStructs<
[{ type: 'Foo[]'; name: 'foo' }],
{ Foo: [{ type: 'string'; name: 'bar' }] }
>
>().toEqualTypeOf<
readonly [
{
readonly name: 'foo'
readonly type: 'tuple[]'
readonly components: readonly [
{
type: 'string'
name: 'bar'
},
]
},
]
>()
})
test('ParseStructProperties', () => {
expectTypeOf<ParseStructProperties<'string;'>>().toEqualTypeOf<
[{ readonly type: 'string' }]
>()
expectTypeOf<ParseStructProperties<'string foo;'>>().toEqualTypeOf<
[{ readonly type: 'string'; readonly name: 'foo' }]
>()
expectTypeOf<
ParseStructProperties<'string; string;'> extends [
{ readonly type: 'string' },
{ readonly type: 'string' },
]
? true
: false
>().toEqualTypeOf<true>()
expectTypeOf<
ParseStructProperties<'string foo; string bar;'>
>().toEqualTypeOf<
[
{ readonly type: 'string'; readonly name: 'foo' },
{ readonly type: 'string'; readonly name: 'bar' },
]
>()
expectTypeOf<ParseStructProperties<''>>().toEqualTypeOf<[]>()
expectTypeOf<ParseStructProperties<'string'>>().toEqualTypeOf<[]>()
expectTypeOf<ParseStructProperties<'string; string'>>().toEqualTypeOf<
[{ readonly type: 'string' }]
>()
})
import type { AbiParameter } from 'abitype'
import type { Error, Trim } from '../types.js'
import type { StructSignature } from './signatures.js'
import type { ParseAbiParameter } from './utils.js'
export type StructLookup = Record<string, readonly AbiParameter[]>
export type ParseStructs<signatures extends readonly string[]> =
// Create "shallow" version of each struct (and filter out non-structs or invalid structs)
{
[signature in signatures[number] as ParseStruct<signature> extends infer struct extends
{
name: string
}
? struct['name']
: never]: ParseStruct<signature>['components']
} extends infer structs extends Record<
string,
readonly (AbiParameter & { type: string })[]
>
? // Resolve nested structs inside each struct
{
[structName in keyof structs]: ResolveStructs<
structs[structName],
structs
>
}
: never
export type ParseStruct<
signature extends string,
structs extends StructLookup | unknown = unknown,
> =
signature extends StructSignature<infer name, infer properties>
? {
readonly name: Trim<name>
readonly components: ParseStructProperties<properties, structs>
}
: never
export type ResolveStructs<
abiParameters extends readonly (AbiParameter & { type: string })[],
structs extends Record<string, readonly (AbiParameter & { type: string })[]>,
keyReferences extends { [_: string]: unknown } | unknown = unknown,
> = readonly [
...{
[key in keyof abiParameters]: abiParameters[key]['type'] extends `${infer head extends
string & keyof structs}[${infer tail}]` // Struct arrays (e.g. `type: 'Struct[]'`, `type: 'Struct[10]'`, `type: 'Struct[][]'`)
? head extends keyof keyReferences
? Error<`Circular reference detected. Struct "${abiParameters[key]['type']}" is a circular reference.`>
: {
readonly name: abiParameters[key]['name']
readonly type: `tuple[${tail}]`
readonly components: ResolveStructs<
structs[head],
structs,
keyReferences & { [_ in head]: true }
>
}
: // Basic struct (e.g. `type: 'Struct'`)
abiParameters[key]['type'] extends keyof structs
? abiParameters[key]['type'] extends keyof keyReferences
? Error<`Circular reference detected. Struct "${abiParameters[key]['type']}" is a circular reference.`>
: {
readonly name: abiParameters[key]['name']
readonly type: 'tuple'
readonly components: ResolveStructs<
structs[abiParameters[key]['type']],
structs,
keyReferences & { [_ in abiParameters[key]['type']]: true }
>
}
: abiParameters[key]
},
]
export type ParseStructProperties<
signature extends string,
structs extends StructLookup | unknown = unknown,
result extends any[] = [],
> =
Trim<signature> extends `${infer head};${infer tail}`
? ParseStructProperties<
tail,
structs,
[...result, ParseAbiParameter<head, { structs: structs }>]
>
: result
import { assertType, expectTypeOf, test } from 'vp/test'
import type {
ParseAbiParameter,
ParseAbiParameters,
ParseSignature,
SplitParameters,
_ParseFunctionParametersAndStateMutability,
_ParseTuple,
_SplitNameOrModifier,
_UnwrapNameOrModifier,
_ValidateAbiParameter,
} from './utils.js'
type OptionsWithModifier = { modifier: 'calldata'; structs: unknown }
type OptionsWithIndexed = { modifier: 'indexed'; structs: unknown }
type OptionsWithStructs = {
structs: {
Foo: [{ type: 'address'; name: 'bar' }]
}
}
test('ParseSignature', () => {
type Structs = {
Baz: [{ type: 'address'; name: 'baz' }]
}
// Error
assertType<ParseSignature<'error Foo()'>>({
type: 'error',
name: 'Foo',
inputs: [],
})
assertType<ParseSignature<'error Foo(string)'>>({
type: 'error',
name: 'Foo',
inputs: [{ type: 'string' }],
})
assertType<ParseSignature<'error Foo(string bar)'>>({
type: 'error',
name: 'Foo',
inputs: [{ type: 'string', name: 'bar' }],
})
assertType<ParseSignature<'error Foo(Baz bar)', Structs>>({
type: 'error',
name: 'Foo',
inputs: [
{
type: 'tuple',
name: 'bar',
components: [{ type: 'address', name: 'baz' }],
},
],
})
// Events
assertType<ParseSignature<'event Foo()'>>({
type: 'event',
name: 'Foo',
inputs: [],
})
assertType<ParseSignature<'event Foo(string)'>>({
type: 'event',
name: 'Foo',
inputs: [{ type: 'string' }],
})
assertType<ParseSignature<'event Foo(string bar)'>>({
type: 'event',
name: 'Foo',
inputs: [{ type: 'string', name: 'bar' }],
})
assertType<ParseSignature<'event Foo(string indexed bar)'>>({
type: 'event',
name: 'Foo',
inputs: [{ type: 'string', indexed: true, name: 'bar' }],
})
assertType<ParseSignature<'event Foo(Baz bar)', Structs>>({
type: 'event',
name: 'Foo',
inputs: [
{
type: 'tuple',
name: 'bar',
components: [{ type: 'address', name: 'baz' }],
},
],
})
assertType<ParseSignature<'event Foo((string) indexed bar)'>>({
type: 'event',
name: 'Foo',
inputs: [
{
type: 'tuple',
indexed: true,
name: 'bar',
components: [{ type: 'string' }],
},
],
})
// Constructor
assertType<ParseSignature<'constructor()'>>({
type: 'constructor',
stateMutability: 'nonpayable',
inputs: [],
})
assertType<ParseSignature<'constructor() payable'>>({
type: 'constructor',
stateMutability: 'payable',
inputs: [],
})
assertType<ParseSignature<'constructor(string)'>>({
type: 'constructor',
stateMutability: 'nonpayable',
inputs: [{ type: 'string' }],
})
assertType<ParseSignature<'constructor(string) payable'>>({
type: 'constructor',
stateMutability: 'payable',
inputs: [{ type: 'string' }],
})
assertType<ParseSignature<'constructor(string foo)'>>({
type: 'constructor',
stateMutability: 'nonpayable',
inputs: [{ type: 'string', name: 'foo' }],
})
assertType<ParseSignature<'constructor(string foo)'>>({
type: 'constructor',
stateMutability: 'nonpayable',
inputs: [{ type: 'string', name: 'foo' }],
})
assertType<ParseSignature<'constructor((string) foo)'>>({
type: 'constructor',
stateMutability: 'nonpayable',
inputs: [{ type: 'tuple', name: 'foo', components: [{ type: 'string' }] }],
})
// Fallback
assertType<ParseSignature<'fallback() external'>>({
type: 'fallback',
stateMutability: 'nonpayable',
})
assertType<ParseSignature<'fallback() external payable'>>({
type: 'fallback',
stateMutability: 'payable',
})
// Receive
assertType<ParseSignature<'receive() external payable'>>({
type: 'receive',
stateMutability: 'payable',
})
// Functions
assertType<ParseSignature<'function foo()'>>({
type: 'function',
name: 'foo',
stateMutability: 'nonpayable',
inputs: [],
outputs: [],
})
// inputs
assertType<ParseSignature<'function foo(string)'>>({
type: 'function',
name: 'foo',
stateMutability: 'nonpayable',
inputs: [{ type: 'string' }],
outputs: [],
})
assertType<ParseSignature<'function foo(string bar)'>>({
type: 'function',
name: 'foo',
stateMutability: 'nonpayable',
inputs: [{ type: 'string', name: 'bar' }],
outputs: [],
})
assertType<ParseSignature<'function foo(Baz bar)', Structs>>({
type: 'function',
name: 'foo',
stateMutability: 'nonpayable',
inputs: [
{
type: 'tuple',
name: 'bar',
components: [{ type: 'address', name: 'baz' }],
},
],
outputs: [],
})
assertType<ParseSignature<'function foo(string bar) view'>>({
type: 'function',
name: 'foo',
stateMutability: 'view',
inputs: [{ type: 'string', name: 'bar' }],
outputs: [],
})
assertType<ParseSignature<'function foo(string bar) public payable'>>({
type: 'function',
name: 'foo',
stateMutability: 'payable',
inputs: [{ type: 'string', name: 'bar' }],
outputs: [],
})
assertType<ParseSignature<'function foo(string calldata)'>>({
type: 'function',
name: 'foo',
stateMutability: 'nonpayable',
inputs: [{ type: 'string' }],
outputs: [],
})
assertType<ParseSignature<'function foo(address payable to) external'>>({
name: 'foo',
type: 'function',
stateMutability: 'nonpayable',
inputs: [{ type: 'address', name: 'to' }],
outputs: [],
})
assertType<ParseSignature<'function foo(string indexed)'>>({
name: 'foo',
type: 'function',
stateMutability: 'nonpayable',
inputs: [
{
type: 'string',
name: ['Error: "indexed" is a protected Solidity keyword.'],
},
],
outputs: [],
})
assertType<ParseSignature<'function foo(string indexed bar)'>>({
name: 'foo',
type: 'function',
stateMutability: 'nonpayable',
inputs: [
{
type: 'string',
name: ['Error: Identifier "indexed bar" cannot contain whitespace.'],
},
],
outputs: [],
})
// outputs
assertType<ParseSignature<'function foo() returns (string)'>>({
type: 'function',
name: 'foo',
stateMutability: 'nonpayable',
inputs: [],
outputs: [{ type: 'string' }],
})
assertType<ParseSignature<'function foo() returns (string bar)'>>({
type: 'function',
name: 'foo',
stateMutability: 'nonpayable',
inputs: [],
outputs: [{ type: 'string', name: 'bar' }],
})
assertType<ParseSignature<'function foo() returns (Baz bar)', Structs>>({
type: 'function',
name: 'foo',
stateMutability: 'nonpayable',
inputs: [],
outputs: [
{
type: 'tuple',
name: 'bar',
components: [{ type: 'address', name: 'baz' }],
},
],
})
assertType<ParseSignature<'function foo() view returns (string bar)'>>({
type: 'function',
name: 'foo',
stateMutability: 'view',
inputs: [],
outputs: [{ type: 'string', name: 'bar' }],
})
assertType<
ParseSignature<'function foo() public payable returns (string bar)'>
>({
type: 'function',
name: 'foo',
stateMutability: 'payable',
inputs: [],
outputs: [{ type: 'string', name: 'bar' }],
})
assertType<
ParseSignature<'function foo() public payable returns(string bar)'>
>({
type: 'function',
name: 'foo',
stateMutability: 'payable',
inputs: [],
outputs: [{ type: 'string', name: 'bar' }],
})
// inputs and outputs
assertType<ParseSignature<'function foo(string) returns (string)'>>({
type: 'function',
name: 'foo',
stateMutability: 'nonpayable',
inputs: [{ type: 'string' }],
outputs: [{ type: 'string' }],
})
assertType<ParseSignature<'function foo(string bar) returns (string bar)'>>({
type: 'function',
name: 'foo',
stateMutability: 'nonpayable',
inputs: [{ type: 'string', name: 'bar' }],
outputs: [{ type: 'string', name: 'bar' }],
})
assertType<
ParseSignature<'function foo(string foo) public payable returns(string bar)'>
>({
type: 'function',
name: 'foo',
stateMutability: 'payable',
inputs: [{ type: 'string', name: 'foo' }],
outputs: [{ type: 'string', name: 'bar' }],
})
assertType<
ParseSignature<'function foo(Baz bar) returns (Baz bar)', Structs>
>({
type: 'function',
name: 'foo',
stateMutability: 'nonpayable',
inputs: [
{
type: 'tuple',
name: 'bar',
components: [{ type: 'address', name: 'baz' }],
},
],
outputs: [
{
type: 'tuple',
name: 'bar',
components: [{ type: 'address', name: 'baz' }],
},
],
})
assertType<
ParseSignature<'function foo(string bar) view returns (string bar)'>
>({
type: 'function',
name: 'foo',
stateMutability: 'view',
inputs: [{ type: 'string', name: 'bar' }],
outputs: [{ type: 'string', name: 'bar' }],
})
assertType<
ParseSignature<'function foo(string bar) public payable returns (string bar)'>
>({
type: 'function',
name: 'foo',
stateMutability: 'payable',
inputs: [{ type: 'string', name: 'bar' }],
outputs: [{ type: 'string', name: 'bar' }],
})
assertType<
ParseSignature<'function foo(((string)) calldata) returns (string, (string))'>
>({
type: 'function',
name: 'foo',
stateMutability: 'nonpayable',
inputs: [
{
type: 'tuple',
components: [{ type: 'tuple', components: [{ type: 'string' }] }],
},
],
outputs: [
{
type: 'string',
},
{
type: 'tuple',
components: [{ type: 'string' }],
},
],
})
})
test('ParseAbiParameters', () => {
expectTypeOf<ParseAbiParameters<[]>>().toEqualTypeOf<readonly []>()
expectTypeOf<ParseAbiParameters<['']>>().toEqualTypeOf<readonly []>()
expectTypeOf<ParseAbiParameters<['string']>>().toEqualTypeOf<
readonly [{ readonly type: 'string' }]
>()
expectTypeOf<
ParseAbiParameters<['string', 'string']> extends readonly [
{ readonly type: 'string' },
{ readonly type: 'string' },
]
? true
: false
>().toEqualTypeOf<true>()
})
test('ParseAbiParameter', () => {
// `${Type} ${Modifier} ${Name}` format
assertType<ParseAbiParameter<'string calldata foo', OptionsWithModifier>>({
type: 'string',
name: 'foo',
})
assertType<ParseAbiParameter<'string indexed foo', OptionsWithIndexed>>({
type: 'string',
indexed: true,
name: 'foo',
})
assertType<
ParseAbiParameter<
'Foo calldata foo',
OptionsWithModifier & OptionsWithStructs
>
>({
type: 'tuple',
name: 'foo',
components: [{ type: 'address', name: 'bar' }],
})
assertType<
ParseAbiParameter<
'Foo indexed foo',
OptionsWithIndexed & OptionsWithStructs
>
>({
type: 'tuple',
indexed: true,
name: 'foo',
components: [{ type: 'address', name: 'bar' }],
})
assertType<
ParseAbiParameter<
'Foo[][1] indexed foo',
OptionsWithIndexed & OptionsWithStructs
>
>({
name: 'foo',
type: 'tuple[][1]',
indexed: true,
components: [{ type: 'address', name: 'bar' }],
})
assertType<
ParseAbiParameter<
'Foo[][1] calldata foo',
OptionsWithModifier & OptionsWithStructs
>
>({
name: 'foo',
type: 'tuple[][1]',
components: [{ type: 'address', name: 'bar' }],
})
// `${Type} ${NameOrModifier}` format
assertType<ParseAbiParameter<'string foo'>>({
type: 'string',
name: 'foo',
})
assertType<ParseAbiParameter<'string indexed'>>({
type: 'string',
name: ['Error: "indexed" is a protected Solidity keyword.'],
})
assertType<ParseAbiParameter<'string calldata', OptionsWithModifier>>({
type: 'string',
})
assertType<ParseAbiParameter<'string indexed', OptionsWithIndexed>>({
type: 'string',
indexed: true,
})
assertType<
ParseAbiParameter<'Foo calldata', OptionsWithModifier & OptionsWithStructs>
>({
type: 'tuple',
components: [{ type: 'address', name: 'bar' }],
})
assertType<
ParseAbiParameter<'Foo indexed', OptionsWithIndexed & OptionsWithStructs>
>({
type: 'tuple',
indexed: true,
components: [{ type: 'address', name: 'bar' }],
})
assertType<ParseAbiParameter<'Foo[][1] foo', OptionsWithStructs>>({
name: 'foo',
type: 'tuple[][1]',
components: [{ type: 'address', name: 'bar' }],
})
assertType<ParseAbiParameter<'(address bar)[1] foo', OptionsWithStructs>>({
name: 'foo',
type: 'tuple[1]',
components: [{ type: 'address', name: 'bar' }],
})
// `${Type}` format
assertType<ParseAbiParameter<'string'>>({
type: 'string',
})
assertType<ParseAbiParameter<'Foo', OptionsWithStructs>>({
type: 'tuple',
components: [{ type: 'address', name: 'bar' }],
})
assertType<ParseAbiParameter<'Foo[][1]', OptionsWithStructs>>({
type: 'tuple[][1]',
components: [{ type: 'address', name: 'bar' }],
})
// tuple format
assertType<ParseAbiParameter<'(string)'>>({
type: 'tuple',
components: [{ type: 'string' }],
})
assertType<ParseAbiParameter<'(string, string)'>>({
type: 'tuple',
components: [{ type: 'string' }, { type: 'string' }],
})
assertType<ParseAbiParameter<'(string, (string))'>>({
type: 'tuple',
components: [
{ type: 'string' },
{ type: 'tuple', components: [{ type: 'string' }] },
],
})
assertType<ParseAbiParameter<'((((string baz) bar)[1] foo) boo)'>>({
type: 'tuple',
components: [
{
type: 'tuple',
components: [
{
type: 'tuple[1]',
components: [
{
type: 'tuple',
components: [
{
type: 'string',
name: 'baz',
},
],
name: 'bar',
},
],
name: 'foo',
},
],
name: 'boo',
},
],
})
assertType<ParseAbiParameter<'address alias'>>({
type: 'address',
name: ['Error: "alias" is a protected Solidity keyword.'],
})
// assertType<ParseAbiParameter<'Foo foo'>>({
// type: ['Error: Type "Foo" is not a valid ABI type.'],
// name: 'foo',
// })
assertType<ParseAbiParameter<'int'>>({ type: 'int256' })
assertType<ParseAbiParameter<'uint'>>({ type: 'uint256' })
assertType<ParseAbiParameter<'uint[]'>>({ type: 'uint256[]' })
assertType<ParseAbiParameter<'uint[10][]'>>({ type: 'uint256[10][]' })
})
test('SplitParameters', () => {
expectTypeOf<SplitParameters<''>>().toEqualTypeOf<[]>()
expectTypeOf<SplitParameters<'string'>>().toEqualTypeOf<['string']>()
expectTypeOf<SplitParameters<'string, string'>>().toEqualTypeOf<
['string', 'string']
>()
expectTypeOf<SplitParameters<'string indexed foo'>>().toEqualTypeOf<
['string indexed foo']
>()
expectTypeOf<SplitParameters<'string foo, string bar'>>().toEqualTypeOf<
['string foo', 'string bar']
>()
expectTypeOf<
SplitParameters<'address owner, (bool loading, (string[][] names) cats)[] dog, uint tokenId'>
>().toEqualTypeOf<
[
'address owner',
'(bool loading, (string[][] names) cats)[] dog',
'uint tokenId',
]
>()
expectTypeOf<SplitParameters<'((string)'>>().toEqualTypeOf<
[
'Error: Unbalanced parentheses. "((string)" has too many opening parentheses.',
]
>()
expectTypeOf<SplitParameters<'((((string))'>>().toEqualTypeOf<
[
'Error: Unbalanced parentheses. "((((string))" has too many opening parentheses.',
]
>()
expectTypeOf<SplitParameters<'(string))'>>().toEqualTypeOf<
[
'Error: Unbalanced parentheses. "(string)" has too many closing parentheses.',
]
>()
expectTypeOf<SplitParameters<'(string))))'>>().toEqualTypeOf<
[
'Error: Unbalanced parentheses. "(string)" has too many closing parentheses.',
]
>()
})
test('_ValidateAbiParameter', () => {
expectTypeOf<_ValidateAbiParameter<{ type: 'string' }>>().toEqualTypeOf<{
type: 'string'
}>()
expectTypeOf<
_ValidateAbiParameter<{ type: 'string'; name: 'foo' }>
>().toEqualTypeOf<{
type: 'string'
name: 'foo'
}>()
expectTypeOf<_ValidateAbiParameter<{ type: 'int' }>>().toEqualTypeOf<{
readonly type: 'int256'
}>()
expectTypeOf<_ValidateAbiParameter<{ type: 'uint' }>>().toEqualTypeOf<{
readonly type: 'uint256'
}>()
expectTypeOf<_ValidateAbiParameter<{ type: 'uint[]' }>>().toEqualTypeOf<{
readonly type: 'uint256[]'
}>()
expectTypeOf<_ValidateAbiParameter<{ type: 'uint[10][]' }>>().toEqualTypeOf<{
readonly type: 'uint256[10][]'
}>()
// expectTypeOf<
// _ValidateAbiParameter<{ type: 'string'; name: 'f0!' }>
// >().toEqualTypeOf<{
// type: 'string'
// readonly name: ['Error: "f0!" contains invalid character.']
// }>()
// expectTypeOf<
// _ValidateAbiParameter<{ type: 'string'; name: 'alias' }>
// >().toEqualTypeOf<{
// type: 'string'
// readonly name: ['Error: "alias" is a protected Solidity keyword.']
// }>()
// expectTypeOf<
// _ValidateAbiParameter<{ type: 'Bar'; name: 'foo' }>
// >().toEqualTypeOf<{
// readonly type: ['Error: Type "Bar" is not a valid ABI type.']
// name: 'foo'
// }>()
})
test('_ParseFunctionParametersAndStateMutability', () => {
expectTypeOf<
_ParseFunctionParametersAndStateMutability<'function foo()'>
>().toEqualTypeOf<{
Inputs: ''
StateMutability: 'nonpayable'
}>()
expectTypeOf<
_ParseFunctionParametersAndStateMutability<'function foo(string bar)'>
>().toEqualTypeOf<{
Inputs: 'string bar'
StateMutability: 'nonpayable'
}>()
expectTypeOf<
_ParseFunctionParametersAndStateMutability<'function foo() view'>
>().toEqualTypeOf<{
Inputs: ''
StateMutability: 'view'
}>()
expectTypeOf<
_ParseFunctionParametersAndStateMutability<'function foo(string bar) view'>
>().toEqualTypeOf<{
Inputs: 'string bar'
StateMutability: 'view'
}>()
expectTypeOf<
_ParseFunctionParametersAndStateMutability<'function foo(string bar, uint256) external view'>
>().toEqualTypeOf<{
Inputs: 'string bar, uint256'
StateMutability: 'view'
}>()
expectTypeOf<
_ParseFunctionParametersAndStateMutability<'function stepChanges((uint256 characterID, uint64 newPosition, uint24 xp, uint24 epoch, uint8 hp, (int32 x, int32 y, uint8 hp, uint8 kind)[5] monsters, (uint8 monsterIndexPlus1, uint8 attackCardsUsed1, uint8 attackCardsUsed2, uint8 defenseCardsUsed1, uint8 defenseCardsUsed2) battle) stateChanges, uint256 action, bool revetOnInvalidMoves) pure returns ((uint256 characterID, uint64 newPosition, uint24 xp, uint24 epoch, uint8 hp, (int32 x, int32 y, uint8 hp, uint8 kind)[5] monsters, (uint8 monsterIndexPlus1, uint8 attackCardsUsed1, uint8 attackCardsUsed2, uint8 defenseCardsUsed1, uint8 defenseCardsUsed2) battle))'>
>().toEqualTypeOf<{
Inputs: '(uint256 characterID, uint64 newPosition, uint24 xp, uint24 epoch, uint8 hp, (int32 x, int32 y, uint8 hp, uint8 kind)[5] monsters, (uint8 monsterIndexPlus1, uint8 attackCardsUsed1, uint8 attackCardsUsed2, uint8 defenseCardsUsed1, uint8 defenseCardsUsed2) battle) stateChanges, uint256 action, bool revetOnInvalidMoves'
StateMutability: 'pure'
}>()
})
test('_ParseTuple', () => {
// basic tuples
assertType<_ParseTuple<'(string)'>>({
type: 'tuple',
components: [{ type: 'string' }],
})
assertType<_ParseTuple<'(string, string)'>>({
type: 'tuple',
components: [{ type: 'string' }, { type: 'string' }],
})
assertType<_ParseTuple<'((string, string), string)'>>({
type: 'tuple',
components: [
{ type: 'tuple', components: [{ type: 'string' }, { type: 'string' }] },
{ type: 'string' },
],
})
assertType<_ParseTuple<'((string))'>>({
type: 'tuple',
components: [{ type: 'tuple', components: [{ type: 'string' }] }],
})
assertType<_ParseTuple<'(((string)))'>>({
type: 'tuple',
components: [
{
type: 'tuple',
components: [{ type: 'tuple', components: [{ type: 'string' }] }],
},
],
})
assertType<_ParseTuple<'(string calldata)'>>({
type: 'tuple',
components: [
{
type: 'string',
name: ['Error: "calldata" is a protected Solidity keyword.'],
},
],
})
assertType<_ParseTuple<'(Foo)', OptionsWithStructs>>({
type: 'tuple',
components: [
{ type: 'tuple', components: [{ type: 'address', name: 'bar' }] },
],
})
// named tuple params
assertType<_ParseTuple<'(string foo)'>>({
type: 'tuple',
components: [{ type: 'string', name: 'foo' }],
})
assertType<_ParseTuple<'(string bar) foo'>>({
name: 'foo',
type: 'tuple',
components: [{ type: 'string', name: 'bar' }],
})
assertType<_ParseTuple<'((string bar) foo)'>>({
type: 'tuple',
components: [
{
type: 'tuple',
name: 'foo',
components: [{ type: 'string', name: 'bar' }],
},
],
})
assertType<_ParseTuple<'(Foo) foo', OptionsWithStructs>>({
type: 'tuple',
name: 'foo',
components: [
{ type: 'tuple', components: [{ type: 'address', name: 'bar' }] },
],
})
assertType<_ParseTuple<'((string)) calldata', OptionsWithModifier>>({
type: 'tuple',
components: [{ type: 'tuple', components: [{ type: 'string' }] }],
})
// mixed basic and named tuple params
assertType<_ParseTuple<'(string, string foo)'>>({
type: 'tuple',
components: [{ type: 'string' }, { type: 'string', name: 'foo' }],
})
assertType<_ParseTuple<'(string, string bar) foo'>>({
name: 'foo',
type: 'tuple',
components: [{ type: 'string' }, { type: 'string', name: 'bar' }],
})
assertType<
_ParseTuple<'(string baz, string bar) indexed foo', OptionsWithIndexed>
>({
name: 'foo',
type: 'tuple',
components: [
{ type: 'string', name: 'baz' },
{ type: 'string', name: 'bar' },
],
indexed: true,
})
// inline tuples of tuples
assertType<_ParseTuple<'(string)[]'>>({
type: 'tuple[]',
components: [{ type: 'string' }],
})
assertType<_ParseTuple<'(string, string)[]'>>({
type: 'tuple[]',
components: [{ type: 'string' }, { type: 'string' }],
})
assertType<_ParseTuple<'((string))[]'>>({
type: 'tuple[]',
components: [{ type: 'tuple', components: [{ type: 'string' }] }],
})
assertType<_ParseTuple<'((string)[])[]'>>({
type: 'tuple[]',
components: [
{
type: 'tuple[]',
components: [{ type: 'string' }],
},
],
})
// inline tuples of tuples with name and/or modifier attached
assertType<_ParseTuple<'(string)[] foo'>>({
type: 'tuple[]',
name: 'foo',
components: [{ type: 'string' }],
})
assertType<_ParseTuple<'(string, string bar)[] foo'>>({
type: 'tuple[]',
name: 'foo',
components: [{ type: 'string' }, { type: 'string', name: 'bar' }],
})
assertType<_ParseTuple<'((string baz) bar)[] foo'>>({
type: 'tuple[]',
name: 'foo',
components: [
{
type: 'tuple',
name: 'bar',
components: [{ type: 'string', name: 'baz' }],
},
],
})
assertType<
_ParseTuple<
'((string)[])[] indexed foo',
OptionsWithIndexed & OptionsWithStructs
>
>({
type: 'tuple[]',
name: 'foo',
indexed: true,
components: [
{
type: 'tuple[]',
components: [{ type: 'string' }],
},
],
})
assertType<_ParseTuple<'((string) foo)[]'>>({
type: 'tuple[]',
components: [
{ type: 'tuple', name: 'foo', components: [{ type: 'string' }] },
],
})
assertType<_ParseTuple<'(string) indexed bar', OptionsWithIndexed>>({
type: 'tuple',
name: 'bar',
indexed: true,
components: [{ type: 'string' }],
})
assertType<_ParseTuple<'((((string))) bar)'>>({
type: 'tuple',
components: [
{
name: 'bar',
type: 'tuple',
components: [
{
type: 'tuple',
components: [
{
type: 'tuple',
components: [{ type: 'string' }],
},
],
},
],
},
],
})
assertType<_ParseTuple<'(((string) baz) bar) foo'>>({
type: 'tuple',
name: 'foo',
components: [
{
name: 'bar',
type: 'tuple',
components: [
{
name: 'baz',
type: 'tuple',
components: [{ type: 'string' }],
},
],
},
],
})
assertType<_ParseTuple<'((((string) baz)) bar) foo'>>({
type: 'tuple',
name: 'foo',
components: [
{
name: 'bar',
type: 'tuple',
components: [
{
type: 'tuple',
components: [
{
name: 'baz',
type: 'tuple',
components: [{ type: 'string' }],
},
],
},
],
},
],
})
// Modifiers not converted inside tuples
assertType<_ParseTuple<'(string indexed)[] foo', OptionsWithIndexed>>({
type: 'tuple[]',
name: 'foo',
components: [
{
type: 'string',
name: ['Error: "indexed" is a protected Solidity keyword.'],
},
],
})
assertType<_ParseTuple<'((((string baz) bar)[1] foo) boo)'>>({
type: 'tuple',
components: [
{
type: 'tuple',
components: [
{
type: 'tuple[1]',
components: [
{
type: 'tuple',
components: [
{
type: 'string',
name: 'baz',
},
],
name: 'bar',
},
],
name: 'foo',
},
],
name: 'boo',
},
],
})
assertType<_ParseTuple<'(((string baz) bar)[1] foo) boo'>>({
type: 'tuple',
components: [
{
type: 'tuple[1]',
components: [
{
type: 'tuple',
components: [
{
type: 'string',
name: 'baz',
},
],
name: 'bar',
},
],
name: 'foo',
},
],
name: 'boo',
})
})
test('_SplitNameOrModifier', () => {
expectTypeOf<_SplitNameOrModifier<'foo'>>().toEqualTypeOf<{
readonly name: 'foo'
}>()
expectTypeOf<
_SplitNameOrModifier<'indexed foo', { modifier: 'indexed' }>
>().toEqualTypeOf<{
readonly name: 'foo'
readonly indexed: true
}>()
expectTypeOf<
_SplitNameOrModifier<'calldata foo', { modifier: 'calldata' }>
>().toEqualTypeOf<{
readonly name: 'foo'
}>()
})
test('_UnwrapNameOrModifier', () => {
expectTypeOf<_UnwrapNameOrModifier<'bar) foo'>>().toEqualTypeOf<{
End: 'bar'
nameOrModifier: 'foo'
}>()
expectTypeOf<_UnwrapNameOrModifier<'baz) bar) foo'>>().toEqualTypeOf<{
End: 'baz) bar'
nameOrModifier: 'foo'
}>()
expectTypeOf<_UnwrapNameOrModifier<'string) calldata foo'>>().toEqualTypeOf<{
End: 'string'
nameOrModifier: 'calldata foo'
}>()
})
import type {
AbiParameter,
AbiStateMutability,
AbiType,
SolidityFixedArrayRange,
} from 'abitype'
import type { ResolvedRegister } from 'abitype'
import type { Error, IsUnknown, Merge, Pretty, Trim } from '../types.js'
import type {
ErrorSignature,
EventModifier,
EventSignature,
FallbackSignature,
FunctionModifier,
FunctionSignature,
IsConstructorSignature,
IsErrorSignature,
IsEventSignature,
IsFunctionSignature,
Modifier,
ReceiveSignature,
Scope,
ValidateName,
} from './signatures.js'
import type { StructLookup } from './structs.js'
export type ParseSignature<
signature extends string,
structs extends StructLookup | unknown = unknown,
> =
| (IsErrorSignature<signature> extends true
? signature extends ErrorSignature<infer name, infer parameters>
? {
readonly name: name
readonly type: 'error'
readonly inputs: ParseAbiParameters<
SplitParameters<parameters>,
{ structs: structs }
>
}
: never
: never)
| (IsEventSignature<signature> extends true
? signature extends EventSignature<infer name, infer parameters>
? {
readonly name: name
readonly type: 'event'
readonly inputs: ParseAbiParameters<
SplitParameters<parameters>,
{ modifier: EventModifier; structs: structs }
>
}
: never
: never)
| (IsFunctionSignature<signature> extends true
? signature extends FunctionSignature<infer name, infer tail>
? {
readonly name: name
readonly type: 'function'
readonly stateMutability: _ParseFunctionParametersAndStateMutability<signature>['StateMutability']
readonly inputs: ParseAbiParameters<
SplitParameters<
_ParseFunctionParametersAndStateMutability<signature>['Inputs']
>,
{ modifier: FunctionModifier; structs: structs }
>
readonly outputs: tail extends
| `${string}returns (${infer returns})`
| `${string}returns(${infer returns})`
? ParseAbiParameters<
SplitParameters<returns>,
{ modifier: FunctionModifier; structs: structs }
>
: readonly []
}
: never
: never)
| (IsConstructorSignature<signature> extends true
? {
readonly type: 'constructor'
readonly stateMutability: _ParseConstructorParametersAndStateMutability<signature>['StateMutability']
readonly inputs: ParseAbiParameters<
SplitParameters<
_ParseConstructorParametersAndStateMutability<signature>['Inputs']
>,
{ structs: structs }
>
}
: never)
| (signature extends FallbackSignature<infer stateMutability>
? {
readonly type: 'fallback'
readonly stateMutability: stateMutability extends `${string}payable`
? 'payable'
: 'nonpayable'
}
: never)
| (signature extends ReceiveSignature
? {
readonly type: 'receive'
readonly stateMutability: 'payable'
}
: never)
type ParseOptions = {
modifier?: Modifier
structs?: StructLookup | unknown
}
type DefaultParseOptions = object
export type ParseAbiParameters<
signatures extends readonly string[],
options extends ParseOptions = DefaultParseOptions,
> = signatures extends ['']
? readonly []
: readonly [
...{
[key in keyof signatures]: ParseAbiParameter<signatures[key], options>
},
]
export type ParseAbiParameter<
signature extends string,
options extends ParseOptions = DefaultParseOptions,
> = (
signature extends `(${string})${string}`
? _ParseTuple<signature, options>
: // Convert string to shallow AbiParameter (structs resolved yet)
// Check for `${Type} ${nameOrModifier}` format (e.g. `uint256 foo`, `uint256 indexed`, `uint256 indexed foo`)
signature extends `${infer type} ${infer tail}`
? Trim<tail> extends infer trimmed extends string
? // TODO: data location modifiers only allowed for struct/array types
{ readonly type: Trim<type> } & _SplitNameOrModifier<trimmed, options>
: never
: // Must be `${Type}` format (e.g. `uint256`)
{ readonly type: signature }
) extends infer shallowParameter extends AbiParameter & {
type: string
indexed?: boolean
}
? // Resolve struct types
// Starting with plain struct types (e.g. `Foo`)
(
shallowParameter['type'] extends keyof options['structs']
? {
readonly type: 'tuple'
readonly components: options['structs'][shallowParameter['type']]
} & (IsUnknown<shallowParameter['name']> extends false
? { readonly name: shallowParameter['name'] }
: object) &
(shallowParameter['indexed'] extends true
? { readonly indexed: true }
: object)
: // Resolve tuple structs (e.g. `Foo[]`, `Foo[2]`, `Foo[][2]`, etc.)
shallowParameter['type'] extends `${infer type extends string &
keyof options['structs']}[${infer tail}]`
? {
readonly type: `tuple[${tail}]`
readonly components: options['structs'][type]
} & (IsUnknown<shallowParameter['name']> extends false
? { readonly name: shallowParameter['name'] }
: object) &
(shallowParameter['indexed'] extends true
? { readonly indexed: true }
: object)
: // Not a struct, just return
shallowParameter
) extends infer Parameter extends AbiParameter & {
type: string
indexed?: boolean
}
? Pretty<_ValidateAbiParameter<Parameter>>
: never
: never
export type SplitParameters<
signature extends string,
result extends unknown[] = [],
current extends string = '',
depth extends readonly number[] = [],
> = signature extends ''
? current extends ''
? [...result] // empty string was passed in to `SplitParameters`
: depth['length'] extends 0
? [...result, Trim<current>]
: Error<`Unbalanced parentheses. "${current}" has too many opening parentheses.`>
: signature extends `${infer char}${infer tail}`
? char extends ','
? depth['length'] extends 0
? SplitParameters<tail, [...result, Trim<current>], ''>
: SplitParameters<tail, result, `${current}${char}`, depth>
: char extends '('
? SplitParameters<tail, result, `${current}${char}`, [...depth, 1]>
: char extends ')'
? depth['length'] extends 0
? Error<`Unbalanced parentheses. "${current}" has too many closing parentheses.`>
: SplitParameters<tail, result, `${current}${char}`, Pop<depth>>
: SplitParameters<tail, result, `${current}${char}`, depth>
: []
type Pop<type extends readonly number[]> = type extends [...infer head, any]
? head
: []
export type _ValidateAbiParameter<abiParameter extends AbiParameter> =
// Validate `name`
(
abiParameter extends { name: string }
? ValidateName<abiParameter['name']> extends infer name
? name extends abiParameter['name']
? abiParameter
: // Add `Error` as `name`
Merge<abiParameter, { readonly name: name }>
: never
: abiParameter
) extends infer parameter
? // Validate `type` against `AbiType`
(
ResolvedRegister['strictAbiType'] extends true
? parameter extends { type: AbiType }
? parameter
: Merge<
parameter,
{
readonly type: Error<`Type "${parameter extends {
type: string
}
? parameter['type']
: string}" is not a valid ABI type.`>
}
>
: parameter
) extends infer parameter2 extends { type: unknown }
? // Convert `(u)int` to `(u)int256`
parameter2['type'] extends `${infer prefix extends
| 'u'
| ''}int${infer suffix extends `[${string}]` | ''}`
? Pretty<
Merge<parameter2, { readonly type: `${prefix}int256${suffix}` }>
>
: parameter2
: never
: never
export type _ParseFunctionParametersAndStateMutability<
signature extends string,
> = signature extends
| `${infer head}returns (${string})`
| `${infer head}returns(${string})`
? _ParseFunctionParametersAndStateMutability<Trim<head>>
: signature extends `function ${string}(${infer parameters})`
? { Inputs: parameters; StateMutability: 'nonpayable' }
: signature extends `function ${string}(${infer parameters}) ${infer scopeOrStateMutability extends
Scope | AbiStateMutability | `${Scope} ${AbiStateMutability}`}`
? {
Inputs: parameters
StateMutability: _ParseStateMutability<scopeOrStateMutability>
}
: signature extends `function ${string}(${infer tail}`
? _UnwrapNameOrModifier<tail> extends {
nameOrModifier: infer scopeOrStateMutability extends string
End: infer parameters
}
? {
Inputs: parameters
StateMutability: _ParseStateMutability<scopeOrStateMutability>
}
: never
: never
type _ParseStateMutability<signature extends string> =
signature extends `${Scope} ${infer stateMutability extends AbiStateMutability}`
? stateMutability
: signature extends AbiStateMutability
? signature
: 'nonpayable'
type _ParseConstructorParametersAndStateMutability<signature extends string> =
signature extends `constructor(${infer parameters}) payable`
? { Inputs: parameters; StateMutability: 'payable' }
: signature extends `constructor(${infer parameters})`
? { Inputs: parameters; StateMutability: 'nonpayable' }
: never
export type _ParseTuple<
signature extends `(${string})${string}`,
options extends ParseOptions = DefaultParseOptions,
> =
/** Tuples without name or modifier (e.g. `(string)`, `(string foo)`) */
signature extends `(${infer parameters})`
? {
readonly type: 'tuple'
readonly components: ParseAbiParameters<
SplitParameters<parameters>,
Omit<options, 'modifier'>
>
}
: // Array or fixed-length array tuples (e.g. `(string)[]`, `(string)[5]`)
signature extends `(${infer head})[${'' | `${SolidityFixedArrayRange}`}]`
? signature extends `(${head})[${infer size}]`
? {
readonly type: `tuple[${size}]`
readonly components: ParseAbiParameters<
SplitParameters<head>,
Omit<options, 'modifier'>
>
}
: never
: // Array or fixed-length array tuples with name and/or modifier attached (e.g. `(string)[] foo`, `(string)[5] foo`)
signature extends `(${infer parameters})[${
| ''
| `${SolidityFixedArrayRange}`}] ${infer nameOrModifier}`
? signature extends `(${parameters})[${infer size}] ${nameOrModifier}`
? nameOrModifier extends `${string}) ${string}`
? _UnwrapNameOrModifier<nameOrModifier> extends infer parts extends
{
nameOrModifier: string
End: string
}
? {
readonly type: 'tuple'
readonly components: ParseAbiParameters<
SplitParameters<`${parameters})[${size}] ${parts['End']}`>,
Omit<options, 'modifier'>
>
} & _SplitNameOrModifier<parts['nameOrModifier'], options>
: never
: {
readonly type: `tuple[${size}]`
readonly components: ParseAbiParameters<
SplitParameters<parameters>,
Omit<options, 'modifier'>
>
} & _SplitNameOrModifier<nameOrModifier, options>
: never
: // Tuples with name and/or modifier attached (e.g. `(string) foo`, `(string bar) foo`)
signature extends `(${infer parameters}) ${infer nameOrModifier}`
? // Check that `nameOrModifier` didn't get matched to `baz) bar) foo` (e.g. `(((string) baz) bar) foo`)
nameOrModifier extends `${string}) ${string}`
? _UnwrapNameOrModifier<nameOrModifier> extends infer parts extends
{
nameOrModifier: string
End: string
}
? {
readonly type: 'tuple'
readonly components: ParseAbiParameters<
SplitParameters<`${parameters}) ${parts['End']}`>,
Omit<options, 'modifier'>
>
} & _SplitNameOrModifier<parts['nameOrModifier'], options>
: never
: {
readonly type: 'tuple'
readonly components: ParseAbiParameters<
SplitParameters<parameters>,
Omit<options, 'modifier'>
>
} & _SplitNameOrModifier<nameOrModifier, options>
: never
// Split name and modifier (e.g. `indexed foo` => `{ name: 'foo', indexed: true }`)
export type _SplitNameOrModifier<
signature extends string,
options extends ParseOptions = DefaultParseOptions,
> =
Trim<signature> extends infer trimmed
? options extends { modifier: Modifier }
? // TODO: Check that modifier is allowed
trimmed extends `${infer mod extends options['modifier']} ${infer name}`
? Pretty<
{ readonly name: Trim<name> } & (mod extends 'indexed'
? { readonly indexed: true }
: object)
>
: trimmed extends options['modifier']
? trimmed extends 'indexed'
? { readonly indexed: true }
: object
: { readonly name: trimmed }
: { readonly name: trimmed }
: never
// `baz) bar) foo` (e.g. `(((string) baz) bar) foo`)
export type _UnwrapNameOrModifier<
signature extends string,
current extends string = '',
> = signature extends `${infer head}) ${infer tail}`
? _UnwrapNameOrModifier<
tail,
`${current}${current extends '' ? '' : ') '}${head}`
>
: { End: Trim<current>; nameOrModifier: Trim<signature> }
+6
-2
import * as abitype from 'abitype';
import type * as Errors from './Errors.js';
import type * as AbiItem_internal from './internal/abiItem.js';
import * as formatAbi from './internal/human-readable/formatAbi.js';
import * as parseAbi from './internal/human-readable/parseAbi.js';
/** Root type for an ABI. */
export type Abi = abitype.Abi;
export { InvalidSignatureError, InvalidStructSignatureError, UnknownSignatureError, } from './internal/human-readable/errors.js';
export { CircularReferenceError } from './internal/human-readable/errors.js';
/** @internal */

@@ -43,3 +47,3 @@ export declare function format<const abi extends Abi>(abi: abi): format.ReturnType<abi>;

export declare namespace format {
type ReturnType<abi extends Abi | readonly unknown[] = Abi> = abitype.FormatAbi<abi>;
type ReturnType<abi extends Abi | readonly unknown[] = Abi> = formatAbi.FormatAbi<abi>;
type ErrorType = Errors.GlobalErrorType;

@@ -100,5 +104,5 @@ }

export declare namespace from {
type ReturnType<abi extends Abi | readonly string[] | readonly unknown[] = Abi> = abi extends readonly string[] ? abitype.ParseAbi<abi> : abi;
type ReturnType<abi extends Abi | readonly string[] | readonly unknown[] = Abi> = abi extends readonly string[] ? parseAbi.ParseAbi<abi> : abi;
type ErrorType = Errors.GlobalErrorType;
}
//# sourceMappingURL=Abi.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"Abi.d.ts","sourceRoot":"","sources":["../../src/core/Abi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAE1C,OAAO,KAAK,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAE9D,4BAA4B;AAC5B,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;AAE7B,gBAAgB;AAChB,wBAAgB,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAC/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,SAAS,MAAM,EAAE,CAAA;AAMxE,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,UAAU,CAAC,GAAG,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,GAAG,IACxD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAExB,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC;AAED,gBAAgB;AAChB,wBAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,GAAG,SAAS,MAAM,EAAE,EAC5D,GAAG,EAAE,GAAG,GACN,CAAC,GAAG,SAAS,SAAS,MAAM,EAAE,GAC1B,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,GAChC,OAAO,CAAC,GACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,MAAM,EAAE,GAAG,GAAG,CAAA;AAOvD,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,UAAU,CACb,GAAG,SAAS,GAAG,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,OAAO,EAAE,GAAG,GAAG,IAC5D,GAAG,SAAS,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IAE/D,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC"}
{"version":3,"file":"Abi.d.ts","sourceRoot":"","sources":["../../src/core/Abi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAE1C,OAAO,KAAK,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAC9D,OAAO,KAAK,SAAS,MAAM,wCAAwC,CAAA;AACnE,OAAO,KAAK,QAAQ,MAAM,uCAAuC,CAAA;AAEjE,4BAA4B;AAC5B,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;AAE7B,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA;AAE5E,gBAAgB;AAChB,wBAAgB,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAC/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,SAAS,MAAM,EAAE,CAAA;AAMxE,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,UAAU,CAAC,GAAG,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,GAAG,IACxD,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAE1B,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC;AAED,gBAAgB;AAChB,wBAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,GAAG,SAAS,MAAM,EAAE,EAC5D,GAAG,EAAE,GAAG,GACN,CAAC,GAAG,SAAS,SAAS,MAAM,EAAE,GAC1B,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,GAChC,OAAO,CAAC,GACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,MAAM,EAAE,GAAG,GAAG,CAAA;AAOvD,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,UAAU,CACb,GAAG,SAAS,GAAG,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,OAAO,EAAE,GAAG,GAAG,IAC5D,GAAG,SAAS,SAAS,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IAEhE,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC"}

@@ -1,6 +0,9 @@

import * as abitype from 'abitype';
import * as internal from './internal/abi.js';
import * as formatAbi from './internal/human-readable/formatAbi.js';
import * as parseAbi from './internal/human-readable/parseAbi.js';
export { InvalidSignatureError, InvalidStructSignatureError, UnknownSignatureError, } from './internal/human-readable/errors.js';
export { CircularReferenceError } from './internal/human-readable/errors.js';
// eslint-disable-next-line jsdoc-js/require-jsdoc
export function format(abi) {
return abitype.formatAbi(abi);
return formatAbi.formatAbi(abi);
}

@@ -10,5 +13,5 @@ // eslint-disable-next-line jsdoc-js/require-jsdoc

if (internal.isSignatures(abi))
return abitype.parseAbi(abi);
return parseAbi.parseAbi(abi);
return abi;
}
//# sourceMappingURL=Abi.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"Abi.js","sourceRoot":"","sources":["../../src/core/Abi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AA0C7C,kDAAkD;AAClD,MAAM,UAAU,MAAM,CAAC,GAA6B;IAClD,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,CAAU,CAAA;AACxC,CAAC;AAkED,kDAAkD;AAClD,MAAM,UAAU,IAAI,CAAC,GAA4B;IAC/C,IAAI,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC5D,OAAO,GAAG,CAAA;AACZ,CAAC"}
{"version":3,"file":"Abi.js","sourceRoot":"","sources":["../../src/core/Abi.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAE7C,OAAO,KAAK,SAAS,MAAM,wCAAwC,CAAA;AACnE,OAAO,KAAK,QAAQ,MAAM,uCAAuC,CAAA;AAKjE,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA;AAsC5E,kDAAkD;AAClD,MAAM,UAAU,MAAM,CAAC,GAA6B;IAClD,OAAO,SAAS,CAAC,SAAS,CAAC,GAAG,CAAU,CAAA;AAC1C,CAAC;AAkED,kDAAkD;AAClD,MAAM,UAAU,IAAI,CAAC,GAA4B;IAC/C,IAAI,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC7D,OAAO,GAAG,CAAA;AACZ,CAAC"}

@@ -8,2 +8,3 @@ import * as abitype from 'abitype';

import type * as internal from './internal/abiConstructor.js';
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js';
import type { IsNarrowable } from './internal/types.js';

@@ -199,3 +200,3 @@ /** Root type for an {@link ox#AbiItem.AbiItem} with a `constructor` type. */

export declare namespace format {
type ReturnType<abiConstructor extends AbiConstructor = AbiConstructor> = abitype.FormatAbiItem<abiConstructor>;
type ReturnType<abiConstructor extends AbiConstructor = AbiConstructor> = formatAbiItem.FormatAbiItem<abiConstructor>;
type ErrorType = Errors.GlobalErrorType;

@@ -202,0 +203,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"AbiConstructor.d.ts","sourceRoot":"","sources":["../../src/core/AbiConstructor.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"AbiConstructor.d.ts","sourceRoot":"","sources":["../../src/core/AbiConstructor.ts"],"names":[],"mappings":"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"}

@@ -1,2 +0,1 @@

import * as abitype from 'abitype';
import * as AbiItem from './AbiItem.js';

@@ -6,2 +5,3 @@ import * as AbiParameters from './AbiParameters.js';

import * as Hex from './Hex.js';
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js';
// eslint-disable-next-line jsdoc-js/require-jsdoc

@@ -54,3 +54,3 @@ export function decode(...parameters) {

export function format(abiConstructor) {
return abitype.formatAbiItem(abiConstructor);
return formatAbiItem.formatAbiItem(abiConstructor);
}

@@ -57,0 +57,0 @@ /** @internal */

@@ -1,1 +0,1 @@

{"version":3,"file":"AbiConstructor.js","sourceRoot":"","sources":["../../src/core/AbiConstructor.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"AbiConstructor.js","sourceRoot":"","sources":["../../src/core/AbiConstructor.ts"],"names":[],"mappings":"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"}

@@ -9,2 +9,3 @@ import * as abitype from 'abitype';

import type * as AbiItem_internal from './internal/abiItem.js';
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js';
import type { IsNarrowable, IsNever } from './internal/types.js';

@@ -295,4 +296,5 @@ /** Root type for an {@link ox#AbiItem.AbiItem} with an `error` type. */

*/
export declare function format<const abiError extends AbiError>(abiError: abiError | AbiError): abitype.FormatAbiItem<abiError>;
export declare function format<const abiError extends AbiError>(abiError: abiError | AbiError): format.ReturnType<abiError>;
export declare namespace format {
type ReturnType<abiError extends AbiError = AbiError> = formatAbiItem.FormatAbiItem<abiError>;
type ErrorType = Errors.GlobalErrorType;

@@ -299,0 +301,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"AbiError.d.ts","sourceRoot":"","sources":["../../src/core/AbiError.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"AbiError.d.ts","sourceRoot":"","sources":["../../src/core/AbiError.ts"],"names":[],"mappings":"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"}

@@ -1,5 +0,5 @@

import * as abitype from 'abitype';
import * as AbiItem from './AbiItem.js';
import * as AbiParameters from './AbiParameters.js';
import * as Hex from './Hex.js';
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js';
// eslint-disable-next-line jsdoc-js/require-jsdoc

@@ -112,3 +112,3 @@ export function decode(...parameters) {

export function format(abiError) {
return abitype.formatAbiItem(abiError);
return formatAbiItem.formatAbiItem(abiError);
}

@@ -115,0 +115,0 @@ /**

@@ -1,1 +0,1 @@

{"version":3,"file":"AbiError.js","sourceRoot":"","sources":["../../src/core/AbiError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AA6L/B,kDAAkD;AAClD,MAAM,UAAU,MAAM,CACpB,GAAG,UAO0E;IAE7E,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE;QAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,UAKlC,CAAA;YACD,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,UAA6D,CAAA;IACtE,CAAC,CAAC,EAAE,CAAA;IACJ,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,OAAO,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5E,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAEnD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CACjC,QAAQ,CAAC,MAAM,EACf,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAClB,OAAO,CACR,CAAA;IACD,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAgDD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,OAAO,CAIrB,GAAuC,EACvC,IAAa,EACb,UAA+B,EAAE;IAEjC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,OAAO,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,IAAa,CAAa,CAAA;IACrD,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK;SACG,CAAA;IACZ,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC;QACrE,KAAK;KACG,CAAA;AACZ,CAAC;AA2GD,kDAAkD;AAClD,MAAM,UAAU,MAAM,CACpB,GAAG,UAMkD;IAErD,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,UAI5B,CAAA;YACD,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QACnC,CAAC;QACD,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,UAG3B,CAAA;QACD,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACzB,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;IAEtC,MAAM,IAAI,GACR,IAAI,CAAC,MAAM,GAAG,CAAC;QACb,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAG,IAAY,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,SAAS,CAAA;IAEf,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;AACrD,CAAC;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,MAAM,CACpB,QAA6B;IAE7B,OAAO,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAU,CAAA;AACjD,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAM,UAAU,IAAI,CAGlB,QAOG,EACH,UAAwB,EAAE;IAE1B,OAAO,OAAO,CAAC,IAAI,CAAC,QAAoB,EAAE,OAAO,CAAU,CAAA;AAC7D,CAAC;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,UAAU,OAAO,CAQrB,GAAuC,EACvC,IAAsD,EACtD,OAKC;IAED,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,aAAsB,CAAA;IACnD,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,aAAsB,CAAA;IACnD,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACtC,IAAI,QAAQ,KAAK,qBAAqB;YAAE,OAAO,aAAsB,CAAA;QACrE,IAAI,QAAQ,KAAK,qBAAqB;YAAE,OAAO,aAAsB,CAAA;IACvE,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAc,CAAC,CAAA;IACvD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QACvB,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAC1D,OAAO,IAAa,CAAA;AACtB,CAAC;AA2BD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,WAAW,CAAC,OAA0B;IACpD,OAAO,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AACrC,CAAC;AAMD,0GAA0G;AAC1G,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,CAAC,EAAE,+BAA+B;IAClC,EAAE,EAAE,yDAAyD;IAC7D,EAAE,EAAE,wDAAwD;IAC5D,EAAE,EAAE,0CAA0C;IAC9C,EAAE,EAAE,uEAAuE;IAC3E,EAAE,EAAE,sCAAsC;IAC1C,EAAE,EAAE,+BAA+B;IACnC,EAAE,EAAE,mEAAmE;IACvE,EAAE,EAAE,0EAA0E;CACrD,CAAA;AAE3B,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC;IAC9C,MAAM,EAAE;QACN;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;SACf;KACF;IACD,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;CACd,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAA;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC;IAC9C,MAAM,EAAE;QACN;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;SACd;KACF;IACD,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;CACd,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAA"}
{"version":3,"file":"AbiError.js","sourceRoot":"","sources":["../../src/core/AbiError.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAG/B,OAAO,KAAK,aAAa,MAAM,4CAA4C,CAAA;AA2L3E,kDAAkD;AAClD,MAAM,UAAU,MAAM,CACpB,GAAG,UAO0E;IAE7E,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE;QAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,UAKlC,CAAA;YACD,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,UAA6D,CAAA;IACtE,CAAC,CAAC,EAAE,CAAA;IACJ,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,OAAO,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5E,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAEnD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CACjC,QAAQ,CAAC,MAAM,EACf,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAClB,OAAO,CACR,CAAA;IACD,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAgDD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,OAAO,CAIrB,GAAuC,EACvC,IAAa,EACb,UAA+B,EAAE;IAEjC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,OAAO,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,IAAa,CAAa,CAAA;IACrD,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK;SACG,CAAA;IACZ,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC;QACrE,KAAK;KACG,CAAA;AACZ,CAAC;AA2GD,kDAAkD;AAClD,MAAM,UAAU,MAAM,CACpB,GAAG,UAMkD;IAErD,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,UAI5B,CAAA;YACD,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QACnC,CAAC;QACD,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,UAG3B,CAAA;QACD,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACzB,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;IAEtC,MAAM,IAAI,GACR,IAAI,CAAC,MAAM,GAAG,CAAC;QACb,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAG,IAAY,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,SAAS,CAAA;IAEf,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;AACrD,CAAC;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,MAAM,CACpB,QAA6B;IAE7B,OAAO,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAU,CAAA;AACvD,CAAC;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAM,UAAU,IAAI,CAGlB,QAOG,EACH,UAAwB,EAAE;IAE1B,OAAO,OAAO,CAAC,IAAI,CAAC,QAAoB,EAAE,OAAO,CAAU,CAAA;AAC7D,CAAC;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,UAAU,OAAO,CAQrB,GAAuC,EACvC,IAAsD,EACtD,OAKC;IAED,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,aAAsB,CAAA;IACnD,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,aAAsB,CAAA;IACnD,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACtC,IAAI,QAAQ,KAAK,qBAAqB;YAAE,OAAO,aAAsB,CAAA;QACrE,IAAI,QAAQ,KAAK,qBAAqB;YAAE,OAAO,aAAsB,CAAA;IACvE,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAc,CAAC,CAAA;IACvD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QACvB,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAC1D,OAAO,IAAa,CAAA;AACtB,CAAC;AA2BD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,WAAW,CAAC,OAA0B;IACpD,OAAO,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AACrC,CAAC;AAMD,0GAA0G;AAC1G,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,CAAC,EAAE,+BAA+B;IAClC,EAAE,EAAE,yDAAyD;IAC7D,EAAE,EAAE,wDAAwD;IAC5D,EAAE,EAAE,0CAA0C;IAC9C,EAAE,EAAE,uEAAuE;IAC3E,EAAE,EAAE,sCAAsC;IAC1C,EAAE,EAAE,+BAA+B;IACnC,EAAE,EAAE,mEAAmE;IACvE,EAAE,EAAE,0EAA0E;CACrD,CAAA;AAE3B,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC;IAC9C,MAAM,EAAE;QACN;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;SACf;KACF;IACD,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;CACd,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAA;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC;IAC9C,MAAM,EAAE;QACN;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;SACd;KACF;IACD,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;CACd,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAA"}

@@ -12,2 +12,3 @@ import * as abitype from 'abitype';

import type * as AbiItem_internal from './internal/abiItem.js';
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js';
import type { Compute, IsNarrowable } from './internal/types.js';

@@ -527,4 +528,5 @@ /** Root type for an {@link ox#AbiItem.AbiItem} with an `event` type. */

*/
export declare function format<const abiEvent extends AbiEvent>(abiEvent: abiEvent | AbiEvent): abitype.FormatAbiItem<abiEvent>;
export declare function format<const abiEvent extends AbiEvent>(abiEvent: abiEvent | AbiEvent): format.ReturnType<abiEvent>;
export declare namespace format {
type ReturnType<abiEvent extends AbiEvent = AbiEvent> = formatAbiItem.FormatAbiItem<abiEvent>;
type ErrorType = Errors.GlobalErrorType;

@@ -531,0 +533,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"AbiEvent.d.ts","sourceRoot":"","sources":["../../src/core/AbiEvent.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"AbiEvent.d.ts","sourceRoot":"","sources":["../../src/core/AbiEvent.ts"],"names":[],"mappings":"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"}

@@ -1,2 +0,1 @@

import * as abitype from 'abitype';
import * as AbiItem from './AbiItem.js';

@@ -11,2 +10,3 @@ import * as AbiParameters from './AbiParameters.js';

import { prettyPrint } from './internal/errors.js';
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js';
/**

@@ -681,3 +681,3 @@ * Module-scope regex for matching an array suffix on an indexed event

export function format(abiEvent) {
return abitype.formatAbiItem(abiEvent);
return formatAbiItem.formatAbiItem(abiEvent);
}

@@ -684,0 +684,0 @@ /**

@@ -1,1 +0,1 @@

{"version":3,"file":"AbiEvent.js","sourceRoot":"","sources":["../../src/core/AbiEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAG/B,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AASlD;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAE3C;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAC3B,IAAY,EACZ,KAAc;IAEd,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3D,OAAO,6BAA8B,KAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAa,CAAA;IAC3F,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAChD,OAAO,KAAK;YACV,CAAC,CAAC,oEAAoE;YACtE,CAAC,CAAC,oEAAoE,CAAA;IAC1E,CAAC;IACD,gEAAgE;IAChE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAA;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACtD,MAAM,IAAI,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAA;QAC5C,OAAO,GAAG,CAAC,UAAU,CAAC,KAAwB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IACvE,CAAC;IACD,2CAA2C;IAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAA;QAC/C,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAgB,EAAE,EAAE,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAC3B,IAAY,EACZ,KAAc,EACd,UAA0B,EAAE;IAE5B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,+DAA+D;QAC/D,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAqB,CAAA;QACzD,OAAO;YACL,OAAO,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;SACxE,CAAA;IACH,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,iEAAiE;QACjE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAA;IAChD,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAA;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACtD,MAAM,IAAI,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAA;QAC5C,MAAM,GAAG,GACP,IAAI,GAAG,EAAE;YACP,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC;YACjC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QACrC,OAAO,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAA;QAC5C,kDAAkD;QAClD,OAAO,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAa,CAAC,CAAA;IACzD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AA6CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,UAAU,UAAU,CACxB,QAA6B,EAC7B,IAAa,EACb,SAOW;IAEX,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS;QACrB,MAAM,IAAI,iBAAiB,CAAC;YAC1B,QAAQ;YACR,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,SAAS;SACjB,CAAC,CAAA;IAEJ,SAAS,OAAO,CACd,KAAgC,EAChC,KAAc,EACd,GAAY;QAEZ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,KAAwB,EAAE,GAAsB,CAAC,CAAA;QAC1E,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YACzB,OAAO,CACL,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,KAAe,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,GAAG,CACzE,CAAA;QACH,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,GAAG,GACP,OAAO,KAAK,KAAK,QAAQ;gBACvB,CAAC,CAAE,KAAiB;gBACpB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAoB,CAAC,CAAA;YACzC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,GAAG,CAAA;QACnD,CAAC;QACD,OAAO,KAAK,KAAK,GAAG,CAAA;IACtB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAQ;YACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,CAAC,KAAK;gBACR,MAAM,IAAI,kBAAkB,CAAC;oBAC3B,QAAQ;oBACR,IAAI,EAAE,GAAG,KAAK,EAAE;iBACjB,CAAC,CAAA;YACJ,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACrD,IAAI,KAAK,GAAG,KAAK,CAAA;YACjB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAAE,KAAK,GAAG,IAAI,CAAA;YACtD,CAAC;YACD,IAAI,CAAC,KAAK;gBACR,MAAM,IAAI,iBAAiB,CAAC;oBAC1B,QAAQ;oBACR,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,SAAS;iBACjB,CAAC,CAAA;QACN,CAAC;IACH,CAAC;IAED,IACE,OAAO,IAAI,KAAK,QAAQ;QACxB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,SAAS,KAAK,QAAQ;QAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAEzB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAQ;YACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAA;YACjE,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,kBAAkB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;YACjE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACrD,IAAI,KAAK,GAAG,KAAK,CAAA;YACjB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,EAAG,IAAgC,CAAC,GAAG,CAAC,CAAC;oBAC/D,KAAK,GAAG,IAAI,CAAA;YAChB,CAAC;YACD,IAAI,CAAC,KAAK;gBACR,MAAM,IAAI,iBAAiB,CAAC;oBAC1B,QAAQ;oBACR,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,SAAS;iBACjB,CAAC,CAAA;QACN,CAAC;AACL,CAAC;AA2JD,kDAAkD;AAClD,MAAM,UAAU,MAAM,CACpB,GAAG,UAWE;IAEL,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;QACrC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,UAKjC,CAAA;YACD,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAU,CAAA;QACpD,CAAC;QACD,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,UAIhC,CAAA;QACD,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAU,CAAA;IAC1C,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;IAE5B,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,KAAK,IAAI,CAAA;IAC/C,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE7D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,SAAS,KAAK,QAAQ;YACxB,MAAM,IAAI,0BAA0B,CAAC;gBACnC,QAAQ;gBACR,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAA;IACN,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAA;IAC3B,MAAM,SAAS,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAEhE,IAAI,IAAI,GAAQ,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAEnC,0EAA0E;IAC1E,uEAAuE;IACvE,oCAAoC;IACpC,MAAM,aAAa,GAAgC,EAAE,CAAA;IACrD,MAAM,gBAAgB,GAAgC,EAAE,CAAA;IACxD,MAAM,uBAAuB,GAAa,EAAE,CAAA;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAA;QACxB,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO;YAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aAC7D,CAAC;YACJ,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC5B,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAE,CAAA;QAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAC1B,IAAI,CAAC,KAAK;YACR,MAAM,IAAI,mBAAmB,CAAC;gBAC5B,QAAQ;gBACR,KAAK,EAAE,KAAoD;aAC5D,CAAC,CAAA;QACJ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;YACpB,IACE,CAAC,KAAK,QAAQ;gBACd,CAAC,KAAK,OAAO;gBACb,CAAC,KAAK,OAAO;gBACb,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAExB,OAAO,KAAK,CAAA;YACd,4DAA4D;YAC5D,2DAA2D;YAC3D,oDAAoD;YACpD,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;YACpD,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAA;YACnE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC,CAAC,EAAE,CAAA;IACN,CAAC;IAED,kCAAkC;IAClC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CACtC,gBAAgB,EAChB,IAAI,EACJ,OAAO,CACR,CAAA;gBACD,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,SAAS;wBAAE,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC,CAAA;yBAC1C,CAAC;wBACJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACjD,MAAM,KAAK,GAAG,uBAAuB,CAAC,CAAC,CAAE,CAAA;4BACzC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAE,CAAC,IAAK,IAAI,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;wBAC5D,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IACE,GAAG,YAAY,aAAa,CAAC,qBAAqB;oBAClD,GAAG,YAAY,MAAM,CAAC,wBAAwB;oBAE9C,MAAM,IAAI,iBAAiB,CAAC;wBAC1B,QAAQ;wBACR,IAAI,EAAE,IAAI;wBACV,UAAU,EAAE,gBAAgB;wBAC5B,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;qBACrB,CAAC,CAAA;gBACJ,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,iBAAiB,CAAC;gBAC1B,QAAQ;gBACR,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,gBAAgB;gBAC5B,IAAI,EAAE,CAAC;aACR,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AAC1D,CAAC;AAoCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,SAAS,CACvB,GAAuC,EACvC,GAAkB,EAClB,OAA2B;IAE3B,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC9B,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,0BAA0B,EAAE,CAAA;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAgC,CAAA;IACtE,OAAO;QACL,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC;KACrC,CAAA;AACH,CAAC;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,UAAU,WAAW,CASzB,GAAuC,EACvC,IAAuC,EACvC,UAAuD,EAAE;IAMzD,MAAM,EACJ,IAAI,EACJ,eAAe,EACf,MAAM,GAAG,IAAI,GACd,GAAG,OAA8B,CAAA;IAClC,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE;QACtB,IAAI,CAAC,OAAO,CAAC,SAAS;YAAE,OAAO,SAAS,CAAA;QACxC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO,OAAO,CAAC,SAAS,CAAA;QAC9D,OAAO,CAAC,OAAO,CAAC,SAAmB,CAAC,CAAA;IACtC,CAAC,CAAC,EAAE,CAAA;IACJ,MAAM,SAAS,GAAI,GAAe,CAAC,MAAM,CACvC,CAAC,IAAI,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAClD,CAAA;IACD,MAAM,GAAG,GAA6B,EAAE,CAAA;IACxC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,QAAQ;YAAE,SAAQ;QAEvB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAA;QACxE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QAEhC,IAAI,KAKS,CAAA;QAEb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,KAAK,GAAG;oBACN,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE;wBACjC,eAAe;wBACf,MAAM,EAAE,IAAI;qBACb,CAAC;oBACF,KAAK,EAAE,IAAI;iBACZ,CAAA;gBACD,MAAK;YACP,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;YACtB,IAAI,CAAC;gBACH,KAAK,GAAG;oBACN,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE;wBACjC,eAAe;wBACf,MAAM,EAAE,KAAK;qBACd,CAAC;oBACF,KAAK,EAAE,IAAI;iBACZ,CAAA;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;gBACnE,KAAK,GAAG;oBACN,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;oBACzB,KAAK,EAAE,IAAI;iBACZ,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK;YAAE,SAAQ;QACpB,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAQ;QAChE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;YAAE,SAAQ;QAE1D,GAAG,CAAC,IAAI,CAAC;YACP,GAAG,IAAI;YACP,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;SAC5B,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,GAAY,CAAA;AACrB,CAAC;AA6FD,SAAS,gBAAgB,CACvB,QAAkB,EAClB,GAAe,EACf,OAA6C;IAE7C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;IAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAE1B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAI,QAAQ,KAAK,WAAW,CAAC,QAAQ,CAAC;QACpC,MAAM,IAAI,0BAA0B,CAAC;YACnC,QAAQ;YACR,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;SAChC,CAAC,CAAA;IAEJ,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAA;IAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9D,MAAM,IAAI,GAAQ,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAErC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACjC,MAAM,aAAa,GAA0C,EAAE,CAAA;IAC/D,MAAM,gBAAgB,GAAgC,EAAE,CAAA;IACxD,MAAM,oBAAoB,GAA0C,EAAE,CAAA;IACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAA;QACxB,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO;YAAE,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;;YAClE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,CAAC,CAAE,CAAA;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,MAAM;gBACR,MAAM,IAAI,mBAAmB,CAAC;oBAC5B,QAAQ;oBACR,KAAK,EAAE,KAAoD;iBAC5D,CAAC,CAAA;YACJ,oBAAoB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;YACzC,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;YACxE,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,MAAM;QAC3B,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAA;IAE1E,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE;oBAC7D,eAAe,EAAE,OAAO,CAAC,eAAe;iBACzC,CAAC,CAAA;gBACF,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,SAAS,GAAG,CAAC,CAAA;oBACjB,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,oBAAoB,EAAE,CAAC;4BAClD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC;gCAC3C,WAAW,CAAC,SAAS,EAAE,CAAC,CAAA;wBAC5B,CAAC;oBACH,CAAC;oBACD,IAAI,SAAS,EAAE,CAAC;wBACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE;4BACpC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,SAAS,GAAG,WAAW,CAAC,MAAM;gCACzD,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,CAAA;oBACxC,CAAC;yBAAM,CAAC;wBACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACjD,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAE,CAAA;4BAClC,IAAI,CAAC,KAAK,CAAC,IAAK,CAAC,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,CAAA;wBAC9C,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,MAAM,EAAE,CAAC;oBACX,IACE,GAAG,YAAY,aAAa,CAAC,qBAAqB;wBAClD,GAAG,YAAY,MAAM,CAAC,wBAAwB;wBAE9C,MAAM,IAAI,iBAAiB,CAAC;4BAC1B,QAAQ;4BACR,IAAI,EAAE,IAAI;4BACV,UAAU,EAAE,cAAc;4BAC1B,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;yBACrB,CAAC,CAAA;oBACJ,MAAM,GAAG,CAAA;gBACX,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,iBAAiB,CAAC;gBAC1B,QAAQ;gBACR,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,cAAc;gBAC1B,IAAI,EAAE,CAAC;aACR,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AAC1D,CAAC;AAED,SAAS,WAAW,CAClB,KAAgC,EAChC,KAAc,EACd,OAAuB;IAEvB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,IACE,IAAI,KAAK,QAAQ;QACjB,IAAI,KAAK,OAAO;QAChB,IAAI,KAAK,OAAO;QAChB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAE3B,OAAO,KAAK,CAAA;IACd,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACvD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;IACxB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAA;IACnE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAoC,GAAQ;IACnE,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IACnD,OAAO;QACL,GAAG,GAAG;QACN,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QAC/C,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;QAC7D,cAAc,EAAE,GAAG,CAAC,cAAc;YAChC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;YAC5B,CAAC,CAAC,GAAG,CAAC,cAAc,KAAK,IAAI;gBAC3B,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,SAAS;QACf,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;QACpD,eAAe,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI;QACjE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACpC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC9B,CAAC,CAAC,IAAI;KACT,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,QAAkB,EAAE,IAAa,EAAE,SAAkB;IACzE,IAAI,CAAC;QACH,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QAC3B,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAoJD,kDAAkD;AAClD,MAAM,UAAU,MAAM,CACpB,GAAG,UAM0E;IAE7E,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,UAIzB,CAAA;YACD,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QACnC,CAAC;QACD,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,UAGxB,CAAA;QACD,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACzB,CAAC,CAAC,EAAE,CAAA;IAEJ,IAAI,MAAM,GAAmC,EAAE,CAAA;IAC/C,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1C,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAC/C,CAAA;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAC/B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;gBAC9B,CAAC,CAAC,CAAC,aAAa,EAAE,GAAG,CACjB,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAE,IAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAClD,IAAI,EAAE,CAAC;gBACV,CAAC,CAAC,EAAE,CAAA;QAER,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,CAAC,KAA2B,EAAE,KAAc,EAAE,EAAE;gBAC7D,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;gBACpB,IAAI,CAAC,KAAK,QAAQ;oBAChB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,KAAe,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;gBACvE,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;oBAClB,MAAM,GAAG,GACP,OAAO,KAAK,KAAK,QAAQ;wBACvB,CAAC,CAAE,KAAiB;wBACpB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAoB,CAAC,CAAA;oBACzC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;gBAC3C,CAAC;gBACD,IAAI,CAAC,KAAK,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC3C,MAAM,IAAI,2BAA2B,CAAC,CAAC,CAAC,CAAA;gBAC1C,oCAAoC;gBACpC,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;gBAC3C,IAAI,IAAI;oBAAE,OAAO,IAAI,CAAA;gBACrB,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;YAC/C,CAAC,CAAA;YAED,MAAM;gBACJ,aAAa,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;oBAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACzB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CACxC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3B,CAAA;oBACH,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;wBACzD,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;wBACzB,CAAC,CAAC,IAAI,CAAA;gBACV,CAAC,CAAC,IAAI,EAAE,CAAA;QACZ,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;IAElD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACrB,IAAI,QAAQ,CAAC,IAAI;YAAE,OAAO,QAAQ,CAAC,IAAI,CAAA;QACvC,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC9B,CAAC,CAAC,EAAE,CAAA;IAEJ,OAAO,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,EAAE,CAAA;AAC1C,CAAC;AA8BD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,MAAM,CACpB,QAA6B;IAE7B,OAAO,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAU,CAAA;AACjD,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,UAAU,IAAI,CAGlB,QAOG,EACH,UAAwB,EAAE;IAE1B,OAAO,OAAO,CAAC,IAAI,CAAC,QAAoB,EAAE,OAAO,CAAU,CAAA;AAC7D,CAAC;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,UAAU,OAAO,CAQrB,GAAuC,EACvC,IAAsD,EACtD,OAKC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAc,CAAC,CAAA;IACvD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QACvB,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAC1D,OAAO,IAAa,CAAA;AACtB,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,WAAW,CAAC,OAA0B;IACpD,OAAO,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;AAC1C,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,MAAM,CAAC,SAAS;IACnC,IAAI,GAAG,4BAA4B,CAAA;IAErD,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,KAAK,GAKN;QACC,KAAK,CAAC,sDAAsD,EAAE;YAC5D,YAAY,EAAE;gBACZ,UAAU,MAAM,CAAC,QAAQ,CAAC,EAAE;gBAC5B,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChD,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC5C,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC1C,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;aACvC;SACF,CAAC,CAAA;IACJ,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,SAAS;IACpC,IAAI,GAAG,6BAA6B,CAAA;IAEtD,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAwC;QAClE,KAAK,CAAC,cAAc,IAAI,oBAAoB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACpE,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,OAAO,iBAAkB,SAAQ,MAAM,CAAC,SAAS;IACnC,IAAI,GAAG,4BAA4B,CAAA;IAErD,QAAQ,CAAU;IAClB,IAAI,CAAS;IACb,UAAU,CAAiC;IAC3C,IAAI,CAAQ;IAEZ,YAAY,EACV,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,IAAI,GAML;QACC,KAAK,CACH;YACE,gBAAgB,IAAI,uDAAuD;SAC5E,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ;YACE,YAAY,EAAE;gBACZ,4BAA4B,aAAa,CAAC,MAAM,CAAC,UAAiB,CAAC,GAAG;gBACtE,WAAW,IAAI,KAAK,IAAI,SAAS;aAClC;SACF,CACF,CAAA;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,OAAO,mBAAoB,SAAQ,MAAM,CAAC,SAAS;IACrC,IAAI,GAAG,8BAA8B,CAAA;IAEvD,QAAQ,CAAU;IAElB,YAAY,EACV,QAAQ,EACR,KAAK,GAIN;QACC,KAAK,CACH;YACE,+CACE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EACpC,SAAS,MAAM,CAAC,QAAQ,CAAC,IAAI;SAC9B,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,OAAO,0BAA2B,SAAQ,MAAM,CAAC,SAAS;IAC5C,IAAI,GAAG,qCAAqC,CAAA;IAE9D,YAAY,EACV,QAAQ,EACR,MAAM,EACN,QAAQ,GAKT;QACC,KAAK,CACH,cAAc,MAAM,4CAA4C,QAAQ,IAAI,EAC5E;YACE,YAAY,EAAE,CAAC,UAAU,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,QAAQ,EAAE,CAAC;SACtE,CACF,CAAA;IACH,CAAC;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,0BAA2B,SAAQ,MAAM,CAAC,SAAS;IAC5C,IAAI,GAAG,qCAAqC,CAAA;IAE9D;QACE,KAAK,CAAC,2BAA2B,CAAC,CAAA;IACpC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,OAAO,2BAA4B,SAAQ,MAAM,CAAC,SAAS;IAC7C,IAAI,GAAG,sCAAsC,CAAA;IAC/D,YAAY,IAAY;QACtB,KAAK,CAAC,gBAAgB,IAAI,qBAAqB,CAAC,CAAA;IAClD,CAAC;CACF"}
{"version":3,"file":"AbiEvent.js","sourceRoot":"","sources":["../../src/core/AbiEvent.ts"],"names":[],"mappings":"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"}

@@ -10,2 +10,3 @@ import * as abitype from 'abitype';

import type * as AbiParameters_internal from './internal/abiParameters.js';
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js';
import type { IsNarrowable } from './internal/types.js';

@@ -489,4 +490,5 @@ /** Root type for an {@link ox#AbiItem.AbiItem} with a `function` type. */

*/
export declare function format<const abiFunction extends AbiFunction>(abiFunction: abiFunction | AbiFunction): abitype.FormatAbiItem<abiFunction>;
export declare function format<const abiFunction extends AbiFunction>(abiFunction: abiFunction | AbiFunction): format.ReturnType<abiFunction>;
export declare namespace format {
type ReturnType<abiFunction extends AbiFunction = AbiFunction> = formatAbiItem.FormatAbiItem<abiFunction>;
type ErrorType = Errors.GlobalErrorType;

@@ -493,0 +495,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"AbiFunction.d.ts","sourceRoot":"","sources":["../../src/core/AbiFunction.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"AbiFunction.d.ts","sourceRoot":"","sources":["../../src/core/AbiFunction.ts"],"names":[],"mappings":"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"}

@@ -1,5 +0,5 @@

import * as abitype from 'abitype';
import * as AbiItem from './AbiItem.js';
import * as AbiParameters from './AbiParameters.js';
import * as Hex from './Hex.js';
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js';
// eslint-disable-next-line jsdoc-js/require-jsdoc

@@ -128,3 +128,3 @@ export function decodeData(...parameters) {

export function format(abiFunction) {
return abitype.formatAbiItem(abiFunction);
return formatAbiItem.formatAbiItem(abiFunction);
}

@@ -131,0 +131,0 @@ /**

@@ -1,1 +0,1 @@

{"version":3,"file":"AbiFunction.js","sourceRoot":"","sources":["../../src/core/AbiFunction.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"AbiFunction.js","sourceRoot":"","sources":["../../src/core/AbiFunction.ts"],"names":[],"mappings":"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"}

@@ -1,2 +0,1 @@

import * as abitype from 'abitype';
import type * as Abi from './Abi.js';

@@ -6,2 +5,4 @@ import * as Errors from './Errors.js';

import * as Hex from './Hex.js';
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js';
import * as parseAbiItem from './internal/human-readable/parseAbiItem.js';
import * as internal from './internal/abiItem.js';

@@ -11,2 +12,3 @@ import type { UnionCompute } from './internal/types.js';

export type AbiItem = Abi.Abi[number];
export { InvalidAbiItemError, UnknownSolidityTypeError, UnknownTypeError, } from './internal/human-readable/errors.js';
/**

@@ -84,4 +86,5 @@ * Extracts an {@link ox#AbiItem.AbiItem} item from an {@link ox#Abi.Abi}, given a name.

*/
export declare function format<const abiItem extends AbiItem>(abiItem: abiItem | AbiItem): abitype.FormatAbiItem<abiItem>;
export declare function format<const abiItem extends AbiItem>(abiItem: abiItem | AbiItem): format.ReturnType<abiItem>;
export declare namespace format {
type ReturnType<abiItem extends AbiItem = AbiItem> = formatAbiItem.FormatAbiItem<abiItem>;
type ErrorType = Errors.GlobalErrorType;

@@ -166,3 +169,3 @@ }

};
type ReturnType<abiItem extends AbiItem | string | readonly string[]> = abiItem extends string ? abitype.ParseAbiItem<abiItem> : abiItem extends readonly string[] ? abitype.ParseAbiItem<abiItem> : abiItem;
type ReturnType<abiItem extends AbiItem | string | readonly string[]> = abiItem extends string ? parseAbiItem.ParseAbiItem<abiItem> : abiItem extends readonly string[] ? parseAbiItem.ParseAbiItem<abiItem> : abiItem;
type ErrorType = Errors.GlobalErrorType;

@@ -169,0 +172,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"AbiItem.d.ts","sourceRoot":"","sources":["../../src/core/AbiItem.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"AbiItem.d.ts","sourceRoot":"","sources":["../../src/core/AbiItem.ts"],"names":[],"mappings":"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"}

@@ -1,6 +0,8 @@

import * as abitype from 'abitype';
import * as Errors from './Errors.js';
import * as Hash from './Hash.js';
import * as Hex from './Hex.js';
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js';
import * as parseAbiItem from './internal/human-readable/parseAbiItem.js';
import * as internal from './internal/abiItem.js';
export { InvalidAbiItemError, UnknownSolidityTypeError, UnknownTypeError, } from './internal/human-readable/errors.js';
/**

@@ -38,3 +40,3 @@ * Formats an {@link ox#AbiItem.AbiItem} into a **Human Readable ABI Item**.

export function format(abiItem) {
return abitype.formatAbiItem(abiItem);
return formatAbiItem.formatAbiItem(abiItem);
}

@@ -111,5 +113,5 @@ /**

if (Array.isArray(abiItem))
return abitype.parseAbiItem(abiItem);
return parseAbiItem.parseAbiItem(abiItem);
if (typeof abiItem === 'string')
return abitype.parseAbiItem(abiItem);
return parseAbiItem.parseAbiItem(abiItem);
return abiItem;

@@ -279,3 +281,3 @@ })();

return abiItem;
return abitype.formatAbiItem(abiItem);
return formatAbiItem.formatAbiItem(abiItem);
})();

@@ -345,4 +347,4 @@ return internal.normalizeSignature(signature);

// TODO: abitype to add support for signature-formatted ABI items.
`\`${x.type}\` in \`${internal.normalizeSignature(abitype.formatAbiItem(x.abiItem))}\`, and`,
`\`${y.type}\` in \`${internal.normalizeSignature(abitype.formatAbiItem(y.abiItem))}\``,
`\`${x.type}\` in \`${internal.normalizeSignature(formatAbiItem.formatAbiItem(x.abiItem))}\`, and`,
`\`${y.type}\` in \`${internal.normalizeSignature(formatAbiItem.formatAbiItem(y.abiItem))}\``,
'',

@@ -349,0 +351,0 @@ 'These types encode differently and cannot be distinguished at runtime.',

@@ -1,1 +0,1 @@

{"version":3,"file":"AbiItem.js","sourceRoot":"","sources":["../../src/core/AbiItem.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"AbiItem.js","sourceRoot":"","sources":["../../src/core/AbiItem.ts"],"names":[],"mappings":"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"}

@@ -5,2 +5,4 @@ import * as abitype from 'abitype';

import * as Hex from './Hex.js';
import * as formatAbiParameters from './internal/human-readable/formatAbiParameters.js';
import * as parseAbiParameters from './internal/human-readable/parseAbiParameters.js';
import * as internal from './internal/abiParameters.js';

@@ -11,2 +13,4 @@ /** Root type for ABI parameters. */

export type Parameter = abitype.AbiParameter;
export { InvalidAbiParametersError, InvalidAbiTypeParameterError, InvalidFunctionModifierError, InvalidModifierError, InvalidParameterError, SolidityProtectedKeywordError, } from './internal/human-readable/errors.js';
export { InvalidParenthesisError } from './internal/human-readable/errors.js';
/** A packed ABI type. */

@@ -180,4 +184,8 @@ export type PackedAbiType = abitype.SolidityAddress | abitype.SolidityBool | abitype.SolidityBytes | abitype.SolidityInt | abitype.SolidityString | abitype.SolidityArrayWithoutTuple;

...(readonly (Parameter | abitype.AbiEventParameter)[])
]): abitype.FormatAbiParameters<parameters>;
]): format.ReturnType<parameters>;
export declare namespace format {
type ReturnType<parameters extends readonly [
Parameter | abitype.AbiEventParameter,
...(readonly (Parameter | abitype.AbiEventParameter)[])
] = readonly [Parameter, ...(readonly Parameter[])]> = formatAbiParameters.FormatAbiParameters<parameters>;
type ErrorType = Errors.GlobalErrorType;

@@ -207,2 +215,18 @@ }

* //^?
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* ```

@@ -224,2 +248,18 @@ *

* //^?
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* ```

@@ -240,2 +280,18 @@ *

* //^?
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* ```

@@ -250,3 +306,3 @@ *

export declare namespace from {
type ReturnType<parameters extends AbiParameters | string | readonly string[]> = parameters extends string ? abitype.ParseAbiParameters<parameters> : parameters extends readonly string[] ? abitype.ParseAbiParameters<parameters> : parameters;
type ReturnType<parameters extends AbiParameters | string | readonly string[]> = parameters extends string ? parseAbiParameters.ParseAbiParameters<parameters> : parameters extends readonly string[] ? parseAbiParameters.ParseAbiParameters<parameters> : parameters;
type ErrorType = Errors.GlobalErrorType;

@@ -253,0 +309,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"AbiParameters.d.ts","sourceRoot":"","sources":["../../src/core/AbiParameters.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"AbiParameters.d.ts","sourceRoot":"","sources":["../../src/core/AbiParameters.ts"],"names":[],"mappings":"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"}

@@ -1,2 +0,1 @@

import * as abitype from 'abitype';
import * as Address from './Address.js';

@@ -6,5 +5,9 @@ import * as Bytes from './Bytes.js';

import * as Hex from './Hex.js';
import * as formatAbiParameters from './internal/human-readable/formatAbiParameters.js';
import * as parseAbiParameters from './internal/human-readable/parseAbiParameters.js';
import * as internal from './internal/abiParameters.js';
import * as Cursor from './internal/cursor.js';
import * as Solidity from './Solidity.js';
export { InvalidAbiParametersError, InvalidAbiTypeParameterError, InvalidFunctionModifierError, InvalidModifierError, InvalidParameterError, SolidityProtectedKeywordError, } from './internal/human-readable/errors.js';
export { InvalidParenthesisError } from './internal/human-readable/errors.js';
// eslint-disable-next-line jsdoc-js/require-jsdoc

@@ -222,3 +225,3 @@ export function decode(parameters, data, options = {}) {

export function format(parameters) {
return abitype.formatAbiParameters(parameters);
return formatAbiParameters.formatAbiParameters(parameters);
}

@@ -247,2 +250,18 @@ /**

* //^?
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* ```

@@ -264,2 +283,18 @@ *

* //^?
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* ```

@@ -280,2 +315,18 @@ *

* //^?
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* ```

@@ -290,5 +341,5 @@ *

if (Array.isArray(parameters) && typeof parameters[0] === 'string')
return abitype.parseAbiParameters(parameters);
return parseAbiParameters.parseAbiParameters(parameters);
if (typeof parameters === 'string')
return abitype.parseAbiParameters(parameters);
return parseAbiParameters.parseAbiParameters(parameters);
return parameters;

@@ -329,3 +380,3 @@ }

metaMessages: [
`Params: (${abitype.formatAbiParameters(parameters)})`,
`Params: (${formatAbiParameters.formatAbiParameters(parameters)})`,
`Data: ${data} (${size} bytes)`,

@@ -332,0 +383,0 @@ ],

@@ -1,1 +0,1 @@

{"version":3,"file":"AbiParameters.js","sourceRoot":"","sources":["../../src/core/AbiParameters.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"AbiParameters.js","sourceRoot":"","sources":["../../src/core/AbiParameters.ts"],"names":[],"mappings":"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"}

@@ -259,3 +259,3 @@ import type * as z from 'zod/mini';

* send and receive wire values. Decode wire results to their native
* representation explicitly via {@link ox#zod/RpcSchema.decodeReturns}.
* representation explicitly via `zod.RpcSchema.decodeReturns`.
*

@@ -262,0 +262,0 @@ * @example

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,2DAA2D;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyFG;AACH,OAAO,KAAK,GAAG,MAAM,eAAe,CAAA;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAA;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AACH,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAA;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAA;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyFG;AACH,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAA;AAExD;;;;GAIG;AACH,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA;AAElD;;;;GAIG;AACH,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAA;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAA;AAExD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAA;AAE5C;;;;GAIG;AACH,OAAO,KAAK,eAAe,MAAM,2BAA2B,CAAA;AAE5D;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAEhD;;;;GAIG;AACH,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AAExC;;;;GAIG;AACH,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAA;AAE1D;;;;GAIG;AACH,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0HG;AACH,OAAO,KAAK,GAAG,MAAM,eAAe,CAAA;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2IG;AACH,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AAExC,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAA;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,eAAe,MAAM,2BAA2B,CAAA;AAC5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAA;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAA;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,GAAG,MAAM,eAAe,CAAA;AAEpC,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,eAAe,CAAA;AACpC;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA;AACtC;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoHG;AACH,OAAO,KAAK,GAAG,MAAM,eAAe,CAAA;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA;AACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C;;;;;;GAMG;AACH,OAAO,KAAK,GAAG,MAAM,eAAe,CAAA;AACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,OAAO,KAAK,GAAG,MAAM,eAAe,CAAA;AACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA;AACtC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,eAAe,MAAM,2BAA2B,CAAA;AAC5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AACH,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,GAAG,MAAM,eAAe,CAAA;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AACH,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAA;AACpD;;;;GAIG;AACH,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAA;AACtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkGG;AACH,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAEtC,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAE9C;;;;GAIG;AACH,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAA;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAA;AACpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,KAAK,kBAAkB,MAAM,8BAA8B,CAAA;AAClE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,kBAAkB,MAAM,8BAA8B,CAAA;AAClE;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,mBAAmB,MAAM,sBAAsB,CAAA;AAC3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkLG;AACH,OAAO,KAAK,iBAAiB,MAAM,6BAA6B,CAAA;AAChE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0KG;AACH,OAAO,KAAK,iBAAiB,MAAM,6BAA6B,CAAA;AAChE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6MG;AACH,OAAO,KAAK,iBAAiB,MAAM,6BAA6B,CAAA;AAChE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoKG;AACH,OAAO,KAAK,iBAAiB,MAAM,6BAA6B,CAAA;AAChE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsKG;AACH,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAA;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAEhD;;;;GAIG;AACH,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAA;AAExD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AACH,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAA;AAExD;;;;GAIG;AACH,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA"}

@@ -1,1 +0,1 @@

{"version":3,"file":"RpcSchema.d.ts","sourceRoot":"","sources":["../../src/zod/RpcSchema.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
{"version":3,"file":"RpcSchema.d.ts","sourceRoot":"","sources":["../../src/zod/RpcSchema.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}

@@ -5,3 +5,3 @@ {

"type": "module",
"version": "1.0.0-beta.8",
"version": "1.0.0-beta.9",
"main": "./dist/index.js",

@@ -93,2 +93,7 @@ "sideEffects": false,

},
"./AbiParameter": {
"src": "./src/core/AbiParameter.ts",
"types": "./dist/core/AbiParameter.d.ts",
"default": "./dist/core/AbiParameter.js"
},
"./AbiParameters": {

@@ -95,0 +100,0 @@ "src": "./src/core/AbiParameters.ts",

@@ -120,2 +120,6 @@ import { Abi } from 'ox'

[
"InvalidSignatureError",
"InvalidStructSignatureError",
"UnknownSignatureError",
"CircularReferenceError",
"format",

@@ -122,0 +126,0 @@ "from",

@@ -2110,2 +2110,5 @@ import {

[
"InvalidAbiItemError",
"UnknownSolidityTypeError",
"UnknownTypeError",
"format",

@@ -2112,0 +2115,0 @@ "from",

@@ -363,2 +363,9 @@ import { AbiParameters } from 'ox'

[
"InvalidAbiParametersError",
"InvalidAbiTypeParameterError",
"InvalidFunctionModifierError",
"InvalidModifierError",
"InvalidParameterError",
"SolidityProtectedKeywordError",
"InvalidParenthesisError",
"decode",

@@ -365,0 +372,0 @@ "encode",

@@ -13,2 +13,3 @@ import { expect, test } from 'vp/test'

"AbiItem",
"AbiParameter",
"AbiParameters",

@@ -15,0 +16,0 @@ "AccessList",

@@ -5,2 +5,4 @@ import * as abitype from 'abitype'

import type * as AbiItem_internal from './internal/abiItem.js'
import * as formatAbi from './internal/human-readable/formatAbi.js'
import * as parseAbi from './internal/human-readable/parseAbi.js'

@@ -10,2 +12,9 @@ /** Root type for an ABI. */

export {
InvalidSignatureError,
InvalidStructSignatureError,
UnknownSignatureError,
} from './internal/human-readable/errors.js'
export { CircularReferenceError } from './internal/human-readable/errors.js'
/** @internal */

@@ -49,3 +58,3 @@ export function format<const abi extends Abi>(abi: abi): format.ReturnType<abi>

export function format(abi: Abi | readonly unknown[]): format.ReturnType {
return abitype.formatAbi(abi) as never
return formatAbi.formatAbi(abi) as never
}

@@ -55,3 +64,3 @@

type ReturnType<abi extends Abi | readonly unknown[] = Abi> =
abitype.FormatAbi<abi>
formatAbi.FormatAbi<abi>

@@ -120,3 +129,3 @@ type ErrorType = Errors.GlobalErrorType

export function from(abi: Abi | readonly string[]): from.ReturnType {
if (internal.isSignatures(abi)) return abitype.parseAbi(abi)
if (internal.isSignatures(abi)) return parseAbi.parseAbi(abi)
return abi

@@ -128,5 +137,5 @@ }

abi extends Abi | readonly string[] | readonly unknown[] = Abi,
> = abi extends readonly string[] ? abitype.ParseAbi<abi> : abi
> = abi extends readonly string[] ? parseAbi.ParseAbi<abi> : abi
type ErrorType = Errors.GlobalErrorType
}

@@ -8,2 +8,3 @@ import * as abitype from 'abitype'

import type * as internal from './internal/abiConstructor.js'
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js'
import type { IsNarrowable } from './internal/types.js'

@@ -320,3 +321,3 @@

export function format(abiConstructor: AbiConstructor): format.ReturnType {
return abitype.formatAbiItem(abiConstructor)
return formatAbiItem.formatAbiItem(abiConstructor)
}

@@ -326,3 +327,3 @@

type ReturnType<abiConstructor extends AbiConstructor = AbiConstructor> =
abitype.FormatAbiItem<abiConstructor>
formatAbiItem.FormatAbiItem<abiConstructor>

@@ -329,0 +330,0 @@ type ErrorType = Errors.GlobalErrorType

@@ -9,2 +9,3 @@ import * as abitype from 'abitype'

import type * as AbiItem_internal from './internal/abiItem.js'
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js'
import type { IsNarrowable, IsNever } from './internal/types.js'

@@ -514,7 +515,10 @@

abiError: abiError | AbiError,
): abitype.FormatAbiItem<abiError> {
return abitype.formatAbiItem(abiError) as never
): format.ReturnType<abiError> {
return formatAbiItem.formatAbiItem(abiError) as never
}
export declare namespace format {
type ReturnType<abiError extends AbiError = AbiError> =
formatAbiItem.FormatAbiItem<abiError>
type ErrorType = Errors.GlobalErrorType

@@ -521,0 +525,0 @@ }

@@ -14,2 +14,3 @@ import * as abitype from 'abitype'

import { prettyPrint } from './internal/errors.js'
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js'
import type { Compute, IsNarrowable } from './internal/types.js'

@@ -1338,7 +1339,10 @@

abiEvent: abiEvent | AbiEvent,
): abitype.FormatAbiItem<abiEvent> {
return abitype.formatAbiItem(abiEvent) as never
): format.ReturnType<abiEvent> {
return formatAbiItem.formatAbiItem(abiEvent) as never
}
export declare namespace format {
type ReturnType<abiEvent extends AbiEvent = AbiEvent> =
formatAbiItem.FormatAbiItem<abiEvent>
type ErrorType = Errors.GlobalErrorType

@@ -1345,0 +1349,0 @@ }

@@ -10,2 +10,3 @@ import * as abitype from 'abitype'

import type * as AbiParameters_internal from './internal/abiParameters.js'
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js'
import type { IsNarrowable } from './internal/types.js'

@@ -868,7 +869,10 @@

abiFunction: abiFunction | AbiFunction,
): abitype.FormatAbiItem<abiFunction> {
return abitype.formatAbiItem(abiFunction) as never
): format.ReturnType<abiFunction> {
return formatAbiItem.formatAbiItem(abiFunction) as never
}
export declare namespace format {
type ReturnType<abiFunction extends AbiFunction = AbiFunction> =
formatAbiItem.FormatAbiItem<abiFunction>
type ErrorType = Errors.GlobalErrorType

@@ -875,0 +879,0 @@ }

@@ -41,1 +41,20 @@ import { bench, describe } from 'vp/test'

})
describe('AbiItem.from', () => {
bench('function transfer(address to, uint256 amount)', () => {
AbiItem.from('function transfer(address to, uint256 amount) returns (bool)')
})
bench('struct Foo', () => {
AbiItem.from([
'struct Foo { address spender; uint256 amount; }',
'function approve(Foo foo) returns (bool)',
])
})
})
describe('AbiItem.format', () => {
bench('function transfer(address to, uint256 amount)', () => {
AbiItem.format(lastFn)
})
})

@@ -1,2 +0,1 @@

import * as abitype from 'abitype'
import type * as Abi from './Abi.js'

@@ -6,2 +5,4 @@ import * as Errors from './Errors.js'

import * as Hex from './Hex.js'
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js'
import * as parseAbiItem from './internal/human-readable/parseAbiItem.js'
import * as internal from './internal/abiItem.js'

@@ -13,2 +14,8 @@ import type { UnionCompute } from './internal/types.js'

export {
InvalidAbiItemError,
UnknownSolidityTypeError,
UnknownTypeError,
} from './internal/human-readable/errors.js'
/**

@@ -94,7 +101,10 @@ * Extracts an {@link ox#AbiItem.AbiItem} item from an {@link ox#Abi.Abi}, given a name.

abiItem: abiItem | AbiItem,
): abitype.FormatAbiItem<abiItem> {
return abitype.formatAbiItem(abiItem) as never
): format.ReturnType<abiItem> {
return formatAbiItem.formatAbiItem(abiItem) as never
}
export declare namespace format {
type ReturnType<abiItem extends AbiItem = AbiItem> =
formatAbiItem.FormatAbiItem<abiItem>
type ErrorType = Errors.GlobalErrorType

@@ -184,5 +194,5 @@ }

const item = (() => {
if (Array.isArray(abiItem)) return abitype.parseAbiItem(abiItem)
if (Array.isArray(abiItem)) return parseAbiItem.parseAbiItem(abiItem)
if (typeof abiItem === 'string')
return abitype.parseAbiItem(abiItem as never)
return parseAbiItem.parseAbiItem(abiItem as never)
return abiItem

@@ -209,5 +219,5 @@ })() as AbiItem

abiItem extends string
? abitype.ParseAbiItem<abiItem>
? parseAbiItem.ParseAbiItem<abiItem>
: abiItem extends readonly string[]
? abitype.ParseAbiItem<abiItem>
? parseAbiItem.ParseAbiItem<abiItem>
: abiItem

@@ -562,3 +572,3 @@

if (typeof abiItem === 'string') return abiItem
return abitype.formatAbiItem(abiItem)
return formatAbiItem.formatAbiItem(abiItem)
})()

@@ -701,4 +711,4 @@ return internal.normalizeSignature(signature)

// TODO: abitype to add support for signature-formatted ABI items.
`\`${x.type}\` in \`${internal.normalizeSignature(abitype.formatAbiItem(x.abiItem))}\`, and`,
`\`${y.type}\` in \`${internal.normalizeSignature(abitype.formatAbiItem(y.abiItem))}\``,
`\`${x.type}\` in \`${internal.normalizeSignature(formatAbiItem.formatAbiItem(x.abiItem))}\`, and`,
`\`${y.type}\` in \`${internal.normalizeSignature(formatAbiItem.formatAbiItem(y.abiItem))}\``,
'',

@@ -705,0 +715,0 @@ 'These types encode differently and cannot be distinguished at runtime.',

@@ -83,1 +83,23 @@ import { bench, describe } from 'vp/test'

})
describe('AbiParameters.from', () => {
bench('address spender, uint256 amount', () => {
AbiParameters.from('address spender, uint256 amount')
})
bench('struct Foo', () => {
AbiParameters.from([
'struct Foo { address spender; uint256 amount; }',
'Foo foo, address bar',
])
})
})
describe('AbiParameters.format', () => {
bench('address spender, uint256 amount', () => {
AbiParameters.format([
{ name: 'spender', type: 'address' },
{ name: 'amount', type: 'uint256' },
])
})
})

@@ -6,2 +6,4 @@ import * as abitype from 'abitype'

import * as Hex from './Hex.js'
import * as formatAbiParameters from './internal/human-readable/formatAbiParameters.js'
import * as parseAbiParameters from './internal/human-readable/parseAbiParameters.js'
import * as internal from './internal/abiParameters.js'

@@ -17,2 +19,12 @@ import * as Cursor from './internal/cursor.js'

export {
InvalidAbiParametersError,
InvalidAbiTypeParameterError,
InvalidFunctionModifierError,
InvalidModifierError,
InvalidParameterError,
SolidityProtectedKeywordError,
} from './internal/human-readable/errors.js'
export { InvalidParenthesisError } from './internal/human-readable/errors.js'
/** A packed ABI type. */

@@ -391,7 +403,14 @@ export type PackedAbiType =

],
): abitype.FormatAbiParameters<parameters> {
return abitype.formatAbiParameters(parameters)
): format.ReturnType<parameters> {
return formatAbiParameters.formatAbiParameters(parameters)
}
export declare namespace format {
type ReturnType<
parameters extends readonly [
Parameter | abitype.AbiEventParameter,
...(readonly (Parameter | abitype.AbiEventParameter)[]),
] = readonly [Parameter, ...(readonly Parameter[])],
> = formatAbiParameters.FormatAbiParameters<parameters>
type ErrorType = Errors.GlobalErrorType

@@ -422,2 +441,18 @@ }

* //^?
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* ```

@@ -439,2 +474,18 @@ *

* //^?
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* ```

@@ -455,2 +506,18 @@ *

* //^?
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* //
* ```

@@ -469,5 +536,5 @@ *

if (Array.isArray(parameters) && typeof parameters[0] === 'string')
return abitype.parseAbiParameters(parameters) as never
return parseAbiParameters.parseAbiParameters(parameters) as never
if (typeof parameters === 'string')
return abitype.parseAbiParameters(parameters) as never
return parseAbiParameters.parseAbiParameters(parameters) as never
return parameters as never

@@ -480,5 +547,5 @@ }

> = parameters extends string
? abitype.ParseAbiParameters<parameters>
? parseAbiParameters.ParseAbiParameters<parameters>
: parameters extends readonly string[]
? abitype.ParseAbiParameters<parameters>
? parseAbiParameters.ParseAbiParameters<parameters>
: parameters

@@ -530,3 +597,3 @@

metaMessages: [
`Params: (${abitype.formatAbiParameters(parameters as readonly [Parameter])})`,
`Params: (${formatAbiParameters.formatAbiParameters(parameters as readonly [Parameter])})`,
`Data: ${data} (${size} bytes)`,

@@ -533,0 +600,0 @@ ],

@@ -292,3 +292,3 @@ import type * as z from 'zod/mini'

* send and receive wire values. Decode wire results to their native
* representation explicitly via {@link ox#zod/RpcSchema.decodeReturns}.
* representation explicitly via `zod.RpcSchema.decodeReturns`.
*

@@ -295,0 +295,0 @@ * @example

/** @internal */
export const version = '1.0.0-beta.8'
export const version = '1.0.0-beta.9'

@@ -91,3 +91,3 @@ import * as Errors from '../core/Errors.js'

/** The normalized `RpcSchema.Namespace` derived from a {@link from.Namespace}. */
/** The normalized `RpcSchema.Namespace` derived from `from.Namespace`. */
type ReturnType<namespace extends Namespace> = {

@@ -171,3 +171,3 @@ [method in keyof namespace & string]: Item<

* representation. Accepts either a namespace + method name, or a resolved
* `RpcSchema.Item` (from {@link parseItem}/{@link from}).
* `RpcSchema.Item` (from `parseItem`/`from`).
*

@@ -223,3 +223,3 @@ * @example

* endpoint expects. Accepts either a namespace + method name, or a resolved
* `RpcSchema.Item` (from {@link parseItem}/{@link from}).
* `RpcSchema.Item` (from `parseItem`/`from`).
*

@@ -275,3 +275,3 @@ * @example

* representation. Accepts either a namespace + method name, or a resolved
* `RpcSchema.Item` (from {@link parseItem}/{@link from}).
* `RpcSchema.Item` (from `parseItem`/`from`).
*

@@ -327,3 +327,3 @@ * @example

* Accepts either a namespace + method name, or a resolved `RpcSchema.Item`
* (from {@link parseItem}/{@link from}).
* (from `parseItem`/`from`).
*

@@ -330,0 +330,0 @@ * @example

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display