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,656 @@
1
+ import * as AccessList from './AccessList.js'
2
+ import * as Address from './Address.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 Rlp from './Rlp.js'
7
+ import * as Signature from './Signature.js'
8
+ import * as TransactionEnvelope from './TransactionEnvelope.js'
9
+ import type {
10
+ Assign,
11
+ Compute,
12
+ PartialBy,
13
+ UnionPartialBy,
14
+ } from './internal/types.js'
15
+
16
+ export type TransactionEnvelopeEip1559<
17
+ signed extends boolean = boolean,
18
+ bigintType = bigint,
19
+ numberType = number,
20
+ type extends string = Type,
21
+ > = Compute<
22
+ TransactionEnvelope.Base<type, signed, bigintType, numberType> & {
23
+ /** EIP-2930 Access List. */
24
+ accessList?: AccessList.AccessList | undefined
25
+ /** Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas). */
26
+ maxFeePerGas?: bigintType | undefined
27
+ /** Max priority fee per gas (in wei). */
28
+ maxPriorityFeePerGas?: bigintType | undefined
29
+ }
30
+ >
31
+
32
+ export type Rpc<signed extends boolean = boolean> = TransactionEnvelopeEip1559<
33
+ signed,
34
+ Hex.Hex,
35
+ Hex.Hex,
36
+ '0x2'
37
+ >
38
+
39
+ export type Serialized = `${SerializedType}${string}`
40
+
41
+ export const serializedType = '0x02' as const
42
+ export type SerializedType = typeof serializedType
43
+
44
+ export type Signed = TransactionEnvelopeEip1559<true>
45
+
46
+ export const type = 'eip1559' as const
47
+ export type Type = typeof type
48
+
49
+ /**
50
+ * Asserts a {@link ox#TransactionEnvelopeEip1559.TransactionEnvelopeEip1559} is valid.
51
+ *
52
+ * @example
53
+ * ```ts twoslash
54
+ * import { TransactionEnvelopeEip1559, Value } from 'ox'
55
+ *
56
+ * TransactionEnvelopeEip1559.assert({
57
+ * maxFeePerGas: 2n ** 256n - 1n + 1n,
58
+ * chainId: 1,
59
+ * to: '0x0000000000000000000000000000000000000000',
60
+ * value: Value.fromEther('1'),
61
+ * })
62
+ * // @error: FeeCapTooHighError:
63
+ * // @error: The fee cap (`masFeePerGas` = 115792089237316195423570985008687907853269984665640564039457584007913 gwei) cannot be
64
+ * // @error: higher than the maximum allowed value (2^256-1).
65
+ * ```
66
+ *
67
+ * @param envelope - The transaction envelope to assert.
68
+ */
69
+ export function assert(
70
+ envelope: PartialBy<TransactionEnvelopeEip1559, 'type'>,
71
+ ) {
72
+ const { chainId, maxPriorityFeePerGas, maxFeePerGas, to } = envelope
73
+ if (chainId <= 0)
74
+ throw new TransactionEnvelope.InvalidChainIdError({ chainId })
75
+ if (to) Address.assert(to, { strict: false })
76
+ if (maxFeePerGas && BigInt(maxFeePerGas) > 2n ** 256n - 1n)
77
+ throw new TransactionEnvelope.FeeCapTooHighError({ feeCap: maxFeePerGas })
78
+ if (
79
+ maxPriorityFeePerGas &&
80
+ maxFeePerGas &&
81
+ maxPriorityFeePerGas > maxFeePerGas
82
+ )
83
+ throw new TransactionEnvelope.TipAboveFeeCapError({
84
+ maxFeePerGas,
85
+ maxPriorityFeePerGas,
86
+ })
87
+ }
88
+
89
+ export declare namespace assert {
90
+ type ErrorType =
91
+ | Address.assert.ErrorType
92
+ | TransactionEnvelope.InvalidChainIdError
93
+ | TransactionEnvelope.FeeCapTooHighError
94
+ | TransactionEnvelope.TipAboveFeeCapError
95
+ | Errors.GlobalErrorType
96
+ }
97
+
98
+ assert.parseError = (error: unknown) =>
99
+ /* v8 ignore next */
100
+ error as assert.ErrorType
101
+
102
+ /**
103
+ * Deserializes a {@link ox#TransactionEnvelopeEip1559.TransactionEnvelopeEip1559} from its serialized form.
104
+ *
105
+ * @example
106
+ * ```ts twoslash
107
+ * import { TransactionEnvelopeEip1559 } from 'ox'
108
+ *
109
+ * const envelope = TransactionEnvelopeEip1559.deserialize('0x02ef0182031184773594008477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c0')
110
+ * // @log: {
111
+ * // @log: type: 'eip1559',
112
+ * // @log: nonce: 785n,
113
+ * // @log: maxFeePerGas: 2000000000n,
114
+ * // @log: gas: 1000000n,
115
+ * // @log: to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
116
+ * // @log: value: 1000000000000000000n,
117
+ * // @log: }
118
+ * ```
119
+ *
120
+ * @param serialized - The serialized transaction.
121
+ * @returns Deserialized Transaction Envelope.
122
+ */
123
+ export function deserialize(
124
+ serialized: Serialized,
125
+ ): Compute<TransactionEnvelopeEip1559> {
126
+ const transactionArray = Rlp.toHex(Hex.slice(serialized, 1))
127
+
128
+ const [
129
+ chainId,
130
+ nonce,
131
+ maxPriorityFeePerGas,
132
+ maxFeePerGas,
133
+ gas,
134
+ to,
135
+ value,
136
+ data,
137
+ accessList,
138
+ yParity,
139
+ r,
140
+ s,
141
+ ] = transactionArray as readonly Hex.Hex[]
142
+
143
+ if (!(transactionArray.length === 9 || transactionArray.length === 12))
144
+ throw new TransactionEnvelope.InvalidSerializedError({
145
+ attributes: {
146
+ chainId,
147
+ nonce,
148
+ maxPriorityFeePerGas,
149
+ maxFeePerGas,
150
+ gas,
151
+ to,
152
+ value,
153
+ data,
154
+ accessList,
155
+ ...(transactionArray.length > 9
156
+ ? {
157
+ yParity,
158
+ r,
159
+ s,
160
+ }
161
+ : {}),
162
+ },
163
+ serialized,
164
+ type,
165
+ })
166
+
167
+ let transaction = {
168
+ chainId: Number(chainId),
169
+ type,
170
+ } as TransactionEnvelopeEip1559
171
+ if (Hex.validate(to) && to !== '0x') transaction.to = to
172
+ if (Hex.validate(gas) && gas !== '0x') transaction.gas = BigInt(gas)
173
+ if (Hex.validate(data) && data !== '0x') transaction.data = data
174
+ if (Hex.validate(nonce) && nonce !== '0x') transaction.nonce = BigInt(nonce)
175
+ if (Hex.validate(value) && value !== '0x') transaction.value = BigInt(value)
176
+ if (Hex.validate(maxFeePerGas) && maxFeePerGas !== '0x')
177
+ transaction.maxFeePerGas = BigInt(maxFeePerGas)
178
+ if (Hex.validate(maxPriorityFeePerGas) && maxPriorityFeePerGas !== '0x')
179
+ transaction.maxPriorityFeePerGas = BigInt(maxPriorityFeePerGas)
180
+ if (accessList!.length !== 0 && accessList !== '0x')
181
+ transaction.accessList = AccessList.fromTupleList(accessList as any)
182
+
183
+ const signature =
184
+ r && s && yParity ? Signature.fromTuple([yParity, r, s]) : undefined
185
+ if (signature)
186
+ transaction = {
187
+ ...transaction,
188
+ ...signature,
189
+ } as TransactionEnvelopeEip1559
190
+
191
+ assert(transaction)
192
+
193
+ return transaction
194
+ }
195
+
196
+ export declare namespace deserialize {
197
+ type ErrorType = Errors.GlobalErrorType
198
+ }
199
+
200
+ deserialize.parseError = (error: unknown) =>
201
+ /* v8 ignore next */
202
+ error as deserialize.ErrorType
203
+
204
+ /**
205
+ * Converts an arbitrary transaction object into an EIP-1559 Transaction Envelope.
206
+ *
207
+ * @example
208
+ * ```ts twoslash
209
+ * import { TransactionEnvelopeEip1559, Value } from 'ox'
210
+ *
211
+ * const envelope = TransactionEnvelopeEip1559.from({
212
+ * chainId: 1,
213
+ * maxFeePerGas: Value.fromGwei('10'),
214
+ * maxPriorityFeePerGas: Value.fromGwei('1'),
215
+ * to: '0x0000000000000000000000000000000000000000',
216
+ * value: Value.fromEther('1'),
217
+ * })
218
+ * ```
219
+ *
220
+ * @example
221
+ * ### Attaching Signatures
222
+ *
223
+ * It is possible to attach a `signature` to the transaction envelope.
224
+ *
225
+ * ```ts twoslash
226
+ * import { Secp256k1, TransactionEnvelopeEip1559, Value } from 'ox'
227
+ *
228
+ * const envelope = TransactionEnvelopeEip1559.from({
229
+ * chainId: 1,
230
+ * maxFeePerGas: Value.fromGwei('10'),
231
+ * maxPriorityFeePerGas: Value.fromGwei('1'),
232
+ * to: '0x0000000000000000000000000000000000000000',
233
+ * value: Value.fromEther('1'),
234
+ * })
235
+ *
236
+ * const signature = Secp256k1.sign({
237
+ * payload: TransactionEnvelopeEip1559.getSignPayload(envelope),
238
+ * privateKey: '0x...',
239
+ * })
240
+ *
241
+ * const envelope_signed = TransactionEnvelopeEip1559.from(envelope, { // [!code focus]
242
+ * signature, // [!code focus]
243
+ * }) // [!code focus]
244
+ * // @log: {
245
+ * // @log: chainId: 1,
246
+ * // @log: maxFeePerGas: 10000000000n,
247
+ * // @log: maxPriorityFeePerGas: 1000000000n,
248
+ * // @log: to: '0x0000000000000000000000000000000000000000',
249
+ * // @log: type: 'eip1559',
250
+ * // @log: value: 1000000000000000000n,
251
+ * // @log: r: 125...n,
252
+ * // @log: s: 642...n,
253
+ * // @log: yParity: 0,
254
+ * // @log: }
255
+ * ```
256
+ *
257
+ * @example
258
+ * ### From Serialized
259
+ *
260
+ * It is possible to instantiate an EIP-1559 Transaction Envelope from a {@link ox#TransactionEnvelopeEip1559.Serialized} value.
261
+ *
262
+ * ```ts twoslash
263
+ * import { TransactionEnvelopeEip1559 } from 'ox'
264
+ *
265
+ * const envelope = TransactionEnvelopeEip1559.from('0x02f858018203118502540be4008504a817c800809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c08477359400e1a001627c687261b0e7f8638af1112efa8a77e23656f6e7945275b19e9deed80261')
266
+ * // @log: {
267
+ * // @log: chainId: 1,
268
+ * // @log: maxFeePerGas: 10000000000n,
269
+ * // @log: maxPriorityFeePerGas: 1000000000n,
270
+ * // @log: to: '0x0000000000000000000000000000000000000000',
271
+ * // @log: type: 'eip1559',
272
+ * // @log: value: 1000000000000000000n,
273
+ * // @log: }
274
+ * ```
275
+ *
276
+ * @param envelope - The transaction object to convert.
277
+ * @param options - Options.
278
+ * @returns An EIP-1559 Transaction Envelope.
279
+ */
280
+ export function from<
281
+ const envelope extends
282
+ | UnionPartialBy<TransactionEnvelopeEip1559, 'type'>
283
+ | Serialized,
284
+ const signature extends Signature.Signature | undefined = undefined,
285
+ >(
286
+ envelope:
287
+ | envelope
288
+ | UnionPartialBy<TransactionEnvelopeEip1559, 'type'>
289
+ | Serialized,
290
+ options: from.Options<signature> = {},
291
+ ): from.ReturnType<envelope, signature> {
292
+ const { signature } = options
293
+
294
+ const envelope_ = (
295
+ typeof envelope === 'string' ? deserialize(envelope) : envelope
296
+ ) as TransactionEnvelopeEip1559
297
+
298
+ assert(envelope_)
299
+
300
+ return {
301
+ ...envelope_,
302
+ ...(signature ? Signature.from(signature) : {}),
303
+ type: 'eip1559',
304
+ } as never
305
+ }
306
+
307
+ export declare namespace from {
308
+ type Options<signature extends Signature.Signature | undefined = undefined> =
309
+ {
310
+ signature?: signature | Signature.Signature | undefined
311
+ }
312
+
313
+ type ReturnType<
314
+ envelope extends
315
+ | UnionPartialBy<TransactionEnvelopeEip1559, 'type'>
316
+ | Hex.Hex = TransactionEnvelopeEip1559 | Hex.Hex,
317
+ signature extends Signature.Signature | undefined = undefined,
318
+ > = Compute<
319
+ envelope extends Hex.Hex
320
+ ? TransactionEnvelopeEip1559
321
+ : Assign<
322
+ envelope,
323
+ (signature extends Signature.Signature ? Readonly<signature> : {}) & {
324
+ readonly type: 'eip1559'
325
+ }
326
+ >
327
+ >
328
+
329
+ type ErrorType =
330
+ | deserialize.ErrorType
331
+ | assert.ErrorType
332
+ | Errors.GlobalErrorType
333
+ }
334
+
335
+ from.parseError = (error: unknown) =>
336
+ /* v8 ignore next */
337
+ error as from.ErrorType
338
+
339
+ /**
340
+ * Returns the payload to sign for a {@link ox#TransactionEnvelopeEip1559.TransactionEnvelopeEip1559}.
341
+ *
342
+ * @example
343
+ * The example below demonstrates how to compute the sign payload which can be used
344
+ * with ECDSA signing utilities like {@link ox#Secp256k1.(sign:function)}.
345
+ *
346
+ * ```ts twoslash
347
+ * import { Secp256k1, TransactionEnvelopeEip1559 } from 'ox'
348
+ *
349
+ * const envelope = TransactionEnvelopeEip1559.from({
350
+ * chainId: 1,
351
+ * nonce: 0n,
352
+ * maxFeePerGas: 1000000000n,
353
+ * gas: 21000n,
354
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
355
+ * value: 1000000000000000000n,
356
+ * })
357
+ *
358
+ * const payload = TransactionEnvelopeEip1559.getSignPayload(envelope) // [!code focus]
359
+ * // @log: '0x...'
360
+ *
361
+ * const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
362
+ * ```
363
+ *
364
+ * @param envelope - The transaction envelope to get the sign payload for.
365
+ * @returns The sign payload.
366
+ */
367
+ export function getSignPayload(
368
+ envelope: TransactionEnvelopeEip1559,
369
+ ): getSignPayload.ReturnType {
370
+ return hash(envelope, { presign: true })
371
+ }
372
+
373
+ export declare namespace getSignPayload {
374
+ type ReturnType = Hex.Hex
375
+
376
+ type ErrorType = hash.ErrorType | Errors.GlobalErrorType
377
+ }
378
+
379
+ getSignPayload.parseError = (error: unknown) =>
380
+ /* v8 ignore next */
381
+ error as getSignPayload.ErrorType
382
+
383
+ /**
384
+ * Hashes a {@link ox#TransactionEnvelopeEip1559.TransactionEnvelopeEip1559}. This is the "transaction hash".
385
+ *
386
+ * @example
387
+ * ```ts twoslash
388
+ * import { Secp256k1, TransactionEnvelopeEip1559 } from 'ox'
389
+ *
390
+ * const envelope = TransactionEnvelopeEip1559.from({
391
+ * chainId: 1,
392
+ * nonce: 0n,
393
+ * maxFeePerGas: 1000000000n,
394
+ * gas: 21000n,
395
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
396
+ * value: 1000000000000000000n,
397
+ * })
398
+ *
399
+ * const signature = Secp256k1.sign({
400
+ * payload: TransactionEnvelopeEip1559.getSignPayload(envelope),
401
+ * privateKey: '0x...'
402
+ * })
403
+ *
404
+ * const envelope_signed = TransactionEnvelopeEip1559.from(envelope, { signature })
405
+ *
406
+ * const hash = TransactionEnvelopeEip1559.hash(envelope_signed) // [!code focus]
407
+ * ```
408
+ *
409
+ * @param envelope - The EIP-1559 Transaction Envelope to hash.
410
+ * @param options - Options.
411
+ * @returns The hash of the transaction envelope.
412
+ */
413
+ export function hash<presign extends boolean = false>(
414
+ envelope: TransactionEnvelopeEip1559<presign extends true ? false : true>,
415
+ options: hash.Options<presign> = {},
416
+ ): hash.ReturnType {
417
+ const { presign } = options
418
+ return Hash.keccak256(
419
+ serialize({
420
+ ...envelope,
421
+ ...(presign
422
+ ? {
423
+ r: undefined,
424
+ s: undefined,
425
+ yParity: undefined,
426
+ v: undefined,
427
+ }
428
+ : {}),
429
+ }),
430
+ )
431
+ }
432
+
433
+ export declare namespace hash {
434
+ type Options<presign extends boolean = false> = {
435
+ /** Whether to hash this transaction for signing. @default false */
436
+ presign?: presign | boolean | undefined
437
+ }
438
+
439
+ type ReturnType = Hex.Hex
440
+
441
+ type ErrorType =
442
+ | Hash.keccak256.ErrorType
443
+ | serialize.ErrorType
444
+ | Errors.GlobalErrorType
445
+ }
446
+
447
+ hash.parseError = (error: unknown) =>
448
+ /* v8 ignore next */
449
+ error as hash.ErrorType
450
+
451
+ /**
452
+ * Serializes a {@link ox#TransactionEnvelopeEip1559.TransactionEnvelopeEip1559}.
453
+ *
454
+ * @example
455
+ * ```ts twoslash
456
+ * import { TransactionEnvelopeEip1559, Value } from 'ox'
457
+ *
458
+ * const envelope = TransactionEnvelopeEip1559.from({
459
+ * chainId: 1,
460
+ * maxFeePerGas: Value.fromGwei('10'),
461
+ * maxPriorityFeePerGas: Value.fromGwei('1'),
462
+ * to: '0x0000000000000000000000000000000000000000',
463
+ * value: Value.fromEther('1'),
464
+ * })
465
+ *
466
+ * const serialized = TransactionEnvelopeEip1559.serialize(envelope) // [!code focus]
467
+ * ```
468
+ *
469
+ * @example
470
+ * ### Attaching Signatures
471
+ *
472
+ * It is possible to attach a `signature` to the serialized Transaction Envelope.
473
+ *
474
+ * ```ts twoslash
475
+ * import { Secp256k1, TransactionEnvelopeEip1559, Value } from 'ox'
476
+ *
477
+ * const envelope = TransactionEnvelopeEip1559.from({
478
+ * chainId: 1,
479
+ * maxFeePerGas: Value.fromGwei('10'),
480
+ * maxPriorityFeePerGas: Value.fromGwei('1'),
481
+ * to: '0x0000000000000000000000000000000000000000',
482
+ * value: Value.fromEther('1'),
483
+ * })
484
+ *
485
+ * const signature = Secp256k1.sign({
486
+ * payload: TransactionEnvelopeEip1559.getSignPayload(envelope),
487
+ * privateKey: '0x...',
488
+ * })
489
+ *
490
+ * const serialized = TransactionEnvelopeEip1559.serialize(envelope, { // [!code focus]
491
+ * signature, // [!code focus]
492
+ * }) // [!code focus]
493
+ *
494
+ * // ... send `serialized` transaction to JSON-RPC `eth_sendRawTransaction`
495
+ * ```
496
+ *
497
+ * @param envelope - The Transaction Envelope to serialize.
498
+ * @param options - Options.
499
+ * @returns The serialized Transaction Envelope.
500
+ */
501
+ export function serialize(
502
+ envelope: PartialBy<TransactionEnvelopeEip1559, 'type'>,
503
+ options: serialize.Options = {},
504
+ ): Serialized {
505
+ const {
506
+ chainId,
507
+ gas,
508
+ nonce,
509
+ to,
510
+ value,
511
+ maxFeePerGas,
512
+ maxPriorityFeePerGas,
513
+ accessList,
514
+ data,
515
+ input,
516
+ } = envelope
517
+
518
+ assert(envelope)
519
+
520
+ const accessTupleList = AccessList.toTupleList(accessList)
521
+
522
+ const signature = Signature.extract(options.signature || envelope)
523
+
524
+ const serialized = [
525
+ Hex.fromNumber(chainId),
526
+ nonce ? Hex.fromNumber(nonce) : '0x',
527
+ maxPriorityFeePerGas ? Hex.fromNumber(maxPriorityFeePerGas) : '0x',
528
+ maxFeePerGas ? Hex.fromNumber(maxFeePerGas) : '0x',
529
+ gas ? Hex.fromNumber(gas) : '0x',
530
+ to ?? '0x',
531
+ value ? Hex.fromNumber(value) : '0x',
532
+ data ?? input ?? '0x',
533
+ accessTupleList,
534
+ ...(signature ? Signature.toTuple(signature) : []),
535
+ ]
536
+
537
+ return Hex.concat(serializedType, Rlp.fromHex(serialized)) as Serialized
538
+ }
539
+
540
+ export declare namespace serialize {
541
+ type Options = {
542
+ /** Signature to append to the serialized Transaction Envelope. */
543
+ signature?: Signature.Signature | undefined
544
+ }
545
+
546
+ type ErrorType =
547
+ | assert.ErrorType
548
+ | Hex.fromNumber.ErrorType
549
+ | Signature.toTuple.ErrorType
550
+ | Hex.concat.ErrorType
551
+ | Rlp.fromHex.ErrorType
552
+ | Errors.GlobalErrorType
553
+ }
554
+
555
+ /* v8 ignore next */
556
+ serialize.parseError = (error: unknown) => error as serialize.ErrorType
557
+
558
+ /**
559
+ * Converts an {@link ox#TransactionEnvelopeEip1559.TransactionEnvelopeEip1559} to an {@link ox#TransactionEnvelopeEip1559.Rpc}.
560
+ *
561
+ * @example
562
+ * ```ts twoslash
563
+ * import { RpcRequest, TransactionEnvelopeEip1559, Value } from 'ox'
564
+ *
565
+ * const envelope = TransactionEnvelopeEip1559.from({
566
+ * chainId: 1,
567
+ * nonce: 0n,
568
+ * gas: 21000n,
569
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
570
+ * value: Value.fromEther('1'),
571
+ * })
572
+ *
573
+ * const envelope_rpc = TransactionEnvelopeEip1559.toRpc(envelope) // [!code focus]
574
+ *
575
+ * const request = RpcRequest.from({
576
+ * id: 0,
577
+ * method: 'eth_sendTransaction',
578
+ * params: [envelope_rpc],
579
+ * })
580
+ * ```
581
+ *
582
+ * @param envelope - The EIP-1559 transaction envelope to convert.
583
+ * @returns An RPC-formatted EIP-1559 transaction envelope.
584
+ */
585
+ export function toRpc(envelope: Omit<TransactionEnvelopeEip1559, 'type'>): Rpc {
586
+ const signature = Signature.extract(envelope)
587
+
588
+ return {
589
+ ...envelope,
590
+ chainId: Hex.fromNumber(envelope.chainId),
591
+ data: envelope.data ?? envelope.input,
592
+ type: '0x2',
593
+ ...(typeof envelope.gas === 'bigint'
594
+ ? { gas: Hex.fromNumber(envelope.gas) }
595
+ : {}),
596
+ ...(typeof envelope.nonce === 'bigint'
597
+ ? { nonce: Hex.fromNumber(envelope.nonce) }
598
+ : {}),
599
+ ...(typeof envelope.value === 'bigint'
600
+ ? { value: Hex.fromNumber(envelope.value) }
601
+ : {}),
602
+ ...(typeof envelope.maxFeePerGas === 'bigint'
603
+ ? { maxFeePerGas: Hex.fromNumber(envelope.maxFeePerGas) }
604
+ : {}),
605
+ ...(typeof envelope.maxPriorityFeePerGas === 'bigint'
606
+ ? {
607
+ maxPriorityFeePerGas: Hex.fromNumber(envelope.maxPriorityFeePerGas),
608
+ }
609
+ : {}),
610
+ ...(signature ? Signature.toRpc(signature) : {}),
611
+ } as never
612
+ }
613
+
614
+ export declare namespace toRpc {
615
+ export type ErrorType = Signature.extract.ErrorType | Errors.GlobalErrorType
616
+ }
617
+
618
+ /* v8 ignore next */
619
+ toRpc.parseError = (error: unknown) => error as toRpc.ErrorType
620
+
621
+ /**
622
+ * Validates a {@link ox#TransactionEnvelopeEip1559.TransactionEnvelopeEip1559}. Returns `true` if the envelope is valid, `false` otherwise.
623
+ *
624
+ * @example
625
+ * ```ts twoslash
626
+ * import { TransactionEnvelopeEip1559, Value } from 'ox'
627
+ *
628
+ * const valid = TransactionEnvelopeEip1559.assert({
629
+ * maxFeePerGas: 2n ** 256n - 1n + 1n,
630
+ * chainId: 1,
631
+ * to: '0x0000000000000000000000000000000000000000',
632
+ * value: Value.fromEther('1'),
633
+ * })
634
+ * // @log: false
635
+ * ```
636
+ *
637
+ * @param envelope - The transaction envelope to validate.
638
+ */
639
+ export function validate(
640
+ envelope: PartialBy<TransactionEnvelopeEip1559, 'type'>,
641
+ ) {
642
+ try {
643
+ assert(envelope)
644
+ return true
645
+ } catch {
646
+ return false
647
+ }
648
+ }
649
+
650
+ export declare namespace validate {
651
+ type ErrorType = Errors.GlobalErrorType
652
+ }
653
+
654
+ validate.parseError = (error: unknown) =>
655
+ /* v8 ignore next */
656
+ error as validate.ErrorType
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "module",
3
+ "types": "../_types/TransactionEnvelopeEip2930.d.ts",
4
+ "main": "../_cjs/TransactionEnvelopeEip2930.js",
5
+ "module": "../_esm/TransactionEnvelopeEip2930.js"
6
+ }