ox 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (756) hide show
  1. package/Abi/package.json +6 -0
  2. package/Abi.ts +163 -0
  3. package/AbiConstructor/package.json +6 -0
  4. package/AbiConstructor.ts +413 -0
  5. package/AbiError/package.json +6 -0
  6. package/AbiError.ts +719 -0
  7. package/AbiEvent/package.json +6 -0
  8. package/AbiEvent.ts +1284 -0
  9. package/AbiFunction/package.json +6 -0
  10. package/AbiFunction.ts +813 -0
  11. package/AbiItem/package.json +6 -0
  12. package/AbiItem.ts +779 -0
  13. package/AbiParameters/package.json +6 -0
  14. package/AbiParameters.ts +712 -0
  15. package/AccessList/package.json +6 -0
  16. package/AccessList.ts +124 -0
  17. package/AccountProof/package.json +6 -0
  18. package/AccountProof.ts +35 -0
  19. package/Address/package.json +6 -0
  20. package/Address.ts +359 -0
  21. package/AesGcm/package.json +6 -0
  22. package/AesGcm.ts +220 -0
  23. package/Authorization/package.json +6 -0
  24. package/Authorization.ts +639 -0
  25. package/Base58/package.json +6 -0
  26. package/Base58.ts +180 -0
  27. package/Base64/package.json +6 -0
  28. package/Base64.ts +333 -0
  29. package/Blobs/package.json +6 -0
  30. package/Blobs.ts +982 -0
  31. package/Block/package.json +6 -0
  32. package/Block.ts +317 -0
  33. package/Bloom/package.json +6 -0
  34. package/Bloom.ts +80 -0
  35. package/Bls/package.json +6 -0
  36. package/Bls.ts +496 -0
  37. package/BlsPoint/package.json +6 -0
  38. package/BlsPoint.ts +232 -0
  39. package/Bytes/package.json +6 -0
  40. package/Bytes.ts +963 -0
  41. package/CHANGELOG.md +7 -0
  42. package/Caches/package.json +6 -0
  43. package/Caches.ts +21 -0
  44. package/ContractAddress/package.json +6 -0
  45. package/ContractAddress.ts +181 -0
  46. package/Ens/package.json +6 -0
  47. package/Ens.ts +116 -0
  48. package/Errors/package.json +6 -0
  49. package/Errors.ts +95 -0
  50. package/Fee/package.json +6 -0
  51. package/Fee.ts +57 -0
  52. package/Filter/package.json +6 -0
  53. package/Filter.ts +144 -0
  54. package/Hash/package.json +6 -0
  55. package/Hash.ts +210 -0
  56. package/HdKey/package.json +6 -0
  57. package/HdKey.ts +175 -0
  58. package/Hex/package.json +6 -0
  59. package/Hex.ts +1040 -0
  60. package/Json/package.json +6 -0
  61. package/Json.ts +84 -0
  62. package/Kzg/package.json +6 -0
  63. package/Kzg.ts +51 -0
  64. package/LICENSE +21 -0
  65. package/Log/package.json +6 -0
  66. package/Log.ts +248 -0
  67. package/Mnemonic/package.json +6 -0
  68. package/Mnemonic.ts +249 -0
  69. package/P256/package.json +6 -0
  70. package/P256.ts +230 -0
  71. package/PersonalMessage/package.json +6 -0
  72. package/PersonalMessage.ts +70 -0
  73. package/Provider/package.json +6 -0
  74. package/Provider.ts +354 -0
  75. package/PublicKey/package.json +6 -0
  76. package/PublicKey.ts +545 -0
  77. package/README.md +75 -26
  78. package/Rlp/package.json +6 -0
  79. package/Rlp.ts +390 -0
  80. package/RpcRequest/package.json +6 -0
  81. package/RpcRequest.ts +192 -0
  82. package/RpcResponse/package.json +6 -0
  83. package/RpcResponse.ts +389 -0
  84. package/RpcSchema/package.json +6 -0
  85. package/RpcSchema.ts +273 -0
  86. package/RpcTransport/package.json +6 -0
  87. package/RpcTransport.ts +198 -0
  88. package/Secp256k1/package.json +6 -0
  89. package/Secp256k1.ts +304 -0
  90. package/Signature/package.json +6 -0
  91. package/Signature.ts +909 -0
  92. package/Siwe/package.json +6 -0
  93. package/Siwe.ts +516 -0
  94. package/Solidity/package.json +6 -0
  95. package/Solidity.ts +109 -0
  96. package/Transaction/package.json +6 -0
  97. package/Transaction.ts +429 -0
  98. package/TransactionEnvelope/package.json +6 -0
  99. package/TransactionEnvelope.ts +205 -0
  100. package/TransactionEnvelopeEip1559/package.json +6 -0
  101. package/TransactionEnvelopeEip1559.ts +656 -0
  102. package/TransactionEnvelopeEip2930/package.json +6 -0
  103. package/TransactionEnvelopeEip2930.ts +624 -0
  104. package/TransactionEnvelopeEip4844/package.json +6 -0
  105. package/TransactionEnvelopeEip4844.ts +764 -0
  106. package/TransactionEnvelopeEip7702/package.json +6 -0
  107. package/TransactionEnvelopeEip7702.ts +639 -0
  108. package/TransactionEnvelopeLegacy/package.json +6 -0
  109. package/TransactionEnvelopeLegacy.ts +674 -0
  110. package/TransactionReceipt/package.json +6 -0
  111. package/TransactionReceipt.ts +341 -0
  112. package/TransactionRequest/package.json +6 -0
  113. package/TransactionRequest.ts +151 -0
  114. package/TypedData/package.json +6 -0
  115. package/TypedData.ts +931 -0
  116. package/ValidatorData/package.json +6 -0
  117. package/ValidatorData.ts +87 -0
  118. package/Value/package.json +6 -0
  119. package/Value.ts +242 -0
  120. package/WebAuthnP256/package.json +6 -0
  121. package/WebAuthnP256.ts +803 -0
  122. package/WebCryptoP256/package.json +6 -0
  123. package/WebCryptoP256.ts +190 -0
  124. package/Withdrawal/package.json +6 -0
  125. package/Withdrawal.ts +95 -0
  126. package/_cjs/Abi.js +17 -0
  127. package/_cjs/Abi.js.map +1 -0
  128. package/_cjs/AbiConstructor.js +42 -0
  129. package/_cjs/AbiConstructor.js.map +1 -0
  130. package/_cjs/AbiError.js +98 -0
  131. package/_cjs/AbiError.js.map +1 -0
  132. package/_cjs/AbiEvent.js +338 -0
  133. package/_cjs/AbiEvent.js.map +1 -0
  134. package/_cjs/AbiFunction.js +85 -0
  135. package/_cjs/AbiFunction.js.map +1 -0
  136. package/_cjs/AbiItem.js +180 -0
  137. package/_cjs/AbiItem.js.map +1 -0
  138. package/_cjs/AbiParameters.js +229 -0
  139. package/_cjs/AbiParameters.js.map +1 -0
  140. package/_cjs/AccessList.js +51 -0
  141. package/_cjs/AccessList.js.map +1 -0
  142. package/_cjs/AccountProof.js +3 -0
  143. package/_cjs/AccountProof.js.map +1 -0
  144. package/_cjs/Address.js +121 -0
  145. package/_cjs/Address.js.map +1 -0
  146. package/_cjs/AesGcm.js +55 -0
  147. package/_cjs/AesGcm.js.map +1 -0
  148. package/_cjs/Authorization.js +99 -0
  149. package/_cjs/Authorization.js.map +1 -0
  150. package/_cjs/Base58.js +52 -0
  151. package/_cjs/Base58.js.map +1 -0
  152. package/_cjs/Base64.js +76 -0
  153. package/_cjs/Base64.js.map +1 -0
  154. package/_cjs/Blobs.js +255 -0
  155. package/_cjs/Blobs.js.map +1 -0
  156. package/_cjs/Block.js +87 -0
  157. package/_cjs/Block.js.map +1 -0
  158. package/_cjs/Bloom.js +23 -0
  159. package/_cjs/Bloom.js.map +1 -0
  160. package/_cjs/Bls.js +79 -0
  161. package/_cjs/Bls.js.map +1 -0
  162. package/_cjs/BlsPoint.js +32 -0
  163. package/_cjs/BlsPoint.js.map +1 -0
  164. package/_cjs/Bytes.js +279 -0
  165. package/_cjs/Bytes.js.map +1 -0
  166. package/_cjs/Caches.js +14 -0
  167. package/_cjs/Caches.js.map +1 -0
  168. package/_cjs/ContractAddress.js +39 -0
  169. package/_cjs/ContractAddress.js.map +1 -0
  170. package/_cjs/Ens.js +37 -0
  171. package/_cjs/Ens.js.map +1 -0
  172. package/_cjs/Errors.js +99 -0
  173. package/_cjs/Errors.js.map +1 -0
  174. package/_cjs/Fee.js +3 -0
  175. package/_cjs/Fee.js.map +1 -0
  176. package/_cjs/Filter.js +43 -0
  177. package/_cjs/Filter.js.map +1 -0
  178. package/_cjs/Hash.js +40 -0
  179. package/_cjs/Hash.js.map +1 -0
  180. package/_cjs/HdKey.js +30 -0
  181. package/_cjs/HdKey.js.map +1 -0
  182. package/_cjs/Hex.js +324 -0
  183. package/_cjs/Hex.js.map +1 -0
  184. package/_cjs/Json.js +25 -0
  185. package/_cjs/Json.js.map +1 -0
  186. package/_cjs/Kzg.js +14 -0
  187. package/_cjs/Kzg.js.map +1 -0
  188. package/_cjs/Log.js +35 -0
  189. package/_cjs/Log.js.map +1 -0
  190. package/_cjs/Mnemonic.js +56 -0
  191. package/_cjs/Mnemonic.js.map +1 -0
  192. package/_cjs/P256.js +52 -0
  193. package/_cjs/P256.js.map +1 -0
  194. package/_cjs/PersonalMessage.js +16 -0
  195. package/_cjs/PersonalMessage.js.map +1 -0
  196. package/_cjs/Provider.js +90 -0
  197. package/_cjs/Provider.js.map +1 -0
  198. package/_cjs/PublicKey.js +192 -0
  199. package/_cjs/PublicKey.js.map +1 -0
  200. package/_cjs/Rlp.js +179 -0
  201. package/_cjs/Rlp.js.map +1 -0
  202. package/_cjs/RpcRequest.js +27 -0
  203. package/_cjs/RpcRequest.js.map +1 -0
  204. package/_cjs/RpcResponse.js +368 -0
  205. package/_cjs/RpcResponse.js.map +1 -0
  206. package/_cjs/RpcSchema.js +7 -0
  207. package/_cjs/RpcSchema.js.map +1 -0
  208. package/_cjs/RpcTransport.js +95 -0
  209. package/_cjs/RpcTransport.js.map +1 -0
  210. package/_cjs/Secp256k1.js +57 -0
  211. package/_cjs/Secp256k1.js.map +1 -0
  212. package/_cjs/Signature.js +305 -0
  213. package/_cjs/Signature.js.map +1 -0
  214. package/_cjs/Siwe.js +231 -0
  215. package/_cjs/Siwe.js.map +1 -0
  216. package/_cjs/Solidity.js +104 -0
  217. package/_cjs/Solidity.js.map +1 -0
  218. package/_cjs/Transaction.js +106 -0
  219. package/_cjs/Transaction.js.map +1 -0
  220. package/_cjs/TransactionEnvelope.js +80 -0
  221. package/_cjs/TransactionEnvelope.js.map +1 -0
  222. package/_cjs/TransactionEnvelopeEip1559.js +182 -0
  223. package/_cjs/TransactionEnvelopeEip1559.js.map +1 -0
  224. package/_cjs/TransactionEnvelopeEip2930.js +166 -0
  225. package/_cjs/TransactionEnvelopeEip2930.js.map +1 -0
  226. package/_cjs/TransactionEnvelopeEip4844.js +224 -0
  227. package/_cjs/TransactionEnvelopeEip4844.js.map +1 -0
  228. package/_cjs/TransactionEnvelopeEip7702.js +156 -0
  229. package/_cjs/TransactionEnvelopeEip7702.js.map +1 -0
  230. package/_cjs/TransactionEnvelopeLegacy.js +221 -0
  231. package/_cjs/TransactionEnvelopeLegacy.js.map +1 -0
  232. package/_cjs/TransactionReceipt.js +76 -0
  233. package/_cjs/TransactionReceipt.js.map +1 -0
  234. package/_cjs/TransactionRequest.js +51 -0
  235. package/_cjs/TransactionRequest.js.map +1 -0
  236. package/_cjs/TypedData.js +318 -0
  237. package/_cjs/TypedData.js.map +1 -0
  238. package/_cjs/ValidatorData.js +16 -0
  239. package/_cjs/ValidatorData.js.map +1 -0
  240. package/_cjs/Value.js +96 -0
  241. package/_cjs/Value.js.map +1 -0
  242. package/_cjs/WebAuthnP256.js +245 -0
  243. package/_cjs/WebAuthnP256.js.map +1 -0
  244. package/_cjs/WebCryptoP256.js +46 -0
  245. package/_cjs/WebCryptoP256.js.map +1 -0
  246. package/_cjs/Withdrawal.js +24 -0
  247. package/_cjs/Withdrawal.js.map +1 -0
  248. package/_cjs/index.js +66 -0
  249. package/_cjs/index.js.map +1 -0
  250. package/_cjs/internal/abi.js +11 -0
  251. package/_cjs/internal/abi.js.map +1 -0
  252. package/_cjs/internal/abiConstructor.js +3 -0
  253. package/_cjs/internal/abiConstructor.js.map +1 -0
  254. package/_cjs/internal/abiError.js +3 -0
  255. package/_cjs/internal/abiError.js.map +1 -0
  256. package/_cjs/internal/abiEvent.js +3 -0
  257. package/_cjs/internal/abiEvent.js.map +1 -0
  258. package/_cjs/internal/abiFunction.js +3 -0
  259. package/_cjs/internal/abiFunction.js.map +1 -0
  260. package/_cjs/internal/abiItem.js +110 -0
  261. package/_cjs/internal/abiItem.js.map +1 -0
  262. package/_cjs/internal/abiParameters.js +376 -0
  263. package/_cjs/internal/abiParameters.js.map +1 -0
  264. package/_cjs/internal/base58.js +89 -0
  265. package/_cjs/internal/base58.js.map +1 -0
  266. package/_cjs/internal/bytes.js +88 -0
  267. package/_cjs/internal/bytes.js.map +1 -0
  268. package/_cjs/internal/cursor.js +210 -0
  269. package/_cjs/internal/cursor.js.map +1 -0
  270. package/_cjs/internal/ens.js +43 -0
  271. package/_cjs/internal/ens.js.map +1 -0
  272. package/_cjs/internal/errors.js +28 -0
  273. package/_cjs/internal/errors.js.map +1 -0
  274. package/_cjs/internal/hdKey.js +19 -0
  275. package/_cjs/internal/hdKey.js.map +1 -0
  276. package/_cjs/internal/hex.js +66 -0
  277. package/_cjs/internal/hex.js.map +1 -0
  278. package/_cjs/internal/lru.js +34 -0
  279. package/_cjs/internal/lru.js.map +1 -0
  280. package/_cjs/internal/mnemonic/wordlists.js +24 -0
  281. package/_cjs/internal/mnemonic/wordlists.js.map +1 -0
  282. package/_cjs/internal/promise.js +49 -0
  283. package/_cjs/internal/promise.js.map +1 -0
  284. package/_cjs/internal/register.js +3 -0
  285. package/_cjs/internal/register.js.map +1 -0
  286. package/_cjs/internal/rpcSchema.js +3 -0
  287. package/_cjs/internal/rpcSchema.js.map +1 -0
  288. package/_cjs/internal/rpcSchemas/eth.js +3 -0
  289. package/_cjs/internal/rpcSchemas/eth.js.map +1 -0
  290. package/_cjs/internal/rpcSchemas/wallet.js +3 -0
  291. package/_cjs/internal/rpcSchemas/wallet.js.map +1 -0
  292. package/_cjs/internal/rpcTransport.js +19 -0
  293. package/_cjs/internal/rpcTransport.js.map +1 -0
  294. package/_cjs/internal/types.js +3 -0
  295. package/_cjs/internal/types.js.map +1 -0
  296. package/_cjs/internal/uid.js +17 -0
  297. package/_cjs/internal/uid.js.map +1 -0
  298. package/_cjs/internal/webauthn.js +28 -0
  299. package/_cjs/internal/webauthn.js.map +1 -0
  300. package/_cjs/package.json +1 -0
  301. package/_cjs/trusted-setups/Paths.js +6 -0
  302. package/_cjs/trusted-setups/Paths.js.map +1 -0
  303. package/_cjs/trusted-setups/index.js +5 -0
  304. package/_cjs/trusted-setups/index.js.map +1 -0
  305. package/_cjs/trusted-setups/internal/paths.js +11 -0
  306. package/_cjs/trusted-setups/internal/paths.js.map +1 -0
  307. package/_cjs/version.js +5 -0
  308. package/_cjs/version.js.map +1 -0
  309. package/_cjs/window/index.js +3 -0
  310. package/_cjs/window/index.js.map +1 -0
  311. package/_esm/Abi.js +19 -0
  312. package/_esm/Abi.js.map +1 -0
  313. package/_esm/AbiConstructor.js +102 -0
  314. package/_esm/AbiConstructor.js.map +1 -0
  315. package/_esm/AbiError.js +364 -0
  316. package/_esm/AbiError.js.map +1 -0
  317. package/_esm/AbiEvent.js +1038 -0
  318. package/_esm/AbiEvent.js.map +1 -0
  319. package/_esm/AbiFunction.js +549 -0
  320. package/_esm/AbiFunction.js.map +1 -0
  321. package/_esm/AbiItem.js +574 -0
  322. package/_esm/AbiItem.js.map +1 -0
  323. package/_esm/AbiParameters.js +543 -0
  324. package/_esm/AbiParameters.js.map +1 -0
  325. package/_esm/AccessList.js +105 -0
  326. package/_esm/AccessList.js.map +1 -0
  327. package/_esm/AccountProof.js +2 -0
  328. package/_esm/AccountProof.js.map +1 -0
  329. package/_esm/Address.js +268 -0
  330. package/_esm/Address.js.map +1 -0
  331. package/_esm/AesGcm.js +124 -0
  332. package/_esm/AesGcm.js.map +1 -0
  333. package/_esm/Authorization.js +441 -0
  334. package/_esm/Authorization.js.map +1 -0
  335. package/_esm/Base58.js +142 -0
  336. package/_esm/Base58.js.map +1 -0
  337. package/_esm/Base64.js +236 -0
  338. package/_esm/Base64.js.map +1 -0
  339. package/_esm/Blobs.js +624 -0
  340. package/_esm/Blobs.js.map +1 -0
  341. package/_esm/Block.js +177 -0
  342. package/_esm/Block.js.map +1 -0
  343. package/_esm/Bloom.js +57 -0
  344. package/_esm/Bloom.js.map +1 -0
  345. package/_esm/Bls.js +141 -0
  346. package/_esm/Bls.js.map +1 -0
  347. package/_esm/BlsPoint.js +59 -0
  348. package/_esm/BlsPoint.js.map +1 -0
  349. package/_esm/Bytes.js +719 -0
  350. package/_esm/Bytes.js.map +1 -0
  351. package/_esm/Caches.js +19 -0
  352. package/_esm/Caches.js.map +1 -0
  353. package/_esm/ContractAddress.js +110 -0
  354. package/_esm/ContractAddress.js.map +1 -0
  355. package/_esm/Ens.js +84 -0
  356. package/_esm/Ens.js.map +1 -0
  357. package/_esm/Errors.js +105 -0
  358. package/_esm/Errors.js.map +1 -0
  359. package/_esm/Fee.js +2 -0
  360. package/_esm/Fee.js.map +1 -0
  361. package/_esm/Filter.js +100 -0
  362. package/_esm/Filter.js.map +1 -0
  363. package/_esm/Hash.js +126 -0
  364. package/_esm/Hash.js.map +1 -0
  365. package/_esm/HdKey.js +107 -0
  366. package/_esm/HdKey.js.map +1 -0
  367. package/_esm/Hex.js +763 -0
  368. package/_esm/Hex.js.map +1 -0
  369. package/_esm/Json.js +62 -0
  370. package/_esm/Json.js.map +1 -0
  371. package/_esm/Kzg.js +30 -0
  372. package/_esm/Kzg.js.map +1 -0
  373. package/_esm/Log.js +181 -0
  374. package/_esm/Log.js.map +1 -0
  375. package/_esm/Mnemonic.js +154 -0
  376. package/_esm/Mnemonic.js.map +1 -0
  377. package/_esm/P256.js +131 -0
  378. package/_esm/P256.js.map +1 -0
  379. package/_esm/PersonalMessage.js +46 -0
  380. package/_esm/PersonalMessage.js.map +1 -0
  381. package/_esm/Provider.js +122 -0
  382. package/_esm/Provider.js.map +1 -0
  383. package/_esm/PublicKey.js +395 -0
  384. package/_esm/PublicKey.js.map +1 -0
  385. package/_esm/Rlp.js +267 -0
  386. package/_esm/Rlp.js.map +1 -0
  387. package/_esm/RpcRequest.js +131 -0
  388. package/_esm/RpcRequest.js.map +1 -0
  389. package/_esm/RpcResponse.js +457 -0
  390. package/_esm/RpcResponse.js.map +1 -0
  391. package/_esm/RpcSchema.js +46 -0
  392. package/_esm/RpcSchema.js.map +1 -0
  393. package/_esm/RpcTransport.js +110 -0
  394. package/_esm/RpcTransport.js.map +1 -0
  395. package/_esm/Secp256k1.js +173 -0
  396. package/_esm/Secp256k1.js.map +1 -0
  397. package/_esm/Signature.js +696 -0
  398. package/_esm/Signature.js.map +1 -0
  399. package/_esm/Siwe.js +374 -0
  400. package/_esm/Siwe.js.map +1 -0
  401. package/_esm/Solidity.js +104 -0
  402. package/_esm/Solidity.js.map +1 -0
  403. package/_esm/Transaction.js +176 -0
  404. package/_esm/Transaction.js.map +1 -0
  405. package/_esm/TransactionEnvelope.js +139 -0
  406. package/_esm/TransactionEnvelope.js.map +1 -0
  407. package/_esm/TransactionEnvelopeEip1559.js +455 -0
  408. package/_esm/TransactionEnvelopeEip1559.js.map +1 -0
  409. package/_esm/TransactionEnvelopeEip2930.js +439 -0
  410. package/_esm/TransactionEnvelopeEip2930.js.map +1 -0
  411. package/_esm/TransactionEnvelopeEip4844.js +542 -0
  412. package/_esm/TransactionEnvelopeEip4844.js.map +1 -0
  413. package/_esm/TransactionEnvelopeEip7702.js +442 -0
  414. package/_esm/TransactionEnvelopeEip7702.js.map +1 -0
  415. package/_esm/TransactionEnvelopeLegacy.js +495 -0
  416. package/_esm/TransactionEnvelopeLegacy.js.map +1 -0
  417. package/_esm/TransactionReceipt.js +229 -0
  418. package/_esm/TransactionReceipt.js.map +1 -0
  419. package/_esm/TransactionRequest.js +89 -0
  420. package/_esm/TransactionRequest.js.map +1 -0
  421. package/_esm/TypedData.js +635 -0
  422. package/_esm/TypedData.js.map +1 -0
  423. package/_esm/ValidatorData.js +52 -0
  424. package/_esm/ValidatorData.js.map +1 -0
  425. package/_esm/Value.js +196 -0
  426. package/_esm/Value.js.map +1 -0
  427. package/_esm/WebAuthnP256.js +471 -0
  428. package/_esm/WebAuthnP256.js.map +1 -0
  429. package/_esm/WebCryptoP256.js +116 -0
  430. package/_esm/WebCryptoP256.js.map +1 -0
  431. package/_esm/Withdrawal.js +72 -0
  432. package/_esm/Withdrawal.js.map +1 -0
  433. package/_esm/index.js +3366 -0
  434. package/_esm/index.js.map +1 -0
  435. package/_esm/internal/abi.js +9 -0
  436. package/_esm/internal/abi.js.map +1 -0
  437. package/_esm/internal/abiConstructor.js +2 -0
  438. package/_esm/internal/abiConstructor.js.map +1 -0
  439. package/_esm/internal/abiError.js +2 -0
  440. package/_esm/internal/abiError.js.map +1 -0
  441. package/_esm/internal/abiEvent.js +2 -0
  442. package/_esm/internal/abiEvent.js.map +1 -0
  443. package/_esm/internal/abiFunction.js +2 -0
  444. package/_esm/internal/abiFunction.js.map +1 -0
  445. package/_esm/internal/abiItem.js +122 -0
  446. package/_esm/internal/abiItem.js.map +1 -0
  447. package/_esm/internal/abiParameters.js +419 -0
  448. package/_esm/internal/abiParameters.js.map +1 -0
  449. package/_esm/internal/base58.js +91 -0
  450. package/_esm/internal/base58.js.map +1 -0
  451. package/_esm/internal/bytes.js +86 -0
  452. package/_esm/internal/bytes.js.map +1 -0
  453. package/_esm/internal/cursor.js +207 -0
  454. package/_esm/internal/cursor.js.map +1 -0
  455. package/_esm/internal/ens.js +47 -0
  456. package/_esm/internal/ens.js.map +1 -0
  457. package/_esm/internal/errors.js +26 -0
  458. package/_esm/internal/errors.js.map +1 -0
  459. package/_esm/internal/hdKey.js +17 -0
  460. package/_esm/internal/hdKey.js.map +1 -0
  461. package/_esm/internal/hex.js +64 -0
  462. package/_esm/internal/hex.js.map +1 -0
  463. package/_esm/internal/lru.js +36 -0
  464. package/_esm/internal/lru.js.map +1 -0
  465. package/_esm/internal/mnemonic/wordlists.js +11 -0
  466. package/_esm/internal/mnemonic/wordlists.js.map +1 -0
  467. package/_esm/internal/promise.js +52 -0
  468. package/_esm/internal/promise.js.map +1 -0
  469. package/_esm/internal/register.js +2 -0
  470. package/_esm/internal/register.js.map +1 -0
  471. package/_esm/internal/rpcSchema.js +2 -0
  472. package/_esm/internal/rpcSchema.js.map +1 -0
  473. package/_esm/internal/rpcSchemas/eth.js +2 -0
  474. package/_esm/internal/rpcSchemas/eth.js.map +1 -0
  475. package/_esm/internal/rpcSchemas/wallet.js +2 -0
  476. package/_esm/internal/rpcSchemas/wallet.js.map +1 -0
  477. package/_esm/internal/rpcTransport.js +20 -0
  478. package/_esm/internal/rpcTransport.js.map +1 -0
  479. package/_esm/internal/types.js +2 -0
  480. package/_esm/internal/types.js.map +1 -0
  481. package/_esm/internal/uid.js +15 -0
  482. package/_esm/internal/uid.js.map +1 -0
  483. package/_esm/internal/webauthn.js +35 -0
  484. package/_esm/internal/webauthn.js.map +1 -0
  485. package/_esm/package.json +1 -0
  486. package/_esm/trusted-setups/Paths.js +3 -0
  487. package/_esm/trusted-setups/Paths.js.map +1 -0
  488. package/_esm/trusted-setups/index.js +2 -0
  489. package/_esm/trusted-setups/index.js.map +1 -0
  490. package/_esm/trusted-setups/internal/paths.js +12 -0
  491. package/_esm/trusted-setups/internal/paths.js.map +1 -0
  492. package/_esm/version.js +3 -0
  493. package/_esm/version.js.map +1 -0
  494. package/_esm/window/index.js +2 -0
  495. package/_esm/window/index.js.map +1 -0
  496. package/_test/Abi.test-d/package.json +6 -0
  497. package/_test/AbiConstructor.test-d/package.json +6 -0
  498. package/_test/AbiError.test-d/package.json +6 -0
  499. package/_test/AbiEvent.snap-d/package.json +6 -0
  500. package/_test/AbiEvent.snap-d.ts +329 -0
  501. package/_test/AbiFunction.snap-d/package.json +6 -0
  502. package/_test/AbiFunction.snap-d.ts +262 -0
  503. package/_test/AbiItem.snap-d/package.json +6 -0
  504. package/_test/AbiItem.snap-d.ts +131 -0
  505. package/_test/AbiParameters.bench/package.json +6 -0
  506. package/_test/AbiParameters.snap-d/package.json +6 -0
  507. package/_test/AbiParameters.snap-d.ts +66 -0
  508. package/_test/Address.bench/package.json +6 -0
  509. package/_test/Base58.bench/package.json +6 -0
  510. package/_test/Hex.bench/package.json +6 -0
  511. package/_test/Hex.test-d/package.json +6 -0
  512. package/_test/PublicKey.test-d/package.json +6 -0
  513. package/_test/Rlp.bench/package.json +6 -0
  514. package/_test/Rlp.test-d/package.json +6 -0
  515. package/_test/Signature.snap-d/package.json +6 -0
  516. package/_test/Signature.snap-d.ts +96 -0
  517. package/_test/TransactionEnvelopeEip1559.test-d/package.json +6 -0
  518. package/_test/TransactionEnvelopeEip2930.test-d/package.json +6 -0
  519. package/_test/TransactionEnvelopeEip4844.test-d/package.json +6 -0
  520. package/_test/TransactionEnvelopeEip7702.test-d/package.json +6 -0
  521. package/_test/TransactionEnvelopeLegacy.test-d/package.json +6 -0
  522. package/_test/TypedData.test-d/package.json +6 -0
  523. package/_types/Abi.d.ts +137 -0
  524. package/_types/Abi.d.ts.map +1 -0
  525. package/_types/AbiConstructor.d.ts +305 -0
  526. package/_types/AbiConstructor.d.ts.map +1 -0
  527. package/_types/AbiError.d.ts +522 -0
  528. package/_types/AbiError.d.ts.map +1 -0
  529. package/_types/AbiEvent.d.ts +892 -0
  530. package/_types/AbiEvent.d.ts.map +1 -0
  531. package/_types/AbiFunction.d.ts +602 -0
  532. package/_types/AbiFunction.d.ts.map +1 -0
  533. package/_types/AbiItem.d.ts +544 -0
  534. package/_types/AbiItem.d.ts.map +1 -0
  535. package/_types/AbiParameters.d.ts +466 -0
  536. package/_types/AbiParameters.d.ts.map +1 -0
  537. package/_types/AccessList.d.ts +83 -0
  538. package/_types/AccessList.d.ts.map +1 -0
  539. package/_types/AccountProof.d.ts +32 -0
  540. package/_types/AccountProof.d.ts.map +1 -0
  541. package/_types/Address.d.ts +244 -0
  542. package/_types/Address.d.ts.map +1 -0
  543. package/_types/AesGcm.d.ts +116 -0
  544. package/_types/AesGcm.d.ts.map +1 -0
  545. package/_types/Authorization.d.ts +461 -0
  546. package/_types/Authorization.d.ts.map +1 -0
  547. package/_types/Base58.d.ts +131 -0
  548. package/_types/Base58.d.ts.map +1 -0
  549. package/_types/Base64.d.ts +244 -0
  550. package/_types/Base64.d.ts.map +1 -0
  551. package/_types/Blobs.d.ts +556 -0
  552. package/_types/Blobs.d.ts.map +1 -0
  553. package/_types/Block.d.ts +190 -0
  554. package/_types/Block.d.ts.map +1 -0
  555. package/_types/Bloom.d.ts +54 -0
  556. package/_types/Bloom.d.ts.map +1 -0
  557. package/_types/Bls.d.ts +365 -0
  558. package/_types/Bls.d.ts.map +1 -0
  559. package/_types/BlsPoint.d.ts +187 -0
  560. package/_types/BlsPoint.d.ts.map +1 -0
  561. package/_types/Bytes.d.ts +674 -0
  562. package/_types/Bytes.d.ts.map +1 -0
  563. package/_types/Caches.d.ts +13 -0
  564. package/_types/Caches.d.ts.map +1 -0
  565. package/_types/ContractAddress.d.ts +115 -0
  566. package/_types/ContractAddress.d.ts.map +1 -0
  567. package/_types/Ens.d.ts +72 -0
  568. package/_types/Ens.d.ts.map +1 -0
  569. package/_types/Errors.d.ts +33 -0
  570. package/_types/Errors.d.ts.map +1 -0
  571. package/_types/Fee.d.ts +41 -0
  572. package/_types/Fee.d.ts.map +1 -0
  573. package/_types/Filter.d.ts +100 -0
  574. package/_types/Filter.d.ts.map +1 -0
  575. package/_types/Hash.d.ts +135 -0
  576. package/_types/Hash.d.ts.map +1 -0
  577. package/_types/HdKey.d.ts +146 -0
  578. package/_types/HdKey.d.ts.map +1 -0
  579. package/_types/Hex.d.ts +711 -0
  580. package/_types/Hex.d.ts.map +1 -0
  581. package/_types/Json.d.ts +53 -0
  582. package/_types/Json.d.ts.map +1 -0
  583. package/_types/Kzg.d.ts +42 -0
  584. package/_types/Kzg.d.ts.map +1 -0
  585. package/_types/Log.d.ts +194 -0
  586. package/_types/Log.d.ts.map +1 -0
  587. package/_types/Mnemonic.d.ts +176 -0
  588. package/_types/Mnemonic.d.ts.map +1 -0
  589. package/_types/P256.d.ts +207 -0
  590. package/_types/P256.d.ts.map +1 -0
  591. package/_types/PersonalMessage.d.ts +49 -0
  592. package/_types/PersonalMessage.d.ts.map +1 -0
  593. package/_types/Provider.d.ts +268 -0
  594. package/_types/Provider.d.ts.map +1 -0
  595. package/_types/PublicKey.d.ts +327 -0
  596. package/_types/PublicKey.d.ts.map +1 -0
  597. package/_types/Rlp.d.ts +153 -0
  598. package/_types/Rlp.d.ts.map +1 -0
  599. package/_types/RpcRequest.d.ts +144 -0
  600. package/_types/RpcRequest.d.ts.map +1 -0
  601. package/_types/RpcResponse.d.ts +266 -0
  602. package/_types/RpcResponse.d.ts.map +1 -0
  603. package/_types/RpcSchema.d.ts +248 -0
  604. package/_types/RpcSchema.d.ts.map +1 -0
  605. package/_types/RpcTransport.d.ts +65 -0
  606. package/_types/RpcTransport.d.ts.map +1 -0
  607. package/_types/Secp256k1.d.ts +277 -0
  608. package/_types/Secp256k1.d.ts.map +1 -0
  609. package/_types/Signature.d.ts +601 -0
  610. package/_types/Signature.d.ts.map +1 -0
  611. package/_types/Siwe.d.ts +249 -0
  612. package/_types/Siwe.d.ts.map +1 -0
  613. package/_types/Solidity.d.ts +100 -0
  614. package/_types/Solidity.d.ts.map +1 -0
  615. package/_types/Transaction.d.ts +235 -0
  616. package/_types/Transaction.d.ts.map +1 -0
  617. package/_types/TransactionEnvelope.d.ts +141 -0
  618. package/_types/TransactionEnvelope.d.ts.map +1 -0
  619. package/_types/TransactionEnvelopeEip1559.d.ts +367 -0
  620. package/_types/TransactionEnvelopeEip1559.d.ts.map +1 -0
  621. package/_types/TransactionEnvelopeEip2930.d.ts +364 -0
  622. package/_types/TransactionEnvelopeEip2930.d.ts.map +1 -0
  623. package/_types/TransactionEnvelopeEip4844.d.ts +419 -0
  624. package/_types/TransactionEnvelopeEip4844.d.ts.map +1 -0
  625. package/_types/TransactionEnvelopeEip7702.d.ts +377 -0
  626. package/_types/TransactionEnvelopeEip7702.d.ts.map +1 -0
  627. package/_types/TransactionEnvelopeLegacy.d.ts +358 -0
  628. package/_types/TransactionEnvelopeLegacy.d.ts.map +1 -0
  629. package/_types/TransactionReceipt.d.ts +271 -0
  630. package/_types/TransactionReceipt.d.ts.map +1 -0
  631. package/_types/TransactionRequest.d.ts +92 -0
  632. package/_types/TransactionRequest.d.ts.map +1 -0
  633. package/_types/TypedData.d.ts +496 -0
  634. package/_types/TypedData.d.ts.map +1 -0
  635. package/_types/ValidatorData.d.ts +64 -0
  636. package/_types/ValidatorData.d.ts.map +1 -0
  637. package/_types/Value.d.ts +159 -0
  638. package/_types/Value.d.ts.map +1 -0
  639. package/_types/WebAuthnP256.d.ts +445 -0
  640. package/_types/WebAuthnP256.d.ts.map +1 -0
  641. package/_types/WebCryptoP256.d.ts +119 -0
  642. package/_types/WebCryptoP256.d.ts.map +1 -0
  643. package/_types/Withdrawal.d.ts +74 -0
  644. package/_types/Withdrawal.d.ts.map +1 -0
  645. package/_types/index.d.ts +3367 -0
  646. package/_types/index.d.ts.map +1 -0
  647. package/_types/internal/abi.d.ts +4 -0
  648. package/_types/internal/abi.d.ts.map +1 -0
  649. package/_types/internal/abiConstructor.d.ts +11 -0
  650. package/_types/internal/abiConstructor.d.ts.map +1 -0
  651. package/_types/internal/abiError.d.ts +11 -0
  652. package/_types/internal/abiError.d.ts.map +1 -0
  653. package/_types/internal/abiEvent.d.ts +60 -0
  654. package/_types/internal/abiEvent.d.ts.map +1 -0
  655. package/_types/internal/abiFunction.d.ts +11 -0
  656. package/_types/internal/abiFunction.d.ts.map +1 -0
  657. package/_types/internal/abiItem.d.ts +100 -0
  658. package/_types/internal/abiItem.d.ts.map +1 -0
  659. package/_types/internal/abiParameters.d.ts +169 -0
  660. package/_types/internal/abiParameters.d.ts.map +1 -0
  661. package/_types/internal/base58.d.ts +17 -0
  662. package/_types/internal/base58.d.ts.map +1 -0
  663. package/_types/internal/bytes.d.ts +52 -0
  664. package/_types/internal/bytes.d.ts.map +1 -0
  665. package/_types/internal/cursor.d.ts +70 -0
  666. package/_types/internal/cursor.d.ts.map +1 -0
  667. package/_types/internal/ens.d.ts +23 -0
  668. package/_types/internal/ens.d.ts.map +1 -0
  669. package/_types/internal/errors.d.ts +7 -0
  670. package/_types/internal/errors.d.ts.map +1 -0
  671. package/_types/internal/hdKey.d.ts +10 -0
  672. package/_types/internal/hdKey.d.ts.map +1 -0
  673. package/_types/internal/hex.d.ts +39 -0
  674. package/_types/internal/hex.d.ts.map +1 -0
  675. package/_types/internal/lru.d.ts +13 -0
  676. package/_types/internal/lru.d.ts.map +1 -0
  677. package/_types/internal/mnemonic/wordlists.d.ts +11 -0
  678. package/_types/internal/mnemonic/wordlists.d.ts.map +1 -0
  679. package/_types/internal/promise.d.ts +27 -0
  680. package/_types/internal/promise.d.ts.map +1 -0
  681. package/_types/internal/register.d.ts +13 -0
  682. package/_types/internal/register.d.ts.map +1 -0
  683. package/_types/internal/rpcSchema.d.ts +12 -0
  684. package/_types/internal/rpcSchema.d.ts.map +1 -0
  685. package/_types/internal/rpcSchemas/eth.d.ts +718 -0
  686. package/_types/internal/rpcSchemas/eth.d.ts.map +1 -0
  687. package/_types/internal/rpcSchemas/wallet.d.ts +416 -0
  688. package/_types/internal/rpcSchemas/wallet.d.ts.map +1 -0
  689. package/_types/internal/rpcTransport.d.ts +38 -0
  690. package/_types/internal/rpcTransport.d.ts.map +1 -0
  691. package/_types/internal/types.d.ts +284 -0
  692. package/_types/internal/types.d.ts.map +1 -0
  693. package/_types/internal/uid.d.ts +3 -0
  694. package/_types/internal/uid.d.ts.map +1 -0
  695. package/_types/internal/webauthn.d.ts +127 -0
  696. package/_types/internal/webauthn.d.ts.map +1 -0
  697. package/_types/trusted-setups/Paths.d.ts +2 -0
  698. package/_types/trusted-setups/Paths.d.ts.map +1 -0
  699. package/_types/trusted-setups/index.d.ts +2 -0
  700. package/_types/trusted-setups/index.d.ts.map +1 -0
  701. package/_types/trusted-setups/internal/paths.d.ts +3 -0
  702. package/_types/trusted-setups/internal/paths.d.ts.map +1 -0
  703. package/_types/version.d.ts +3 -0
  704. package/_types/version.d.ts.map +1 -0
  705. package/_types/window/index.d.ts +7 -0
  706. package/_types/window/index.d.ts.map +1 -0
  707. package/index.ts +3427 -0
  708. package/internal/abi.ts +11 -0
  709. package/internal/abiConstructor.ts +32 -0
  710. package/internal/abiError.ts +30 -0
  711. package/internal/abiEvent.ts +154 -0
  712. package/internal/abiFunction.ts +32 -0
  713. package/internal/abiItem.ts +593 -0
  714. package/internal/abiParameters.ts +741 -0
  715. package/internal/base58.ts +106 -0
  716. package/internal/bytes.ts +152 -0
  717. package/internal/cursor.ts +252 -0
  718. package/internal/ens.ts +64 -0
  719. package/internal/errors.ts +26 -0
  720. package/internal/hdKey.ts +25 -0
  721. package/internal/hex.ts +123 -0
  722. package/internal/lru.ts +34 -0
  723. package/internal/mnemonic/wordlists.ts +10 -0
  724. package/internal/promise.ts +66 -0
  725. package/internal/register.ts +15 -0
  726. package/internal/rpcSchema.ts +20 -0
  727. package/internal/rpcSchemas/eth.ts +727 -0
  728. package/internal/rpcSchemas/wallet.ts +428 -0
  729. package/internal/rpcTransport.ts +74 -0
  730. package/internal/types.ts +414 -0
  731. package/internal/uid.ts +15 -0
  732. package/internal/webauthn.ts +198 -0
  733. package/package.json +500 -20
  734. package/trusted-setups/Paths/package.json +6 -0
  735. package/trusted-setups/Paths.ts +3 -0
  736. package/trusted-setups/index.ts +1 -0
  737. package/trusted-setups/internal/paths.ts +13 -0
  738. package/trusted-setups/internal/setups/mainnet.json +8265 -0
  739. package/trusted-setups/internal/setups/mainnet.txt +4163 -0
  740. package/trusted-setups/package.json +6 -0
  741. package/tsdoc.json +4 -0
  742. package/version/package.json +6 -0
  743. package/version.ts +2 -0
  744. package/window/index.ts +7 -0
  745. package/window/package.json +6 -0
  746. package/cl/ansiesc.js +0 -25
  747. package/cl/deps.js +0 -7
  748. package/cl/editor.js +0 -141
  749. package/cl/index.html +0 -19
  750. package/cl/ox.js +0 -44
  751. package/cl/socket.io.js +0 -1922
  752. package/cl/style.css +0 -37
  753. package/srv/deps.js +0 -88
  754. package/srv/httpSrv.js +0 -82
  755. package/srv/ox.js +0 -44
  756. package/srv/remoteXtermReq.js +0 -70
@@ -0,0 +1,593 @@
1
+ import type * as abitype from 'abitype'
2
+ import type * as Abi from '../Abi.js'
3
+ import type * as AbiItem from '../AbiItem.js'
4
+ import type * as AbiParameters from '../AbiParameters.js'
5
+ import * as Address from '../Address.js'
6
+ import * as Errors from '../Errors.js'
7
+ import type {
8
+ Compute,
9
+ IsNever,
10
+ IsUnion,
11
+ TypeErrorMessage,
12
+ UnionToTuple,
13
+ } from './types.js'
14
+
15
+ /** @internal */
16
+ export type ExtractArgs<
17
+ abi extends Abi.Abi | readonly unknown[] = Abi.Abi,
18
+ name extends AbiItem.Name<abi> = AbiItem.Name<abi>,
19
+ > = abitype.AbiParametersToPrimitiveTypes<
20
+ AbiItem.FromAbi<abi extends Abi.Abi ? abi : Abi.Abi, name>['inputs'],
21
+ 'inputs'
22
+ > extends infer args
23
+ ? [args] extends [never]
24
+ ? readonly unknown[]
25
+ : args
26
+ : readonly unknown[]
27
+
28
+ /** @internal */
29
+ export type ExtractForArgs<
30
+ abi extends Abi.Abi,
31
+ name extends AbiItem.Name<abi>,
32
+ args extends ExtractArgs<abi, name>,
33
+ > = IsUnion<name> extends true
34
+ ? {
35
+ [key in keyof abi]: abi[key] extends { name: name } ? abi[key] : never
36
+ }[number]
37
+ : AbiItem.FromAbi<abi, name> extends infer abiItem extends AbiItem.AbiItem & {
38
+ inputs: readonly abitype.AbiParameter[]
39
+ }
40
+ ? IsUnion<abiItem> extends true // narrow overloads using `args` by converting to tuple and filtering out overloads that don't match
41
+ ? UnionToTuple<abiItem> extends infer abiItems extends
42
+ readonly (AbiItem.AbiItem & {
43
+ inputs: readonly abitype.AbiParameter[]
44
+ })[]
45
+ ? IsNever<TupleToUnion<abiItems, abi, name, args>> extends true
46
+ ? Compute<
47
+ abiItems[0] & {
48
+ readonly overloads: UnionToTuple<
49
+ Exclude<abiItems[number], abiItems[0]>
50
+ >
51
+ }
52
+ >
53
+ : TupleToUnion<abiItems, abi, name, args> // convert back to union (removes `never` tuple entries: `['foo', never, 'bar'][number]` => `'foo' | 'bar'`)
54
+ : never
55
+ : abiItem
56
+ : never
57
+
58
+ /** @internal */
59
+ export type TupleToUnion<
60
+ abiItems extends readonly {
61
+ inputs: readonly abitype.AbiParameter[]
62
+ }[],
63
+ abi extends Abi.Abi,
64
+ name extends AbiItem.Name<abi>,
65
+ args extends ExtractArgs<abi, name>,
66
+ > = {
67
+ [k in keyof abiItems]: (
68
+ readonly [] extends args
69
+ ? readonly [] // fallback to `readonly []` if `args` has no value (e.g. `args` property not provided)
70
+ : args
71
+ ) extends abitype.AbiParametersToPrimitiveTypes<
72
+ abiItems[k]['inputs'],
73
+ 'inputs'
74
+ >
75
+ ? abiItems[k]
76
+ : never
77
+ }[number]
78
+
79
+ /** @internal */
80
+ export type ErrorSignature<
81
+ name extends string = string,
82
+ parameters extends string = string,
83
+ > = `error ${name}(${parameters})`
84
+
85
+ /** @internal */
86
+ export type IsErrorSignature<signature extends string> =
87
+ signature extends ErrorSignature<infer name> ? IsName<name> : false
88
+
89
+ /** @internal */
90
+ export type EventSignature<
91
+ name extends string = string,
92
+ parameters extends string = string,
93
+ > = `event ${name}(${parameters})`
94
+
95
+ /** @internal */
96
+ export type IsEventSignature<signature extends string> =
97
+ signature extends EventSignature<infer name> ? IsName<name> : false
98
+
99
+ /** @internal */
100
+ export type FunctionSignature<
101
+ name extends string = string,
102
+ tail extends string = string,
103
+ > = `function ${name}(${tail}`
104
+ export type IsFunctionSignature<signature> =
105
+ signature extends FunctionSignature<infer name>
106
+ ? IsName<name> extends true
107
+ ? signature extends ValidFunctionSignatures
108
+ ? true
109
+ : // Check that `Parameters` is not absorbing other types (e.g. `returns`)
110
+ signature extends `function ${string}(${infer parameters})`
111
+ ? parameters extends InvalidFunctionParameters
112
+ ? false
113
+ : true
114
+ : false
115
+ : false
116
+ : false
117
+ /** @internal */
118
+ export type Scope = 'public' | 'external' // `internal` or `private` functions wouldn't make it to ABI so can ignore
119
+
120
+ /** @internal */
121
+ export type Returns = `returns (${string})` | `returns(${string})`
122
+
123
+ // Almost all valid function signatures, except `function ${string}(${infer parameters})` since `parameters` can absorb returns
124
+ /** @internal */
125
+ export type ValidFunctionSignatures =
126
+ | `function ${string}()`
127
+ // basic
128
+ | `function ${string}() ${Returns}`
129
+ | `function ${string}() ${abitype.AbiStateMutability}`
130
+ | `function ${string}() ${Scope}`
131
+ // combinations
132
+ | `function ${string}() ${abitype.AbiStateMutability} ${Returns}`
133
+ | `function ${string}() ${Scope} ${Returns}`
134
+ | `function ${string}() ${Scope} ${abitype.AbiStateMutability}`
135
+ | `function ${string}() ${Scope} ${abitype.AbiStateMutability} ${Returns}`
136
+ // Parameters
137
+ | `function ${string}(${string}) ${Returns}`
138
+ | `function ${string}(${string}) ${abitype.AbiStateMutability}`
139
+ | `function ${string}(${string}) ${Scope}`
140
+ | `function ${string}(${string}) ${abitype.AbiStateMutability} ${Returns}`
141
+ | `function ${string}(${string}) ${Scope} ${Returns}`
142
+ | `function ${string}(${string}) ${Scope} ${abitype.AbiStateMutability}`
143
+ | `function ${string}(${string}) ${Scope} ${abitype.AbiStateMutability} ${Returns}`
144
+
145
+ /** @internal */
146
+ export type StructSignature<
147
+ name extends string = string,
148
+ properties extends string = string,
149
+ > = `struct ${name} {${properties}}`
150
+
151
+ /** @internal */
152
+ export type IsStructSignature<signature extends string> =
153
+ signature extends StructSignature<infer name> ? IsName<name> : false
154
+
155
+ /** @internal */
156
+ export type ConstructorSignature<tail extends string = string> =
157
+ `constructor(${tail}`
158
+
159
+ /** @internal */
160
+ export type IsConstructorSignature<signature> =
161
+ signature extends ConstructorSignature
162
+ ? signature extends ValidConstructorSignatures
163
+ ? true
164
+ : false
165
+ : false
166
+
167
+ /** @internal */
168
+ export type ValidConstructorSignatures =
169
+ | `constructor(${string})`
170
+ | `constructor(${string}) payable`
171
+
172
+ /** @internal */
173
+ export type FallbackSignature<abiStateMutability extends '' | ' payable' = ''> =
174
+ `fallback() external${abiStateMutability}`
175
+
176
+ /** @internal */
177
+ export type ReceiveSignature = 'receive() external payable'
178
+
179
+ // TODO: Maybe use this for signature validation one day
180
+ // https://twitter.com/devanshj__/status/1610423724708343808
181
+ /** @internal */
182
+ export type IsSignature<type extends string> =
183
+ | (IsErrorSignature<type> extends true ? true : never)
184
+ | (IsEventSignature<type> extends true ? true : never)
185
+ | (IsFunctionSignature<type> extends true ? true : never)
186
+ | (IsStructSignature<type> extends true ? true : never)
187
+ | (IsConstructorSignature<type> extends true ? true : never)
188
+ | (type extends FallbackSignature ? true : never)
189
+ | (type extends ReceiveSignature ? true : never) extends infer condition
190
+ ? [condition] extends [never]
191
+ ? false
192
+ : true
193
+ : false
194
+
195
+ /** @internal */
196
+ export type Signature<
197
+ string1 extends string,
198
+ string2 extends string | unknown = unknown,
199
+ > = IsSignature<string1> extends true
200
+ ? string1
201
+ : string extends string1 // if exactly `string` (not narrowed), then pass through as valid
202
+ ? string1
203
+ : TypeErrorMessage<`Signature "${string1}" is invalid${string2 extends string
204
+ ? ` at position ${string2}`
205
+ : ''}.`>
206
+
207
+ /** @internal */
208
+ export type Signatures<signatures extends readonly string[]> = {
209
+ [key in keyof signatures]: Signature<signatures[key], key>
210
+ }
211
+
212
+ /** @internal */
213
+ export type IsName<name extends string> = name extends ''
214
+ ? false
215
+ : ValidateName<name> extends name
216
+ ? true
217
+ : false
218
+
219
+ /** @internal */
220
+ export type ValidateName<
221
+ name extends string,
222
+ checkCharacters extends boolean = false,
223
+ > = name extends `${string}${' '}${string}`
224
+ ? TypeErrorMessage<`Identifier "${name}" cannot contain whitespace.`>
225
+ : IsSolidityKeyword<name> extends true
226
+ ? TypeErrorMessage<`"${name}" is a protected Solidity keyword.`>
227
+ : name extends `${number}`
228
+ ? TypeErrorMessage<`Identifier "${name}" cannot be a number string.`>
229
+ : name extends `${number}${string}`
230
+ ? TypeErrorMessage<`Identifier "${name}" cannot start with a number.`>
231
+ : checkCharacters extends true
232
+ ? IsValidCharacter<name> extends true
233
+ ? name
234
+ : TypeErrorMessage<`"${name}" contains invalid character.`>
235
+ : name
236
+
237
+ /** @internal */
238
+ export type IsSolidityKeyword<type extends string> =
239
+ type extends SolidityKeywords ? true : false
240
+
241
+ /** @internal */
242
+ export type SolidityKeywords =
243
+ | 'after'
244
+ | 'alias'
245
+ | 'anonymous'
246
+ | 'apply'
247
+ | 'auto'
248
+ | 'byte'
249
+ | 'calldata'
250
+ | 'case'
251
+ | 'catch'
252
+ | 'constant'
253
+ | 'copyof'
254
+ | 'default'
255
+ | 'defined'
256
+ | 'error'
257
+ | 'event'
258
+ | 'external'
259
+ | 'false'
260
+ | 'final'
261
+ | 'function'
262
+ | 'immutable'
263
+ | 'implements'
264
+ | 'in'
265
+ | 'indexed'
266
+ | 'inline'
267
+ | 'internal'
268
+ | 'let'
269
+ | 'mapping'
270
+ | 'match'
271
+ | 'memory'
272
+ | 'mutable'
273
+ | 'null'
274
+ | 'of'
275
+ | 'override'
276
+ | 'partial'
277
+ | 'private'
278
+ | 'promise'
279
+ | 'public'
280
+ | 'pure'
281
+ | 'reference'
282
+ | 'relocatable'
283
+ | 'return'
284
+ | 'returns'
285
+ | 'sizeof'
286
+ | 'static'
287
+ | 'storage'
288
+ | 'struct'
289
+ | 'super'
290
+ | 'supports'
291
+ | 'switch'
292
+ | 'this'
293
+ | 'true'
294
+ | 'try'
295
+ | 'typedef'
296
+ | 'typeof'
297
+ | 'var'
298
+ | 'view'
299
+ | 'virtual'
300
+ | `address${`[${string}]` | ''}`
301
+ | `bool${`[${string}]` | ''}`
302
+ | `string${`[${string}]` | ''}`
303
+ | `tuple${`[${string}]` | ''}`
304
+ | `bytes${number | ''}${`[${string}]` | ''}`
305
+ | `${'u' | ''}int${number | ''}${`[${string}]` | ''}`
306
+
307
+ /** @internal */
308
+ export type IsValidCharacter<character extends string> =
309
+ character extends `${ValidCharacters}${infer tail}`
310
+ ? tail extends ''
311
+ ? true
312
+ : IsValidCharacter<tail>
313
+ : false
314
+
315
+ // biome-ignore format: no formatting
316
+ /** @internal */
317
+ export type ValidCharacters =
318
+ // uppercase letters
319
+ | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z'
320
+ // lowercase letters
321
+ | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z'
322
+ // numbers
323
+ | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
324
+ // special characters
325
+ | '_' | '$'
326
+
327
+ // Template string inference can absorb `returns`:
328
+ // type Result = `function foo(string) return s (uint256)` extends `function ${string}(${infer Parameters})` ? Parameters : never
329
+ // // ^? type Result = "string ) return s (uint256"
330
+ // So we need to validate against `returns` keyword with all combinations of whitespace
331
+ /** @internal */
332
+ export type InvalidFunctionParameters =
333
+ | `${string}${MangledReturns} (${string}`
334
+ | `${string}) ${MangledReturns}${string}`
335
+ | `${string})${string}${MangledReturns}${string}(${string}`
336
+
337
+ // r_e_t_u_r_n_s
338
+ /** @internal */
339
+ export type MangledReturns =
340
+ // Single
341
+ | `r${string}eturns`
342
+ | `re${string}turns`
343
+ | `ret${string}urns`
344
+ | `retu${string}rns`
345
+ | `retur${string}ns`
346
+ | `return${string}s`
347
+ // Double
348
+ // `r_e*`
349
+ | `r${string}e${string}turns`
350
+ | `r${string}et${string}urns`
351
+ | `r${string}etu${string}rns`
352
+ | `r${string}etur${string}ns`
353
+ | `r${string}eturn${string}s`
354
+ // `re_t*`
355
+ | `re${string}t${string}urns`
356
+ | `re${string}tu${string}rns`
357
+ | `re${string}tur${string}ns`
358
+ | `re${string}turn${string}s`
359
+ // `ret_u*`
360
+ | `ret${string}u${string}rns`
361
+ | `ret${string}ur${string}ns`
362
+ | `ret${string}urn${string}s`
363
+ // `retu_r*`
364
+ | `retu${string}r${string}ns`
365
+ | `retu${string}rn${string}s`
366
+ // `retur_n*`
367
+ | `retur${string}n${string}s`
368
+ // Triple
369
+ // `r_e_t*`
370
+ | `r${string}e${string}t${string}urns`
371
+ | `r${string}e${string}tu${string}rns`
372
+ | `r${string}e${string}tur${string}ns`
373
+ | `r${string}e${string}turn${string}s`
374
+ // `re_t_u*`
375
+ | `re${string}t${string}u${string}rns`
376
+ | `re${string}t${string}ur${string}ns`
377
+ | `re${string}t${string}urn${string}s`
378
+ // `ret_u_r*`
379
+ | `ret${string}u${string}r${string}ns`
380
+ | `ret${string}u${string}rn${string}s`
381
+ // `retu_r_n*`
382
+ | `retu${string}r${string}n${string}s`
383
+ // Quadruple
384
+ // `r_e_t_u*`
385
+ | `r${string}e${string}t${string}u${string}rns`
386
+ | `r${string}e${string}t${string}ur${string}ns`
387
+ | `r${string}e${string}t${string}urn${string}s`
388
+ // `re_t_u_r*`
389
+ | `re${string}t${string}u${string}r${string}ns`
390
+ | `re${string}t${string}u${string}rn${string}s`
391
+ // `ret_u_r_n*`
392
+ | `ret${string}u${string}r${string}n${string}s`
393
+ // Quintuple
394
+ // `r_e_t_u_r*`
395
+ | `r${string}e${string}t${string}u${string}r${string}ns`
396
+ | `r${string}e${string}t${string}u${string}rn${string}s`
397
+ // `re_t_u_r_n*`
398
+ | `re${string}t${string}u${string}r${string}n${string}s`
399
+ // Sextuple
400
+ // `r_e_t_u_r_n_s`
401
+ | `r${string}e${string}t${string}u${string}r${string}n${string}s`
402
+
403
+ /** @internal */
404
+ export type Widen<type> =
405
+ | ([unknown] extends [type] ? unknown : never)
406
+ | (type extends Function ? type : never)
407
+ | (type extends abitype.ResolvedRegister['bigIntType'] ? bigint : never)
408
+ | (type extends boolean ? boolean : never)
409
+ | (type extends abitype.ResolvedRegister['intType'] ? number : never)
410
+ | (type extends string
411
+ ? type extends abitype.ResolvedRegister['addressType']
412
+ ? abitype.ResolvedRegister['addressType']
413
+ : type extends abitype.ResolvedRegister['bytesType']['inputs']
414
+ ? abitype.ResolvedRegister['bytesType']
415
+ : string
416
+ : never)
417
+ | (type extends readonly [] ? readonly [] : never)
418
+ | (type extends Record<string, unknown>
419
+ ? { [K in keyof type]: Widen<type[K]> }
420
+ : never)
421
+ | (type extends { length: number }
422
+ ? {
423
+ [K in keyof type]: Widen<type[K]>
424
+ } extends infer Val extends readonly unknown[]
425
+ ? readonly [...Val]
426
+ : never
427
+ : never)
428
+
429
+ /** @internal */
430
+ export function normalizeSignature(signature: string): string {
431
+ let active = true
432
+ let current = ''
433
+ let level = 0
434
+ let result = ''
435
+ let valid = false
436
+
437
+ for (let i = 0; i < signature.length; i++) {
438
+ const char = signature[i]!
439
+
440
+ // If the character is a separator, we want to reactivate.
441
+ if (['(', ')', ','].includes(char)) active = true
442
+
443
+ // If the character is a "level" token, we want to increment/decrement.
444
+ if (char === '(') level++
445
+ if (char === ')') level--
446
+
447
+ // If we aren't active, we don't want to mutate the result.
448
+ if (!active) continue
449
+
450
+ // If level === 0, we are at the definition level.
451
+ if (level === 0) {
452
+ if (char === ' ' && ['event', 'function', 'error', ''].includes(result))
453
+ result = ''
454
+ else {
455
+ result += char
456
+
457
+ // If we are at the end of the definition, we must be finished.
458
+ if (char === ')') {
459
+ valid = true
460
+ break
461
+ }
462
+ }
463
+
464
+ continue
465
+ }
466
+
467
+ // Ignore spaces
468
+ if (char === ' ') {
469
+ // If the previous character is a separator, and the current section isn't empty, we want to deactivate.
470
+ if (signature[i - 1] !== ',' && current !== ',' && current !== ',(') {
471
+ current = ''
472
+ active = false
473
+ }
474
+ continue
475
+ }
476
+
477
+ result += char
478
+ current += char
479
+ }
480
+
481
+ if (!valid) throw new Errors.BaseError('Unable to normalize signature.')
482
+
483
+ return result
484
+ }
485
+
486
+ /** @internal */
487
+ export declare namespace normalizeSignature {
488
+ export type ErrorType = Errors.BaseError | Errors.GlobalErrorType
489
+ }
490
+
491
+ /** @internal */
492
+ export function isArgOfType(
493
+ arg: unknown,
494
+ abiParameter: AbiParameters.Parameter,
495
+ ): boolean {
496
+ const argType = typeof arg
497
+ const abiParameterType = abiParameter.type
498
+ switch (abiParameterType) {
499
+ case 'address':
500
+ return Address.validate(arg as Address.Address, { strict: false })
501
+ case 'bool':
502
+ return argType === 'boolean'
503
+ case 'function':
504
+ return argType === 'string'
505
+ case 'string':
506
+ return argType === 'string'
507
+ default: {
508
+ if (abiParameterType === 'tuple' && 'components' in abiParameter)
509
+ return Object.values(abiParameter.components).every(
510
+ (component, index) => {
511
+ return isArgOfType(
512
+ Object.values(arg as unknown[] | Record<string, unknown>)[index],
513
+ component as AbiParameters.Parameter,
514
+ )
515
+ },
516
+ )
517
+
518
+ // `(u)int<M>`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`
519
+ // https://regexr.com/6v8hp
520
+ if (
521
+ /^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(
522
+ abiParameterType,
523
+ )
524
+ )
525
+ return argType === 'number' || argType === 'bigint'
526
+
527
+ // `bytes<M>`: binary type of `M` bytes, `0 < M <= 32`
528
+ // https://regexr.com/6va55
529
+ if (/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(abiParameterType))
530
+ return argType === 'string' || arg instanceof Uint8Array
531
+
532
+ // fixed-length (`<type>[M]`) and dynamic (`<type>[]`) arrays
533
+ // https://regexr.com/6va6i
534
+ if (/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(abiParameterType)) {
535
+ return (
536
+ Array.isArray(arg) &&
537
+ arg.every((x: unknown) =>
538
+ isArgOfType(x, {
539
+ ...abiParameter,
540
+ // Pop off `[]` or `[M]` from end of type
541
+ type: abiParameterType.replace(/(\[[0-9]{0,}\])$/, ''),
542
+ } as AbiParameters.Parameter),
543
+ )
544
+ )
545
+ }
546
+
547
+ return false
548
+ }
549
+ }
550
+ }
551
+
552
+ /** @internal */
553
+ export function getAmbiguousTypes(
554
+ sourceParameters: readonly AbiParameters.Parameter[],
555
+ targetParameters: readonly AbiParameters.Parameter[],
556
+ args: ExtractArgs,
557
+ ): AbiParameters.Parameter['type'][] | undefined {
558
+ for (const parameterIndex in sourceParameters) {
559
+ const sourceParameter = sourceParameters[parameterIndex]!
560
+ const targetParameter = targetParameters[parameterIndex]!
561
+
562
+ if (
563
+ sourceParameter.type === 'tuple' &&
564
+ targetParameter.type === 'tuple' &&
565
+ 'components' in sourceParameter &&
566
+ 'components' in targetParameter
567
+ )
568
+ return getAmbiguousTypes(
569
+ sourceParameter.components,
570
+ targetParameter.components,
571
+ (args as any)[parameterIndex],
572
+ )
573
+
574
+ const types = [sourceParameter.type, targetParameter.type]
575
+
576
+ const ambiguous = (() => {
577
+ if (types.includes('address') && types.includes('bytes20')) return true
578
+ if (types.includes('address') && types.includes('string'))
579
+ return Address.validate(args[parameterIndex] as Address.Address, {
580
+ strict: false,
581
+ })
582
+ if (types.includes('address') && types.includes('bytes'))
583
+ return Address.validate(args[parameterIndex] as Address.Address, {
584
+ strict: false,
585
+ })
586
+ return false
587
+ })()
588
+
589
+ if (ambiguous) return types
590
+ }
591
+
592
+ return
593
+ }