ox 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (756) hide show
  1. package/Abi/package.json +6 -0
  2. package/Abi.ts +163 -0
  3. package/AbiConstructor/package.json +6 -0
  4. package/AbiConstructor.ts +413 -0
  5. package/AbiError/package.json +6 -0
  6. package/AbiError.ts +719 -0
  7. package/AbiEvent/package.json +6 -0
  8. package/AbiEvent.ts +1284 -0
  9. package/AbiFunction/package.json +6 -0
  10. package/AbiFunction.ts +813 -0
  11. package/AbiItem/package.json +6 -0
  12. package/AbiItem.ts +779 -0
  13. package/AbiParameters/package.json +6 -0
  14. package/AbiParameters.ts +712 -0
  15. package/AccessList/package.json +6 -0
  16. package/AccessList.ts +124 -0
  17. package/AccountProof/package.json +6 -0
  18. package/AccountProof.ts +35 -0
  19. package/Address/package.json +6 -0
  20. package/Address.ts +359 -0
  21. package/AesGcm/package.json +6 -0
  22. package/AesGcm.ts +220 -0
  23. package/Authorization/package.json +6 -0
  24. package/Authorization.ts +639 -0
  25. package/Base58/package.json +6 -0
  26. package/Base58.ts +180 -0
  27. package/Base64/package.json +6 -0
  28. package/Base64.ts +333 -0
  29. package/Blobs/package.json +6 -0
  30. package/Blobs.ts +982 -0
  31. package/Block/package.json +6 -0
  32. package/Block.ts +317 -0
  33. package/Bloom/package.json +6 -0
  34. package/Bloom.ts +80 -0
  35. package/Bls/package.json +6 -0
  36. package/Bls.ts +496 -0
  37. package/BlsPoint/package.json +6 -0
  38. package/BlsPoint.ts +232 -0
  39. package/Bytes/package.json +6 -0
  40. package/Bytes.ts +963 -0
  41. package/CHANGELOG.md +7 -0
  42. package/Caches/package.json +6 -0
  43. package/Caches.ts +21 -0
  44. package/ContractAddress/package.json +6 -0
  45. package/ContractAddress.ts +181 -0
  46. package/Ens/package.json +6 -0
  47. package/Ens.ts +116 -0
  48. package/Errors/package.json +6 -0
  49. package/Errors.ts +95 -0
  50. package/Fee/package.json +6 -0
  51. package/Fee.ts +57 -0
  52. package/Filter/package.json +6 -0
  53. package/Filter.ts +144 -0
  54. package/Hash/package.json +6 -0
  55. package/Hash.ts +210 -0
  56. package/HdKey/package.json +6 -0
  57. package/HdKey.ts +175 -0
  58. package/Hex/package.json +6 -0
  59. package/Hex.ts +1040 -0
  60. package/Json/package.json +6 -0
  61. package/Json.ts +84 -0
  62. package/Kzg/package.json +6 -0
  63. package/Kzg.ts +51 -0
  64. package/LICENSE +21 -0
  65. package/Log/package.json +6 -0
  66. package/Log.ts +248 -0
  67. package/Mnemonic/package.json +6 -0
  68. package/Mnemonic.ts +249 -0
  69. package/P256/package.json +6 -0
  70. package/P256.ts +230 -0
  71. package/PersonalMessage/package.json +6 -0
  72. package/PersonalMessage.ts +70 -0
  73. package/Provider/package.json +6 -0
  74. package/Provider.ts +354 -0
  75. package/PublicKey/package.json +6 -0
  76. package/PublicKey.ts +545 -0
  77. package/README.md +75 -26
  78. package/Rlp/package.json +6 -0
  79. package/Rlp.ts +390 -0
  80. package/RpcRequest/package.json +6 -0
  81. package/RpcRequest.ts +192 -0
  82. package/RpcResponse/package.json +6 -0
  83. package/RpcResponse.ts +389 -0
  84. package/RpcSchema/package.json +6 -0
  85. package/RpcSchema.ts +273 -0
  86. package/RpcTransport/package.json +6 -0
  87. package/RpcTransport.ts +198 -0
  88. package/Secp256k1/package.json +6 -0
  89. package/Secp256k1.ts +304 -0
  90. package/Signature/package.json +6 -0
  91. package/Signature.ts +909 -0
  92. package/Siwe/package.json +6 -0
  93. package/Siwe.ts +516 -0
  94. package/Solidity/package.json +6 -0
  95. package/Solidity.ts +109 -0
  96. package/Transaction/package.json +6 -0
  97. package/Transaction.ts +429 -0
  98. package/TransactionEnvelope/package.json +6 -0
  99. package/TransactionEnvelope.ts +205 -0
  100. package/TransactionEnvelopeEip1559/package.json +6 -0
  101. package/TransactionEnvelopeEip1559.ts +656 -0
  102. package/TransactionEnvelopeEip2930/package.json +6 -0
  103. package/TransactionEnvelopeEip2930.ts +624 -0
  104. package/TransactionEnvelopeEip4844/package.json +6 -0
  105. package/TransactionEnvelopeEip4844.ts +764 -0
  106. package/TransactionEnvelopeEip7702/package.json +6 -0
  107. package/TransactionEnvelopeEip7702.ts +639 -0
  108. package/TransactionEnvelopeLegacy/package.json +6 -0
  109. package/TransactionEnvelopeLegacy.ts +674 -0
  110. package/TransactionReceipt/package.json +6 -0
  111. package/TransactionReceipt.ts +341 -0
  112. package/TransactionRequest/package.json +6 -0
  113. package/TransactionRequest.ts +151 -0
  114. package/TypedData/package.json +6 -0
  115. package/TypedData.ts +931 -0
  116. package/ValidatorData/package.json +6 -0
  117. package/ValidatorData.ts +87 -0
  118. package/Value/package.json +6 -0
  119. package/Value.ts +242 -0
  120. package/WebAuthnP256/package.json +6 -0
  121. package/WebAuthnP256.ts +803 -0
  122. package/WebCryptoP256/package.json +6 -0
  123. package/WebCryptoP256.ts +190 -0
  124. package/Withdrawal/package.json +6 -0
  125. package/Withdrawal.ts +95 -0
  126. package/_cjs/Abi.js +17 -0
  127. package/_cjs/Abi.js.map +1 -0
  128. package/_cjs/AbiConstructor.js +42 -0
  129. package/_cjs/AbiConstructor.js.map +1 -0
  130. package/_cjs/AbiError.js +98 -0
  131. package/_cjs/AbiError.js.map +1 -0
  132. package/_cjs/AbiEvent.js +338 -0
  133. package/_cjs/AbiEvent.js.map +1 -0
  134. package/_cjs/AbiFunction.js +85 -0
  135. package/_cjs/AbiFunction.js.map +1 -0
  136. package/_cjs/AbiItem.js +180 -0
  137. package/_cjs/AbiItem.js.map +1 -0
  138. package/_cjs/AbiParameters.js +229 -0
  139. package/_cjs/AbiParameters.js.map +1 -0
  140. package/_cjs/AccessList.js +51 -0
  141. package/_cjs/AccessList.js.map +1 -0
  142. package/_cjs/AccountProof.js +3 -0
  143. package/_cjs/AccountProof.js.map +1 -0
  144. package/_cjs/Address.js +121 -0
  145. package/_cjs/Address.js.map +1 -0
  146. package/_cjs/AesGcm.js +55 -0
  147. package/_cjs/AesGcm.js.map +1 -0
  148. package/_cjs/Authorization.js +99 -0
  149. package/_cjs/Authorization.js.map +1 -0
  150. package/_cjs/Base58.js +52 -0
  151. package/_cjs/Base58.js.map +1 -0
  152. package/_cjs/Base64.js +76 -0
  153. package/_cjs/Base64.js.map +1 -0
  154. package/_cjs/Blobs.js +255 -0
  155. package/_cjs/Blobs.js.map +1 -0
  156. package/_cjs/Block.js +87 -0
  157. package/_cjs/Block.js.map +1 -0
  158. package/_cjs/Bloom.js +23 -0
  159. package/_cjs/Bloom.js.map +1 -0
  160. package/_cjs/Bls.js +79 -0
  161. package/_cjs/Bls.js.map +1 -0
  162. package/_cjs/BlsPoint.js +32 -0
  163. package/_cjs/BlsPoint.js.map +1 -0
  164. package/_cjs/Bytes.js +279 -0
  165. package/_cjs/Bytes.js.map +1 -0
  166. package/_cjs/Caches.js +14 -0
  167. package/_cjs/Caches.js.map +1 -0
  168. package/_cjs/ContractAddress.js +39 -0
  169. package/_cjs/ContractAddress.js.map +1 -0
  170. package/_cjs/Ens.js +37 -0
  171. package/_cjs/Ens.js.map +1 -0
  172. package/_cjs/Errors.js +99 -0
  173. package/_cjs/Errors.js.map +1 -0
  174. package/_cjs/Fee.js +3 -0
  175. package/_cjs/Fee.js.map +1 -0
  176. package/_cjs/Filter.js +43 -0
  177. package/_cjs/Filter.js.map +1 -0
  178. package/_cjs/Hash.js +40 -0
  179. package/_cjs/Hash.js.map +1 -0
  180. package/_cjs/HdKey.js +30 -0
  181. package/_cjs/HdKey.js.map +1 -0
  182. package/_cjs/Hex.js +324 -0
  183. package/_cjs/Hex.js.map +1 -0
  184. package/_cjs/Json.js +25 -0
  185. package/_cjs/Json.js.map +1 -0
  186. package/_cjs/Kzg.js +14 -0
  187. package/_cjs/Kzg.js.map +1 -0
  188. package/_cjs/Log.js +35 -0
  189. package/_cjs/Log.js.map +1 -0
  190. package/_cjs/Mnemonic.js +56 -0
  191. package/_cjs/Mnemonic.js.map +1 -0
  192. package/_cjs/P256.js +52 -0
  193. package/_cjs/P256.js.map +1 -0
  194. package/_cjs/PersonalMessage.js +16 -0
  195. package/_cjs/PersonalMessage.js.map +1 -0
  196. package/_cjs/Provider.js +90 -0
  197. package/_cjs/Provider.js.map +1 -0
  198. package/_cjs/PublicKey.js +192 -0
  199. package/_cjs/PublicKey.js.map +1 -0
  200. package/_cjs/Rlp.js +179 -0
  201. package/_cjs/Rlp.js.map +1 -0
  202. package/_cjs/RpcRequest.js +27 -0
  203. package/_cjs/RpcRequest.js.map +1 -0
  204. package/_cjs/RpcResponse.js +368 -0
  205. package/_cjs/RpcResponse.js.map +1 -0
  206. package/_cjs/RpcSchema.js +7 -0
  207. package/_cjs/RpcSchema.js.map +1 -0
  208. package/_cjs/RpcTransport.js +95 -0
  209. package/_cjs/RpcTransport.js.map +1 -0
  210. package/_cjs/Secp256k1.js +57 -0
  211. package/_cjs/Secp256k1.js.map +1 -0
  212. package/_cjs/Signature.js +305 -0
  213. package/_cjs/Signature.js.map +1 -0
  214. package/_cjs/Siwe.js +231 -0
  215. package/_cjs/Siwe.js.map +1 -0
  216. package/_cjs/Solidity.js +104 -0
  217. package/_cjs/Solidity.js.map +1 -0
  218. package/_cjs/Transaction.js +106 -0
  219. package/_cjs/Transaction.js.map +1 -0
  220. package/_cjs/TransactionEnvelope.js +80 -0
  221. package/_cjs/TransactionEnvelope.js.map +1 -0
  222. package/_cjs/TransactionEnvelopeEip1559.js +182 -0
  223. package/_cjs/TransactionEnvelopeEip1559.js.map +1 -0
  224. package/_cjs/TransactionEnvelopeEip2930.js +166 -0
  225. package/_cjs/TransactionEnvelopeEip2930.js.map +1 -0
  226. package/_cjs/TransactionEnvelopeEip4844.js +224 -0
  227. package/_cjs/TransactionEnvelopeEip4844.js.map +1 -0
  228. package/_cjs/TransactionEnvelopeEip7702.js +156 -0
  229. package/_cjs/TransactionEnvelopeEip7702.js.map +1 -0
  230. package/_cjs/TransactionEnvelopeLegacy.js +221 -0
  231. package/_cjs/TransactionEnvelopeLegacy.js.map +1 -0
  232. package/_cjs/TransactionReceipt.js +76 -0
  233. package/_cjs/TransactionReceipt.js.map +1 -0
  234. package/_cjs/TransactionRequest.js +51 -0
  235. package/_cjs/TransactionRequest.js.map +1 -0
  236. package/_cjs/TypedData.js +318 -0
  237. package/_cjs/TypedData.js.map +1 -0
  238. package/_cjs/ValidatorData.js +16 -0
  239. package/_cjs/ValidatorData.js.map +1 -0
  240. package/_cjs/Value.js +96 -0
  241. package/_cjs/Value.js.map +1 -0
  242. package/_cjs/WebAuthnP256.js +245 -0
  243. package/_cjs/WebAuthnP256.js.map +1 -0
  244. package/_cjs/WebCryptoP256.js +46 -0
  245. package/_cjs/WebCryptoP256.js.map +1 -0
  246. package/_cjs/Withdrawal.js +24 -0
  247. package/_cjs/Withdrawal.js.map +1 -0
  248. package/_cjs/index.js +66 -0
  249. package/_cjs/index.js.map +1 -0
  250. package/_cjs/internal/abi.js +11 -0
  251. package/_cjs/internal/abi.js.map +1 -0
  252. package/_cjs/internal/abiConstructor.js +3 -0
  253. package/_cjs/internal/abiConstructor.js.map +1 -0
  254. package/_cjs/internal/abiError.js +3 -0
  255. package/_cjs/internal/abiError.js.map +1 -0
  256. package/_cjs/internal/abiEvent.js +3 -0
  257. package/_cjs/internal/abiEvent.js.map +1 -0
  258. package/_cjs/internal/abiFunction.js +3 -0
  259. package/_cjs/internal/abiFunction.js.map +1 -0
  260. package/_cjs/internal/abiItem.js +110 -0
  261. package/_cjs/internal/abiItem.js.map +1 -0
  262. package/_cjs/internal/abiParameters.js +376 -0
  263. package/_cjs/internal/abiParameters.js.map +1 -0
  264. package/_cjs/internal/base58.js +89 -0
  265. package/_cjs/internal/base58.js.map +1 -0
  266. package/_cjs/internal/bytes.js +88 -0
  267. package/_cjs/internal/bytes.js.map +1 -0
  268. package/_cjs/internal/cursor.js +210 -0
  269. package/_cjs/internal/cursor.js.map +1 -0
  270. package/_cjs/internal/ens.js +43 -0
  271. package/_cjs/internal/ens.js.map +1 -0
  272. package/_cjs/internal/errors.js +28 -0
  273. package/_cjs/internal/errors.js.map +1 -0
  274. package/_cjs/internal/hdKey.js +19 -0
  275. package/_cjs/internal/hdKey.js.map +1 -0
  276. package/_cjs/internal/hex.js +66 -0
  277. package/_cjs/internal/hex.js.map +1 -0
  278. package/_cjs/internal/lru.js +34 -0
  279. package/_cjs/internal/lru.js.map +1 -0
  280. package/_cjs/internal/mnemonic/wordlists.js +24 -0
  281. package/_cjs/internal/mnemonic/wordlists.js.map +1 -0
  282. package/_cjs/internal/promise.js +49 -0
  283. package/_cjs/internal/promise.js.map +1 -0
  284. package/_cjs/internal/register.js +3 -0
  285. package/_cjs/internal/register.js.map +1 -0
  286. package/_cjs/internal/rpcSchema.js +3 -0
  287. package/_cjs/internal/rpcSchema.js.map +1 -0
  288. package/_cjs/internal/rpcSchemas/eth.js +3 -0
  289. package/_cjs/internal/rpcSchemas/eth.js.map +1 -0
  290. package/_cjs/internal/rpcSchemas/wallet.js +3 -0
  291. package/_cjs/internal/rpcSchemas/wallet.js.map +1 -0
  292. package/_cjs/internal/rpcTransport.js +19 -0
  293. package/_cjs/internal/rpcTransport.js.map +1 -0
  294. package/_cjs/internal/types.js +3 -0
  295. package/_cjs/internal/types.js.map +1 -0
  296. package/_cjs/internal/uid.js +17 -0
  297. package/_cjs/internal/uid.js.map +1 -0
  298. package/_cjs/internal/webauthn.js +28 -0
  299. package/_cjs/internal/webauthn.js.map +1 -0
  300. package/_cjs/package.json +1 -0
  301. package/_cjs/trusted-setups/Paths.js +6 -0
  302. package/_cjs/trusted-setups/Paths.js.map +1 -0
  303. package/_cjs/trusted-setups/index.js +5 -0
  304. package/_cjs/trusted-setups/index.js.map +1 -0
  305. package/_cjs/trusted-setups/internal/paths.js +11 -0
  306. package/_cjs/trusted-setups/internal/paths.js.map +1 -0
  307. package/_cjs/version.js +5 -0
  308. package/_cjs/version.js.map +1 -0
  309. package/_cjs/window/index.js +3 -0
  310. package/_cjs/window/index.js.map +1 -0
  311. package/_esm/Abi.js +19 -0
  312. package/_esm/Abi.js.map +1 -0
  313. package/_esm/AbiConstructor.js +102 -0
  314. package/_esm/AbiConstructor.js.map +1 -0
  315. package/_esm/AbiError.js +364 -0
  316. package/_esm/AbiError.js.map +1 -0
  317. package/_esm/AbiEvent.js +1038 -0
  318. package/_esm/AbiEvent.js.map +1 -0
  319. package/_esm/AbiFunction.js +549 -0
  320. package/_esm/AbiFunction.js.map +1 -0
  321. package/_esm/AbiItem.js +574 -0
  322. package/_esm/AbiItem.js.map +1 -0
  323. package/_esm/AbiParameters.js +543 -0
  324. package/_esm/AbiParameters.js.map +1 -0
  325. package/_esm/AccessList.js +105 -0
  326. package/_esm/AccessList.js.map +1 -0
  327. package/_esm/AccountProof.js +2 -0
  328. package/_esm/AccountProof.js.map +1 -0
  329. package/_esm/Address.js +268 -0
  330. package/_esm/Address.js.map +1 -0
  331. package/_esm/AesGcm.js +124 -0
  332. package/_esm/AesGcm.js.map +1 -0
  333. package/_esm/Authorization.js +441 -0
  334. package/_esm/Authorization.js.map +1 -0
  335. package/_esm/Base58.js +142 -0
  336. package/_esm/Base58.js.map +1 -0
  337. package/_esm/Base64.js +236 -0
  338. package/_esm/Base64.js.map +1 -0
  339. package/_esm/Blobs.js +624 -0
  340. package/_esm/Blobs.js.map +1 -0
  341. package/_esm/Block.js +177 -0
  342. package/_esm/Block.js.map +1 -0
  343. package/_esm/Bloom.js +57 -0
  344. package/_esm/Bloom.js.map +1 -0
  345. package/_esm/Bls.js +141 -0
  346. package/_esm/Bls.js.map +1 -0
  347. package/_esm/BlsPoint.js +59 -0
  348. package/_esm/BlsPoint.js.map +1 -0
  349. package/_esm/Bytes.js +719 -0
  350. package/_esm/Bytes.js.map +1 -0
  351. package/_esm/Caches.js +19 -0
  352. package/_esm/Caches.js.map +1 -0
  353. package/_esm/ContractAddress.js +110 -0
  354. package/_esm/ContractAddress.js.map +1 -0
  355. package/_esm/Ens.js +84 -0
  356. package/_esm/Ens.js.map +1 -0
  357. package/_esm/Errors.js +105 -0
  358. package/_esm/Errors.js.map +1 -0
  359. package/_esm/Fee.js +2 -0
  360. package/_esm/Fee.js.map +1 -0
  361. package/_esm/Filter.js +100 -0
  362. package/_esm/Filter.js.map +1 -0
  363. package/_esm/Hash.js +126 -0
  364. package/_esm/Hash.js.map +1 -0
  365. package/_esm/HdKey.js +107 -0
  366. package/_esm/HdKey.js.map +1 -0
  367. package/_esm/Hex.js +763 -0
  368. package/_esm/Hex.js.map +1 -0
  369. package/_esm/Json.js +62 -0
  370. package/_esm/Json.js.map +1 -0
  371. package/_esm/Kzg.js +30 -0
  372. package/_esm/Kzg.js.map +1 -0
  373. package/_esm/Log.js +181 -0
  374. package/_esm/Log.js.map +1 -0
  375. package/_esm/Mnemonic.js +154 -0
  376. package/_esm/Mnemonic.js.map +1 -0
  377. package/_esm/P256.js +131 -0
  378. package/_esm/P256.js.map +1 -0
  379. package/_esm/PersonalMessage.js +46 -0
  380. package/_esm/PersonalMessage.js.map +1 -0
  381. package/_esm/Provider.js +122 -0
  382. package/_esm/Provider.js.map +1 -0
  383. package/_esm/PublicKey.js +395 -0
  384. package/_esm/PublicKey.js.map +1 -0
  385. package/_esm/Rlp.js +267 -0
  386. package/_esm/Rlp.js.map +1 -0
  387. package/_esm/RpcRequest.js +131 -0
  388. package/_esm/RpcRequest.js.map +1 -0
  389. package/_esm/RpcResponse.js +457 -0
  390. package/_esm/RpcResponse.js.map +1 -0
  391. package/_esm/RpcSchema.js +46 -0
  392. package/_esm/RpcSchema.js.map +1 -0
  393. package/_esm/RpcTransport.js +110 -0
  394. package/_esm/RpcTransport.js.map +1 -0
  395. package/_esm/Secp256k1.js +173 -0
  396. package/_esm/Secp256k1.js.map +1 -0
  397. package/_esm/Signature.js +696 -0
  398. package/_esm/Signature.js.map +1 -0
  399. package/_esm/Siwe.js +374 -0
  400. package/_esm/Siwe.js.map +1 -0
  401. package/_esm/Solidity.js +104 -0
  402. package/_esm/Solidity.js.map +1 -0
  403. package/_esm/Transaction.js +176 -0
  404. package/_esm/Transaction.js.map +1 -0
  405. package/_esm/TransactionEnvelope.js +139 -0
  406. package/_esm/TransactionEnvelope.js.map +1 -0
  407. package/_esm/TransactionEnvelopeEip1559.js +455 -0
  408. package/_esm/TransactionEnvelopeEip1559.js.map +1 -0
  409. package/_esm/TransactionEnvelopeEip2930.js +439 -0
  410. package/_esm/TransactionEnvelopeEip2930.js.map +1 -0
  411. package/_esm/TransactionEnvelopeEip4844.js +542 -0
  412. package/_esm/TransactionEnvelopeEip4844.js.map +1 -0
  413. package/_esm/TransactionEnvelopeEip7702.js +442 -0
  414. package/_esm/TransactionEnvelopeEip7702.js.map +1 -0
  415. package/_esm/TransactionEnvelopeLegacy.js +495 -0
  416. package/_esm/TransactionEnvelopeLegacy.js.map +1 -0
  417. package/_esm/TransactionReceipt.js +229 -0
  418. package/_esm/TransactionReceipt.js.map +1 -0
  419. package/_esm/TransactionRequest.js +89 -0
  420. package/_esm/TransactionRequest.js.map +1 -0
  421. package/_esm/TypedData.js +635 -0
  422. package/_esm/TypedData.js.map +1 -0
  423. package/_esm/ValidatorData.js +52 -0
  424. package/_esm/ValidatorData.js.map +1 -0
  425. package/_esm/Value.js +196 -0
  426. package/_esm/Value.js.map +1 -0
  427. package/_esm/WebAuthnP256.js +471 -0
  428. package/_esm/WebAuthnP256.js.map +1 -0
  429. package/_esm/WebCryptoP256.js +116 -0
  430. package/_esm/WebCryptoP256.js.map +1 -0
  431. package/_esm/Withdrawal.js +72 -0
  432. package/_esm/Withdrawal.js.map +1 -0
  433. package/_esm/index.js +3366 -0
  434. package/_esm/index.js.map +1 -0
  435. package/_esm/internal/abi.js +9 -0
  436. package/_esm/internal/abi.js.map +1 -0
  437. package/_esm/internal/abiConstructor.js +2 -0
  438. package/_esm/internal/abiConstructor.js.map +1 -0
  439. package/_esm/internal/abiError.js +2 -0
  440. package/_esm/internal/abiError.js.map +1 -0
  441. package/_esm/internal/abiEvent.js +2 -0
  442. package/_esm/internal/abiEvent.js.map +1 -0
  443. package/_esm/internal/abiFunction.js +2 -0
  444. package/_esm/internal/abiFunction.js.map +1 -0
  445. package/_esm/internal/abiItem.js +122 -0
  446. package/_esm/internal/abiItem.js.map +1 -0
  447. package/_esm/internal/abiParameters.js +419 -0
  448. package/_esm/internal/abiParameters.js.map +1 -0
  449. package/_esm/internal/base58.js +91 -0
  450. package/_esm/internal/base58.js.map +1 -0
  451. package/_esm/internal/bytes.js +86 -0
  452. package/_esm/internal/bytes.js.map +1 -0
  453. package/_esm/internal/cursor.js +207 -0
  454. package/_esm/internal/cursor.js.map +1 -0
  455. package/_esm/internal/ens.js +47 -0
  456. package/_esm/internal/ens.js.map +1 -0
  457. package/_esm/internal/errors.js +26 -0
  458. package/_esm/internal/errors.js.map +1 -0
  459. package/_esm/internal/hdKey.js +17 -0
  460. package/_esm/internal/hdKey.js.map +1 -0
  461. package/_esm/internal/hex.js +64 -0
  462. package/_esm/internal/hex.js.map +1 -0
  463. package/_esm/internal/lru.js +36 -0
  464. package/_esm/internal/lru.js.map +1 -0
  465. package/_esm/internal/mnemonic/wordlists.js +11 -0
  466. package/_esm/internal/mnemonic/wordlists.js.map +1 -0
  467. package/_esm/internal/promise.js +52 -0
  468. package/_esm/internal/promise.js.map +1 -0
  469. package/_esm/internal/register.js +2 -0
  470. package/_esm/internal/register.js.map +1 -0
  471. package/_esm/internal/rpcSchema.js +2 -0
  472. package/_esm/internal/rpcSchema.js.map +1 -0
  473. package/_esm/internal/rpcSchemas/eth.js +2 -0
  474. package/_esm/internal/rpcSchemas/eth.js.map +1 -0
  475. package/_esm/internal/rpcSchemas/wallet.js +2 -0
  476. package/_esm/internal/rpcSchemas/wallet.js.map +1 -0
  477. package/_esm/internal/rpcTransport.js +20 -0
  478. package/_esm/internal/rpcTransport.js.map +1 -0
  479. package/_esm/internal/types.js +2 -0
  480. package/_esm/internal/types.js.map +1 -0
  481. package/_esm/internal/uid.js +15 -0
  482. package/_esm/internal/uid.js.map +1 -0
  483. package/_esm/internal/webauthn.js +35 -0
  484. package/_esm/internal/webauthn.js.map +1 -0
  485. package/_esm/package.json +1 -0
  486. package/_esm/trusted-setups/Paths.js +3 -0
  487. package/_esm/trusted-setups/Paths.js.map +1 -0
  488. package/_esm/trusted-setups/index.js +2 -0
  489. package/_esm/trusted-setups/index.js.map +1 -0
  490. package/_esm/trusted-setups/internal/paths.js +12 -0
  491. package/_esm/trusted-setups/internal/paths.js.map +1 -0
  492. package/_esm/version.js +3 -0
  493. package/_esm/version.js.map +1 -0
  494. package/_esm/window/index.js +2 -0
  495. package/_esm/window/index.js.map +1 -0
  496. package/_test/Abi.test-d/package.json +6 -0
  497. package/_test/AbiConstructor.test-d/package.json +6 -0
  498. package/_test/AbiError.test-d/package.json +6 -0
  499. package/_test/AbiEvent.snap-d/package.json +6 -0
  500. package/_test/AbiEvent.snap-d.ts +329 -0
  501. package/_test/AbiFunction.snap-d/package.json +6 -0
  502. package/_test/AbiFunction.snap-d.ts +262 -0
  503. package/_test/AbiItem.snap-d/package.json +6 -0
  504. package/_test/AbiItem.snap-d.ts +131 -0
  505. package/_test/AbiParameters.bench/package.json +6 -0
  506. package/_test/AbiParameters.snap-d/package.json +6 -0
  507. package/_test/AbiParameters.snap-d.ts +66 -0
  508. package/_test/Address.bench/package.json +6 -0
  509. package/_test/Base58.bench/package.json +6 -0
  510. package/_test/Hex.bench/package.json +6 -0
  511. package/_test/Hex.test-d/package.json +6 -0
  512. package/_test/PublicKey.test-d/package.json +6 -0
  513. package/_test/Rlp.bench/package.json +6 -0
  514. package/_test/Rlp.test-d/package.json +6 -0
  515. package/_test/Signature.snap-d/package.json +6 -0
  516. package/_test/Signature.snap-d.ts +96 -0
  517. package/_test/TransactionEnvelopeEip1559.test-d/package.json +6 -0
  518. package/_test/TransactionEnvelopeEip2930.test-d/package.json +6 -0
  519. package/_test/TransactionEnvelopeEip4844.test-d/package.json +6 -0
  520. package/_test/TransactionEnvelopeEip7702.test-d/package.json +6 -0
  521. package/_test/TransactionEnvelopeLegacy.test-d/package.json +6 -0
  522. package/_test/TypedData.test-d/package.json +6 -0
  523. package/_types/Abi.d.ts +137 -0
  524. package/_types/Abi.d.ts.map +1 -0
  525. package/_types/AbiConstructor.d.ts +305 -0
  526. package/_types/AbiConstructor.d.ts.map +1 -0
  527. package/_types/AbiError.d.ts +522 -0
  528. package/_types/AbiError.d.ts.map +1 -0
  529. package/_types/AbiEvent.d.ts +892 -0
  530. package/_types/AbiEvent.d.ts.map +1 -0
  531. package/_types/AbiFunction.d.ts +602 -0
  532. package/_types/AbiFunction.d.ts.map +1 -0
  533. package/_types/AbiItem.d.ts +544 -0
  534. package/_types/AbiItem.d.ts.map +1 -0
  535. package/_types/AbiParameters.d.ts +466 -0
  536. package/_types/AbiParameters.d.ts.map +1 -0
  537. package/_types/AccessList.d.ts +83 -0
  538. package/_types/AccessList.d.ts.map +1 -0
  539. package/_types/AccountProof.d.ts +32 -0
  540. package/_types/AccountProof.d.ts.map +1 -0
  541. package/_types/Address.d.ts +244 -0
  542. package/_types/Address.d.ts.map +1 -0
  543. package/_types/AesGcm.d.ts +116 -0
  544. package/_types/AesGcm.d.ts.map +1 -0
  545. package/_types/Authorization.d.ts +461 -0
  546. package/_types/Authorization.d.ts.map +1 -0
  547. package/_types/Base58.d.ts +131 -0
  548. package/_types/Base58.d.ts.map +1 -0
  549. package/_types/Base64.d.ts +244 -0
  550. package/_types/Base64.d.ts.map +1 -0
  551. package/_types/Blobs.d.ts +556 -0
  552. package/_types/Blobs.d.ts.map +1 -0
  553. package/_types/Block.d.ts +190 -0
  554. package/_types/Block.d.ts.map +1 -0
  555. package/_types/Bloom.d.ts +54 -0
  556. package/_types/Bloom.d.ts.map +1 -0
  557. package/_types/Bls.d.ts +365 -0
  558. package/_types/Bls.d.ts.map +1 -0
  559. package/_types/BlsPoint.d.ts +187 -0
  560. package/_types/BlsPoint.d.ts.map +1 -0
  561. package/_types/Bytes.d.ts +674 -0
  562. package/_types/Bytes.d.ts.map +1 -0
  563. package/_types/Caches.d.ts +13 -0
  564. package/_types/Caches.d.ts.map +1 -0
  565. package/_types/ContractAddress.d.ts +115 -0
  566. package/_types/ContractAddress.d.ts.map +1 -0
  567. package/_types/Ens.d.ts +72 -0
  568. package/_types/Ens.d.ts.map +1 -0
  569. package/_types/Errors.d.ts +33 -0
  570. package/_types/Errors.d.ts.map +1 -0
  571. package/_types/Fee.d.ts +41 -0
  572. package/_types/Fee.d.ts.map +1 -0
  573. package/_types/Filter.d.ts +100 -0
  574. package/_types/Filter.d.ts.map +1 -0
  575. package/_types/Hash.d.ts +135 -0
  576. package/_types/Hash.d.ts.map +1 -0
  577. package/_types/HdKey.d.ts +146 -0
  578. package/_types/HdKey.d.ts.map +1 -0
  579. package/_types/Hex.d.ts +711 -0
  580. package/_types/Hex.d.ts.map +1 -0
  581. package/_types/Json.d.ts +53 -0
  582. package/_types/Json.d.ts.map +1 -0
  583. package/_types/Kzg.d.ts +42 -0
  584. package/_types/Kzg.d.ts.map +1 -0
  585. package/_types/Log.d.ts +194 -0
  586. package/_types/Log.d.ts.map +1 -0
  587. package/_types/Mnemonic.d.ts +176 -0
  588. package/_types/Mnemonic.d.ts.map +1 -0
  589. package/_types/P256.d.ts +207 -0
  590. package/_types/P256.d.ts.map +1 -0
  591. package/_types/PersonalMessage.d.ts +49 -0
  592. package/_types/PersonalMessage.d.ts.map +1 -0
  593. package/_types/Provider.d.ts +268 -0
  594. package/_types/Provider.d.ts.map +1 -0
  595. package/_types/PublicKey.d.ts +327 -0
  596. package/_types/PublicKey.d.ts.map +1 -0
  597. package/_types/Rlp.d.ts +153 -0
  598. package/_types/Rlp.d.ts.map +1 -0
  599. package/_types/RpcRequest.d.ts +144 -0
  600. package/_types/RpcRequest.d.ts.map +1 -0
  601. package/_types/RpcResponse.d.ts +266 -0
  602. package/_types/RpcResponse.d.ts.map +1 -0
  603. package/_types/RpcSchema.d.ts +248 -0
  604. package/_types/RpcSchema.d.ts.map +1 -0
  605. package/_types/RpcTransport.d.ts +65 -0
  606. package/_types/RpcTransport.d.ts.map +1 -0
  607. package/_types/Secp256k1.d.ts +277 -0
  608. package/_types/Secp256k1.d.ts.map +1 -0
  609. package/_types/Signature.d.ts +601 -0
  610. package/_types/Signature.d.ts.map +1 -0
  611. package/_types/Siwe.d.ts +249 -0
  612. package/_types/Siwe.d.ts.map +1 -0
  613. package/_types/Solidity.d.ts +100 -0
  614. package/_types/Solidity.d.ts.map +1 -0
  615. package/_types/Transaction.d.ts +235 -0
  616. package/_types/Transaction.d.ts.map +1 -0
  617. package/_types/TransactionEnvelope.d.ts +141 -0
  618. package/_types/TransactionEnvelope.d.ts.map +1 -0
  619. package/_types/TransactionEnvelopeEip1559.d.ts +367 -0
  620. package/_types/TransactionEnvelopeEip1559.d.ts.map +1 -0
  621. package/_types/TransactionEnvelopeEip2930.d.ts +364 -0
  622. package/_types/TransactionEnvelopeEip2930.d.ts.map +1 -0
  623. package/_types/TransactionEnvelopeEip4844.d.ts +419 -0
  624. package/_types/TransactionEnvelopeEip4844.d.ts.map +1 -0
  625. package/_types/TransactionEnvelopeEip7702.d.ts +377 -0
  626. package/_types/TransactionEnvelopeEip7702.d.ts.map +1 -0
  627. package/_types/TransactionEnvelopeLegacy.d.ts +358 -0
  628. package/_types/TransactionEnvelopeLegacy.d.ts.map +1 -0
  629. package/_types/TransactionReceipt.d.ts +271 -0
  630. package/_types/TransactionReceipt.d.ts.map +1 -0
  631. package/_types/TransactionRequest.d.ts +92 -0
  632. package/_types/TransactionRequest.d.ts.map +1 -0
  633. package/_types/TypedData.d.ts +496 -0
  634. package/_types/TypedData.d.ts.map +1 -0
  635. package/_types/ValidatorData.d.ts +64 -0
  636. package/_types/ValidatorData.d.ts.map +1 -0
  637. package/_types/Value.d.ts +159 -0
  638. package/_types/Value.d.ts.map +1 -0
  639. package/_types/WebAuthnP256.d.ts +445 -0
  640. package/_types/WebAuthnP256.d.ts.map +1 -0
  641. package/_types/WebCryptoP256.d.ts +119 -0
  642. package/_types/WebCryptoP256.d.ts.map +1 -0
  643. package/_types/Withdrawal.d.ts +74 -0
  644. package/_types/Withdrawal.d.ts.map +1 -0
  645. package/_types/index.d.ts +3367 -0
  646. package/_types/index.d.ts.map +1 -0
  647. package/_types/internal/abi.d.ts +4 -0
  648. package/_types/internal/abi.d.ts.map +1 -0
  649. package/_types/internal/abiConstructor.d.ts +11 -0
  650. package/_types/internal/abiConstructor.d.ts.map +1 -0
  651. package/_types/internal/abiError.d.ts +11 -0
  652. package/_types/internal/abiError.d.ts.map +1 -0
  653. package/_types/internal/abiEvent.d.ts +60 -0
  654. package/_types/internal/abiEvent.d.ts.map +1 -0
  655. package/_types/internal/abiFunction.d.ts +11 -0
  656. package/_types/internal/abiFunction.d.ts.map +1 -0
  657. package/_types/internal/abiItem.d.ts +100 -0
  658. package/_types/internal/abiItem.d.ts.map +1 -0
  659. package/_types/internal/abiParameters.d.ts +169 -0
  660. package/_types/internal/abiParameters.d.ts.map +1 -0
  661. package/_types/internal/base58.d.ts +17 -0
  662. package/_types/internal/base58.d.ts.map +1 -0
  663. package/_types/internal/bytes.d.ts +52 -0
  664. package/_types/internal/bytes.d.ts.map +1 -0
  665. package/_types/internal/cursor.d.ts +70 -0
  666. package/_types/internal/cursor.d.ts.map +1 -0
  667. package/_types/internal/ens.d.ts +23 -0
  668. package/_types/internal/ens.d.ts.map +1 -0
  669. package/_types/internal/errors.d.ts +7 -0
  670. package/_types/internal/errors.d.ts.map +1 -0
  671. package/_types/internal/hdKey.d.ts +10 -0
  672. package/_types/internal/hdKey.d.ts.map +1 -0
  673. package/_types/internal/hex.d.ts +39 -0
  674. package/_types/internal/hex.d.ts.map +1 -0
  675. package/_types/internal/lru.d.ts +13 -0
  676. package/_types/internal/lru.d.ts.map +1 -0
  677. package/_types/internal/mnemonic/wordlists.d.ts +11 -0
  678. package/_types/internal/mnemonic/wordlists.d.ts.map +1 -0
  679. package/_types/internal/promise.d.ts +27 -0
  680. package/_types/internal/promise.d.ts.map +1 -0
  681. package/_types/internal/register.d.ts +13 -0
  682. package/_types/internal/register.d.ts.map +1 -0
  683. package/_types/internal/rpcSchema.d.ts +12 -0
  684. package/_types/internal/rpcSchema.d.ts.map +1 -0
  685. package/_types/internal/rpcSchemas/eth.d.ts +718 -0
  686. package/_types/internal/rpcSchemas/eth.d.ts.map +1 -0
  687. package/_types/internal/rpcSchemas/wallet.d.ts +416 -0
  688. package/_types/internal/rpcSchemas/wallet.d.ts.map +1 -0
  689. package/_types/internal/rpcTransport.d.ts +38 -0
  690. package/_types/internal/rpcTransport.d.ts.map +1 -0
  691. package/_types/internal/types.d.ts +284 -0
  692. package/_types/internal/types.d.ts.map +1 -0
  693. package/_types/internal/uid.d.ts +3 -0
  694. package/_types/internal/uid.d.ts.map +1 -0
  695. package/_types/internal/webauthn.d.ts +127 -0
  696. package/_types/internal/webauthn.d.ts.map +1 -0
  697. package/_types/trusted-setups/Paths.d.ts +2 -0
  698. package/_types/trusted-setups/Paths.d.ts.map +1 -0
  699. package/_types/trusted-setups/index.d.ts +2 -0
  700. package/_types/trusted-setups/index.d.ts.map +1 -0
  701. package/_types/trusted-setups/internal/paths.d.ts +3 -0
  702. package/_types/trusted-setups/internal/paths.d.ts.map +1 -0
  703. package/_types/version.d.ts +3 -0
  704. package/_types/version.d.ts.map +1 -0
  705. package/_types/window/index.d.ts +7 -0
  706. package/_types/window/index.d.ts.map +1 -0
  707. package/index.ts +3427 -0
  708. package/internal/abi.ts +11 -0
  709. package/internal/abiConstructor.ts +32 -0
  710. package/internal/abiError.ts +30 -0
  711. package/internal/abiEvent.ts +154 -0
  712. package/internal/abiFunction.ts +32 -0
  713. package/internal/abiItem.ts +593 -0
  714. package/internal/abiParameters.ts +741 -0
  715. package/internal/base58.ts +106 -0
  716. package/internal/bytes.ts +152 -0
  717. package/internal/cursor.ts +252 -0
  718. package/internal/ens.ts +64 -0
  719. package/internal/errors.ts +26 -0
  720. package/internal/hdKey.ts +25 -0
  721. package/internal/hex.ts +123 -0
  722. package/internal/lru.ts +34 -0
  723. package/internal/mnemonic/wordlists.ts +10 -0
  724. package/internal/promise.ts +66 -0
  725. package/internal/register.ts +15 -0
  726. package/internal/rpcSchema.ts +20 -0
  727. package/internal/rpcSchemas/eth.ts +727 -0
  728. package/internal/rpcSchemas/wallet.ts +428 -0
  729. package/internal/rpcTransport.ts +74 -0
  730. package/internal/types.ts +414 -0
  731. package/internal/uid.ts +15 -0
  732. package/internal/webauthn.ts +198 -0
  733. package/package.json +500 -20
  734. package/trusted-setups/Paths/package.json +6 -0
  735. package/trusted-setups/Paths.ts +3 -0
  736. package/trusted-setups/index.ts +1 -0
  737. package/trusted-setups/internal/paths.ts +13 -0
  738. package/trusted-setups/internal/setups/mainnet.json +8265 -0
  739. package/trusted-setups/internal/setups/mainnet.txt +4163 -0
  740. package/trusted-setups/package.json +6 -0
  741. package/tsdoc.json +4 -0
  742. package/version/package.json +6 -0
  743. package/version.ts +2 -0
  744. package/window/index.ts +7 -0
  745. package/window/package.json +6 -0
  746. package/cl/ansiesc.js +0 -25
  747. package/cl/deps.js +0 -7
  748. package/cl/editor.js +0 -141
  749. package/cl/index.html +0 -19
  750. package/cl/ox.js +0 -44
  751. package/cl/socket.io.js +0 -1922
  752. package/cl/style.css +0 -37
  753. package/srv/deps.js +0 -88
  754. package/srv/httpSrv.js +0 -82
  755. package/srv/ox.js +0 -44
  756. package/srv/remoteXtermReq.js +0 -70
@@ -0,0 +1,327 @@
1
+ import * as Bytes from './Bytes.js';
2
+ import * as Errors from './Errors.js';
3
+ import * as Hex from './Hex.js';
4
+ import type { Compute, ExactPartial } from './internal/types.js';
5
+ /** Root type for an ECDSA Public Key. */
6
+ export type PublicKey<compressed extends boolean = false, bigintType = bigint, numberType = number> = Compute<compressed extends true ? {
7
+ prefix: numberType;
8
+ x: bigintType;
9
+ y?: undefined;
10
+ } : {
11
+ prefix: numberType;
12
+ x: bigintType;
13
+ y: bigintType;
14
+ }>;
15
+ /**
16
+ * Asserts that a {@link ox#PublicKey.PublicKey} is valid.
17
+ *
18
+ * @example
19
+ * ```ts twoslash
20
+ * import { PublicKey } from 'ox'
21
+ *
22
+ * PublicKey.assert({
23
+ * prefix: 4,
24
+ * y: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,
25
+ * })
26
+ * // @error: PublicKey.InvalidError: Value \`{"y":"1"}\` is not a valid public key.
27
+ * // @error: Public key must contain:
28
+ * // @error: - an `x` and `prefix` value (compressed)
29
+ * // @error: - an `x`, `y`, and `prefix` value (uncompressed)
30
+ * ```
31
+ *
32
+ * @param publicKey - The public key object to assert.
33
+ */
34
+ export declare function assert(publicKey: ExactPartial<PublicKey>, options?: assert.Options): asserts publicKey is PublicKey;
35
+ export declare namespace assert {
36
+ type Options = {
37
+ /** Whether or not the public key should be compressed. */
38
+ compressed?: boolean;
39
+ };
40
+ type ErrorType = InvalidError | InvalidPrefixError | Errors.GlobalErrorType;
41
+ }
42
+ /**
43
+ * Compresses a {@link ox#PublicKey.PublicKey}.
44
+ *
45
+ * @example
46
+ * ```ts twoslash
47
+ * import { PublicKey } from 'ox'
48
+ *
49
+ * const publicKey = PublicKey.from({
50
+ * prefix: 4,
51
+ * x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,
52
+ * y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,
53
+ * })
54
+ *
55
+ * const compressed = PublicKey.compress(publicKey) // [!code focus]
56
+ * // @log: {
57
+ * // @log: prefix: 3,
58
+ * // @log: x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,
59
+ * // @log: }
60
+ * ```
61
+ *
62
+ * @param publicKey - The public key to compress.
63
+ * @returns The compressed public key.
64
+ */
65
+ export declare function compress(publicKey: PublicKey<false>): PublicKey<true>;
66
+ export declare namespace compress {
67
+ var parseError: (error: unknown) => compress.ErrorType;
68
+ }
69
+ export declare namespace compress {
70
+ type ErrorType = Errors.GlobalErrorType;
71
+ }
72
+ /**
73
+ * Instantiates a typed {@link ox#PublicKey.PublicKey} object from a {@link ox#PublicKey.PublicKey}, {@link ox#Bytes.Bytes}, or {@link ox#Hex.Hex}.
74
+ *
75
+ * @example
76
+ * ```ts twoslash
77
+ * import { PublicKey } from 'ox'
78
+ *
79
+ * const publicKey = PublicKey.from({
80
+ * prefix: 4,
81
+ * x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,
82
+ * y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,
83
+ * })
84
+ * // @log: {
85
+ * // @log: prefix: 4,
86
+ * // @log: x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,
87
+ * // @log: y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,
88
+ * // @log: }
89
+ * ```
90
+ *
91
+ * @example
92
+ * ### From Serialized
93
+ *
94
+ * ```ts twoslash
95
+ * import { PublicKey } from 'ox'
96
+ *
97
+ * const publicKey = PublicKey.from('0x048318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5')
98
+ * // @log: {
99
+ * // @log: prefix: 4,
100
+ * // @log: x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,
101
+ * // @log: y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,
102
+ * // @log: }
103
+ * ```
104
+ *
105
+ * @param value - The public key value to instantiate.
106
+ * @returns The instantiated {@link ox#PublicKey.PublicKey}.
107
+ */
108
+ export declare function from<const publicKey extends CompressedPublicKey | UncompressedPublicKey | Hex.Hex | Bytes.Bytes>(value: from.Value<publicKey>): from.ReturnType<publicKey>;
109
+ export declare namespace from {
110
+ var parseError: (error: unknown) => from.ErrorType;
111
+ }
112
+ /** @internal */
113
+ type CompressedPublicKey = PublicKey<true>;
114
+ /** @internal */
115
+ type UncompressedPublicKey = Omit<PublicKey<false>, 'prefix'> & {
116
+ prefix?: PublicKey['prefix'] | undefined;
117
+ };
118
+ export declare namespace from {
119
+ type Value<publicKey extends CompressedPublicKey | UncompressedPublicKey | Hex.Hex | Bytes.Bytes = PublicKey> = publicKey | CompressedPublicKey | UncompressedPublicKey;
120
+ type ReturnType<publicKey extends CompressedPublicKey | UncompressedPublicKey | Hex.Hex | Bytes.Bytes = PublicKey> = publicKey extends CompressedPublicKey | UncompressedPublicKey ? publicKey extends UncompressedPublicKey ? Compute<publicKey & {
121
+ readonly prefix: 0x04;
122
+ }> : publicKey : PublicKey;
123
+ type ErrorType = assert.ErrorType | Errors.GlobalErrorType;
124
+ }
125
+ /**
126
+ * Deserializes a {@link ox#PublicKey.PublicKey} from a {@link ox#Bytes.Bytes} value.
127
+ *
128
+ * @example
129
+ * ```ts twoslash
130
+ * // @noErrors
131
+ * import { PublicKey } from 'ox'
132
+ *
133
+ * const publicKey = PublicKey.fromBytes(new Uint8Array([128, 3, 131, ...]))
134
+ * // @log: {
135
+ * // @log: prefix: 4,
136
+ * // @log: x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,
137
+ * // @log: y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,
138
+ * // @log: }
139
+ * ```
140
+ *
141
+ * @param publicKey - The serialized public key.
142
+ * @returns The deserialized public key.
143
+ */
144
+ export declare function fromBytes(publicKey: Bytes.Bytes): PublicKey;
145
+ export declare namespace fromBytes {
146
+ var parseError: (error: unknown) => fromBytes.ErrorType;
147
+ }
148
+ export declare namespace fromBytes {
149
+ type ErrorType = fromHex.ErrorType | Hex.fromBytes.ErrorType | Errors.GlobalErrorType;
150
+ }
151
+ /**
152
+ * Deserializes a {@link ox#PublicKey.PublicKey} from a {@link ox#Hex.Hex} value.
153
+ *
154
+ * @example
155
+ * ```ts twoslash
156
+ * import { PublicKey } from 'ox'
157
+ *
158
+ * const publicKey = PublicKey.fromHex('0x8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5')
159
+ * // @log: {
160
+ * // @log: prefix: 4,
161
+ * // @log: x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,
162
+ * // @log: y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,
163
+ * // @log: }
164
+ * ```
165
+ *
166
+ * @example
167
+ * ### Deserializing a Compressed Public Key
168
+ *
169
+ * ```ts twoslash
170
+ * import { PublicKey } from 'ox'
171
+ *
172
+ * const publicKey = PublicKey.fromHex('0x038318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed75')
173
+ * // @log: {
174
+ * // @log: prefix: 3,
175
+ * // @log: x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,
176
+ * // @log: }
177
+ * ```
178
+ *
179
+ * @param publicKey - The serialized public key.
180
+ * @returns The deserialized public key.
181
+ */
182
+ export declare function fromHex(publicKey: Hex.Hex): PublicKey;
183
+ export declare namespace fromHex {
184
+ var parseError: (error: unknown) => fromHex.ErrorType;
185
+ }
186
+ export declare namespace fromHex {
187
+ type ErrorType = Hex.slice.ErrorType | Errors.GlobalErrorType;
188
+ }
189
+ /**
190
+ * Serializes a {@link ox#PublicKey.PublicKey} to {@link ox#Bytes.Bytes}.
191
+ *
192
+ * @example
193
+ * ```ts twoslash
194
+ * import { PublicKey } from 'ox'
195
+ *
196
+ * const publicKey = PublicKey.from({
197
+ * prefix: 4,
198
+ * x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,
199
+ * y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,
200
+ * })
201
+ *
202
+ * const bytes = PublicKey.toBytes(publicKey) // [!code focus]
203
+ * // @log: Uint8Array [128, 3, 131, ...]
204
+ * ```
205
+ *
206
+ * @param publicKey - The public key to serialize.
207
+ * @returns The serialized public key.
208
+ */
209
+ export declare function toBytes(publicKey: PublicKey<boolean>, options?: toBytes.Options): Bytes.Bytes;
210
+ export declare namespace toBytes {
211
+ var parseError: (error: unknown) => toBytes.ErrorType;
212
+ }
213
+ export declare namespace toBytes {
214
+ type Options = {
215
+ /**
216
+ * Whether to include the prefix in the serialized public key.
217
+ * @default true
218
+ */
219
+ includePrefix?: boolean | undefined;
220
+ };
221
+ type ErrorType = Hex.fromNumber.ErrorType | Bytes.fromHex.ErrorType | Errors.GlobalErrorType;
222
+ }
223
+ /**
224
+ * Serializes a {@link ox#PublicKey.PublicKey} to {@link ox#Hex.Hex}.
225
+ *
226
+ * @example
227
+ * ```ts twoslash
228
+ * import { PublicKey } from 'ox'
229
+ *
230
+ * const publicKey = PublicKey.from({
231
+ * prefix: 4,
232
+ * x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,
233
+ * y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,
234
+ * })
235
+ *
236
+ * const hex = PublicKey.toHex(publicKey) // [!code focus]
237
+ * // @log: '0x048318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5'
238
+ * ```
239
+ *
240
+ * @param publicKey - The public key to serialize.
241
+ * @returns The serialized public key.
242
+ */
243
+ export declare function toHex(publicKey: PublicKey<boolean>, options?: toHex.Options): Hex.Hex;
244
+ export declare namespace toHex {
245
+ var parseError: (error: unknown) => toHex.ErrorType;
246
+ }
247
+ export declare namespace toHex {
248
+ type Options = {
249
+ /**
250
+ * Whether to include the prefix in the serialized public key.
251
+ * @default true
252
+ */
253
+ includePrefix?: boolean | undefined;
254
+ };
255
+ type ErrorType = Hex.fromNumber.ErrorType | Errors.GlobalErrorType;
256
+ }
257
+ /**
258
+ * Validates a {@link ox#PublicKey.PublicKey}. Returns `true` if valid, `false` otherwise.
259
+ *
260
+ * @example
261
+ * ```ts twoslash
262
+ * import { PublicKey } from 'ox'
263
+ *
264
+ * const valid = PublicKey.validate({
265
+ * prefix: 4,
266
+ * y: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,
267
+ * })
268
+ * // @log: false
269
+ * ```
270
+ *
271
+ * @param publicKey - The public key object to assert.
272
+ */
273
+ export declare function validate(publicKey: ExactPartial<PublicKey>, options?: validate.Options): boolean;
274
+ export declare namespace validate {
275
+ type Options = {
276
+ /** Whether or not the public key should be compressed. */
277
+ compressed?: boolean;
278
+ };
279
+ type ErrorType = Errors.GlobalErrorType;
280
+ }
281
+ /**
282
+ * Thrown when a public key is invalid.
283
+ *
284
+ * @example
285
+ * ```ts twoslash
286
+ * import { PublicKey } from 'ox'
287
+ *
288
+ * PublicKey.assert({ y: 1n })
289
+ * // @error: PublicKey.InvalidError: Value `{"y":1n}` is not a valid public key.
290
+ * // @error: Public key must contain:
291
+ * // @error: - an `x` and `prefix` value (compressed)
292
+ * // @error: - an `x`, `y`, and `prefix` value (uncompressed)
293
+ * ```
294
+ */
295
+ export declare class InvalidError extends Errors.BaseError {
296
+ readonly name = "PublicKey.InvalidError";
297
+ constructor({ publicKey }: {
298
+ publicKey: unknown;
299
+ });
300
+ }
301
+ /** Thrown when a public key has an invalid prefix. */
302
+ export declare class InvalidPrefixError<cause extends InvalidCompressedPrefixError | InvalidUncompressedPrefixError = InvalidCompressedPrefixError | InvalidUncompressedPrefixError> extends Errors.BaseError<cause> {
303
+ readonly name = "PublicKey.InvalidPrefixError";
304
+ constructor({ prefix, cause }: {
305
+ prefix: number | undefined;
306
+ cause: cause;
307
+ });
308
+ }
309
+ /** Thrown when the public key has an invalid prefix for a compressed public key. */
310
+ export declare class InvalidCompressedPrefixError extends Errors.BaseError {
311
+ readonly name = "PublicKey.InvalidCompressedPrefixError";
312
+ constructor();
313
+ }
314
+ /** Thrown when the public key has an invalid prefix for an uncompressed public key. */
315
+ export declare class InvalidUncompressedPrefixError extends Errors.BaseError {
316
+ readonly name = "PublicKey.InvalidUncompressedPrefixError";
317
+ constructor();
318
+ }
319
+ /** Thrown when the public key has an invalid serialized size. */
320
+ export declare class InvalidSerializedSizeError extends Errors.BaseError {
321
+ readonly name = "PublicKey.InvalidSerializedSizeError";
322
+ constructor({ publicKey }: {
323
+ publicKey: Hex.Hex | Bytes.Bytes;
324
+ });
325
+ }
326
+ export {};
327
+ //# sourceMappingURL=PublicKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublicKey.d.ts","sourceRoot":"","sources":["../PublicKey.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
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
+ * Decodes a Recursive-Length Prefix (RLP) value into a {@link ox#Bytes.Bytes} value.
8
+ *
9
+ * @example
10
+ * ```ts twoslash
11
+ * import { Rlp } from 'ox'
12
+ * Rlp.toBytes('0x8b68656c6c6f20776f726c64')
13
+ * // Uint8Array([139, 104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100])
14
+ * ```
15
+ *
16
+ * @param value - The value to decode.
17
+ * @returns The decoded {@link ox#Bytes.Bytes} value.
18
+ */
19
+ export declare function toBytes(value: Bytes.Bytes | Hex.Hex): RecursiveArray<Bytes.Bytes>;
20
+ export declare namespace toBytes {
21
+ var parseError: (error: unknown) => toBytes.ErrorType;
22
+ }
23
+ export declare namespace toBytes {
24
+ type ErrorType = to.ErrorType;
25
+ }
26
+ /**
27
+ * Decodes a Recursive-Length Prefix (RLP) value into a {@link ox#Hex.Hex} value.
28
+ *
29
+ * @example
30
+ * ```ts twoslash
31
+ * import { Rlp } from 'ox'
32
+ * Rlp.toHex('0x8b68656c6c6f20776f726c64')
33
+ * // 0x68656c6c6f20776f726c64
34
+ * ```
35
+ *
36
+ * @param value - The value to decode.
37
+ * @returns The decoded {@link ox#Hex.Hex} value.
38
+ */
39
+ export declare function toHex(value: Bytes.Bytes | Hex.Hex): RecursiveArray<Hex.Hex>;
40
+ export declare namespace toHex {
41
+ var parseError: (error: unknown) => toHex.ErrorType;
42
+ }
43
+ export declare namespace toHex {
44
+ type ErrorType = to.ErrorType;
45
+ }
46
+ /** @internal */
47
+ export declare function to<value extends Bytes.Bytes | Hex.Hex, to extends 'Hex' | 'Bytes'>(value: value, to: to | 'Hex' | 'Bytes'): to.ReturnType<to>;
48
+ export declare namespace to {
49
+ var parseError: (error: unknown) => to.ErrorType;
50
+ }
51
+ /** @internal */
52
+ export declare namespace to {
53
+ type ReturnType<to extends 'Hex' | 'Bytes' = 'Hex' | 'Bytes'> = (to extends 'Bytes' ? RecursiveArray<Bytes.Bytes> : never) | (to extends 'Hex' ? RecursiveArray<Hex.Hex> : never);
54
+ type ErrorType = Bytes.fromHex.ErrorType | decodeRlpCursor.ErrorType | Cursor.create.ErrorType | Hex.InvalidLengthError | Errors.GlobalErrorType;
55
+ }
56
+ /** @internal */
57
+ export declare function decodeRlpCursor<to extends 'Hex' | 'Bytes' = 'Hex'>(cursor: Cursor.Cursor, to?: to | 'Hex' | 'Bytes' | undefined): decodeRlpCursor.ReturnType<to>;
58
+ /** @internal */
59
+ export declare namespace decodeRlpCursor {
60
+ type ReturnType<to extends 'Hex' | 'Bytes' = 'Hex'> = to.ReturnType<to>;
61
+ type ErrorType = Hex.fromBytes.ErrorType | readLength.ErrorType | readList.ErrorType | Errors.GlobalErrorType;
62
+ }
63
+ /** @internal */
64
+ export declare function readLength(cursor: Cursor.Cursor, prefix: number, offset: number): number;
65
+ /** @internal */
66
+ export declare namespace readLength {
67
+ type ErrorType = Errors.BaseError | Errors.GlobalErrorType;
68
+ }
69
+ /** @internal */
70
+ export declare function readList<to extends 'Hex' | 'Bytes'>(cursor: Cursor.Cursor, length: number, to: to | 'Hex' | 'Bytes'): decodeRlpCursor.ReturnType<to>[];
71
+ /** @internal */
72
+ export declare namespace readList {
73
+ type ErrorType = Errors.GlobalErrorType;
74
+ }
75
+ /**
76
+ * Encodes a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value into a Recursive-Length Prefix (RLP) value.
77
+ *
78
+ * @example
79
+ * ```ts twoslash
80
+ * import { Bytes, Rlp } from 'ox'
81
+ *
82
+ * Rlp.from('0x68656c6c6f20776f726c64', { as: 'Hex' })
83
+ * // @log: 0x8b68656c6c6f20776f726c64
84
+ *
85
+ * Rlp.from(Bytes.from([139, 104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]), { as: 'Bytes' })
86
+ * // @log: Uint8Array([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100])
87
+ * ```
88
+ *
89
+ * @param value - The {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value to encode.
90
+ * @param options - Options.
91
+ * @returns The RLP value.
92
+ */
93
+ export declare function from<as extends 'Hex' | 'Bytes'>(value: RecursiveArray<Bytes.Bytes> | RecursiveArray<Hex.Hex>, options: from.Options<as>): from.ReturnType<as>;
94
+ export declare namespace from {
95
+ var parseError: (error: unknown) => from.ErrorType;
96
+ }
97
+ export declare namespace from {
98
+ type Options<as extends 'Hex' | 'Bytes'> = {
99
+ /** The type to convert the RLP value to. */
100
+ as: as | 'Hex' | 'Bytes';
101
+ };
102
+ type ReturnType<as extends 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
103
+ type ErrorType = Cursor.create.ErrorType | Hex.fromBytes.ErrorType | Bytes.fromHex.ErrorType | Errors.GlobalErrorType;
104
+ }
105
+ /**
106
+ * Encodes a {@link ox#Bytes.Bytes} value into a Recursive-Length Prefix (RLP) value.
107
+ *
108
+ * @example
109
+ * ```ts twoslash
110
+ * import { Bytes, Rlp } from 'ox'
111
+ *
112
+ * Rlp.fromBytes(Bytes.from([139, 104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]))
113
+ * // @log: Uint8Array([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100])
114
+ * ```
115
+ *
116
+ * @param bytes - The {@link ox#Bytes.Bytes} value to encode.
117
+ * @param options - Options.
118
+ * @returns The RLP value.
119
+ */
120
+ export declare function fromBytes<as extends 'Hex' | 'Bytes' = 'Bytes'>(bytes: RecursiveArray<Bytes.Bytes>, options?: fromBytes.Options<as>): fromBytes.ReturnType<as>;
121
+ export declare namespace fromBytes {
122
+ var parseError: (error: unknown) => fromBytes.ErrorType;
123
+ }
124
+ export declare namespace fromBytes {
125
+ type Options<as extends 'Hex' | 'Bytes' = 'Bytes'> = ExactPartial<from.Options<as>>;
126
+ type ReturnType<as extends 'Hex' | 'Bytes' = 'Bytes'> = from.ReturnType<as>;
127
+ type ErrorType = from.ErrorType | Errors.GlobalErrorType;
128
+ }
129
+ /**
130
+ * Encodes a {@link ox#Hex.Hex} value into a Recursive-Length Prefix (RLP) value.
131
+ *
132
+ * @example
133
+ * ```ts twoslash
134
+ * import { Rlp } from 'ox'
135
+ *
136
+ * Rlp.fromHex('0x68656c6c6f20776f726c64')
137
+ * // @log: 0x8b68656c6c6f20776f726c64
138
+ * ```
139
+ *
140
+ * @param hex - The {@link ox#Hex.Hex} value to encode.
141
+ * @param options - Options.
142
+ * @returns The RLP value.
143
+ */
144
+ export declare function fromHex<as extends 'Hex' | 'Bytes' = 'Hex'>(hex: RecursiveArray<Hex.Hex>, options?: fromHex.Options<as>): fromHex.ReturnType<as>;
145
+ export declare namespace fromHex {
146
+ var parseError: (error: unknown) => fromHex.ErrorType;
147
+ }
148
+ export declare namespace fromHex {
149
+ type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = ExactPartial<from.Options<as>>;
150
+ type ReturnType<as extends 'Hex' | 'Bytes' = 'Hex'> = from.ReturnType<as>;
151
+ type ErrorType = from.ErrorType | Errors.GlobalErrorType;
152
+ }
153
+ //# sourceMappingURL=Rlp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rlp.d.ts","sourceRoot":"","sources":["../Rlp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
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
+ /** A JSON-RPC request object as per the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification#request_object). */
6
+ export type RpcRequest<schema extends RpcSchema.Generic = RpcSchema.Generic> = Compute<schema extends any ? schema['Request'] & {
7
+ id: number;
8
+ jsonrpc: '2.0';
9
+ /** @deprecated internal */
10
+ _returnType: schema['ReturnType'];
11
+ } : never>;
12
+ /** JSON-RPC request store type. */
13
+ export type Store<schema extends RpcSchema.Generic = RpcSchema.Default> = Compute<{
14
+ prepare: <methodName extends RpcSchema.MethodNameGeneric>(parameters: Compute<RpcSchema_internal.ExtractRequestOpaque<schema, methodName>>) => Compute<RpcRequest<RpcSchema.ExtractItem<schema, methodName>>>;
15
+ readonly id: number;
16
+ }>;
17
+ /**
18
+ * Creates a JSON-RPC request store to build requests with an incrementing `id`.
19
+ *
20
+ * 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).
21
+ *
22
+ * @example
23
+ * ```ts twoslash
24
+ * import { RpcRequest } from 'ox'
25
+ *
26
+ * const store = RpcRequest.createStore()
27
+ *
28
+ * const request_1 = store.prepare({
29
+ * method: 'eth_blockNumber',
30
+ * })
31
+ * // @log: { id: 0, jsonrpc: '2.0', method: 'eth_blockNumber' }
32
+ *
33
+ * const request_2 = store.prepare({
34
+ * method: 'eth_call',
35
+ * params: [
36
+ * {
37
+ * to: '0x0000000000000000000000000000000000000000',
38
+ * data: '0xdeadbeef',
39
+ * },
40
+ * ],
41
+ * })
42
+ * // @log: { id: 1, jsonrpc: '2.0', method: 'eth_call', params: [{ to: '0x0000000000000000000000000000000000000000', data: '0xdeadbeef' }] }
43
+ * ```
44
+ *
45
+ * @example
46
+ * ### Type-safe Custom Schemas
47
+ *
48
+ * It is possible to define your own type-safe schema by using the {@link ox#RpcSchema.From} type.
49
+ *
50
+ * ```ts twoslash
51
+ * import { RpcSchema, RpcRequest } from 'ox'
52
+ *
53
+ * type Schema = RpcSchema.From<{ // [!code focus]
54
+ * Request: { // [!code focus]
55
+ * method: 'eth_foobar' // [!code focus]
56
+ * params: [number] // [!code focus]
57
+ * } // [!code focus]
58
+ * ReturnType: string // [!code focus]
59
+ * } | { // [!code focus]
60
+ * Request: { // [!code focus]
61
+ * method: 'eth_foobaz' // [!code focus]
62
+ * params: [string] // [!code focus]
63
+ * } // [!code focus]
64
+ * ReturnType: string // [!code focus]
65
+ * }> // [!code focus]
66
+ *
67
+ * const store = RpcRequest.createStore<Schema>() // [!code focus]
68
+ *
69
+ * const request = store.prepare({
70
+ * method: 'eth_foobar', // [!code focus]
71
+ * // ^?
72
+ * params: [42],
73
+ * })
74
+ * ```
75
+ *
76
+ * @param options - Request store options.
77
+ * @returns The request store
78
+ */
79
+ export declare function createStore<schema extends RpcSchema.Generic = RpcSchema.Default>(options?: createStore.Options): createStore.ReturnType<schema>;
80
+ export declare namespace createStore {
81
+ var parseError: (error: unknown) => createStore.ErrorType;
82
+ }
83
+ export declare namespace createStore {
84
+ type Options = {
85
+ /** The initial request ID. */
86
+ id?: number;
87
+ };
88
+ type ReturnType<schema extends RpcSchema.Generic = RpcSchema.Default> = Store<schema>;
89
+ type ErrorType = Errors.GlobalErrorType;
90
+ }
91
+ /**
92
+ * 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).
93
+ *
94
+ * :::warning
95
+ *
96
+ * You will likely want to use {@link ox#RpcRequest.(createStore:function)} instead as it will also manage `id`s and uses this function internally.
97
+ *
98
+ * :::
99
+ *
100
+ * @example
101
+ * ```ts twoslash
102
+ * import { RpcRequest, RpcResponse } from 'ox'
103
+ *
104
+ * // 1. Build a request object.
105
+ * const request = RpcRequest.from({ // [!code focus]
106
+ * id: 0, // [!code focus]
107
+ * method: 'eth_estimateGas', // [!code focus]
108
+ * params: [ // [!code focus]
109
+ * { // [!code focus]
110
+ * from: '0xd2135CfB216b74109775236E36d4b433F1DF507B', // [!code focus]
111
+ * to: '0x0D44f617435088c947F00B31160f64b074e412B4', // [!code focus]
112
+ * value: '0x69420', // [!code focus]
113
+ * }, // [!code focus]
114
+ * ], // [!code focus]
115
+ * }) // [!code focus]
116
+ *
117
+ * // 2. Send the JSON-RPC request via HTTP.
118
+ * const gas = await fetch('https://1.rpc.thirdweb.com', {
119
+ * body: JSON.stringify(request),
120
+ * headers: {
121
+ * 'Content-Type': 'application/json',
122
+ * },
123
+ * method: 'POST',
124
+ * })
125
+ * .then((response) => response.json())
126
+ * // 3. Parse the JSON-RPC response into a type-safe result.
127
+ * .then((response) => RpcResponse.parse(response, { request }))
128
+ * ```
129
+ *
130
+ * @param options - JSON-RPC request options.
131
+ * @returns The fully-formed JSON-RPC request object.
132
+ */
133
+ export declare function from<methodName extends RpcSchema.MethodNameGeneric>(options: from.Options<methodName>): from.ReturnType<methodName>;
134
+ export declare namespace from {
135
+ var parseError: (error: unknown) => from.ErrorType;
136
+ }
137
+ export declare namespace from {
138
+ type Options<methodName extends RpcSchema.MethodNameGeneric> = Compute<RpcSchema_internal.ExtractRequestOpaque<RpcSchema.Default, methodName> & {
139
+ id: number;
140
+ }>;
141
+ type ReturnType<methodName extends RpcSchema.MethodNameGeneric> = Compute<RpcRequest<RpcSchema.ExtractItem<RpcSchema.Default, methodName>>>;
142
+ type ErrorType = Errors.GlobalErrorType;
143
+ }
144
+ //# sourceMappingURL=RpcRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RpcRequest.d.ts","sourceRoot":"","sources":["../RpcRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,+HAA+H;AAC/H,MAAM,MAAM,UAAU,CAAC,MAAM,SAAS,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IACzE,OAAO,CACL,MAAM,SAAS,GAAG,GACd,MAAM,CAAC,SAAS,CAAC,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,KAAK,CAAA;IACd,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;CAClC,GACD,KAAK,CACV,CAAA;AAEH,mCAAmC;AACnC,MAAM,MAAM,KAAK,CAAC,MAAM,SAAS,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IACpE,OAAO,CAAC;IACN,OAAO,EAAE,CAAC,UAAU,SAAS,SAAS,CAAC,iBAAiB,EACtD,UAAU,EAAE,OAAO,CACjB,kBAAkB,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAC5D,KACE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACnE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB,CAAC,CAAA;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,wBAAgB,WAAW,CACzB,MAAM,SAAS,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,EACpD,OAAO,GAAE,WAAW,CAAC,OAAY,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAanE;yBAfe,WAAW;4BA6BM,OAAO,KAE7B,WAAW,CAAC,SAAS;;AAdhC,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,KAAK,OAAO,GAAG;QACb,8BAA8B;QAC9B,EAAE,CAAC,EAAE,MAAM,CAAA;KACZ,CAAA;IAED,KAAK,UAAU,CAAC,MAAM,SAAS,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAClE,KAAK,CAAC,MAAM,CAAC,CAAA;IAEf,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,IAAI,CAAC,UAAU,SAAS,SAAS,CAAC,iBAAiB,EACjE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAChC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAK7B;yBAPe,IAAI;4BAuBM,OAAO,KAEtB,IAAI,CAAC,SAAS;;AAhBzB,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,OAAO,CAAC,UAAU,SAAS,SAAS,CAAC,iBAAiB,IAAI,OAAO,CACpE,kBAAkB,CAAC,oBAAoB,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG;QACvE,EAAE,EAAE,MAAM,CAAA;KACX,CACF,CAAA;IAED,KAAK,UAAU,CAAC,UAAU,SAAS,SAAS,CAAC,iBAAiB,IAAI,OAAO,CACvE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CACjE,CAAA;IAED,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC"}