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/AbiError.ts ADDED
@@ -0,0 +1,719 @@
1
+ import * as abitype from 'abitype'
2
+ import type * as Abi from './Abi.js'
3
+ import * as AbiItem from './AbiItem.js'
4
+ import * as AbiParameters from './AbiParameters.js'
5
+ import type * as Errors from './Errors.js'
6
+ import * as Hex from './Hex.js'
7
+ import type * as internal from './internal/abiError.js'
8
+ import type * as AbiItem_internal from './internal/abiItem.js'
9
+ import type { IsNarrowable, IsNever } from './internal/types.js'
10
+
11
+ /** Root type for an {@link ox#AbiItem.AbiItem} with an `error` type. */
12
+ export type AbiError = abitype.AbiError & {
13
+ hash?: Hex.Hex | undefined
14
+ overloads?: readonly AbiError[] | undefined
15
+ }
16
+
17
+ /** @internal */
18
+ export function decode<
19
+ const abiError extends AbiError,
20
+ as extends 'Object' | 'Array' = 'Array',
21
+ >(
22
+ abiError: abiError,
23
+ data: Hex.Hex,
24
+ options?: decode.Options<as> | undefined,
25
+ ): decode.ReturnType<abiError, as>
26
+ /**
27
+ * ABI-decodes the provided error input (`inputs`).
28
+ *
29
+ * :::tip
30
+ *
31
+ * This function is typically used to decode contract function reverts (e.g. a JSON-RPC error response).
32
+ *
33
+ * See the [End-to-end Example](#end-to-end).
34
+ *
35
+ * :::
36
+ *
37
+ * @example
38
+ * ```ts twoslash
39
+ * import { AbiError } from 'ox'
40
+ *
41
+ * const error = AbiError.from('error InvalidSignature(uint r, uint s, uint8 yParity)')
42
+ *
43
+ * const value = AbiError.decode(error, '0xecde634900000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000450000000000000000000000000000000000000000000000000000000000000001')
44
+ * // @log: [420n, 69n, 1]
45
+ * ```
46
+ *
47
+ * @example
48
+ * You can extract an ABI Error from a JSON ABI with {@link ox#AbiError.(fromAbi:function)}:
49
+ *
50
+ * ```ts twoslash
51
+ * // @noErrors
52
+ * import { Abi, AbiError } from 'ox'
53
+ *
54
+ * const abi = Abi.from([...]) // [!code hl]
55
+ * const error = AbiError.fromAbi(abi, 'InvalidSignature') // [!code hl]
56
+ *
57
+ * const value = AbiError.decode(error, '0xecde634900000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000450000000000000000000000000000000000000000000000000000000000000001')
58
+ * // @log: [420n, 69n, 1]
59
+ * ```
60
+ *
61
+ * @example
62
+ * You can pass the error `data` to the `name` property of {@link ox#AbiError.(fromAbi:function)} to extract and infer the error by its 4-byte selector:
63
+ *
64
+ * ```ts twoslash
65
+ * // @noErrors
66
+ * import { Abi, AbiError } from 'ox'
67
+ *
68
+ * const data = '0xecde634900000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000450000000000000000000000000000000000000000000000000000000000000001'
69
+ *
70
+ * const abi = Abi.from([...])
71
+ * const error = AbiError.fromAbi(abi, data) // [!code hl]
72
+ *
73
+ * const value = AbiError.decode(error, data)
74
+ * // @log: [420n, 69n, 1]
75
+ * ```
76
+ *
77
+ * @example
78
+ * ### End-to-end
79
+ *
80
+ * Below is an end-to-end example of using `AbiError.decode` to decode the revert error of an `approve` contract call on the [Wagmi Mint Example contract](https://etherscan.io/address/0xfba3912ca04dd458c843e2ee08967fc04f3579c2).
81
+ *
82
+ * ```ts twoslash
83
+ * // @noErrors
84
+ * import 'ox/window'
85
+ * import { Abi, AbiError, AbiFunction } from 'ox'
86
+ *
87
+ * // 1. Extract the Function from the Contract's ABI.
88
+ * const abi = Abi.from([
89
+ * // ...
90
+ * {
91
+ * inputs: [
92
+ * { name: 'to', type: 'address' },
93
+ * { name: 'tokenId', type: 'uint256' },
94
+ * ],
95
+ * name: 'approve',
96
+ * outputs: [],
97
+ * stateMutability: 'nonpayable',
98
+ * type: 'function',
99
+ * },
100
+ * // ...
101
+ * ])
102
+ * const approve = AbiFunction.fromAbi(abi, 'approve')
103
+ *
104
+ * // 2. Encode the Function Input.
105
+ * const data = AbiFunction.encodeData(
106
+ * approve,
107
+ * ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 69420n]
108
+ * )
109
+ *
110
+ * try {
111
+ * // 3. Attempt to perform the the Contract Call.
112
+ * await window.ethereum!.request({
113
+ * method: 'eth_call',
114
+ * params: [
115
+ * {
116
+ * data,
117
+ * to: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',
118
+ * },
119
+ * ],
120
+ * })
121
+ * } catch (e) { // [!code focus]
122
+ * // 4. Extract and decode the Error. // [!code focus]
123
+ * const error = AbiError.fromAbi(abi, e.data) // [!code focus]
124
+ * const value = AbiError.decode(error, e.data) // [!code focus]
125
+ * console.error(`${error.name}(${value})`) // [!code focus]
126
+ * // @error: Error(ERC721: approve caller is not owner nor approved for all)
127
+ * } // [!code focus]
128
+ * ```
129
+ *
130
+ * :::note
131
+ *
132
+ * For simplicity, the above example uses `window.ethereum.request`, but you can use any
133
+ * type of JSON-RPC interface.
134
+ *
135
+ * :::
136
+ *
137
+ * @param abiError - The ABI Error to decode.
138
+ * @param data - The error data.
139
+ * @param options - Decoding options.
140
+ * @returns The decoded error.
141
+ */
142
+ export function decode(
143
+ abiError: AbiError,
144
+ data: Hex.Hex,
145
+ options?: decode.Options | undefined,
146
+ ): unknown | readonly unknown[] | undefined
147
+ /** @internal */
148
+ export function decode(
149
+ abiError: AbiError,
150
+ data: Hex.Hex,
151
+ options: decode.Options = {},
152
+ ): decode.ReturnType {
153
+ if (Hex.size(data) < 4) throw new AbiItem.InvalidSelectorSizeError({ data })
154
+ if (abiError.inputs.length === 0) return undefined
155
+
156
+ const values = AbiParameters.decode(
157
+ abiError.inputs,
158
+ Hex.slice(data, 4),
159
+ options,
160
+ )
161
+ if (values && Object.keys(values).length === 1) {
162
+ if (Array.isArray(values)) return values[0]
163
+ return Object.values(values)[0]
164
+ }
165
+ return values
166
+ }
167
+
168
+ export declare namespace decode {
169
+ type Options<as extends 'Object' | 'Array' = 'Array'> = {
170
+ /**
171
+ * Whether the decoded values should be returned as an `Object` or `Array`.
172
+ *
173
+ * @default "Array"
174
+ */
175
+ as?: as | 'Array' | 'Object' | undefined
176
+ }
177
+
178
+ type ReturnType<
179
+ abiError extends AbiError = AbiError,
180
+ as extends 'Object' | 'Array' = 'Array',
181
+ > = IsNarrowable<abiError, AbiError> extends true
182
+ ? abiError['inputs'] extends readonly []
183
+ ? undefined
184
+ : abiError['inputs'] extends readonly [
185
+ infer type extends abitype.AbiParameter,
186
+ ]
187
+ ? abitype.AbiParameterToPrimitiveType<type>
188
+ : AbiParameters.decode.ReturnType<
189
+ abiError['inputs'],
190
+ as
191
+ > extends infer types
192
+ ? types extends readonly []
193
+ ? undefined
194
+ : types extends readonly [infer type]
195
+ ? type
196
+ : types
197
+ : never
198
+ : unknown | readonly unknown[] | undefined
199
+
200
+ type ErrorType =
201
+ | AbiParameters.decode.ErrorType
202
+ | Hex.size.ErrorType
203
+ | AbiItem.InvalidSelectorSizeError
204
+ | Errors.GlobalErrorType
205
+ }
206
+
207
+ /**
208
+ * ABI-encodes the provided error input (`inputs`), prefixed with the 4 byte error selector.
209
+ *
210
+ * @example
211
+ * ```ts twoslash
212
+ * import { AbiError } from 'ox'
213
+ *
214
+ * const error = AbiError.from(
215
+ * 'error InvalidSignature(uint r, uint s, uint8 yParity)'
216
+ * )
217
+ *
218
+ * const data = AbiError.encode( // [!code focus]
219
+ * error, // [!code focus]
220
+ * [1n, 2n, 0] // [!code focus]
221
+ * ) // [!code focus]
222
+ * // @log: '0x095ea7b3000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000000000000000010f2c'
223
+ * ```
224
+ *
225
+ * @example
226
+ * You can extract an ABI Error from a JSON ABI with {@link ox#AbiError.(fromAbi:function)}:
227
+ *
228
+ * ```ts twoslash
229
+ * // @noErrors
230
+ * import { Abi, AbiError } from 'ox'
231
+ *
232
+ * const abi = Abi.from([ // [!code hl]
233
+ * // ... // [!code hl]
234
+ * { // [!code hl]
235
+ * name: 'InvalidSignature', // [!code hl]
236
+ * type: 'error', // [!code hl]
237
+ * inputs: [ // [!code hl]
238
+ * { name: 'r', type: 'uint256' }, // [!code hl]
239
+ * { name: 's', type: 'uint256' }, // [!code hl]
240
+ * { name: 'yParity', type: 'uint8' }, // [!code hl]
241
+ * ], // [!code hl]
242
+ * }, // [!code hl]
243
+ * // ... // [!code hl]
244
+ * ]) // [!code hl]
245
+ * const error = AbiError.fromAbi(abi, 'InvalidSignature') // [!code hl]
246
+ *
247
+ * const data = AbiError.encode(
248
+ * error,
249
+ * ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 69420n]
250
+ * )
251
+ * // @log: '0x095ea7b3000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000000000000000010f2c'
252
+ * ```
253
+ *
254
+ * @param abiError - ABI Error to encode
255
+ * @param args - Error arguments
256
+ * @returns ABI-encoded error name and arguments
257
+ */
258
+ export function encode<const abiError extends AbiError>(
259
+ abiError: abiError,
260
+ ...args: encode.Args<abiError>
261
+ ): encode.ReturnType {
262
+ const selector = getSelector(abiError)
263
+
264
+ const data =
265
+ args.length > 0
266
+ ? AbiParameters.encode(abiError.inputs, (args as any)[0])
267
+ : undefined
268
+
269
+ return data ? Hex.concat(selector, data) : selector
270
+ }
271
+
272
+ export declare namespace encode {
273
+ type Args<abiError extends AbiError = AbiError> = IsNarrowable<
274
+ abiError,
275
+ AbiError
276
+ > extends true
277
+ ? abitype.AbiParametersToPrimitiveTypes<
278
+ abiError['inputs']
279
+ > extends readonly []
280
+ ? []
281
+ : [abitype.AbiParametersToPrimitiveTypes<abiError['inputs']>]
282
+ : readonly unknown[]
283
+
284
+ type ReturnType = Hex.Hex
285
+
286
+ type ErrorType = Errors.GlobalErrorType
287
+ }
288
+
289
+ encode.parseError = (error: unknown) =>
290
+ /* v8 ignore next */
291
+ error as encode.ErrorType
292
+
293
+ /**
294
+ * Formats an {@link ox#AbiError.AbiError} into a **Human Readable ABI Error**.
295
+ *
296
+ * @example
297
+ * ```ts twoslash
298
+ * import { AbiError } from 'ox'
299
+ *
300
+ * const formatted = AbiError.format({
301
+ * type: 'error',
302
+ * name: 'Example',
303
+ * inputs: [
304
+ * {
305
+ * name: 'spender',
306
+ * type: 'address',
307
+ * },
308
+ * {
309
+ * name: 'amount',
310
+ * type: 'uint256',
311
+ * },
312
+ * ],
313
+ * })
314
+ *
315
+ * formatted
316
+ * // ^?
317
+ *
318
+ *
319
+ * ```
320
+ *
321
+ * @param abiError - The ABI Error to format.
322
+ * @returns The formatted ABI Error.
323
+ */
324
+ export function format<const abiError extends AbiError>(
325
+ abiError: abiError | AbiError,
326
+ ): abitype.FormatAbiItem<abiError> {
327
+ return abitype.formatAbiItem(abiError) as never
328
+ }
329
+
330
+ export declare namespace format {
331
+ type ErrorType = Errors.GlobalErrorType
332
+ }
333
+
334
+ format.parseError = (error: unknown) =>
335
+ /* v8 ignore next */
336
+ error as format.ErrorType
337
+
338
+ /**
339
+ * Parses an arbitrary **JSON ABI Error** or **Human Readable ABI Error** into a typed {@link ox#AbiError.AbiError}.
340
+ *
341
+ * @example
342
+ * ### JSON ABIs
343
+ *
344
+ * ```ts twoslash
345
+ * import { AbiError } from 'ox'
346
+ *
347
+ * const badSignatureVError = AbiError.from({
348
+ * inputs: [{ name: 'v', type: 'uint8' }],
349
+ * name: 'BadSignatureV',
350
+ * type: 'error',
351
+ * })
352
+ *
353
+ * badSignatureVError
354
+ * //^?
355
+ *
356
+ *
357
+ *
358
+ *
359
+ *
360
+ *
361
+ *
362
+ *
363
+ *
364
+ *
365
+ *
366
+ *
367
+ * ```
368
+ *
369
+ * @example
370
+ * ### Human Readable ABIs
371
+ *
372
+ * A Human Readable ABI can be parsed into a typed ABI object:
373
+ *
374
+ * ```ts twoslash
375
+ * import { AbiError } from 'ox'
376
+ *
377
+ * const badSignatureVError = AbiError.from(
378
+ * 'error BadSignatureV(uint8 v)' // [!code hl]
379
+ * )
380
+ *
381
+ * badSignatureVError
382
+ * //^?
383
+ *
384
+ *
385
+ *
386
+ *
387
+ *
388
+ *
389
+ *
390
+ *
391
+ *
392
+ *
393
+ *
394
+ *
395
+ *
396
+ * ```
397
+ *
398
+ * @example
399
+ * It is possible to specify `struct`s along with your definitions:
400
+ *
401
+ * ```ts twoslash
402
+ * import { AbiError } from 'ox'
403
+ *
404
+ * const badSignatureVError = AbiError.from([
405
+ * 'struct Signature { uint8 v; }', // [!code hl]
406
+ * 'error BadSignatureV(Signature signature)',
407
+ * ])
408
+ *
409
+ * badSignatureVError
410
+ * //^?
411
+ *
412
+ *
413
+ *
414
+ *
415
+ *
416
+ *
417
+ *
418
+ *
419
+ *
420
+ *
421
+ *
422
+ *
423
+ * ```
424
+ *
425
+ *
426
+ *
427
+ * @param abiError - The ABI Error to parse.
428
+ * @returns Typed ABI Error.
429
+ */
430
+ export function from<
431
+ const abiError extends AbiError | string | readonly string[],
432
+ >(
433
+ abiError: (abiError | AbiError | string | readonly string[]) &
434
+ (
435
+ | (abiError extends string ? internal.Signature<abiError> : never)
436
+ | (abiError extends readonly string[]
437
+ ? internal.Signatures<abiError>
438
+ : never)
439
+ | AbiError
440
+ ),
441
+ options: from.Options = {},
442
+ ): from.ReturnType<abiError> {
443
+ return AbiItem.from(abiError as AbiError, options) as never
444
+ }
445
+
446
+ export declare namespace from {
447
+ type Options = {
448
+ /**
449
+ * Whether or not to prepare the extracted function (optimization for encoding performance).
450
+ * When `true`, the `hash` property is computed and included in the returned value.
451
+ *
452
+ * @default true
453
+ */
454
+ prepare?: boolean | undefined
455
+ }
456
+
457
+ type ReturnType<abiError extends AbiError | string | readonly string[]> =
458
+ AbiItem.from.ReturnType<abiError>
459
+
460
+ type ErrorType = AbiItem.from.ErrorType | Errors.GlobalErrorType
461
+ }
462
+
463
+ from.parseError = (error: unknown) =>
464
+ /* v8 ignore next */
465
+ error as from.ErrorType
466
+
467
+ /**
468
+ * Extracts an {@link ox#AbiError.AbiError} from an {@link ox#Abi.Abi} given a name and optional arguments.
469
+ *
470
+ * @example
471
+ * ### Extracting by Name
472
+ *
473
+ * ABI Errors can be extracted by their name using the `name` option:
474
+ *
475
+ * ```ts twoslash
476
+ * import { Abi, AbiError } from 'ox'
477
+ *
478
+ * const abi = Abi.from([
479
+ * 'function foo()',
480
+ * 'error BadSignatureV(uint8 v)',
481
+ * 'function bar(string a) returns (uint256 x)',
482
+ * ])
483
+ *
484
+ * const item = AbiError.fromAbi(abi, 'BadSignatureV') // [!code focus]
485
+ * // ^?
486
+ *
487
+ *
488
+ *
489
+ *
490
+ *
491
+ *
492
+ * ```
493
+ *
494
+ * @example
495
+ * ### Extracting by Selector
496
+ *
497
+ * ABI Errors can be extract by their selector when {@link ox#Hex.Hex} is provided to `name`.
498
+ *
499
+ * ```ts twoslash
500
+ * import { Abi, AbiError } from 'ox'
501
+ *
502
+ * const abi = Abi.from([
503
+ * 'function foo()',
504
+ * 'error BadSignatureV(uint8 v)',
505
+ * 'function bar(string a) returns (uint256 x)',
506
+ * ])
507
+ * const item = AbiError.fromAbi(abi, '0x095ea7b3') // [!code focus]
508
+ * // ^?
509
+ *
510
+ *
511
+ *
512
+ *
513
+ *
514
+ *
515
+ *
516
+ *
517
+ *
518
+ * ```
519
+ *
520
+ * :::note
521
+ *
522
+ * Extracting via a hex selector is useful when extracting an ABI Error from JSON-RPC error data.
523
+ *
524
+ * :::
525
+ *
526
+ * @param abi - The ABI to extract from.
527
+ * @param name - The name (or selector) of the ABI item to extract.
528
+ * @param options - Extraction options.
529
+ * @returns The ABI item.
530
+ */
531
+ export function fromAbi<
532
+ const abi extends Abi.Abi | readonly unknown[],
533
+ name extends Name<abi>,
534
+ const args extends
535
+ | AbiItem_internal.ExtractArgs<abi, name>
536
+ | undefined = undefined,
537
+ //
538
+ allNames = Name<abi>,
539
+ >(
540
+ abi: abi | Abi.Abi | readonly unknown[],
541
+ name: Hex.Hex | (name extends allNames ? name : never),
542
+ options?: AbiItem.fromAbi.Options<
543
+ abi,
544
+ name,
545
+ args,
546
+ AbiItem_internal.ExtractArgs<abi, name>
547
+ >,
548
+ ): fromAbi.ReturnType<abi, name, args> {
549
+ if (name === 'Error') return solidityError as never
550
+ if (name === 'Panic') return solidityPanic as never
551
+ if (Hex.validate(name, { strict: false })) {
552
+ const selector = Hex.slice(name, 0, 4)
553
+ if (selector === solidityErrorSelector) return solidityError as never
554
+ if (selector === solidityPanicSelector) return solidityPanic as never
555
+ }
556
+
557
+ const item = AbiItem.fromAbi(abi, name, options as any)
558
+ if (item.type !== 'error')
559
+ throw new AbiItem.NotFoundError({ name, type: 'error' })
560
+ return item as never
561
+ }
562
+
563
+ export declare namespace fromAbi {
564
+ type ReturnType<
565
+ abi extends Abi.Abi | readonly unknown[] = Abi.Abi,
566
+ name extends Name<abi> = Name<abi>,
567
+ args extends
568
+ | AbiItem_internal.ExtractArgs<abi, name>
569
+ | undefined = AbiItem_internal.ExtractArgs<abi, name>,
570
+ > = IsNarrowable<name, Name<abi>> extends true
571
+ ?
572
+ | (name extends 'Error' ? typeof solidityError : never)
573
+ | (name extends 'Panic'
574
+ ? typeof solidityPanic
575
+ : never) extends infer result
576
+ ? IsNever<result> extends true
577
+ ? AbiItem.fromAbi.ReturnType<abi, name, args, AbiError>
578
+ : result
579
+ : never
580
+ :
581
+ | AbiItem.fromAbi.ReturnType<abi, name, args, AbiError>
582
+ | typeof solidityError
583
+ | typeof solidityPanic
584
+
585
+ type ErrorType = AbiItem.fromAbi.ErrorType | Errors.GlobalErrorType
586
+ }
587
+
588
+ fromAbi.parseError = (error: unknown) =>
589
+ /* v8 ignore next */
590
+ error as fromAbi.ErrorType
591
+
592
+ /**
593
+ * Computes the [4-byte selector](https://solidity-by-example.org/function-selector/) for an {@link ox#AbiError.AbiError}.
594
+ *
595
+ * @example
596
+ * ```ts twoslash
597
+ * import { AbiError } from 'ox'
598
+ *
599
+ * const selector = AbiError.getSelector('error BadSignatureV(uint8 v)')
600
+ * // @log: '0x6352211e'
601
+ * ```
602
+ *
603
+ * @example
604
+ * ```ts twoslash
605
+ * import { AbiError } from 'ox'
606
+ *
607
+ * const selector = AbiError.getSelector({
608
+ * inputs: [{ name: 'v', type: 'uint8' }],
609
+ * name: 'BadSignatureV',
610
+ * type: 'error'
611
+ * })
612
+ * // @log: '0x6352211e'
613
+ * ```
614
+ *
615
+ * @param abiItem - The ABI item to compute the selector for.
616
+ * @returns The first 4 bytes of the {@link ox#Hash.(keccak256:function)} hash of the error signature.
617
+ */
618
+ export function getSelector(abiItem: string | AbiError): Hex.Hex {
619
+ return AbiItem.getSelector(abiItem)
620
+ }
621
+
622
+ export declare namespace getSelector {
623
+ type ErrorType = AbiItem.getSelector.ErrorType | Errors.GlobalErrorType
624
+ }
625
+
626
+ /* v8 ignore next */
627
+ getSelector.parseError = (error: unknown) => error as getSelector.ErrorType
628
+
629
+ // https://docs.soliditylang.org/en/v0.8.16/control-structures.html#panic-via-assert-and-error-via-require
630
+ export const panicReasons = {
631
+ 1: 'An `assert` condition failed.',
632
+ 17: 'Arithmetic operation resulted in underflow or overflow.',
633
+ 18: 'Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).',
634
+ 33: 'Attempted to convert to an invalid type.',
635
+ 34: 'Attempted to access a storage byte array that is incorrectly encoded.',
636
+ 49: 'Performed `.pop()` on an empty array',
637
+ 50: 'Array index is out of bounds.',
638
+ 65: 'Allocated too much memory or created an array which is too large.',
639
+ 81: 'Attempted to call a zero-initialized variable of internal function type.',
640
+ } as Record<number, string>
641
+
642
+ export const solidityError = /*#__PURE__*/ from({
643
+ inputs: [
644
+ {
645
+ name: 'message',
646
+ type: 'string',
647
+ },
648
+ ],
649
+ name: 'Error',
650
+ type: 'error',
651
+ })
652
+
653
+ export const solidityErrorSelector = '0x08c379a0'
654
+
655
+ export const solidityPanic = /*#__PURE__*/ from({
656
+ inputs: [
657
+ {
658
+ name: 'reason',
659
+ type: 'uint8',
660
+ },
661
+ ],
662
+ name: 'Panic',
663
+ type: 'error',
664
+ })
665
+
666
+ export const solidityPanicSelector = '0x4e487b71'
667
+
668
+ /**
669
+ * Extracts an {@link ox#AbiError.AbiError} item from an {@link ox#Abi.Abi}, given a name.
670
+ *
671
+ * @example
672
+ * ```ts twoslash
673
+ * import { Abi, AbiError } from 'ox'
674
+ *
675
+ * const abi = Abi.from([
676
+ * 'error Foo(string)',
677
+ * 'error Bar(uint256)',
678
+ * ])
679
+ *
680
+ * type Foo = AbiError.FromAbi<typeof abi, 'Foo'>
681
+ * // ^?
682
+ *
683
+ *
684
+ *
685
+ *
686
+ *
687
+ *
688
+ *
689
+ *
690
+ * ```
691
+ */
692
+ export type FromAbi<
693
+ abi extends Abi.Abi,
694
+ name extends ExtractNames<abi>,
695
+ > = abitype.ExtractAbiError<abi, name>
696
+
697
+ /**
698
+ * Extracts the names of all {@link ox#AbiError.AbiError} items in an {@link ox#Abi.Abi}.
699
+ *
700
+ * @example
701
+ * ```ts twoslash
702
+ * import { Abi, AbiError } from 'ox'
703
+ *
704
+ * const abi = Abi.from([
705
+ * 'error Foo(string)',
706
+ * 'error Bar(uint256)',
707
+ * ])
708
+ *
709
+ * type names = AbiError.Name<typeof abi>
710
+ * // ^?
711
+ * ```
712
+ */
713
+ export type Name<abi extends Abi.Abi | readonly unknown[] = Abi.Abi> =
714
+ abi extends Abi.Abi ? ExtractNames<abi> : string
715
+
716
+ export type ExtractNames<abi extends Abi.Abi> =
717
+ | abitype.ExtractAbiErrorNames<abi>
718
+ | 'Panic'
719
+ | 'Error'
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "module",
3
+ "types": "../_types/AbiEvent.d.ts",
4
+ "main": "../_cjs/AbiEvent.js",
5
+ "module": "../_esm/AbiEvent.js"
6
+ }