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