ox 1.0.0-beta.2 → 1.0.0-beta.20

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 (664) hide show
  1. package/dist/core/Abi.d.ts +6 -2
  2. package/dist/core/Abi.d.ts.map +1 -1
  3. package/dist/core/Abi.js +6 -3
  4. package/dist/core/Abi.js.map +1 -1
  5. package/dist/core/AbiConstructor.d.ts +2 -1
  6. package/dist/core/AbiConstructor.d.ts.map +1 -1
  7. package/dist/core/AbiConstructor.js +2 -2
  8. package/dist/core/AbiConstructor.js.map +1 -1
  9. package/dist/core/AbiError.d.ts +3 -1
  10. package/dist/core/AbiError.d.ts.map +1 -1
  11. package/dist/core/AbiError.js +2 -2
  12. package/dist/core/AbiError.js.map +1 -1
  13. package/dist/core/AbiEvent.d.ts +3 -1
  14. package/dist/core/AbiEvent.d.ts.map +1 -1
  15. package/dist/core/AbiEvent.js +2 -2
  16. package/dist/core/AbiEvent.js.map +1 -1
  17. package/dist/core/AbiFunction.d.ts +3 -1
  18. package/dist/core/AbiFunction.d.ts.map +1 -1
  19. package/dist/core/AbiFunction.js +2 -2
  20. package/dist/core/AbiFunction.js.map +1 -1
  21. package/dist/core/AbiItem.d.ts +6 -3
  22. package/dist/core/AbiItem.d.ts.map +1 -1
  23. package/dist/core/AbiItem.js +9 -7
  24. package/dist/core/AbiItem.js.map +1 -1
  25. package/dist/core/AbiParameter.d.ts +88 -0
  26. package/dist/core/AbiParameter.d.ts.map +1 -0
  27. package/dist/core/AbiParameter.js +82 -0
  28. package/dist/core/AbiParameter.js.map +1 -0
  29. package/dist/core/AbiParameters.d.ts +58 -2
  30. package/dist/core/AbiParameters.d.ts.map +1 -1
  31. package/dist/core/AbiParameters.js +60 -6
  32. package/dist/core/AbiParameters.js.map +1 -1
  33. package/dist/core/AccountProof.d.ts +3 -1
  34. package/dist/core/AccountProof.d.ts.map +1 -1
  35. package/dist/core/AccountProof.js +3 -4
  36. package/dist/core/AccountProof.js.map +1 -1
  37. package/dist/core/Authorization.d.ts +6 -2
  38. package/dist/core/Authorization.d.ts.map +1 -1
  39. package/dist/core/Authorization.js +3 -2
  40. package/dist/core/Authorization.js.map +1 -1
  41. package/dist/core/Block.d.ts +3 -1
  42. package/dist/core/Block.d.ts.map +1 -1
  43. package/dist/core/Block.js +12 -13
  44. package/dist/core/Block.js.map +1 -1
  45. package/dist/core/BlockOverrides.d.ts +5 -1
  46. package/dist/core/BlockOverrides.d.ts.map +1 -1
  47. package/dist/core/BlockOverrides.js +12 -12
  48. package/dist/core/BlockOverrides.js.map +1 -1
  49. package/dist/core/Filter.d.ts +3 -1
  50. package/dist/core/Filter.d.ts.map +1 -1
  51. package/dist/core/Filter.js +4 -4
  52. package/dist/core/Filter.js.map +1 -1
  53. package/dist/core/Log.d.ts +4 -2
  54. package/dist/core/Log.d.ts.map +1 -1
  55. package/dist/core/Log.js +4 -4
  56. package/dist/core/Log.js.map +1 -1
  57. package/dist/core/Rlp.d.ts +27 -5
  58. package/dist/core/Rlp.d.ts.map +1 -1
  59. package/dist/core/Rlp.js +40 -4
  60. package/dist/core/Rlp.js.map +1 -1
  61. package/dist/core/RpcSchema.d.ts +2 -2
  62. package/dist/core/Signature.d.ts +3 -1
  63. package/dist/core/Signature.d.ts.map +1 -1
  64. package/dist/core/Signature.js +2 -1
  65. package/dist/core/Signature.js.map +1 -1
  66. package/dist/core/StateOverrides.d.ts +5 -1
  67. package/dist/core/StateOverrides.d.ts.map +1 -1
  68. package/dist/core/StateOverrides.js +4 -4
  69. package/dist/core/StateOverrides.js.map +1 -1
  70. package/dist/core/Transaction.d.ts +3 -1
  71. package/dist/core/Transaction.d.ts.map +1 -1
  72. package/dist/core/Transaction.js +26 -26
  73. package/dist/core/Transaction.js.map +1 -1
  74. package/dist/core/TransactionReceipt.d.ts +3 -1
  75. package/dist/core/TransactionReceipt.d.ts.map +1 -1
  76. package/dist/core/TransactionReceipt.js +8 -8
  77. package/dist/core/TransactionReceipt.js.map +1 -1
  78. package/dist/core/TransactionRequest.d.ts +3 -1
  79. package/dist/core/TransactionRequest.d.ts.map +1 -1
  80. package/dist/core/TransactionRequest.js +11 -10
  81. package/dist/core/TransactionRequest.js.map +1 -1
  82. package/dist/core/TxEnvelope.d.ts +3 -1
  83. package/dist/core/TxEnvelope.d.ts.map +1 -1
  84. package/dist/core/TxEnvelope.js.map +1 -1
  85. package/dist/core/TxEnvelopeEip1559.d.ts +3 -1
  86. package/dist/core/TxEnvelopeEip1559.d.ts.map +1 -1
  87. package/dist/core/TxEnvelopeEip1559.js +12 -11
  88. package/dist/core/TxEnvelopeEip1559.js.map +1 -1
  89. package/dist/core/TxEnvelopeEip2930.d.ts +3 -1
  90. package/dist/core/TxEnvelopeEip2930.d.ts.map +1 -1
  91. package/dist/core/TxEnvelopeEip2930.js +10 -9
  92. package/dist/core/TxEnvelopeEip2930.js.map +1 -1
  93. package/dist/core/TxEnvelopeEip4844.d.ts +3 -1
  94. package/dist/core/TxEnvelopeEip4844.d.ts.map +1 -1
  95. package/dist/core/TxEnvelopeEip4844.js +16 -13
  96. package/dist/core/TxEnvelopeEip4844.js.map +1 -1
  97. package/dist/core/TxEnvelopeEip7702.d.ts +3 -1
  98. package/dist/core/TxEnvelopeEip7702.d.ts.map +1 -1
  99. package/dist/core/TxEnvelopeEip7702.js +12 -11
  100. package/dist/core/TxEnvelopeEip7702.js.map +1 -1
  101. package/dist/core/TxEnvelopeLegacy.d.ts +7 -1
  102. package/dist/core/TxEnvelopeLegacy.d.ts.map +1 -1
  103. package/dist/core/TxEnvelopeLegacy.js +9 -8
  104. package/dist/core/TxEnvelopeLegacy.js.map +1 -1
  105. package/dist/core/Withdrawal.d.ts +4 -2
  106. package/dist/core/Withdrawal.d.ts.map +1 -1
  107. package/dist/core/Withdrawal.js +4 -4
  108. package/dist/core/Withdrawal.js.map +1 -1
  109. package/dist/core/internal/abiParameters.d.ts.map +1 -1
  110. package/dist/core/internal/abiParameters.js +21 -3
  111. package/dist/core/internal/abiParameters.js.map +1 -1
  112. package/dist/core/internal/human-readable/errors.d.ts +103 -0
  113. package/dist/core/internal/human-readable/errors.d.ts.map +1 -0
  114. package/dist/core/internal/human-readable/errors.js +142 -0
  115. package/dist/core/internal/human-readable/errors.js.map +1 -0
  116. package/dist/core/internal/human-readable/formatAbi.d.ts +19 -0
  117. package/dist/core/internal/human-readable/formatAbi.d.ts.map +1 -0
  118. package/dist/core/internal/human-readable/formatAbi.js +18 -0
  119. package/dist/core/internal/human-readable/formatAbi.js.map +1 -0
  120. package/dist/core/internal/human-readable/formatAbiItem.d.ts +23 -0
  121. package/dist/core/internal/human-readable/formatAbiItem.d.ts.map +1 -0
  122. package/dist/core/internal/human-readable/formatAbiItem.js +25 -0
  123. package/dist/core/internal/human-readable/formatAbiItem.js.map +1 -0
  124. package/dist/core/internal/human-readable/formatAbiParameter.d.ts +41 -0
  125. package/dist/core/internal/human-readable/formatAbiParameter.d.ts.map +1 -0
  126. package/dist/core/internal/human-readable/formatAbiParameter.js +36 -0
  127. package/dist/core/internal/human-readable/formatAbiParameter.js.map +1 -0
  128. package/dist/core/internal/human-readable/formatAbiParameters.d.ts +26 -0
  129. package/dist/core/internal/human-readable/formatAbiParameters.d.ts.map +1 -0
  130. package/dist/core/internal/human-readable/formatAbiParameters.js +19 -0
  131. package/dist/core/internal/human-readable/formatAbiParameters.js.map +1 -0
  132. package/dist/core/internal/human-readable/parseAbi.d.ts +22 -0
  133. package/dist/core/internal/human-readable/parseAbi.d.ts.map +1 -0
  134. package/dist/core/internal/human-readable/parseAbi.js +22 -0
  135. package/dist/core/internal/human-readable/parseAbi.js.map +1 -0
  136. package/dist/core/internal/human-readable/parseAbiItem.d.ts +23 -0
  137. package/dist/core/internal/human-readable/parseAbiItem.d.ts.map +1 -0
  138. package/dist/core/internal/human-readable/parseAbiItem.js +30 -0
  139. package/dist/core/internal/human-readable/parseAbiItem.js.map +1 -0
  140. package/dist/core/internal/human-readable/parseAbiParameter.d.ts +28 -0
  141. package/dist/core/internal/human-readable/parseAbiParameter.d.ts.map +1 -0
  142. package/dist/core/internal/human-readable/parseAbiParameter.js +32 -0
  143. package/dist/core/internal/human-readable/parseAbiParameter.js.map +1 -0
  144. package/dist/core/internal/human-readable/parseAbiParameters.d.ts +38 -0
  145. package/dist/core/internal/human-readable/parseAbiParameters.d.ts.map +1 -0
  146. package/dist/core/internal/human-readable/parseAbiParameters.js +39 -0
  147. package/dist/core/internal/human-readable/parseAbiParameters.js.map +1 -0
  148. package/dist/core/internal/human-readable/regex.d.ts +9 -0
  149. package/dist/core/internal/human-readable/regex.d.ts.map +1 -0
  150. package/dist/core/internal/human-readable/regex.js +12 -0
  151. package/dist/core/internal/human-readable/regex.js.map +1 -0
  152. package/dist/core/internal/human-readable/runtime/cache.d.ts +22 -0
  153. package/dist/core/internal/human-readable/runtime/cache.d.ts.map +1 -0
  154. package/dist/core/internal/human-readable/runtime/cache.js +86 -0
  155. package/dist/core/internal/human-readable/runtime/cache.js.map +1 -0
  156. package/dist/core/internal/human-readable/runtime/signatures.d.ts +39 -0
  157. package/dist/core/internal/human-readable/runtime/signatures.d.ts.map +1 -0
  158. package/dist/core/internal/human-readable/runtime/signatures.js +67 -0
  159. package/dist/core/internal/human-readable/runtime/signatures.js.map +1 -0
  160. package/dist/core/internal/human-readable/runtime/structs.d.ts +3 -0
  161. package/dist/core/internal/human-readable/runtime/structs.d.ts.map +1 -0
  162. package/dist/core/internal/human-readable/runtime/structs.js +79 -0
  163. package/dist/core/internal/human-readable/runtime/structs.js.map +1 -0
  164. package/dist/core/internal/human-readable/runtime/utils.d.ts +205 -0
  165. package/dist/core/internal/human-readable/runtime/utils.d.ts.map +1 -0
  166. package/dist/core/internal/human-readable/runtime/utils.js +232 -0
  167. package/dist/core/internal/human-readable/runtime/utils.js.map +1 -0
  168. package/dist/core/internal/human-readable/types/signatures.d.ts +38 -0
  169. package/dist/core/internal/human-readable/types/signatures.d.ts.map +1 -0
  170. package/dist/core/internal/human-readable/types/signatures.js +2 -0
  171. package/dist/core/internal/human-readable/types/signatures.js.map +1 -0
  172. package/dist/core/internal/human-readable/types/structs.d.ts +48 -0
  173. package/dist/core/internal/human-readable/types/structs.d.ts.map +1 -0
  174. package/dist/core/internal/human-readable/types/structs.js +2 -0
  175. package/dist/core/internal/human-readable/types/structs.js.map +1 -0
  176. package/dist/core/internal/human-readable/types/utils.d.ts +163 -0
  177. package/dist/core/internal/human-readable/types/utils.d.ts.map +1 -0
  178. package/dist/core/internal/human-readable/types/utils.js +2 -0
  179. package/dist/core/internal/human-readable/types/utils.js.map +1 -0
  180. package/dist/core/internal/human-readable/types.d.ts +29 -0
  181. package/dist/core/internal/human-readable/types.d.ts.map +1 -0
  182. package/dist/core/internal/human-readable/types.js +2 -0
  183. package/dist/core/internal/human-readable/types.js.map +1 -0
  184. package/dist/core/internal/quantity.d.ts +15 -0
  185. package/dist/core/internal/quantity.d.ts.map +1 -1
  186. package/dist/core/internal/quantity.js +23 -0
  187. package/dist/core/internal/quantity.js.map +1 -1
  188. package/dist/core/internal/rpcSchemas/eth.d.ts +56 -10
  189. package/dist/core/internal/rpcSchemas/eth.d.ts.map +1 -1
  190. package/dist/erc4337/UserOperation.d.ts +3 -1
  191. package/dist/erc4337/UserOperation.d.ts.map +1 -1
  192. package/dist/erc4337/UserOperation.js +11 -10
  193. package/dist/erc4337/UserOperation.js.map +1 -1
  194. package/dist/erc4337/UserOperationGas.d.ts +5 -1
  195. package/dist/erc4337/UserOperationGas.d.ts.map +1 -1
  196. package/dist/erc4337/UserOperationGas.js +8 -8
  197. package/dist/erc4337/UserOperationGas.js.map +1 -1
  198. package/dist/erc4337/UserOperationReceipt.d.ts +5 -1
  199. package/dist/erc4337/UserOperationReceipt.d.ts.map +1 -1
  200. package/dist/erc4337/UserOperationReceipt.js +4 -4
  201. package/dist/erc4337/UserOperationReceipt.js.map +1 -1
  202. package/dist/index.d.ts +37 -0
  203. package/dist/index.d.ts.map +1 -1
  204. package/dist/index.js +37 -0
  205. package/dist/index.js.map +1 -1
  206. package/dist/tempo/AuthorizationTempo.d.ts +6 -2
  207. package/dist/tempo/AuthorizationTempo.d.ts.map +1 -1
  208. package/dist/tempo/AuthorizationTempo.js +3 -2
  209. package/dist/tempo/AuthorizationTempo.js.map +1 -1
  210. package/dist/tempo/Channel.d.ts +8 -14
  211. package/dist/tempo/Channel.d.ts.map +1 -1
  212. package/dist/tempo/Channel.js +4 -8
  213. package/dist/tempo/Channel.js.map +1 -1
  214. package/dist/tempo/KeyAuthorization.d.ts +8 -6
  215. package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
  216. package/dist/tempo/KeyAuthorization.js +10 -8
  217. package/dist/tempo/KeyAuthorization.js.map +1 -1
  218. package/dist/tempo/MultisigConfig.d.ts +37 -85
  219. package/dist/tempo/MultisigConfig.d.ts.map +1 -1
  220. package/dist/tempo/MultisigConfig.js +39 -83
  221. package/dist/tempo/MultisigConfig.js.map +1 -1
  222. package/dist/tempo/PoolId.d.ts +8 -7
  223. package/dist/tempo/PoolId.d.ts.map +1 -1
  224. package/dist/tempo/PoolId.js +10 -6
  225. package/dist/tempo/PoolId.js.map +1 -1
  226. package/dist/tempo/RpcSchemaTempo.d.ts +1 -1
  227. package/dist/tempo/RpcSchemaTempo.d.ts.map +1 -1
  228. package/dist/tempo/SignatureEnvelope.d.ts +35 -31
  229. package/dist/tempo/SignatureEnvelope.d.ts.map +1 -1
  230. package/dist/tempo/SignatureEnvelope.js +56 -51
  231. package/dist/tempo/SignatureEnvelope.js.map +1 -1
  232. package/dist/tempo/Transaction.d.ts +19 -6
  233. package/dist/tempo/Transaction.d.ts.map +1 -1
  234. package/dist/tempo/Transaction.js +41 -13
  235. package/dist/tempo/Transaction.js.map +1 -1
  236. package/dist/tempo/TransactionReceipt.d.ts +3 -1
  237. package/dist/tempo/TransactionReceipt.d.ts.map +1 -1
  238. package/dist/tempo/TransactionReceipt.js.map +1 -1
  239. package/dist/tempo/TransactionRequest.d.ts +18 -3
  240. package/dist/tempo/TransactionRequest.d.ts.map +1 -1
  241. package/dist/tempo/TransactionRequest.js +72 -35
  242. package/dist/tempo/TransactionRequest.js.map +1 -1
  243. package/dist/tempo/TxEnvelopeTempo.d.ts +2 -3
  244. package/dist/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  245. package/dist/tempo/TxEnvelopeTempo.js +5 -6
  246. package/dist/tempo/TxEnvelopeTempo.js.map +1 -1
  247. package/dist/tempo/index.d.ts +6 -26
  248. package/dist/tempo/index.d.ts.map +1 -1
  249. package/dist/tempo/index.js +6 -26
  250. package/dist/tempo/index.js.map +1 -1
  251. package/dist/zod/Abi.d.ts +214 -0
  252. package/dist/zod/Abi.d.ts.map +1 -0
  253. package/dist/zod/Abi.js +5 -0
  254. package/dist/zod/Abi.js.map +1 -0
  255. package/dist/zod/AbiConstructor.d.ts +58 -0
  256. package/dist/zod/AbiConstructor.d.ts.map +1 -0
  257. package/dist/zod/AbiConstructor.js +18 -0
  258. package/dist/zod/AbiConstructor.js.map +1 -0
  259. package/dist/zod/AbiError.d.ts +20 -0
  260. package/dist/zod/AbiError.d.ts.map +1 -0
  261. package/dist/zod/AbiError.js +9 -0
  262. package/dist/zod/AbiError.js.map +1 -0
  263. package/dist/zod/AbiEvent.d.ts +23 -0
  264. package/dist/zod/AbiEvent.d.ts.map +1 -0
  265. package/dist/zod/AbiEvent.js +11 -0
  266. package/dist/zod/AbiEvent.js.map +1 -0
  267. package/dist/zod/AbiFallback.d.ts +16 -0
  268. package/dist/zod/AbiFallback.d.ts.map +1 -0
  269. package/dist/zod/AbiFallback.js +16 -0
  270. package/dist/zod/AbiFallback.js.map +1 -0
  271. package/dist/zod/AbiFunction.d.ts +109 -0
  272. package/dist/zod/AbiFunction.d.ts.map +1 -0
  273. package/dist/zod/AbiFunction.js +26 -0
  274. package/dist/zod/AbiFunction.js.map +1 -0
  275. package/dist/zod/AbiItem.d.ts +216 -0
  276. package/dist/zod/AbiItem.d.ts.map +1 -0
  277. package/dist/zod/AbiItem.js +26 -0
  278. package/dist/zod/AbiItem.js.map +1 -0
  279. package/dist/zod/AbiParameter.d.ts +32 -0
  280. package/dist/zod/AbiParameter.d.ts.map +1 -0
  281. package/dist/zod/AbiParameter.js +28 -0
  282. package/dist/zod/AbiParameter.js.map +1 -0
  283. package/dist/zod/AbiParameters.d.ts +30 -0
  284. package/dist/zod/AbiParameters.d.ts.map +1 -0
  285. package/dist/zod/AbiParameters.js +6 -0
  286. package/dist/zod/AbiParameters.js.map +1 -0
  287. package/dist/zod/AbiReceive.d.ts +6 -0
  288. package/dist/zod/AbiReceive.d.ts.map +1 -0
  289. package/dist/zod/AbiReceive.js +7 -0
  290. package/dist/zod/AbiReceive.js.map +1 -0
  291. package/dist/zod/AccountProof.d.ts +20 -0
  292. package/dist/zod/AccountProof.d.ts.map +1 -1
  293. package/dist/zod/AccountProof.js +24 -14
  294. package/dist/zod/AccountProof.js.map +1 -1
  295. package/dist/zod/Authorization.d.ts +43 -0
  296. package/dist/zod/Authorization.d.ts.map +1 -1
  297. package/dist/zod/Authorization.js +36 -16
  298. package/dist/zod/Authorization.js.map +1 -1
  299. package/dist/zod/BigInt.d.ts +2 -0
  300. package/dist/zod/BigInt.d.ts.map +1 -1
  301. package/dist/zod/BigInt.js +6 -1
  302. package/dist/zod/BigInt.js.map +1 -1
  303. package/dist/zod/Block.d.ts +219 -0
  304. package/dist/zod/Block.d.ts.map +1 -1
  305. package/dist/zod/Block.js +24 -20
  306. package/dist/zod/Block.js.map +1 -1
  307. package/dist/zod/BlockOverrides.d.ts +16 -0
  308. package/dist/zod/BlockOverrides.d.ts.map +1 -1
  309. package/dist/zod/BlockOverrides.js +15 -10
  310. package/dist/zod/BlockOverrides.js.map +1 -1
  311. package/dist/zod/Filter.d.ts +14 -0
  312. package/dist/zod/Filter.d.ts.map +1 -1
  313. package/dist/zod/Filter.js +24 -19
  314. package/dist/zod/Filter.js.map +1 -1
  315. package/dist/zod/Log.d.ts +15 -2
  316. package/dist/zod/Log.d.ts.map +1 -1
  317. package/dist/zod/Log.js +18 -13
  318. package/dist/zod/Log.js.map +1 -1
  319. package/dist/zod/Number.d.ts +2 -0
  320. package/dist/zod/Number.d.ts.map +1 -1
  321. package/dist/zod/Number.js +6 -1
  322. package/dist/zod/Number.js.map +1 -1
  323. package/dist/zod/RpcSchema.d.ts +318 -112
  324. package/dist/zod/RpcSchema.d.ts.map +1 -1
  325. package/dist/zod/RpcSchema.js +30 -82
  326. package/dist/zod/RpcSchema.js.map +1 -1
  327. package/dist/zod/Signature.d.ts +6 -0
  328. package/dist/zod/Signature.d.ts.map +1 -1
  329. package/dist/zod/Signature.js +9 -1
  330. package/dist/zod/Signature.js.map +1 -1
  331. package/dist/zod/Solidity.d.ts +15 -0
  332. package/dist/zod/Solidity.d.ts.map +1 -0
  333. package/dist/zod/Solidity.js +41 -0
  334. package/dist/zod/Solidity.js.map +1 -0
  335. package/dist/zod/StateOverrides.d.ts +32 -0
  336. package/dist/zod/StateOverrides.d.ts.map +1 -1
  337. package/dist/zod/StateOverrides.js +25 -18
  338. package/dist/zod/StateOverrides.js.map +1 -1
  339. package/dist/zod/Transaction.d.ts +312 -0
  340. package/dist/zod/Transaction.d.ts.map +1 -1
  341. package/dist/zod/Transaction.js +138 -93
  342. package/dist/zod/Transaction.js.map +1 -1
  343. package/dist/zod/TransactionEnvelope.d.ts +222 -0
  344. package/dist/zod/TransactionEnvelope.d.ts.map +1 -1
  345. package/dist/zod/TransactionEnvelope.js +19 -3
  346. package/dist/zod/TransactionEnvelope.js.map +1 -1
  347. package/dist/zod/TransactionReceipt.d.ts +32 -1
  348. package/dist/zod/TransactionReceipt.d.ts.map +1 -1
  349. package/dist/zod/TransactionReceipt.js +24 -19
  350. package/dist/zod/TransactionReceipt.js.map +1 -1
  351. package/dist/zod/TransactionRequest.d.ts +34 -0
  352. package/dist/zod/TransactionRequest.d.ts.map +1 -1
  353. package/dist/zod/TransactionRequest.js +28 -23
  354. package/dist/zod/TransactionRequest.js.map +1 -1
  355. package/dist/zod/TxEnvelopeEip1559.d.ts +44 -0
  356. package/dist/zod/TxEnvelopeEip1559.d.ts.map +1 -1
  357. package/dist/zod/TxEnvelopeEip1559.js +23 -14
  358. package/dist/zod/TxEnvelopeEip1559.js.map +1 -1
  359. package/dist/zod/TxEnvelopeEip2930.d.ts +42 -0
  360. package/dist/zod/TxEnvelopeEip2930.d.ts.map +1 -1
  361. package/dist/zod/TxEnvelopeEip2930.js +21 -12
  362. package/dist/zod/TxEnvelopeEip2930.js.map +1 -1
  363. package/dist/zod/TxEnvelopeEip4844.d.ts +58 -0
  364. package/dist/zod/TxEnvelopeEip4844.d.ts.map +1 -1
  365. package/dist/zod/TxEnvelopeEip4844.js +29 -20
  366. package/dist/zod/TxEnvelopeEip4844.js.map +1 -1
  367. package/dist/zod/TxEnvelopeEip7702.d.ts +60 -0
  368. package/dist/zod/TxEnvelopeEip7702.d.ts.map +1 -1
  369. package/dist/zod/TxEnvelopeEip7702.js +25 -16
  370. package/dist/zod/TxEnvelopeEip7702.js.map +1 -1
  371. package/dist/zod/TxEnvelopeLegacy.d.ts +34 -0
  372. package/dist/zod/TxEnvelopeLegacy.d.ts.map +1 -1
  373. package/dist/zod/TxEnvelopeLegacy.js +19 -10
  374. package/dist/zod/TxEnvelopeLegacy.js.map +1 -1
  375. package/dist/zod/TypedData.d.ts +226 -0
  376. package/dist/zod/TypedData.d.ts.map +1 -0
  377. package/dist/zod/TypedData.js +84 -0
  378. package/dist/zod/TypedData.js.map +1 -0
  379. package/dist/zod/Uint.d.ts +4 -0
  380. package/dist/zod/Uint.d.ts.map +1 -1
  381. package/dist/zod/Uint.js +14 -1
  382. package/dist/zod/Uint.js.map +1 -1
  383. package/dist/zod/Withdrawal.d.ts +7 -0
  384. package/dist/zod/Withdrawal.d.ts.map +1 -1
  385. package/dist/zod/Withdrawal.js +11 -6
  386. package/dist/zod/Withdrawal.js.map +1 -1
  387. package/dist/zod/internal/Integer.d.ts +15 -0
  388. package/dist/zod/internal/Integer.d.ts.map +1 -1
  389. package/dist/zod/internal/Integer.js +39 -0
  390. package/dist/zod/internal/Integer.js.map +1 -1
  391. package/dist/zod/internal/TransactionEnvelope.d.ts +38 -28
  392. package/dist/zod/internal/TransactionEnvelope.d.ts.map +1 -1
  393. package/dist/zod/internal/TransactionEnvelope.js +22 -15
  394. package/dist/zod/internal/TransactionEnvelope.js.map +1 -1
  395. package/dist/zod/internal/rpcSchemas/Eth.d.ts +260 -123
  396. package/dist/zod/internal/rpcSchemas/Eth.d.ts.map +1 -1
  397. package/dist/zod/internal/rpcSchemas/Eth.js +17 -6
  398. package/dist/zod/internal/rpcSchemas/Eth.js.map +1 -1
  399. package/dist/zod/internal/rpcSchemas/Wallet.d.ts +1 -1
  400. package/dist/zod/tempo/AuthorizationTempo.d.ts +405 -12
  401. package/dist/zod/tempo/AuthorizationTempo.d.ts.map +1 -1
  402. package/dist/zod/tempo/AuthorizationTempo.js +20 -0
  403. package/dist/zod/tempo/AuthorizationTempo.js.map +1 -1
  404. package/dist/zod/tempo/KeyAuthorization.d.ts +838 -69
  405. package/dist/zod/tempo/KeyAuthorization.d.ts.map +1 -1
  406. package/dist/zod/tempo/KeyAuthorization.js +49 -8
  407. package/dist/zod/tempo/KeyAuthorization.js.map +1 -1
  408. package/dist/zod/tempo/RpcSchemaTempo.d.ts +218 -36
  409. package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
  410. package/dist/zod/tempo/SignatureEnvelope.d.ts +0 -6
  411. package/dist/zod/tempo/SignatureEnvelope.d.ts.map +1 -1
  412. package/dist/zod/tempo/SignatureEnvelope.js +0 -2
  413. package/dist/zod/tempo/SignatureEnvelope.js.map +1 -1
  414. package/dist/zod/tempo/Transaction.d.ts +2203 -192
  415. package/dist/zod/tempo/Transaction.d.ts.map +1 -1
  416. package/dist/zod/tempo/Transaction.js +113 -33
  417. package/dist/zod/tempo/Transaction.js.map +1 -1
  418. package/dist/zod/tempo/TransactionReceipt.d.ts +34 -1
  419. package/dist/zod/tempo/TransactionReceipt.d.ts.map +1 -1
  420. package/dist/zod/tempo/TransactionReceipt.js +26 -21
  421. package/dist/zod/tempo/TransactionReceipt.js.map +1 -1
  422. package/dist/zod/tempo/TransactionRequest.d.ts +1049 -57
  423. package/dist/zod/tempo/TransactionRequest.d.ts.map +1 -1
  424. package/dist/zod/tempo/TransactionRequest.js +141 -26
  425. package/dist/zod/tempo/TransactionRequest.js.map +1 -1
  426. package/dist/zod/tempo/TxEnvelopeTempo.d.ts +225 -18
  427. package/dist/zod/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  428. package/dist/zod/tempo/TxEnvelopeTempo.js +1 -1
  429. package/dist/zod/tempo/TxEnvelopeTempo.js.map +1 -1
  430. package/dist/zod/tempo/ZoneRpcAuthentication.d.ts +0 -3
  431. package/dist/zod/tempo/ZoneRpcAuthentication.d.ts.map +1 -1
  432. package/dist/zod/tempo/z.d.ts +0 -1
  433. package/dist/zod/tempo/z.d.ts.map +1 -1
  434. package/dist/zod/tempo/z.js +0 -1
  435. package/dist/zod/tempo/z.js.map +1 -1
  436. package/dist/zod/z.d.ts +15 -3
  437. package/dist/zod/z.d.ts.map +1 -1
  438. package/dist/zod/z.js +15 -3
  439. package/dist/zod/z.js.map +1 -1
  440. package/package.json +66 -11
  441. package/src/CHANGELOG.md +18 -0
  442. package/src/core/Abi.bench.ts +30 -0
  443. package/src/core/Abi.ts +13 -4
  444. package/src/core/AbiConstructor.ts +3 -2
  445. package/src/core/AbiError.ts +6 -2
  446. package/src/core/AbiEvent.ts +6 -2
  447. package/src/core/AbiFunction.ts +6 -2
  448. package/src/core/AbiItem.bench.ts +19 -0
  449. package/src/core/AbiItem.ts +20 -10
  450. package/src/core/AbiParameter.bench.ts +35 -0
  451. package/src/core/AbiParameter.ts +126 -0
  452. package/src/core/AbiParameters.bench.ts +22 -0
  453. package/src/core/AbiParameters.ts +77 -8
  454. package/src/core/AccountProof.ts +7 -4
  455. package/src/core/Authorization.ts +11 -4
  456. package/src/core/Block.ts +24 -13
  457. package/src/core/BlockOverrides.ts +18 -13
  458. package/src/core/Filter.ts +8 -5
  459. package/src/core/Log.ts +10 -6
  460. package/src/core/Rlp.ts +66 -3
  461. package/src/core/RpcSchema.ts +2 -2
  462. package/src/core/Signature.ts +6 -2
  463. package/src/core/StateOverrides.ts +10 -5
  464. package/src/core/Transaction.ts +37 -26
  465. package/src/core/TransactionReceipt.ts +17 -8
  466. package/src/core/TransactionRequest.ts +21 -11
  467. package/src/core/TxEnvelope.ts +9 -2
  468. package/src/core/TxEnvelopeEip1559.ts +21 -12
  469. package/src/core/TxEnvelopeEip2930.ts +17 -10
  470. package/src/core/TxEnvelopeEip4844.ts +25 -14
  471. package/src/core/TxEnvelopeEip7702.ts +21 -12
  472. package/src/core/TxEnvelopeLegacy.ts +20 -9
  473. package/src/core/Withdrawal.ts +9 -5
  474. package/src/core/_test/Abi.test.ts +4 -0
  475. package/src/core/_test/AbiItem.test.ts +3 -0
  476. package/src/core/_test/AbiParameter.test-d.ts +41 -0
  477. package/src/core/_test/AbiParameter.test.ts +84 -0
  478. package/src/core/_test/AbiParameters.decode.test.ts +88 -12
  479. package/src/core/_test/AbiParameters.encode.test.ts +68 -0
  480. package/src/core/_test/AbiParameters.test.ts +7 -0
  481. package/src/core/_test/AccountProof.test.ts +56 -0
  482. package/src/core/_test/Authorization.test.ts +29 -0
  483. package/src/core/_test/Block.test.ts +98 -0
  484. package/src/core/_test/BlockOverrides.test.ts +50 -0
  485. package/src/core/_test/Filter.test.ts +32 -0
  486. package/src/core/_test/Log.test.ts +42 -0
  487. package/src/core/_test/Rlp.test.ts +101 -0
  488. package/src/core/_test/RpcSchema.test-d.ts +12 -0
  489. package/src/core/_test/Signature.test.ts +14 -0
  490. package/src/core/_test/StateOverrides.test.ts +51 -0
  491. package/src/core/_test/Transaction.test.ts +64 -0
  492. package/src/core/_test/TransactionEnvelopeEip1559.test.ts +41 -0
  493. package/src/core/_test/TransactionEnvelopeEip2930.test.ts +38 -0
  494. package/src/core/_test/TransactionEnvelopeEip4844.test.ts +47 -0
  495. package/src/core/_test/TransactionEnvelopeEip7702.test.ts +71 -0
  496. package/src/core/_test/TransactionEnvelopeLegacy.test.ts +38 -0
  497. package/src/core/_test/TransactionReceipt.test.ts +54 -0
  498. package/src/core/_test/Withdrawal.test.ts +33 -0
  499. package/src/core/_test/index.test.ts +1 -0
  500. package/src/core/internal/abiParameters.ts +21 -3
  501. package/src/core/internal/human-readable/_snap/formatAbi.test.ts.snap +74 -0
  502. package/src/core/internal/human-readable/_snap/parseAbi.test.ts.snap +2353 -0
  503. package/src/core/internal/human-readable/errors.test.ts +258 -0
  504. package/src/core/internal/human-readable/errors.ts +205 -0
  505. package/src/core/internal/human-readable/formatAbi.test-d.ts +144 -0
  506. package/src/core/internal/human-readable/formatAbi.test.ts +23 -0
  507. package/src/core/internal/human-readable/formatAbi.ts +37 -0
  508. package/src/core/internal/human-readable/formatAbiItem.test-d.ts +115 -0
  509. package/src/core/internal/human-readable/formatAbiItem.test.ts +102 -0
  510. package/src/core/internal/human-readable/formatAbiItem.ts +136 -0
  511. package/src/core/internal/human-readable/formatAbiParameter.test-d.ts +125 -0
  512. package/src/core/internal/human-readable/formatAbiParameter.test.ts +126 -0
  513. package/src/core/internal/human-readable/formatAbiParameter.ts +86 -0
  514. package/src/core/internal/human-readable/formatAbiParameters.test-d.ts +92 -0
  515. package/src/core/internal/human-readable/formatAbiParameters.test.ts +32 -0
  516. package/src/core/internal/human-readable/formatAbiParameters.ts +46 -0
  517. package/src/core/internal/human-readable/human-readable.bench-d.ts +58 -0
  518. package/src/core/internal/human-readable/integration.test.ts +68 -0
  519. package/src/core/internal/human-readable/parseAbi.test-d.ts +188 -0
  520. package/src/core/internal/human-readable/parseAbi.test.ts +82 -0
  521. package/src/core/internal/human-readable/parseAbi.ts +59 -0
  522. package/src/core/internal/human-readable/parseAbiItem.test-d.ts +183 -0
  523. package/src/core/internal/human-readable/parseAbiItem.test.ts +264 -0
  524. package/src/core/internal/human-readable/parseAbiItem.ts +91 -0
  525. package/src/core/internal/human-readable/parseAbiParameter.test-d.ts +68 -0
  526. package/src/core/internal/human-readable/parseAbiParameter.test.ts +207 -0
  527. package/src/core/internal/human-readable/parseAbiParameter.ts +95 -0
  528. package/src/core/internal/human-readable/parseAbiParameters.test-d.ts +160 -0
  529. package/src/core/internal/human-readable/parseAbiParameters.test.ts +80 -0
  530. package/src/core/internal/human-readable/parseAbiParameters.ts +123 -0
  531. package/src/core/internal/human-readable/regex.ts +15 -0
  532. package/src/core/internal/human-readable/runtime/cache.ts +96 -0
  533. package/src/core/internal/human-readable/runtime/signatures.test.ts +236 -0
  534. package/src/core/internal/human-readable/runtime/signatures.ts +106 -0
  535. package/src/core/internal/human-readable/runtime/structs.test.ts +210 -0
  536. package/src/core/internal/human-readable/runtime/structs.ts +97 -0
  537. package/src/core/internal/human-readable/runtime/utils.test.ts +717 -0
  538. package/src/core/internal/human-readable/runtime/utils.ts +344 -0
  539. package/src/core/internal/human-readable/types/signatures.test-d.ts +255 -0
  540. package/src/core/internal/human-readable/types/signatures.ts +369 -0
  541. package/src/core/internal/human-readable/types/structs.test-d.ts +221 -0
  542. package/src/core/internal/human-readable/types/structs.ts +88 -0
  543. package/src/core/internal/human-readable/types/utils.test-d.ts +1029 -0
  544. package/src/core/internal/human-readable/types/utils.ts +392 -0
  545. package/src/core/internal/human-readable/types.ts +69 -0
  546. package/src/core/internal/quantity.ts +29 -0
  547. package/src/core/internal/rpcSchemas/eth.ts +76 -10
  548. package/src/erc4337/UserOperation.ts +26 -11
  549. package/src/erc4337/UserOperationGas.ts +19 -8
  550. package/src/erc4337/UserOperationReceipt.ts +14 -4
  551. package/src/index.ts +38 -0
  552. package/src/tempo/AuthorizationTempo.ts +11 -4
  553. package/src/tempo/Channel.test.ts +2 -23
  554. package/src/tempo/Channel.ts +10 -22
  555. package/src/tempo/KeyAuthorization.test.ts +22 -0
  556. package/src/tempo/KeyAuthorization.ts +20 -14
  557. package/src/tempo/MultisigConfig.test.ts +54 -37
  558. package/src/tempo/MultisigConfig.ts +59 -134
  559. package/src/tempo/PoolId.test.ts +7 -41
  560. package/src/tempo/PoolId.ts +15 -10
  561. package/src/tempo/RpcSchemaTempo.ts +1 -1
  562. package/src/tempo/SignatureEnvelope.test.ts +118 -17
  563. package/src/tempo/SignatureEnvelope.ts +81 -73
  564. package/src/tempo/Transaction.test.ts +0 -15
  565. package/src/tempo/Transaction.ts +78 -19
  566. package/src/tempo/TransactionReceipt.ts +9 -1
  567. package/src/tempo/TransactionRequest.test.ts +174 -1
  568. package/src/tempo/TransactionRequest.ts +98 -39
  569. package/src/tempo/TxEnvelopeTempo.test.ts +2 -2
  570. package/src/tempo/TxEnvelopeTempo.ts +7 -7
  571. package/src/tempo/e2e.test.ts +221 -43
  572. package/src/tempo/index.ts +6 -26
  573. package/src/version.ts +1 -1
  574. package/src/zod/Abi.ts +5 -0
  575. package/src/zod/AbiConstructor.ts +24 -0
  576. package/src/zod/AbiError.ts +9 -0
  577. package/src/zod/AbiEvent.ts +11 -0
  578. package/src/zod/AbiFallback.ts +22 -0
  579. package/src/zod/AbiFunction.ts +32 -0
  580. package/src/zod/AbiItem.ts +28 -0
  581. package/src/zod/AbiParameter.ts +36 -0
  582. package/src/zod/AbiParameters.ts +7 -0
  583. package/src/zod/AbiReceive.ts +7 -0
  584. package/src/zod/AccountProof.ts +36 -14
  585. package/src/zod/Authorization.ts +65 -18
  586. package/src/zod/BigInt.ts +12 -1
  587. package/src/zod/Block.ts +68 -26
  588. package/src/zod/BlockOverrides.ts +24 -10
  589. package/src/zod/Filter.ts +26 -21
  590. package/src/zod/Log.ts +23 -13
  591. package/src/zod/Number.ts +12 -1
  592. package/src/zod/RpcSchema.ts +123 -29
  593. package/src/zod/Signature.ts +18 -3
  594. package/src/zod/Solidity.ts +83 -0
  595. package/src/zod/StateOverrides.ts +31 -19
  596. package/src/zod/Transaction.ts +254 -101
  597. package/src/zod/TransactionEnvelope.ts +27 -3
  598. package/src/zod/TransactionReceipt.ts +34 -19
  599. package/src/zod/TransactionRequest.ts +42 -23
  600. package/src/zod/TxEnvelopeEip1559.ts +34 -13
  601. package/src/zod/TxEnvelopeEip2930.ts +32 -11
  602. package/src/zod/TxEnvelopeEip4844.ts +40 -19
  603. package/src/zod/TxEnvelopeEip7702.ts +46 -15
  604. package/src/zod/TxEnvelopeLegacy.ts +30 -9
  605. package/src/zod/TypedData.ts +111 -0
  606. package/src/zod/Uint.ts +19 -0
  607. package/src/zod/Withdrawal.ts +18 -6
  608. package/src/zod/_test/Abi.test-d.ts +46 -0
  609. package/src/zod/_test/Abi.test.ts +163 -0
  610. package/src/zod/_test/AccountProof.test.ts +32 -0
  611. package/src/zod/_test/Authorization.test.ts +42 -0
  612. package/src/zod/_test/BigInt.test.ts +9 -1
  613. package/src/zod/_test/Block.test.ts +54 -0
  614. package/src/zod/_test/BlockOverrides.test.ts +35 -0
  615. package/src/zod/_test/Filter.test.ts +34 -0
  616. package/src/zod/_test/Log.test.ts +49 -0
  617. package/src/zod/_test/Number.test.ts +8 -1
  618. package/src/zod/_test/RpcSchema.test-d.ts +46 -0
  619. package/src/zod/_test/RpcSchema.test.ts +70 -0
  620. package/src/zod/_test/Signature.test.ts +10 -0
  621. package/src/zod/_test/StateOverrides.test.ts +26 -0
  622. package/src/zod/_test/Transaction.test.ts +30 -0
  623. package/src/zod/_test/TransactionEnvelope.test.ts +34 -0
  624. package/src/zod/_test/TransactionReceipt.test.ts +45 -1
  625. package/src/zod/_test/TransactionRequest.test.ts +31 -0
  626. package/src/zod/_test/TxEnvelope.test.ts +32 -0
  627. package/src/zod/_test/TypedData.test-d.ts +20 -0
  628. package/src/zod/_test/TypedData.test.ts +87 -0
  629. package/src/zod/_test/Uint.test.ts +15 -0
  630. package/src/zod/_test/Withdrawal.test.ts +35 -0
  631. package/src/zod/_test/z.test-d.ts +6 -0
  632. package/src/zod/_test/z.test.ts +17 -0
  633. package/src/zod/internal/Integer.ts +58 -0
  634. package/src/zod/internal/TransactionEnvelope.ts +33 -17
  635. package/src/zod/internal/rpcSchemas/Eth.ts +20 -6
  636. package/src/zod/tempo/AuthorizationTempo.ts +25 -0
  637. package/src/zod/tempo/KeyAuthorization.ts +58 -8
  638. package/src/zod/tempo/SignatureEnvelope.ts +0 -2
  639. package/src/zod/tempo/Transaction.ts +148 -33
  640. package/src/zod/tempo/TransactionReceipt.ts +36 -21
  641. package/src/zod/tempo/TransactionRequest.ts +154 -28
  642. package/src/zod/tempo/TxEnvelopeTempo.ts +1 -1
  643. package/src/zod/tempo/_test/AuthorizationTempo.test.ts +24 -0
  644. package/src/zod/tempo/_test/KeyAuthorization.test.ts +85 -0
  645. package/src/zod/tempo/_test/SignatureEnvelope.test.ts +0 -2
  646. package/src/zod/tempo/_test/Transaction.test.ts +178 -0
  647. package/src/zod/tempo/_test/TransactionReceipt.test.ts +26 -0
  648. package/src/zod/tempo/_test/TransactionRequest.test.ts +73 -0
  649. package/src/zod/tempo/z.ts +0 -1
  650. package/src/zod/z.ts +16 -2
  651. package/dist/tempo/TokenId.d.ts +0 -87
  652. package/dist/tempo/TokenId.d.ts.map +0 -1
  653. package/dist/tempo/TokenId.js +0 -123
  654. package/dist/tempo/TokenId.js.map +0 -1
  655. package/dist/zod/tempo/TokenId.d.ts +0 -6
  656. package/dist/zod/tempo/TokenId.d.ts.map +0 -1
  657. package/dist/zod/tempo/TokenId.js +0 -14
  658. package/dist/zod/tempo/TokenId.js.map +0 -1
  659. package/src/tempo/TokenId.bench.ts +0 -36
  660. package/src/tempo/TokenId.test.ts +0 -79
  661. package/src/tempo/TokenId.ts +0 -141
  662. package/src/zod/tempo/TokenId.ts +0 -15
  663. package/src/zod/tempo/_test/TokenId.test-d.ts +0 -17
  664. package/src/zod/tempo/_test/TokenId.test.ts +0 -21
@@ -0,0 +1,207 @@
1
+ import { assertType, expect, test } from 'vp/test'
2
+
3
+ import { parseAbiParameter } from './parseAbiParameter.js'
4
+
5
+ test('parseAbiParameter', () => {
6
+ // @ts-expect-error invalid signature type
7
+ expect(() => parseAbiParameter('')).toThrowErrorMatchingInlineSnapshot(
8
+ `[HumanReadableAbi.InvalidParameterError: Invalid ABI parameter.]`,
9
+ )
10
+ // @ts-expect-error invalid signature type
11
+ expect(() => parseAbiParameter([])).toThrowErrorMatchingInlineSnapshot(
12
+ `
13
+ [AbiParameter.InvalidAbiParameterError: Failed to parse ABI parameter.
14
+
15
+ Details: parseAbiParameter([])
16
+ See: https://oxlib.sh/api/AbiParameter/from]
17
+ `,
18
+ )
19
+ expect(() =>
20
+ parseAbiParameter(['struct Foo { string name; }']),
21
+ ).toThrowErrorMatchingInlineSnapshot(
22
+ `
23
+ [AbiParameter.InvalidAbiParameterError: Failed to parse ABI parameter.
24
+
25
+ Details: parseAbiParameter([
26
+ "struct Foo { string name; }"
27
+ ])
28
+ See: https://oxlib.sh/api/AbiParameter/from]
29
+ `,
30
+ )
31
+
32
+ expect(() =>
33
+ parseAbiParameter(['struct Foo { string memory bar; }', 'Foo indexed foo']),
34
+ ).toThrowErrorMatchingInlineSnapshot(
35
+ `
36
+ [HumanReadableAbi.InvalidModifierError: Invalid ABI parameter.
37
+
38
+ Modifier "memory" not allowed in "struct" type.
39
+
40
+ Details: string memory bar]
41
+ `,
42
+ )
43
+
44
+ expect([parseAbiParameter('address from')]).toMatchInlineSnapshot(`
45
+ [
46
+ {
47
+ "name": "from",
48
+ "type": "address",
49
+ },
50
+ ]
51
+ `)
52
+ })
53
+
54
+ test.each([
55
+ { signature: 'string', expected: { type: 'string' } },
56
+ { signature: 'string foo', expected: { name: 'foo', type: 'string' } },
57
+ {
58
+ signature: 'string indexed foo',
59
+ expected: { name: 'foo', type: 'string', indexed: true },
60
+ },
61
+ {
62
+ signature: 'string calldata foo',
63
+ expected: { name: 'foo', type: 'string' },
64
+ },
65
+ {
66
+ signature: '(string)',
67
+ expected: { type: 'tuple', components: [{ type: 'string' }] },
68
+ },
69
+ {
70
+ signature: '(string foo)',
71
+ expected: { type: 'tuple', components: [{ name: 'foo', type: 'string' }] },
72
+ },
73
+ {
74
+ signature: '(string bar) foo',
75
+ expected: {
76
+ type: 'tuple',
77
+ name: 'foo',
78
+ components: [{ name: 'bar', type: 'string' }],
79
+ },
80
+ },
81
+ {
82
+ signature: '(string bar, string baz) foo',
83
+ expected: {
84
+ type: 'tuple',
85
+ name: 'foo',
86
+ components: [
87
+ { name: 'bar', type: 'string' },
88
+ { name: 'baz', type: 'string' },
89
+ ],
90
+ },
91
+ },
92
+ { signature: 'string[]', expected: { type: 'string[]' } },
93
+ ])('parseAbiParameter($signature)', ({ signature, expected }) => {
94
+ expect(parseAbiParameter(signature)).toEqual(expected)
95
+ })
96
+
97
+ test.each([
98
+ {
99
+ signatures: ['struct Foo { string bar; }', 'Foo'],
100
+ expected: { type: 'tuple', components: [{ name: 'bar', type: 'string' }] },
101
+ },
102
+ {
103
+ signatures: ['struct Foo { string bar; }', 'Foo foo'],
104
+ expected: {
105
+ type: 'tuple',
106
+ name: 'foo',
107
+ components: [{ name: 'bar', type: 'string' }],
108
+ },
109
+ },
110
+ {
111
+ signatures: ['struct Foo { string bar; }', 'Foo indexed foo'],
112
+ expected: {
113
+ type: 'tuple',
114
+ name: 'foo',
115
+ indexed: true,
116
+ components: [{ name: 'bar', type: 'string' }],
117
+ },
118
+ },
119
+ ])('parseAbiParameter($signatures)', ({ signatures, expected }) => {
120
+ expect(parseAbiParameter(signatures)).toEqual(expected)
121
+ })
122
+
123
+ test('nested tuple', () => {
124
+ const result = parseAbiParameter('((((string baz) bar)[1] foo) boo)')
125
+ expect(result).toMatchInlineSnapshot(`
126
+ {
127
+ "components": [
128
+ {
129
+ "components": [
130
+ {
131
+ "components": [
132
+ {
133
+ "components": [
134
+ {
135
+ "name": "baz",
136
+ "type": "string",
137
+ },
138
+ ],
139
+ "name": "bar",
140
+ "type": "tuple",
141
+ },
142
+ ],
143
+ "name": "foo",
144
+ "type": "tuple[1]",
145
+ },
146
+ ],
147
+ "name": "boo",
148
+ "type": "tuple",
149
+ },
150
+ ],
151
+ "type": "tuple",
152
+ }
153
+ `)
154
+ assertType<{
155
+ type: 'tuple'
156
+ components: readonly [
157
+ {
158
+ type: 'tuple'
159
+ components: readonly [
160
+ {
161
+ type: 'tuple[1]'
162
+ components: readonly [
163
+ {
164
+ type: 'tuple'
165
+ components: readonly [
166
+ {
167
+ type: 'string'
168
+ name: 'baz'
169
+ },
170
+ ]
171
+ name: 'bar'
172
+ },
173
+ ]
174
+ name: 'foo'
175
+ },
176
+ ]
177
+ name: 'boo'
178
+ },
179
+ ]
180
+ }>(result)
181
+ })
182
+
183
+ test('struct name collision', () => {
184
+ const result1 = parseAbiParameter(['struct Foo { string bar; }', 'Foo'])
185
+ expect(result1).toEqual({
186
+ type: 'tuple',
187
+ components: [{ name: 'bar', type: 'string' }],
188
+ })
189
+
190
+ const result2 = parseAbiParameter(['struct Foo { address bar; }', 'Foo'])
191
+ expect(result2).toEqual({
192
+ type: 'tuple',
193
+ components: [{ name: 'bar', type: 'address' }],
194
+ })
195
+
196
+ const result3 = parseAbiParameter([
197
+ 'struct Foo { uint256 amount; address token; }',
198
+ 'Foo',
199
+ ])
200
+ expect(result3).toEqual({
201
+ type: 'tuple',
202
+ components: [
203
+ { name: 'amount', type: 'uint256' },
204
+ { name: 'token', type: 'address' },
205
+ ],
206
+ })
207
+ })
@@ -0,0 +1,95 @@
1
+ import type { AbiParameter } from 'abitype'
2
+ import type { Narrow } from 'abitype'
3
+ import type { Error, Filter } from './types.js'
4
+ import { InvalidAbiParameterError } from './errors.js'
5
+ import { isStructSignature, modifiers } from './runtime/signatures.js'
6
+ import { parseStructs } from './runtime/structs.js'
7
+ import { parseAbiParameter as parseAbiParameter_ } from './runtime/utils.js'
8
+ import type { IsStructSignature, Modifier } from './types/signatures.js'
9
+ import type { ParseStructs } from './types/structs.js'
10
+ import type { ParseAbiParameter as ParseAbiParameter_ } from './types/utils.js'
11
+
12
+ /**
13
+ * Parses human-readable ABI parameter into `AbiParameter`.
14
+ *
15
+ * @param param - Human-readable ABI parameter
16
+ * @returns Parsed `AbiParameter`.
17
+ */
18
+ export type ParseAbiParameter<
19
+ param extends string | readonly string[] | readonly unknown[],
20
+ > =
21
+ | (param extends string
22
+ ? param extends ''
23
+ ? never
24
+ : string extends param
25
+ ? AbiParameter
26
+ : ParseAbiParameter_<param, { modifier: Modifier }>
27
+ : never)
28
+ | (param extends readonly string[]
29
+ ? string[] extends param
30
+ ? AbiParameter // Return generic AbiParameter item since type was no inferrable
31
+ : ParseStructs<param> extends infer structs
32
+ ? {
33
+ [key in keyof param]: param[key] extends string
34
+ ? IsStructSignature<param[key]> extends true
35
+ ? never
36
+ : ParseAbiParameter_<
37
+ param[key],
38
+ { modifier: Modifier; structs: structs }
39
+ >
40
+ : never
41
+ } extends infer mapped extends readonly unknown[]
42
+ ? Filter<mapped, never>[0] extends infer result
43
+ ? result extends undefined
44
+ ? never
45
+ : result
46
+ : never
47
+ : never
48
+ : never
49
+ : never)
50
+
51
+ /**
52
+ * Parses human-readable ABI parameter into `AbiParameter`.
53
+ *
54
+ * @param param - Human-readable ABI parameter
55
+ * @returns Parsed `AbiParameter`.
56
+ */
57
+ export function parseAbiParameter<
58
+ param extends string | readonly string[] | readonly unknown[],
59
+ >(
60
+ param: Narrow<param> &
61
+ (
62
+ | (param extends string
63
+ ? param extends ''
64
+ ? Error<'Empty string is not allowed.'>
65
+ : unknown
66
+ : never)
67
+ | (param extends readonly string[]
68
+ ? param extends readonly [] // empty array
69
+ ? Error<'At least one parameter required.'>
70
+ : string[] extends param
71
+ ? unknown
72
+ : unknown // TODO: Validate param string
73
+ : never)
74
+ ),
75
+ ): ParseAbiParameter<param> {
76
+ let abiParameter: AbiParameter | undefined
77
+ if (typeof param === 'string')
78
+ abiParameter = parseAbiParameter_(param, {
79
+ modifiers,
80
+ }) as ParseAbiParameter<param>
81
+ else {
82
+ const structs = parseStructs(param as readonly string[])
83
+ const length = param.length as number
84
+ for (let i = 0; i < length; i++) {
85
+ const signature = (param as readonly string[])[i]!
86
+ if (isStructSignature(signature)) continue
87
+ abiParameter = parseAbiParameter_(signature, { modifiers, structs })
88
+ break
89
+ }
90
+ }
91
+
92
+ if (!abiParameter) throw new InvalidAbiParameterError({ param })
93
+
94
+ return abiParameter as ParseAbiParameter<param>
95
+ }
@@ -0,0 +1,160 @@
1
+ import { expectTypeOf, test } from 'vp/test'
2
+
3
+ import type { AbiParameter } from 'abitype'
4
+ import type { ParseAbiParameters } from './parseAbiParameters.js'
5
+ import { parseAbiParameters } from './parseAbiParameters.js'
6
+
7
+ test('ParseAbiParameters', () => {
8
+ expectTypeOf<ParseAbiParameters<''>>().toEqualTypeOf<never>()
9
+ expectTypeOf<ParseAbiParameters<[]>>().toEqualTypeOf<never>()
10
+ expectTypeOf<
11
+ ParseAbiParameters<['struct Foo { string name; }']>
12
+ >().toEqualTypeOf<never>()
13
+
14
+ // string
15
+ expectTypeOf<
16
+ ParseAbiParameters<'address from, address to, uint256 amount'>
17
+ >().toEqualTypeOf<
18
+ readonly [
19
+ {
20
+ readonly type: 'address'
21
+ readonly name: 'from'
22
+ },
23
+ {
24
+ readonly type: 'address'
25
+ readonly name: 'to'
26
+ },
27
+ {
28
+ readonly type: 'uint256'
29
+ readonly name: 'amount'
30
+ },
31
+ ]
32
+ >()
33
+ expectTypeOf<
34
+ ParseAbiParameters<'address indexed from, address indexed to, uint256 indexed amount'>
35
+ >().toEqualTypeOf<
36
+ readonly [
37
+ {
38
+ readonly type: 'address'
39
+ readonly name: 'from'
40
+ readonly indexed: true
41
+ },
42
+ {
43
+ readonly type: 'address'
44
+ readonly name: 'to'
45
+ readonly indexed: true
46
+ },
47
+ {
48
+ readonly type: 'uint256'
49
+ readonly name: 'amount'
50
+ readonly indexed: true
51
+ },
52
+ ]
53
+ >()
54
+ expectTypeOf<
55
+ ParseAbiParameters<'address calldata foo, address memory bar, uint256 storage baz'>
56
+ >().toEqualTypeOf<
57
+ readonly [
58
+ {
59
+ readonly type: 'address'
60
+ readonly name: 'foo'
61
+ },
62
+ {
63
+ readonly type: 'address'
64
+ readonly name: 'bar'
65
+ },
66
+ {
67
+ readonly type: 'uint256'
68
+ readonly name: 'baz'
69
+ },
70
+ ]
71
+ >()
72
+
73
+ // Array
74
+ expectTypeOf<
75
+ ParseAbiParameters<['Foo, bytes32', 'struct Foo { string name; }']>
76
+ >().toEqualTypeOf<
77
+ readonly [
78
+ {
79
+ readonly type: 'tuple'
80
+ readonly components: readonly [
81
+ {
82
+ readonly name: 'name'
83
+ readonly type: 'string'
84
+ },
85
+ ]
86
+ },
87
+ { readonly type: 'bytes32' },
88
+ ]
89
+ >()
90
+ })
91
+
92
+ test('parseAbiParameters', () => {
93
+ // @ts-expect-error empty array not allowed
94
+ expectTypeOf(parseAbiParameters([])).toEqualTypeOf<never>()
95
+ expectTypeOf(
96
+ parseAbiParameters(['struct Foo { string name; }']),
97
+ ).toEqualTypeOf<never>()
98
+
99
+ expectTypeOf(parseAbiParameters('(string)')).toEqualTypeOf<
100
+ readonly [
101
+ {
102
+ readonly type: 'tuple'
103
+ readonly components: readonly [{ readonly type: 'string' }]
104
+ },
105
+ ]
106
+ >()
107
+
108
+ const param: string = 'address, string'
109
+ expectTypeOf(parseAbiParameters(param)).toEqualTypeOf<
110
+ readonly AbiParameter[]
111
+ >()
112
+
113
+ expectTypeOf(parseAbiParameters(['(uint256 a),(uint256 b)'])).toEqualTypeOf<
114
+ readonly [
115
+ {
116
+ readonly type: 'tuple'
117
+ readonly components: readonly [
118
+ {
119
+ readonly type: 'uint256'
120
+ readonly name: 'a'
121
+ },
122
+ ]
123
+ },
124
+ {
125
+ readonly type: 'tuple'
126
+ readonly components: readonly [
127
+ {
128
+ readonly type: 'uint256'
129
+ readonly name: 'b'
130
+ },
131
+ ]
132
+ },
133
+ ]
134
+ >()
135
+
136
+ expectTypeOf(
137
+ parseAbiParameters(['(uint256 a)', '(uint256 b)']),
138
+ ).toEqualTypeOf<
139
+ readonly [
140
+ {
141
+ readonly type: 'tuple'
142
+ readonly components: readonly [
143
+ {
144
+ readonly type: 'uint256'
145
+ readonly name: 'a'
146
+ },
147
+ ]
148
+ },
149
+ {
150
+ readonly type: 'tuple'
151
+ readonly components: readonly [
152
+ {
153
+ readonly type: 'uint256'
154
+ readonly name: 'b'
155
+ },
156
+ ]
157
+ },
158
+ ]
159
+ >()
160
+ })
@@ -0,0 +1,80 @@
1
+ import { expect, test } from 'vp/test'
2
+
3
+ import { parseAbiParameters } from './parseAbiParameters.js'
4
+
5
+ test('parseAbiParameters', () => {
6
+ // @ts-expect-error invalid signature type
7
+ expect(() => parseAbiParameters('')).toThrowErrorMatchingInlineSnapshot(
8
+ `
9
+ [AbiParameters.InvalidAbiParametersError: Failed to parse ABI parameters.
10
+
11
+ Details: parseAbiParameters("")
12
+ See: https://oxlib.sh/api/AbiParameters/from]
13
+ `,
14
+ )
15
+ // @ts-expect-error invalid signature type
16
+ expect(() => parseAbiParameters([])).toThrowErrorMatchingInlineSnapshot(
17
+ `
18
+ [AbiParameters.InvalidAbiParametersError: Failed to parse ABI parameters.
19
+
20
+ Details: parseAbiParameters([])
21
+ See: https://oxlib.sh/api/AbiParameters/from]
22
+ `,
23
+ )
24
+ expect(() =>
25
+ parseAbiParameters(['struct Foo { string name; }']),
26
+ ).toThrowErrorMatchingInlineSnapshot(
27
+ `
28
+ [AbiParameters.InvalidAbiParametersError: Failed to parse ABI parameters.
29
+
30
+ Details: parseAbiParameters([
31
+ "struct Foo { string name; }"
32
+ ])
33
+ See: https://oxlib.sh/api/AbiParameters/from]
34
+ `,
35
+ )
36
+
37
+ expect(parseAbiParameters('address from')).toMatchInlineSnapshot(`
38
+ [
39
+ {
40
+ "name": "from",
41
+ "type": "address",
42
+ },
43
+ ]
44
+ `)
45
+ })
46
+
47
+ test.each([
48
+ {
49
+ signatures: 'string, string',
50
+ expected: [{ type: 'string' }, { type: 'string' }],
51
+ },
52
+ {
53
+ signatures: 'string foo, string bar',
54
+ expected: [
55
+ { type: 'string', name: 'foo' },
56
+ { type: 'string', name: 'bar' },
57
+ ],
58
+ },
59
+ ])('parseAbiParameters($signatures)', ({ signatures, expected }) => {
60
+ expect(parseAbiParameters(signatures)).toEqual(expected)
61
+ })
62
+
63
+ test.each([
64
+ {
65
+ signatures: ['struct Foo { string bar; }', 'Foo, string'],
66
+ expected: [
67
+ { type: 'tuple', components: [{ name: 'bar', type: 'string' }] },
68
+ { type: 'string' },
69
+ ],
70
+ },
71
+ {
72
+ signatures: ['string foo, string bar'],
73
+ expected: [
74
+ { name: 'foo', type: 'string' },
75
+ { name: 'bar', type: 'string' },
76
+ ],
77
+ },
78
+ ])('parseAbiParameters($signatures)', ({ signatures, expected }) => {
79
+ expect(parseAbiParameters(signatures)).toEqual(expected)
80
+ })
@@ -0,0 +1,123 @@
1
+ import type { AbiParameter } from 'abitype'
2
+ import type { Narrow } from 'abitype'
3
+ import type { Error, Filter } from './types.js'
4
+ import { InvalidAbiParametersError } from './errors.js'
5
+ import { isStructSignature, modifiers } from './runtime/signatures.js'
6
+ import { parseStructs } from './runtime/structs.js'
7
+ import { splitParameters } from './runtime/utils.js'
8
+ import { parseAbiParameter as parseAbiParameter_ } from './runtime/utils.js'
9
+ import type { IsStructSignature, Modifier } from './types/signatures.js'
10
+ import type { ParseStructs } from './types/structs.js'
11
+ import type { SplitParameters } from './types/utils.js'
12
+ import type { ParseAbiParameters as ParseAbiParameters_ } from './types/utils.js'
13
+
14
+ /**
15
+ * Parses human-readable ABI parameters into `AbiParameter`s.
16
+ *
17
+ * @param params - Human-readable ABI parameters
18
+ * @returns Parsed `AbiParameter`s.
19
+ */
20
+ export type ParseAbiParameters<
21
+ params extends string | readonly string[] | readonly unknown[],
22
+ > =
23
+ | (params extends string
24
+ ? params extends ''
25
+ ? never
26
+ : string extends params
27
+ ? readonly AbiParameter[]
28
+ : ParseAbiParameters_<SplitParameters<params>, { modifier: Modifier }>
29
+ : never)
30
+ | (params extends readonly string[]
31
+ ? string[] extends params
32
+ ? AbiParameter // Return generic AbiParameter item since type was no inferrable
33
+ : ParseStructs<params> extends infer structs
34
+ ? {
35
+ [key in keyof params]: params[key] extends string
36
+ ? IsStructSignature<params[key]> extends true
37
+ ? never
38
+ : ParseAbiParameters_<
39
+ SplitParameters<params[key]>,
40
+ { modifier: Modifier; structs: structs }
41
+ >
42
+ : never
43
+ } extends infer mapped extends readonly unknown[]
44
+ ? Filter<mapped, never> extends readonly [...infer content]
45
+ ? content['length'] extends 0
46
+ ? never
47
+ : DeepFlatten<content>
48
+ : never
49
+ : never
50
+ : never
51
+ : never)
52
+
53
+ /**
54
+ * Flatten all members of `T`.
55
+ *
56
+ * @param T - List of items to flatten
57
+ * @param Acc - The accumulator used while recursing
58
+ * @returns The flattened array
59
+ */
60
+ type DeepFlatten<
61
+ T extends readonly unknown[],
62
+ Acc extends readonly unknown[] = readonly [],
63
+ > = T extends readonly [infer head, ...infer tail]
64
+ ? tail extends undefined
65
+ ? never
66
+ : head extends readonly unknown[]
67
+ ? DeepFlatten<tail, readonly [...Acc, ...DeepFlatten<head>]>
68
+ : DeepFlatten<tail, readonly [...Acc, head]>
69
+ : Acc
70
+
71
+ /**
72
+ * Parses human-readable ABI parameters into `AbiParameter`s.
73
+ *
74
+ * @param params - Human-readable ABI parameters
75
+ * @returns Parsed `AbiParameter`s.
76
+ */
77
+ export function parseAbiParameters<
78
+ params extends string | readonly string[] | readonly unknown[],
79
+ >(
80
+ params: Narrow<params> &
81
+ (
82
+ | (params extends string
83
+ ? params extends ''
84
+ ? Error<'Empty string is not allowed.'>
85
+ : unknown
86
+ : never)
87
+ | (params extends readonly string[]
88
+ ? params extends readonly [] // empty array
89
+ ? Error<'At least one parameter required.'>
90
+ : string[] extends params
91
+ ? unknown
92
+ : unknown // TODO: Validate param string
93
+ : never)
94
+ ),
95
+ ): ParseAbiParameters<params> {
96
+ const abiParameters: AbiParameter[] = []
97
+ if (typeof params === 'string') {
98
+ const parameters = splitParameters(params)
99
+ const length = parameters.length
100
+ for (let i = 0; i < length; i++) {
101
+ abiParameters.push(parseAbiParameter_(parameters[i]!, { modifiers }))
102
+ }
103
+ } else {
104
+ const structs = parseStructs(params as readonly string[])
105
+ const length = params.length as number
106
+ for (let i = 0; i < length; i++) {
107
+ const signature = (params as readonly string[])[i]!
108
+ if (isStructSignature(signature)) continue
109
+ const parameters = splitParameters(signature)
110
+ const length = parameters.length
111
+ for (let k = 0; k < length; k++) {
112
+ abiParameters.push(
113
+ parseAbiParameter_(parameters[k]!, { modifiers, structs }),
114
+ )
115
+ }
116
+ }
117
+ }
118
+
119
+ if (abiParameters.length === 0)
120
+ throw new InvalidAbiParametersError({ params })
121
+
122
+ return abiParameters as ParseAbiParameters<params>
123
+ }
@@ -0,0 +1,15 @@
1
+ /** @internal */
2
+ export function execTyped<type>(regex: RegExp, string: string) {
3
+ const match = regex.exec(string)
4
+ return match?.groups as type | undefined
5
+ }
6
+
7
+ /** @internal */
8
+ export const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/
9
+
10
+ /** @internal */
11
+ export const integerRegex =
12
+ /^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)?$/
13
+
14
+ /** @internal */
15
+ export const isTupleRegex = /^\(.+?\).*?$/