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/RpcResponse.ts ADDED
@@ -0,0 +1,389 @@
1
+ import type { Errors, RpcRequest } from './index.js'
2
+ import type {
3
+ Compute,
4
+ IsNarrowable,
5
+ OneOf,
6
+ UnionPartialBy,
7
+ } from './internal/types.js'
8
+
9
+ /** A JSON-RPC response object as per the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification#request_object). */
10
+ export type RpcResponse<
11
+ result = unknown,
12
+ error extends ErrorObject = ErrorObject,
13
+ > = Compute<
14
+ {
15
+ id: number
16
+ jsonrpc: '2.0'
17
+ } & OneOf<{ result: result } | { error: error }>
18
+ >
19
+
20
+ /** JSON-RPC error object as per the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification#error_object). */
21
+ export type ErrorObject = {
22
+ code: number
23
+ message: string
24
+ data?: unknown | undefined
25
+ }
26
+
27
+ /**
28
+ * A type-safe interface to instantiate a JSON-RPC response object as per the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification#response_object).
29
+ *
30
+ * @example
31
+ * ### Instantiating a Response Object
32
+ *
33
+ * ```ts twoslash
34
+ * import { RpcResponse } from 'ox'
35
+ *
36
+ * const response = RpcResponse.from({
37
+ * id: 0,
38
+ * jsonrpc: '2.0',
39
+ * result: '0x69420',
40
+ * })
41
+ * ```
42
+ *
43
+ * @example
44
+ * ### Type-safe Instantiation
45
+ *
46
+ * If you have a JSON-RPC request object, you can use it to strongly-type the response. If a `request` is provided,
47
+ * then the `id` and `jsonrpc` properties will be overridden with the values from the request.
48
+ *
49
+ * ```ts twoslash
50
+ * import { RpcRequest, RpcResponse } from 'ox'
51
+ *
52
+ * const request = RpcRequest.from({ id: 0, method: 'eth_blockNumber' })
53
+ *
54
+ * const response = RpcResponse.from(
55
+ * { result: '0x69420' },
56
+ * { request },
57
+ * )
58
+ * ```
59
+ *
60
+ * @param response - Opaque JSON-RPC response object.
61
+ * @param options - Parsing options.
62
+ * @returns Typed JSON-RPC result, or response object (if `raw` is `true`).
63
+ */
64
+ export function from<
65
+ request extends RpcRequest.RpcRequest | undefined = undefined,
66
+ const response =
67
+ | (request extends RpcRequest.RpcRequest
68
+ ? request['_returnType']
69
+ : RpcResponse)
70
+ | unknown,
71
+ >(
72
+ response: from.Response<request, response>,
73
+ options?: from.Options<request>,
74
+ ): Compute<from.ReturnType<response>>
75
+ // eslint-disable-next-line jsdoc/require-jsdoc
76
+ export function from(response: RpcResponse, options: any = {}): RpcResponse {
77
+ const { request } = options
78
+ return {
79
+ ...response,
80
+ id: response.id ?? request?.id,
81
+ jsonrpc: response.jsonrpc ?? request.jsonrpc,
82
+ }
83
+ }
84
+
85
+ export declare namespace from {
86
+ type Response<
87
+ request extends RpcRequest.RpcRequest | undefined = undefined,
88
+ response = unknown,
89
+ > = response &
90
+ (request extends RpcRequest.RpcRequest
91
+ ? UnionPartialBy<RpcResponse<request['_returnType']>, 'id' | 'jsonrpc'>
92
+ : RpcResponse)
93
+
94
+ type Options<
95
+ request extends RpcRequest.RpcRequest | undefined =
96
+ | RpcRequest.RpcRequest
97
+ | undefined,
98
+ > = {
99
+ request?: request | RpcRequest.RpcRequest | undefined
100
+ }
101
+
102
+ type ReturnType<response> = IsNarrowable<response, RpcResponse> extends true
103
+ ? RpcResponse
104
+ : response & Readonly<{ id: number; jsonrpc: '2.0' }>
105
+ }
106
+
107
+ /**
108
+ * A type-safe interface to parse a JSON-RPC response object as per the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification#response_object), and extract the result.
109
+ *
110
+ * @example
111
+ * ```ts twoslash
112
+ * import { RpcRequest, RpcResponse } from 'ox'
113
+ *
114
+ * // 1. Create a request store.
115
+ * const store = RpcRequest.createStore()
116
+ *
117
+ * // 2. Get a request object.
118
+ * const request = store.prepare({
119
+ * method: 'eth_getBlockByNumber',
120
+ * params: ['0x1', false],
121
+ * })
122
+ *
123
+ * // 3. Send the JSON-RPC request via HTTP.
124
+ * const block = await fetch('https://1.rpc.thirdweb.com', {
125
+ * body: JSON.stringify(request),
126
+ * headers: {
127
+ * 'Content-Type': 'application/json',
128
+ * },
129
+ * method: 'POST',
130
+ * })
131
+ * .then((response) => response.json())
132
+ * // 4. Parse the JSON-RPC response into a type-safe result. // [!code focus]
133
+ * .then((response) => RpcResponse.parse(response, { request })) // [!code focus]
134
+ *
135
+ * block // [!code focus]
136
+ * // ^?
137
+ *
138
+ *
139
+ *
140
+ *
141
+ *
142
+ *
143
+ *
144
+ *
145
+ *
146
+ *
147
+ *
148
+ * ```
149
+ *
150
+ * :::tip
151
+ *
152
+ * If you don't need the return type, you can omit the options entirely.
153
+ *
154
+ * ```ts twoslash
155
+ * // @noErrors
156
+ * import { RpcResponse } from 'ox'
157
+ *
158
+ * const block = await fetch('https://1.rpc.thirdweb.com', {})
159
+ * .then((response) => response.json())
160
+ * .then((response) => RpcResponse.parse(response, { request })) // [!code --]
161
+ * .then(RpcResponse.parse) // [!code ++]
162
+ * ```
163
+ * :::
164
+ *
165
+ * @example
166
+ * ### Raw Mode
167
+ *
168
+ * If `raw` is `true`, the response will be returned as an object with `result` and `error` properties instead of returning the `result` directly and throwing errors.
169
+ *
170
+ * ```ts twoslash
171
+ * import { RpcRequest, RpcResponse } from 'ox'
172
+ *
173
+ * const store = RpcRequest.createStore()
174
+ *
175
+ * const request = store.prepare({
176
+ * method: 'eth_blockNumber',
177
+ * })
178
+ *
179
+ * const response = RpcResponse.parse({}, {
180
+ * request,
181
+ * raw: true, // [!code hl]
182
+ * })
183
+ *
184
+ * response.result
185
+ * // ^?
186
+ *
187
+ *
188
+ * response.error
189
+ * // ^?
190
+ *
191
+ *
192
+ * ```
193
+ *
194
+ * @param response - Opaque JSON-RPC response object.
195
+ * @param options - Parsing options.
196
+ * @returns Typed JSON-RPC result, or response object (if `raw` is `true`).
197
+ */
198
+ export function parse<
199
+ const response extends RpcResponse | unknown,
200
+ returnType,
201
+ raw extends boolean = false,
202
+ >(
203
+ response: response,
204
+ options: parse.Options<returnType, raw> = {},
205
+ ): parse.ReturnType<
206
+ unknown extends response
207
+ ? returnType
208
+ : response extends RpcResponse
209
+ ? response extends { result: infer result }
210
+ ? result
211
+ : never
212
+ : returnType,
213
+ raw
214
+ > {
215
+ const { raw = false } = options
216
+ const response_ = response as RpcResponse
217
+ if (raw) return response as never
218
+ if (response_.error) {
219
+ const { code } = response_.error
220
+ const JsonRpcError = (() => {
221
+ if (code === InternalError.code) return InternalError
222
+ if (code === InvalidInputError.code) return InvalidInputError
223
+ if (code === InvalidParamsError.code) return InvalidParamsError
224
+ if (code === InvalidRequestError.code) return InvalidRequestError
225
+ if (code === LimitExceededError.code) return LimitExceededError
226
+ if (code === MethodNotFoundError.code) return MethodNotFoundError
227
+ if (code === MethodNotSupportedError.code) return MethodNotSupportedError
228
+ if (code === ParseError.code) return ParseError
229
+ if (code === ResourceNotFoundError.code) return ResourceNotFoundError
230
+ if (code === ResourceUnavailableError.code)
231
+ return ResourceUnavailableError
232
+ if (code === TransactionRejectedError.code)
233
+ return TransactionRejectedError
234
+ if (code === VersionNotSupportedError.code)
235
+ return VersionNotSupportedError
236
+ return BaseError
237
+ })()
238
+ throw new JsonRpcError(response_.error)
239
+ }
240
+ return response_.result as never
241
+ }
242
+
243
+ export declare namespace parse {
244
+ type Options<returnType, raw extends boolean = false> = {
245
+ /**
246
+ * JSON-RPC Method that was used to make the request. Used for typing the response.
247
+ */
248
+ request?:
249
+ | {
250
+ _returnType: returnType
251
+ }
252
+ | RpcRequest.RpcRequest
253
+ | undefined
254
+ /**
255
+ * Enables raw mode – responses will return an object with `result` and `error` properties instead of returning the `result` directly and throwing errors.
256
+ *
257
+ * - `true`: a JSON-RPC response object will be returned with `result` and `error` properties.
258
+ * - `false`: the JSON-RPC response object's `result` property will be returned directly, and JSON-RPC Errors will be thrown.
259
+ *
260
+ * @default false
261
+ */
262
+ raw?: raw | boolean | undefined
263
+ }
264
+
265
+ type ReturnType<returnType, raw extends boolean = false> = Compute<
266
+ raw extends true ? RpcResponse<returnType> : returnType
267
+ >
268
+
269
+ type ErrorType =
270
+ | ParseError
271
+ | InvalidInputError
272
+ | ResourceNotFoundError
273
+ | ResourceUnavailableError
274
+ | TransactionRejectedError
275
+ | MethodNotSupportedError
276
+ | LimitExceededError
277
+ | VersionNotSupportedError
278
+ | InvalidRequestError
279
+ | MethodNotFoundError
280
+ | InvalidParamsError
281
+ | InternalError
282
+ | BaseErrorType
283
+ | Errors.GlobalErrorType
284
+ }
285
+
286
+ parse.parseError = (error: unknown) =>
287
+ /* v8 ignore next */
288
+ error as parse.ErrorType
289
+
290
+ export type BaseErrorType = BaseError & { name: 'BaseError' }
291
+
292
+ /** Thrown when a JSON-RPC error has occurred. */
293
+ export class BaseError extends Error {
294
+ override name = 'RpcResponse.BaseError'
295
+
296
+ readonly code: number
297
+ readonly data?: unknown | undefined
298
+
299
+ constructor(errorObject: ErrorObject) {
300
+ const { code, message, data } = errorObject
301
+ super(message)
302
+ this.code = code
303
+ this.data = data
304
+ }
305
+ }
306
+
307
+ /** Thrown when the input to a JSON-RPC method is invalid. */
308
+ export class InvalidInputError extends BaseError {
309
+ static readonly code = -32000
310
+ override readonly code = -32000
311
+ override readonly name = 'RpcResponse.InvalidInputError'
312
+ }
313
+
314
+ /** Thrown when a JSON-RPC resource is not found. */
315
+ export class ResourceNotFoundError extends BaseError {
316
+ static readonly code = -32001
317
+ override readonly code = -32001
318
+ override readonly name = 'RpcResponse.ResourceNotFoundError'
319
+ }
320
+
321
+ /** Thrown when a JSON-RPC resource is unavailable. */
322
+ export class ResourceUnavailableError extends BaseError {
323
+ static readonly code = -32002
324
+ override readonly code = -32002
325
+ override readonly name = 'RpcResponse.ResourceUnavailableError'
326
+ }
327
+
328
+ /** Thrown when a JSON-RPC transaction is rejected. */
329
+ export class TransactionRejectedError extends BaseError {
330
+ static readonly code = -32003
331
+ override readonly code = -32003
332
+ override readonly name = 'RpcResponse.TransactionRejectedError'
333
+ }
334
+
335
+ /** Thrown when a JSON-RPC method is not supported. */
336
+ export class MethodNotSupportedError extends BaseError {
337
+ static readonly code = -32004
338
+ override readonly code = -32004
339
+ override readonly name = 'RpcResponse.MethodNotSupportedError'
340
+ }
341
+
342
+ /** Thrown when a rate-limit is exceeded. */
343
+ export class LimitExceededError extends BaseError {
344
+ static readonly code = -32005
345
+ override readonly code = -32005
346
+ override readonly name = 'RpcResponse.LimitExceededError'
347
+ }
348
+
349
+ /** Thrown when a JSON-RPC version is not supported. */
350
+ export class VersionNotSupportedError extends BaseError {
351
+ static readonly code = -32006
352
+ override readonly code = -32006
353
+ override readonly name = 'RpcResponse.VersionNotSupportedError'
354
+ }
355
+
356
+ /** Thrown when a JSON-RPC request is invalid. */
357
+ export class InvalidRequestError extends BaseError {
358
+ static readonly code = -32600
359
+ override readonly code = -32600
360
+ override readonly name = 'RpcResponse.InvalidRequestError'
361
+ }
362
+
363
+ /** Thrown when a JSON-RPC method is not found. */
364
+ export class MethodNotFoundError extends BaseError {
365
+ static readonly code = -32601
366
+ override readonly code = -32601
367
+ override readonly name = 'RpcResponse.MethodNotFoundError'
368
+ }
369
+
370
+ /** Thrown when the parameters to a JSON-RPC method are invalid. */
371
+ export class InvalidParamsError extends BaseError {
372
+ static readonly code = -32602
373
+ override readonly code = -32602
374
+ override readonly name = 'RpcResponse.InvalidParamsError'
375
+ }
376
+
377
+ /** Thrown when an internal JSON-RPC error has occurred. */
378
+ export class InternalError extends BaseError {
379
+ static readonly code = -32603
380
+ override readonly code = -32603
381
+ override readonly name = 'RpcResponse.InternalErrorError'
382
+ }
383
+
384
+ /** Thrown when a JSON-RPC response is invalid. */
385
+ export class ParseError extends BaseError {
386
+ static readonly code = -32700
387
+ override readonly code = -32700
388
+ override readonly name = 'RpcResponse.ParseError'
389
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "module",
3
+ "types": "../_types/RpcSchema.d.ts",
4
+ "main": "../_cjs/RpcSchema.js",
5
+ "module": "../_esm/RpcSchema.js"
6
+ }
package/RpcSchema.ts ADDED
@@ -0,0 +1,273 @@
1
+ import type { ResolvedRegister } from './internal/register.js'
2
+ import type { Compute, IsNarrowable } from './internal/types.js'
3
+
4
+ export type { Eth } from './internal/rpcSchemas/eth.js'
5
+ export type { Wallet } from './internal/rpcSchemas/wallet.js'
6
+
7
+ /**
8
+ * Instantiates a statically typed Schema. This is a runtime-noop function, and is purposed
9
+ * to be used as a type-level tag to be used with {@link ox#Provider.(from:function)} or
10
+ * {@link ox#RpcTransport.(fromHttp:function)}.
11
+ *
12
+ * @example
13
+ * ### Using with `Provider.from`
14
+ *
15
+ * ```ts twoslash
16
+ * // @noErrors
17
+ * import 'ox/window'
18
+ * import { Provider, RpcSchema } from 'ox'
19
+ *
20
+ * const schema = RpcSchema.from<
21
+ * | RpcSchema.Default
22
+ * | {
23
+ * Request: {
24
+ * method: 'abe_foo',
25
+ * params: [id: number],
26
+ * }
27
+ * ReturnType: string
28
+ * }
29
+ * | {
30
+ * Request: {
31
+ * method: 'abe_bar',
32
+ * params: [id: string],
33
+ * }
34
+ * ReturnType: string
35
+ * }
36
+ * >()
37
+ *
38
+ * const provider = Provider.from(window.ethereum, { schema })
39
+ *
40
+ * const blockNumber = await provider.request({ method: 'e' })
41
+ * // ^|
42
+ *
43
+ *
44
+ *
45
+ *
46
+ *
47
+ * ```
48
+ */
49
+ export function from<schema extends Generic>(): schema {
50
+ return null as never
51
+ }
52
+
53
+ /**
54
+ * Extracts a schema item from a {@link ox#RpcSchema.Generic} or {@link ox#RpcSchema.MethodNameGeneric}.
55
+ *
56
+ * @example
57
+ * ```ts twoslash
58
+ * import { RpcSchema } from 'ox'
59
+ *
60
+ * type Item = RpcSchema.ExtractItem<RpcSchema.Eth, 'eth_getBlockByNumber'>
61
+ * // ^?
62
+ *
63
+ *
64
+ *
65
+ *
66
+ *
67
+ *
68
+ *
69
+ *
70
+ *
71
+ *
72
+ *
73
+ *
74
+ *
75
+ * ```
76
+ */
77
+ export type ExtractItem<
78
+ schema extends Generic,
79
+ methodName extends MethodNameGeneric<schema> = MethodNameGeneric<schema>,
80
+ > = Compute<{
81
+ Request: ExtractRequest<schema, methodName>
82
+ ReturnType: ExtractReturnType<schema, methodName>
83
+ }>
84
+
85
+ /**
86
+ * Extracts request from a {@link ox#RpcSchema.Generic} or {@link ox#RpcSchema.MethodNameGeneric}.
87
+ *
88
+ * @example
89
+ * ```ts twoslash
90
+ * import { RpcSchema } from 'ox'
91
+ *
92
+ * type Request = RpcSchema.ExtractRequest<RpcSchema.Eth, 'eth_getBlockByNumber'>
93
+ * // ^?
94
+ *
95
+ *
96
+ *
97
+ *
98
+ *
99
+ *
100
+ *
101
+ *
102
+ *
103
+ *
104
+ *
105
+ * ```
106
+ */
107
+ export type ExtractRequest<
108
+ schema extends Generic,
109
+ methodName extends MethodNameGeneric<schema> = MethodNameGeneric<schema>,
110
+ > = Extract<schema['Request'], { method: methodName }>
111
+
112
+ /**
113
+ * Type-safe union of all JSON-RPC Method Names.
114
+ *
115
+ * @example
116
+ * ```ts twoslash
117
+ * import { RpcSchema } from 'ox'
118
+ *
119
+ * type MethodName = RpcSchema.ExtractMethodName<RpcSchema.Default>
120
+ * // ^?
121
+ *
122
+ *
123
+ *
124
+ *
125
+ *
126
+ *
127
+ *
128
+ *
129
+ * ```
130
+ */
131
+ export type ExtractMethodName<schema extends Generic> =
132
+ schema['Request']['method']
133
+
134
+ /**
135
+ * Extracts parameters from a {@link ox#RpcSchema.Generic} or {@link ox#RpcSchema.MethodNameGeneric}.
136
+ *
137
+ * @example
138
+ * ```ts twoslash
139
+ * import { RpcSchema } from 'ox'
140
+ *
141
+ * type Eth_GetBlockByNumber = RpcSchema.ExtractParams<RpcSchema.Eth, 'eth_getBlockByNumber'>
142
+ * // ^?
143
+ *
144
+ *
145
+ *
146
+ *
147
+ *
148
+ * ```
149
+ */
150
+ export type ExtractParams<
151
+ schema extends Generic,
152
+ methodName extends MethodNameGeneric<schema> = MethodNameGeneric<schema>,
153
+ > = ExtractRequest<schema, methodName>['params']
154
+
155
+ /**
156
+ * Extracts return type from a {@link ox#RpcSchema.Generic} or {@link ox#RpcSchema.MethodNameGeneric}.
157
+ *
158
+ * @example
159
+ * ```ts twoslash
160
+ * import { RpcSchema } from 'ox'
161
+ *
162
+ * type ReturnType = RpcSchema.ExtractReturnType<RpcSchema.Eth, 'eth_getBlockByNumber'>
163
+ * // ^?
164
+ *
165
+ *
166
+ *
167
+ *
168
+ *
169
+ *
170
+ *
171
+ *
172
+ *
173
+ *
174
+ *
175
+ * ```
176
+ */
177
+ export type ExtractReturnType<
178
+ schema extends Generic,
179
+ methodName extends MethodNameGeneric<schema> = MethodNameGeneric<schema>,
180
+ > = methodName extends schema['Request']['method']
181
+ ? IsNarrowable<schema, Generic> extends true
182
+ ? Extract<schema, { Request: { method: methodName } }>['ReturnType']
183
+ : unknown
184
+ : unknown
185
+
186
+ /**
187
+ * Type to define a custom type-safe JSON-RPC Schema.
188
+ *
189
+ * @example
190
+ * ```ts twoslash
191
+ * import { RpcSchema, RpcRequest } from 'ox'
192
+ *
193
+ * type Schema = RpcSchema.From<{
194
+ * Request: {
195
+ * method: 'eth_foobar',
196
+ * params: [id: number],
197
+ * }
198
+ * ReturnType: string
199
+ * }>
200
+ * ```
201
+ */
202
+ export type From<schema extends Generic> = schema
203
+
204
+ /**
205
+ * Generic type to define a JSON-RPC Method.
206
+ *
207
+ * @example
208
+ * ```ts twoslash
209
+ * import { RpcSchema } from 'ox'
210
+ *
211
+ * type Schema = RpcSchema.Generic
212
+ * // ^?
213
+ *
214
+ *
215
+ *
216
+ *
217
+ *
218
+ *
219
+ * ```
220
+ */
221
+ export type Generic<name extends string = string, params = unknown> = {
222
+ Request: {
223
+ method: name
224
+ params?: params | undefined
225
+ }
226
+ ReturnType?: unknown
227
+ }
228
+
229
+ /**
230
+ * Type-safe union of all JSON-RPC Methods.
231
+ *
232
+ * @example
233
+ * ```ts twoslash
234
+ * import { RpcSchema } from 'ox'
235
+ *
236
+ * type Schema = RpcSchema.Default
237
+ * // ^?
238
+ *
239
+ *
240
+ *
241
+ *
242
+ *
243
+ *
244
+ *
245
+ *
246
+ *
247
+ *
248
+ *
249
+ *
250
+ *
251
+ * ```
252
+ */
253
+ export type Default = ResolvedRegister['RpcSchema']
254
+
255
+ /**
256
+ * Generic type to define a JSON-RPC Method Name.
257
+ *
258
+ * @example
259
+ * ```ts twoslash
260
+ * import { RpcSchema } from 'ox'
261
+ *
262
+ * type Name = RpcSchema.MethodNameGeneric
263
+ * // ^?
264
+ *
265
+ *
266
+ *
267
+ *
268
+ *
269
+ * ```
270
+ */
271
+ export type MethodNameGeneric<schema extends Generic = Generic> =
272
+ | schema['Request']['method']
273
+ | (string & {})
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "module",
3
+ "types": "../_types/RpcTransport.d.ts",
4
+ "main": "../_cjs/RpcTransport.js",
5
+ "module": "../_esm/RpcTransport.js"
6
+ }