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/AbiItem.ts ADDED
@@ -0,0 +1,779 @@
1
+ import * as abitype from 'abitype'
2
+ import type * as Abi from './Abi.js'
3
+ import * as Errors from './Errors.js'
4
+ import * as Hash from './Hash.js'
5
+ import * as Hex from './Hex.js'
6
+ import * as internal from './internal/abiItem.js'
7
+ import type { UnionCompute } from './internal/types.js'
8
+
9
+ /** Root type for an item on an {@link ox#Abi.Abi}. */
10
+ export type AbiItem = Abi.Abi[number]
11
+
12
+ /**
13
+ * Extracts an {@link ox#AbiItem.AbiItem} item from an {@link ox#Abi.Abi}, given a name.
14
+ *
15
+ * @example
16
+ * ```ts twoslash
17
+ * import { Abi, AbiItem } from 'ox'
18
+ *
19
+ * const abi = Abi.from([
20
+ * 'error Foo(string)',
21
+ * 'function foo(string)',
22
+ * 'event Bar(uint256)',
23
+ * ])
24
+ *
25
+ * type Foo = AbiItem.FromAbi<typeof abi, 'Foo'>
26
+ * // ^?
27
+ *
28
+ *
29
+ *
30
+ *
31
+ *
32
+ *
33
+ *
34
+ *
35
+ * ```
36
+ */
37
+ export type FromAbi<
38
+ abi extends Abi.Abi,
39
+ name extends ExtractNames<abi>,
40
+ > = Extract<abi[number], { name: name }>
41
+
42
+ /**
43
+ * Extracts the names of all {@link ox#AbiItem.AbiItem} items in an {@link ox#Abi.Abi}.
44
+ *
45
+ * @example
46
+ * ```ts twoslash
47
+ * import { Abi, AbiItem } from 'ox'
48
+ *
49
+ * const abi = Abi.from([
50
+ * 'error Foo(string)',
51
+ * 'function foo(string)',
52
+ * 'event Bar(uint256)',
53
+ * ])
54
+ *
55
+ * type names = AbiItem.Name<typeof abi>
56
+ * // ^?
57
+ *
58
+ * ```
59
+ */
60
+ export type Name<abi extends Abi.Abi | readonly unknown[] = Abi.Abi> =
61
+ abi extends Abi.Abi ? ExtractNames<abi> : string
62
+
63
+ export type ExtractNames<abi extends Abi.Abi> = Extract<
64
+ abi[number],
65
+ { name: string }
66
+ >['name']
67
+
68
+ /**
69
+ * Formats an {@link ox#AbiItem.AbiItem} into a **Human Readable ABI Item**.
70
+ *
71
+ * @example
72
+ * ```ts twoslash
73
+ * import { AbiItem } from 'ox'
74
+ *
75
+ * const formatted = AbiItem.format({
76
+ * type: 'function',
77
+ * name: 'approve',
78
+ * stateMutability: 'nonpayable',
79
+ * inputs: [
80
+ * {
81
+ * name: 'spender',
82
+ * type: 'address',
83
+ * },
84
+ * {
85
+ * name: 'amount',
86
+ * type: 'uint256',
87
+ * },
88
+ * ],
89
+ * outputs: [{ type: 'bool' }],
90
+ * })
91
+ *
92
+ * formatted
93
+ * // ^?
94
+ *
95
+ *
96
+ * ```
97
+ *
98
+ * @param abiItem - The ABI Item to format.
99
+ * @returns The formatted ABI Item .
100
+ */
101
+ export function format<const abiItem extends AbiItem>(
102
+ abiItem: abiItem | AbiItem,
103
+ ): abitype.FormatAbiItem<abiItem> {
104
+ return abitype.formatAbiItem(abiItem) as never
105
+ }
106
+
107
+ export declare namespace format {
108
+ type ErrorType = Errors.GlobalErrorType
109
+ }
110
+
111
+ format.parseError = (error: unknown) =>
112
+ /* v8 ignore next */
113
+ error as format.ErrorType
114
+
115
+ /**
116
+ * Parses an arbitrary **JSON ABI Item** or **Human Readable ABI Item** into a typed {@link ox#AbiItem.AbiItem}.
117
+ *
118
+ * @example
119
+ * ### JSON ABIs
120
+ *
121
+ * ```ts twoslash
122
+ * import { AbiItem } from 'ox'
123
+ *
124
+ * const abiItem = AbiItem.from({
125
+ * type: 'function',
126
+ * name: 'approve',
127
+ * stateMutability: 'nonpayable',
128
+ * inputs: [
129
+ * {
130
+ * name: 'spender',
131
+ * type: 'address',
132
+ * },
133
+ * {
134
+ * name: 'amount',
135
+ * type: 'uint256',
136
+ * },
137
+ * ],
138
+ * outputs: [{ type: 'bool' }],
139
+ * })
140
+ *
141
+ * abiItem
142
+ * //^?
143
+ *
144
+ *
145
+ *
146
+ *
147
+ *
148
+ *
149
+ *
150
+ *
151
+ *
152
+ *
153
+ *
154
+ *
155
+ * ```
156
+ *
157
+ * @example
158
+ * ### Human Readable ABIs
159
+ *
160
+ * A Human Readable ABI can be parsed into a typed ABI object:
161
+ *
162
+ * ```ts twoslash
163
+ * import { AbiItem } from 'ox'
164
+ *
165
+ * const abiItem = AbiItem.from(
166
+ * 'function approve(address spender, uint256 amount) returns (bool)' // [!code hl]
167
+ * )
168
+ *
169
+ * abiItem
170
+ * //^?
171
+ *
172
+ *
173
+ *
174
+ *
175
+ *
176
+ *
177
+ *
178
+ *
179
+ *
180
+ *
181
+ *
182
+ *
183
+ *
184
+ * ```
185
+ *
186
+ * @example
187
+ * It is possible to specify `struct`s along with your definitions:
188
+ *
189
+ * ```ts twoslash
190
+ * import { AbiItem } from 'ox'
191
+ *
192
+ * const abiItem = AbiItem.from([
193
+ * 'struct Foo { address spender; uint256 amount; }', // [!code hl]
194
+ * 'function approve(Foo foo) returns (bool)',
195
+ * ])
196
+ *
197
+ * abiItem
198
+ * //^?
199
+ *
200
+ *
201
+ *
202
+ *
203
+ *
204
+ *
205
+ *
206
+ *
207
+ *
208
+ *
209
+ *
210
+ *
211
+ * ```
212
+ *
213
+ *
214
+ *
215
+ * @param abiItem - The ABI Item to parse.
216
+ * @returns The typed ABI Item.
217
+ */
218
+ export function from<
219
+ const abiItem extends AbiItem | string | readonly string[],
220
+ >(
221
+ abiItem: (abiItem | AbiItem | string | readonly string[]) &
222
+ (
223
+ | (abiItem extends string ? internal.Signature<abiItem> : never)
224
+ | (abiItem extends readonly string[]
225
+ ? internal.Signatures<abiItem>
226
+ : never)
227
+ | AbiItem
228
+ ),
229
+ options: from.Options = {},
230
+ ): from.ReturnType<abiItem> {
231
+ const { prepare = true } = options
232
+ const item = (() => {
233
+ if (Array.isArray(abiItem)) return abitype.parseAbiItem(abiItem)
234
+ if (typeof abiItem === 'string')
235
+ return abitype.parseAbiItem(abiItem as never)
236
+ return abiItem
237
+ })() as AbiItem
238
+ return {
239
+ ...item,
240
+ ...(prepare ? { hash: getSignatureHash(item) } : {}),
241
+ } as never
242
+ }
243
+
244
+ export declare namespace from {
245
+ type Options = {
246
+ /**
247
+ * Whether or not to prepare the extracted item (optimization for encoding performance).
248
+ * When `true`, the `hash` property is computed and included in the returned value.
249
+ *
250
+ * @default true
251
+ */
252
+ prepare?: boolean | undefined
253
+ }
254
+
255
+ type ReturnType<abiItem extends AbiItem | string | readonly string[]> =
256
+ abiItem extends string
257
+ ? abitype.ParseAbiItem<abiItem>
258
+ : abiItem extends readonly string[]
259
+ ? abitype.ParseAbiItem<abiItem>
260
+ : abiItem
261
+
262
+ type ErrorType = Errors.GlobalErrorType
263
+ }
264
+
265
+ from.parseError = (error: unknown) =>
266
+ /* v8 ignore next */
267
+ error as from.ErrorType
268
+
269
+ /**
270
+ * Extracts an {@link ox#AbiItem.AbiItem} from an {@link ox#Abi.Abi} given a name and optional arguments.
271
+ *
272
+ * @example
273
+ * ABI Items can be extracted by their name using the `name` option:
274
+ *
275
+ * ```ts twoslash
276
+ * import { Abi, AbiItem } from 'ox'
277
+ *
278
+ * const abi = Abi.from([
279
+ * 'function foo()',
280
+ * 'event Transfer(address owner, address to, uint256 tokenId)',
281
+ * 'function bar(string a) returns (uint256 x)',
282
+ * ])
283
+ *
284
+ * const item = AbiItem.fromAbi(abi, 'Transfer') // [!code focus]
285
+ * // ^?
286
+ *
287
+ *
288
+ *
289
+ *
290
+ *
291
+ *
292
+ * ```
293
+ *
294
+ * @example
295
+ * ### Extracting by Selector
296
+ *
297
+ * ABI Items can be extract by their selector when {@link ox#Hex.Hex} is provided to `name`.
298
+ *
299
+ * ```ts twoslash
300
+ * import { Abi, AbiItem } from 'ox'
301
+ *
302
+ * const abi = Abi.from([
303
+ * 'function foo()',
304
+ * 'event Transfer(address owner, address to, uint256 tokenId)',
305
+ * 'function bar(string a) returns (uint256 x)',
306
+ * ])
307
+ * const item = AbiItem.fromAbi(abi, '0x095ea7b3') // [!code focus]
308
+ * // ^?
309
+ *
310
+ *
311
+ *
312
+ *
313
+ *
314
+ *
315
+ *
316
+ *
317
+ *
318
+ *
319
+ *
320
+ *
321
+ *
322
+ * ```
323
+ *
324
+ * :::note
325
+ *
326
+ * Extracting via a hex selector is useful when extracting an ABI Item from an `eth_call` RPC response,
327
+ * a Transaction `input`, or from Event Log `topics`.
328
+ *
329
+ * :::
330
+ *
331
+ * @param abi - The ABI to extract from.
332
+ * @param name - The name (or selector) of the ABI item to extract.
333
+ * @param options - Extraction options.
334
+ * @returns The ABI item.
335
+ */
336
+ export function fromAbi<
337
+ const abi extends Abi.Abi | readonly unknown[],
338
+ name extends Name<abi>,
339
+ const args extends internal.ExtractArgs<abi, name> | undefined = undefined,
340
+ //
341
+ allNames = Name<abi>,
342
+ >(
343
+ abi: abi | Abi.Abi | readonly unknown[],
344
+ name: Hex.Hex | (name extends allNames ? name : never),
345
+ options?: fromAbi.Options<abi, name, args>,
346
+ ): fromAbi.ReturnType<abi, name, args> {
347
+ const { args = [], prepare = true } = (options ??
348
+ {}) as unknown as fromAbi.Options
349
+
350
+ const isSelector = Hex.validate(name, { strict: false })
351
+ const abiItems = (abi as Abi.Abi).filter((abiItem) => {
352
+ if (isSelector) {
353
+ if (abiItem.type === 'function' || abiItem.type === 'error')
354
+ return getSelector(abiItem) === Hex.slice(name, 0, 4)
355
+ if (abiItem.type === 'event') return getSignatureHash(abiItem) === name
356
+ return false
357
+ }
358
+ return 'name' in abiItem && abiItem.name === name
359
+ })
360
+
361
+ if (abiItems.length === 0) throw new NotFoundError({ name: name as string })
362
+ if (abiItems.length === 1)
363
+ return {
364
+ ...abiItems[0],
365
+ ...(prepare ? { hash: getSignatureHash(abiItems[0]!) } : {}),
366
+ } as never
367
+
368
+ let matchedAbiItem: AbiItem | undefined = undefined
369
+ for (const abiItem of abiItems) {
370
+ if (!('inputs' in abiItem)) continue
371
+ if (!args || args.length === 0) {
372
+ if (!abiItem.inputs || abiItem.inputs.length === 0)
373
+ return {
374
+ ...abiItem,
375
+ ...(prepare ? { hash: getSignatureHash(abiItem) } : {}),
376
+ } as never
377
+ continue
378
+ }
379
+ if (!abiItem.inputs) continue
380
+ if (abiItem.inputs.length === 0) continue
381
+ if (abiItem.inputs.length !== args.length) continue
382
+ const matched = args.every((arg, index) => {
383
+ const abiParameter = 'inputs' in abiItem && abiItem.inputs![index]
384
+ if (!abiParameter) return false
385
+ return internal.isArgOfType(arg, abiParameter)
386
+ })
387
+ if (matched) {
388
+ // Check for ambiguity against already matched parameters (e.g. `address` vs `bytes20`).
389
+ if (
390
+ matchedAbiItem &&
391
+ 'inputs' in matchedAbiItem &&
392
+ matchedAbiItem.inputs
393
+ ) {
394
+ const ambiguousTypes = internal.getAmbiguousTypes(
395
+ abiItem.inputs,
396
+ matchedAbiItem.inputs,
397
+ args as readonly unknown[],
398
+ )
399
+ if (ambiguousTypes)
400
+ throw new AmbiguityError(
401
+ {
402
+ abiItem,
403
+ type: ambiguousTypes[0]!,
404
+ },
405
+ {
406
+ abiItem: matchedAbiItem,
407
+ type: ambiguousTypes[1]!,
408
+ },
409
+ )
410
+ }
411
+
412
+ matchedAbiItem = abiItem
413
+ }
414
+ }
415
+
416
+ const abiItem = (() => {
417
+ if (matchedAbiItem) return matchedAbiItem
418
+ const [abiItem, ...overloads] = abiItems
419
+ return { ...abiItem!, overloads }
420
+ })()
421
+
422
+ if (!abiItem) throw new NotFoundError({ name: name as string })
423
+ return {
424
+ ...abiItem,
425
+ ...(prepare ? { hash: getSignatureHash(abiItem) } : {}),
426
+ } as never
427
+ }
428
+
429
+ export declare namespace fromAbi {
430
+ type Options<
431
+ abi extends Abi.Abi | readonly unknown[] = Abi.Abi,
432
+ name extends Name<abi> = Name<abi>,
433
+ args extends
434
+ | internal.ExtractArgs<abi, name>
435
+ | undefined = internal.ExtractArgs<abi, name>,
436
+ ///
437
+ allArgs = internal.ExtractArgs<abi, name>,
438
+ > = {
439
+ /**
440
+ * Whether or not to prepare the extracted item (optimization for encoding performance).
441
+ * When `true`, the `hash` property is computed and included in the returned value.
442
+ *
443
+ * @default true
444
+ */
445
+ prepare?: boolean | undefined
446
+ } & UnionCompute<
447
+ readonly [] extends allArgs
448
+ ? {
449
+ args?:
450
+ | allArgs // show all options
451
+ // infer value, widen inferred value of `args` conditionally to match `allArgs`
452
+ | (abi extends Abi.Abi
453
+ ? args extends allArgs
454
+ ? internal.Widen<args>
455
+ : never
456
+ : never)
457
+ | undefined
458
+ }
459
+ : {
460
+ args?:
461
+ | allArgs // show all options
462
+ | (internal.Widen<args> & (args extends allArgs ? unknown : never)) // infer value, widen inferred value of `args` match `allArgs` (e.g. avoid union `args: readonly [123n] | readonly [bigint]`)
463
+ | undefined
464
+ }
465
+ >
466
+
467
+ type ReturnType<
468
+ abi extends Abi.Abi | readonly unknown[] = Abi.Abi,
469
+ name extends Name<abi> = Name<abi>,
470
+ args extends
471
+ | internal.ExtractArgs<abi, name>
472
+ | undefined = internal.ExtractArgs<abi, name>,
473
+ fallback = AbiItem,
474
+ > = abi extends Abi.Abi
475
+ ? Abi.Abi extends abi
476
+ ? fallback
477
+ : internal.ExtractForArgs<
478
+ abi,
479
+ name,
480
+ args extends internal.ExtractArgs<abi, name>
481
+ ? args
482
+ : internal.ExtractArgs<abi, name>
483
+ >
484
+ : fallback
485
+
486
+ type ErrorType = Errors.GlobalErrorType
487
+ }
488
+
489
+ fromAbi.parseError = (error: unknown) =>
490
+ /* v8 ignore next */
491
+ error as fromAbi.ErrorType
492
+
493
+ /**
494
+ * Computes the [4-byte selector](https://solidity-by-example.org/function-selector/) for an {@link ox#AbiItem.AbiItem}.
495
+ *
496
+ * Useful for computing function selectors for calldata.
497
+ *
498
+ * @example
499
+ * ```ts twoslash
500
+ * import { AbiItem } from 'ox'
501
+ *
502
+ * const selector = AbiItem.getSelector('function ownerOf(uint256 tokenId)')
503
+ * // @log: '0x6352211e'
504
+ * ```
505
+ *
506
+ * @example
507
+ * ```ts twoslash
508
+ * import { AbiItem } from 'ox'
509
+ *
510
+ * const selector = AbiItem.getSelector({
511
+ * inputs: [{ type: 'uint256' }],
512
+ * name: 'ownerOf',
513
+ * outputs: [],
514
+ * stateMutability: 'view',
515
+ * type: 'function'
516
+ * })
517
+ * // @log: '0x6352211e'
518
+ * ```
519
+ *
520
+ * @param abiItem - The ABI item to compute the selector for. Can be a signature or an ABI item for an error, event, function, etc.
521
+ * @returns The first 4 bytes of the {@link ox#Hash.(keccak256:function)} hash of the function signature.
522
+ */
523
+ export function getSelector(abiItem: string | AbiItem): Hex.Hex {
524
+ return Hex.slice(getSignatureHash(abiItem), 0, 4)
525
+ }
526
+
527
+ export declare namespace getSelector {
528
+ type ErrorType =
529
+ | getSignatureHash.ErrorType
530
+ | Hex.slice.ErrorType
531
+ | Errors.GlobalErrorType
532
+ }
533
+
534
+ /* v8 ignore next */
535
+ getSelector.parseError = (error: unknown) => error as getSelector.ErrorType
536
+
537
+ /**
538
+ * Computes the stringified signature for a given {@link ox#AbiItem.AbiItem}.
539
+ *
540
+ * @example
541
+ * ```ts twoslash
542
+ * import { AbiItem } from 'ox'
543
+ *
544
+ * const signature = AbiItem.getSignature('function ownerOf(uint256 tokenId)')
545
+ * // @log: 'ownerOf(uint256)'
546
+ * ```
547
+ *
548
+ * @example
549
+ * ```ts twoslash
550
+ * import { AbiItem } from 'ox'
551
+ *
552
+ * const signature = AbiItem.getSignature({
553
+ * name: 'ownerOf',
554
+ * type: 'function',
555
+ * inputs: [{ name: 'tokenId', type: 'uint256' }],
556
+ * outputs: [],
557
+ * stateMutability: 'view',
558
+ * })
559
+ * // @log: 'ownerOf(uint256)'
560
+ * ```
561
+ *
562
+ * @param abiItem - The ABI Item to compute the signature for.
563
+ * @returns The stringified signature of the ABI Item.
564
+ */
565
+ export function getSignature(abiItem: string | AbiItem): string {
566
+ const signature = (() => {
567
+ if (typeof abiItem === 'string') return abiItem
568
+ return abitype.formatAbiItem(abiItem)
569
+ })()
570
+ return internal.normalizeSignature(signature)
571
+ }
572
+
573
+ export declare namespace getSignature {
574
+ type ErrorType =
575
+ | internal.normalizeSignature.ErrorType
576
+ | Errors.GlobalErrorType
577
+ }
578
+
579
+ /* v8 ignore next */
580
+ getSignature.parseError = (error: unknown) => error as getSignature.ErrorType
581
+
582
+ /**
583
+ * Computes the signature hash for an {@link ox#AbiItem.AbiItem}.
584
+ *
585
+ * Useful for computing Event Topic values.
586
+ *
587
+ * @example
588
+ * ```ts twoslash
589
+ * import { AbiItem } from 'ox'
590
+ *
591
+ * const hash = AbiItem.getSignatureHash('event Transfer(address indexed from, address indexed to, uint256 amount)')
592
+ * // @log: '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
593
+ * ```
594
+ *
595
+ * @example
596
+ * ```ts twoslash
597
+ * import { AbiItem } from 'ox'
598
+ *
599
+ * const hash = AbiItem.getSignatureHash({
600
+ * name: 'Transfer',
601
+ * type: 'event',
602
+ * inputs: [
603
+ * { name: 'from', type: 'address', indexed: true },
604
+ * { name: 'to', type: 'address', indexed: true },
605
+ * { name: 'amount', type: 'uint256', indexed: false },
606
+ * ],
607
+ * })
608
+ * // @log: '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
609
+ * ```
610
+ *
611
+ * @param abiItem - The ABI Item to compute the signature hash for.
612
+ * @returns The {@link ox#Hash.(keccak256:function)} hash of the ABI item's signature.
613
+ */
614
+ export function getSignatureHash(abiItem: string | AbiItem): Hex.Hex {
615
+ if (typeof abiItem !== 'string' && 'hash' in abiItem && abiItem.hash)
616
+ return abiItem.hash as Hex.Hex
617
+ return Hash.keccak256(Hex.fromString(getSignature(abiItem)))
618
+ }
619
+
620
+ export declare namespace getSignatureHash {
621
+ type ErrorType =
622
+ | getSignature.ErrorType
623
+ | Hash.keccak256.ErrorType
624
+ | Hex.fromString.ErrorType
625
+ | Errors.GlobalErrorType
626
+ }
627
+
628
+ getSignatureHash.parseError = (error: unknown) =>
629
+ /* v8 ignore next */
630
+ error as getSignatureHash.ErrorType
631
+
632
+ /**
633
+ * Throws when ambiguous types are found on overloaded ABI items.
634
+ *
635
+ * @example
636
+ * ```ts twoslash
637
+ * import { Abi, AbiFunction } from 'ox'
638
+ *
639
+ * const foo = Abi.from(['function foo(address)', 'function foo(bytes20)'])
640
+ * AbiFunction.fromAbi(foo, 'foo', {
641
+ * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],
642
+ * })
643
+ * // @error: AbiItem.AmbiguityError: Found ambiguous types in overloaded ABI Items.
644
+ * // @error: `bytes20` in `foo(bytes20)`, and
645
+ * // @error: `address` in `foo(address)`
646
+ * // @error: These types encode differently and cannot be distinguished at runtime.
647
+ * // @error: Remove one of the ambiguous items in the ABI.
648
+ * ```
649
+ *
650
+ * ### Solution
651
+ *
652
+ * Remove one of the ambiguous types from the ABI.
653
+ *
654
+ * ```ts twoslash
655
+ * import { Abi, AbiFunction } from 'ox'
656
+ *
657
+ * const foo = Abi.from([
658
+ * 'function foo(address)',
659
+ * 'function foo(bytes20)' // [!code --]
660
+ * ])
661
+ * AbiFunction.fromAbi(foo, 'foo', {
662
+ * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],
663
+ * })
664
+ * // @error: AbiItem.AmbiguityError: Found ambiguous types in overloaded ABI Items.
665
+ * // @error: `bytes20` in `foo(bytes20)`, and
666
+ * // @error: `address` in `foo(address)`
667
+ * // @error: These types encode differently and cannot be distinguished at runtime.
668
+ * // @error: Remove one of the ambiguous items in the ABI.
669
+ * ```
670
+ */
671
+ export class AmbiguityError extends Errors.BaseError {
672
+ override readonly name = 'AbiItem.AmbiguityError'
673
+ constructor(
674
+ x: { abiItem: Abi.Abi[number]; type: string },
675
+ y: { abiItem: Abi.Abi[number]; type: string },
676
+ ) {
677
+ super('Found ambiguous types in overloaded ABI Items.', {
678
+ metaMessages: [
679
+ // TODO: abitype to add support for signature-formatted ABI items.
680
+ `\`${x.type}\` in \`${internal.normalizeSignature(abitype.formatAbiItem(x.abiItem))}\`, and`,
681
+ `\`${y.type}\` in \`${internal.normalizeSignature(abitype.formatAbiItem(y.abiItem))}\``,
682
+ '',
683
+ 'These types encode differently and cannot be distinguished at runtime.',
684
+ 'Remove one of the ambiguous items in the ABI.',
685
+ ],
686
+ })
687
+ }
688
+ }
689
+
690
+ /**
691
+ * Throws when an ABI item is not found in the ABI.
692
+ *
693
+ * @example
694
+ * ```ts twoslash
695
+ * // @noErrors
696
+ * import { Abi, AbiFunction } from 'ox'
697
+ *
698
+ * const foo = Abi.from([
699
+ * 'function foo(address)',
700
+ * 'function bar(uint)'
701
+ * ])
702
+ * AbiFunction.fromAbi(foo, 'baz')
703
+ * // @error: AbiItem.NotFoundError: ABI function with name "baz" not found.
704
+ * ```
705
+ *
706
+ * ### Solution
707
+ *
708
+ * Ensure the ABI item exists on the ABI.
709
+ *
710
+ * ```ts twoslash
711
+ * // @noErrors
712
+ * import { Abi, AbiFunction } from 'ox'
713
+ *
714
+ * const foo = Abi.from([
715
+ * 'function foo(address)',
716
+ * 'function bar(uint)',
717
+ * 'function baz(bool)' // [!code ++]
718
+ * ])
719
+ * AbiFunction.fromAbi(foo, 'baz')
720
+ * ```
721
+ */
722
+ export class NotFoundError extends Errors.BaseError {
723
+ override readonly name = 'AbiItem.NotFoundError'
724
+ constructor({
725
+ name,
726
+ data,
727
+ type = 'item',
728
+ }: {
729
+ name?: string | undefined
730
+ data?: Hex.Hex | undefined
731
+ type?: string | undefined
732
+ }) {
733
+ const selector = (() => {
734
+ if (name) return ` with name "${name}"`
735
+ if (data) return ` with data "${data}"`
736
+ return ''
737
+ })()
738
+ super(`ABI ${type}${selector} not found.`)
739
+ }
740
+ }
741
+
742
+ /**
743
+ * Throws when the selector size is invalid.
744
+ *
745
+ * @example
746
+ * ```ts twoslash
747
+ * import { Abi, AbiFunction } from 'ox'
748
+ *
749
+ * const foo = Abi.from([
750
+ * 'function foo(address)',
751
+ * 'function bar(uint)'
752
+ * ])
753
+ * AbiFunction.fromAbi(foo, '0xaaa')
754
+ * // @error: AbiItem.InvalidSelectorSizeError: Selector size is invalid. Expected 4 bytes. Received 2 bytes ("0xaaa").
755
+ * ```
756
+ *
757
+ * ### Solution
758
+ *
759
+ * Ensure the selector size is 4 bytes.
760
+ *
761
+ * ```ts twoslash
762
+ * // @noErrors
763
+ * import { Abi, AbiFunction } from 'ox'
764
+ *
765
+ * const foo = Abi.from([
766
+ * 'function foo(address)',
767
+ * 'function bar(uint)'
768
+ * ])
769
+ * AbiFunction.fromAbi(foo, '0x7af82b1a')
770
+ * ```
771
+ */
772
+ export class InvalidSelectorSizeError extends Errors.BaseError {
773
+ override readonly name = 'AbiItem.InvalidSelectorSizeError'
774
+ constructor({ data }: { data: Hex.Hex }) {
775
+ super(
776
+ `Selector size is invalid. Expected 4 bytes. Received ${Hex.size(data)} bytes ("${data}").`,
777
+ )
778
+ }
779
+ }