ox 1.0.0-beta.2 → 1.0.0-beta.21

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 (666) 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 +5 -3
  237. package/dist/tempo/TransactionReceipt.d.ts.map +1 -1
  238. package/dist/tempo/TransactionReceipt.js +8 -1
  239. package/dist/tempo/TransactionReceipt.js.map +1 -1
  240. package/dist/tempo/TransactionRequest.d.ts +18 -3
  241. package/dist/tempo/TransactionRequest.d.ts.map +1 -1
  242. package/dist/tempo/TransactionRequest.js +72 -35
  243. package/dist/tempo/TransactionRequest.js.map +1 -1
  244. package/dist/tempo/TxEnvelopeTempo.d.ts +2 -3
  245. package/dist/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  246. package/dist/tempo/TxEnvelopeTempo.js +5 -6
  247. package/dist/tempo/TxEnvelopeTempo.js.map +1 -1
  248. package/dist/tempo/index.d.ts +6 -26
  249. package/dist/tempo/index.d.ts.map +1 -1
  250. package/dist/tempo/index.js +6 -26
  251. package/dist/tempo/index.js.map +1 -1
  252. package/dist/zod/Abi.d.ts +214 -0
  253. package/dist/zod/Abi.d.ts.map +1 -0
  254. package/dist/zod/Abi.js +5 -0
  255. package/dist/zod/Abi.js.map +1 -0
  256. package/dist/zod/AbiConstructor.d.ts +58 -0
  257. package/dist/zod/AbiConstructor.d.ts.map +1 -0
  258. package/dist/zod/AbiConstructor.js +18 -0
  259. package/dist/zod/AbiConstructor.js.map +1 -0
  260. package/dist/zod/AbiError.d.ts +20 -0
  261. package/dist/zod/AbiError.d.ts.map +1 -0
  262. package/dist/zod/AbiError.js +9 -0
  263. package/dist/zod/AbiError.js.map +1 -0
  264. package/dist/zod/AbiEvent.d.ts +23 -0
  265. package/dist/zod/AbiEvent.d.ts.map +1 -0
  266. package/dist/zod/AbiEvent.js +11 -0
  267. package/dist/zod/AbiEvent.js.map +1 -0
  268. package/dist/zod/AbiFallback.d.ts +16 -0
  269. package/dist/zod/AbiFallback.d.ts.map +1 -0
  270. package/dist/zod/AbiFallback.js +16 -0
  271. package/dist/zod/AbiFallback.js.map +1 -0
  272. package/dist/zod/AbiFunction.d.ts +109 -0
  273. package/dist/zod/AbiFunction.d.ts.map +1 -0
  274. package/dist/zod/AbiFunction.js +26 -0
  275. package/dist/zod/AbiFunction.js.map +1 -0
  276. package/dist/zod/AbiItem.d.ts +216 -0
  277. package/dist/zod/AbiItem.d.ts.map +1 -0
  278. package/dist/zod/AbiItem.js +26 -0
  279. package/dist/zod/AbiItem.js.map +1 -0
  280. package/dist/zod/AbiParameter.d.ts +32 -0
  281. package/dist/zod/AbiParameter.d.ts.map +1 -0
  282. package/dist/zod/AbiParameter.js +28 -0
  283. package/dist/zod/AbiParameter.js.map +1 -0
  284. package/dist/zod/AbiParameters.d.ts +30 -0
  285. package/dist/zod/AbiParameters.d.ts.map +1 -0
  286. package/dist/zod/AbiParameters.js +6 -0
  287. package/dist/zod/AbiParameters.js.map +1 -0
  288. package/dist/zod/AbiReceive.d.ts +6 -0
  289. package/dist/zod/AbiReceive.d.ts.map +1 -0
  290. package/dist/zod/AbiReceive.js +7 -0
  291. package/dist/zod/AbiReceive.js.map +1 -0
  292. package/dist/zod/AccountProof.d.ts +20 -0
  293. package/dist/zod/AccountProof.d.ts.map +1 -1
  294. package/dist/zod/AccountProof.js +24 -14
  295. package/dist/zod/AccountProof.js.map +1 -1
  296. package/dist/zod/Authorization.d.ts +43 -0
  297. package/dist/zod/Authorization.d.ts.map +1 -1
  298. package/dist/zod/Authorization.js +36 -16
  299. package/dist/zod/Authorization.js.map +1 -1
  300. package/dist/zod/BigInt.d.ts +2 -0
  301. package/dist/zod/BigInt.d.ts.map +1 -1
  302. package/dist/zod/BigInt.js +6 -1
  303. package/dist/zod/BigInt.js.map +1 -1
  304. package/dist/zod/Block.d.ts +219 -0
  305. package/dist/zod/Block.d.ts.map +1 -1
  306. package/dist/zod/Block.js +24 -20
  307. package/dist/zod/Block.js.map +1 -1
  308. package/dist/zod/BlockOverrides.d.ts +16 -0
  309. package/dist/zod/BlockOverrides.d.ts.map +1 -1
  310. package/dist/zod/BlockOverrides.js +15 -10
  311. package/dist/zod/BlockOverrides.js.map +1 -1
  312. package/dist/zod/Filter.d.ts +14 -0
  313. package/dist/zod/Filter.d.ts.map +1 -1
  314. package/dist/zod/Filter.js +24 -19
  315. package/dist/zod/Filter.js.map +1 -1
  316. package/dist/zod/Log.d.ts +15 -2
  317. package/dist/zod/Log.d.ts.map +1 -1
  318. package/dist/zod/Log.js +18 -13
  319. package/dist/zod/Log.js.map +1 -1
  320. package/dist/zod/Number.d.ts +2 -0
  321. package/dist/zod/Number.d.ts.map +1 -1
  322. package/dist/zod/Number.js +6 -1
  323. package/dist/zod/Number.js.map +1 -1
  324. package/dist/zod/RpcSchema.d.ts +318 -112
  325. package/dist/zod/RpcSchema.d.ts.map +1 -1
  326. package/dist/zod/RpcSchema.js +30 -82
  327. package/dist/zod/RpcSchema.js.map +1 -1
  328. package/dist/zod/Signature.d.ts +6 -0
  329. package/dist/zod/Signature.d.ts.map +1 -1
  330. package/dist/zod/Signature.js +9 -1
  331. package/dist/zod/Signature.js.map +1 -1
  332. package/dist/zod/Solidity.d.ts +15 -0
  333. package/dist/zod/Solidity.d.ts.map +1 -0
  334. package/dist/zod/Solidity.js +41 -0
  335. package/dist/zod/Solidity.js.map +1 -0
  336. package/dist/zod/StateOverrides.d.ts +32 -0
  337. package/dist/zod/StateOverrides.d.ts.map +1 -1
  338. package/dist/zod/StateOverrides.js +25 -18
  339. package/dist/zod/StateOverrides.js.map +1 -1
  340. package/dist/zod/Transaction.d.ts +312 -0
  341. package/dist/zod/Transaction.d.ts.map +1 -1
  342. package/dist/zod/Transaction.js +138 -93
  343. package/dist/zod/Transaction.js.map +1 -1
  344. package/dist/zod/TransactionEnvelope.d.ts +222 -0
  345. package/dist/zod/TransactionEnvelope.d.ts.map +1 -1
  346. package/dist/zod/TransactionEnvelope.js +19 -3
  347. package/dist/zod/TransactionEnvelope.js.map +1 -1
  348. package/dist/zod/TransactionReceipt.d.ts +32 -1
  349. package/dist/zod/TransactionReceipt.d.ts.map +1 -1
  350. package/dist/zod/TransactionReceipt.js +24 -19
  351. package/dist/zod/TransactionReceipt.js.map +1 -1
  352. package/dist/zod/TransactionRequest.d.ts +34 -0
  353. package/dist/zod/TransactionRequest.d.ts.map +1 -1
  354. package/dist/zod/TransactionRequest.js +28 -23
  355. package/dist/zod/TransactionRequest.js.map +1 -1
  356. package/dist/zod/TxEnvelopeEip1559.d.ts +44 -0
  357. package/dist/zod/TxEnvelopeEip1559.d.ts.map +1 -1
  358. package/dist/zod/TxEnvelopeEip1559.js +23 -14
  359. package/dist/zod/TxEnvelopeEip1559.js.map +1 -1
  360. package/dist/zod/TxEnvelopeEip2930.d.ts +42 -0
  361. package/dist/zod/TxEnvelopeEip2930.d.ts.map +1 -1
  362. package/dist/zod/TxEnvelopeEip2930.js +21 -12
  363. package/dist/zod/TxEnvelopeEip2930.js.map +1 -1
  364. package/dist/zod/TxEnvelopeEip4844.d.ts +58 -0
  365. package/dist/zod/TxEnvelopeEip4844.d.ts.map +1 -1
  366. package/dist/zod/TxEnvelopeEip4844.js +29 -20
  367. package/dist/zod/TxEnvelopeEip4844.js.map +1 -1
  368. package/dist/zod/TxEnvelopeEip7702.d.ts +60 -0
  369. package/dist/zod/TxEnvelopeEip7702.d.ts.map +1 -1
  370. package/dist/zod/TxEnvelopeEip7702.js +25 -16
  371. package/dist/zod/TxEnvelopeEip7702.js.map +1 -1
  372. package/dist/zod/TxEnvelopeLegacy.d.ts +34 -0
  373. package/dist/zod/TxEnvelopeLegacy.d.ts.map +1 -1
  374. package/dist/zod/TxEnvelopeLegacy.js +19 -10
  375. package/dist/zod/TxEnvelopeLegacy.js.map +1 -1
  376. package/dist/zod/TypedData.d.ts +226 -0
  377. package/dist/zod/TypedData.d.ts.map +1 -0
  378. package/dist/zod/TypedData.js +84 -0
  379. package/dist/zod/TypedData.js.map +1 -0
  380. package/dist/zod/Uint.d.ts +4 -0
  381. package/dist/zod/Uint.d.ts.map +1 -1
  382. package/dist/zod/Uint.js +14 -1
  383. package/dist/zod/Uint.js.map +1 -1
  384. package/dist/zod/Withdrawal.d.ts +7 -0
  385. package/dist/zod/Withdrawal.d.ts.map +1 -1
  386. package/dist/zod/Withdrawal.js +11 -6
  387. package/dist/zod/Withdrawal.js.map +1 -1
  388. package/dist/zod/internal/Integer.d.ts +15 -0
  389. package/dist/zod/internal/Integer.d.ts.map +1 -1
  390. package/dist/zod/internal/Integer.js +39 -0
  391. package/dist/zod/internal/Integer.js.map +1 -1
  392. package/dist/zod/internal/TransactionEnvelope.d.ts +38 -28
  393. package/dist/zod/internal/TransactionEnvelope.d.ts.map +1 -1
  394. package/dist/zod/internal/TransactionEnvelope.js +22 -15
  395. package/dist/zod/internal/TransactionEnvelope.js.map +1 -1
  396. package/dist/zod/internal/rpcSchemas/Eth.d.ts +260 -123
  397. package/dist/zod/internal/rpcSchemas/Eth.d.ts.map +1 -1
  398. package/dist/zod/internal/rpcSchemas/Eth.js +17 -6
  399. package/dist/zod/internal/rpcSchemas/Eth.js.map +1 -1
  400. package/dist/zod/internal/rpcSchemas/Wallet.d.ts +1 -1
  401. package/dist/zod/tempo/AuthorizationTempo.d.ts +405 -12
  402. package/dist/zod/tempo/AuthorizationTempo.d.ts.map +1 -1
  403. package/dist/zod/tempo/AuthorizationTempo.js +20 -0
  404. package/dist/zod/tempo/AuthorizationTempo.js.map +1 -1
  405. package/dist/zod/tempo/KeyAuthorization.d.ts +838 -69
  406. package/dist/zod/tempo/KeyAuthorization.d.ts.map +1 -1
  407. package/dist/zod/tempo/KeyAuthorization.js +49 -8
  408. package/dist/zod/tempo/KeyAuthorization.js.map +1 -1
  409. package/dist/zod/tempo/RpcSchemaTempo.d.ts +218 -36
  410. package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
  411. package/dist/zod/tempo/SignatureEnvelope.d.ts +0 -6
  412. package/dist/zod/tempo/SignatureEnvelope.d.ts.map +1 -1
  413. package/dist/zod/tempo/SignatureEnvelope.js +0 -2
  414. package/dist/zod/tempo/SignatureEnvelope.js.map +1 -1
  415. package/dist/zod/tempo/Transaction.d.ts +2203 -192
  416. package/dist/zod/tempo/Transaction.d.ts.map +1 -1
  417. package/dist/zod/tempo/Transaction.js +113 -33
  418. package/dist/zod/tempo/Transaction.js.map +1 -1
  419. package/dist/zod/tempo/TransactionReceipt.d.ts +34 -1
  420. package/dist/zod/tempo/TransactionReceipt.d.ts.map +1 -1
  421. package/dist/zod/tempo/TransactionReceipt.js +26 -21
  422. package/dist/zod/tempo/TransactionReceipt.js.map +1 -1
  423. package/dist/zod/tempo/TransactionRequest.d.ts +1049 -57
  424. package/dist/zod/tempo/TransactionRequest.d.ts.map +1 -1
  425. package/dist/zod/tempo/TransactionRequest.js +141 -26
  426. package/dist/zod/tempo/TransactionRequest.js.map +1 -1
  427. package/dist/zod/tempo/TxEnvelopeTempo.d.ts +225 -18
  428. package/dist/zod/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  429. package/dist/zod/tempo/TxEnvelopeTempo.js +1 -1
  430. package/dist/zod/tempo/TxEnvelopeTempo.js.map +1 -1
  431. package/dist/zod/tempo/ZoneRpcAuthentication.d.ts +0 -3
  432. package/dist/zod/tempo/ZoneRpcAuthentication.d.ts.map +1 -1
  433. package/dist/zod/tempo/z.d.ts +0 -1
  434. package/dist/zod/tempo/z.d.ts.map +1 -1
  435. package/dist/zod/tempo/z.js +0 -1
  436. package/dist/zod/tempo/z.js.map +1 -1
  437. package/dist/zod/z.d.ts +15 -3
  438. package/dist/zod/z.d.ts.map +1 -1
  439. package/dist/zod/z.js +15 -3
  440. package/dist/zod/z.js.map +1 -1
  441. package/package.json +66 -11
  442. package/src/CHANGELOG.md +18 -0
  443. package/src/core/Abi.bench.ts +30 -0
  444. package/src/core/Abi.ts +13 -4
  445. package/src/core/AbiConstructor.ts +3 -2
  446. package/src/core/AbiError.ts +6 -2
  447. package/src/core/AbiEvent.ts +6 -2
  448. package/src/core/AbiFunction.ts +6 -2
  449. package/src/core/AbiItem.bench.ts +19 -0
  450. package/src/core/AbiItem.ts +20 -10
  451. package/src/core/AbiParameter.bench.ts +35 -0
  452. package/src/core/AbiParameter.ts +126 -0
  453. package/src/core/AbiParameters.bench.ts +22 -0
  454. package/src/core/AbiParameters.ts +77 -8
  455. package/src/core/AccountProof.ts +7 -4
  456. package/src/core/Authorization.ts +11 -4
  457. package/src/core/Block.ts +24 -13
  458. package/src/core/BlockOverrides.ts +18 -13
  459. package/src/core/Filter.ts +8 -5
  460. package/src/core/Log.ts +10 -6
  461. package/src/core/Rlp.ts +66 -3
  462. package/src/core/RpcSchema.ts +2 -2
  463. package/src/core/Signature.ts +6 -2
  464. package/src/core/StateOverrides.ts +10 -5
  465. package/src/core/Transaction.ts +37 -26
  466. package/src/core/TransactionReceipt.ts +17 -8
  467. package/src/core/TransactionRequest.ts +21 -11
  468. package/src/core/TxEnvelope.ts +9 -2
  469. package/src/core/TxEnvelopeEip1559.ts +21 -12
  470. package/src/core/TxEnvelopeEip2930.ts +17 -10
  471. package/src/core/TxEnvelopeEip4844.ts +25 -14
  472. package/src/core/TxEnvelopeEip7702.ts +21 -12
  473. package/src/core/TxEnvelopeLegacy.ts +20 -9
  474. package/src/core/Withdrawal.ts +9 -5
  475. package/src/core/_test/Abi.test.ts +4 -0
  476. package/src/core/_test/AbiItem.test.ts +3 -0
  477. package/src/core/_test/AbiParameter.test-d.ts +41 -0
  478. package/src/core/_test/AbiParameter.test.ts +84 -0
  479. package/src/core/_test/AbiParameters.decode.test.ts +88 -12
  480. package/src/core/_test/AbiParameters.encode.test.ts +68 -0
  481. package/src/core/_test/AbiParameters.test.ts +7 -0
  482. package/src/core/_test/AccountProof.test.ts +56 -0
  483. package/src/core/_test/Authorization.test.ts +29 -0
  484. package/src/core/_test/Block.test.ts +98 -0
  485. package/src/core/_test/BlockOverrides.test.ts +50 -0
  486. package/src/core/_test/Filter.test.ts +32 -0
  487. package/src/core/_test/Log.test.ts +42 -0
  488. package/src/core/_test/Rlp.test.ts +101 -0
  489. package/src/core/_test/RpcSchema.test-d.ts +12 -0
  490. package/src/core/_test/Signature.test.ts +14 -0
  491. package/src/core/_test/StateOverrides.test.ts +51 -0
  492. package/src/core/_test/Transaction.test.ts +64 -0
  493. package/src/core/_test/TransactionEnvelopeEip1559.test.ts +41 -0
  494. package/src/core/_test/TransactionEnvelopeEip2930.test.ts +38 -0
  495. package/src/core/_test/TransactionEnvelopeEip4844.test.ts +47 -0
  496. package/src/core/_test/TransactionEnvelopeEip7702.test.ts +71 -0
  497. package/src/core/_test/TransactionEnvelopeLegacy.test.ts +38 -0
  498. package/src/core/_test/TransactionReceipt.test.ts +54 -0
  499. package/src/core/_test/Withdrawal.test.ts +33 -0
  500. package/src/core/_test/index.test.ts +1 -0
  501. package/src/core/internal/abiParameters.ts +21 -3
  502. package/src/core/internal/human-readable/_snap/formatAbi.test.ts.snap +74 -0
  503. package/src/core/internal/human-readable/_snap/parseAbi.test.ts.snap +2353 -0
  504. package/src/core/internal/human-readable/errors.test.ts +258 -0
  505. package/src/core/internal/human-readable/errors.ts +205 -0
  506. package/src/core/internal/human-readable/formatAbi.test-d.ts +144 -0
  507. package/src/core/internal/human-readable/formatAbi.test.ts +23 -0
  508. package/src/core/internal/human-readable/formatAbi.ts +37 -0
  509. package/src/core/internal/human-readable/formatAbiItem.test-d.ts +115 -0
  510. package/src/core/internal/human-readable/formatAbiItem.test.ts +102 -0
  511. package/src/core/internal/human-readable/formatAbiItem.ts +136 -0
  512. package/src/core/internal/human-readable/formatAbiParameter.test-d.ts +125 -0
  513. package/src/core/internal/human-readable/formatAbiParameter.test.ts +126 -0
  514. package/src/core/internal/human-readable/formatAbiParameter.ts +86 -0
  515. package/src/core/internal/human-readable/formatAbiParameters.test-d.ts +92 -0
  516. package/src/core/internal/human-readable/formatAbiParameters.test.ts +32 -0
  517. package/src/core/internal/human-readable/formatAbiParameters.ts +46 -0
  518. package/src/core/internal/human-readable/human-readable.bench-d.ts +58 -0
  519. package/src/core/internal/human-readable/integration.test.ts +68 -0
  520. package/src/core/internal/human-readable/parseAbi.test-d.ts +188 -0
  521. package/src/core/internal/human-readable/parseAbi.test.ts +82 -0
  522. package/src/core/internal/human-readable/parseAbi.ts +59 -0
  523. package/src/core/internal/human-readable/parseAbiItem.test-d.ts +183 -0
  524. package/src/core/internal/human-readable/parseAbiItem.test.ts +264 -0
  525. package/src/core/internal/human-readable/parseAbiItem.ts +91 -0
  526. package/src/core/internal/human-readable/parseAbiParameter.test-d.ts +68 -0
  527. package/src/core/internal/human-readable/parseAbiParameter.test.ts +207 -0
  528. package/src/core/internal/human-readable/parseAbiParameter.ts +95 -0
  529. package/src/core/internal/human-readable/parseAbiParameters.test-d.ts +160 -0
  530. package/src/core/internal/human-readable/parseAbiParameters.test.ts +80 -0
  531. package/src/core/internal/human-readable/parseAbiParameters.ts +123 -0
  532. package/src/core/internal/human-readable/regex.ts +15 -0
  533. package/src/core/internal/human-readable/runtime/cache.ts +96 -0
  534. package/src/core/internal/human-readable/runtime/signatures.test.ts +236 -0
  535. package/src/core/internal/human-readable/runtime/signatures.ts +106 -0
  536. package/src/core/internal/human-readable/runtime/structs.test.ts +210 -0
  537. package/src/core/internal/human-readable/runtime/structs.ts +97 -0
  538. package/src/core/internal/human-readable/runtime/utils.test.ts +717 -0
  539. package/src/core/internal/human-readable/runtime/utils.ts +344 -0
  540. package/src/core/internal/human-readable/types/signatures.test-d.ts +255 -0
  541. package/src/core/internal/human-readable/types/signatures.ts +369 -0
  542. package/src/core/internal/human-readable/types/structs.test-d.ts +221 -0
  543. package/src/core/internal/human-readable/types/structs.ts +88 -0
  544. package/src/core/internal/human-readable/types/utils.test-d.ts +1029 -0
  545. package/src/core/internal/human-readable/types/utils.ts +392 -0
  546. package/src/core/internal/human-readable/types.ts +69 -0
  547. package/src/core/internal/quantity.ts +29 -0
  548. package/src/core/internal/rpcSchemas/eth.ts +76 -10
  549. package/src/erc4337/UserOperation.ts +26 -11
  550. package/src/erc4337/UserOperationGas.ts +19 -8
  551. package/src/erc4337/UserOperationReceipt.ts +14 -4
  552. package/src/index.ts +38 -0
  553. package/src/tempo/AuthorizationTempo.ts +11 -4
  554. package/src/tempo/Channel.test.ts +2 -23
  555. package/src/tempo/Channel.ts +10 -22
  556. package/src/tempo/KeyAuthorization.test.ts +22 -0
  557. package/src/tempo/KeyAuthorization.ts +20 -14
  558. package/src/tempo/MultisigConfig.test.ts +54 -37
  559. package/src/tempo/MultisigConfig.ts +59 -134
  560. package/src/tempo/PoolId.test.ts +7 -41
  561. package/src/tempo/PoolId.ts +15 -10
  562. package/src/tempo/RpcSchemaTempo.ts +1 -1
  563. package/src/tempo/SignatureEnvelope.test.ts +118 -17
  564. package/src/tempo/SignatureEnvelope.ts +81 -73
  565. package/src/tempo/Transaction.test.ts +0 -15
  566. package/src/tempo/Transaction.ts +78 -19
  567. package/src/tempo/TransactionReceipt.test.ts +76 -0
  568. package/src/tempo/TransactionReceipt.ts +19 -5
  569. package/src/tempo/TransactionRequest.test.ts +174 -1
  570. package/src/tempo/TransactionRequest.ts +98 -39
  571. package/src/tempo/TxEnvelopeTempo.test.ts +2 -2
  572. package/src/tempo/TxEnvelopeTempo.ts +7 -7
  573. package/src/tempo/e2e.test.ts +228 -50
  574. package/src/tempo/index.ts +6 -26
  575. package/src/version.ts +1 -1
  576. package/src/zod/Abi.ts +5 -0
  577. package/src/zod/AbiConstructor.ts +24 -0
  578. package/src/zod/AbiError.ts +9 -0
  579. package/src/zod/AbiEvent.ts +11 -0
  580. package/src/zod/AbiFallback.ts +22 -0
  581. package/src/zod/AbiFunction.ts +32 -0
  582. package/src/zod/AbiItem.ts +28 -0
  583. package/src/zod/AbiParameter.ts +36 -0
  584. package/src/zod/AbiParameters.ts +7 -0
  585. package/src/zod/AbiReceive.ts +7 -0
  586. package/src/zod/AccountProof.ts +36 -14
  587. package/src/zod/Authorization.ts +65 -18
  588. package/src/zod/BigInt.ts +12 -1
  589. package/src/zod/Block.ts +68 -26
  590. package/src/zod/BlockOverrides.ts +24 -10
  591. package/src/zod/Filter.ts +26 -21
  592. package/src/zod/Log.ts +23 -13
  593. package/src/zod/Number.ts +12 -1
  594. package/src/zod/RpcSchema.ts +123 -29
  595. package/src/zod/Signature.ts +18 -3
  596. package/src/zod/Solidity.ts +83 -0
  597. package/src/zod/StateOverrides.ts +31 -19
  598. package/src/zod/Transaction.ts +254 -101
  599. package/src/zod/TransactionEnvelope.ts +27 -3
  600. package/src/zod/TransactionReceipt.ts +34 -19
  601. package/src/zod/TransactionRequest.ts +42 -23
  602. package/src/zod/TxEnvelopeEip1559.ts +34 -13
  603. package/src/zod/TxEnvelopeEip2930.ts +32 -11
  604. package/src/zod/TxEnvelopeEip4844.ts +40 -19
  605. package/src/zod/TxEnvelopeEip7702.ts +46 -15
  606. package/src/zod/TxEnvelopeLegacy.ts +30 -9
  607. package/src/zod/TypedData.ts +111 -0
  608. package/src/zod/Uint.ts +19 -0
  609. package/src/zod/Withdrawal.ts +18 -6
  610. package/src/zod/_test/Abi.test-d.ts +46 -0
  611. package/src/zod/_test/Abi.test.ts +163 -0
  612. package/src/zod/_test/AccountProof.test.ts +32 -0
  613. package/src/zod/_test/Authorization.test.ts +42 -0
  614. package/src/zod/_test/BigInt.test.ts +9 -1
  615. package/src/zod/_test/Block.test.ts +54 -0
  616. package/src/zod/_test/BlockOverrides.test.ts +35 -0
  617. package/src/zod/_test/Filter.test.ts +34 -0
  618. package/src/zod/_test/Log.test.ts +49 -0
  619. package/src/zod/_test/Number.test.ts +8 -1
  620. package/src/zod/_test/RpcSchema.test-d.ts +46 -0
  621. package/src/zod/_test/RpcSchema.test.ts +70 -0
  622. package/src/zod/_test/Signature.test.ts +10 -0
  623. package/src/zod/_test/StateOverrides.test.ts +26 -0
  624. package/src/zod/_test/Transaction.test.ts +30 -0
  625. package/src/zod/_test/TransactionEnvelope.test.ts +34 -0
  626. package/src/zod/_test/TransactionReceipt.test.ts +45 -1
  627. package/src/zod/_test/TransactionRequest.test.ts +31 -0
  628. package/src/zod/_test/TxEnvelope.test.ts +32 -0
  629. package/src/zod/_test/TypedData.test-d.ts +20 -0
  630. package/src/zod/_test/TypedData.test.ts +87 -0
  631. package/src/zod/_test/Uint.test.ts +15 -0
  632. package/src/zod/_test/Withdrawal.test.ts +35 -0
  633. package/src/zod/_test/z.test-d.ts +6 -0
  634. package/src/zod/_test/z.test.ts +17 -0
  635. package/src/zod/internal/Integer.ts +58 -0
  636. package/src/zod/internal/TransactionEnvelope.ts +33 -17
  637. package/src/zod/internal/rpcSchemas/Eth.ts +20 -6
  638. package/src/zod/tempo/AuthorizationTempo.ts +25 -0
  639. package/src/zod/tempo/KeyAuthorization.ts +58 -8
  640. package/src/zod/tempo/SignatureEnvelope.ts +0 -2
  641. package/src/zod/tempo/Transaction.ts +148 -33
  642. package/src/zod/tempo/TransactionReceipt.ts +36 -21
  643. package/src/zod/tempo/TransactionRequest.ts +154 -28
  644. package/src/zod/tempo/TxEnvelopeTempo.ts +1 -1
  645. package/src/zod/tempo/_test/AuthorizationTempo.test.ts +24 -0
  646. package/src/zod/tempo/_test/KeyAuthorization.test.ts +85 -0
  647. package/src/zod/tempo/_test/SignatureEnvelope.test.ts +0 -2
  648. package/src/zod/tempo/_test/Transaction.test.ts +178 -0
  649. package/src/zod/tempo/_test/TransactionReceipt.test.ts +26 -0
  650. package/src/zod/tempo/_test/TransactionRequest.test.ts +73 -0
  651. package/src/zod/tempo/z.ts +0 -1
  652. package/src/zod/z.ts +16 -2
  653. package/dist/tempo/TokenId.d.ts +0 -87
  654. package/dist/tempo/TokenId.d.ts.map +0 -1
  655. package/dist/tempo/TokenId.js +0 -123
  656. package/dist/tempo/TokenId.js.map +0 -1
  657. package/dist/zod/tempo/TokenId.d.ts +0 -6
  658. package/dist/zod/tempo/TokenId.d.ts.map +0 -1
  659. package/dist/zod/tempo/TokenId.js +0 -14
  660. package/dist/zod/tempo/TokenId.js.map +0 -1
  661. package/src/tempo/TokenId.bench.ts +0 -36
  662. package/src/tempo/TokenId.test.ts +0 -79
  663. package/src/tempo/TokenId.ts +0 -141
  664. package/src/zod/tempo/TokenId.ts +0 -15
  665. package/src/zod/tempo/_test/TokenId.test-d.ts +0 -17
  666. package/src/zod/tempo/_test/TokenId.test.ts +0 -21
@@ -4,6 +4,7 @@ import * as Authorization from '../core/Authorization.js'
4
4
  import type * as Errors from '../core/Errors.js'
5
5
  import * as Hash from '../core/Hash.js'
6
6
  import * as Hex from '../core/Hex.js'
7
+ import * as Quantity from '../core/internal/quantity.js'
7
8
  import type { Assign, Compute, OneOf } from '../core/internal/types.js'
8
9
  import * as Signature from '../core/Signature.js'
9
10
  import * as TypedData from '../core/TypedData.js'
@@ -887,17 +888,23 @@ export declare namespace fromPacked {
887
888
  * @param userOperation - The user operation to convert.
888
889
  * @returns An RPC-formatted user operation.
889
890
  */
890
- export function toRpc(userOperation: UserOperation): Rpc {
891
+ export function toRpc(userOperation: toRpc.Input): Rpc {
891
892
  const rpc = {} as Rpc
892
893
 
893
894
  rpc.callData = userOperation.callData
894
- rpc.callGasLimit = Hex.fromNumber(userOperation.callGasLimit)
895
- rpc.maxFeePerGas = Hex.fromNumber(userOperation.maxFeePerGas)
896
- rpc.maxPriorityFeePerGas = Hex.fromNumber(userOperation.maxPriorityFeePerGas)
897
- rpc.nonce = Hex.fromNumber(userOperation.nonce)
898
- rpc.preVerificationGas = Hex.fromNumber(userOperation.preVerificationGas)
895
+ rpc.callGasLimit = Quantity.fromNumberish(userOperation.callGasLimit)
896
+ rpc.maxFeePerGas = Quantity.fromNumberish(userOperation.maxFeePerGas)
897
+ rpc.maxPriorityFeePerGas = Quantity.fromNumberish(
898
+ userOperation.maxPriorityFeePerGas,
899
+ )
900
+ rpc.nonce = Quantity.fromNumberish(userOperation.nonce)
901
+ rpc.preVerificationGas = Quantity.fromNumberish(
902
+ userOperation.preVerificationGas,
903
+ )
899
904
  rpc.sender = userOperation.sender
900
- rpc.verificationGasLimit = Hex.fromNumber(userOperation.verificationGasLimit)
905
+ rpc.verificationGasLimit = Quantity.fromNumberish(
906
+ userOperation.verificationGasLimit,
907
+ )
901
908
 
902
909
  if (userOperation.factory) rpc.factory = userOperation.factory
903
910
  if (userOperation.factoryData) rpc.factoryData = userOperation.factoryData
@@ -905,12 +912,12 @@ export function toRpc(userOperation: UserOperation): Rpc {
905
912
  if (userOperation.paymaster) rpc.paymaster = userOperation.paymaster
906
913
  if (userOperation.paymasterData)
907
914
  rpc.paymasterData = userOperation.paymasterData
908
- if (typeof userOperation.paymasterPostOpGasLimit === 'bigint')
909
- rpc.paymasterPostOpGasLimit = Hex.fromNumber(
915
+ if (userOperation.paymasterPostOpGasLimit !== undefined)
916
+ rpc.paymasterPostOpGasLimit = Quantity.fromNumberish(
910
917
  userOperation.paymasterPostOpGasLimit,
911
918
  )
912
- if (typeof userOperation.paymasterVerificationGasLimit === 'bigint')
913
- rpc.paymasterVerificationGasLimit = Hex.fromNumber(
919
+ if (userOperation.paymasterVerificationGasLimit !== undefined)
920
+ rpc.paymasterVerificationGasLimit = Quantity.fromNumberish(
914
921
  userOperation.paymasterVerificationGasLimit,
915
922
  )
916
923
  if (userOperation.signature) rpc.signature = userOperation.signature
@@ -926,6 +933,14 @@ export function toRpc(userOperation: UserOperation): Rpc {
926
933
  }
927
934
 
928
935
  export declare namespace toRpc {
936
+ /** Numberish input accepted by {@link ox#UserOperation.(toRpc:function)}. */
937
+ export type Input = UserOperation<
938
+ EntryPoint.Version,
939
+ boolean,
940
+ Hex.Hex | bigint | number,
941
+ Hex.Hex | number
942
+ >
943
+
929
944
  export type ErrorType = Hex.fromNumber.ErrorType | Errors.GlobalErrorType
930
945
  }
931
946
 
@@ -1,4 +1,5 @@
1
1
  import * as Hex from '../core/Hex.js'
2
+ import * as Quantity from '../core/internal/quantity.js'
2
3
  import type { OneOf } from '../core/internal/types.js'
3
4
  import type * as EntryPoint from './EntryPoint.js'
4
5
 
@@ -94,23 +95,33 @@ export function fromRpc(rpc: Rpc): UserOperationGas {
94
95
  * @param userOperationGas - The user operation gas to convert.
95
96
  * @returns An RPC-formatted user operation gas.
96
97
  */
97
- export function toRpc(userOperationGas: UserOperationGas): Rpc {
98
+ export function toRpc(userOperationGas: toRpc.Input): Rpc {
98
99
  const rpc = {} as Rpc
99
100
 
100
- rpc.callGasLimit = Hex.fromNumber(userOperationGas.callGasLimit)
101
- rpc.preVerificationGas = Hex.fromNumber(userOperationGas.preVerificationGas)
102
- rpc.verificationGasLimit = Hex.fromNumber(
101
+ rpc.callGasLimit = Quantity.fromNumberish(userOperationGas.callGasLimit)
102
+ rpc.preVerificationGas = Quantity.fromNumberish(
103
+ userOperationGas.preVerificationGas,
104
+ )
105
+ rpc.verificationGasLimit = Quantity.fromNumberish(
103
106
  userOperationGas.verificationGasLimit,
104
107
  )
105
108
 
106
- if (typeof userOperationGas.paymasterVerificationGasLimit === 'bigint')
107
- rpc.paymasterVerificationGasLimit = Hex.fromNumber(
109
+ if (userOperationGas.paymasterVerificationGasLimit !== undefined)
110
+ rpc.paymasterVerificationGasLimit = Quantity.fromNumberish(
108
111
  userOperationGas.paymasterVerificationGasLimit,
109
112
  )
110
- if (typeof userOperationGas.paymasterPostOpGasLimit === 'bigint')
111
- rpc.paymasterPostOpGasLimit = Hex.fromNumber(
113
+ if (userOperationGas.paymasterPostOpGasLimit !== undefined)
114
+ rpc.paymasterPostOpGasLimit = Quantity.fromNumberish(
112
115
  userOperationGas.paymasterPostOpGasLimit,
113
116
  )
114
117
 
115
118
  return rpc
116
119
  }
120
+
121
+ export declare namespace toRpc {
122
+ /** Numberish input accepted by {@link ox#UserOperationGas.(toRpc:function)}. */
123
+ export type Input = UserOperationGas<
124
+ EntryPoint.Version,
125
+ Hex.Hex | bigint | number
126
+ >
127
+ }
@@ -1,5 +1,6 @@
1
1
  import type * as Address from '../core/Address.js'
2
2
  import * as Hex from '../core/Hex.js'
3
+ import * as Quantity from '../core/internal/quantity.js'
3
4
  import * as Log from '../core/Log.js'
4
5
  import * as TransactionReceipt from '../core/TransactionReceipt.js'
5
6
  import type * as EntryPoint from './EntryPoint.js'
@@ -118,14 +119,14 @@ export function fromRpc(rpc: Rpc): UserOperationReceipt {
118
119
  * @param userOperationReceipt - The user operation receipt to convert.
119
120
  * @returns An RPC-formatted user operation receipt.
120
121
  */
121
- export function toRpc(userOperationReceipt: UserOperationReceipt): Rpc {
122
+ export function toRpc(userOperationReceipt: toRpc.Input): Rpc {
122
123
  const rpc = {} as Rpc
123
124
 
124
- rpc.actualGasCost = Hex.fromNumber(userOperationReceipt.actualGasCost)
125
- rpc.actualGasUsed = Hex.fromNumber(userOperationReceipt.actualGasUsed)
125
+ rpc.actualGasCost = Quantity.fromNumberish(userOperationReceipt.actualGasCost)
126
+ rpc.actualGasUsed = Quantity.fromNumberish(userOperationReceipt.actualGasUsed)
126
127
  rpc.entryPoint = userOperationReceipt.entryPoint
127
128
  rpc.logs = userOperationReceipt.logs.map((log) => Log.toRpc(log))
128
- rpc.nonce = Hex.fromNumber(userOperationReceipt.nonce)
129
+ rpc.nonce = Quantity.fromNumberish(userOperationReceipt.nonce)
129
130
  rpc.receipt = TransactionReceipt.toRpc(userOperationReceipt.receipt)
130
131
  rpc.sender = userOperationReceipt.sender
131
132
  rpc.success = userOperationReceipt.success
@@ -137,3 +138,12 @@ export function toRpc(userOperationReceipt: UserOperationReceipt): Rpc {
137
138
 
138
139
  return rpc
139
140
  }
141
+
142
+ export declare namespace toRpc {
143
+ /** Numberish input accepted by {@link ox#UserOperationReceipt.(toRpc:function)}. */
144
+ export type Input = UserOperationReceipt<
145
+ EntryPoint.Version,
146
+ Hex.Hex | bigint | number,
147
+ Hex.Hex | number
148
+ >
149
+ }
package/src/index.ts CHANGED
@@ -455,6 +455,44 @@ export * as AbiFunction from './core/AbiFunction.js'
455
455
  */
456
456
  export * as AbiItem from './core/AbiItem.js'
457
457
 
458
+ /**
459
+ * Utilities & types for working with a single [ABI Parameter](https://docs.soliditylang.org/en/latest/abi-spec.html#types).
460
+ *
461
+ * @example
462
+ * ### Instantiating Human Readable ABI Parameters
463
+ *
464
+ * A Human Readable ABI Parameter can be instantiated by using {@link ox#AbiParameter.(from:function)}:
465
+ *
466
+ * ```ts twoslash
467
+ * import { AbiParameter } from 'ox'
468
+ *
469
+ * const parameter = AbiParameter.from('address spender')
470
+ *
471
+ * parameter
472
+ * //^?
473
+ * ```
474
+ *
475
+ * @example
476
+ * ### Formatting ABI Parameters
477
+ *
478
+ * An ABI Parameter can be formatted into a human-readable ABI Parameter by using {@link ox#AbiParameter.(format:function)}:
479
+ *
480
+ * ```ts twoslash
481
+ * import { AbiParameter } from 'ox'
482
+ *
483
+ * const formatted = AbiParameter.format({
484
+ * name: 'spender',
485
+ * type: 'address'
486
+ * })
487
+ *
488
+ * formatted
489
+ * // ^?
490
+ * ```
491
+ *
492
+ * @category ABI
493
+ */
494
+ export * as AbiParameter from './core/AbiParameter.js'
495
+
458
496
  /**
459
497
  * Utilities & types for encoding, decoding, and working with [ABI Parameters](https://docs.soliditylang.org/en/latest/abi-spec.html#types)
460
498
  *
@@ -2,6 +2,7 @@ import type * as Address from '../core/Address.js'
2
2
  import type * as Errors from '../core/Errors.js'
3
3
  import * as Hash from '../core/Hash.js'
4
4
  import * as Hex from '../core/Hex.js'
5
+ import * as Quantity from '../core/internal/quantity.js'
5
6
  import type { Compute, Mutable } from '../core/internal/types.js'
6
7
  import * as Rlp from '../core/Rlp.js'
7
8
  import * as SignatureEnvelope from './SignatureEnvelope.js'
@@ -782,18 +783,21 @@ export declare namespace hash {
782
783
  * @param authorization - An AA Authorization.
783
784
  * @returns An RPC-formatted AA Authorization.
784
785
  */
785
- export function toRpc(authorization: Signed): Rpc {
786
+ export function toRpc(authorization: toRpc.Input): Rpc {
786
787
  const { address, chainId, nonce, signature } = authorization
787
788
 
788
789
  return {
789
790
  address,
790
- chainId: Hex.fromNumber(chainId),
791
- nonce: Hex.fromNumber(nonce),
791
+ chainId: Quantity.fromNumberish(chainId),
792
+ nonce: Quantity.fromNumberish(nonce),
792
793
  signature: SignatureEnvelope.toRpc(signature),
793
794
  }
794
795
  }
795
796
 
796
797
  export declare namespace toRpc {
798
+ /** Numberish input accepted by {@link ox#AuthorizationTempo.(toRpc:function)}. */
799
+ type Input = Signed<Hex.Hex | bigint | number, Hex.Hex | number>
800
+
797
801
  type ErrorType = Errors.GlobalErrorType
798
802
  }
799
803
 
@@ -824,11 +828,14 @@ export declare namespace toRpc {
824
828
  * @param authorizationList - An AA Authorization List.
825
829
  * @returns An RPC-formatted AA Authorization List.
826
830
  */
827
- export function toRpcList(authorizationList: ListSigned): ListRpc {
831
+ export function toRpcList(authorizationList: toRpcList.Input): ListRpc {
828
832
  return authorizationList.map((x) => toRpc(x as unknown as Signed)) as never
829
833
  }
830
834
 
831
835
  export declare namespace toRpcList {
836
+ /** Numberish input accepted by {@link ox#AuthorizationTempo.(toRpcList:function)}. */
837
+ type Input = ListSigned<Hex.Hex | bigint | number, Hex.Hex | number>
838
+
832
839
  type ErrorType = Errors.GlobalErrorType
833
840
  }
834
841
 
@@ -10,7 +10,7 @@ const channel = {
10
10
  payee: '0x2222222222222222222222222222222222222222',
11
11
  payer: '0x1111111111111111111111111111111111111111',
12
12
  salt: '0x0000000000000000000000000000000000000000000000000000000000000001',
13
- token: 1n,
13
+ token: '0x20c0000000000000000000000000000000000001',
14
14
  } as const
15
15
 
16
16
  const chainId = 4217
@@ -84,26 +84,6 @@ describe('from', () => {
84
84
  `)
85
85
  })
86
86
 
87
- test('token address input', () => {
88
- expect(
89
- Channel.from({
90
- ...channel,
91
- operator: '0x4444444444444444444444444444444444444444',
92
- token: '0x20c0000000000000000000000000000000000001',
93
- }),
94
- ).toMatchInlineSnapshot(`
95
- {
96
- "authorizedSigner": "0x3333333333333333333333333333333333333333",
97
- "expiringNonceHash": "0x0000000000000000000000000000000000000000000000000000000000000002",
98
- "operator": "0x4444444444444444444444444444444444444444",
99
- "payee": "0x2222222222222222222222222222222222222222",
100
- "payer": "0x1111111111111111111111111111111111111111",
101
- "salt": "0x0000000000000000000000000000000000000000000000000000000000000001",
102
- "token": "0x20c0000000000000000000000000000000000001",
103
- }
104
- `)
105
- })
106
-
107
87
  test('return type', () => {
108
88
  const resolved = Channel.from({
109
89
  expiringNonceHash:
@@ -111,10 +91,9 @@ describe('from', () => {
111
91
  payee: '0x2222222222222222222222222222222222222222',
112
92
  payer: '0x1111111111111111111111111111111111111111',
113
93
  salt: '0x0000000000000000000000000000000000000000000000000000000000000001',
114
- token: 1n,
94
+ token: '0x20c0000000000000000000000000000000000001',
115
95
  })
116
96
 
117
- resolved satisfies Channel.Resolved
118
97
  resolved satisfies Channel.Channel
119
98
  resolved.payer satisfies Address.Address
120
99
  resolved.token satisfies Address.Address
@@ -3,7 +3,6 @@ import * as Address from '../core/Address.js'
3
3
  import type * as Errors from '../core/Errors.js'
4
4
  import * as Hash from '../core/Hash.js'
5
5
  import * as Hex from '../core/Hex.js'
6
- import * as TokenId from './TokenId.js'
7
6
 
8
7
  const channelIdParameters = AbiParameters.from(
9
8
  'address, address, address, address, bytes32, address, bytes32, address, uint256',
@@ -57,18 +56,14 @@ export type Channel = {
57
56
  payer: Address.Address
58
57
  /** User-supplied salt to distinguish otherwise identical channels. */
59
58
  salt: Hex.Hex
60
- /** TIP-20 token address or ID held by the channel. */
61
- token: TokenId.TokenIdOrAddress
59
+ /** TIP-20 token address held by the channel. */
60
+ token: Address.Address
62
61
  }
63
62
 
64
- /** Hex-address-normalized {@link ox#Channel.Channel}. */
65
- export type Resolved = Omit<Channel, 'token'> & { token: Address.Address }
66
-
67
63
  /**
68
64
  * Instantiates a TIP-20 channel reserve descriptor.
69
65
  *
70
- * Accepts a TIP-20 token ID or address, and defaults `operator` and
71
- * `authorizedSigner` to the zero address.
66
+ * Defaults `operator` and `authorizedSigner` to the zero address.
72
67
  *
73
68
  * @example
74
69
  * ```ts twoslash
@@ -80,7 +75,7 @@ export type Resolved = Omit<Channel, 'token'> & { token: Address.Address }
80
75
  * payee: '0x2222222222222222222222222222222222222222',
81
76
  * payer: '0x1111111111111111111111111111111111111111',
82
77
  * salt: '0x0000000000000000000000000000000000000000000000000000000000000001',
83
- * token: 1n
78
+ * token: '0x20c0000000000000000000000000000000000001'
84
79
  * })
85
80
  * ```
86
81
  *
@@ -105,10 +100,7 @@ export function from(value: from.Value): from.ReturnType {
105
100
  payee: resolveAddress(payee),
106
101
  payer: resolveAddress(payer),
107
102
  salt,
108
- token:
109
- typeof token === 'string'
110
- ? resolveAddress(token)
111
- : TokenId.toAddress(token),
103
+ token: resolveAddress(token),
112
104
  }
113
105
  }
114
106
 
@@ -126,17 +118,13 @@ export declare namespace from {
126
118
  payer: Address.Address
127
119
  /** User-supplied salt to distinguish otherwise identical channels. */
128
120
  salt: Hex.Hex
129
- /** TIP-20 token address or ID held by the channel. */
130
- token: TokenId.TokenIdOrAddress
121
+ /** TIP-20 token address held by the channel. */
122
+ token: Address.Address
131
123
  }
132
124
 
133
- type ReturnType = Resolved
125
+ type ReturnType = Channel
134
126
 
135
- type ErrorType =
136
- | Address.from.ErrorType
137
- | Hex.concat.ErrorType
138
- | Hex.fromNumber.ErrorType
139
- | Errors.GlobalErrorType
127
+ type ErrorType = Address.from.ErrorType | Errors.GlobalErrorType
140
128
  }
141
129
 
142
130
  /**
@@ -159,7 +147,7 @@ export declare namespace from {
159
147
  * payee: '0x2222222222222222222222222222222222222222',
160
148
  * payer: '0x1111111111111111111111111111111111111111',
161
149
  * salt: '0x0000000000000000000000000000000000000000000000000000000000000001',
162
- * token: 1n
150
+ * token: '0x20c0000000000000000000000000000000000001'
163
151
  * },
164
152
  * {
165
153
  * chainId: 4217
@@ -2407,6 +2407,28 @@ describe('admin keys (TIP-1049)', () => {
2407
2407
  expect(restored.account).toBe(account)
2408
2408
  })
2409
2409
 
2410
+ test('fromRpc: drops orphan isAdmin without account', () => {
2411
+ const authorization = KeyAuthorization.from(
2412
+ { address, chainId: 1n, type: 'secp256k1' },
2413
+ { signature: SignatureEnvelope.from(signature_secp256k1) },
2414
+ )
2415
+ const rpc = KeyAuthorization.toRpc(authorization)
2416
+ const restored = KeyAuthorization.fromRpc({ ...rpc, isAdmin: true })
2417
+ expect(restored.isAdmin).toBeUndefined()
2418
+ expect(restored.account).toBeUndefined()
2419
+ })
2420
+
2421
+ test('fromRpc: drops orphan account without isAdmin', () => {
2422
+ const authorization = KeyAuthorization.from(
2423
+ { address, chainId: 1n, type: 'secp256k1' },
2424
+ { signature: SignatureEnvelope.from(signature_secp256k1) },
2425
+ )
2426
+ const rpc = KeyAuthorization.toRpc(authorization)
2427
+ const restored = KeyAuthorization.fromRpc({ ...rpc, account })
2428
+ expect(restored.isAdmin).toBeUndefined()
2429
+ expect(restored.account).toBeUndefined()
2430
+ })
2431
+
2410
2432
  test('hash: changes when admin pair is added', () => {
2411
2433
  const plain = KeyAuthorization.from({
2412
2434
  address,
@@ -3,6 +3,7 @@ import type * as Address from '../core/Address.js'
3
3
  import type * as Errors from '../core/Errors.js'
4
4
  import * as Hash from '../core/Hash.js'
5
5
  import * as Hex from '../core/Hex.js'
6
+ import * as Quantity from '../core/internal/quantity.js'
6
7
  import type { Compute, OneOf } from '../core/internal/types.js'
7
8
  import * as Rlp from '../core/Rlp.js'
8
9
  import * as SignatureEnvelope from './SignatureEnvelope.js'
@@ -90,7 +91,7 @@ export type Rpc = {
90
91
  /** Optional account address binding (TIP-1049). */
91
92
  account?: Address.Address | null | undefined
92
93
  /** Allowed call scopes (node field: `allowedCalls`). */
93
- allowedCalls?: readonly RpcCallScope[] | undefined
94
+ allowedCalls?: readonly RpcCallScope[] | null | undefined
94
95
  /** Chain ID (hex quantity). */
95
96
  chainId: Hex.Hex
96
97
  /** Expiry timestamp (hex quantity or null). */
@@ -102,7 +103,7 @@ export type Rpc = {
102
103
  /** Key type. */
103
104
  keyType: SignatureEnvelope.Type
104
105
  /** Token spending limits. */
105
- limits?: readonly RpcTokenLimit[] | undefined
106
+ limits?: readonly RpcTokenLimit[] | null | undefined
106
107
  /** Signature envelope. */
107
108
  signature: SignatureEnvelope.SignatureEnvelopeRpc
108
109
  /** Optional 32-byte witness (hex). */
@@ -113,19 +114,19 @@ export type Rpc = {
113
114
  export type RpcTokenLimit = {
114
115
  token: Address.Address
115
116
  limit: Hex.Hex
116
- period?: Hex.Hex | undefined
117
+ period?: Hex.Hex | null | undefined
117
118
  }
118
119
 
119
120
  /** RPC representation of a call scope (matches node's `CallScope` serde). */
120
121
  export type RpcCallScope = {
121
122
  target: Address.Address
122
- selectorRules?: readonly RpcSelectorRule[]
123
+ selectorRules?: readonly RpcSelectorRule[] | null | undefined
123
124
  }
124
125
 
125
126
  /** RPC representation of a selector rule (matches node's `SelectorRule` serde). */
126
127
  export type RpcSelectorRule = {
127
128
  selector: Hex.Hex
128
- recipients?: readonly Address.Address[]
129
+ recipients?: readonly Address.Address[] | null | undefined
129
130
  }
130
131
 
131
132
  /** Signed representation of a Key Authorization. */
@@ -531,12 +532,13 @@ export function fromRpc(authorization: Rpc): Signed {
531
532
  })
532
533
  : undefined
533
534
 
534
- // TIP-1049 admin fields are paired: only emit both when both are present on
535
- // the wire. Orphan fields are dropped since the public API requires both.
535
+ // TIP-1049 admin fields are paired: emit both or neither; orphan wire
536
+ // fields are dropped. Separate conditional spreads break `Signed`
537
+ // assignability without `exactOptionalPropertyTypes` (#290).
536
538
  const adminPair =
537
539
  account !== undefined && isAdmin ? { account, isAdmin: true as const } : {}
538
540
 
539
- const args: KeyAuthorization = {
541
+ return {
540
542
  address: keyId,
541
543
  chainId: chainId === '0x' ? 0n : Hex.toBigInt(chainId),
542
544
  ...(expiry != null ? { expiry: Number(expiry) } : {}),
@@ -553,7 +555,6 @@ export function fromRpc(authorization: Rpc): Signed {
553
555
  ...(witness !== undefined ? { witness } : {}),
554
556
  ...adminPair,
555
557
  }
556
- return args as Signed
557
558
  }
558
559
 
559
560
  export declare namespace fromRpc {
@@ -914,7 +915,7 @@ export declare namespace serialize {
914
915
  * @param authorization - A Key Authorization.
915
916
  * @returns An RPC-formatted Key Authorization.
916
917
  */
917
- export function toRpc(authorization: Signed): Rpc {
918
+ export function toRpc(authorization: toRpc.Input): Rpc {
918
919
  const {
919
920
  address,
920
921
  scopes,
@@ -953,15 +954,17 @@ export function toRpc(authorization: Signed): Rpc {
953
954
  )
954
955
  })()
955
956
 
957
+ const chainIdHex = Quantity.fromNumberish(chainId)
958
+
956
959
  return {
957
- chainId: chainId === 0n ? '0x' : Hex.fromNumber(chainId),
958
- expiry: typeof expiry === 'number' ? Hex.fromNumber(expiry) : null,
960
+ chainId: chainIdHex === '0x0' ? '0x' : chainIdHex,
961
+ expiry: expiry != null ? Quantity.fromNumberish(expiry) : null,
959
962
  keyId: address,
960
963
  keyType: type,
961
964
  limits: limits?.map(({ token, limit, period }) => ({
962
965
  token,
963
- limit: Hex.fromNumber(limit),
964
- ...(period ? { period: numberToHex(period) } : {}),
966
+ limit: Quantity.fromNumberish(limit),
967
+ ...(period ? { period: Quantity.fromNumberish(period) } : {}),
965
968
  })),
966
969
  signature: SignatureEnvelope.toRpc(signature),
967
970
  ...(allowedCalls ? { allowedCalls } : {}),
@@ -972,6 +975,9 @@ export function toRpc(authorization: Signed): Rpc {
972
975
  }
973
976
 
974
977
  export declare namespace toRpc {
978
+ /** Numberish input accepted by {@link ox#KeyAuthorization.(toRpc:function)}. */
979
+ type Input = Signed<Hex.Hex | bigint | number, Hex.Hex | number>
980
+
975
981
  type ErrorType = Errors.GlobalErrorType
976
982
  }
977
983
 
@@ -30,31 +30,51 @@ describe('from', () => {
30
30
  })
31
31
  })
32
32
 
33
- describe('genesisConfigId', () => {
33
+ describe('getAddress', () => {
34
34
  test('matches independent ground truth', () => {
35
- expect(MultisigConfig.toId(singleOwnerConfig)).toMatchInlineSnapshot(
36
- `"0xd1f20e1a5bfdd89488f57f68db5bd1aae9a51b510f4a042b2604b57a0b7b471d"`,
35
+ expect(MultisigConfig.getAddress(singleOwnerConfig)).toMatchInlineSnapshot(
36
+ `"0x8820d1497eeaf4f68e00b2cfc00a2f3b1dbb00da"`,
37
37
  )
38
38
  })
39
39
 
40
+ test('matches independent ground truth (salt + weights)', () => {
41
+ expect(
42
+ MultisigConfig.getAddress({
43
+ salt: `0x${'42'.repeat(32)}`,
44
+ threshold: 2,
45
+ owners: [
46
+ { owner: owner1, weight: 1 },
47
+ { owner: owner2, weight: 2 },
48
+ ],
49
+ }),
50
+ ).toMatchInlineSnapshot(`"0x0773e28146400643e42cb28f6659b74e7c0b451d"`)
51
+ })
52
+
40
53
  test('is stable across calls', () => {
41
- expect(MultisigConfig.toId(singleOwnerConfig)).toBe(
42
- MultisigConfig.toId(singleOwnerConfig),
54
+ expect(MultisigConfig.getAddress(singleOwnerConfig)).toBe(
55
+ MultisigConfig.getAddress(singleOwnerConfig),
43
56
  )
44
57
  })
45
58
 
46
59
  test('differs for a different salt', () => {
47
- expect(MultisigConfig.toId(singleOwnerConfig)).not.toBe(
48
- MultisigConfig.toId({
60
+ expect(MultisigConfig.getAddress(singleOwnerConfig)).not.toBe(
61
+ MultisigConfig.getAddress({
49
62
  ...singleOwnerConfig,
50
63
  salt: `0x${'42'.repeat(32)}`,
51
64
  }),
52
65
  )
53
66
  })
54
67
 
68
+ test('address is chain-independent', () => {
69
+ // Derivation does not include chain ID; identical config → identical address.
70
+ const a = MultisigConfig.getAddress(singleOwnerConfig)
71
+ const b = MultisigConfig.getAddress(MultisigConfig.from(singleOwnerConfig))
72
+ expect(a).toBe(b)
73
+ })
74
+
55
75
  test('throws on invalid config', () => {
56
76
  expect(() =>
57
- MultisigConfig.toId({
77
+ MultisigConfig.getAddress({
58
78
  threshold: 5,
59
79
  owners: singleOwnerConfig.owners,
60
80
  }),
@@ -62,50 +82,27 @@ describe('genesisConfigId', () => {
62
82
  })
63
83
  })
64
84
 
65
- describe('getAddress', () => {
66
- test('matches independent ground truth', () => {
67
- expect(MultisigConfig.getAddress(singleOwnerConfig)).toMatchInlineSnapshot(
68
- `"0x6ca655065b1de473d903eebd50e5cb4996e10468"`,
69
- )
70
- })
71
-
72
- test('derives from positional config or `{ genesisConfigId }` identically', () => {
73
- const genesisConfigId = MultisigConfig.toId(singleOwnerConfig)
74
- expect(MultisigConfig.getAddress({ genesisConfigId })).toBe(
75
- MultisigConfig.getAddress(singleOwnerConfig),
76
- )
77
- })
78
-
79
- test('config ID and address are chain-independent', () => {
80
- // Derivation does not include chain ID; identical config → identical id/address.
81
- const a = MultisigConfig.toId(singleOwnerConfig)
82
- const b = MultisigConfig.toId(MultisigConfig.from(singleOwnerConfig))
83
- expect(a).toBe(b)
84
- })
85
- })
86
-
87
85
  describe('getSignPayload', () => {
88
86
  test('matches independent ground truth', () => {
89
87
  expect(
90
88
  MultisigConfig.getSignPayload({
91
- payload: `0x${'42'.repeat(32)}`,
89
+ payload: `0x${'de'.repeat(32)}`,
92
90
  genesisConfig: singleOwnerConfig,
93
91
  }),
94
92
  ).toMatchInlineSnapshot(
95
- `"0xe3d66f6118b89a67c71c8137c46abf0c829056a46ee6a038a1b42c84529fc17e"`,
93
+ `"0x7df8cb9fef4fc2aeb271b617d1a4c6178b720ae1d7564f48a363069b7d77a079"`,
96
94
  )
97
95
  })
98
96
 
99
- test('behavior: `genesisConfig` and `{account, genesisConfigId}` produce identical digests', () => {
100
- const genesisConfigId = MultisigConfig.toId(singleOwnerConfig)
101
- const account = MultisigConfig.getAddress({ genesisConfigId })
97
+ test('behavior: `genesisConfig` and `{ account }` produce identical digests', () => {
98
+ const account = MultisigConfig.getAddress(singleOwnerConfig)
102
99
  const payload = `0x${'42'.repeat(32)}` as const
103
100
  expect(
104
101
  MultisigConfig.getSignPayload({
105
102
  payload,
106
103
  genesisConfig: singleOwnerConfig,
107
104
  }),
108
- ).toBe(MultisigConfig.getSignPayload({ payload, account, genesisConfigId }))
105
+ ).toBe(MultisigConfig.getSignPayload({ payload, account }))
109
106
  })
110
107
  })
111
108
 
@@ -152,8 +149,16 @@ describe('assert / validate', () => {
152
149
  expect(MultisigConfig.validate({ threshold: 1, owners: [] })).toBe(false)
153
150
  })
154
151
 
152
+ test('accepts 255 owners', () => {
153
+ const owners = Array.from({ length: 255 }, (_, i) => ({
154
+ owner: `0x${(i + 1).toString(16).padStart(40, '0')}` as `0x${string}`,
155
+ weight: 1,
156
+ }))
157
+ expect(MultisigConfig.validate({ threshold: 255, owners })).toBe(true)
158
+ })
159
+
155
160
  test('too many owners', () => {
156
- const owners = Array.from({ length: 11 }, (_, i) => ({
161
+ const owners = Array.from({ length: 256 }, (_, i) => ({
157
162
  owner: `0x${(i + 1).toString(16).padStart(40, '0')}` as `0x${string}`,
158
163
  weight: 1,
159
164
  }))
@@ -178,6 +183,18 @@ describe('assert / validate', () => {
178
183
  ).toBe(false)
179
184
  })
180
185
 
186
+ test('total weight exceeds u8 max', () => {
187
+ expect(
188
+ MultisigConfig.validate({
189
+ threshold: 255,
190
+ owners: [
191
+ { owner: owner1, weight: 128 },
192
+ { owner: owner2, weight: 128 },
193
+ ],
194
+ }),
195
+ ).toBe(false)
196
+ })
197
+
181
198
  test('zero owner weight', () => {
182
199
  expect(
183
200
  MultisigConfig.validate({