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
@@ -0,0 +1,76 @@
1
+ import { TransactionReceipt } from 'ox/tempo'
2
+ import { describe, expect, test } from 'vite-plus/test'
3
+
4
+ const rpc = {
5
+ blockHash:
6
+ '0xc350d807505fb835650f0013632c5515592987ba169bbc6626d9fc54d91f0f0b',
7
+ blockNumber: '0x12f296f',
8
+ contractAddress: null,
9
+ cumulativeGasUsed: '0x82515',
10
+ effectiveGasPrice: '0x21c2f6c09',
11
+ feePayer: '0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6',
12
+ feeToken: '0x20c0000000000000000000000000000000000001',
13
+ from: '0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6',
14
+ gasUsed: '0x2abba',
15
+ logs: [],
16
+ logsBloom: `0x${'00'.repeat(256)}`,
17
+ status: '0x1',
18
+ to: '0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad',
19
+ transactionHash:
20
+ '0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0',
21
+ transactionIndex: '0x2',
22
+ type: '0x76',
23
+ } as const satisfies TransactionReceipt.Rpc
24
+
25
+ describe('fromRpc', () => {
26
+ test('default', () => {
27
+ const receipt = TransactionReceipt.fromRpc(rpc)
28
+ expect(receipt).toMatchInlineSnapshot(`
29
+ {
30
+ "blobGasPrice": undefined,
31
+ "blobGasUsed": undefined,
32
+ "blockHash": "0xc350d807505fb835650f0013632c5515592987ba169bbc6626d9fc54d91f0f0b",
33
+ "blockNumber": 19868015n,
34
+ "contractAddress": null,
35
+ "cumulativeGasUsed": 533781n,
36
+ "effectiveGasPrice": 9062804489n,
37
+ "feePayer": "0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6",
38
+ "feeToken": "0x20c0000000000000000000000000000000000001",
39
+ "from": "0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6",
40
+ "gasUsed": 175034n,
41
+ "logs": [],
42
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
43
+ "status": "success",
44
+ "to": "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad",
45
+ "transactionHash": "0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0",
46
+ "transactionIndex": 2,
47
+ "type": "tempo",
48
+ }
49
+ `)
50
+ })
51
+
52
+ test('behavior: non-tempo type passes through the generic mapping', () => {
53
+ const receipt = TransactionReceipt.fromRpc({ ...rpc, type: '0x2' })
54
+ expect(receipt.type).toBe('eip1559')
55
+ })
56
+
57
+ test('behavior: null', () => {
58
+ expect(TransactionReceipt.fromRpc(null)).toBeNull()
59
+ })
60
+ })
61
+
62
+ describe('toRpc', () => {
63
+ test('default', () => {
64
+ const receipt = TransactionReceipt.fromRpc(rpc)
65
+ const encoded = TransactionReceipt.toRpc(receipt)
66
+ expect(encoded.type).toBe('0x76')
67
+ expect(encoded.feePayer).toBe(rpc.feePayer)
68
+ expect(encoded.feeToken).toBe(rpc.feeToken)
69
+ expect(TransactionReceipt.fromRpc(encoded)).toEqual(receipt)
70
+ })
71
+
72
+ test('behavior: non-tempo type passes through the generic mapping', () => {
73
+ const receipt = TransactionReceipt.fromRpc({ ...rpc, type: '0x2' })
74
+ expect(TransactionReceipt.toRpc(receipt).type).toBe('0x2')
75
+ })
76
+ })
@@ -13,7 +13,7 @@ import * as ox_TransactionReceipt from '../core/TransactionReceipt.js'
13
13
  */
14
14
  export type TransactionReceipt<
15
15
  status = ox_TransactionReceipt.Status,
16
- type = ox_TransactionReceipt.Type,
16
+ type = Type,
17
17
  bigintType = bigint,
18
18
  numberType = number,
19
19
  > = Compute<
@@ -32,7 +32,7 @@ export type TransactionReceipt<
32
32
 
33
33
  export type Rpc = TransactionReceipt<
34
34
  ox_TransactionReceipt.RpcStatus,
35
- ox_TransactionReceipt.RpcType,
35
+ RpcType,
36
36
  Hex.Hex,
37
37
  Hex.Hex
38
38
  >
@@ -118,9 +118,14 @@ export const toRpcType = {
118
118
  export function fromRpc<const receipt extends Rpc | null>(
119
119
  receipt: receipt | Rpc | null,
120
120
  ): receipt extends Rpc ? TransactionReceipt : null {
121
- return ox_TransactionReceipt.fromRpc(
121
+ const decoded = ox_TransactionReceipt.fromRpc(
122
122
  receipt as ox_TransactionReceipt.Rpc,
123
- ) as never
123
+ )
124
+ if (!decoded) return null as never
125
+ return {
126
+ ...decoded,
127
+ type: (fromRpcType as any)[receipt!.type] ?? receipt!.type,
128
+ } as never
124
129
  }
125
130
 
126
131
  export declare namespace fromRpc {
@@ -184,7 +189,7 @@ export declare namespace fromRpc {
184
189
  * @param receipt - The receipt to convert.
185
190
  * @returns An RPC receipt.
186
191
  */
187
- export function toRpc(receipt: TransactionReceipt): Rpc {
192
+ export function toRpc(receipt: toRpc.Input): Rpc {
188
193
  const rpc = ox_TransactionReceipt.toRpc(
189
194
  receipt as ox_TransactionReceipt.TransactionReceipt,
190
195
  ) as Rpc
@@ -192,9 +197,18 @@ export function toRpc(receipt: TransactionReceipt): Rpc {
192
197
  ...rpc,
193
198
  feePayer: receipt.feePayer,
194
199
  feeToken: receipt.feeToken,
200
+ type: (toRpcType as any)[receipt.type] ?? receipt.type,
195
201
  }
196
202
  }
197
203
 
198
204
  export declare namespace toRpc {
205
+ /** Numberish input accepted by {@link ox#TransactionReceipt.(toRpc:function)}. */
206
+ export type Input = TransactionReceipt<
207
+ ox_TransactionReceipt.Status,
208
+ Type,
209
+ Hex.Hex | bigint | number,
210
+ Hex.Hex | number
211
+ >
212
+
199
213
  export type ErrorType = ox_TransactionReceipt.toRpc.ErrorType
200
214
  }
@@ -69,6 +69,40 @@ describe('fromRpc', () => {
69
69
  expect(request.nonceKey).toBe(255n)
70
70
  })
71
71
 
72
+ test('behavior: gas-model hints and capabilities pass through', () => {
73
+ const request = TransactionRequest.fromRpc({
74
+ calls: [{ to: '0xcafebabecafebabecafebabecafebabecafebabe' }],
75
+ capabilities: { balanceDiffs: true },
76
+ feePayer: true,
77
+ keyData: '0x0578',
78
+ keyId: '0xcccccccccccccccccccccccccccccccccccccccc',
79
+ keyType: 'webAuthn',
80
+ multisigInit: {
81
+ salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
82
+ threshold: 2,
83
+ owners: [
84
+ {
85
+ owner: '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
86
+ weight: 1,
87
+ },
88
+ {
89
+ owner: '0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',
90
+ weight: 1,
91
+ },
92
+ ],
93
+ },
94
+ multisigSignatureCount: 2,
95
+ type: '0x76',
96
+ })
97
+ expect(request.capabilities).toEqual({ balanceDiffs: true })
98
+ expect(request.feePayer).toBe(true)
99
+ expect(request.keyData).toBe('0x0578')
100
+ expect(request.keyId).toBe('0xcccccccccccccccccccccccccccccccccccccccc')
101
+ expect(request.keyType).toBe('webAuthn')
102
+ expect(request.multisigInit).toMatchObject({ threshold: 2 })
103
+ expect(request.multisigSignatureCount).toBe(2)
104
+ })
105
+
72
106
  test('behavior: empty', () => {
73
107
  const request = TransactionRequest.fromRpc({})
74
108
  expect(request).toMatchInlineSnapshot('{}')
@@ -123,6 +157,101 @@ describe('toRpc', () => {
123
157
  `)
124
158
  })
125
159
 
160
+ test('behavior: gas-model hints and capabilities are carried', () => {
161
+ const request = TransactionRequest.toRpc({
162
+ calls: [{ to: '0xcafebabecafebabecafebabecafebabecafebabe' }],
163
+ capabilities: { balanceDiffs: true },
164
+ feePayer: false,
165
+ keyData: '0x0578',
166
+ keyId: '0xcccccccccccccccccccccccccccccccccccccccc',
167
+ keyType: 'webAuthn',
168
+ multisigInit: {
169
+ salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
170
+ threshold: 2,
171
+ owners: [
172
+ {
173
+ owner: '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
174
+ weight: 1,
175
+ },
176
+ {
177
+ owner: '0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',
178
+ weight: 1,
179
+ },
180
+ ],
181
+ },
182
+ multisigSignatureCount: 2,
183
+ })
184
+ expect(request.capabilities).toEqual({ balanceDiffs: true })
185
+ expect(request.feePayer).toBe(false)
186
+ expect(request.keyData).toBe('0x0578')
187
+ expect(request.keyId).toBe('0xcccccccccccccccccccccccccccccccccccccccc')
188
+ expect(request.keyType).toBe('webAuthn')
189
+ expect(request.multisigInit).toMatchObject({ threshold: 2 })
190
+ expect(request.multisigSignatureCount).toBe(2)
191
+ expect(request.type).toBe('0x76')
192
+ })
193
+
194
+ test('behavior: key data longer than 4 bytes shims into a length hint', () => {
195
+ const request = TransactionRequest.toRpc({
196
+ calls: [{ to: '0xcafebabecafebabecafebabecafebabecafebabe' }],
197
+ keyData: `0x${'aa'.repeat(1400)}`,
198
+ keyType: 'webAuthn',
199
+ })
200
+ // 1400 bytes -> 0x0578 big-endian length hint.
201
+ expect(request.keyData).toBe('0x0578')
202
+ })
203
+
204
+ test('behavior: feeToken is withheld until the fee payer signs (TIP-76)', () => {
205
+ const pending = TransactionRequest.toRpc({
206
+ calls: [{ to: '0xcafebabecafebabecafebabecafebabecafebabe' }],
207
+ feePayer: true,
208
+ feeToken: '0x20c0000000000000000000000000000000000000',
209
+ })
210
+ expect(pending.feeToken).toBeUndefined()
211
+ expect(pending.feePayer).toBe(true)
212
+
213
+ const signed = TransactionRequest.toRpc({
214
+ calls: [{ to: '0xcafebabecafebabecafebabecafebabecafebabe' }],
215
+ feePayer: true,
216
+ feePayerSignature: {
217
+ r: '0x0000000000000000000000000000000000000000000000000000000000000001',
218
+ s: '0x0000000000000000000000000000000000000000000000000000000000000002',
219
+ yParity: 1,
220
+ },
221
+ feeToken: '0x20c0000000000000000000000000000000000000',
222
+ })
223
+ expect(signed.feeToken).toBe('0x20c0000000000000000000000000000000000000')
224
+ })
225
+
226
+ test('behavior: data-less call defaults to the zero address', () => {
227
+ const flat = TransactionRequest.toRpc({
228
+ feeToken: '0x20c0000000000000000000000000000000000000',
229
+ value: 100n,
230
+ })
231
+ expect(flat.calls).toMatchInlineSnapshot(`
232
+ [
233
+ {
234
+ "data": "0x",
235
+ "to": "0x0000000000000000000000000000000000000000",
236
+ "value": "0x64",
237
+ },
238
+ ]
239
+ `)
240
+
241
+ const bare = TransactionRequest.toRpc({
242
+ feeToken: '0x20c0000000000000000000000000000000000000',
243
+ })
244
+ expect(bare.calls).toMatchInlineSnapshot(`
245
+ [
246
+ {
247
+ "data": "0x",
248
+ "to": "0x0000000000000000000000000000000000000000",
249
+ "value": "0x",
250
+ },
251
+ ]
252
+ `)
253
+ })
254
+
126
255
  test("behavior: nonceKey 'random' generates a 192-bit value", () => {
127
256
  const request = TransactionRequest.toRpc({
128
257
  calls: [
@@ -311,9 +440,53 @@ describe('toEnvelope', () => {
311
440
  expect(envelope.validAfter).toBe(100)
312
441
  })
313
442
 
314
- test('error: empty calls throws via envelope assert', () => {
443
+ test('behavior: data-less request defaults to a zero-address call', () => {
444
+ const envelope = TransactionRequest.toEnvelope({
445
+ chainId: 1,
446
+ maxFeePerGas: 1n,
447
+ })
448
+ expect(envelope.calls).toEqual([
449
+ { to: '0x0000000000000000000000000000000000000000' },
450
+ ])
451
+ })
452
+
453
+ test('behavior: feePayer marks the envelope as pending a fee payer signature (TIP-76)', () => {
454
+ const envelope = TransactionRequest.toEnvelope({
455
+ calls: [{ to: '0x0000000000000000000000000000000000000000' }],
456
+ chainId: 1,
457
+ feePayer: true,
458
+ feeToken: '0x20c0000000000000000000000000000000000000',
459
+ maxFeePerGas: 1n,
460
+ })
461
+ expect(envelope.feePayerSignature).toBeNull()
462
+
463
+ // An explicit fee payer signature wins over the marker.
464
+ const signed = TransactionRequest.toEnvelope({
465
+ calls: [{ to: '0x0000000000000000000000000000000000000000' }],
466
+ chainId: 1,
467
+ feePayer: true,
468
+ feePayerSignature: {
469
+ r: '0x0000000000000000000000000000000000000000000000000000000000000001',
470
+ s: '0x0000000000000000000000000000000000000000000000000000000000000002',
471
+ yParity: 1,
472
+ },
473
+ maxFeePerGas: 1n,
474
+ })
475
+ expect(signed.feePayerSignature).not.toBeNull()
476
+
477
+ // No fee payer, no marker.
478
+ const plain = TransactionRequest.toEnvelope({
479
+ calls: [{ to: '0x0000000000000000000000000000000000000000' }],
480
+ chainId: 1,
481
+ maxFeePerGas: 1n,
482
+ })
483
+ expect(plain.feePayerSignature).toBeUndefined()
484
+ })
485
+
486
+ test('error: explicit empty calls throws via envelope assert', () => {
315
487
  expect(() =>
316
488
  TransactionRequest.toEnvelope({
489
+ calls: [],
317
490
  chainId: 1,
318
491
  maxFeePerGas: 1n,
319
492
  }),
@@ -1,18 +1,27 @@
1
+ import type * as Address from '../core/Address.js'
1
2
  import type * as Errors from '../core/Errors.js'
2
3
  import * as Hex from '../core/Hex.js'
4
+ import * as Quantity from '../core/internal/quantity.js'
3
5
  import type { Compute } from '../core/internal/types.js'
4
6
  import * as Signature from '../core/Signature.js'
5
7
  import * as ox_TransactionRequest from '../core/TransactionRequest.js'
6
8
  import * as AuthorizationTempo from './AuthorizationTempo.js'
7
9
  import * as KeyAuthorization from './KeyAuthorization.js'
10
+ import type * as MultisigConfig from './MultisigConfig.js'
8
11
  import * as SignatureEnvelope from './SignatureEnvelope.js'
9
- import * as TokenId from './TokenId.js'
10
12
  import * as Transaction from './Transaction.js'
11
13
  import * as TxEnvelopeTempo from './TxEnvelopeTempo.js'
12
14
  import type { Call } from './TxEnvelopeTempo.js'
13
15
 
14
16
  type KeyType = 'secp256k1' | 'p256' | 'webAuthn'
15
17
 
18
+ /**
19
+ * Bootstrap multisig config hint for node-side gas modeling (TIP-1061).
20
+ * The node prices multisig gas from it during simulation, and ignores it
21
+ * for registered senders.
22
+ */
23
+ export type MultisigInit = Compute<MultisigConfig.Config & { salt: Hex.Hex }>
24
+
16
25
  /**
17
26
  * A Transaction Request that is generic to all transaction types.
18
27
  *
@@ -34,12 +43,16 @@ export type TransactionRequest<
34
43
  | AuthorizationTempo.ListSigned<bigintType, numberType>
35
44
  | undefined
36
45
  calls?: readonly Call<bigintType>[] | undefined
46
+ capabilities?: Record<string, unknown> | undefined
37
47
  feePayerSignature?: Signature.Signature<true, numberType> | null | undefined
38
48
  keyAuthorization?: KeyAuthorization.KeyAuthorization<true> | undefined
39
49
  keyData?: Hex.Hex | undefined
50
+ keyId?: Address.Address | undefined
40
51
  keyType?: KeyType | undefined
41
52
  feePayer?: boolean | undefined
42
- feeToken?: TokenId.TokenIdOrAddress | undefined
53
+ feeToken?: Address.Address | undefined
54
+ multisigInit?: MultisigInit | undefined
55
+ multisigSignatureCount?: number | undefined
43
56
  nonceKey?: 'random' | bigintType | undefined
44
57
  signature?: SignatureEnvelope.SignatureEnvelope<numberType> | undefined
45
58
  validBefore?: numberType | undefined
@@ -195,12 +208,28 @@ export declare namespace fromRpc {
195
208
  * @param request - The request to convert.
196
209
  * @returns An RPC request.
197
210
  */
198
- export function toRpc(request: TransactionRequest): Rpc {
211
+ export function toRpc(request: toRpc.Input): Rpc {
199
212
  const request_rpc = ox_TransactionRequest.toRpc({
200
213
  ...request,
201
214
  authorizationList: undefined,
202
215
  }) as Rpc
203
216
 
217
+ const tempo =
218
+ typeof request.calls !== 'undefined' ||
219
+ typeof request.capabilities !== 'undefined' ||
220
+ typeof request.feePayer !== 'undefined' ||
221
+ typeof request.feeToken !== 'undefined' ||
222
+ typeof request.keyAuthorization !== 'undefined' ||
223
+ typeof request.keyData !== 'undefined' ||
224
+ typeof request.keyId !== 'undefined' ||
225
+ typeof request.keyType !== 'undefined' ||
226
+ typeof request.multisigInit !== 'undefined' ||
227
+ typeof request.multisigSignatureCount !== 'undefined' ||
228
+ typeof request.nonceKey !== 'undefined' ||
229
+ typeof request.validBefore !== 'undefined' ||
230
+ typeof request.validAfter !== 'undefined' ||
231
+ request.type === 'tempo'
232
+
204
233
  if (request.authorizationList)
205
234
  request_rpc.authorizationList = AuthorizationTempo.toRpcList(
206
235
  request.authorizationList,
@@ -212,46 +241,57 @@ export function toRpc(request: TransactionRequest): Rpc {
212
241
  if (request.calls)
213
242
  request_rpc.calls = request.calls.map((call) => ({
214
243
  to: call.to,
215
- value: call.value ? Hex.fromNumber(call.value) : '0x',
244
+ value: call.value ? Quantity.fromNumberish(call.value) : '0x',
216
245
  data: call.data ?? '0x',
217
246
  }))
218
- else if (request.to || request.data || request.value)
247
+ else if (request.to || request.data || request.value || tempo)
219
248
  request_rpc.calls = [
220
249
  {
221
- to: request.to ?? undefined,
222
- value: request.value ? Hex.fromNumber(request.value) : '0x',
250
+ to:
251
+ request.to ||
252
+ (tempo && (!request.data || request.data === '0x')
253
+ ? '0x0000000000000000000000000000000000000000'
254
+ : undefined),
255
+ value: request.value ? Quantity.fromNumberish(request.value) : '0x',
223
256
  data: request.data ?? '0x',
224
257
  },
225
258
  ]
226
- if (typeof request.feeToken !== 'undefined')
227
- request_rpc.feeToken = TokenId.toAddress(request.feeToken)
259
+ if (
260
+ typeof request.feeToken !== 'undefined' &&
261
+ !(request.feePayer === true && !request.feePayerSignature)
262
+ )
263
+ request_rpc.feeToken = request.feeToken
228
264
  if (request.keyAuthorization)
229
265
  request_rpc.keyAuthorization = KeyAuthorization.toRpc(
230
266
  request.keyAuthorization,
231
267
  )
268
+ if (typeof request.capabilities !== 'undefined')
269
+ request_rpc.capabilities = request.capabilities
270
+ if (typeof request.feePayer !== 'undefined')
271
+ request_rpc.feePayer = request.feePayer
272
+ if (typeof request.keyData !== 'undefined')
273
+ request_rpc.keyData = shimKeyData(request.keyData)
274
+ if (typeof request.keyId !== 'undefined') request_rpc.keyId = request.keyId
275
+ if (typeof request.keyType !== 'undefined')
276
+ request_rpc.keyType = request.keyType
277
+ if (typeof request.multisigInit !== 'undefined')
278
+ request_rpc.multisigInit = request.multisigInit
279
+ if (typeof request.multisigSignatureCount !== 'undefined')
280
+ request_rpc.multisigSignatureCount = request.multisigSignatureCount
232
281
  if (typeof request.validBefore !== 'undefined')
233
- request_rpc.validBefore = Hex.fromNumber(request.validBefore)
282
+ request_rpc.validBefore = Quantity.fromNumberish(request.validBefore)
234
283
  if (typeof request.validAfter !== 'undefined')
235
- request_rpc.validAfter = Hex.fromNumber(request.validAfter)
284
+ request_rpc.validAfter = Quantity.fromNumberish(request.validAfter)
236
285
 
237
286
  const nonceKey = (() => {
238
287
  if (request.nonceKey === 'random') return Hex.random(24)
239
- if (typeof request.nonceKey === 'bigint')
240
- return Hex.fromNumber(request.nonceKey)
288
+ if (request.nonceKey !== undefined)
289
+ return Quantity.fromNumberish(request.nonceKey)
241
290
  return undefined
242
291
  })()
243
292
  if (nonceKey) request_rpc.nonceKey = nonceKey
244
293
 
245
- if (
246
- typeof request.calls !== 'undefined' ||
247
- typeof request.feePayer !== 'undefined' ||
248
- typeof request.feeToken !== 'undefined' ||
249
- typeof request.keyAuthorization !== 'undefined' ||
250
- typeof request.nonceKey !== 'undefined' ||
251
- typeof request.validBefore !== 'undefined' ||
252
- typeof request.validAfter !== 'undefined' ||
253
- request.type === 'tempo'
254
- ) {
294
+ if (tempo) {
255
295
  request_rpc.type = Transaction.toRpcType.tempo
256
296
  delete request_rpc.data
257
297
  delete request_rpc.input
@@ -263,6 +303,12 @@ export function toRpc(request: TransactionRequest): Rpc {
263
303
  }
264
304
 
265
305
  export declare namespace toRpc {
306
+ /** Numberish input accepted by {@link ox#TransactionRequest.(toRpc:function)}. */
307
+ export type Input = TransactionRequest<
308
+ Hex.Hex | bigint | number,
309
+ Hex.Hex | number
310
+ >
311
+
266
312
  export type ErrorType =
267
313
  | AuthorizationTempo.toRpcList.ErrorType
268
314
  | Hex.fromNumber.ErrorType
@@ -299,21 +345,20 @@ export function toEnvelope(
299
345
  ): TxEnvelopeTempo.TxEnvelopeTempo {
300
346
  const calls = (() => {
301
347
  if (request.calls) return request.calls
302
- if (request.to || request.data || request.value)
303
- return [
304
- {
305
- ...(typeof request.to !== 'undefined' && request.to !== null
306
- ? { to: request.to }
307
- : {}),
308
- ...(typeof request.data !== 'undefined'
309
- ? { data: request.data }
310
- : {}),
311
- ...(typeof request.value !== 'undefined'
312
- ? { value: request.value }
313
- : {}),
314
- },
315
- ] satisfies readonly Call[]
316
- return [] as readonly Call[]
348
+ const to =
349
+ request.to ||
350
+ (!request.data || request.data === '0x'
351
+ ? '0x0000000000000000000000000000000000000000'
352
+ : undefined)
353
+ return [
354
+ {
355
+ ...(typeof to !== 'undefined' ? { to } : {}),
356
+ ...(typeof request.data !== 'undefined' ? { data: request.data } : {}),
357
+ ...(typeof request.value !== 'undefined'
358
+ ? { value: request.value }
359
+ : {}),
360
+ },
361
+ ] satisfies readonly Call[]
317
362
  })()
318
363
 
319
364
  const nonceKey = (() => {
@@ -335,7 +380,9 @@ export function toEnvelope(
335
380
  : {}),
336
381
  ...(typeof request.feePayerSignature !== 'undefined'
337
382
  ? { feePayerSignature: request.feePayerSignature }
338
- : {}),
383
+ : request.feePayer
384
+ ? { feePayerSignature: null }
385
+ : {}),
339
386
  ...(typeof request.feeToken !== 'undefined'
340
387
  ? { feeToken: request.feeToken }
341
388
  : {}),
@@ -380,3 +427,15 @@ export declare namespace toEnvelope {
380
427
  | Hex.toBigInt.ErrorType
381
428
  | Errors.GlobalErrorType
382
429
  }
430
+
431
+ /**
432
+ * Shims key data longer than 4 bytes into a 2-byte big-endian length hint.
433
+ * The node's gas estimator only accepts 1, 2, or 4-byte key data as a
434
+ * signature-size hint; anything else silently falls back to the default.
435
+ * @internal
436
+ */
437
+ function shimKeyData(data: Hex.Hex): Hex.Hex {
438
+ const byteLength = Hex.size(data)
439
+ if (byteLength <= 4) return data
440
+ return Hex.fromNumber(byteLength, { size: 2 })
441
+ }
@@ -1464,7 +1464,7 @@ describe('encodeForSigning', () => {
1464
1464
  },
1465
1465
  ],
1466
1466
  feePayerSignature: null,
1467
- feeToken: 1n,
1467
+ feeToken: '0x20c0000000000000000000000000000000000001',
1468
1468
  nonce: 0n,
1469
1469
  })
1470
1470
  const signature = Secp256k1.sign({
@@ -1485,7 +1485,7 @@ describe('encodeForSigning', () => {
1485
1485
  const sponsored = TxEnvelopeTempo.from({
1486
1486
  ...signed,
1487
1487
  feePayerSignature,
1488
- feeToken: 2n,
1488
+ feeToken: '0x20c0000000000000000000000000000000000002',
1489
1489
  })
1490
1490
 
1491
1491
  expect(TxEnvelopeTempo.encodeForSigning(sponsored)).toBe(
@@ -17,7 +17,6 @@ import * as TransactionEnvelope from '../core/TxEnvelope.js'
17
17
  import * as AuthorizationTempo from './AuthorizationTempo.js'
18
18
  import * as KeyAuthorization from './KeyAuthorization.js'
19
19
  import * as SignatureEnvelope from './SignatureEnvelope.js'
20
- import * as TokenId from './TokenId.js'
21
20
  import type * as TransactionRequest from './TransactionRequest.js'
22
21
 
23
22
  /**
@@ -87,8 +86,8 @@ export type TxEnvelopeTempo<
87
86
  gas?: bigintType | undefined
88
87
  /** Fee payer signature. */
89
88
  feePayerSignature?: Signature.Signature<true, numberType> | null | undefined
90
- /** Fee token preference. Address or ID of the TIP-20 token. */
91
- feeToken?: TokenId.TokenIdOrAddress | undefined
89
+ /** Fee token preference. Address of the TIP-20 token. */
90
+ feeToken?: Address.Address | undefined
92
91
  /**
93
92
  * Key authorization for provisioning a new access key.
94
93
  *
@@ -173,6 +172,7 @@ export function assert(envelope: PartialBy<TxEnvelopeTempo, 'type'>) {
173
172
  const {
174
173
  calls,
175
174
  chainId,
175
+ feeToken,
176
176
  maxFeePerGas,
177
177
  maxPriorityFeePerGas,
178
178
  validBefore,
@@ -199,6 +199,9 @@ export function assert(envelope: PartialBy<TxEnvelopeTempo, 'type'>) {
199
199
  for (const call of calls)
200
200
  if (call.to) Address.assert(call.to, { strict: false })
201
201
 
202
+ // Validate fee token
203
+ if (feeToken) Address.assert(feeToken, { strict: false })
204
+
202
205
  // Validate chain ID
203
206
  if (chainId <= 0)
204
207
  throw new TransactionEnvelope.InvalidChainIdError({ chainId })
@@ -719,10 +722,7 @@ export function serialize(
719
722
  nonce ? Hex.fromNumber(nonce) : '0x',
720
723
  typeof validBefore === 'number' ? Hex.fromNumber(validBefore) : '0x',
721
724
  typeof validAfter === 'number' ? Hex.fromNumber(validAfter) : '0x',
722
- !skipFeeToken &&
723
- (typeof feeToken === 'bigint' || typeof feeToken === 'string')
724
- ? TokenId.toAddress(feeToken)
725
- : '0x',
725
+ !skipFeeToken && feeToken ? feeToken : '0x',
726
726
  feePayerSignatureOrSender,
727
727
  authorizationTupleList,
728
728
  ...(keyAuthorization ? [KeyAuthorization.toTuple(keyAuthorization)] : []),