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
package/Rlp.ts ADDED
@@ -0,0 +1,390 @@
1
+ import * as Bytes from './Bytes.js'
2
+ import * as Errors from './Errors.js'
3
+ import * as Hex from './Hex.js'
4
+ import * as Cursor from './internal/cursor.js'
5
+ import type { ExactPartial, RecursiveArray } from './internal/types.js'
6
+
7
+ /**
8
+ * Decodes a Recursive-Length Prefix (RLP) value into a {@link ox#Bytes.Bytes} value.
9
+ *
10
+ * @example
11
+ * ```ts twoslash
12
+ * import { Rlp } from 'ox'
13
+ * Rlp.toBytes('0x8b68656c6c6f20776f726c64')
14
+ * // Uint8Array([139, 104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100])
15
+ * ```
16
+ *
17
+ * @param value - The value to decode.
18
+ * @returns The decoded {@link ox#Bytes.Bytes} value.
19
+ */
20
+ export function toBytes(
21
+ value: Bytes.Bytes | Hex.Hex,
22
+ ): RecursiveArray<Bytes.Bytes> {
23
+ return to(value, 'Bytes')
24
+ }
25
+
26
+ export declare namespace toBytes {
27
+ type ErrorType = to.ErrorType
28
+ }
29
+
30
+ toBytes.parseError = (error: unknown) =>
31
+ /* v8 ignore next */
32
+ error as toBytes.ErrorType
33
+
34
+ /**
35
+ * Decodes a Recursive-Length Prefix (RLP) value into a {@link ox#Hex.Hex} value.
36
+ *
37
+ * @example
38
+ * ```ts twoslash
39
+ * import { Rlp } from 'ox'
40
+ * Rlp.toHex('0x8b68656c6c6f20776f726c64')
41
+ * // 0x68656c6c6f20776f726c64
42
+ * ```
43
+ *
44
+ * @param value - The value to decode.
45
+ * @returns The decoded {@link ox#Hex.Hex} value.
46
+ */
47
+ export function toHex(value: Bytes.Bytes | Hex.Hex): RecursiveArray<Hex.Hex> {
48
+ return to(value, 'Hex')
49
+ }
50
+
51
+ export declare namespace toHex {
52
+ type ErrorType = to.ErrorType
53
+ }
54
+
55
+ toHex.parseError = (error: unknown) =>
56
+ /* v8 ignore next */
57
+ error as toHex.ErrorType
58
+
59
+ /////////////////////////////////////////////////////////////////////////////////
60
+ // Internal
61
+ /////////////////////////////////////////////////////////////////////////////////
62
+
63
+ /** @internal */
64
+ export function to<
65
+ value extends Bytes.Bytes | Hex.Hex,
66
+ to extends 'Hex' | 'Bytes',
67
+ >(value: value, to: to | 'Hex' | 'Bytes'): to.ReturnType<to> {
68
+ const to_ = to ?? (typeof value === 'string' ? 'Hex' : 'Bytes')
69
+
70
+ const bytes = (() => {
71
+ if (typeof value === 'string') {
72
+ if (value.length > 3 && value.length % 2 !== 0)
73
+ throw new Hex.InvalidLengthError(value)
74
+ return Bytes.fromHex(value)
75
+ }
76
+ return value as Bytes.Bytes
77
+ })()
78
+
79
+ const cursor = Cursor.create(bytes, {
80
+ recursiveReadLimit: Number.POSITIVE_INFINITY,
81
+ })
82
+ const result = decodeRlpCursor(cursor, to_)
83
+
84
+ return result as to.ReturnType<to>
85
+ }
86
+
87
+ /** @internal */
88
+ export declare namespace to {
89
+ type ReturnType<to extends 'Hex' | 'Bytes' = 'Hex' | 'Bytes'> =
90
+ | (to extends 'Bytes' ? RecursiveArray<Bytes.Bytes> : never)
91
+ | (to extends 'Hex' ? RecursiveArray<Hex.Hex> : never)
92
+
93
+ type ErrorType =
94
+ | Bytes.fromHex.ErrorType
95
+ | decodeRlpCursor.ErrorType
96
+ | Cursor.create.ErrorType
97
+ | Hex.InvalidLengthError
98
+ | Errors.GlobalErrorType
99
+ }
100
+
101
+ /** @internal */
102
+ to.parseError = (error: unknown) =>
103
+ /* v8 ignore next */
104
+ error as to.ErrorType
105
+
106
+ /** @internal */
107
+ export function decodeRlpCursor<to extends 'Hex' | 'Bytes' = 'Hex'>(
108
+ cursor: Cursor.Cursor,
109
+ to: to | 'Hex' | 'Bytes' | undefined = 'Hex',
110
+ ): decodeRlpCursor.ReturnType<to> {
111
+ if (cursor.bytes.length === 0)
112
+ return (
113
+ to === 'Hex' ? Hex.fromBytes(cursor.bytes) : cursor.bytes
114
+ ) as decodeRlpCursor.ReturnType<to>
115
+
116
+ const prefix = cursor.readByte()
117
+ if (prefix < 0x80) cursor.decrementPosition(1)
118
+
119
+ // bytes
120
+ if (prefix < 0xc0) {
121
+ const length = readLength(cursor, prefix, 0x80)
122
+ const bytes = cursor.readBytes(length)
123
+ return (
124
+ to === 'Hex' ? Hex.fromBytes(bytes) : bytes
125
+ ) as decodeRlpCursor.ReturnType<to>
126
+ }
127
+
128
+ // list
129
+ const length = readLength(cursor, prefix, 0xc0)
130
+ return readList(cursor, length, to) as {} as decodeRlpCursor.ReturnType<to>
131
+ }
132
+
133
+ /** @internal */
134
+ export declare namespace decodeRlpCursor {
135
+ type ReturnType<to extends 'Hex' | 'Bytes' = 'Hex'> = to.ReturnType<to>
136
+ type ErrorType =
137
+ | Hex.fromBytes.ErrorType
138
+ | readLength.ErrorType
139
+ | readList.ErrorType
140
+ | Errors.GlobalErrorType
141
+ }
142
+
143
+ /** @internal */
144
+ export function readLength(
145
+ cursor: Cursor.Cursor,
146
+ prefix: number,
147
+ offset: number,
148
+ ) {
149
+ if (offset === 0x80 && prefix < 0x80) return 1
150
+ if (prefix <= offset + 55) return prefix - offset
151
+ if (prefix === offset + 55 + 1) return cursor.readUint8()
152
+ if (prefix === offset + 55 + 2) return cursor.readUint16()
153
+ if (prefix === offset + 55 + 3) return cursor.readUint24()
154
+ if (prefix === offset + 55 + 4) return cursor.readUint32()
155
+ throw new Errors.BaseError('Invalid RLP prefix')
156
+ }
157
+
158
+ /** @internal */
159
+ export declare namespace readLength {
160
+ type ErrorType = Errors.BaseError | Errors.GlobalErrorType
161
+ }
162
+
163
+ /** @internal */
164
+ export function readList<to extends 'Hex' | 'Bytes'>(
165
+ cursor: Cursor.Cursor,
166
+ length: number,
167
+ to: to | 'Hex' | 'Bytes',
168
+ ) {
169
+ const position = cursor.position
170
+ const value: decodeRlpCursor.ReturnType<to>[] = []
171
+ while (cursor.position - position < length)
172
+ value.push(decodeRlpCursor(cursor, to))
173
+ return value
174
+ }
175
+
176
+ /** @internal */
177
+ export declare namespace readList {
178
+ type ErrorType = Errors.GlobalErrorType
179
+ }
180
+
181
+ type Encodable = {
182
+ length: number
183
+ encode(cursor: Cursor.Cursor): void
184
+ }
185
+
186
+ /**
187
+ * Encodes a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value into a Recursive-Length Prefix (RLP) value.
188
+ *
189
+ * @example
190
+ * ```ts twoslash
191
+ * import { Bytes, Rlp } from 'ox'
192
+ *
193
+ * Rlp.from('0x68656c6c6f20776f726c64', { as: 'Hex' })
194
+ * // @log: 0x8b68656c6c6f20776f726c64
195
+ *
196
+ * Rlp.from(Bytes.from([139, 104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]), { as: 'Bytes' })
197
+ * // @log: Uint8Array([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100])
198
+ * ```
199
+ *
200
+ * @param value - The {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value to encode.
201
+ * @param options - Options.
202
+ * @returns The RLP value.
203
+ */
204
+ export function from<as extends 'Hex' | 'Bytes'>(
205
+ value: RecursiveArray<Bytes.Bytes> | RecursiveArray<Hex.Hex>,
206
+ options: from.Options<as>,
207
+ ): from.ReturnType<as> {
208
+ const { as } = options
209
+
210
+ const encodable = getEncodable(value)
211
+ const cursor = Cursor.create(new Uint8Array(encodable.length))
212
+ encodable.encode(cursor)
213
+
214
+ if (as === 'Hex') return Hex.fromBytes(cursor.bytes) as from.ReturnType<as>
215
+ return cursor.bytes as from.ReturnType<as>
216
+ }
217
+
218
+ export declare namespace from {
219
+ type Options<as extends 'Hex' | 'Bytes'> = {
220
+ /** The type to convert the RLP value to. */
221
+ as: as | 'Hex' | 'Bytes'
222
+ }
223
+
224
+ type ReturnType<as extends 'Hex' | 'Bytes'> =
225
+ | (as extends 'Bytes' ? Bytes.Bytes : never)
226
+ | (as extends 'Hex' ? Hex.Hex : never)
227
+
228
+ type ErrorType =
229
+ | Cursor.create.ErrorType
230
+ | Hex.fromBytes.ErrorType
231
+ | Bytes.fromHex.ErrorType
232
+ | Errors.GlobalErrorType
233
+ }
234
+
235
+ from.parseError = (error: unknown) =>
236
+ /* v8 ignore next */
237
+ error as from.ErrorType
238
+
239
+ /**
240
+ * Encodes a {@link ox#Bytes.Bytes} value into a Recursive-Length Prefix (RLP) value.
241
+ *
242
+ * @example
243
+ * ```ts twoslash
244
+ * import { Bytes, Rlp } from 'ox'
245
+ *
246
+ * Rlp.fromBytes(Bytes.from([139, 104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]))
247
+ * // @log: Uint8Array([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100])
248
+ * ```
249
+ *
250
+ * @param bytes - The {@link ox#Bytes.Bytes} value to encode.
251
+ * @param options - Options.
252
+ * @returns The RLP value.
253
+ */
254
+ export function fromBytes<as extends 'Hex' | 'Bytes' = 'Bytes'>(
255
+ bytes: RecursiveArray<Bytes.Bytes>,
256
+ options: fromBytes.Options<as> = {},
257
+ ): fromBytes.ReturnType<as> {
258
+ const { as = 'Bytes' } = options
259
+ return from(bytes, { as }) as never
260
+ }
261
+
262
+ export declare namespace fromBytes {
263
+ type Options<as extends 'Hex' | 'Bytes' = 'Bytes'> = ExactPartial<
264
+ from.Options<as>
265
+ >
266
+
267
+ type ReturnType<as extends 'Hex' | 'Bytes' = 'Bytes'> = from.ReturnType<as>
268
+
269
+ type ErrorType = from.ErrorType | Errors.GlobalErrorType
270
+ }
271
+
272
+ fromBytes.parseError = (error: unknown) =>
273
+ /* v8 ignore next */
274
+ error as fromBytes.ErrorType
275
+
276
+ /**
277
+ * Encodes a {@link ox#Hex.Hex} value into a Recursive-Length Prefix (RLP) value.
278
+ *
279
+ * @example
280
+ * ```ts twoslash
281
+ * import { Rlp } from 'ox'
282
+ *
283
+ * Rlp.fromHex('0x68656c6c6f20776f726c64')
284
+ * // @log: 0x8b68656c6c6f20776f726c64
285
+ * ```
286
+ *
287
+ * @param hex - The {@link ox#Hex.Hex} value to encode.
288
+ * @param options - Options.
289
+ * @returns The RLP value.
290
+ */
291
+ export function fromHex<as extends 'Hex' | 'Bytes' = 'Hex'>(
292
+ hex: RecursiveArray<Hex.Hex>,
293
+ options: fromHex.Options<as> = {},
294
+ ): fromHex.ReturnType<as> {
295
+ const { as = 'Hex' } = options
296
+ return from(hex, { as }) as never
297
+ }
298
+
299
+ export declare namespace fromHex {
300
+ type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = ExactPartial<
301
+ from.Options<as>
302
+ >
303
+
304
+ type ReturnType<as extends 'Hex' | 'Bytes' = 'Hex'> = from.ReturnType<as>
305
+
306
+ type ErrorType = from.ErrorType | Errors.GlobalErrorType
307
+ }
308
+
309
+ fromHex.parseError = (error: unknown) =>
310
+ /* v8 ignore next */
311
+ error as fromHex.ErrorType
312
+
313
+ /////////////////////////////////////////////////////////////////////////////////
314
+ // Internal
315
+ /////////////////////////////////////////////////////////////////////////////////
316
+
317
+ function getEncodable(
318
+ bytes: RecursiveArray<Bytes.Bytes> | RecursiveArray<Hex.Hex>,
319
+ ): Encodable {
320
+ if (Array.isArray(bytes))
321
+ return getEncodableList(bytes.map((x) => getEncodable(x)))
322
+ return getEncodableBytes(bytes as any)
323
+ }
324
+
325
+ function getEncodableList(list: Encodable[]): Encodable {
326
+ const bodyLength = list.reduce((acc, x) => acc + x.length, 0)
327
+
328
+ const sizeOfBodyLength = getSizeOfLength(bodyLength)
329
+ const length = (() => {
330
+ if (bodyLength <= 55) return 1 + bodyLength
331
+ return 1 + sizeOfBodyLength + bodyLength
332
+ })()
333
+
334
+ return {
335
+ length,
336
+ encode(cursor: Cursor.Cursor) {
337
+ if (bodyLength <= 55) {
338
+ cursor.pushByte(0xc0 + bodyLength)
339
+ } else {
340
+ cursor.pushByte(0xc0 + 55 + sizeOfBodyLength)
341
+ if (sizeOfBodyLength === 1) cursor.pushUint8(bodyLength)
342
+ else if (sizeOfBodyLength === 2) cursor.pushUint16(bodyLength)
343
+ else if (sizeOfBodyLength === 3) cursor.pushUint24(bodyLength)
344
+ else cursor.pushUint32(bodyLength)
345
+ }
346
+ for (const { encode } of list) {
347
+ encode(cursor)
348
+ }
349
+ },
350
+ }
351
+ }
352
+
353
+ function getEncodableBytes(bytesOrHex: Bytes.Bytes | Hex.Hex): Encodable {
354
+ const bytes =
355
+ typeof bytesOrHex === 'string' ? Bytes.fromHex(bytesOrHex) : bytesOrHex
356
+
357
+ const sizeOfBytesLength = getSizeOfLength(bytes.length)
358
+ const length = (() => {
359
+ if (bytes.length === 1 && bytes[0]! < 0x80) return 1
360
+ if (bytes.length <= 55) return 1 + bytes.length
361
+ return 1 + sizeOfBytesLength + bytes.length
362
+ })()
363
+
364
+ return {
365
+ length,
366
+ encode(cursor: Cursor.Cursor) {
367
+ if (bytes.length === 1 && bytes[0]! < 0x80) {
368
+ cursor.pushBytes(bytes)
369
+ } else if (bytes.length <= 55) {
370
+ cursor.pushByte(0x80 + bytes.length)
371
+ cursor.pushBytes(bytes)
372
+ } else {
373
+ cursor.pushByte(0x80 + 55 + sizeOfBytesLength)
374
+ if (sizeOfBytesLength === 1) cursor.pushUint8(bytes.length)
375
+ else if (sizeOfBytesLength === 2) cursor.pushUint16(bytes.length)
376
+ else if (sizeOfBytesLength === 3) cursor.pushUint24(bytes.length)
377
+ else cursor.pushUint32(bytes.length)
378
+ cursor.pushBytes(bytes)
379
+ }
380
+ },
381
+ }
382
+ }
383
+
384
+ function getSizeOfLength(length: number) {
385
+ if (length < 2 ** 8) return 1
386
+ if (length < 2 ** 16) return 2
387
+ if (length < 2 ** 24) return 3
388
+ if (length < 2 ** 32) return 4
389
+ throw new Errors.BaseError('Length is too large.')
390
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "module",
3
+ "types": "../_types/RpcRequest.d.ts",
4
+ "main": "../_cjs/RpcRequest.js",
5
+ "module": "../_esm/RpcRequest.js"
6
+ }
package/RpcRequest.ts ADDED
@@ -0,0 +1,192 @@
1
+ import type * as RpcSchema from './RpcSchema.js'
2
+ import type { Errors } from './index.js'
3
+ import type * as RpcSchema_internal from './internal/rpcSchema.js'
4
+ import type { Compute } from './internal/types.js'
5
+
6
+ /** A JSON-RPC request object as per the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification#request_object). */
7
+ export type RpcRequest<schema extends RpcSchema.Generic = RpcSchema.Generic> =
8
+ Compute<
9
+ schema extends any
10
+ ? schema['Request'] & {
11
+ id: number
12
+ jsonrpc: '2.0'
13
+ /** @deprecated internal */
14
+ _returnType: schema['ReturnType']
15
+ }
16
+ : never
17
+ >
18
+
19
+ /** JSON-RPC request store type. */
20
+ export type Store<schema extends RpcSchema.Generic = RpcSchema.Default> =
21
+ Compute<{
22
+ prepare: <methodName extends RpcSchema.MethodNameGeneric>(
23
+ parameters: Compute<
24
+ RpcSchema_internal.ExtractRequestOpaque<schema, methodName>
25
+ >,
26
+ ) => Compute<RpcRequest<RpcSchema.ExtractItem<schema, methodName>>>
27
+ readonly id: number
28
+ }>
29
+
30
+ /**
31
+ * Creates a JSON-RPC request store to build requests with an incrementing `id`.
32
+ *
33
+ * Returns a type-safe `prepare` function to build a JSON-RPC request object as per the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification#request_object).
34
+ *
35
+ * @example
36
+ * ```ts twoslash
37
+ * import { RpcRequest } from 'ox'
38
+ *
39
+ * const store = RpcRequest.createStore()
40
+ *
41
+ * const request_1 = store.prepare({
42
+ * method: 'eth_blockNumber',
43
+ * })
44
+ * // @log: { id: 0, jsonrpc: '2.0', method: 'eth_blockNumber' }
45
+ *
46
+ * const request_2 = store.prepare({
47
+ * method: 'eth_call',
48
+ * params: [
49
+ * {
50
+ * to: '0x0000000000000000000000000000000000000000',
51
+ * data: '0xdeadbeef',
52
+ * },
53
+ * ],
54
+ * })
55
+ * // @log: { id: 1, jsonrpc: '2.0', method: 'eth_call', params: [{ to: '0x0000000000000000000000000000000000000000', data: '0xdeadbeef' }] }
56
+ * ```
57
+ *
58
+ * @example
59
+ * ### Type-safe Custom Schemas
60
+ *
61
+ * It is possible to define your own type-safe schema by using the {@link ox#RpcSchema.From} type.
62
+ *
63
+ * ```ts twoslash
64
+ * import { RpcSchema, RpcRequest } from 'ox'
65
+ *
66
+ * type Schema = RpcSchema.From<{ // [!code focus]
67
+ * Request: { // [!code focus]
68
+ * method: 'eth_foobar' // [!code focus]
69
+ * params: [number] // [!code focus]
70
+ * } // [!code focus]
71
+ * ReturnType: string // [!code focus]
72
+ * } | { // [!code focus]
73
+ * Request: { // [!code focus]
74
+ * method: 'eth_foobaz' // [!code focus]
75
+ * params: [string] // [!code focus]
76
+ * } // [!code focus]
77
+ * ReturnType: string // [!code focus]
78
+ * }> // [!code focus]
79
+ *
80
+ * const store = RpcRequest.createStore<Schema>() // [!code focus]
81
+ *
82
+ * const request = store.prepare({
83
+ * method: 'eth_foobar', // [!code focus]
84
+ * // ^?
85
+ * params: [42],
86
+ * })
87
+ * ```
88
+ *
89
+ * @param options - Request store options.
90
+ * @returns The request store
91
+ */
92
+ export function createStore<
93
+ schema extends RpcSchema.Generic = RpcSchema.Default,
94
+ >(options: createStore.Options = {}): createStore.ReturnType<schema> {
95
+ let id = options.id ?? 0
96
+ return {
97
+ prepare(options) {
98
+ return from({
99
+ id: id++,
100
+ ...options,
101
+ } as never) as never
102
+ },
103
+ get id() {
104
+ return id
105
+ },
106
+ }
107
+ }
108
+
109
+ export declare namespace createStore {
110
+ type Options = {
111
+ /** The initial request ID. */
112
+ id?: number
113
+ }
114
+
115
+ type ReturnType<schema extends RpcSchema.Generic = RpcSchema.Default> =
116
+ Store<schema>
117
+
118
+ type ErrorType = Errors.GlobalErrorType
119
+ }
120
+
121
+ createStore.parseError = (error: unknown) =>
122
+ /* v8 ignore next */
123
+ error as createStore.ErrorType
124
+
125
+ /**
126
+ * A type-safe interface to build a JSON-RPC request object as per the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification#request_object).
127
+ *
128
+ * :::warning
129
+ *
130
+ * You will likely want to use {@link ox#RpcRequest.(createStore:function)} instead as it will also manage `id`s and uses this function internally.
131
+ *
132
+ * :::
133
+ *
134
+ * @example
135
+ * ```ts twoslash
136
+ * import { RpcRequest, RpcResponse } from 'ox'
137
+ *
138
+ * // 1. Build a request object.
139
+ * const request = RpcRequest.from({ // [!code focus]
140
+ * id: 0, // [!code focus]
141
+ * method: 'eth_estimateGas', // [!code focus]
142
+ * params: [ // [!code focus]
143
+ * { // [!code focus]
144
+ * from: '0xd2135CfB216b74109775236E36d4b433F1DF507B', // [!code focus]
145
+ * to: '0x0D44f617435088c947F00B31160f64b074e412B4', // [!code focus]
146
+ * value: '0x69420', // [!code focus]
147
+ * }, // [!code focus]
148
+ * ], // [!code focus]
149
+ * }) // [!code focus]
150
+ *
151
+ * // 2. Send the JSON-RPC request via HTTP.
152
+ * const gas = await fetch('https://1.rpc.thirdweb.com', {
153
+ * body: JSON.stringify(request),
154
+ * headers: {
155
+ * 'Content-Type': 'application/json',
156
+ * },
157
+ * method: 'POST',
158
+ * })
159
+ * .then((response) => response.json())
160
+ * // 3. Parse the JSON-RPC response into a type-safe result.
161
+ * .then((response) => RpcResponse.parse(response, { request }))
162
+ * ```
163
+ *
164
+ * @param options - JSON-RPC request options.
165
+ * @returns The fully-formed JSON-RPC request object.
166
+ */
167
+ export function from<methodName extends RpcSchema.MethodNameGeneric>(
168
+ options: from.Options<methodName>,
169
+ ): from.ReturnType<methodName> {
170
+ return {
171
+ ...options,
172
+ jsonrpc: '2.0',
173
+ } as never
174
+ }
175
+
176
+ export declare namespace from {
177
+ type Options<methodName extends RpcSchema.MethodNameGeneric> = Compute<
178
+ RpcSchema_internal.ExtractRequestOpaque<RpcSchema.Default, methodName> & {
179
+ id: number
180
+ }
181
+ >
182
+
183
+ type ReturnType<methodName extends RpcSchema.MethodNameGeneric> = Compute<
184
+ RpcRequest<RpcSchema.ExtractItem<RpcSchema.Default, methodName>>
185
+ >
186
+
187
+ type ErrorType = Errors.GlobalErrorType
188
+ }
189
+
190
+ from.parseError = (error: unknown) =>
191
+ /* v8 ignore next */
192
+ error as from.ErrorType
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "module",
3
+ "types": "../_types/RpcResponse.d.ts",
4
+ "main": "../_cjs/RpcResponse.js",
5
+ "module": "../_esm/RpcResponse.js"
6
+ }