ox 0.9.4 → 0.9.6

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.
Files changed (137) hide show
  1. package/Abi/package.json +6 -0
  2. package/AbiConstructor/package.json +6 -0
  3. package/AbiError/package.json +6 -0
  4. package/AbiEvent/package.json +6 -0
  5. package/AbiFunction/package.json +6 -0
  6. package/AbiItem/package.json +6 -0
  7. package/AbiParameters/package.json +6 -0
  8. package/AccessList/package.json +6 -0
  9. package/AccountProof/package.json +6 -0
  10. package/Address/package.json +6 -0
  11. package/AesGcm/package.json +6 -0
  12. package/Authorization/package.json +6 -0
  13. package/Base58/package.json +6 -0
  14. package/Base64/package.json +6 -0
  15. package/BinaryStateTree/package.json +6 -0
  16. package/Blobs/package.json +6 -0
  17. package/Block/package.json +6 -0
  18. package/BlockOverrides/package.json +6 -0
  19. package/Bloom/package.json +6 -0
  20. package/Bls/package.json +6 -0
  21. package/BlsPoint/package.json +6 -0
  22. package/Bytes/package.json +6 -0
  23. package/CHANGELOG.md +28 -0
  24. package/Caches/package.json +6 -0
  25. package/ContractAddress/package.json +6 -0
  26. package/Ed25519/package.json +6 -0
  27. package/Ens/package.json +6 -0
  28. package/Errors/package.json +6 -0
  29. package/Fee/package.json +6 -0
  30. package/Filter/package.json +6 -0
  31. package/Hash/package.json +6 -0
  32. package/HdKey/package.json +6 -0
  33. package/Hex/package.json +6 -0
  34. package/Json/package.json +6 -0
  35. package/Keystore/package.json +6 -0
  36. package/Kzg/package.json +6 -0
  37. package/Log/package.json +6 -0
  38. package/Mnemonic/package.json +6 -0
  39. package/P256/package.json +6 -0
  40. package/PersonalMessage/package.json +6 -0
  41. package/Provider/package.json +6 -0
  42. package/PublicKey/package.json +6 -0
  43. package/Rlp/package.json +6 -0
  44. package/RpcRequest/package.json +6 -0
  45. package/RpcResponse/package.json +6 -0
  46. package/RpcSchema/package.json +6 -0
  47. package/RpcTransport/package.json +6 -0
  48. package/Secp256k1/package.json +6 -0
  49. package/Signature/package.json +6 -0
  50. package/Siwe/package.json +6 -0
  51. package/Solidity/package.json +6 -0
  52. package/StateOverrides/package.json +6 -0
  53. package/Transaction/package.json +6 -0
  54. package/TransactionEnvelope/package.json +6 -0
  55. package/TransactionEnvelopeEip1559/package.json +6 -0
  56. package/TransactionEnvelopeEip2930/package.json +6 -0
  57. package/TransactionEnvelopeEip4844/package.json +6 -0
  58. package/TransactionEnvelopeEip7702/package.json +6 -0
  59. package/TransactionEnvelopeLegacy/package.json +6 -0
  60. package/TransactionReceipt/package.json +6 -0
  61. package/TransactionRequest/package.json +6 -0
  62. package/TypedData/package.json +6 -0
  63. package/ValidatorData/package.json +6 -0
  64. package/Value/package.json +6 -0
  65. package/WebAuthnP256/package.json +6 -0
  66. package/WebCryptoP256/package.json +6 -0
  67. package/Withdrawal/package.json +6 -0
  68. package/X25519/package.json +6 -0
  69. package/_cjs/core/AbiConstructor.js +16 -2
  70. package/_cjs/core/AbiConstructor.js.map +1 -1
  71. package/_cjs/core/AbiError.js +17 -2
  72. package/_cjs/core/AbiError.js.map +1 -1
  73. package/_cjs/core/AbiEvent.js +17 -2
  74. package/_cjs/core/AbiEvent.js.map +1 -1
  75. package/_cjs/core/AbiFunction.js +35 -8
  76. package/_cjs/core/AbiFunction.js.map +1 -1
  77. package/_cjs/core/AbiItem.js +24 -3
  78. package/_cjs/core/AbiItem.js.map +1 -1
  79. package/_cjs/version.js +1 -1
  80. package/_esm/core/Abi.js +2 -2
  81. package/_esm/core/Abi.js.map +1 -1
  82. package/_esm/core/AbiConstructor.js +18 -56
  83. package/_esm/core/AbiConstructor.js.map +1 -1
  84. package/_esm/core/AbiError.js +19 -54
  85. package/_esm/core/AbiError.js.map +1 -1
  86. package/_esm/core/AbiEvent.js +19 -187
  87. package/_esm/core/AbiEvent.js.map +1 -1
  88. package/_esm/core/AbiFunction.js +39 -242
  89. package/_esm/core/AbiFunction.js.map +1 -1
  90. package/_esm/core/AbiItem.js +27 -93
  91. package/_esm/core/AbiItem.js.map +1 -1
  92. package/_esm/erc6492/SignatureErc6492.js +2 -2
  93. package/_esm/erc6492/index.js +2 -2
  94. package/_esm/erc8010/SignatureErc8010.js +2 -2
  95. package/_esm/erc8010/index.js +2 -2
  96. package/_esm/version.js +1 -1
  97. package/_types/core/AbiConstructor.d.ts +43 -4
  98. package/_types/core/AbiConstructor.d.ts.map +1 -1
  99. package/_types/core/AbiError.d.ts +29 -19
  100. package/_types/core/AbiError.d.ts.map +1 -1
  101. package/_types/core/AbiEvent.d.ts +60 -0
  102. package/_types/core/AbiEvent.d.ts.map +1 -1
  103. package/_types/core/AbiFunction.d.ts +84 -2
  104. package/_types/core/AbiFunction.d.ts.map +1 -1
  105. package/_types/core/AbiItem.d.ts +36 -0
  106. package/_types/core/AbiItem.d.ts.map +1 -1
  107. package/_types/erc6492/SignatureErc6492.d.ts +2 -2
  108. package/_types/erc6492/index.d.ts +2 -2
  109. package/_types/erc8010/SignatureErc8010.d.ts +2 -2
  110. package/_types/erc8010/index.d.ts +2 -2
  111. package/_types/version.d.ts +1 -1
  112. package/core/Abi.ts +2 -2
  113. package/core/AbiConstructor.ts +96 -12
  114. package/core/AbiError.ts +121 -27
  115. package/core/AbiEvent.ts +145 -1
  116. package/core/AbiFunction.ts +272 -11
  117. package/core/AbiItem.ts +87 -3
  118. package/erc4337/EntryPoint/package.json +6 -0
  119. package/erc4337/RpcSchema/package.json +6 -0
  120. package/erc4337/UserOperation/package.json +6 -0
  121. package/erc4337/UserOperationGas/package.json +6 -0
  122. package/erc4337/UserOperationReceipt/package.json +6 -0
  123. package/erc4337/package.json +6 -0
  124. package/erc6492/SignatureErc6492/package.json +6 -0
  125. package/erc6492/SignatureErc6492.ts +2 -2
  126. package/erc6492/index.ts +2 -2
  127. package/erc6492/package.json +6 -0
  128. package/erc8010/SignatureErc8010/package.json +6 -0
  129. package/erc8010/SignatureErc8010.ts +2 -2
  130. package/erc8010/index.ts +2 -2
  131. package/erc8010/package.json +6 -0
  132. package/index.docs/package.json +6 -0
  133. package/package.json +1 -1
  134. package/trusted-setups/Paths/package.json +6 -0
  135. package/trusted-setups/package.json +6 -0
  136. package/version.ts +1 -1
  137. package/window/package.json +6 -0
@@ -77,9 +77,30 @@ export type ExtractNames<abi extends Abi.Abi, abiStateMutability extends abitype
77
77
  * // @log: ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 69420n]
78
78
  * ```
79
79
  *
80
+ * @example
81
+ * ### ABI-shorthand
82
+ *
83
+ * You can also specify an entire ABI object and a function name as parameters to {@link ox#AbiFunction.(decodeData:function)}:
84
+ *
85
+ * ```ts twoslash
86
+ * // @noErrors
87
+ * import { Abi, AbiFunction } from 'ox'
88
+ *
89
+ * const abi = Abi.from([...])
90
+ * const data = '0x...
91
+ *
92
+ * const input = AbiFunction.decodeData(
93
+ * abi, // [!code focus]
94
+ * 'approve', // [!code focus]
95
+ * data
96
+ * )
97
+ * // @log: ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 69420n]
98
+ * ```
99
+ *
80
100
  * @param abiFunction - The ABI Item to decode.
81
101
  * @param data - The data to decode.
82
102
  */
103
+ export declare function decodeData<const abi extends Abi.Abi | readonly unknown[], name extends Name<abi>, const args extends AbiItem_internal.ExtractArgs<abi, name> | undefined = undefined, abiFunction extends AbiFunction = AbiItem.fromAbi.ReturnType<abi, name, args, AbiFunction>, allNames = Name<abi>>(abi: abi | Abi.Abi | readonly unknown[], name: Hex.Hex | (name extends allNames ? name : never), data: Hex.Hex): decodeData.ReturnType<abiFunction>;
83
104
  export declare function decodeData<const abiItem extends AbiFunction>(abiFunction: abiItem | AbiFunction, data: Hex.Hex): decodeData.ReturnType<abiItem>;
84
105
  export declare namespace decodeData {
85
106
  type ReturnType<abiFunction extends AbiFunction = AbiFunction> = IsNarrowable<abiFunction, AbiFunction> extends true ? abiFunction['inputs'] extends readonly [] ? undefined : AbiParameters_internal.ToPrimitiveTypes<abiFunction['inputs']> | (abiFunction['overloads'] extends readonly AbiFunction[] ? AbiParameters_internal.ToPrimitiveTypes<abiFunction['overloads'][number]['inputs']> : never) : unknown;
@@ -125,6 +146,27 @@ export declare namespace decodeData {
125
146
  * ```
126
147
  *
127
148
  * @example
149
+ * ### ABI-shorthand
150
+ *
151
+ * You can also specify an entire ABI object and a function name as parameters to {@link ox#AbiFunction.(decodeResult:function)}:
152
+ *
153
+ * ```ts twoslash
154
+ * // @noErrors
155
+ * import { Abi, AbiFunction } from 'ox'
156
+ *
157
+ * const data = '0x000000000000000000000000000000000000000000000000000000000000002a'
158
+ *
159
+ * const erc20Abi = Abi.from([...])
160
+ *
161
+ * const output = AbiFunction.decodeResult(
162
+ * erc20Abi, // [!code focus]
163
+ * 'totalSupply', // [!code focus]
164
+ * data
165
+ * )
166
+ * // @log: 42n
167
+ * ```
168
+ *
169
+ * @example
128
170
  * ### End-to-end
129
171
  *
130
172
  * Below is an end-to-end example of using `AbiFunction.decodeResult` to decode the result of a `balanceOf` contract call on the [Wagmi Mint Example contract](https://etherscan.io/address/0xfba3912ca04dd458c843e2ee08967fc04f3579c2).
@@ -181,9 +223,10 @@ export declare namespace decodeData {
181
223
  * @param options - Decoding options
182
224
  * @returns Decoded function output
183
225
  */
184
- export declare function decodeResult<const abiFunction extends AbiFunction, as extends 'Object' | 'Array' = 'Array'>(abiFunction: abiFunction | AbiFunction, data: Hex.Hex, options?: decodeResult.Options<as>): decodeResult.ReturnType<abiFunction, as>;
226
+ export declare function decodeResult<const abi extends Abi.Abi | readonly unknown[], name extends Name<abi>, const args extends AbiItem_internal.ExtractArgs<abi, name> | undefined = undefined, abiFunction extends AbiFunction = AbiItem.fromAbi.ReturnType<abi, name, args, AbiFunction>, allNames = Name<abi>, as extends 'Object' | 'Array' = 'Array'>(abi: abi | Abi.Abi | readonly unknown[], name: Hex.Hex | (name extends allNames ? name : never), data: Hex.Hex, options?: decodeResult.Options<as> | undefined): decodeResult.ReturnType<abiFunction, as>;
227
+ export declare function decodeResult<const abiFunction extends AbiFunction, as extends 'Object' | 'Array' = 'Array'>(abiFunction: abiFunction | AbiFunction, data: Hex.Hex, options?: decodeResult.Options<as> | undefined): decodeResult.ReturnType<abiFunction, as>;
185
228
  export declare namespace decodeResult {
186
- type Options<as extends 'Object' | 'Array'> = {
229
+ type Options<as extends 'Object' | 'Array' = 'Array'> = {
187
230
  /**
188
231
  * Whether the decoded values should be returned as an `Object` or `Array`.
189
232
  *
@@ -238,6 +281,24 @@ export declare namespace decodeResult {
238
281
  * ```
239
282
  *
240
283
  * @example
284
+ * ### ABI-shorthand
285
+ *
286
+ * You can specify an entire ABI object and a function name as parameters to {@link ox#AbiFunction.(encodeData:function)}:
287
+ *
288
+ * ```ts twoslash
289
+ * // @noErrors
290
+ * import { Abi, AbiFunction } from 'ox'
291
+ *
292
+ * const erc20Abi = Abi.from([...])
293
+ *
294
+ * const data = AbiFunction.encodeData(
295
+ * erc20Abi, // [!code focus]
296
+ * 'approve', // [!code focus]
297
+ * ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 69420n]
298
+ * )
299
+ * ```
300
+ *
301
+ * @example
241
302
  * ### End-to-end
242
303
  *
243
304
  * Below is an end-to-end example of using `AbiFunction.encodeData` to encode the input of a `balanceOf` contract call on the [Wagmi Mint Example contract](https://etherscan.io/address/0xfba3912ca04dd458c843e2ee08967fc04f3579c2).
@@ -292,6 +353,7 @@ export declare namespace decodeResult {
292
353
  * @param args - Function arguments
293
354
  * @returns ABI-encoded function name and arguments
294
355
  */
356
+ export declare function encodeData<const abi extends Abi.Abi | readonly unknown[], name extends Name<abi>, const args extends AbiItem_internal.ExtractArgs<abi, name> | undefined = undefined, abiFunction extends AbiFunction = AbiItem.fromAbi.ReturnType<abi, name, args, AbiFunction>, allNames = Name<abi>>(abi: abi | Abi.Abi | readonly unknown[], name: Hex.Hex | (name extends allNames ? name : never), ...args: encodeData.Args<abiFunction>): Hex.Hex;
295
357
  export declare function encodeData<const abiFunction extends AbiFunction>(abiFunction: abiFunction | AbiFunction, ...args: encodeData.Args<abiFunction>): Hex.Hex;
296
358
  export declare namespace encodeData {
297
359
  type Args<abiFunction extends AbiFunction = AbiFunction> = IsNarrowable<abiFunction, AbiFunction> extends true ? (abitype.AbiParametersToPrimitiveTypes<abiFunction['inputs']> extends readonly [] ? [] : [abitype.AbiParametersToPrimitiveTypes<abiFunction['inputs']>]) | (abiFunction['overloads'] extends readonly AbiFunction[] ? [
@@ -314,11 +376,31 @@ export declare namespace encodeData {
314
376
  * // @log: '0x000000000000000000000000000000000000000000000000000000000000002a'
315
377
  * ```
316
378
  *
379
+ * @example
380
+ * ### ABI-shorthand
381
+ *
382
+ * You can also specify an entire ABI object and a function name as parameters to {@link ox#AbiFunction.(encodeResult:function)}:
383
+ *
384
+ * ```ts twoslash
385
+ * // @noErrors
386
+ * import { Abi, AbiFunction } from 'ox'
387
+ *
388
+ * const abi = Abi.from([...])
389
+ *
390
+ * const data = AbiFunction.encodeResult(
391
+ * abi, // [!code focus]
392
+ * 'totalSupply', // [!code focus]
393
+ * 42n
394
+ * )
395
+ * // @log: '0x000000000000000000000000000000000000000000000000000000000000002a'
396
+ * ```
397
+ *
317
398
  * @param abiFunction - The ABI item to encode the function output for.
318
399
  * @param output - The function output to encode.
319
400
  * @param options - Encoding options.
320
401
  * @returns The encoded function output.
321
402
  */
403
+ export declare function encodeResult<const abi extends Abi.Abi | readonly unknown[], name extends Name<abi>, const args extends AbiItem_internal.ExtractArgs<abi, name> | undefined = undefined, as extends 'Object' | 'Array' = 'Array', abiFunction extends AbiFunction = AbiItem.fromAbi.ReturnType<abi, name, args, AbiFunction>, allNames = Name<abi>>(abi: abi | Abi.Abi | readonly unknown[], name: Hex.Hex | (name extends allNames ? name : never), output: encodeResult.Output<abiFunction, as>, options?: encodeResult.Options<as>): Hex.Hex;
322
404
  export declare function encodeResult<const abiFunction extends AbiFunction, as extends 'Object' | 'Array' = 'Array'>(abiFunction: abiFunction | AbiFunction, output: encodeResult.Output<abiFunction, as>, options?: encodeResult.Options<as>): Hex.Hex;
323
405
  export declare namespace encodeResult {
324
406
  type Output<abiFunction extends AbiFunction = AbiFunction, as extends 'Object' | 'Array' = 'Array'> = abiFunction['outputs'] extends readonly [] ? never : abiFunction['outputs']['length'] extends 1 ? AbiParameters_internal.ToPrimitiveTypes<abiFunction['outputs']>[0] : as extends 'Object' ? AbiParameters_internal.ToObject<abiFunction['outputs']> : AbiParameters_internal.ToPrimitiveTypes<abiFunction['outputs']>;
@@ -1 +1 @@
1
- {"version":3,"file":"AbiFunction.d.ts","sourceRoot":"","sources":["../../core/AbiFunction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbiFunction.d.ts","sourceRoot":"","sources":["../../core/AbiFunction.ts"],"names":[],"mappings":"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"}
@@ -311,6 +311,17 @@ export declare namespace fromAbi {
311
311
  *
312
312
  * @example
313
313
  * ```ts twoslash
314
+ * // @noErrors
315
+ * import { Abi, AbiItem } from 'ox'
316
+ *
317
+ * const erc20Abi = Abi.from([...])
318
+ *
319
+ * const selector = AbiItem.getSelector(erc20Abi, 'ownerOf')
320
+ * // @log: '0x6352211e'
321
+ * ```
322
+ *
323
+ * @example
324
+ * ```ts twoslash
314
325
  * import { AbiItem } from 'ox'
315
326
  *
316
327
  * const selector = AbiItem.getSelector({
@@ -326,6 +337,7 @@ export declare namespace fromAbi {
326
337
  * @param abiItem - The ABI item to compute the selector for. Can be a signature or an ABI item for an error, event, function, etc.
327
338
  * @returns The first 4 bytes of the {@link ox#Hash.(keccak256:function)} hash of the function signature.
328
339
  */
340
+ export declare function getSelector<abi extends Abi.Abi | readonly unknown[], name extends Name<abi>>(abi: abi | Abi.Abi | readonly unknown[], name: name): Hex.Hex;
329
341
  export declare function getSelector(abiItem: string | AbiItem): Hex.Hex;
330
342
  export declare namespace getSelector {
331
343
  type ErrorType = getSignatureHash.ErrorType | Hex.slice.ErrorType | Errors.GlobalErrorType;
@@ -343,6 +355,17 @@ export declare namespace getSelector {
343
355
  *
344
356
  * @example
345
357
  * ```ts twoslash
358
+ * // @noErrors
359
+ * import { Abi, AbiItem } from 'ox'
360
+ *
361
+ * const erc20Abi = Abi.from([...])
362
+ *
363
+ * const signature = AbiItem.getSignature(erc20Abi, 'ownerOf')
364
+ * // @log: 'ownerOf(uint256)'
365
+ * ```
366
+ *
367
+ * @example
368
+ * ```ts twoslash
346
369
  * import { AbiItem } from 'ox'
347
370
  *
348
371
  * const signature = AbiItem.getSignature({
@@ -358,6 +381,7 @@ export declare namespace getSelector {
358
381
  * @param abiItem - The ABI Item to compute the signature for.
359
382
  * @returns The stringified signature of the ABI Item.
360
383
  */
384
+ export declare function getSignature<abi extends Abi.Abi | readonly unknown[], name extends Name<abi>>(abi: abi | Abi.Abi | readonly unknown[], name: name): string;
361
385
  export declare function getSignature(abiItem: string | AbiItem): string;
362
386
  export declare namespace getSignature {
363
387
  type ErrorType = internal.normalizeSignature.ErrorType | Errors.GlobalErrorType;
@@ -377,6 +401,17 @@ export declare namespace getSignature {
377
401
  *
378
402
  * @example
379
403
  * ```ts twoslash
404
+ * // @noErrors
405
+ * import { Abi, AbiItem } from 'ox'
406
+ *
407
+ * const erc20Abi = Abi.from([...])
408
+ *
409
+ * const hash = AbiItem.getSignatureHash(erc20Abi, 'Transfer')
410
+ * // @log: '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
411
+ * ```
412
+ *
413
+ * @example
414
+ * ```ts twoslash
380
415
  * import { AbiItem } from 'ox'
381
416
  *
382
417
  * const hash = AbiItem.getSignatureHash({
@@ -394,6 +429,7 @@ export declare namespace getSignature {
394
429
  * @param abiItem - The ABI Item to compute the signature hash for.
395
430
  * @returns The {@link ox#Hash.(keccak256:function)} hash of the ABI item's signature.
396
431
  */
432
+ export declare function getSignatureHash<abi extends Abi.Abi | readonly unknown[], name extends Name<abi>>(abi: abi | Abi.Abi | readonly unknown[], name: name): Hex.Hex;
397
433
  export declare function getSignatureHash(abiItem: string | AbiItem): Hex.Hex;
398
434
  export declare namespace getSignatureHash {
399
435
  type ErrorType = getSignature.ErrorType | Hash.keccak256.ErrorType | Hex.fromString.ErrorType | Errors.GlobalErrorType;
@@ -1 +1 @@
1
- {"version":3,"file":"AbiItem.d.ts","sourceRoot":"","sources":["../../core/AbiItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbiItem.d.ts","sourceRoot":"","sources":["../../core/AbiItem.ts"],"names":[],"mappings":"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"}
@@ -132,7 +132,7 @@ export declare namespace unwrap {
132
132
  *
133
133
  * @example
134
134
  * ```ts twoslash
135
- * import { Secp256k1 } from 'ox'
135
+ * import { Secp256k1, Signature } from 'ox'
136
136
  * import { SignatureErc6492 } from 'ox/erc6492' // [!code focus]
137
137
  *
138
138
  * const signature = Secp256k1.sign({
@@ -142,7 +142,7 @@ export declare namespace unwrap {
142
142
  *
143
143
  * const wrapped = SignatureErc6492.wrap({ // [!code focus]
144
144
  * data: '0xdeadbeef', // [!code focus]
145
- * signature, // [!code focus]
145
+ * signature: Signature.toHex(signature), // [!code focus]
146
146
  * to: '0x00000000219ab540356cBB839Cbe05303d7705Fa', // [!code focus]
147
147
  * }) // [!code focus]
148
148
  * ```
@@ -5,7 +5,7 @@ export type {};
5
5
  *
6
6
  * @example
7
7
  * ```ts twoslash
8
- * import { Secp256k1, PersonalMessage } from 'ox'
8
+ * import { PersonalMessage, Secp256k1, Signature } from 'ox'
9
9
  * import { SignatureErc6492 } from 'ox/erc6492' // [!code focus]
10
10
  *
11
11
  * const signature = Secp256k1.sign({
@@ -15,7 +15,7 @@ export type {};
15
15
  *
16
16
  * const wrapped = SignatureErc6492.wrap({ // [!code focus]
17
17
  * data: '0xcafebabe', // [!code focus]
18
- * signature, // [!code focus]
18
+ * signature: Signature.toHex(signature), // [!code focus]
19
19
  * to: '0xcafebabecafebabecafebabecafebabecafebabe', // [!code focus]
20
20
  * }) // [!code focus]
21
21
  * // @log: '0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041fa78c5905fb0b9d6066ef531f962a62bc6ef0d5eb59ecb134056d206f75aaed7780926ff2601a935c2c79707d9e1799948c9f19dcdde1e090e903b19a07923d01c000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492'
@@ -122,7 +122,7 @@ export declare namespace unwrap {
122
122
  * @example
123
123
  * ```ts twoslash
124
124
  * // @noErrors
125
- * import { Secp256k1 } from 'ox'
125
+ * import { Secp256k1, Signature } from 'ox'
126
126
  * import { SignatureErc8010 } from 'ox/erc8010' // [!code focus]
127
127
  *
128
128
  * const signature = Secp256k1.sign({
@@ -133,7 +133,7 @@ export declare namespace unwrap {
133
133
  * const wrapped = SignatureErc8010.wrap({ // [!code focus]
134
134
  * authorization: { ... }, // [!code focus]
135
135
  * data: '0xdeadbeef', // [!code focus]
136
- * signature, // [!code focus]
136
+ * signature: Signature.toHex(signature), // [!code focus]
137
137
  * }) // [!code focus]
138
138
  * ```
139
139
  *
@@ -5,7 +5,7 @@ export type {};
5
5
  *
6
6
  * @example
7
7
  * ```ts twoslash
8
- * import { Authorization, Secp256k1, PersonalMessage } from 'ox'
8
+ * import { Authorization, PersonalMessage, Secp256k1, Signature } from 'ox'
9
9
  * import { SignatureErc8010 } from 'ox/erc8010' // [!code focus]
10
10
  *
11
11
  * const authorization = Authorization.from({
@@ -31,7 +31,7 @@ export type {};
31
31
  * const wrapped = SignatureErc8010.wrap({ // [!code focus]
32
32
  * authorization: authorizationSigned, // [!code focus]
33
33
  * data: '0xcafebabe', // [!code focus]
34
- * signature, // [!code focus]
34
+ * signature: Signature.toHex(signature), // [!code focus]
35
35
  * }) // [!code focus]
36
36
  * // @log: '0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041fa78c5905fb0b9d6066ef531f962a62bc6ef0d5eb59ecb134056d206f75aaed7780926ff2601a935c2c79707d9e1799948c9f19dcdde1e090e903b19a07923d01c000000000000000000000000000000000000000000000000000000000000008010801080108010801080108010801080108010801080108010801080108010'
37
37
  * ```
@@ -1,3 +1,3 @@
1
1
  /** @internal */
2
- export declare const version = "0.9.4";
2
+ export declare const version = "0.9.6";
3
3
  //# sourceMappingURL=version.d.ts.map
package/core/Abi.ts CHANGED
@@ -43,7 +43,7 @@ export function format<const abi extends Abi>(abi: abi): format.ReturnType<abi>
43
43
  * @returns The formatted ABI.
44
44
  */
45
45
  export function format(abi: Abi | readonly unknown[]): readonly string[]
46
- /** @internal */
46
+ // eslint-disable-next-line jsdoc/require-jsdoc
47
47
  export function format(abi: Abi | readonly unknown[]): format.ReturnType {
48
48
  return abitype.formatAbi(abi) as never
49
49
  }
@@ -140,7 +140,7 @@ export function from<const abi extends Abi | readonly string[]>(
140
140
  * @returns The typed ABI.
141
141
  */
142
142
  export function from(abi: Abi | readonly string[]): Abi
143
- /** @internal */
143
+ // eslint-disable-next-line jsdoc/require-jsdoc
144
144
  export function from(abi: Abi | readonly string[]): from.ReturnType {
145
145
  if (internal.isSignatures(abi)) return abitype.parseAbi(abi)
146
146
  return abi
@@ -10,11 +10,6 @@ import type { IsNarrowable } from './internal/types.js'
10
10
  /** Root type for an {@link ox#AbiItem.AbiItem} with a `constructor` type. */
11
11
  export type AbiConstructor = abitype.AbiConstructor
12
12
 
13
- /** @internal */
14
- export function decode<const abiConstructor extends AbiConstructor>(
15
- abiConstructor: abiConstructor,
16
- options: decode.Options,
17
- ): decode.ReturnType<abiConstructor>
18
13
  /**
19
14
  * ABI-decodes the provided constructor input (`inputs`).
20
15
  *
@@ -37,19 +32,63 @@ export function decode<const abiConstructor extends AbiConstructor>(
37
32
  * }) // [!code focus]
38
33
  * ```
39
34
  *
35
+ * @example
36
+ * ### ABI-shorthand
37
+ *
38
+ * You can also specify an entire ABI object as a parameter to `AbiConstructor.decode`.
39
+ *
40
+ * ```ts twoslash
41
+ * // @noErrors
42
+ * import { Abi, AbiConstructor } from 'ox'
43
+ *
44
+ * const abi = Abi.from([...])
45
+ *
46
+ * const data = AbiConstructor.encode(abi, {
47
+ * bytecode: '0x...',
48
+ * args: ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 123n],
49
+ * })
50
+ *
51
+ * const decoded = AbiConstructor.decode(abi, { // [!code focus]
52
+ * bytecode: '0x...', // [!code focus]
53
+ * data, // [!code focus]
54
+ * }) // [!code focus]
55
+ * ```
56
+ *
40
57
  * @param abiConstructor - The ABI Constructor to decode.
41
58
  * @param options - Decoding options.
42
59
  * @returns The decoded constructor inputs.
43
60
  */
44
- export function decode(
45
- abiConstructor: AbiConstructor,
61
+ export function decode<
62
+ const abi extends Abi.Abi | readonly unknown[],
63
+ abiConstructor extends
64
+ AbiConstructor = fromAbi.ReturnType<abi> extends AbiConstructor
65
+ ? fromAbi.ReturnType<abi>
66
+ : never,
67
+ >(
68
+ abi: abi | Abi.Abi | readonly unknown[],
46
69
  options: decode.Options,
47
- ): readonly unknown[] | undefined
48
- /** @internal */
49
- export function decode(
50
- abiConstructor: AbiConstructor,
70
+ ): decode.ReturnType<abiConstructor>
71
+ export function decode<const abiConstructor extends AbiConstructor>(
72
+ abiConstructor: abiConstructor | AbiConstructor,
51
73
  options: decode.Options,
74
+ ): decode.ReturnType<abiConstructor>
75
+ // eslint-disable-next-line jsdoc/require-jsdoc
76
+ export function decode(
77
+ ...parameters:
78
+ | [abi: Abi.Abi | readonly unknown[], options: decode.Options]
79
+ | [abiConstructor: AbiConstructor, options: decode.Options]
52
80
  ): decode.ReturnType {
81
+ const [abiConstructor, options] = (() => {
82
+ if (Array.isArray(parameters[0])) {
83
+ const [abi, options] = parameters as [
84
+ Abi.Abi | readonly unknown[],
85
+ decode.Options,
86
+ ]
87
+ return [fromAbi(abi), options] as [AbiConstructor, decode.Options]
88
+ }
89
+ return parameters as [AbiConstructor, decode.Options]
90
+ })()
91
+
53
92
  const { bytecode } = options
54
93
  if (abiConstructor.inputs.length === 0) return undefined
55
94
  const data = options.data.replace(bytecode, '0x') as Hex.Hex
@@ -91,6 +130,23 @@ export declare namespace decode {
91
130
  * ```
92
131
  *
93
132
  * @example
133
+ * ### ABI-shorthand
134
+ *
135
+ * You can also specify an entire ABI object as a parameter to `AbiConstructor.encode`.
136
+ *
137
+ * ```ts twoslash
138
+ * // @noErrors
139
+ * import { Abi, AbiConstructor } from 'ox'
140
+ *
141
+ * const abi = Abi.from([...])
142
+ *
143
+ * const data = AbiConstructor.encode(abi, { // [!code focus]
144
+ * bytecode: '0x...', // [!code focus]
145
+ * args: ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 123n], // [!code focus]
146
+ * }) // [!code focus]
147
+ * ```
148
+ *
149
+ * @example
94
150
  * ### End-to-end
95
151
  *
96
152
  * Below is an end-to-end example of using `AbiConstructor.encode` to encode the constructor of a contract and deploy it.
@@ -128,10 +184,38 @@ export declare namespace decode {
128
184
  * @param options - Encoding options.
129
185
  * @returns The encoded constructor.
130
186
  */
187
+ export function encode<
188
+ const abi extends Abi.Abi | readonly unknown[],
189
+ abiConstructor extends
190
+ AbiConstructor = fromAbi.ReturnType<abi> extends AbiConstructor
191
+ ? fromAbi.ReturnType<abi>
192
+ : never,
193
+ >(
194
+ abi: abi | Abi.Abi | readonly unknown[],
195
+ options: encode.Options<abiConstructor>,
196
+ ): encode.ReturnType
131
197
  export function encode<const abiConstructor extends AbiConstructor>(
132
- abiConstructor: abiConstructor,
198
+ abiConstructor: abiConstructor | AbiConstructor,
133
199
  options: encode.Options<abiConstructor>,
200
+ ): encode.ReturnType
201
+ // eslint-disable-next-line jsdoc/require-jsdoc
202
+ export function encode(
203
+ ...parameters:
204
+ | [abi: Abi.Abi | readonly unknown[], options: encode.Options]
205
+ | [abiConstructor: AbiConstructor, options: encode.Options]
134
206
  ): encode.ReturnType {
207
+ const [abiConstructor, options] = (() => {
208
+ if (Array.isArray(parameters[0])) {
209
+ const [abi, options] = parameters as [
210
+ Abi.Abi | readonly unknown[],
211
+ encode.Options,
212
+ ]
213
+ return [fromAbi(abi), options] as [AbiConstructor, encode.Options]
214
+ }
215
+
216
+ return parameters as [AbiConstructor, encode.Options]
217
+ })()
218
+
135
219
  const { bytecode, args } = options
136
220
  return Hex.concat(
137
221
  bytecode,