ox 0.0.1 → 0.1.0

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 (756) hide show
  1. package/Abi/package.json +6 -0
  2. package/Abi.ts +163 -0
  3. package/AbiConstructor/package.json +6 -0
  4. package/AbiConstructor.ts +413 -0
  5. package/AbiError/package.json +6 -0
  6. package/AbiError.ts +719 -0
  7. package/AbiEvent/package.json +6 -0
  8. package/AbiEvent.ts +1284 -0
  9. package/AbiFunction/package.json +6 -0
  10. package/AbiFunction.ts +813 -0
  11. package/AbiItem/package.json +6 -0
  12. package/AbiItem.ts +779 -0
  13. package/AbiParameters/package.json +6 -0
  14. package/AbiParameters.ts +712 -0
  15. package/AccessList/package.json +6 -0
  16. package/AccessList.ts +124 -0
  17. package/AccountProof/package.json +6 -0
  18. package/AccountProof.ts +35 -0
  19. package/Address/package.json +6 -0
  20. package/Address.ts +359 -0
  21. package/AesGcm/package.json +6 -0
  22. package/AesGcm.ts +220 -0
  23. package/Authorization/package.json +6 -0
  24. package/Authorization.ts +639 -0
  25. package/Base58/package.json +6 -0
  26. package/Base58.ts +180 -0
  27. package/Base64/package.json +6 -0
  28. package/Base64.ts +333 -0
  29. package/Blobs/package.json +6 -0
  30. package/Blobs.ts +982 -0
  31. package/Block/package.json +6 -0
  32. package/Block.ts +317 -0
  33. package/Bloom/package.json +6 -0
  34. package/Bloom.ts +80 -0
  35. package/Bls/package.json +6 -0
  36. package/Bls.ts +496 -0
  37. package/BlsPoint/package.json +6 -0
  38. package/BlsPoint.ts +232 -0
  39. package/Bytes/package.json +6 -0
  40. package/Bytes.ts +963 -0
  41. package/CHANGELOG.md +7 -0
  42. package/Caches/package.json +6 -0
  43. package/Caches.ts +21 -0
  44. package/ContractAddress/package.json +6 -0
  45. package/ContractAddress.ts +181 -0
  46. package/Ens/package.json +6 -0
  47. package/Ens.ts +116 -0
  48. package/Errors/package.json +6 -0
  49. package/Errors.ts +95 -0
  50. package/Fee/package.json +6 -0
  51. package/Fee.ts +57 -0
  52. package/Filter/package.json +6 -0
  53. package/Filter.ts +144 -0
  54. package/Hash/package.json +6 -0
  55. package/Hash.ts +210 -0
  56. package/HdKey/package.json +6 -0
  57. package/HdKey.ts +175 -0
  58. package/Hex/package.json +6 -0
  59. package/Hex.ts +1040 -0
  60. package/Json/package.json +6 -0
  61. package/Json.ts +84 -0
  62. package/Kzg/package.json +6 -0
  63. package/Kzg.ts +51 -0
  64. package/LICENSE +21 -0
  65. package/Log/package.json +6 -0
  66. package/Log.ts +248 -0
  67. package/Mnemonic/package.json +6 -0
  68. package/Mnemonic.ts +249 -0
  69. package/P256/package.json +6 -0
  70. package/P256.ts +230 -0
  71. package/PersonalMessage/package.json +6 -0
  72. package/PersonalMessage.ts +70 -0
  73. package/Provider/package.json +6 -0
  74. package/Provider.ts +354 -0
  75. package/PublicKey/package.json +6 -0
  76. package/PublicKey.ts +545 -0
  77. package/README.md +75 -26
  78. package/Rlp/package.json +6 -0
  79. package/Rlp.ts +390 -0
  80. package/RpcRequest/package.json +6 -0
  81. package/RpcRequest.ts +192 -0
  82. package/RpcResponse/package.json +6 -0
  83. package/RpcResponse.ts +389 -0
  84. package/RpcSchema/package.json +6 -0
  85. package/RpcSchema.ts +273 -0
  86. package/RpcTransport/package.json +6 -0
  87. package/RpcTransport.ts +198 -0
  88. package/Secp256k1/package.json +6 -0
  89. package/Secp256k1.ts +304 -0
  90. package/Signature/package.json +6 -0
  91. package/Signature.ts +909 -0
  92. package/Siwe/package.json +6 -0
  93. package/Siwe.ts +516 -0
  94. package/Solidity/package.json +6 -0
  95. package/Solidity.ts +109 -0
  96. package/Transaction/package.json +6 -0
  97. package/Transaction.ts +429 -0
  98. package/TransactionEnvelope/package.json +6 -0
  99. package/TransactionEnvelope.ts +205 -0
  100. package/TransactionEnvelopeEip1559/package.json +6 -0
  101. package/TransactionEnvelopeEip1559.ts +656 -0
  102. package/TransactionEnvelopeEip2930/package.json +6 -0
  103. package/TransactionEnvelopeEip2930.ts +624 -0
  104. package/TransactionEnvelopeEip4844/package.json +6 -0
  105. package/TransactionEnvelopeEip4844.ts +764 -0
  106. package/TransactionEnvelopeEip7702/package.json +6 -0
  107. package/TransactionEnvelopeEip7702.ts +639 -0
  108. package/TransactionEnvelopeLegacy/package.json +6 -0
  109. package/TransactionEnvelopeLegacy.ts +674 -0
  110. package/TransactionReceipt/package.json +6 -0
  111. package/TransactionReceipt.ts +341 -0
  112. package/TransactionRequest/package.json +6 -0
  113. package/TransactionRequest.ts +151 -0
  114. package/TypedData/package.json +6 -0
  115. package/TypedData.ts +931 -0
  116. package/ValidatorData/package.json +6 -0
  117. package/ValidatorData.ts +87 -0
  118. package/Value/package.json +6 -0
  119. package/Value.ts +242 -0
  120. package/WebAuthnP256/package.json +6 -0
  121. package/WebAuthnP256.ts +803 -0
  122. package/WebCryptoP256/package.json +6 -0
  123. package/WebCryptoP256.ts +190 -0
  124. package/Withdrawal/package.json +6 -0
  125. package/Withdrawal.ts +95 -0
  126. package/_cjs/Abi.js +17 -0
  127. package/_cjs/Abi.js.map +1 -0
  128. package/_cjs/AbiConstructor.js +42 -0
  129. package/_cjs/AbiConstructor.js.map +1 -0
  130. package/_cjs/AbiError.js +98 -0
  131. package/_cjs/AbiError.js.map +1 -0
  132. package/_cjs/AbiEvent.js +338 -0
  133. package/_cjs/AbiEvent.js.map +1 -0
  134. package/_cjs/AbiFunction.js +85 -0
  135. package/_cjs/AbiFunction.js.map +1 -0
  136. package/_cjs/AbiItem.js +180 -0
  137. package/_cjs/AbiItem.js.map +1 -0
  138. package/_cjs/AbiParameters.js +229 -0
  139. package/_cjs/AbiParameters.js.map +1 -0
  140. package/_cjs/AccessList.js +51 -0
  141. package/_cjs/AccessList.js.map +1 -0
  142. package/_cjs/AccountProof.js +3 -0
  143. package/_cjs/AccountProof.js.map +1 -0
  144. package/_cjs/Address.js +121 -0
  145. package/_cjs/Address.js.map +1 -0
  146. package/_cjs/AesGcm.js +55 -0
  147. package/_cjs/AesGcm.js.map +1 -0
  148. package/_cjs/Authorization.js +99 -0
  149. package/_cjs/Authorization.js.map +1 -0
  150. package/_cjs/Base58.js +52 -0
  151. package/_cjs/Base58.js.map +1 -0
  152. package/_cjs/Base64.js +76 -0
  153. package/_cjs/Base64.js.map +1 -0
  154. package/_cjs/Blobs.js +255 -0
  155. package/_cjs/Blobs.js.map +1 -0
  156. package/_cjs/Block.js +87 -0
  157. package/_cjs/Block.js.map +1 -0
  158. package/_cjs/Bloom.js +23 -0
  159. package/_cjs/Bloom.js.map +1 -0
  160. package/_cjs/Bls.js +79 -0
  161. package/_cjs/Bls.js.map +1 -0
  162. package/_cjs/BlsPoint.js +32 -0
  163. package/_cjs/BlsPoint.js.map +1 -0
  164. package/_cjs/Bytes.js +279 -0
  165. package/_cjs/Bytes.js.map +1 -0
  166. package/_cjs/Caches.js +14 -0
  167. package/_cjs/Caches.js.map +1 -0
  168. package/_cjs/ContractAddress.js +39 -0
  169. package/_cjs/ContractAddress.js.map +1 -0
  170. package/_cjs/Ens.js +37 -0
  171. package/_cjs/Ens.js.map +1 -0
  172. package/_cjs/Errors.js +99 -0
  173. package/_cjs/Errors.js.map +1 -0
  174. package/_cjs/Fee.js +3 -0
  175. package/_cjs/Fee.js.map +1 -0
  176. package/_cjs/Filter.js +43 -0
  177. package/_cjs/Filter.js.map +1 -0
  178. package/_cjs/Hash.js +40 -0
  179. package/_cjs/Hash.js.map +1 -0
  180. package/_cjs/HdKey.js +30 -0
  181. package/_cjs/HdKey.js.map +1 -0
  182. package/_cjs/Hex.js +324 -0
  183. package/_cjs/Hex.js.map +1 -0
  184. package/_cjs/Json.js +25 -0
  185. package/_cjs/Json.js.map +1 -0
  186. package/_cjs/Kzg.js +14 -0
  187. package/_cjs/Kzg.js.map +1 -0
  188. package/_cjs/Log.js +35 -0
  189. package/_cjs/Log.js.map +1 -0
  190. package/_cjs/Mnemonic.js +56 -0
  191. package/_cjs/Mnemonic.js.map +1 -0
  192. package/_cjs/P256.js +52 -0
  193. package/_cjs/P256.js.map +1 -0
  194. package/_cjs/PersonalMessage.js +16 -0
  195. package/_cjs/PersonalMessage.js.map +1 -0
  196. package/_cjs/Provider.js +90 -0
  197. package/_cjs/Provider.js.map +1 -0
  198. package/_cjs/PublicKey.js +192 -0
  199. package/_cjs/PublicKey.js.map +1 -0
  200. package/_cjs/Rlp.js +179 -0
  201. package/_cjs/Rlp.js.map +1 -0
  202. package/_cjs/RpcRequest.js +27 -0
  203. package/_cjs/RpcRequest.js.map +1 -0
  204. package/_cjs/RpcResponse.js +368 -0
  205. package/_cjs/RpcResponse.js.map +1 -0
  206. package/_cjs/RpcSchema.js +7 -0
  207. package/_cjs/RpcSchema.js.map +1 -0
  208. package/_cjs/RpcTransport.js +95 -0
  209. package/_cjs/RpcTransport.js.map +1 -0
  210. package/_cjs/Secp256k1.js +57 -0
  211. package/_cjs/Secp256k1.js.map +1 -0
  212. package/_cjs/Signature.js +305 -0
  213. package/_cjs/Signature.js.map +1 -0
  214. package/_cjs/Siwe.js +231 -0
  215. package/_cjs/Siwe.js.map +1 -0
  216. package/_cjs/Solidity.js +104 -0
  217. package/_cjs/Solidity.js.map +1 -0
  218. package/_cjs/Transaction.js +106 -0
  219. package/_cjs/Transaction.js.map +1 -0
  220. package/_cjs/TransactionEnvelope.js +80 -0
  221. package/_cjs/TransactionEnvelope.js.map +1 -0
  222. package/_cjs/TransactionEnvelopeEip1559.js +182 -0
  223. package/_cjs/TransactionEnvelopeEip1559.js.map +1 -0
  224. package/_cjs/TransactionEnvelopeEip2930.js +166 -0
  225. package/_cjs/TransactionEnvelopeEip2930.js.map +1 -0
  226. package/_cjs/TransactionEnvelopeEip4844.js +224 -0
  227. package/_cjs/TransactionEnvelopeEip4844.js.map +1 -0
  228. package/_cjs/TransactionEnvelopeEip7702.js +156 -0
  229. package/_cjs/TransactionEnvelopeEip7702.js.map +1 -0
  230. package/_cjs/TransactionEnvelopeLegacy.js +221 -0
  231. package/_cjs/TransactionEnvelopeLegacy.js.map +1 -0
  232. package/_cjs/TransactionReceipt.js +76 -0
  233. package/_cjs/TransactionReceipt.js.map +1 -0
  234. package/_cjs/TransactionRequest.js +51 -0
  235. package/_cjs/TransactionRequest.js.map +1 -0
  236. package/_cjs/TypedData.js +318 -0
  237. package/_cjs/TypedData.js.map +1 -0
  238. package/_cjs/ValidatorData.js +16 -0
  239. package/_cjs/ValidatorData.js.map +1 -0
  240. package/_cjs/Value.js +96 -0
  241. package/_cjs/Value.js.map +1 -0
  242. package/_cjs/WebAuthnP256.js +245 -0
  243. package/_cjs/WebAuthnP256.js.map +1 -0
  244. package/_cjs/WebCryptoP256.js +46 -0
  245. package/_cjs/WebCryptoP256.js.map +1 -0
  246. package/_cjs/Withdrawal.js +24 -0
  247. package/_cjs/Withdrawal.js.map +1 -0
  248. package/_cjs/index.js +66 -0
  249. package/_cjs/index.js.map +1 -0
  250. package/_cjs/internal/abi.js +11 -0
  251. package/_cjs/internal/abi.js.map +1 -0
  252. package/_cjs/internal/abiConstructor.js +3 -0
  253. package/_cjs/internal/abiConstructor.js.map +1 -0
  254. package/_cjs/internal/abiError.js +3 -0
  255. package/_cjs/internal/abiError.js.map +1 -0
  256. package/_cjs/internal/abiEvent.js +3 -0
  257. package/_cjs/internal/abiEvent.js.map +1 -0
  258. package/_cjs/internal/abiFunction.js +3 -0
  259. package/_cjs/internal/abiFunction.js.map +1 -0
  260. package/_cjs/internal/abiItem.js +110 -0
  261. package/_cjs/internal/abiItem.js.map +1 -0
  262. package/_cjs/internal/abiParameters.js +376 -0
  263. package/_cjs/internal/abiParameters.js.map +1 -0
  264. package/_cjs/internal/base58.js +89 -0
  265. package/_cjs/internal/base58.js.map +1 -0
  266. package/_cjs/internal/bytes.js +88 -0
  267. package/_cjs/internal/bytes.js.map +1 -0
  268. package/_cjs/internal/cursor.js +210 -0
  269. package/_cjs/internal/cursor.js.map +1 -0
  270. package/_cjs/internal/ens.js +43 -0
  271. package/_cjs/internal/ens.js.map +1 -0
  272. package/_cjs/internal/errors.js +28 -0
  273. package/_cjs/internal/errors.js.map +1 -0
  274. package/_cjs/internal/hdKey.js +19 -0
  275. package/_cjs/internal/hdKey.js.map +1 -0
  276. package/_cjs/internal/hex.js +66 -0
  277. package/_cjs/internal/hex.js.map +1 -0
  278. package/_cjs/internal/lru.js +34 -0
  279. package/_cjs/internal/lru.js.map +1 -0
  280. package/_cjs/internal/mnemonic/wordlists.js +24 -0
  281. package/_cjs/internal/mnemonic/wordlists.js.map +1 -0
  282. package/_cjs/internal/promise.js +49 -0
  283. package/_cjs/internal/promise.js.map +1 -0
  284. package/_cjs/internal/register.js +3 -0
  285. package/_cjs/internal/register.js.map +1 -0
  286. package/_cjs/internal/rpcSchema.js +3 -0
  287. package/_cjs/internal/rpcSchema.js.map +1 -0
  288. package/_cjs/internal/rpcSchemas/eth.js +3 -0
  289. package/_cjs/internal/rpcSchemas/eth.js.map +1 -0
  290. package/_cjs/internal/rpcSchemas/wallet.js +3 -0
  291. package/_cjs/internal/rpcSchemas/wallet.js.map +1 -0
  292. package/_cjs/internal/rpcTransport.js +19 -0
  293. package/_cjs/internal/rpcTransport.js.map +1 -0
  294. package/_cjs/internal/types.js +3 -0
  295. package/_cjs/internal/types.js.map +1 -0
  296. package/_cjs/internal/uid.js +17 -0
  297. package/_cjs/internal/uid.js.map +1 -0
  298. package/_cjs/internal/webauthn.js +28 -0
  299. package/_cjs/internal/webauthn.js.map +1 -0
  300. package/_cjs/package.json +1 -0
  301. package/_cjs/trusted-setups/Paths.js +6 -0
  302. package/_cjs/trusted-setups/Paths.js.map +1 -0
  303. package/_cjs/trusted-setups/index.js +5 -0
  304. package/_cjs/trusted-setups/index.js.map +1 -0
  305. package/_cjs/trusted-setups/internal/paths.js +11 -0
  306. package/_cjs/trusted-setups/internal/paths.js.map +1 -0
  307. package/_cjs/version.js +5 -0
  308. package/_cjs/version.js.map +1 -0
  309. package/_cjs/window/index.js +3 -0
  310. package/_cjs/window/index.js.map +1 -0
  311. package/_esm/Abi.js +19 -0
  312. package/_esm/Abi.js.map +1 -0
  313. package/_esm/AbiConstructor.js +102 -0
  314. package/_esm/AbiConstructor.js.map +1 -0
  315. package/_esm/AbiError.js +364 -0
  316. package/_esm/AbiError.js.map +1 -0
  317. package/_esm/AbiEvent.js +1038 -0
  318. package/_esm/AbiEvent.js.map +1 -0
  319. package/_esm/AbiFunction.js +549 -0
  320. package/_esm/AbiFunction.js.map +1 -0
  321. package/_esm/AbiItem.js +574 -0
  322. package/_esm/AbiItem.js.map +1 -0
  323. package/_esm/AbiParameters.js +543 -0
  324. package/_esm/AbiParameters.js.map +1 -0
  325. package/_esm/AccessList.js +105 -0
  326. package/_esm/AccessList.js.map +1 -0
  327. package/_esm/AccountProof.js +2 -0
  328. package/_esm/AccountProof.js.map +1 -0
  329. package/_esm/Address.js +268 -0
  330. package/_esm/Address.js.map +1 -0
  331. package/_esm/AesGcm.js +124 -0
  332. package/_esm/AesGcm.js.map +1 -0
  333. package/_esm/Authorization.js +441 -0
  334. package/_esm/Authorization.js.map +1 -0
  335. package/_esm/Base58.js +142 -0
  336. package/_esm/Base58.js.map +1 -0
  337. package/_esm/Base64.js +236 -0
  338. package/_esm/Base64.js.map +1 -0
  339. package/_esm/Blobs.js +624 -0
  340. package/_esm/Blobs.js.map +1 -0
  341. package/_esm/Block.js +177 -0
  342. package/_esm/Block.js.map +1 -0
  343. package/_esm/Bloom.js +57 -0
  344. package/_esm/Bloom.js.map +1 -0
  345. package/_esm/Bls.js +141 -0
  346. package/_esm/Bls.js.map +1 -0
  347. package/_esm/BlsPoint.js +59 -0
  348. package/_esm/BlsPoint.js.map +1 -0
  349. package/_esm/Bytes.js +719 -0
  350. package/_esm/Bytes.js.map +1 -0
  351. package/_esm/Caches.js +19 -0
  352. package/_esm/Caches.js.map +1 -0
  353. package/_esm/ContractAddress.js +110 -0
  354. package/_esm/ContractAddress.js.map +1 -0
  355. package/_esm/Ens.js +84 -0
  356. package/_esm/Ens.js.map +1 -0
  357. package/_esm/Errors.js +105 -0
  358. package/_esm/Errors.js.map +1 -0
  359. package/_esm/Fee.js +2 -0
  360. package/_esm/Fee.js.map +1 -0
  361. package/_esm/Filter.js +100 -0
  362. package/_esm/Filter.js.map +1 -0
  363. package/_esm/Hash.js +126 -0
  364. package/_esm/Hash.js.map +1 -0
  365. package/_esm/HdKey.js +107 -0
  366. package/_esm/HdKey.js.map +1 -0
  367. package/_esm/Hex.js +763 -0
  368. package/_esm/Hex.js.map +1 -0
  369. package/_esm/Json.js +62 -0
  370. package/_esm/Json.js.map +1 -0
  371. package/_esm/Kzg.js +30 -0
  372. package/_esm/Kzg.js.map +1 -0
  373. package/_esm/Log.js +181 -0
  374. package/_esm/Log.js.map +1 -0
  375. package/_esm/Mnemonic.js +154 -0
  376. package/_esm/Mnemonic.js.map +1 -0
  377. package/_esm/P256.js +131 -0
  378. package/_esm/P256.js.map +1 -0
  379. package/_esm/PersonalMessage.js +46 -0
  380. package/_esm/PersonalMessage.js.map +1 -0
  381. package/_esm/Provider.js +122 -0
  382. package/_esm/Provider.js.map +1 -0
  383. package/_esm/PublicKey.js +395 -0
  384. package/_esm/PublicKey.js.map +1 -0
  385. package/_esm/Rlp.js +267 -0
  386. package/_esm/Rlp.js.map +1 -0
  387. package/_esm/RpcRequest.js +131 -0
  388. package/_esm/RpcRequest.js.map +1 -0
  389. package/_esm/RpcResponse.js +457 -0
  390. package/_esm/RpcResponse.js.map +1 -0
  391. package/_esm/RpcSchema.js +46 -0
  392. package/_esm/RpcSchema.js.map +1 -0
  393. package/_esm/RpcTransport.js +110 -0
  394. package/_esm/RpcTransport.js.map +1 -0
  395. package/_esm/Secp256k1.js +173 -0
  396. package/_esm/Secp256k1.js.map +1 -0
  397. package/_esm/Signature.js +696 -0
  398. package/_esm/Signature.js.map +1 -0
  399. package/_esm/Siwe.js +374 -0
  400. package/_esm/Siwe.js.map +1 -0
  401. package/_esm/Solidity.js +104 -0
  402. package/_esm/Solidity.js.map +1 -0
  403. package/_esm/Transaction.js +176 -0
  404. package/_esm/Transaction.js.map +1 -0
  405. package/_esm/TransactionEnvelope.js +139 -0
  406. package/_esm/TransactionEnvelope.js.map +1 -0
  407. package/_esm/TransactionEnvelopeEip1559.js +455 -0
  408. package/_esm/TransactionEnvelopeEip1559.js.map +1 -0
  409. package/_esm/TransactionEnvelopeEip2930.js +439 -0
  410. package/_esm/TransactionEnvelopeEip2930.js.map +1 -0
  411. package/_esm/TransactionEnvelopeEip4844.js +542 -0
  412. package/_esm/TransactionEnvelopeEip4844.js.map +1 -0
  413. package/_esm/TransactionEnvelopeEip7702.js +442 -0
  414. package/_esm/TransactionEnvelopeEip7702.js.map +1 -0
  415. package/_esm/TransactionEnvelopeLegacy.js +495 -0
  416. package/_esm/TransactionEnvelopeLegacy.js.map +1 -0
  417. package/_esm/TransactionReceipt.js +229 -0
  418. package/_esm/TransactionReceipt.js.map +1 -0
  419. package/_esm/TransactionRequest.js +89 -0
  420. package/_esm/TransactionRequest.js.map +1 -0
  421. package/_esm/TypedData.js +635 -0
  422. package/_esm/TypedData.js.map +1 -0
  423. package/_esm/ValidatorData.js +52 -0
  424. package/_esm/ValidatorData.js.map +1 -0
  425. package/_esm/Value.js +196 -0
  426. package/_esm/Value.js.map +1 -0
  427. package/_esm/WebAuthnP256.js +471 -0
  428. package/_esm/WebAuthnP256.js.map +1 -0
  429. package/_esm/WebCryptoP256.js +116 -0
  430. package/_esm/WebCryptoP256.js.map +1 -0
  431. package/_esm/Withdrawal.js +72 -0
  432. package/_esm/Withdrawal.js.map +1 -0
  433. package/_esm/index.js +3366 -0
  434. package/_esm/index.js.map +1 -0
  435. package/_esm/internal/abi.js +9 -0
  436. package/_esm/internal/abi.js.map +1 -0
  437. package/_esm/internal/abiConstructor.js +2 -0
  438. package/_esm/internal/abiConstructor.js.map +1 -0
  439. package/_esm/internal/abiError.js +2 -0
  440. package/_esm/internal/abiError.js.map +1 -0
  441. package/_esm/internal/abiEvent.js +2 -0
  442. package/_esm/internal/abiEvent.js.map +1 -0
  443. package/_esm/internal/abiFunction.js +2 -0
  444. package/_esm/internal/abiFunction.js.map +1 -0
  445. package/_esm/internal/abiItem.js +122 -0
  446. package/_esm/internal/abiItem.js.map +1 -0
  447. package/_esm/internal/abiParameters.js +419 -0
  448. package/_esm/internal/abiParameters.js.map +1 -0
  449. package/_esm/internal/base58.js +91 -0
  450. package/_esm/internal/base58.js.map +1 -0
  451. package/_esm/internal/bytes.js +86 -0
  452. package/_esm/internal/bytes.js.map +1 -0
  453. package/_esm/internal/cursor.js +207 -0
  454. package/_esm/internal/cursor.js.map +1 -0
  455. package/_esm/internal/ens.js +47 -0
  456. package/_esm/internal/ens.js.map +1 -0
  457. package/_esm/internal/errors.js +26 -0
  458. package/_esm/internal/errors.js.map +1 -0
  459. package/_esm/internal/hdKey.js +17 -0
  460. package/_esm/internal/hdKey.js.map +1 -0
  461. package/_esm/internal/hex.js +64 -0
  462. package/_esm/internal/hex.js.map +1 -0
  463. package/_esm/internal/lru.js +36 -0
  464. package/_esm/internal/lru.js.map +1 -0
  465. package/_esm/internal/mnemonic/wordlists.js +11 -0
  466. package/_esm/internal/mnemonic/wordlists.js.map +1 -0
  467. package/_esm/internal/promise.js +52 -0
  468. package/_esm/internal/promise.js.map +1 -0
  469. package/_esm/internal/register.js +2 -0
  470. package/_esm/internal/register.js.map +1 -0
  471. package/_esm/internal/rpcSchema.js +2 -0
  472. package/_esm/internal/rpcSchema.js.map +1 -0
  473. package/_esm/internal/rpcSchemas/eth.js +2 -0
  474. package/_esm/internal/rpcSchemas/eth.js.map +1 -0
  475. package/_esm/internal/rpcSchemas/wallet.js +2 -0
  476. package/_esm/internal/rpcSchemas/wallet.js.map +1 -0
  477. package/_esm/internal/rpcTransport.js +20 -0
  478. package/_esm/internal/rpcTransport.js.map +1 -0
  479. package/_esm/internal/types.js +2 -0
  480. package/_esm/internal/types.js.map +1 -0
  481. package/_esm/internal/uid.js +15 -0
  482. package/_esm/internal/uid.js.map +1 -0
  483. package/_esm/internal/webauthn.js +35 -0
  484. package/_esm/internal/webauthn.js.map +1 -0
  485. package/_esm/package.json +1 -0
  486. package/_esm/trusted-setups/Paths.js +3 -0
  487. package/_esm/trusted-setups/Paths.js.map +1 -0
  488. package/_esm/trusted-setups/index.js +2 -0
  489. package/_esm/trusted-setups/index.js.map +1 -0
  490. package/_esm/trusted-setups/internal/paths.js +12 -0
  491. package/_esm/trusted-setups/internal/paths.js.map +1 -0
  492. package/_esm/version.js +3 -0
  493. package/_esm/version.js.map +1 -0
  494. package/_esm/window/index.js +2 -0
  495. package/_esm/window/index.js.map +1 -0
  496. package/_test/Abi.test-d/package.json +6 -0
  497. package/_test/AbiConstructor.test-d/package.json +6 -0
  498. package/_test/AbiError.test-d/package.json +6 -0
  499. package/_test/AbiEvent.snap-d/package.json +6 -0
  500. package/_test/AbiEvent.snap-d.ts +329 -0
  501. package/_test/AbiFunction.snap-d/package.json +6 -0
  502. package/_test/AbiFunction.snap-d.ts +262 -0
  503. package/_test/AbiItem.snap-d/package.json +6 -0
  504. package/_test/AbiItem.snap-d.ts +131 -0
  505. package/_test/AbiParameters.bench/package.json +6 -0
  506. package/_test/AbiParameters.snap-d/package.json +6 -0
  507. package/_test/AbiParameters.snap-d.ts +66 -0
  508. package/_test/Address.bench/package.json +6 -0
  509. package/_test/Base58.bench/package.json +6 -0
  510. package/_test/Hex.bench/package.json +6 -0
  511. package/_test/Hex.test-d/package.json +6 -0
  512. package/_test/PublicKey.test-d/package.json +6 -0
  513. package/_test/Rlp.bench/package.json +6 -0
  514. package/_test/Rlp.test-d/package.json +6 -0
  515. package/_test/Signature.snap-d/package.json +6 -0
  516. package/_test/Signature.snap-d.ts +96 -0
  517. package/_test/TransactionEnvelopeEip1559.test-d/package.json +6 -0
  518. package/_test/TransactionEnvelopeEip2930.test-d/package.json +6 -0
  519. package/_test/TransactionEnvelopeEip4844.test-d/package.json +6 -0
  520. package/_test/TransactionEnvelopeEip7702.test-d/package.json +6 -0
  521. package/_test/TransactionEnvelopeLegacy.test-d/package.json +6 -0
  522. package/_test/TypedData.test-d/package.json +6 -0
  523. package/_types/Abi.d.ts +137 -0
  524. package/_types/Abi.d.ts.map +1 -0
  525. package/_types/AbiConstructor.d.ts +305 -0
  526. package/_types/AbiConstructor.d.ts.map +1 -0
  527. package/_types/AbiError.d.ts +522 -0
  528. package/_types/AbiError.d.ts.map +1 -0
  529. package/_types/AbiEvent.d.ts +892 -0
  530. package/_types/AbiEvent.d.ts.map +1 -0
  531. package/_types/AbiFunction.d.ts +602 -0
  532. package/_types/AbiFunction.d.ts.map +1 -0
  533. package/_types/AbiItem.d.ts +544 -0
  534. package/_types/AbiItem.d.ts.map +1 -0
  535. package/_types/AbiParameters.d.ts +466 -0
  536. package/_types/AbiParameters.d.ts.map +1 -0
  537. package/_types/AccessList.d.ts +83 -0
  538. package/_types/AccessList.d.ts.map +1 -0
  539. package/_types/AccountProof.d.ts +32 -0
  540. package/_types/AccountProof.d.ts.map +1 -0
  541. package/_types/Address.d.ts +244 -0
  542. package/_types/Address.d.ts.map +1 -0
  543. package/_types/AesGcm.d.ts +116 -0
  544. package/_types/AesGcm.d.ts.map +1 -0
  545. package/_types/Authorization.d.ts +461 -0
  546. package/_types/Authorization.d.ts.map +1 -0
  547. package/_types/Base58.d.ts +131 -0
  548. package/_types/Base58.d.ts.map +1 -0
  549. package/_types/Base64.d.ts +244 -0
  550. package/_types/Base64.d.ts.map +1 -0
  551. package/_types/Blobs.d.ts +556 -0
  552. package/_types/Blobs.d.ts.map +1 -0
  553. package/_types/Block.d.ts +190 -0
  554. package/_types/Block.d.ts.map +1 -0
  555. package/_types/Bloom.d.ts +54 -0
  556. package/_types/Bloom.d.ts.map +1 -0
  557. package/_types/Bls.d.ts +365 -0
  558. package/_types/Bls.d.ts.map +1 -0
  559. package/_types/BlsPoint.d.ts +187 -0
  560. package/_types/BlsPoint.d.ts.map +1 -0
  561. package/_types/Bytes.d.ts +674 -0
  562. package/_types/Bytes.d.ts.map +1 -0
  563. package/_types/Caches.d.ts +13 -0
  564. package/_types/Caches.d.ts.map +1 -0
  565. package/_types/ContractAddress.d.ts +115 -0
  566. package/_types/ContractAddress.d.ts.map +1 -0
  567. package/_types/Ens.d.ts +72 -0
  568. package/_types/Ens.d.ts.map +1 -0
  569. package/_types/Errors.d.ts +33 -0
  570. package/_types/Errors.d.ts.map +1 -0
  571. package/_types/Fee.d.ts +41 -0
  572. package/_types/Fee.d.ts.map +1 -0
  573. package/_types/Filter.d.ts +100 -0
  574. package/_types/Filter.d.ts.map +1 -0
  575. package/_types/Hash.d.ts +135 -0
  576. package/_types/Hash.d.ts.map +1 -0
  577. package/_types/HdKey.d.ts +146 -0
  578. package/_types/HdKey.d.ts.map +1 -0
  579. package/_types/Hex.d.ts +711 -0
  580. package/_types/Hex.d.ts.map +1 -0
  581. package/_types/Json.d.ts +53 -0
  582. package/_types/Json.d.ts.map +1 -0
  583. package/_types/Kzg.d.ts +42 -0
  584. package/_types/Kzg.d.ts.map +1 -0
  585. package/_types/Log.d.ts +194 -0
  586. package/_types/Log.d.ts.map +1 -0
  587. package/_types/Mnemonic.d.ts +176 -0
  588. package/_types/Mnemonic.d.ts.map +1 -0
  589. package/_types/P256.d.ts +207 -0
  590. package/_types/P256.d.ts.map +1 -0
  591. package/_types/PersonalMessage.d.ts +49 -0
  592. package/_types/PersonalMessage.d.ts.map +1 -0
  593. package/_types/Provider.d.ts +268 -0
  594. package/_types/Provider.d.ts.map +1 -0
  595. package/_types/PublicKey.d.ts +327 -0
  596. package/_types/PublicKey.d.ts.map +1 -0
  597. package/_types/Rlp.d.ts +153 -0
  598. package/_types/Rlp.d.ts.map +1 -0
  599. package/_types/RpcRequest.d.ts +144 -0
  600. package/_types/RpcRequest.d.ts.map +1 -0
  601. package/_types/RpcResponse.d.ts +266 -0
  602. package/_types/RpcResponse.d.ts.map +1 -0
  603. package/_types/RpcSchema.d.ts +248 -0
  604. package/_types/RpcSchema.d.ts.map +1 -0
  605. package/_types/RpcTransport.d.ts +65 -0
  606. package/_types/RpcTransport.d.ts.map +1 -0
  607. package/_types/Secp256k1.d.ts +277 -0
  608. package/_types/Secp256k1.d.ts.map +1 -0
  609. package/_types/Signature.d.ts +601 -0
  610. package/_types/Signature.d.ts.map +1 -0
  611. package/_types/Siwe.d.ts +249 -0
  612. package/_types/Siwe.d.ts.map +1 -0
  613. package/_types/Solidity.d.ts +100 -0
  614. package/_types/Solidity.d.ts.map +1 -0
  615. package/_types/Transaction.d.ts +235 -0
  616. package/_types/Transaction.d.ts.map +1 -0
  617. package/_types/TransactionEnvelope.d.ts +141 -0
  618. package/_types/TransactionEnvelope.d.ts.map +1 -0
  619. package/_types/TransactionEnvelopeEip1559.d.ts +367 -0
  620. package/_types/TransactionEnvelopeEip1559.d.ts.map +1 -0
  621. package/_types/TransactionEnvelopeEip2930.d.ts +364 -0
  622. package/_types/TransactionEnvelopeEip2930.d.ts.map +1 -0
  623. package/_types/TransactionEnvelopeEip4844.d.ts +419 -0
  624. package/_types/TransactionEnvelopeEip4844.d.ts.map +1 -0
  625. package/_types/TransactionEnvelopeEip7702.d.ts +377 -0
  626. package/_types/TransactionEnvelopeEip7702.d.ts.map +1 -0
  627. package/_types/TransactionEnvelopeLegacy.d.ts +358 -0
  628. package/_types/TransactionEnvelopeLegacy.d.ts.map +1 -0
  629. package/_types/TransactionReceipt.d.ts +271 -0
  630. package/_types/TransactionReceipt.d.ts.map +1 -0
  631. package/_types/TransactionRequest.d.ts +92 -0
  632. package/_types/TransactionRequest.d.ts.map +1 -0
  633. package/_types/TypedData.d.ts +496 -0
  634. package/_types/TypedData.d.ts.map +1 -0
  635. package/_types/ValidatorData.d.ts +64 -0
  636. package/_types/ValidatorData.d.ts.map +1 -0
  637. package/_types/Value.d.ts +159 -0
  638. package/_types/Value.d.ts.map +1 -0
  639. package/_types/WebAuthnP256.d.ts +445 -0
  640. package/_types/WebAuthnP256.d.ts.map +1 -0
  641. package/_types/WebCryptoP256.d.ts +119 -0
  642. package/_types/WebCryptoP256.d.ts.map +1 -0
  643. package/_types/Withdrawal.d.ts +74 -0
  644. package/_types/Withdrawal.d.ts.map +1 -0
  645. package/_types/index.d.ts +3367 -0
  646. package/_types/index.d.ts.map +1 -0
  647. package/_types/internal/abi.d.ts +4 -0
  648. package/_types/internal/abi.d.ts.map +1 -0
  649. package/_types/internal/abiConstructor.d.ts +11 -0
  650. package/_types/internal/abiConstructor.d.ts.map +1 -0
  651. package/_types/internal/abiError.d.ts +11 -0
  652. package/_types/internal/abiError.d.ts.map +1 -0
  653. package/_types/internal/abiEvent.d.ts +60 -0
  654. package/_types/internal/abiEvent.d.ts.map +1 -0
  655. package/_types/internal/abiFunction.d.ts +11 -0
  656. package/_types/internal/abiFunction.d.ts.map +1 -0
  657. package/_types/internal/abiItem.d.ts +100 -0
  658. package/_types/internal/abiItem.d.ts.map +1 -0
  659. package/_types/internal/abiParameters.d.ts +169 -0
  660. package/_types/internal/abiParameters.d.ts.map +1 -0
  661. package/_types/internal/base58.d.ts +17 -0
  662. package/_types/internal/base58.d.ts.map +1 -0
  663. package/_types/internal/bytes.d.ts +52 -0
  664. package/_types/internal/bytes.d.ts.map +1 -0
  665. package/_types/internal/cursor.d.ts +70 -0
  666. package/_types/internal/cursor.d.ts.map +1 -0
  667. package/_types/internal/ens.d.ts +23 -0
  668. package/_types/internal/ens.d.ts.map +1 -0
  669. package/_types/internal/errors.d.ts +7 -0
  670. package/_types/internal/errors.d.ts.map +1 -0
  671. package/_types/internal/hdKey.d.ts +10 -0
  672. package/_types/internal/hdKey.d.ts.map +1 -0
  673. package/_types/internal/hex.d.ts +39 -0
  674. package/_types/internal/hex.d.ts.map +1 -0
  675. package/_types/internal/lru.d.ts +13 -0
  676. package/_types/internal/lru.d.ts.map +1 -0
  677. package/_types/internal/mnemonic/wordlists.d.ts +11 -0
  678. package/_types/internal/mnemonic/wordlists.d.ts.map +1 -0
  679. package/_types/internal/promise.d.ts +27 -0
  680. package/_types/internal/promise.d.ts.map +1 -0
  681. package/_types/internal/register.d.ts +13 -0
  682. package/_types/internal/register.d.ts.map +1 -0
  683. package/_types/internal/rpcSchema.d.ts +12 -0
  684. package/_types/internal/rpcSchema.d.ts.map +1 -0
  685. package/_types/internal/rpcSchemas/eth.d.ts +718 -0
  686. package/_types/internal/rpcSchemas/eth.d.ts.map +1 -0
  687. package/_types/internal/rpcSchemas/wallet.d.ts +416 -0
  688. package/_types/internal/rpcSchemas/wallet.d.ts.map +1 -0
  689. package/_types/internal/rpcTransport.d.ts +38 -0
  690. package/_types/internal/rpcTransport.d.ts.map +1 -0
  691. package/_types/internal/types.d.ts +284 -0
  692. package/_types/internal/types.d.ts.map +1 -0
  693. package/_types/internal/uid.d.ts +3 -0
  694. package/_types/internal/uid.d.ts.map +1 -0
  695. package/_types/internal/webauthn.d.ts +127 -0
  696. package/_types/internal/webauthn.d.ts.map +1 -0
  697. package/_types/trusted-setups/Paths.d.ts +2 -0
  698. package/_types/trusted-setups/Paths.d.ts.map +1 -0
  699. package/_types/trusted-setups/index.d.ts +2 -0
  700. package/_types/trusted-setups/index.d.ts.map +1 -0
  701. package/_types/trusted-setups/internal/paths.d.ts +3 -0
  702. package/_types/trusted-setups/internal/paths.d.ts.map +1 -0
  703. package/_types/version.d.ts +3 -0
  704. package/_types/version.d.ts.map +1 -0
  705. package/_types/window/index.d.ts +7 -0
  706. package/_types/window/index.d.ts.map +1 -0
  707. package/index.ts +3427 -0
  708. package/internal/abi.ts +11 -0
  709. package/internal/abiConstructor.ts +32 -0
  710. package/internal/abiError.ts +30 -0
  711. package/internal/abiEvent.ts +154 -0
  712. package/internal/abiFunction.ts +32 -0
  713. package/internal/abiItem.ts +593 -0
  714. package/internal/abiParameters.ts +741 -0
  715. package/internal/base58.ts +106 -0
  716. package/internal/bytes.ts +152 -0
  717. package/internal/cursor.ts +252 -0
  718. package/internal/ens.ts +64 -0
  719. package/internal/errors.ts +26 -0
  720. package/internal/hdKey.ts +25 -0
  721. package/internal/hex.ts +123 -0
  722. package/internal/lru.ts +34 -0
  723. package/internal/mnemonic/wordlists.ts +10 -0
  724. package/internal/promise.ts +66 -0
  725. package/internal/register.ts +15 -0
  726. package/internal/rpcSchema.ts +20 -0
  727. package/internal/rpcSchemas/eth.ts +727 -0
  728. package/internal/rpcSchemas/wallet.ts +428 -0
  729. package/internal/rpcTransport.ts +74 -0
  730. package/internal/types.ts +414 -0
  731. package/internal/uid.ts +15 -0
  732. package/internal/webauthn.ts +198 -0
  733. package/package.json +500 -20
  734. package/trusted-setups/Paths/package.json +6 -0
  735. package/trusted-setups/Paths.ts +3 -0
  736. package/trusted-setups/index.ts +1 -0
  737. package/trusted-setups/internal/paths.ts +13 -0
  738. package/trusted-setups/internal/setups/mainnet.json +8265 -0
  739. package/trusted-setups/internal/setups/mainnet.txt +4163 -0
  740. package/trusted-setups/package.json +6 -0
  741. package/tsdoc.json +4 -0
  742. package/version/package.json +6 -0
  743. package/version.ts +2 -0
  744. package/window/index.ts +7 -0
  745. package/window/package.json +6 -0
  746. package/cl/ansiesc.js +0 -25
  747. package/cl/deps.js +0 -7
  748. package/cl/editor.js +0 -141
  749. package/cl/index.html +0 -19
  750. package/cl/ox.js +0 -44
  751. package/cl/socket.io.js +0 -1922
  752. package/cl/style.css +0 -37
  753. package/srv/deps.js +0 -88
  754. package/srv/httpSrv.js +0 -82
  755. package/srv/ox.js +0 -44
  756. package/srv/remoteXtermReq.js +0 -70
@@ -0,0 +1,764 @@
1
+ import * as AccessList from './AccessList.js'
2
+ import * as Blobs from './Blobs.js'
3
+ import type * as Errors from './Errors.js'
4
+ import * as Hash from './Hash.js'
5
+ import * as Hex from './Hex.js'
6
+ import * as Kzg from './Kzg.js'
7
+ import * as Rlp from './Rlp.js'
8
+ import * as Signature from './Signature.js'
9
+ import * as TransactionEnvelope from './TransactionEnvelope.js'
10
+ import * as TransactionEnvelopeEip1559 from './TransactionEnvelopeEip1559.js'
11
+ import type {
12
+ Assign,
13
+ Compute,
14
+ PartialBy,
15
+ UnionPartialBy,
16
+ } from './internal/types.js'
17
+
18
+ export type TransactionEnvelopeEip4844<
19
+ signed extends boolean = boolean,
20
+ bigintType = bigint,
21
+ numberType = number,
22
+ type extends string = Type,
23
+ > = Compute<
24
+ TransactionEnvelope.Base<type, signed, bigintType, numberType> & {
25
+ /** EIP-2930 Access List. */
26
+ accessList?: AccessList.AccessList | undefined
27
+ /** Versioned hashes of blobs to be included in the transaction. */
28
+ blobVersionedHashes: readonly Hex.Hex[]
29
+ /** Maximum total fee per gas sender is willing to pay for blob gas (in wei). */
30
+ maxFeePerBlobGas?: bigintType | undefined
31
+ /** Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas). */
32
+ maxFeePerGas?: bigintType | undefined
33
+ /** Max priority fee per gas (in wei). */
34
+ maxPriorityFeePerGas?: bigintType | undefined
35
+ /** The sidecars associated with this transaction. When defined, the envelope is in the "network wrapper" format. */
36
+ sidecars?: readonly Blobs.BlobSidecar<Hex.Hex>[] | undefined
37
+ }
38
+ >
39
+
40
+ export type Rpc<signed extends boolean = boolean> = TransactionEnvelopeEip4844<
41
+ signed,
42
+ Hex.Hex,
43
+ Hex.Hex,
44
+ '0x3'
45
+ >
46
+
47
+ export type Serialized = `${SerializedType}${string}`
48
+
49
+ export const serializedType = '0x03' as const
50
+ export type SerializedType = typeof serializedType
51
+
52
+ export type Signed = TransactionEnvelopeEip4844<true>
53
+
54
+ export const type = 'eip4844' as const
55
+ export type Type = 'eip4844'
56
+
57
+ /**
58
+ * Asserts a {@link ox#TransactionEnvelopeEip4844.TransactionEnvelopeEip4844} is valid.
59
+ *
60
+ * @example
61
+ * ```ts twoslash
62
+ * import { TransactionEnvelopeEip4844, Value } from 'ox'
63
+ *
64
+ * TransactionEnvelopeEip4844.assert({
65
+ * blobVersionedHashes: [],
66
+ * chainId: 1,
67
+ * to: '0x0000000000000000000000000000000000000000',
68
+ * value: Value.fromEther('1'),
69
+ * })
70
+ * // @error: EmptyBlobVersionedHashesError: Blob versioned hashes must not be empty.
71
+ * ```
72
+ *
73
+ * @param envelope - The transaction envelope to assert.
74
+ */
75
+ export function assert(
76
+ envelope: PartialBy<TransactionEnvelopeEip4844, 'type'>,
77
+ ) {
78
+ const { blobVersionedHashes } = envelope
79
+ if (blobVersionedHashes) {
80
+ if (blobVersionedHashes.length === 0)
81
+ throw new Blobs.EmptyBlobVersionedHashesError()
82
+ for (const hash of blobVersionedHashes) {
83
+ const size = Hex.size(hash)
84
+ const version = Hex.toNumber(Hex.slice(hash, 0, 1))
85
+ if (size !== 32)
86
+ throw new Blobs.InvalidVersionedHashSizeError({ hash, size })
87
+ if (version !== Kzg.versionedHashVersion)
88
+ throw new Blobs.InvalidVersionedHashVersionError({
89
+ hash,
90
+ version,
91
+ })
92
+ }
93
+ }
94
+ TransactionEnvelopeEip1559.assert(
95
+ envelope as {} as TransactionEnvelopeEip1559.TransactionEnvelopeEip1559,
96
+ )
97
+ }
98
+
99
+ export declare namespace assert {
100
+ type ErrorType =
101
+ | TransactionEnvelopeEip1559.assert.ErrorType
102
+ | Hex.size.ErrorType
103
+ | Hex.toNumber.ErrorType
104
+ | Hex.slice.ErrorType
105
+ | Blobs.EmptyBlobVersionedHashesError
106
+ | Blobs.InvalidVersionedHashSizeError
107
+ | Blobs.InvalidVersionedHashVersionError
108
+ | Errors.GlobalErrorType
109
+ }
110
+
111
+ assert.parseError = (error: unknown) =>
112
+ /* v8 ignore next */
113
+ error as assert.ErrorType
114
+
115
+ /**
116
+ * Deserializes a {@link ox#TransactionEnvelopeEip4844.TransactionEnvelopeEip4844} from its serialized form.
117
+ *
118
+ * @example
119
+ * ```ts twoslash
120
+ * import { TransactionEnvelopeEip4844 } from 'ox'
121
+ *
122
+ * const envelope = TransactionEnvelopeEip4844.deserialize('0x03ef0182031184773594008477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c0')
123
+ * // @log: {
124
+ * // @log: blobVersionedHashes: [...],
125
+ * // @log: type: 'eip4844',
126
+ * // @log: nonce: 785n,
127
+ * // @log: maxFeePerGas: 2000000000n,
128
+ * // @log: gas: 1000000n,
129
+ * // @log: to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
130
+ * // @log: value: 1000000000000000000n,
131
+ * // @log: }
132
+ * ```
133
+ *
134
+ * @param serialized - The serialized transaction.
135
+ * @returns Deserialized Transaction Envelope.
136
+ */
137
+ export function deserialize(
138
+ serialized: Serialized,
139
+ ): Compute<TransactionEnvelopeEip4844> {
140
+ const transactionOrWrapperArray = Rlp.toHex(Hex.slice(serialized, 1))
141
+
142
+ const hasNetworkWrapper = transactionOrWrapperArray.length === 4
143
+
144
+ const transactionArray = hasNetworkWrapper
145
+ ? transactionOrWrapperArray[0]!
146
+ : transactionOrWrapperArray
147
+ const wrapperArray = hasNetworkWrapper
148
+ ? transactionOrWrapperArray.slice(1)
149
+ : []
150
+
151
+ const [
152
+ chainId,
153
+ nonce,
154
+ maxPriorityFeePerGas,
155
+ maxFeePerGas,
156
+ gas,
157
+ to,
158
+ value,
159
+ data,
160
+ accessList,
161
+ maxFeePerBlobGas,
162
+ blobVersionedHashes,
163
+ yParity,
164
+ r,
165
+ s,
166
+ ] = transactionArray
167
+ const [blobs, commitments, proofs] = wrapperArray
168
+
169
+ if (!(transactionArray.length === 11 || transactionArray.length === 14))
170
+ throw new TransactionEnvelope.InvalidSerializedError({
171
+ attributes: {
172
+ chainId,
173
+ nonce,
174
+ maxPriorityFeePerGas,
175
+ maxFeePerGas,
176
+ gas,
177
+ to,
178
+ value,
179
+ data,
180
+ accessList,
181
+ ...(transactionArray.length > 9
182
+ ? {
183
+ yParity,
184
+ r,
185
+ s,
186
+ }
187
+ : {}),
188
+ },
189
+ serialized,
190
+ type,
191
+ })
192
+
193
+ let transaction = {
194
+ blobVersionedHashes: blobVersionedHashes as Hex.Hex[],
195
+ chainId: Number(chainId),
196
+ type,
197
+ } as TransactionEnvelopeEip4844
198
+ if (Hex.validate(to) && to !== '0x') transaction.to = to
199
+ if (Hex.validate(gas) && gas !== '0x') transaction.gas = BigInt(gas)
200
+ if (Hex.validate(data) && data !== '0x') transaction.data = data
201
+ if (Hex.validate(nonce) && nonce !== '0x') transaction.nonce = BigInt(nonce)
202
+ if (Hex.validate(value) && value !== '0x') transaction.value = BigInt(value)
203
+ if (Hex.validate(maxFeePerBlobGas) && maxFeePerBlobGas !== '0x')
204
+ transaction.maxFeePerBlobGas = BigInt(maxFeePerBlobGas)
205
+ if (Hex.validate(maxFeePerGas) && maxFeePerGas !== '0x')
206
+ transaction.maxFeePerGas = BigInt(maxFeePerGas)
207
+ if (Hex.validate(maxPriorityFeePerGas) && maxPriorityFeePerGas !== '0x')
208
+ transaction.maxPriorityFeePerGas = BigInt(maxPriorityFeePerGas)
209
+ if (accessList?.length !== 0 && accessList !== '0x')
210
+ transaction.accessList = AccessList.fromTupleList(accessList as any)
211
+ if (blobs && commitments && proofs)
212
+ transaction.sidecars = Blobs.toSidecars(blobs as Hex.Hex[], {
213
+ commitments: commitments as Hex.Hex[],
214
+ proofs: proofs as Hex.Hex[],
215
+ })
216
+
217
+ const signature =
218
+ r && s && yParity
219
+ ? Signature.fromTuple([yParity as Hex.Hex, r as Hex.Hex, s as Hex.Hex])
220
+ : undefined
221
+ if (signature)
222
+ transaction = {
223
+ ...transaction,
224
+ ...signature,
225
+ } as TransactionEnvelopeEip4844
226
+
227
+ assert(transaction)
228
+
229
+ return transaction
230
+ }
231
+
232
+ export declare namespace deserialize {
233
+ type ErrorType = Errors.GlobalErrorType
234
+ }
235
+
236
+ deserialize.parseError = (error: unknown) =>
237
+ /* v8 ignore next */
238
+ error as deserialize.ErrorType
239
+
240
+ /**
241
+ * Converts an arbitrary transaction object into an EIP-4844 Transaction Envelope.
242
+ *
243
+ * @example
244
+ * ```ts twoslash
245
+ * // @noErrors
246
+ * import { Blobs, TransactionEnvelopeEip4844, Value } from 'ox'
247
+ * import { kzg } from './kzg'
248
+ *
249
+ * const blobs = Blobs.from('0xdeadbeef')
250
+ * const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
251
+ *
252
+ * const envelope = TransactionEnvelopeEip4844.from({
253
+ * chainId: 1,
254
+ * blobVersionedHashes,
255
+ * maxFeePerBlobGas: Value.fromGwei('3'),
256
+ * maxFeePerGas: Value.fromGwei('10'),
257
+ * maxPriorityFeePerGas: Value.fromGwei('1'),
258
+ * to: '0x0000000000000000000000000000000000000000',
259
+ * value: Value.fromEther('1'),
260
+ * })
261
+ * ```
262
+ *
263
+ * @example
264
+ * ### Attaching Signatures
265
+ *
266
+ * It is possible to attach a `signature` to the transaction envelope.
267
+ *
268
+ * ```ts twoslash
269
+ * // @noErrors
270
+ * import { Blobs, Secp256k1, TransactionEnvelopeEip4844, Value } from 'ox'
271
+ * import { kzg } from './kzg'
272
+ *
273
+ * const blobs = Blobs.from('0xdeadbeef')
274
+ * const sidecars = Blobs.toSidecars(blobs, { kzg })
275
+ * const blobVersionedHashes = Blobs.sidecarsToVersionedHashes(sidecars)
276
+ *
277
+ * const envelope = TransactionEnvelopeEip4844.from({
278
+ * blobVersionedHashes,
279
+ * chainId: 1,
280
+ * maxFeePerBlobGas: Value.fromGwei('3'),
281
+ * maxFeePerGas: Value.fromGwei('10'),
282
+ * maxPriorityFeePerGas: Value.fromGwei('1'),
283
+ * to: '0x0000000000000000000000000000000000000000',
284
+ * value: Value.fromEther('1'),
285
+ * })
286
+ *
287
+ * const signature = Secp256k1.sign({
288
+ * payload: TransactionEnvelopeEip4844.getSignPayload(envelope),
289
+ * privateKey: '0x...',
290
+ * })
291
+ *
292
+ * const envelope_signed = TransactionEnvelopeEip4844.from(envelope, { // [!code focus]
293
+ * sidecars, // [!code focus]
294
+ * signature, // [!code focus]
295
+ * }) // [!code focus]
296
+ * // @log: {
297
+ * // @log: blobVersionedHashes: [...],
298
+ * // @log: chainId: 1,
299
+ * // @log: maxFeePerBlobGas: 3000000000n,
300
+ * // @log: maxFeePerGas: 10000000000n,
301
+ * // @log: maxPriorityFeePerGas: 1000000000n,
302
+ * // @log: to: '0x0000000000000000000000000000000000000000',
303
+ * // @log: type: 'eip4844',
304
+ * // @log: value: 1000000000000000000n,
305
+ * // @log: r: 125...n,
306
+ * // @log: s: 642...n,
307
+ * // @log: yParity: 0,
308
+ * // @log: }
309
+ * ```
310
+ *
311
+ * @example
312
+ * ### From Serialized
313
+ *
314
+ * It is possible to instantiate an EIP-4844 Transaction Envelope from a {@link ox#TransactionEnvelopeEip4844.Serialized} value.
315
+ *
316
+ * ```ts twoslash
317
+ * import { TransactionEnvelopeEip4844 } from 'ox'
318
+ *
319
+ * const envelope = TransactionEnvelopeEip4844.from('0x03f858018203118502540be4008504a817c800809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c08477359400e1a001627c687261b0e7f8638af1112efa8a77e23656f6e7945275b19e9deed80261')
320
+ * // @log: {
321
+ * // @log: blobVersionedHashes: [...],
322
+ * // @log: chainId: 1,
323
+ * // @log: maxFeePerGas: 10000000000n,
324
+ * // @log: to: '0x0000000000000000000000000000000000000000',
325
+ * // @log: type: 'eip4844',
326
+ * // @log: value: 1000000000000000000n,
327
+ * // @log: }
328
+ * ```
329
+ *
330
+ * @param envelope - The transaction object to convert.
331
+ * @param options - Options.
332
+ * @returns An EIP-4844 Transaction Envelope.
333
+ */
334
+ export function from<
335
+ const envelope extends
336
+ | UnionPartialBy<TransactionEnvelopeEip4844, 'type'>
337
+ | Serialized,
338
+ const signature extends Signature.Signature | undefined = undefined,
339
+ >(
340
+ envelope:
341
+ | envelope
342
+ | UnionPartialBy<TransactionEnvelopeEip4844, 'type'>
343
+ | Serialized,
344
+ options: from.Options<signature> = {},
345
+ ): from.ReturnType<envelope, signature> {
346
+ const { signature } = options
347
+
348
+ const envelope_ = (
349
+ typeof envelope === 'string' ? deserialize(envelope) : envelope
350
+ ) as TransactionEnvelopeEip4844
351
+
352
+ assert(envelope_)
353
+
354
+ return {
355
+ ...envelope_,
356
+ ...(signature ? Signature.from(signature) : {}),
357
+ type: 'eip4844',
358
+ } as never
359
+ }
360
+
361
+ export declare namespace from {
362
+ type Options<signature extends Signature.Signature | undefined = undefined> =
363
+ {
364
+ signature?: signature | Signature.Signature | undefined
365
+ }
366
+
367
+ type ReturnType<
368
+ envelope extends
369
+ | UnionPartialBy<TransactionEnvelopeEip4844, 'type'>
370
+ | Hex.Hex = TransactionEnvelopeEip4844 | Hex.Hex,
371
+ signature extends Signature.Signature | undefined = undefined,
372
+ > = Compute<
373
+ envelope extends Hex.Hex
374
+ ? TransactionEnvelopeEip4844
375
+ : Assign<
376
+ envelope,
377
+ (signature extends Signature.Signature ? Readonly<signature> : {}) & {
378
+ readonly type: 'eip4844'
379
+ }
380
+ >
381
+ >
382
+
383
+ type ErrorType =
384
+ | deserialize.ErrorType
385
+ | assert.ErrorType
386
+ | Errors.GlobalErrorType
387
+ }
388
+
389
+ from.parseError = (error: unknown) =>
390
+ /* v8 ignore next */
391
+ error as from.ErrorType
392
+
393
+ /**
394
+ * Returns the payload to sign for a {@link ox#TransactionEnvelopeEip4844.TransactionEnvelopeEip4844}.
395
+ *
396
+ * @example
397
+ * The example below demonstrates how to compute the sign payload which can be used
398
+ * with ECDSA signing utilities like {@link ox#Secp256k1.(sign:function)}.
399
+ *
400
+ * ```ts twoslash
401
+ * // @noErrors
402
+ * import { Blobs, Secp256k1, TransactionEnvelopeEip4844 } from 'ox'
403
+ * import { kzg } from './kzg'
404
+ *
405
+ * const blobs = Blobs.from('0xdeadbeef')
406
+ * const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
407
+ *
408
+ * const envelope = TransactionEnvelopeEip4844.from({
409
+ * blobVersionedHashes,
410
+ * chainId: 1,
411
+ * nonce: 0n,
412
+ * maxFeePerGas: 1000000000n,
413
+ * gas: 21000n,
414
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
415
+ * value: 1000000000000000000n,
416
+ * })
417
+ *
418
+ * const payload = TransactionEnvelopeEip4844.getSignPayload(envelope) // [!code focus]
419
+ * // @log: '0x...'
420
+ *
421
+ * const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
422
+ * ```
423
+ *
424
+ * @param envelope - The transaction envelope to get the sign payload for.
425
+ * @returns The sign payload.
426
+ */
427
+ export function getSignPayload(
428
+ envelope: TransactionEnvelopeEip4844,
429
+ ): getSignPayload.ReturnType {
430
+ return hash(envelope, { presign: true })
431
+ }
432
+
433
+ export declare namespace getSignPayload {
434
+ type ReturnType = Hex.Hex
435
+
436
+ type ErrorType = hash.ErrorType | Errors.GlobalErrorType
437
+ }
438
+
439
+ getSignPayload.parseError = (error: unknown) =>
440
+ /* v8 ignore next */
441
+ error as getSignPayload.ErrorType
442
+
443
+ /**
444
+ * Hashes a {@link ox#TransactionEnvelopeEip4844.TransactionEnvelopeEip4844}. This is the "transaction hash".
445
+ *
446
+ * @example
447
+ * ```ts twoslash
448
+ * // @noErrors
449
+ * import { Blobs, TransactionEnvelopeEip4844 } from 'ox'
450
+ * import { kzg } from './kzg'
451
+ *
452
+ * const blobs = Blobs.from('0xdeadbeef')
453
+ * const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
454
+ *
455
+ * const envelope = TransactionEnvelopeEip4844.from({
456
+ * blobVersionedHashes,
457
+ * chainId: 1,
458
+ * nonce: 0n,
459
+ * maxFeePerGas: 1000000000n,
460
+ * gas: 21000n,
461
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
462
+ * value: 1000000000000000000n,
463
+ * })
464
+ *
465
+ * const hash = TransactionEnvelopeEip4844.hash(envelope) // [!code focus]
466
+ * ```
467
+ *
468
+ * @param envelope - The EIP-4844 Transaction Envelope to hash.
469
+ * @param options - Options.
470
+ * @returns The hash of the transaction envelope.
471
+ */
472
+ export function hash<presign extends boolean = false>(
473
+ envelope: TransactionEnvelopeEip4844<presign extends true ? false : true>,
474
+ options: hash.Options<presign> = {},
475
+ ): hash.ReturnType {
476
+ const { presign } = options
477
+ return Hash.keccak256(
478
+ serialize({
479
+ ...envelope,
480
+ ...(presign
481
+ ? {
482
+ sidecars: undefined,
483
+ r: undefined,
484
+ s: undefined,
485
+ yParity: undefined,
486
+ v: undefined,
487
+ }
488
+ : {}),
489
+ }),
490
+ )
491
+ }
492
+
493
+ export declare namespace hash {
494
+ type Options<presign extends boolean = false> = {
495
+ /** Whether to hash this transaction for signing. @default false */
496
+ presign?: presign | boolean | undefined
497
+ }
498
+
499
+ type ReturnType = Hex.Hex
500
+
501
+ type ErrorType =
502
+ | Hash.keccak256.ErrorType
503
+ | serialize.ErrorType
504
+ | Errors.GlobalErrorType
505
+ }
506
+
507
+ hash.parseError = (error: unknown) =>
508
+ /* v8 ignore next */
509
+ error as hash.ErrorType
510
+
511
+ /**
512
+ * Serializes a {@link ox#TransactionEnvelopeEip4844.TransactionEnvelopeEip4844}.
513
+ *
514
+ * @example
515
+ * ```ts twoslash
516
+ * // @noErrors
517
+ * import { Blobs, TransactionEnvelopeEip4844 } from 'ox'
518
+ * import { kzg } from './kzg'
519
+ *
520
+ * const blobs = Blobs.from('0xdeadbeef')
521
+ * const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
522
+ *
523
+ * const envelope = TransactionEnvelopeEip4844.from({
524
+ * blobVersionedHashes,
525
+ * chainId: 1,
526
+ * maxFeePerGas: Value.fromGwei('10'),
527
+ * to: '0x0000000000000000000000000000000000000000',
528
+ * value: Value.fromEther('1'),
529
+ * })
530
+ *
531
+ * const serialized = TransactionEnvelopeEip4844.serialize(envelope) // [!code focus]
532
+ * ```
533
+ *
534
+ * @example
535
+ * ### Attaching Signatures
536
+ *
537
+ * It is possible to attach a `signature` to the serialized Transaction Envelope.
538
+ *
539
+ * ```ts twoslash
540
+ * // @noErrors
541
+ * import { Blobs, Secp256k1, TransactionEnvelopeEip4844, Value } from 'ox'
542
+ * import { kzg } from './kzg'
543
+ *
544
+ * const blobs = Blobs.from('0xdeadbeef')
545
+ * const sidecars = Blobs.toSidecars(blobs, { kzg })
546
+ * const blobVersionedHashes = Blobs.sidecarsToVersionedHashes(blobs)
547
+ *
548
+ * const envelope = TransactionEnvelopeEip4844.from({
549
+ * blobVersionedHashes,
550
+ * chainId: 1,
551
+ * maxFeePerBlobGas: Value.fromGwei('3'),
552
+ * maxFeePerGas: Value.fromGwei('10'),
553
+ * maxPriorityFeePerGas: Value.fromGwei('1'),
554
+ * to: '0x0000000000000000000000000000000000000000',
555
+ * value: Value.fromEther('1'),
556
+ * })
557
+ *
558
+ * const signature = Secp256k1.sign({
559
+ * payload: TransactionEnvelopeEip4844.getSignPayload(envelope),
560
+ * privateKey: '0x...',
561
+ * })
562
+ *
563
+ * const serialized = TransactionEnvelopeEip4844.serialize(envelope, { // [!code focus]
564
+ * sidecars, // [!code focus]
565
+ * signature, // [!code focus]
566
+ * }) // [!code focus]
567
+ *
568
+ * // ... send `serialized` transaction to JSON-RPC `eth_sendRawTransaction`
569
+ * ```
570
+ *
571
+ * @param envelope - The Transaction Envelope to serialize.
572
+ * @param options - Options.
573
+ * @returns The serialized Transaction Envelope.
574
+ */
575
+ export function serialize(
576
+ envelope: PartialBy<TransactionEnvelopeEip4844, 'type'>,
577
+ options: serialize.Options = {},
578
+ ): Serialized {
579
+ const {
580
+ blobVersionedHashes,
581
+ chainId,
582
+ gas,
583
+ nonce,
584
+ to,
585
+ value,
586
+ maxFeePerBlobGas,
587
+ maxFeePerGas,
588
+ maxPriorityFeePerGas,
589
+ accessList,
590
+ data,
591
+ } = envelope
592
+
593
+ assert(envelope)
594
+
595
+ const accessTupleList = AccessList.toTupleList(accessList)
596
+
597
+ const signature = Signature.extract(options.signature || envelope)
598
+
599
+ const serialized = [
600
+ Hex.fromNumber(chainId),
601
+ nonce ? Hex.fromNumber(nonce) : '0x',
602
+ maxPriorityFeePerGas ? Hex.fromNumber(maxPriorityFeePerGas) : '0x',
603
+ maxFeePerGas ? Hex.fromNumber(maxFeePerGas) : '0x',
604
+ gas ? Hex.fromNumber(gas) : '0x',
605
+ to ?? '0x',
606
+ value ? Hex.fromNumber(value) : '0x',
607
+ data ?? '0x',
608
+ accessTupleList,
609
+ maxFeePerBlobGas ? Hex.fromNumber(maxFeePerBlobGas) : '0x',
610
+ blobVersionedHashes ?? [],
611
+ ...(signature ? Signature.toTuple(signature) : []),
612
+ ] as const
613
+
614
+ const sidecars = options.sidecars || envelope.sidecars
615
+ const blobs: Hex.Hex[] = []
616
+ const commitments: Hex.Hex[] = []
617
+ const proofs: Hex.Hex[] = []
618
+ if (sidecars)
619
+ for (let i = 0; i < sidecars.length; i++) {
620
+ const { blob, commitment, proof } = sidecars[i]!
621
+ blobs.push(blob)
622
+ commitments.push(commitment)
623
+ proofs.push(proof)
624
+ }
625
+
626
+ return Hex.concat(
627
+ '0x03',
628
+ sidecars
629
+ ? // If sidecars are provided, envelope turns into a "network wrapper":
630
+ Rlp.fromHex([serialized, blobs, commitments, proofs])
631
+ : // Otherwise, standard envelope is used:
632
+ Rlp.fromHex(serialized),
633
+ ) as Serialized
634
+ }
635
+
636
+ export declare namespace serialize {
637
+ type Options = {
638
+ /** Signature to append to the serialized Transaction Envelope. */
639
+ signature?: Signature.Signature | undefined
640
+ /** Sidecars to append to the serialized Transaction Envelope. */
641
+ sidecars?: Blobs.BlobSidecars<Hex.Hex> | undefined
642
+ }
643
+
644
+ type ErrorType =
645
+ | assert.ErrorType
646
+ | Hex.fromNumber.ErrorType
647
+ | Signature.toTuple.ErrorType
648
+ | Hex.concat.ErrorType
649
+ | Rlp.fromHex.ErrorType
650
+ | Errors.GlobalErrorType
651
+ }
652
+
653
+ serialize.parseError = (error: unknown) =>
654
+ /* v8 ignore next */
655
+ error as serialize.ErrorType
656
+
657
+ /**
658
+ * Converts an {@link ox#TransactionEnvelopeEip4844.TransactionEnvelopeEip4844} to an {@link ox#TransactionEnvelopeEip4844.Rpc}.
659
+ *
660
+ * @example
661
+ * ```ts twoslash
662
+ * // @noErrors
663
+ * import { Blobs, RpcRequest, TransactionEnvelopeEip4844, Value } from 'ox'
664
+ * import { kzg } from './kzg'
665
+ *
666
+ * const blobs = Blobs.from('0xdeadbeef')
667
+ * const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
668
+ *
669
+ * const envelope = TransactionEnvelopeEip4844.from({
670
+ * blobVersionedHashes,
671
+ * chainId: 1,
672
+ * nonce: 0n,
673
+ * gas: 21000n,
674
+ * maxFeePerBlobGas: Value.fromGwei('20'),
675
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
676
+ * value: Value.fromEther('1'),
677
+ * })
678
+ *
679
+ * const envelope_rpc = TransactionEnvelopeEip4844.toRpc(envelope) // [!code focus]
680
+ *
681
+ * const request = RpcRequest.from({
682
+ * id: 0,
683
+ * method: 'eth_sendTransaction',
684
+ * params: [envelope_rpc],
685
+ * })
686
+ * ```
687
+ *
688
+ * @param envelope - The EIP-4844 transaction envelope to convert.
689
+ * @returns An RPC-formatted EIP-4844 transaction envelope.
690
+ */
691
+ export function toRpc(envelope: Omit<TransactionEnvelopeEip4844, 'type'>): Rpc {
692
+ const signature = Signature.extract(envelope)
693
+
694
+ return {
695
+ ...envelope,
696
+ chainId: Hex.fromNumber(envelope.chainId),
697
+ data: envelope.data ?? envelope.input,
698
+ ...(typeof envelope.gas === 'bigint'
699
+ ? { gas: Hex.fromNumber(envelope.gas) }
700
+ : {}),
701
+ ...(typeof envelope.nonce === 'bigint'
702
+ ? { nonce: Hex.fromNumber(envelope.nonce) }
703
+ : {}),
704
+ ...(typeof envelope.value === 'bigint'
705
+ ? { value: Hex.fromNumber(envelope.value) }
706
+ : {}),
707
+ ...(typeof envelope.maxFeePerBlobGas === 'bigint'
708
+ ? { maxFeePerBlobGas: Hex.fromNumber(envelope.maxFeePerBlobGas) }
709
+ : {}),
710
+ ...(typeof envelope.maxFeePerGas === 'bigint'
711
+ ? { maxFeePerGas: Hex.fromNumber(envelope.maxFeePerGas) }
712
+ : {}),
713
+ ...(typeof envelope.maxPriorityFeePerGas === 'bigint'
714
+ ? { maxPriorityFeePerGas: Hex.fromNumber(envelope.maxPriorityFeePerGas) }
715
+ : {}),
716
+ type: '0x3',
717
+ ...(signature ? Signature.toRpc(signature) : {}),
718
+ } as never
719
+ }
720
+
721
+ export declare namespace toRpc {
722
+ export type ErrorType = Signature.extract.ErrorType | Errors.GlobalErrorType
723
+ }
724
+
725
+ toRpc.parseError = (error: unknown) =>
726
+ /* v8 ignore next */
727
+ error as toRpc.ErrorType
728
+
729
+ /**
730
+ * Validates a {@link ox#TransactionEnvelopeEip4844.TransactionEnvelopeEip4844}. Returns `true` if the envelope is valid, `false` otherwise.
731
+ *
732
+ * @example
733
+ * ```ts twoslash
734
+ * import { TransactionEnvelopeEip4844, Value } from 'ox'
735
+ *
736
+ * const valid = TransactionEnvelopeEip4844.assert({
737
+ * blobVersionedHashes: [],
738
+ * chainId: 1,
739
+ * to: '0x0000000000000000000000000000000000000000',
740
+ * value: Value.fromEther('1'),
741
+ * })
742
+ * // @log: false
743
+ * ```
744
+ *
745
+ * @param envelope - The transaction envelope to validate.
746
+ */
747
+ export function validate(
748
+ envelope: PartialBy<TransactionEnvelopeEip4844, 'type'>,
749
+ ) {
750
+ try {
751
+ assert(envelope)
752
+ return true
753
+ } catch {
754
+ return false
755
+ }
756
+ }
757
+
758
+ export declare namespace validate {
759
+ type ErrorType = Errors.GlobalErrorType
760
+ }
761
+
762
+ validate.parseError = (error: unknown) =>
763
+ /* v8 ignore next */
764
+ error as validate.ErrorType