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
@@ -86,7 +86,6 @@ export type GetType<
86
86
  ? 'keychain'
87
87
  : envelope extends {
88
88
  account: Address.Address
89
- genesisConfigId: `0x${string}`
90
89
  signatures: any
91
90
  }
92
91
  ? 'multisig'
@@ -162,9 +161,10 @@ export type KeychainRpc = {
162
161
  /**
163
162
  * Native multisig signature (type `0x05`).
164
163
  *
165
- * Wraps a set of primitive owner approvals (secp256k1, p256, or webAuthn) over the
166
- * multisig owner approval digest. The transaction sender is the derived `account`,
167
- * authorized once the recovered owner weights meet the configured threshold.
164
+ * Wraps a set of owner approvals (secp256k1, p256, webAuthn, or nested
165
+ * multisig) over the multisig owner approval digest. The transaction sender is
166
+ * the derived `account`, authorized once the recovered owner weights meet the
167
+ * configured threshold.
168
168
  *
169
169
  * [TIP-1061](https://tips.sh/1061)
170
170
  */
@@ -172,9 +172,11 @@ export type Multisig<numberType = number> = {
172
172
  type: 'multisig'
173
173
  /** Native multisig account address. */
174
174
  account: Address.Address
175
- /** Permanent config ID derived from the initial multisig config. */
176
- genesisConfigId: Hex.Hex
177
- /** Primitive owner approvals over the multisig owner approval digest. */
175
+ /**
176
+ * Owner approvals over the multisig owner approval digest. Each approval is
177
+ * either a primitive signature or a nested multisig signature (keychain
178
+ * approvals are invalid).
179
+ */
178
180
  signatures: readonly SignatureEnvelope<numberType>[]
179
181
  /**
180
182
  * Initial native multisig config for bootstrapping this account. Present only on
@@ -188,14 +190,8 @@ export type MultisigRpc = {
188
190
  type: 'multisig'
189
191
  account: Address.Address
190
192
  /**
191
- * The permanent multisig config ID (TIP-1061 wire field `config_id`).
192
- * Maps to `genesisConfigId` on the typed
193
- * {@link ox#SignatureEnvelope.Multisig} envelope.
194
- */
195
- configId: Hex.Hex
196
- /**
197
- * Encoded primitive owner approvals (raw serialized signatures), matching the
198
- * node's `Vec<Bytes>` representation.
193
+ * Encoded owner approvals (raw serialized signatures), matching the node's
194
+ * `Vec<Bytes>` representation.
199
195
  */
200
196
  signatures: readonly Serialized[]
201
197
  init?: MultisigConfig.Config | undefined
@@ -345,11 +341,24 @@ export function assert(envelope: PartialBy<SignatureEnvelope, 'type'>): void {
345
341
  const multisig = envelope as Multisig
346
342
  const missing: string[] = []
347
343
  if (!multisig.account) missing.push('account')
348
- if (!multisig.genesisConfigId) missing.push('genesisConfigId')
349
344
  if (!Array.isArray(multisig.signatures)) missing.push('signatures')
350
345
  if (missing.length > 0)
351
346
  throw new MissingPropertiesError({ envelope, missing, type: 'multisig' })
352
- for (const inner of multisig.signatures) assert(inner)
347
+ if (getNestingDepth(multisig) > MultisigConfig.maxNestingDepth)
348
+ throw new InvalidMultisigApprovalError({
349
+ reason: `multisig nesting depth exceeds ${MultisigConfig.maxNestingDepth}`,
350
+ })
351
+ for (const inner of multisig.signatures) {
352
+ if (inner.type === 'keychain')
353
+ throw new InvalidMultisigApprovalError({
354
+ reason: 'keychain owner approvals are not allowed',
355
+ })
356
+ if (inner.type === 'multisig' && inner.init)
357
+ throw new InvalidMultisigApprovalError({
358
+ reason: 'nested multisig owner approvals cannot carry `init`',
359
+ })
360
+ assert(inner)
361
+ }
353
362
  if (multisig.init) MultisigConfig.assert(multisig.init)
354
363
  return
355
364
  }
@@ -358,12 +367,22 @@ export function assert(envelope: PartialBy<SignatureEnvelope, 'type'>): void {
358
367
  export declare namespace assert {
359
368
  type ErrorType =
360
369
  | CoercionError
370
+ | InvalidMultisigApprovalError
361
371
  | MissingPropertiesError
362
372
  | MultisigConfig.assert.ErrorType
363
373
  | Signature.assert.ErrorType
364
374
  | Errors.GlobalErrorType
365
375
  }
366
376
 
377
+ // Returns the deepest multisig path length within a multisig envelope.
378
+ function getNestingDepth(envelope: Multisig): number {
379
+ let deepest = 0
380
+ for (const inner of envelope.signatures)
381
+ if (inner.type === 'multisig')
382
+ deepest = Math.max(deepest, getNestingDepth(inner))
383
+ return 1 + deepest
384
+ }
385
+
367
386
  /**
368
387
  * Extracts the address of the signer from a {@link ox#SignatureEnvelope.SignatureEnvelope}.
369
388
  *
@@ -630,24 +649,26 @@ export function deserialize(value: Serialized): SignatureEnvelope {
630
649
  }
631
650
 
632
651
  if (typeId === serializedMultisigType) {
633
- // Wire format: `0x05 || rlp([account, genesisConfigId, signatures, init])`. `init`
634
- // is optional: absent when the element is missing or the `0x80` placeholder
635
- // (decoded as the empty string `0x`), otherwise the bootstrap config list.
636
- const [account, genesisConfigId, signatures, init] = Rlp.toHex(data) as [
637
- Hex.Hex,
652
+ // Wire format: `0x05 || rlp([account, signatures, init?])`. `init` is a
653
+ // trailing optional: the bootstrap config list when present, otherwise
654
+ // omitted entirely (the empty `0x80` placeholder is rejected).
655
+ const [account, signatures, init] = Rlp.toHex(data) as [
638
656
  Hex.Hex,
639
657
  readonly Hex.Hex[],
640
658
  (Hex.Hex | MultisigConfig.Tuple)?,
641
659
  ]
660
+ if (typeof init !== 'undefined' && !Array.isArray(init))
661
+ throw new InvalidSerializedError({
662
+ reason:
663
+ 'Invalid multisig `init`: expected the bootstrap config list or an omitted trailing element',
664
+ serialized,
665
+ })
642
666
  return {
643
667
  type: 'multisig',
644
668
  account,
645
- genesisConfigId,
646
669
  signatures: signatures.map((signature) => deserialize(signature)),
647
- ...(init && init !== '0x'
648
- ? {
649
- init: MultisigConfig.fromTuple(init as MultisigConfig.Tuple),
650
- }
670
+ ...(init
671
+ ? { init: MultisigConfig.fromTuple(init as MultisigConfig.Tuple) }
651
672
  : {}),
652
673
  } satisfies Multisig
653
674
  }
@@ -786,9 +807,9 @@ export function deserialize(value: Serialized): SignatureEnvelope {
786
807
  * @example
787
808
  * ### Multisig (from genesis config)
788
809
  *
789
- * Pass `genesisConfig` to derive `account` and `genesisConfigId` automatically.
790
- * Set `init: true` to opt into bootstrap (uses `genesisConfig` as the
791
- * bootstrap `init`); omit `init` for subsequent (non-bootstrap) transactions.
810
+ * Pass `genesisConfig` to derive `account` automatically. Set `init: true` to
811
+ * opt into bootstrap (uses `genesisConfig` as the bootstrap `init`); omit
812
+ * `init` for subsequent (non-bootstrap) transactions.
792
813
  *
793
814
  * ```ts twoslash
794
815
  * import { Secp256k1 } from 'ox'
@@ -849,18 +870,12 @@ export function from<const value extends from.Value>(
849
870
  init?: MultisigConfig.Config | boolean | undefined
850
871
  }
851
872
  const { genesisConfig, init, ...rest } = multisig
852
- // Derive `account`/`genesisConfigId` from `genesisConfig` when not provided
853
- // explicitly.
873
+ // Derive `account` from `genesisConfig` when not provided explicitly.
854
874
  const account = (() => {
855
875
  if (rest.account) return rest.account
856
876
  if (genesisConfig) return MultisigConfig.getAddress(genesisConfig)
857
877
  return rest.account
858
878
  })()
859
- const genesisConfigId = (() => {
860
- if (rest.genesisConfigId) return rest.genesisConfigId
861
- if (genesisConfig) return MultisigConfig.toId(genesisConfig)
862
- return rest.genesisConfigId
863
- })()
864
879
  // `init: true` opts into bootstrap using the supplied `genesisConfig`.
865
880
  // Otherwise, `init` is treated as the explicit bootstrap config (or
866
881
  // omitted).
@@ -868,7 +883,6 @@ export function from<const value extends from.Value>(
868
883
  return {
869
884
  ...rest,
870
885
  account,
871
- genesisConfigId,
872
886
  signatures: rest.signatures.map((signature) => from(signature)),
873
887
  // Normalize the bootstrap config (sorts owners, defaults the salt) so the
874
888
  // in-memory envelope matches what `deserialize` reconstructs.
@@ -920,9 +934,9 @@ export declare namespace from {
920
934
  }
921
935
 
922
936
  /**
923
- * Multisig envelope input variant where `account` and `genesisConfigId` are derived
924
- * from the supplied `genesisConfig`. Pass `init: true` to opt into bootstrap
925
- * (uses `genesisConfig` as the bootstrap `init`); omit `init` for subsequent
937
+ * Multisig envelope input variant where `account` is derived from the
938
+ * supplied `genesisConfig`. Pass `init: true` to opt into bootstrap (uses
939
+ * `genesisConfig` as the bootstrap `init`); omit `init` for subsequent
926
940
  * (non-bootstrap) transactions.
927
941
  */
928
942
  type MultisigFromGenesisConfig = {
@@ -1063,17 +1077,12 @@ export function fromRpc(envelope: SignatureEnvelopeRpc): SignatureEnvelope {
1063
1077
 
1064
1078
  if (
1065
1079
  envelope.type === 'multisig' ||
1066
- ('account' in envelope &&
1067
- 'configId' in envelope &&
1068
- 'signatures' in envelope)
1080
+ ('account' in envelope && 'signatures' in envelope)
1069
1081
  ) {
1070
1082
  const multisig = envelope as MultisigRpc
1071
1083
  return {
1072
1084
  type: 'multisig',
1073
1085
  account: multisig.account,
1074
- // Map RPC wire field `configId` (TIP-1061 spec name) to the typed
1075
- // envelope's `genesisConfigId`.
1076
- genesisConfigId: multisig.configId,
1077
1086
  // Owner approvals are raw serialized signatures (node `Vec<Bytes>`).
1078
1087
  signatures: multisig.signatures.map((signature) =>
1079
1088
  deserialize(signature),
@@ -1164,8 +1173,7 @@ export function getType<
1164
1173
 
1165
1174
  // Detect Multisig signature
1166
1175
  if (
1167
- (('account' in envelope && 'genesisConfigId' in envelope) ||
1168
- 'genesisConfig' in envelope) &&
1176
+ ('account' in envelope || 'genesisConfig' in envelope) &&
1169
1177
  'signatures' in envelope
1170
1178
  )
1171
1179
  return 'multisig' as never
@@ -1269,17 +1277,15 @@ export function serialize(
1269
1277
 
1270
1278
  if (type === 'multisig') {
1271
1279
  const multisig = envelope as Multisig
1272
- // Format: `0x05 || rlp([account, genesisConfigId, signatures, init])`, where each
1273
- // owner approval is an encoded primitive signature. `init` is the bootstrap
1274
- // config (an RLP list) when present, otherwise the canonical empty-string
1275
- // placeholder (`0x` → RLP `0x80`).
1280
+ // Format: `0x05 || rlp([account, signatures, init?])`, where each owner
1281
+ // approval is an encoded signature. `init` is a trailing optional: the
1282
+ // bootstrap config list when present, otherwise omitted entirely.
1276
1283
  return Hex.concat(
1277
1284
  serializedMultisigType,
1278
1285
  Rlp.fromHex([
1279
1286
  multisig.account,
1280
- multisig.genesisConfigId,
1281
1287
  multisig.signatures.map((signature) => serialize(signature)),
1282
- multisig.init ? MultisigConfig.toTuple(multisig.init) : '0x',
1288
+ ...(multisig.init ? [MultisigConfig.toTuple(multisig.init)] : []),
1283
1289
  ]),
1284
1290
  options.magic ? magicBytes : '0x',
1285
1291
  )
@@ -1307,10 +1313,10 @@ export declare namespace serialize {
1307
1313
  * ({@link ox#MultisigConfig.(getSignPayload:function)}), so the signer of
1308
1314
  * every approval is recovered against that digest and the list is sorted by the
1309
1315
  * recovered owner address. Works for any owner key type (secp256k1, p256,
1310
- * webAuthn, keychain).
1316
+ * webAuthn).
1311
1317
  *
1312
- * Config updates never change `account`/`genesisConfigId`, so the genesis
1313
- * config is the correct input even for post-update transactions.
1318
+ * Config updates never change `account`, so the genesis config is the correct
1319
+ * input even for post-update transactions.
1314
1320
  *
1315
1321
  * @example
1316
1322
  * ```ts twoslash
@@ -1370,12 +1376,7 @@ export function sortMultisigApprovals(
1370
1376
  const digest = MultisigConfig.getSignPayload(
1371
1377
  'genesisConfig' in value && value.genesisConfig
1372
1378
  ? { payload, genesisConfig: value.genesisConfig }
1373
- : {
1374
- payload,
1375
- account: (value as { account: Address.Address }).account,
1376
- genesisConfigId: (value as { genesisConfigId: Hex.Hex })
1377
- .genesisConfigId,
1378
- },
1379
+ : { payload, account: (value as { account: Address.Address }).account },
1379
1380
  )
1380
1381
  // Recover each signer once (decorate–sort–undecorate) rather than inside the
1381
1382
  // comparator.
@@ -1392,20 +1393,17 @@ export declare namespace sortMultisigApprovals {
1392
1393
  type Value = {
1393
1394
  /** The inner transaction sign payload (`tx.signature_hash()`). */
1394
1395
  payload: Hex.Hex | Bytes.Bytes
1395
- /** The primitive owner approvals to order. */
1396
+ /** The owner approvals to order. */
1396
1397
  signatures: readonly SignatureEnvelope[]
1397
1398
  } & OneOf<
1398
1399
  | {
1399
1400
  /** The native multisig account address. */
1400
1401
  account: Address.Address
1401
- /** The permanent config ID. */
1402
- genesisConfigId: Hex.Hex
1403
1402
  }
1404
1403
  | {
1405
1404
  /**
1406
1405
  * The initial multisig config (the bootstrap config that derived the
1407
- * permanent `account` and `genesisConfigId`). Used to derive both values
1408
- * automatically.
1406
+ * permanent `account`). Used to derive the account automatically.
1409
1407
  */
1410
1408
  genesisConfig: MultisigConfig.Config
1411
1409
  }
@@ -1437,7 +1435,7 @@ export declare namespace sortMultisigApprovals {
1437
1435
  * @param envelope - The signature envelope to convert.
1438
1436
  * @returns The RPC signature envelope with hex values.
1439
1437
  */
1440
- export function toRpc(envelope: SignatureEnvelope): SignatureEnvelopeRpc {
1438
+ export function toRpc(envelope: toRpc.Input): SignatureEnvelopeRpc {
1441
1439
  const type = getType(envelope)
1442
1440
 
1443
1441
  if (type === 'secp256k1') {
@@ -1493,9 +1491,6 @@ export function toRpc(envelope: SignatureEnvelope): SignatureEnvelopeRpc {
1493
1491
  return {
1494
1492
  type: 'multisig',
1495
1493
  account: multisig.account,
1496
- // Map the typed envelope's `genesisConfigId` to the RPC wire field
1497
- // `configId` (TIP-1061 spec name).
1498
- configId: multisig.genesisConfigId,
1499
1494
  // Owner approvals are raw serialized signatures (node `Vec<Bytes>`).
1500
1495
  signatures: multisig.signatures.map((signature) => serialize(signature)),
1501
1496
  ...(multisig.init ? { init: multisig.init } : {}),
@@ -1506,6 +1501,9 @@ export function toRpc(envelope: SignatureEnvelope): SignatureEnvelopeRpc {
1506
1501
  }
1507
1502
 
1508
1503
  export declare namespace toRpc {
1504
+ /** Numberish input accepted by {@link ox#SignatureEnvelope.(toRpc:function)}. */
1505
+ type Input = SignatureEnvelope<Hex.Hex | number>
1506
+
1509
1507
  type ErrorType =
1510
1508
  | CoercionError
1511
1509
  | Signature.toRpc.ErrorType
@@ -1777,6 +1775,16 @@ export class InvalidSerializedError extends Errors.BaseError {
1777
1775
  }
1778
1776
  }
1779
1777
 
1778
+ /**
1779
+ * Error thrown when a native multisig owner approval is invalid.
1780
+ */
1781
+ export class InvalidMultisigApprovalError extends Errors.BaseError {
1782
+ override readonly name = 'SignatureEnvelope.InvalidMultisigApprovalError'
1783
+ constructor({ reason }: { reason: string }) {
1784
+ super(`Invalid native multisig owner approval: ${reason}.`)
1785
+ }
1786
+ }
1787
+
1780
1788
  /**
1781
1789
  * Error thrown when a signature envelope fails to verify.
1782
1790
  */
@@ -49,7 +49,6 @@ describe('fromRpc', () => {
49
49
  },
50
50
  ],
51
51
  "chainId": 1,
52
- "data": undefined,
53
52
  "feeToken": "0x20c0000000000000000000000000000000000000",
54
53
  "from": "0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6",
55
54
  "gas": 278365n,
@@ -68,7 +67,6 @@ describe('fromRpc', () => {
68
67
  },
69
68
  "transactionIndex": 2,
70
69
  "type": "tempo",
71
- "value": 0n,
72
70
  }
73
71
  `)
74
72
  })
@@ -125,7 +123,6 @@ describe('fromRpc', () => {
125
123
  },
126
124
  ],
127
125
  "chainId": 1,
128
- "data": undefined,
129
126
  "feePayerSignature": {
130
127
  "r": "0x12f4d9e9924f62b19de816252efc125006298f43e62d394151e62600e2c2f91e",
131
128
  "s": "0x31daa78bb3e95dd22f6370e59617c60d109bf28e55c92b25994ddbed420e2a80",
@@ -150,7 +147,6 @@ describe('fromRpc', () => {
150
147
  },
151
148
  "transactionIndex": 2,
152
149
  "type": "tempo",
153
- "value": 0n,
154
150
  }
155
151
  `)
156
152
  })
@@ -219,7 +215,6 @@ describe('fromRpc', () => {
219
215
  },
220
216
  ],
221
217
  "chainId": 1,
222
- "data": undefined,
223
218
  "feeToken": "0x20c0000000000000000000000000000000000000",
224
219
  "from": "0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6",
225
220
  "gas": 278365n,
@@ -258,7 +253,6 @@ describe('fromRpc', () => {
258
253
  },
259
254
  "transactionIndex": 2,
260
255
  "type": "tempo",
261
- "value": 0n,
262
256
  }
263
257
  `)
264
258
  })
@@ -319,7 +313,6 @@ describe('toRpc', () => {
319
313
  "gas": "0x43f5d",
320
314
  "gasPrice": "0x2ca6ae494",
321
315
  "hash": "0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0",
322
- "input": undefined,
323
316
  "maxFeePerGas": "0x2",
324
317
  "maxPriorityFeePerGas": "0x1",
325
318
  "nonce": "0x357",
@@ -329,10 +322,8 @@ describe('toRpc', () => {
329
322
  "type": "secp256k1",
330
323
  "yParity": "0x0",
331
324
  },
332
- "to": undefined,
333
325
  "transactionIndex": "0x2",
334
326
  "type": "0x76",
335
- "value": "0x0",
336
327
  }
337
328
  `)
338
329
  })
@@ -401,7 +392,6 @@ describe('toRpc', () => {
401
392
  "gas": "0x43f5d",
402
393
  "gasPrice": "0x2ca6ae494",
403
394
  "hash": "0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0",
404
- "input": undefined,
405
395
  "maxFeePerGas": "0x2",
406
396
  "maxPriorityFeePerGas": "0x1",
407
397
  "nonce": "0x357",
@@ -411,10 +401,8 @@ describe('toRpc', () => {
411
401
  "type": "secp256k1",
412
402
  "yParity": "0x0",
413
403
  },
414
- "to": undefined,
415
404
  "transactionIndex": "0x2",
416
405
  "type": "0x76",
417
- "value": "0x0",
418
406
  }
419
407
  `)
420
408
  })
@@ -491,7 +479,6 @@ describe('toRpc', () => {
491
479
  "gas": "0x43f5d",
492
480
  "gasPrice": "0x2ca6ae494",
493
481
  "hash": "0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0",
494
- "input": undefined,
495
482
  "keyAuthorization": {
496
483
  "chainId": "0x1",
497
484
  "expiry": "0xffffffffffff",
@@ -519,10 +506,8 @@ describe('toRpc', () => {
519
506
  "type": "secp256k1",
520
507
  "yParity": "0x0",
521
508
  },
522
- "to": undefined,
523
509
  "transactionIndex": "0x2",
524
510
  "type": "0x76",
525
- "value": "0x0",
526
511
  }
527
512
  `)
528
513
  })
@@ -2,6 +2,7 @@ import type * as AccessList from '../core/AccessList.js'
2
2
  import type * as Address from '../core/Address.js'
3
3
  import type * as Errors from '../core/Errors.js'
4
4
  import * as Hex from '../core/Hex.js'
5
+ import * as Quantity from '../core/internal/quantity.js'
5
6
  import type { Compute, OneOf, UnionCompute } from '../core/internal/types.js'
6
7
  import * as Signature from '../core/Signature.js'
7
8
  import * as ox_Transaction from '../core/Transaction.js'
@@ -102,18 +103,40 @@ export type Tempo<
102
103
  export type TempoRpc<pending extends boolean = false> = Compute<
103
104
  Omit<
104
105
  Tempo<pending, Hex.Hex, Hex.Hex, ToRpcType['tempo']>,
105
- 'authorizationList' | 'calls' | 'keyAuthorization' | 'signature'
106
+ | 'authorizationList'
107
+ | 'calls'
108
+ | 'feePayerSignature'
109
+ | 'gasPrice'
110
+ | 'keyAuthorization'
111
+ | 'nonceKey'
112
+ | 'signature'
113
+ | 'validAfter'
114
+ | 'validBefore'
106
115
  > & {
107
116
  aaAuthorizationList?: AuthorizationTempo.ListRpc | undefined
108
117
  calls:
109
118
  | readonly {
110
- input?: Hex.Hex | undefined
111
- to?: Hex.Hex | undefined
112
- value?: Hex.Hex | undefined
119
+ data?: Hex.Hex | null | undefined
120
+ input?: Hex.Hex | null | undefined
121
+ to?: Hex.Hex | null | undefined
122
+ value?: Hex.Hex | null | undefined
113
123
  }[]
114
124
  | undefined
115
- keyAuthorization?: KeyAuthorization.Rpc | undefined
125
+ feePayerSignature?:
126
+ | {
127
+ r: Hex.Hex
128
+ s: Hex.Hex
129
+ v?: Hex.Hex | undefined
130
+ yParity: Hex.Hex
131
+ }
132
+ | null
133
+ | undefined
134
+ gasPrice?: Hex.Hex | null | undefined
135
+ keyAuthorization?: KeyAuthorization.Rpc | null | undefined
136
+ nonceKey?: Hex.Hex | null | undefined
116
137
  signature: SignatureEnvelope.SignatureEnvelopeRpc
138
+ validAfter?: Hex.Hex | null | undefined
139
+ validBefore?: Hex.Hex | null | undefined
117
140
  }
118
141
  >
119
142
 
@@ -198,19 +221,26 @@ export function fromRpc<
198
221
  transaction as ox_Transaction.Rpc<pending>,
199
222
  ) as Transaction<pending>
200
223
 
201
- transaction_.type = fromRpcType[transaction.type as keyof typeof fromRpcType]
224
+ if (transaction.type !== '0x76') return transaction_ as never
225
+
226
+ transaction_.type = 'tempo'
227
+
228
+ // Tempo transactions carry `calls`; scrub the flat call fields the generic
229
+ // decoder fabricates.
230
+ delete (transaction_ as any).data
231
+ delete (transaction_ as any).input
232
+ delete (transaction_ as any).to
233
+ delete (transaction_ as any).value
202
234
 
203
- if (transaction.aaAuthorizationList) {
235
+ if (transaction.aaAuthorizationList?.length)
204
236
  transaction_.authorizationList = AuthorizationTempo.fromRpcList(
205
237
  transaction.aaAuthorizationList,
206
238
  )
207
- delete (transaction_ as any).aaAuthorizationList
208
- }
239
+ delete (transaction_ as any).aaAuthorizationList
209
240
  if (transaction.calls)
210
241
  transaction_.calls = transaction.calls.map((call) => ({
211
- to: call.to,
242
+ to: call.to ?? undefined,
212
243
  value: call.value && call.value !== '0x' ? BigInt(call.value) : undefined,
213
- // @ts-expect-error
214
244
  data: call.input || call.data || '0x',
215
245
  }))
216
246
  if (transaction.feeToken) transaction_.feeToken = transaction.feeToken
@@ -234,6 +264,18 @@ export function fromRpc<
234
264
  )
235
265
  }
236
266
 
267
+ // The node serializes absent optional fields as `null`; scrub them.
268
+ for (const key of [
269
+ 'feePayer',
270
+ 'feePayerSignature',
271
+ 'gasPrice',
272
+ 'keyAuthorization',
273
+ 'nonceKey',
274
+ 'validAfter',
275
+ 'validBefore',
276
+ ] as const)
277
+ if ((transaction_ as any)[key] === null) delete (transaction_ as any)[key]
278
+
237
279
  return transaction_ as never
238
280
  }
239
281
 
@@ -292,14 +334,22 @@ export declare namespace fromRpc {
292
334
  * @returns An RPC-formatted transaction.
293
335
  */
294
336
  export function toRpc<pending extends boolean = false>(
295
- transaction: Transaction<pending>,
337
+ transaction: toRpc.Input<pending>,
296
338
  _options?: toRpc.Options<pending>,
297
339
  ): Rpc<pending> {
298
340
  const rpc = ox_Transaction.toRpc(
299
341
  transaction as ox_Transaction.Transaction<pending>,
300
342
  ) as Rpc<pending>
301
343
 
302
- rpc.type = toRpcType[transaction.type as keyof typeof toRpcType]
344
+ if (transaction.type !== 'tempo') return rpc
345
+
346
+ rpc.type = '0x76'
347
+
348
+ // Tempo transactions carry `calls`; scrub the flat call fields the generic
349
+ // encoder fabricates.
350
+ delete (rpc as any).input
351
+ delete (rpc as any).to
352
+ delete (rpc as any).value
303
353
 
304
354
  if (transaction.authorizationList)
305
355
  rpc.aaAuthorizationList = AuthorizationTempo.toRpcList(
@@ -308,7 +358,7 @@ export function toRpc<pending extends boolean = false>(
308
358
  if (transaction.calls)
309
359
  rpc.calls = transaction.calls.map((call) => ({
310
360
  to: call.to,
311
- value: call.value ? Hex.fromNumber(call.value) : undefined,
361
+ value: call.value ? Quantity.fromNumberish(call.value) : undefined,
312
362
  data: call.data,
313
363
  }))
314
364
  if (transaction.feeToken) rpc.feeToken = transaction.feeToken
@@ -319,20 +369,29 @@ export function toRpc<pending extends boolean = false>(
319
369
  transaction.feePayerSignature,
320
370
  ) as any
321
371
  ;(rpc.feePayerSignature as any).v = Hex.fromNumber(
322
- Signature.yParityToV(transaction.feePayerSignature?.yParity),
372
+ Signature.yParityToV(Number(transaction.feePayerSignature.yParity)),
323
373
  )
324
374
  }
375
+ if (transaction.nonceKey !== undefined)
376
+ rpc.nonceKey = Quantity.fromNumberish(transaction.nonceKey)
325
377
  if (transaction.signature)
326
378
  rpc.signature = SignatureEnvelope.toRpc(transaction.signature)
327
- if (typeof transaction.validAfter === 'number')
328
- rpc.validAfter = Hex.fromNumber(transaction.validAfter)
329
- if (typeof transaction.validBefore === 'number')
330
- rpc.validBefore = Hex.fromNumber(transaction.validBefore)
379
+ if (transaction.validAfter !== undefined)
380
+ rpc.validAfter = Quantity.fromNumberish(transaction.validAfter)
381
+ if (transaction.validBefore !== undefined)
382
+ rpc.validBefore = Quantity.fromNumberish(transaction.validBefore)
331
383
 
332
384
  return rpc as Rpc<pending>
333
385
  }
334
386
 
335
387
  export declare namespace toRpc {
388
+ /** Numberish input accepted by {@link ox#(Transaction:namespace).(toRpc:function)}. */
389
+ type Input<pending extends boolean = false> = Transaction<
390
+ pending,
391
+ Hex.Hex | bigint | number,
392
+ Hex.Hex | number
393
+ >
394
+
336
395
  type Options<pending extends boolean = false> = {
337
396
  pending?: pending | boolean | undefined
338
397
  }
@@ -184,7 +184,7 @@ export declare namespace fromRpc {
184
184
  * @param receipt - The receipt to convert.
185
185
  * @returns An RPC receipt.
186
186
  */
187
- export function toRpc(receipt: TransactionReceipt): Rpc {
187
+ export function toRpc(receipt: toRpc.Input): Rpc {
188
188
  const rpc = ox_TransactionReceipt.toRpc(
189
189
  receipt as ox_TransactionReceipt.TransactionReceipt,
190
190
  ) as Rpc
@@ -196,5 +196,13 @@ export function toRpc(receipt: TransactionReceipt): Rpc {
196
196
  }
197
197
 
198
198
  export declare namespace toRpc {
199
+ /** Numberish input accepted by {@link ox#TransactionReceipt.(toRpc:function)}. */
200
+ export type Input = TransactionReceipt<
201
+ ox_TransactionReceipt.Status,
202
+ ox_TransactionReceipt.Type,
203
+ Hex.Hex | bigint | number,
204
+ Hex.Hex | number
205
+ >
206
+
199
207
  export type ErrorType = ox_TransactionReceipt.toRpc.ErrorType
200
208
  }