ox 1.0.0-beta.7 → 1.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/Abi.d.ts +6 -2
- package/dist/core/Abi.d.ts.map +1 -1
- package/dist/core/Abi.js +6 -3
- package/dist/core/Abi.js.map +1 -1
- package/dist/core/AbiConstructor.d.ts +2 -1
- package/dist/core/AbiConstructor.d.ts.map +1 -1
- package/dist/core/AbiConstructor.js +2 -2
- package/dist/core/AbiConstructor.js.map +1 -1
- package/dist/core/AbiError.d.ts +3 -1
- package/dist/core/AbiError.d.ts.map +1 -1
- package/dist/core/AbiError.js +2 -2
- package/dist/core/AbiError.js.map +1 -1
- package/dist/core/AbiEvent.d.ts +3 -1
- package/dist/core/AbiEvent.d.ts.map +1 -1
- package/dist/core/AbiEvent.js +2 -2
- package/dist/core/AbiEvent.js.map +1 -1
- package/dist/core/AbiFunction.d.ts +3 -1
- package/dist/core/AbiFunction.d.ts.map +1 -1
- package/dist/core/AbiFunction.js +2 -2
- package/dist/core/AbiFunction.js.map +1 -1
- package/dist/core/AbiItem.d.ts +6 -3
- package/dist/core/AbiItem.d.ts.map +1 -1
- package/dist/core/AbiItem.js +9 -7
- package/dist/core/AbiItem.js.map +1 -1
- package/dist/core/AbiParameter.d.ts +88 -0
- package/dist/core/AbiParameter.d.ts.map +1 -0
- package/dist/core/AbiParameter.js +82 -0
- package/dist/core/AbiParameter.js.map +1 -0
- package/dist/core/AbiParameters.d.ts +58 -2
- package/dist/core/AbiParameters.d.ts.map +1 -1
- package/dist/core/AbiParameters.js +56 -5
- package/dist/core/AbiParameters.js.map +1 -1
- package/dist/core/Log.d.ts +1 -1
- package/dist/core/Log.d.ts.map +1 -1
- package/dist/core/RpcSchema.d.ts +1 -1
- package/dist/core/internal/human-readable/errors.d.ts +103 -0
- package/dist/core/internal/human-readable/errors.d.ts.map +1 -0
- package/dist/core/internal/human-readable/errors.js +142 -0
- package/dist/core/internal/human-readable/errors.js.map +1 -0
- package/dist/core/internal/human-readable/formatAbi.d.ts +19 -0
- package/dist/core/internal/human-readable/formatAbi.d.ts.map +1 -0
- package/dist/core/internal/human-readable/formatAbi.js +18 -0
- package/dist/core/internal/human-readable/formatAbi.js.map +1 -0
- package/dist/core/internal/human-readable/formatAbiItem.d.ts +23 -0
- package/dist/core/internal/human-readable/formatAbiItem.d.ts.map +1 -0
- package/dist/core/internal/human-readable/formatAbiItem.js +25 -0
- package/dist/core/internal/human-readable/formatAbiItem.js.map +1 -0
- package/dist/core/internal/human-readable/formatAbiParameter.d.ts +41 -0
- package/dist/core/internal/human-readable/formatAbiParameter.d.ts.map +1 -0
- package/dist/core/internal/human-readable/formatAbiParameter.js +36 -0
- package/dist/core/internal/human-readable/formatAbiParameter.js.map +1 -0
- package/dist/core/internal/human-readable/formatAbiParameters.d.ts +26 -0
- package/dist/core/internal/human-readable/formatAbiParameters.d.ts.map +1 -0
- package/dist/core/internal/human-readable/formatAbiParameters.js +19 -0
- package/dist/core/internal/human-readable/formatAbiParameters.js.map +1 -0
- package/dist/core/internal/human-readable/parseAbi.d.ts +22 -0
- package/dist/core/internal/human-readable/parseAbi.d.ts.map +1 -0
- package/dist/core/internal/human-readable/parseAbi.js +22 -0
- package/dist/core/internal/human-readable/parseAbi.js.map +1 -0
- package/dist/core/internal/human-readable/parseAbiItem.d.ts +23 -0
- package/dist/core/internal/human-readable/parseAbiItem.d.ts.map +1 -0
- package/dist/core/internal/human-readable/parseAbiItem.js +30 -0
- package/dist/core/internal/human-readable/parseAbiItem.js.map +1 -0
- package/dist/core/internal/human-readable/parseAbiParameter.d.ts +28 -0
- package/dist/core/internal/human-readable/parseAbiParameter.d.ts.map +1 -0
- package/dist/core/internal/human-readable/parseAbiParameter.js +32 -0
- package/dist/core/internal/human-readable/parseAbiParameter.js.map +1 -0
- package/dist/core/internal/human-readable/parseAbiParameters.d.ts +38 -0
- package/dist/core/internal/human-readable/parseAbiParameters.d.ts.map +1 -0
- package/dist/core/internal/human-readable/parseAbiParameters.js +39 -0
- package/dist/core/internal/human-readable/parseAbiParameters.js.map +1 -0
- package/dist/core/internal/human-readable/regex.d.ts +9 -0
- package/dist/core/internal/human-readable/regex.d.ts.map +1 -0
- package/dist/core/internal/human-readable/regex.js +12 -0
- package/dist/core/internal/human-readable/regex.js.map +1 -0
- package/dist/core/internal/human-readable/runtime/cache.d.ts +22 -0
- package/dist/core/internal/human-readable/runtime/cache.d.ts.map +1 -0
- package/dist/core/internal/human-readable/runtime/cache.js +86 -0
- package/dist/core/internal/human-readable/runtime/cache.js.map +1 -0
- package/dist/core/internal/human-readable/runtime/signatures.d.ts +39 -0
- package/dist/core/internal/human-readable/runtime/signatures.d.ts.map +1 -0
- package/dist/core/internal/human-readable/runtime/signatures.js +67 -0
- package/dist/core/internal/human-readable/runtime/signatures.js.map +1 -0
- package/dist/core/internal/human-readable/runtime/structs.d.ts +3 -0
- package/dist/core/internal/human-readable/runtime/structs.d.ts.map +1 -0
- package/dist/core/internal/human-readable/runtime/structs.js +79 -0
- package/dist/core/internal/human-readable/runtime/structs.js.map +1 -0
- package/dist/core/internal/human-readable/runtime/utils.d.ts +205 -0
- package/dist/core/internal/human-readable/runtime/utils.d.ts.map +1 -0
- package/dist/core/internal/human-readable/runtime/utils.js +232 -0
- package/dist/core/internal/human-readable/runtime/utils.js.map +1 -0
- package/dist/core/internal/human-readable/types/signatures.d.ts +38 -0
- package/dist/core/internal/human-readable/types/signatures.d.ts.map +1 -0
- package/dist/core/internal/human-readable/types/signatures.js +2 -0
- package/dist/core/internal/human-readable/types/signatures.js.map +1 -0
- package/dist/core/internal/human-readable/types/structs.d.ts +48 -0
- package/dist/core/internal/human-readable/types/structs.d.ts.map +1 -0
- package/dist/core/internal/human-readable/types/structs.js +2 -0
- package/dist/core/internal/human-readable/types/structs.js.map +1 -0
- package/dist/core/internal/human-readable/types/utils.d.ts +163 -0
- package/dist/core/internal/human-readable/types/utils.d.ts.map +1 -0
- package/dist/core/internal/human-readable/types/utils.js +2 -0
- package/dist/core/internal/human-readable/types/utils.js.map +1 -0
- package/dist/core/internal/human-readable/types.d.ts +29 -0
- package/dist/core/internal/human-readable/types.d.ts.map +1 -0
- package/dist/core/internal/human-readable/types.js +2 -0
- package/dist/core/internal/human-readable/types.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -1
- package/dist/zod/Log.d.ts +3 -3
- package/dist/zod/Log.js +1 -1
- package/dist/zod/Log.js.map +1 -1
- package/dist/zod/RpcSchema.d.ts +11 -11
- package/dist/zod/RpcSchema.d.ts.map +1 -1
- package/dist/zod/TransactionReceipt.d.ts +2 -2
- package/dist/zod/internal/rpcSchemas/Eth.d.ts +6 -6
- package/dist/zod/internal/rpcSchemas/Wallet.d.ts +1 -1
- package/dist/zod/tempo/RpcSchemaTempo.d.ts +2 -2
- package/dist/zod/tempo/TransactionReceipt.d.ts +2 -2
- package/package.json +6 -1
- package/src/core/Abi.bench.ts +30 -0
- package/src/core/Abi.ts +13 -4
- package/src/core/AbiConstructor.ts +3 -2
- package/src/core/AbiError.ts +6 -2
- package/src/core/AbiEvent.ts +6 -2
- package/src/core/AbiFunction.ts +6 -2
- package/src/core/AbiItem.bench.ts +19 -0
- package/src/core/AbiItem.ts +20 -10
- package/src/core/AbiParameter.bench.ts +35 -0
- package/src/core/AbiParameter.ts +126 -0
- package/src/core/AbiParameters.bench.ts +22 -0
- package/src/core/AbiParameters.ts +74 -7
- package/src/core/Log.ts +1 -1
- package/src/core/RpcSchema.ts +1 -1
- package/src/core/_test/Abi.test.ts +4 -0
- package/src/core/_test/AbiItem.test.ts +3 -0
- package/src/core/_test/AbiParameter.test-d.ts +41 -0
- package/src/core/_test/AbiParameter.test.ts +84 -0
- package/src/core/_test/AbiParameters.test.ts +7 -0
- package/src/core/_test/index.test.ts +1 -0
- package/src/core/internal/human-readable/_snap/formatAbi.test.ts.snap +74 -0
- package/src/core/internal/human-readable/_snap/parseAbi.test.ts.snap +2353 -0
- package/src/core/internal/human-readable/errors.test.ts +258 -0
- package/src/core/internal/human-readable/errors.ts +205 -0
- package/src/core/internal/human-readable/formatAbi.test-d.ts +144 -0
- package/src/core/internal/human-readable/formatAbi.test.ts +23 -0
- package/src/core/internal/human-readable/formatAbi.ts +37 -0
- package/src/core/internal/human-readable/formatAbiItem.test-d.ts +115 -0
- package/src/core/internal/human-readable/formatAbiItem.test.ts +102 -0
- package/src/core/internal/human-readable/formatAbiItem.ts +136 -0
- package/src/core/internal/human-readable/formatAbiParameter.test-d.ts +125 -0
- package/src/core/internal/human-readable/formatAbiParameter.test.ts +126 -0
- package/src/core/internal/human-readable/formatAbiParameter.ts +86 -0
- package/src/core/internal/human-readable/formatAbiParameters.test-d.ts +92 -0
- package/src/core/internal/human-readable/formatAbiParameters.test.ts +32 -0
- package/src/core/internal/human-readable/formatAbiParameters.ts +46 -0
- package/src/core/internal/human-readable/human-readable.bench-d.ts +58 -0
- package/src/core/internal/human-readable/integration.test.ts +68 -0
- package/src/core/internal/human-readable/parseAbi.test-d.ts +188 -0
- package/src/core/internal/human-readable/parseAbi.test.ts +82 -0
- package/src/core/internal/human-readable/parseAbi.ts +59 -0
- package/src/core/internal/human-readable/parseAbiItem.test-d.ts +183 -0
- package/src/core/internal/human-readable/parseAbiItem.test.ts +264 -0
- package/src/core/internal/human-readable/parseAbiItem.ts +91 -0
- package/src/core/internal/human-readable/parseAbiParameter.test-d.ts +68 -0
- package/src/core/internal/human-readable/parseAbiParameter.test.ts +207 -0
- package/src/core/internal/human-readable/parseAbiParameter.ts +95 -0
- package/src/core/internal/human-readable/parseAbiParameters.test-d.ts +160 -0
- package/src/core/internal/human-readable/parseAbiParameters.test.ts +80 -0
- package/src/core/internal/human-readable/parseAbiParameters.ts +123 -0
- package/src/core/internal/human-readable/regex.ts +15 -0
- package/src/core/internal/human-readable/runtime/cache.ts +96 -0
- package/src/core/internal/human-readable/runtime/signatures.test.ts +236 -0
- package/src/core/internal/human-readable/runtime/signatures.ts +106 -0
- package/src/core/internal/human-readable/runtime/structs.test.ts +210 -0
- package/src/core/internal/human-readable/runtime/structs.ts +97 -0
- package/src/core/internal/human-readable/runtime/utils.test.ts +717 -0
- package/src/core/internal/human-readable/runtime/utils.ts +344 -0
- package/src/core/internal/human-readable/types/signatures.test-d.ts +255 -0
- package/src/core/internal/human-readable/types/signatures.ts +369 -0
- package/src/core/internal/human-readable/types/structs.test-d.ts +221 -0
- package/src/core/internal/human-readable/types/structs.ts +88 -0
- package/src/core/internal/human-readable/types/utils.test-d.ts +1029 -0
- package/src/core/internal/human-readable/types/utils.ts +392 -0
- package/src/core/internal/human-readable/types.ts +69 -0
- package/src/index.ts +38 -0
- package/src/version.ts +1 -1
- package/src/zod/Log.ts +1 -1
- package/src/zod/RpcSchema.ts +5 -5
- package/src/zod/_test/Log.test.ts +16 -0
- package/src/zod/_test/TransactionReceipt.test.ts +1 -1
package/dist/core/RpcSchema.d.ts
CHANGED
|
@@ -256,7 +256,7 @@ export type FromViem<schema extends readonly ViemSchemaItem[]> = {
|
|
|
256
256
|
* Each method's name comes from its key. Both `params` and `ReturnType` are
|
|
257
257
|
* derived from the Zod schema's input (wire) type, since raw JSON-RPC clients
|
|
258
258
|
* send and receive wire values. Decode wire results to their native
|
|
259
|
-
* representation explicitly via
|
|
259
|
+
* representation explicitly via `zod.RpcSchema.decodeReturns`.
|
|
260
260
|
*
|
|
261
261
|
* @example
|
|
262
262
|
* ```ts twoslash
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { AbiItemType, AbiParameter } from 'abitype';
|
|
2
|
+
import { BaseError } from '../../Errors.js';
|
|
3
|
+
import type { Modifier } from './types/signatures.js';
|
|
4
|
+
export declare class InvalidAbiItemError extends BaseError {
|
|
5
|
+
name: string;
|
|
6
|
+
constructor({ signature }: {
|
|
7
|
+
signature: string | object;
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
export declare class UnknownTypeError extends BaseError {
|
|
11
|
+
name: string;
|
|
12
|
+
constructor({ type }: {
|
|
13
|
+
type: string;
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export declare class UnknownSolidityTypeError extends BaseError {
|
|
17
|
+
name: string;
|
|
18
|
+
constructor({ type }: {
|
|
19
|
+
type: string;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
export declare class InvalidAbiParameterError extends BaseError {
|
|
23
|
+
name: string;
|
|
24
|
+
constructor({ param }: {
|
|
25
|
+
param: string | object;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export declare class InvalidAbiParametersError extends BaseError {
|
|
29
|
+
name: string;
|
|
30
|
+
constructor({ params }: {
|
|
31
|
+
params: string | object;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
export declare class InvalidParameterError extends BaseError {
|
|
35
|
+
name: string;
|
|
36
|
+
constructor({ param }: {
|
|
37
|
+
param: string;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
export declare class SolidityProtectedKeywordError extends BaseError {
|
|
41
|
+
name: string;
|
|
42
|
+
constructor({ param, name }: {
|
|
43
|
+
param: string;
|
|
44
|
+
name: string;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
export declare class InvalidModifierError extends BaseError {
|
|
48
|
+
name: string;
|
|
49
|
+
constructor({ param, type, modifier, }: {
|
|
50
|
+
param: string;
|
|
51
|
+
type?: AbiItemType | 'struct' | undefined;
|
|
52
|
+
modifier: Modifier;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
export declare class InvalidFunctionModifierError extends BaseError {
|
|
56
|
+
name: string;
|
|
57
|
+
constructor({ param, type, modifier, }: {
|
|
58
|
+
param: string;
|
|
59
|
+
type?: AbiItemType | 'struct' | undefined;
|
|
60
|
+
modifier: Modifier;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
export declare class InvalidAbiTypeParameterError extends BaseError {
|
|
64
|
+
name: string;
|
|
65
|
+
constructor({ abiParameter, }: {
|
|
66
|
+
abiParameter: AbiParameter & {
|
|
67
|
+
indexed?: boolean | undefined;
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
export declare class InvalidSignatureError extends BaseError {
|
|
72
|
+
name: string;
|
|
73
|
+
constructor({ signature, type, }: {
|
|
74
|
+
signature: string;
|
|
75
|
+
type: AbiItemType | 'struct';
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
export declare class UnknownSignatureError extends BaseError {
|
|
79
|
+
name: string;
|
|
80
|
+
constructor({ signature }: {
|
|
81
|
+
signature: string;
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
export declare class InvalidStructSignatureError extends BaseError {
|
|
85
|
+
name: string;
|
|
86
|
+
constructor({ signature }: {
|
|
87
|
+
signature: string;
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
export declare class InvalidParenthesisError extends BaseError {
|
|
91
|
+
name: string;
|
|
92
|
+
constructor({ current, depth }: {
|
|
93
|
+
current: string;
|
|
94
|
+
depth: number;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
export declare class CircularReferenceError extends BaseError {
|
|
98
|
+
name: string;
|
|
99
|
+
constructor({ type }: {
|
|
100
|
+
type: string;
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAErD,qBAAa,mBAAoB,SAAQ,SAAS;IACvC,IAAI,SAAgC;gBAEjC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;CAM1D;AAED,qBAAa,gBAAiB,SAAQ,SAAS;IACpC,IAAI,SAAsC;gBAEvC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;CAOvC;AAED,qBAAa,wBAAyB,SAAQ,SAAS;IAC5C,IAAI,SAA8C;gBAE/C,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;CAKvC;AAED,qBAAa,wBAAyB,SAAQ,SAAS;IAC5C,IAAI,SAA0C;gBAE3C,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;CAMlD;AAED,qBAAa,yBAA0B,SAAQ,SAAS;IAC7C,IAAI,SAA4C;gBAE7C,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;CAMpD;AAED,qBAAa,qBAAsB,SAAQ,SAAS;IACzC,IAAI,SAA2C;gBAE5C,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;CAKzC;AAED,qBAAa,6BAA8B,SAAQ,SAAS;IACjD,IAAI,SAAmD;gBAEpD,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAQ7D;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IACxC,IAAI,SAA0C;gBAE3C,EACV,KAAK,EACL,IAAI,EACJ,QAAQ,GACT,EAAE;QACD,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAA;QACzC,QAAQ,EAAE,QAAQ,CAAA;KACnB;CAUF;AAED,qBAAa,4BAA6B,SAAQ,SAAS;IAChD,IAAI,SAAkD;gBAEnD,EACV,KAAK,EACL,IAAI,EACJ,QAAQ,GACT,EAAE;QACD,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAA;QACzC,QAAQ,EAAE,QAAQ,CAAA;KACnB;CAWF;AAED,qBAAa,4BAA6B,SAAQ,SAAS;IAChD,IAAI,SAAkD;gBAEnD,EACV,YAAY,GACb,EAAE;QACD,YAAY,EAAE,YAAY,GAAG;YAAE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;SAAE,CAAA;KAC/D;CAMF;AAED,qBAAa,qBAAsB,SAAQ,SAAS;IACzC,IAAI,SAA8B;gBAE/B,EACV,SAAS,EACT,IAAI,GACL,EAAE;QACD,SAAS,EAAE,MAAM,CAAA;QACjB,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAA;KAC7B;CAKF;AAED,qBAAa,qBAAsB,SAAQ,SAAS;IACzC,IAAI,SAA8B;gBAE/B,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;CAKjD;AAED,qBAAa,2BAA4B,SAAQ,SAAS;IAC/C,IAAI,SAAoC;gBAErC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;CAMjD;AAED,qBAAa,uBAAwB,SAAQ,SAAS;IAC3C,IAAI,SAA6C;gBAE9C,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CAUnE;AAED,qBAAa,sBAAuB,SAAQ,SAAS;IAC1C,IAAI,SAA+B;gBAEhC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;CAKvC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { BaseError } from '../../Errors.js';
|
|
2
|
+
export class InvalidAbiItemError extends BaseError {
|
|
3
|
+
name = 'AbiItem.InvalidAbiItemError';
|
|
4
|
+
constructor({ signature }) {
|
|
5
|
+
super('Failed to parse ABI item.', {
|
|
6
|
+
details: `parseAbiItem(${JSON.stringify(signature, null, 2)})`,
|
|
7
|
+
docsPath: '/api/AbiItem/from',
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class UnknownTypeError extends BaseError {
|
|
12
|
+
name = 'HumanReadableAbi.UnknownTypeError';
|
|
13
|
+
constructor({ type }) {
|
|
14
|
+
super('Unknown type.', {
|
|
15
|
+
metaMessages: [
|
|
16
|
+
`Type "${type}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`,
|
|
17
|
+
],
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class UnknownSolidityTypeError extends BaseError {
|
|
22
|
+
name = 'HumanReadableAbi.UnknownSolidityTypeError';
|
|
23
|
+
constructor({ type }) {
|
|
24
|
+
super('Unknown type.', {
|
|
25
|
+
metaMessages: [`Type "${type}" is not a valid ABI type.`],
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export class InvalidAbiParameterError extends BaseError {
|
|
30
|
+
name = 'AbiParameter.InvalidAbiParameterError';
|
|
31
|
+
constructor({ param }) {
|
|
32
|
+
super('Failed to parse ABI parameter.', {
|
|
33
|
+
details: `parseAbiParameter(${JSON.stringify(param, null, 2)})`,
|
|
34
|
+
docsPath: '/api/AbiParameter/from',
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export class InvalidAbiParametersError extends BaseError {
|
|
39
|
+
name = 'AbiParameters.InvalidAbiParametersError';
|
|
40
|
+
constructor({ params }) {
|
|
41
|
+
super('Failed to parse ABI parameters.', {
|
|
42
|
+
details: `parseAbiParameters(${JSON.stringify(params, null, 2)})`,
|
|
43
|
+
docsPath: '/api/AbiParameters/from',
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export class InvalidParameterError extends BaseError {
|
|
48
|
+
name = 'HumanReadableAbi.InvalidParameterError';
|
|
49
|
+
constructor({ param }) {
|
|
50
|
+
super('Invalid ABI parameter.', {
|
|
51
|
+
details: param,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export class SolidityProtectedKeywordError extends BaseError {
|
|
56
|
+
name = 'HumanReadableAbi.SolidityProtectedKeywordError';
|
|
57
|
+
constructor({ param, name }) {
|
|
58
|
+
super('Invalid ABI parameter.', {
|
|
59
|
+
details: param,
|
|
60
|
+
metaMessages: [
|
|
61
|
+
`"${name}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`,
|
|
62
|
+
],
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export class InvalidModifierError extends BaseError {
|
|
67
|
+
name = 'HumanReadableAbi.InvalidModifierError';
|
|
68
|
+
constructor({ param, type, modifier, }) {
|
|
69
|
+
super('Invalid ABI parameter.', {
|
|
70
|
+
details: param,
|
|
71
|
+
metaMessages: [
|
|
72
|
+
`Modifier "${modifier}" not allowed${type ? ` in "${type}" type` : ''}.`,
|
|
73
|
+
],
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export class InvalidFunctionModifierError extends BaseError {
|
|
78
|
+
name = 'HumanReadableAbi.InvalidFunctionModifierError';
|
|
79
|
+
constructor({ param, type, modifier, }) {
|
|
80
|
+
super('Invalid ABI parameter.', {
|
|
81
|
+
details: param,
|
|
82
|
+
metaMessages: [
|
|
83
|
+
`Modifier "${modifier}" not allowed${type ? ` in "${type}" type` : ''}.`,
|
|
84
|
+
`Data location can only be specified for array, struct, or mapping types, but "${modifier}" was given.`,
|
|
85
|
+
],
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
export class InvalidAbiTypeParameterError extends BaseError {
|
|
90
|
+
name = 'HumanReadableAbi.InvalidAbiTypeParameterError';
|
|
91
|
+
constructor({ abiParameter, }) {
|
|
92
|
+
super('Invalid ABI parameter.', {
|
|
93
|
+
details: JSON.stringify(abiParameter, null, 2),
|
|
94
|
+
metaMessages: ['ABI parameter type is invalid.'],
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
export class InvalidSignatureError extends BaseError {
|
|
99
|
+
name = 'Abi.InvalidSignatureError';
|
|
100
|
+
constructor({ signature, type, }) {
|
|
101
|
+
super(`Invalid ${type} signature.`, {
|
|
102
|
+
details: signature,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
export class UnknownSignatureError extends BaseError {
|
|
107
|
+
name = 'Abi.UnknownSignatureError';
|
|
108
|
+
constructor({ signature }) {
|
|
109
|
+
super('Unknown signature.', {
|
|
110
|
+
details: signature,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
export class InvalidStructSignatureError extends BaseError {
|
|
115
|
+
name = 'Abi.InvalidStructSignatureError';
|
|
116
|
+
constructor({ signature }) {
|
|
117
|
+
super('Invalid struct signature.', {
|
|
118
|
+
details: signature,
|
|
119
|
+
metaMessages: ['No properties exist.'],
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
export class InvalidParenthesisError extends BaseError {
|
|
124
|
+
name = 'HumanReadableAbi.InvalidParenthesisError';
|
|
125
|
+
constructor({ current, depth }) {
|
|
126
|
+
super('Unbalanced parentheses.', {
|
|
127
|
+
metaMessages: [
|
|
128
|
+
`"${current.trim()}" has too many ${depth > 0 ? 'opening' : 'closing'} parentheses.`,
|
|
129
|
+
],
|
|
130
|
+
details: `Depth "${depth}"`,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
export class CircularReferenceError extends BaseError {
|
|
135
|
+
name = 'Abi.CircularReferenceError';
|
|
136
|
+
constructor({ type }) {
|
|
137
|
+
super('Circular reference detected.', {
|
|
138
|
+
metaMessages: [`Struct "${type}" is a circular reference.`],
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/core/internal/human-readable/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Abi } from 'abitype';
|
|
2
|
+
import { type FormatAbiItem } from './formatAbiItem.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parses JSON ABI into human-readable ABI
|
|
5
|
+
*
|
|
6
|
+
* @param abi - ABI
|
|
7
|
+
* @returns Human-readable ABI
|
|
8
|
+
*/
|
|
9
|
+
export type FormatAbi<abi extends Abi | readonly unknown[]> = Abi extends abi ? readonly string[] : abi extends readonly [] ? never : abi extends Abi ? {
|
|
10
|
+
[key in keyof abi]: FormatAbiItem<abi[key]>;
|
|
11
|
+
} : readonly string[];
|
|
12
|
+
/**
|
|
13
|
+
* Parses JSON ABI into human-readable ABI
|
|
14
|
+
*
|
|
15
|
+
* @param abi - ABI
|
|
16
|
+
* @returns Human-readable ABI
|
|
17
|
+
*/
|
|
18
|
+
export declare function formatAbi<const abi extends Abi | readonly unknown[]>(abi: abi): FormatAbi<abi>;
|
|
19
|
+
//# sourceMappingURL=formatAbi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { formatAbiItem } from './formatAbiItem.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parses JSON ABI into human-readable ABI
|
|
4
|
+
*
|
|
5
|
+
* @param abi - ABI
|
|
6
|
+
* @returns Human-readable ABI
|
|
7
|
+
*/
|
|
8
|
+
export function formatAbi(abi) {
|
|
9
|
+
const signatures = [];
|
|
10
|
+
const length = abi.length;
|
|
11
|
+
for (let i = 0; i < length; i++) {
|
|
12
|
+
const abiItem = abi[i];
|
|
13
|
+
const signature = formatAbiItem(abiItem);
|
|
14
|
+
signatures.push(signature);
|
|
15
|
+
}
|
|
16
|
+
return signatures;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=formatAbi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Abi, AbiConstructor, AbiError, AbiEvent, AbiEventParameter, AbiFallback, AbiFunction, AbiParameter, AbiReceive, AbiStateMutability } from 'abitype';
|
|
2
|
+
import { type FormatAbiParameters as FormatAbiParameters_ } from './formatAbiParameters.js';
|
|
3
|
+
import type { AssertName } from './types/signatures.js';
|
|
4
|
+
/**
|
|
5
|
+
* Formats ABI item (e.g. error, event, function) into human-readable ABI item
|
|
6
|
+
*
|
|
7
|
+
* @param abiItem - ABI item
|
|
8
|
+
* @returns Human-readable ABI item
|
|
9
|
+
*/
|
|
10
|
+
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);
|
|
11
|
+
type FormatAbiParameters<abiParameters extends readonly (AbiParameter | AbiEventParameter)[]> = abiParameters['length'] extends 0 ? '' : FormatAbiParameters_<abiParameters extends readonly [
|
|
12
|
+
AbiParameter | AbiEventParameter,
|
|
13
|
+
...(readonly (AbiParameter | AbiEventParameter)[])
|
|
14
|
+
] ? abiParameters : never>;
|
|
15
|
+
/**
|
|
16
|
+
* Formats ABI item (e.g. error, event, function) into human-readable ABI item
|
|
17
|
+
*
|
|
18
|
+
* @param abiItem - ABI item
|
|
19
|
+
* @returns Human-readable ABI item
|
|
20
|
+
*/
|
|
21
|
+
export declare function formatAbiItem<const abiItem extends Abi[number]>(abiItem: abiItem): FormatAbiItem<abiItem>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=formatAbiItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { formatAbiParameters, } from './formatAbiParameters.js';
|
|
2
|
+
/**
|
|
3
|
+
* Formats ABI item (e.g. error, event, function) into human-readable ABI item
|
|
4
|
+
*
|
|
5
|
+
* @param abiItem - ABI item
|
|
6
|
+
* @returns Human-readable ABI item
|
|
7
|
+
*/
|
|
8
|
+
export function formatAbiItem(abiItem) {
|
|
9
|
+
if (abiItem.type === 'function')
|
|
10
|
+
return `function ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability && abiItem.stateMutability !== 'nonpayable'
|
|
11
|
+
? ` ${abiItem.stateMutability}`
|
|
12
|
+
: ''}${abiItem.outputs?.length
|
|
13
|
+
? ` returns (${formatAbiParameters(abiItem.outputs)})`
|
|
14
|
+
: ''}`;
|
|
15
|
+
if (abiItem.type === 'event')
|
|
16
|
+
return `event ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;
|
|
17
|
+
if (abiItem.type === 'error')
|
|
18
|
+
return `error ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;
|
|
19
|
+
if (abiItem.type === 'constructor')
|
|
20
|
+
return `constructor(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;
|
|
21
|
+
if (abiItem.type === 'fallback')
|
|
22
|
+
return `fallback() external${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;
|
|
23
|
+
return 'receive() external payable';
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=formatAbiItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { AbiEventParameter, AbiParameter } from 'abitype';
|
|
2
|
+
import type { IsNarrowable, Join } from './types.js';
|
|
3
|
+
import type { AssertName } from './types/signatures.js';
|
|
4
|
+
/**
|
|
5
|
+
* Formats `AbiParameter` to human-readable ABI parameter.
|
|
6
|
+
*
|
|
7
|
+
* @param abiParameter - ABI parameter
|
|
8
|
+
* @returns Human-readable ABI parameter
|
|
9
|
+
*/
|
|
10
|
+
export type FormatAbiParameter<abiParameter extends AbiParameter | AbiEventParameter> = abiParameter extends {
|
|
11
|
+
name?: infer name extends string;
|
|
12
|
+
type: `tuple${infer array}`;
|
|
13
|
+
components: infer components extends readonly AbiParameter[];
|
|
14
|
+
indexed?: infer indexed extends boolean;
|
|
15
|
+
} ? FormatAbiParameter<{
|
|
16
|
+
type: `(${Join<{
|
|
17
|
+
[key in keyof components]: FormatAbiParameter<{
|
|
18
|
+
type: components[key]['type'];
|
|
19
|
+
} & (IsNarrowable<components[key]['name'], string> extends true ? {
|
|
20
|
+
name: components[key]['name'];
|
|
21
|
+
} : unknown) & (components[key] extends {
|
|
22
|
+
components: readonly AbiParameter[];
|
|
23
|
+
} ? {
|
|
24
|
+
components: components[key]['components'];
|
|
25
|
+
} : unknown)>;
|
|
26
|
+
}, ', '>})${array}`;
|
|
27
|
+
} & (IsNarrowable<name, string> extends true ? {
|
|
28
|
+
name: name;
|
|
29
|
+
} : unknown) & (IsNarrowable<indexed, boolean> extends true ? {
|
|
30
|
+
indexed: indexed;
|
|
31
|
+
} : unknown)> : `${abiParameter['type']}${abiParameter extends {
|
|
32
|
+
indexed: true;
|
|
33
|
+
} ? ' indexed' : ''}${abiParameter['name'] extends infer name extends string ? name extends '' ? '' : ` ${AssertName<name>}` : ''}`;
|
|
34
|
+
/**
|
|
35
|
+
* Formats `AbiParameter` to human-readable ABI parameter.
|
|
36
|
+
*
|
|
37
|
+
* @param abiParameter - ABI parameter
|
|
38
|
+
* @returns Human-readable ABI parameter
|
|
39
|
+
*/
|
|
40
|
+
export declare function formatAbiParameter<const abiParameter extends AbiParameter | AbiEventParameter>(abiParameter: abiParameter): FormatAbiParameter<abiParameter>;
|
|
41
|
+
//# sourceMappingURL=formatAbiParameter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { execTyped } from './regex.js';
|
|
2
|
+
// https://regexr.com/7f7rv
|
|
3
|
+
const tupleRegex = /^tuple(?<array>(\[(\d*)\])*)$/;
|
|
4
|
+
/**
|
|
5
|
+
* Formats `AbiParameter` to human-readable ABI parameter.
|
|
6
|
+
*
|
|
7
|
+
* @param abiParameter - ABI parameter
|
|
8
|
+
* @returns Human-readable ABI parameter
|
|
9
|
+
*/
|
|
10
|
+
export function formatAbiParameter(abiParameter) {
|
|
11
|
+
let type = abiParameter.type;
|
|
12
|
+
if (tupleRegex.test(abiParameter.type) && 'components' in abiParameter) {
|
|
13
|
+
type = '(';
|
|
14
|
+
const length = abiParameter.components.length;
|
|
15
|
+
for (let i = 0; i < length; i++) {
|
|
16
|
+
const component = abiParameter.components[i];
|
|
17
|
+
type += formatAbiParameter(component);
|
|
18
|
+
if (i < length - 1)
|
|
19
|
+
type += ', ';
|
|
20
|
+
}
|
|
21
|
+
const result = execTyped(tupleRegex, abiParameter.type);
|
|
22
|
+
type += `)${result?.array || ''}`;
|
|
23
|
+
return formatAbiParameter({
|
|
24
|
+
...abiParameter,
|
|
25
|
+
type,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
// Add `indexed` to type if in `abiParameter`
|
|
29
|
+
if ('indexed' in abiParameter && abiParameter.indexed)
|
|
30
|
+
type = `${type} indexed`;
|
|
31
|
+
// Return human-readable ABI parameter
|
|
32
|
+
if (abiParameter.name)
|
|
33
|
+
return `${type} ${abiParameter.name}`;
|
|
34
|
+
return type;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=formatAbiParameter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { AbiEventParameter, AbiParameter } from 'abitype';
|
|
2
|
+
import type { Join } from './types.js';
|
|
3
|
+
import { type FormatAbiParameter } from './formatAbiParameter.js';
|
|
4
|
+
/**
|
|
5
|
+
* Formats `AbiParameter`s to human-readable ABI parameter.
|
|
6
|
+
*
|
|
7
|
+
* @param abiParameters - ABI parameters
|
|
8
|
+
* @returns Human-readable ABI parameters
|
|
9
|
+
*/
|
|
10
|
+
export type FormatAbiParameters<abiParameters extends readonly [
|
|
11
|
+
AbiParameter | AbiEventParameter,
|
|
12
|
+
...(readonly (AbiParameter | AbiEventParameter)[])
|
|
13
|
+
]> = Join<{
|
|
14
|
+
[key in keyof abiParameters]: FormatAbiParameter<abiParameters[key]>;
|
|
15
|
+
}, ', '>;
|
|
16
|
+
/**
|
|
17
|
+
* Formats `AbiParameter`s to human-readable ABI parameters.
|
|
18
|
+
*
|
|
19
|
+
* @param abiParameters - ABI parameters
|
|
20
|
+
* @returns Human-readable ABI parameters
|
|
21
|
+
*/
|
|
22
|
+
export declare function formatAbiParameters<const abiParameters extends readonly [
|
|
23
|
+
AbiParameter | AbiEventParameter,
|
|
24
|
+
...(readonly (AbiParameter | AbiEventParameter)[])
|
|
25
|
+
]>(abiParameters: abiParameters): FormatAbiParameters<abiParameters>;
|
|
26
|
+
//# sourceMappingURL=formatAbiParameters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { formatAbiParameter, } from './formatAbiParameter.js';
|
|
2
|
+
/**
|
|
3
|
+
* Formats `AbiParameter`s to human-readable ABI parameters.
|
|
4
|
+
*
|
|
5
|
+
* @param abiParameters - ABI parameters
|
|
6
|
+
* @returns Human-readable ABI parameters
|
|
7
|
+
*/
|
|
8
|
+
export function formatAbiParameters(abiParameters) {
|
|
9
|
+
let params = '';
|
|
10
|
+
const length = abiParameters.length;
|
|
11
|
+
for (let i = 0; i < length; i++) {
|
|
12
|
+
const abiParameter = abiParameters[i];
|
|
13
|
+
params += formatAbiParameter(abiParameter);
|
|
14
|
+
if (i !== length - 1)
|
|
15
|
+
params += ', ';
|
|
16
|
+
}
|
|
17
|
+
return params;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=formatAbiParameters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Abi } from 'abitype';
|
|
2
|
+
import type { Error, Filter } from './types.js';
|
|
3
|
+
import type { Signatures } from './types/signatures.js';
|
|
4
|
+
import type { ParseStructs } from './types/structs.js';
|
|
5
|
+
import type { ParseSignature } from './types/utils.js';
|
|
6
|
+
/**
|
|
7
|
+
* Parses human-readable ABI into JSON `Abi`.
|
|
8
|
+
*
|
|
9
|
+
* @param signatures - Human-readable ABI
|
|
10
|
+
* @returns Parsed `Abi`.
|
|
11
|
+
*/
|
|
12
|
+
export type ParseAbi<signatures extends readonly string[]> = string[] extends signatures ? Abi : signatures extends readonly string[] ? signatures extends Signatures<signatures> ? ParseStructs<signatures> extends infer structs ? {
|
|
13
|
+
[key in keyof signatures]: signatures[key] extends string ? ParseSignature<signatures[key], structs> : never;
|
|
14
|
+
} extends infer mapped extends readonly unknown[] ? Filter<mapped, never> extends infer result ? result extends readonly [] ? never : result : never : never : never : never : never;
|
|
15
|
+
/**
|
|
16
|
+
* Parses human-readable ABI into JSON `Abi`.
|
|
17
|
+
*
|
|
18
|
+
* @param signatures - Human-Readable ABI
|
|
19
|
+
* @returns Parsed `Abi`.
|
|
20
|
+
*/
|
|
21
|
+
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>;
|
|
22
|
+
//# sourceMappingURL=parseAbi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { isStructSignature } from './runtime/signatures.js';
|
|
2
|
+
import { parseStructs } from './runtime/structs.js';
|
|
3
|
+
import { parseSignature } from './runtime/utils.js';
|
|
4
|
+
/**
|
|
5
|
+
* Parses human-readable ABI into JSON `Abi`.
|
|
6
|
+
*
|
|
7
|
+
* @param signatures - Human-Readable ABI
|
|
8
|
+
* @returns Parsed `Abi`.
|
|
9
|
+
*/
|
|
10
|
+
export function parseAbi(signatures) {
|
|
11
|
+
const structs = parseStructs(signatures);
|
|
12
|
+
const abi = [];
|
|
13
|
+
const length = signatures.length;
|
|
14
|
+
for (let i = 0; i < length; i++) {
|
|
15
|
+
const signature = signatures[i];
|
|
16
|
+
if (isStructSignature(signature))
|
|
17
|
+
continue;
|
|
18
|
+
abi.push(parseSignature(signature, structs));
|
|
19
|
+
}
|
|
20
|
+
return abi;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=parseAbi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Abi } from 'abitype';
|
|
2
|
+
import type { Narrow } from 'abitype';
|
|
3
|
+
import type { Error, Filter } from './types.js';
|
|
4
|
+
import type { Signature, Signatures } from './types/signatures.js';
|
|
5
|
+
import type { ParseStructs } from './types/structs.js';
|
|
6
|
+
import type { ParseSignature } from './types/utils.js';
|
|
7
|
+
/**
|
|
8
|
+
* Parses human-readable ABI item (e.g. error, event, function) into `Abi` item.
|
|
9
|
+
*
|
|
10
|
+
* @param signature - Human-readable ABI item
|
|
11
|
+
* @returns Parsed `Abi` item.
|
|
12
|
+
*/
|
|
13
|
+
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 ? {
|
|
14
|
+
[key in keyof signature]: ParseSignature<signature[key] extends string ? signature[key] : never, structs>;
|
|
15
|
+
} extends infer mapped extends readonly unknown[] ? Filter<mapped, never>[0] extends infer result ? result extends undefined ? never : result : never : never : never : never : never);
|
|
16
|
+
/**
|
|
17
|
+
* Parses human-readable ABI item (e.g. error, event, function) into `Abi` item.
|
|
18
|
+
*
|
|
19
|
+
* @param signature - Human-readable ABI item
|
|
20
|
+
* @returns Parsed `Abi` item.
|
|
21
|
+
*/
|
|
22
|
+
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>;
|
|
23
|
+
//# sourceMappingURL=parseAbiItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"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"}
|