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/_esm/Blobs.js ADDED
@@ -0,0 +1,624 @@
1
+ import * as Bytes from './Bytes.js';
2
+ import * as Errors from './Errors.js';
3
+ import * as Hash from './Hash.js';
4
+ import * as Hex from './Hex.js';
5
+ import * as Kzg from './Kzg.js';
6
+ import * as Cursor from './internal/cursor.js';
7
+ /** Blob limit per transaction. */
8
+ const blobsPerTransaction = 6;
9
+ /** The number of bytes in a BLS scalar field element. */
10
+ export const bytesPerFieldElement = 32;
11
+ /** The number of field elements in a blob. */
12
+ export const fieldElementsPerBlob = 4096;
13
+ /** The number of bytes in a blob. */
14
+ export const bytesPerBlob = bytesPerFieldElement * fieldElementsPerBlob;
15
+ /** Blob bytes limit per transaction. */
16
+ export const maxBytesPerTransaction = bytesPerBlob * blobsPerTransaction -
17
+ // terminator byte (0x80).
18
+ 1 -
19
+ // zero byte (0x00) appended to each field element.
20
+ 1 * fieldElementsPerBlob * blobsPerTransaction;
21
+ /**
22
+ * Transform a list of Commitments to Blob Versioned Hashes.
23
+ *
24
+ * @example
25
+ * ```ts twoslash
26
+ * // @noErrors
27
+ * import { Blobs } from 'viem'
28
+ * import { kzg } from './kzg'
29
+ *
30
+ * const blobs = Blobs.from('0xdeadbeef')
31
+ * const commitments = Blobs.toCommitments(blobs, { kzg })
32
+ * const versionedHashes = Blobs.commitmentsToVersionedHashes(commitments) // [!code focus]
33
+ * // @log: ['0x...', '0x...']
34
+ * ```
35
+ *
36
+ * @example
37
+ * ### Configuring Return Type
38
+ *
39
+ * It is possible to configure the return type for the Versioned Hashes with the `as` option.
40
+ *
41
+ * ```ts twoslash
42
+ * // @noErrors
43
+ * import { Blobs } from 'viem'
44
+ * import { kzg } from './kzg'
45
+ *
46
+ * const blobs = Blobs.from('0xdeadbeef')
47
+ * const commitments = Blobs.toCommitments(blobs, { kzg })
48
+ * const versionedHashes = Blobs.commitmentsToVersionedHashes(commitments, {
49
+ * as: 'Bytes', // [!code focus]
50
+ * })
51
+ * // @log: [Uint8Array [ ... ], Uint8Array [ ... ]]
52
+ * ```
53
+ *
54
+ * @example
55
+ * ### Versioning Hashes
56
+ *
57
+ * It is possible to configure the version for the Versioned Hashes with the `version` option.
58
+ *
59
+ * ```ts twoslash
60
+ * // @noErrors
61
+ * import { Blobs } from 'viem'
62
+ * import { kzg } from './kzg'
63
+ *
64
+ * const blobs = Blobs.from('0xdeadbeef')
65
+ * const commitments = Blobs.toCommitments(blobs, { kzg })
66
+ * const versionedHashes = Blobs.commitmentsToVersionedHashes(commitments, {
67
+ * version: 2, // [!code focus]
68
+ * })
69
+ * ```
70
+ *
71
+ * @param commitments - A list of commitments.
72
+ * @param options - Options.
73
+ * @returns A list of Blob Versioned Hashes.
74
+ */
75
+ export function commitmentsToVersionedHashes(commitments, options = {}) {
76
+ const { version } = options;
77
+ const as = options.as ?? (typeof commitments[0] === 'string' ? 'Hex' : 'Bytes');
78
+ const hashes = [];
79
+ for (const commitment of commitments) {
80
+ hashes.push(commitmentToVersionedHash(commitment, {
81
+ as,
82
+ version,
83
+ }));
84
+ }
85
+ return hashes;
86
+ }
87
+ commitmentsToVersionedHashes.parseError = (error) =>
88
+ /* v8 ignore next */
89
+ error;
90
+ /**
91
+ * Transform a Commitment to its Blob Versioned Hash.
92
+ *
93
+ * @example
94
+ * ```ts twoslash
95
+ * // @noErrors
96
+ * import { Blobs } from 'ox'
97
+ * import { kzg } from './kzg'
98
+ *
99
+ * const blobs = Blobs.from('0xdeadbeef')
100
+ * const [commitment] = Blobs.toCommitments(blobs, { kzg })
101
+ * const versionedHash = Blobs.commitmentToVersionedHash(commitment) // [!code focus]
102
+ * ```
103
+ *
104
+ * @example
105
+ * ### Configuring Return Type
106
+ *
107
+ * It is possible to configure the return type for the Versioned Hash with the `as` option.
108
+ *
109
+ * ```ts twoslash
110
+ * // @noErrors
111
+ * import { Blobs } from 'viem'
112
+ * import { kzg } from './kzg'
113
+ *
114
+ * const blobs = Blobs.from('0xdeadbeef')
115
+ * const [commitment] = Blobs.toCommitments(blobs, { kzg })
116
+ * const versionedHashes = Blobs.commitmentToVersionedHash(commitment, {
117
+ * as: 'Bytes', // [!code focus]
118
+ * })
119
+ * // @log: [Uint8Array [ ... ], Uint8Array [ ... ]]
120
+ * ```
121
+ *
122
+ * @example
123
+ * ### Versioning Hashes
124
+ *
125
+ * It is possible to configure the version for the Versioned Hash with the `version` option.
126
+ *
127
+ * ```ts twoslash
128
+ * // @noErrors
129
+ * import { Blobs } from 'viem'
130
+ * import { kzg } from './kzg'
131
+ *
132
+ * const blobs = Blobs.from('0xdeadbeef')
133
+ * const [commitment] = Blobs.toCommitments(blobs, { kzg })
134
+ * const versionedHashes = Blobs.commitmentToVersionedHash(commitment, {
135
+ * version: 2, // [!code focus]
136
+ * })
137
+ * ```
138
+ *
139
+ * @param commitment - The commitment.
140
+ * @param options - Options.
141
+ * @returns The Blob Versioned Hash.
142
+ */
143
+ export function commitmentToVersionedHash(commitment, options = {}) {
144
+ const { version = 1 } = options;
145
+ const as = options.as ?? (typeof commitment === 'string' ? 'Hex' : 'Bytes');
146
+ const versionedHash = Hash.sha256(commitment, { as: 'Bytes' });
147
+ versionedHash.set([version], 0);
148
+ return (as === 'Bytes' ? versionedHash : Hex.fromBytes(versionedHash));
149
+ }
150
+ commitmentToVersionedHash.parseError = (error) =>
151
+ /* v8 ignore next */
152
+ error;
153
+ /**
154
+ * Transforms arbitrary data to {@link ox#Blobs.Blobs}.
155
+ *
156
+ * @example
157
+ * ```ts twoslash
158
+ * import { Blobs } from 'ox'
159
+ *
160
+ * const blobs = Blobs.from('0xdeadbeef')
161
+ * ```
162
+ *
163
+ * @example
164
+ * ### Creating Blobs from a String
165
+ *
166
+ * An example of creating Blobs from a string using {@link ox#Hex.(from:function)}:
167
+ *
168
+ * ```ts twoslash
169
+ * import { Blobs, Hex } from 'ox'
170
+ *
171
+ * const blobs = Blobs.from(Hex.fromString('Hello world!'))
172
+ * ```
173
+ *
174
+ * @example
175
+ * ### Configuring Return Type
176
+ *
177
+ * It is possible to configure the return type for the Blobs with the `as` option.
178
+ *
179
+ * ```ts twoslash
180
+ * import { Blobs } from 'ox'
181
+ *
182
+ * const blobs = Blobs.from('0xdeadbeef', { as: 'Bytes' })
183
+ * // ^?
184
+ *
185
+ *
186
+ * ```
187
+ *
188
+ * @param data - The data to convert to {@link ox#Blobs.Blobs}.
189
+ * @param options - Options.
190
+ * @returns The {@link ox#Blobs.Blobs}.
191
+ */
192
+ export function from(data, options = {}) {
193
+ const as = options.as ?? (typeof data === 'string' ? 'Hex' : 'Bytes');
194
+ const data_ = (typeof data === 'string' ? Bytes.fromHex(data) : data);
195
+ const size_ = Bytes.size(data_);
196
+ if (!size_)
197
+ throw new EmptyBlobError();
198
+ if (size_ > maxBytesPerTransaction)
199
+ throw new BlobSizeTooLargeError({
200
+ maxSize: maxBytesPerTransaction,
201
+ size: size_,
202
+ });
203
+ const blobs = [];
204
+ let active = true;
205
+ let position = 0;
206
+ while (active) {
207
+ const blob = Cursor.create(new Uint8Array(bytesPerBlob));
208
+ let size = 0;
209
+ while (size < fieldElementsPerBlob) {
210
+ const bytes = data_.slice(position, position + (bytesPerFieldElement - 1));
211
+ // Push a zero byte so the field element doesn't overflow the BLS modulus.
212
+ blob.pushByte(0x00);
213
+ // Push the current segment of data bytes.
214
+ blob.pushBytes(bytes);
215
+ // If we detect that the current segment of data bytes is less than 31 bytes,
216
+ // we can stop processing and push a terminator byte to indicate the end of the blob.
217
+ if (bytes.length < 31) {
218
+ blob.pushByte(0x80);
219
+ active = false;
220
+ break;
221
+ }
222
+ size++;
223
+ position += 31;
224
+ }
225
+ blobs.push(blob);
226
+ }
227
+ return (as === 'Bytes'
228
+ ? blobs.map((x) => x.bytes)
229
+ : blobs.map((x) => Hex.fromBytes(x.bytes)));
230
+ }
231
+ /* v8 ignore next */
232
+ from.parseError = (error) => error;
233
+ /**
234
+ * Transforms a list of {@link ox#Blobs.BlobSidecars} to their Blob Versioned Hashes.
235
+ *
236
+ * @example
237
+ * ```ts twoslash
238
+ * // @noErrors
239
+ * import { Blobs } from 'ox'
240
+ *
241
+ * const blobs = Blobs.from('0xdeadbeef')
242
+ * const sidecars = Blobs.toSidecars(blobs, { kzg })
243
+ * const versionedHashes = Blobs.sidecarsToVersionedHashes(sidecars) // [!code focus]
244
+ * ```
245
+ *
246
+ * @example
247
+ * ### Configuring Return Type
248
+ *
249
+ * It is possible to configure the return type for the Versioned Hashes with the `as` option.
250
+ *
251
+ * ```ts twoslash
252
+ * // @noErrors
253
+ * import { Blobs } from 'viem'
254
+ * import { kzg } from './kzg'
255
+ *
256
+ * const blobs = Blobs.from('0xdeadbeef')
257
+ * const sidecars = Blobs.toSidecars(blobs, { kzg })
258
+ * const versionedHashes = Blobs.sidecarsToVersionedHashes(sidecars, {
259
+ * as: 'Bytes', // [!code focus]
260
+ * })
261
+ * // @log: [Uint8Array [ ... ], Uint8Array [ ... ]]
262
+ * ```
263
+ *
264
+ * @example
265
+ * ### Versioning Hashes
266
+ *
267
+ * It is possible to configure the version for the Versioned Hashes with the `version` option.
268
+ *
269
+ * ```ts twoslash
270
+ * // @noErrors
271
+ * import { Blobs } from 'viem'
272
+ * import { kzg } from './kzg'
273
+ *
274
+ * const blobs = Blobs.from('0xdeadbeef')
275
+ * const sidecars = Blobs.toSidecars(blobs, { kzg })
276
+ * const versionedHashes = Blobs.sidecarsToVersionedHashes(sidecars, {
277
+ * version: 2, // [!code focus]
278
+ * })
279
+ * ```
280
+ *
281
+ * @param sidecars - The {@link ox#Blobs.BlobSidecars} to transform to Blob Versioned Hashes.
282
+ * @param options - Options.
283
+ * @returns The versioned hashes.
284
+ */
285
+ export function sidecarsToVersionedHashes(sidecars, options = {}) {
286
+ const { version } = options;
287
+ const as = options.as ?? (typeof sidecars[0].blob === 'string' ? 'Hex' : 'Bytes');
288
+ const hashes = [];
289
+ for (const { commitment } of sidecars) {
290
+ hashes.push(commitmentToVersionedHash(commitment, {
291
+ as,
292
+ version,
293
+ }));
294
+ }
295
+ return hashes;
296
+ }
297
+ sidecarsToVersionedHashes.parseError = (error) =>
298
+ /* v8 ignore next */
299
+ error;
300
+ /**
301
+ * Transforms Ox-shaped {@link ox#Blobs.Blobs} into the originating data.
302
+ *
303
+ * @example
304
+ * ```ts twoslash
305
+ * import { Blobs, Hex } from 'ox'
306
+ *
307
+ * const blobs = Blobs.from('0xdeadbeef')
308
+ * const data = Blobs.to(blobs) // [!code focus]
309
+ * // @log: '0xdeadbeef'
310
+ * ```
311
+ *
312
+ * @example
313
+ * ### Configuring Return Type
314
+ *
315
+ * It is possible to configure the return type with second argument.
316
+ *
317
+ * ```ts twoslash
318
+ * import { Blobs } from 'ox'
319
+ *
320
+ * const blobs = Blobs.from('0xdeadbeef')
321
+ * const data = Blobs.to(blobs, 'Bytes')
322
+ * // @log: Uint8Array [ 13, 174, 190, 239 ]
323
+ * ```
324
+ *
325
+ * @param blobs - The {@link ox#Blobs.Blobs} to transform.
326
+ * @param to - The type to transform to.
327
+ * @returns The originating data.
328
+ */
329
+ export function to(blobs, to) {
330
+ const to_ = to ?? (typeof blobs[0] === 'string' ? 'Hex' : 'Bytes');
331
+ const blobs_ = (typeof blobs[0] === 'string'
332
+ ? blobs.map((x) => Bytes.fromHex(x))
333
+ : blobs);
334
+ const length = blobs_.reduce((length, blob) => length + blob.length, 0);
335
+ const data = Cursor.create(new Uint8Array(length));
336
+ let active = true;
337
+ for (const blob of blobs_) {
338
+ const cursor = Cursor.create(blob);
339
+ while (active && cursor.position < blob.length) {
340
+ // First byte will be a zero 0x00 byte – we can skip.
341
+ cursor.incrementPosition(1);
342
+ let consume = 31;
343
+ if (blob.length - cursor.position < 31)
344
+ consume = blob.length - cursor.position;
345
+ for (const _ in Array.from({ length: consume })) {
346
+ const byte = cursor.readByte();
347
+ const isTerminator = byte === 0x80 && !cursor.inspectBytes(cursor.remaining).includes(0x80);
348
+ if (isTerminator) {
349
+ active = false;
350
+ break;
351
+ }
352
+ data.pushByte(byte);
353
+ }
354
+ }
355
+ }
356
+ const trimmedData = data.bytes.slice(0, data.position);
357
+ return (to_ === 'Hex' ? Hex.fromBytes(trimmedData) : trimmedData);
358
+ }
359
+ /* v8 ignore next */
360
+ to.parseError = (error) => error;
361
+ /**
362
+ * Transforms Ox-shaped {@link ox#Blobs.Blobs} into the originating data.
363
+ *
364
+ * @example
365
+ * ```ts twoslash
366
+ * import { Blobs, Hex } from 'ox'
367
+ *
368
+ * const blobs = Blobs.from('0xdeadbeef')
369
+ * const data = Blobs.toHex(blobs) // [!code focus]
370
+ * // @log: '0xdeadbeef'
371
+ * ```
372
+ */
373
+ export function toHex(blobs) {
374
+ return to(blobs, 'Hex');
375
+ }
376
+ /* v8 ignore next */
377
+ toHex.parseError = (error) => error;
378
+ /**
379
+ * Transforms Ox-shaped {@link ox#Blobs.Blobs} into the originating data.
380
+ *
381
+ * @example
382
+ * ```ts
383
+ * import { Blobs, Hex } from 'ox'
384
+ *
385
+ * const blobs = Blobs.from('0xdeadbeef')
386
+ * const data = Blobs.toBytes(blobs) // [!code focus]
387
+ * // @log: Uint8Array [ 13, 174, 190, 239 ]
388
+ * ```
389
+ */
390
+ export function toBytes(blobs) {
391
+ return to(blobs, 'Bytes');
392
+ }
393
+ /* v8 ignore next */
394
+ toBytes.parseError = (error) => error;
395
+ /**
396
+ * Compute commitments from a list of {@link ox#Blobs.Blobs}.
397
+ *
398
+ * @example
399
+ * ```ts twoslash
400
+ * // @noErrors
401
+ * import { Blobs } from 'ox'
402
+ * import { kzg } from './kzg'
403
+ *
404
+ * const blobs = Blobs.from('0xdeadbeef')
405
+ * const commitments = Blobs.toCommitments(blobs, { kzg }) // [!code focus]
406
+ * ```
407
+ *
408
+ * @example
409
+ * ### Configuring Return Type
410
+ *
411
+ * It is possible to configure the return type with the `as` option.
412
+ *
413
+ * ```ts twoslash
414
+ * // @noErrors
415
+ * import { Blobs } from 'ox'
416
+ * import { kzg } from './kzg'
417
+ *
418
+ * const blobs = Blobs.from('0xdeadbeef')
419
+ * const commitments = Blobs.toCommitments(blobs, {
420
+ * as: 'Bytes', // [!code focus]
421
+ * kzg,
422
+ * })
423
+ * // @log: [Uint8Array [ ... ], Uint8Array [ ... ]]
424
+ * ```
425
+ *
426
+ * @param blobs - The {@link ox#Blobs.Blobs} to transform to commitments.
427
+ * @param options - Options.
428
+ * @returns The commitments.
429
+ */
430
+ export function toCommitments(blobs, options) {
431
+ const { kzg } = options;
432
+ const as = options.as ?? (typeof blobs[0] === 'string' ? 'Hex' : 'Bytes');
433
+ const blobs_ = (typeof blobs[0] === 'string'
434
+ ? blobs.map((x) => Bytes.fromHex(x))
435
+ : blobs);
436
+ const commitments = [];
437
+ for (const blob of blobs_)
438
+ commitments.push(Uint8Array.from(kzg.blobToKzgCommitment(blob)));
439
+ return (as === 'Bytes' ? commitments : commitments.map((x) => Hex.fromBytes(x)));
440
+ }
441
+ toCommitments.parseError = (error) =>
442
+ /* v8 ignore next */
443
+ error;
444
+ /**
445
+ * Compute the proofs for a list of {@link ox#Blobs.Blobs} and their commitments.
446
+ *
447
+ * @example
448
+ * ```ts twoslash
449
+ * // @noErrors
450
+ * import { Blobs } from 'viem'
451
+ * import { kzg } from './kzg'
452
+ *
453
+ * const blobs = Blobs.from('0xdeadbeef')
454
+ * const commitments = Blobs.toCommitments(blobs, { kzg })
455
+ * const proofs = Blobs.toProofs(blobs, { commitments, kzg }) // [!code focus]
456
+ * ```
457
+ *
458
+ * @param blobs - The {@link ox#Blobs.Blobs} to compute proofs for.
459
+ * @param options - Options.
460
+ * @returns The Blob proofs.
461
+ */
462
+ export function toProofs(blobs, options) {
463
+ const { kzg } = options;
464
+ const as = options.as ?? (typeof blobs[0] === 'string' ? 'Hex' : 'Bytes');
465
+ const blobs_ = (typeof blobs[0] === 'string'
466
+ ? blobs.map((x) => Bytes.fromHex(x))
467
+ : blobs);
468
+ const commitments = (typeof options.commitments[0] === 'string'
469
+ ? options.commitments.map((x) => Bytes.fromHex(x))
470
+ : options.commitments);
471
+ const proofs = [];
472
+ for (let i = 0; i < blobs_.length; i++) {
473
+ const blob = blobs_[i];
474
+ const commitment = commitments[i];
475
+ proofs.push(Uint8Array.from(kzg.computeBlobKzgProof(blob, commitment)));
476
+ }
477
+ return (as === 'Bytes' ? proofs : proofs.map((x) => Hex.fromBytes(x)));
478
+ }
479
+ /* v8 ignore next */
480
+ toProofs.parseError = (error) => error;
481
+ /**
482
+ * Transforms {@link ox#Blobs.Blobs} into a {@link ox#Blobs.BlobSidecars} array.
483
+ *
484
+ * @example
485
+ * ```ts twoslash
486
+ * // @noErrors
487
+ * import { Blobs } from 'ox'
488
+ * import { kzg } from './kzg'
489
+ *
490
+ * const blobs = Blobs.from('0xdeadbeef')
491
+ * const sidecars = Blobs.toSidecars(blobs, { kzg }) // [!code focus]
492
+ * ```
493
+ *
494
+ * @example
495
+ * You can also provide your own commitments and proofs if you do not want `toSidecars`
496
+ * to compute them.
497
+ *
498
+ * ```ts twoslash
499
+ * // @noErrors
500
+ * import { Blobs } from 'ox'
501
+ * import { kzg } from './kzg'
502
+ *
503
+ * const blobs = Blobs.from('0xdeadbeef')
504
+ * const commitments = Blobs.toCommitments(blobs, { kzg })
505
+ * const proofs = Blobs.toProofs(blobs, { commitments, kzg })
506
+ *
507
+ * const sidecars = Blobs.toSidecars(blobs, { commitments, kzg, proofs }) // [!code focus]
508
+ * ```
509
+ *
510
+ * @param blobs - The {@link ox#Blobs.Blobs} to transform into {@link ox#Blobs.BlobSidecars}.
511
+ * @param options - Options.
512
+ * @returns The {@link ox#Blobs.BlobSidecars}.
513
+ */
514
+ export function toSidecars(blobs, options) {
515
+ const { kzg } = options;
516
+ const commitments = options.commitments ?? toCommitments(blobs, { kzg: kzg });
517
+ const proofs = options.proofs ??
518
+ toProofs(blobs, { commitments: commitments, kzg: kzg });
519
+ const sidecars = [];
520
+ for (let i = 0; i < blobs.length; i++)
521
+ sidecars.push({
522
+ blob: blobs[i],
523
+ commitment: commitments[i],
524
+ proof: proofs[i],
525
+ });
526
+ return sidecars;
527
+ }
528
+ toSidecars.parseError = (error) =>
529
+ /* v8 ignore next */
530
+ error;
531
+ /**
532
+ * Compute Blob Versioned Hashes from a list of {@link ox#Blobs.Blobs}.
533
+ *
534
+ * @example
535
+ * ```ts twoslash
536
+ * // @noErrors
537
+ * import { Blobs } from 'ox'
538
+ * import { kzg } from './kzg'
539
+ *
540
+ * const blobs = Blobs.from('0xdeadbeef')
541
+ * const versionedHashes = Blobs.toVersionedHashes(blobs, { kzg }) // [!code focus]
542
+ * ```
543
+ *
544
+ * @param blobs - The {@link ox#Blobs.Blobs} to transform into Blob Versioned Hashes.
545
+ * @param options - Options.
546
+ * @returns The Blob Versioned Hashes.
547
+ */
548
+ export function toVersionedHashes(blobs, options) {
549
+ const commitments = toCommitments(blobs, options);
550
+ return commitmentsToVersionedHashes(commitments, options);
551
+ }
552
+ toVersionedHashes.parseError = (error) =>
553
+ /* v8 ignore next */
554
+ error;
555
+ /** Thrown when the blob size is too large. */
556
+ export class BlobSizeTooLargeError extends Errors.BaseError {
557
+ constructor({ maxSize, size }) {
558
+ super('Blob size is too large.', {
559
+ metaMessages: [`Max: ${maxSize} bytes`, `Given: ${size} bytes`],
560
+ });
561
+ Object.defineProperty(this, "name", {
562
+ enumerable: true,
563
+ configurable: true,
564
+ writable: true,
565
+ value: 'Blobs.BlobSizeTooLargeError'
566
+ });
567
+ }
568
+ }
569
+ /** Thrown when the blob is empty. */
570
+ export class EmptyBlobError extends Errors.BaseError {
571
+ constructor() {
572
+ super('Blob data must not be empty.');
573
+ Object.defineProperty(this, "name", {
574
+ enumerable: true,
575
+ configurable: true,
576
+ writable: true,
577
+ value: 'Blobs.EmptyBlobError'
578
+ });
579
+ }
580
+ }
581
+ /** Thrown when the blob versioned hashes are empty. */
582
+ export class EmptyBlobVersionedHashesError extends Errors.BaseError {
583
+ constructor() {
584
+ super('Blob versioned hashes must not be empty.');
585
+ Object.defineProperty(this, "name", {
586
+ enumerable: true,
587
+ configurable: true,
588
+ writable: true,
589
+ value: 'Blobs.EmptyBlobVersionedHashesError'
590
+ });
591
+ }
592
+ }
593
+ /** Thrown when the blob versioned hash size is invalid. */
594
+ export class InvalidVersionedHashSizeError extends Errors.BaseError {
595
+ constructor({ hash, size, }) {
596
+ super(`Versioned hash "${hash}" size is invalid.`, {
597
+ metaMessages: ['Expected: 32', `Received: ${size}`],
598
+ });
599
+ Object.defineProperty(this, "name", {
600
+ enumerable: true,
601
+ configurable: true,
602
+ writable: true,
603
+ value: 'Blobs.InvalidVersionedHashSizeError'
604
+ });
605
+ }
606
+ }
607
+ /** Thrown when the blob versioned hash version is invalid. */
608
+ export class InvalidVersionedHashVersionError extends Errors.BaseError {
609
+ constructor({ hash, version, }) {
610
+ super(`Versioned hash "${hash}" version is invalid.`, {
611
+ metaMessages: [
612
+ `Expected: ${Kzg.versionedHashVersion}`,
613
+ `Received: ${version}`,
614
+ ],
615
+ });
616
+ Object.defineProperty(this, "name", {
617
+ enumerable: true,
618
+ configurable: true,
619
+ writable: true,
620
+ value: 'Blobs.InvalidVersionedHashVersionError'
621
+ });
622
+ }
623
+ }
624
+ //# sourceMappingURL=Blobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Blobs.js","sourceRoot":"","sources":["../Blobs.ts"],"names":[],"mappings":"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"}