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,741 @@
1
+ import type {
2
+ AbiParameter,
3
+ AbiParameterKind,
4
+ AbiParameterToPrimitiveType,
5
+ AbiParametersToPrimitiveTypes,
6
+ } from 'abitype'
7
+ import * as AbiParameters from '../AbiParameters.js'
8
+ import * as Address from '../Address.js'
9
+ import * as Bytes from '../Bytes.js'
10
+ import * as Errors from '../Errors.js'
11
+ import * as Hex from '../Hex.js'
12
+ import type * as Cursor from './cursor.js'
13
+ import type { Compute, IsNarrowable, UnionToIntersection } from './types.js'
14
+
15
+ /** @internal */
16
+ export type ParameterToPrimitiveType<
17
+ abiParameter extends AbiParameter | { name: string; type: unknown },
18
+ abiParameterKind extends AbiParameterKind = AbiParameterKind,
19
+ > = AbiParameterToPrimitiveType<abiParameter, abiParameterKind>
20
+
21
+ /** @internal */
22
+ export type PreparedParameter = { dynamic: boolean; encoded: Hex.Hex }
23
+
24
+ /** @internal */
25
+ export type ToObject<
26
+ parameters extends readonly AbiParameter[],
27
+ kind extends AbiParameterKind = AbiParameterKind,
28
+ > = IsNarrowable<parameters, AbiParameters.AbiParameters> extends true
29
+ ? Compute<
30
+ UnionToIntersection<
31
+ {
32
+ [index in keyof parameters]: parameters[index] extends {
33
+ name: infer name extends string
34
+ }
35
+ ? {
36
+ [key in name]: AbiParameterToPrimitiveType<
37
+ parameters[index],
38
+ kind
39
+ >
40
+ }
41
+ : {
42
+ [key in index]: AbiParameterToPrimitiveType<
43
+ parameters[index],
44
+ kind
45
+ >
46
+ }
47
+ }[number]
48
+ >
49
+ >
50
+ : unknown
51
+
52
+ /** @internal */
53
+ export type ToPrimitiveTypes<
54
+ abiParameters extends readonly AbiParameter[],
55
+ abiParameterKind extends AbiParameterKind = AbiParameterKind,
56
+ > = AbiParametersToPrimitiveTypes<abiParameters, abiParameterKind>
57
+
58
+ /** @internal */
59
+ export type Tuple = ParameterToPrimitiveType<TupleAbiParameter>
60
+
61
+ /** @internal */
62
+ export function decodeParameter(
63
+ cursor: Cursor.Cursor,
64
+ param: AbiParameters.Parameter,
65
+ { staticPosition }: { staticPosition: number },
66
+ ) {
67
+ const arrayComponents = getArrayComponents(param.type)
68
+ if (arrayComponents) {
69
+ const [length, type] = arrayComponents
70
+ return decodeArray(cursor, { ...param, type }, { length, staticPosition })
71
+ }
72
+ if (param.type === 'tuple')
73
+ return decodeTuple(cursor, param as TupleAbiParameter, { staticPosition })
74
+
75
+ if (param.type === 'address') return decodeAddress(cursor)
76
+ if (param.type === 'bool') return decodeBool(cursor)
77
+ if (param.type.startsWith('bytes'))
78
+ return decodeBytes(cursor, param, { staticPosition })
79
+ if (param.type.startsWith('uint') || param.type.startsWith('int'))
80
+ return decodeNumber(cursor, param)
81
+ if (param.type === 'string') return decodeString(cursor, { staticPosition })
82
+ throw new AbiParameters.InvalidTypeError(param.type)
83
+ }
84
+
85
+ export declare namespace decodeParameter {
86
+ type ErrorType =
87
+ | decodeArray.ErrorType
88
+ | decodeTuple.ErrorType
89
+ | decodeAddress.ErrorType
90
+ | decodeBool.ErrorType
91
+ | decodeBytes.ErrorType
92
+ | decodeNumber.ErrorType
93
+ | decodeString.ErrorType
94
+ | AbiParameters.InvalidTypeError
95
+ | Errors.GlobalErrorType
96
+ }
97
+
98
+ const sizeOfLength = 32
99
+ const sizeOfOffset = 32
100
+
101
+ /** @internal */
102
+ export function decodeAddress(cursor: Cursor.Cursor) {
103
+ const value = cursor.readBytes(32)
104
+ return [Hex.fromBytes(Bytes.slice(value, -20)), 32]
105
+ }
106
+
107
+ export declare namespace decodeAddress {
108
+ type ErrorType =
109
+ | Hex.fromBytes.ErrorType
110
+ | Bytes.slice.ErrorType
111
+ | Errors.GlobalErrorType
112
+ }
113
+
114
+ /** @internal */
115
+ export function decodeArray(
116
+ cursor: Cursor.Cursor,
117
+ param: AbiParameters.Parameter,
118
+ { length, staticPosition }: { length: number | null; staticPosition: number },
119
+ ) {
120
+ // If the length of the array is not known in advance (dynamic array),
121
+ // this means we will need to wonder off to the pointer and decode.
122
+ if (!length) {
123
+ // Dealing with a dynamic type, so get the offset of the array data.
124
+ const offset = Bytes.toNumber(cursor.readBytes(sizeOfOffset))
125
+
126
+ // Start is the static position of current slot + offset.
127
+ const start = staticPosition + offset
128
+ const startOfData = start + sizeOfLength
129
+
130
+ // Get the length of the array from the offset.
131
+ cursor.setPosition(start)
132
+ const length = Bytes.toNumber(cursor.readBytes(sizeOfLength))
133
+
134
+ // Check if the array has any dynamic children.
135
+ const dynamicChild = hasDynamicChild(param)
136
+
137
+ let consumed = 0
138
+ const value: unknown[] = []
139
+ for (let i = 0; i < length; ++i) {
140
+ // If any of the children is dynamic, then all elements will be offset pointer, thus size of one slot (32 bytes).
141
+ // Otherwise, elements will be the size of their encoding (consumed bytes).
142
+ cursor.setPosition(startOfData + (dynamicChild ? i * 32 : consumed))
143
+ const [data, consumed_] = decodeParameter(cursor, param, {
144
+ staticPosition: startOfData,
145
+ })
146
+ consumed += consumed_
147
+ value.push(data)
148
+ }
149
+
150
+ // As we have gone wondering, restore to the original position + next slot.
151
+ cursor.setPosition(staticPosition + 32)
152
+ return [value, 32]
153
+ }
154
+
155
+ // If the length of the array is known in advance,
156
+ // and the length of an element deeply nested in the array is not known,
157
+ // we need to decode the offset of the array data.
158
+ if (hasDynamicChild(param)) {
159
+ // Dealing with dynamic types, so get the offset of the array data.
160
+ const offset = Bytes.toNumber(cursor.readBytes(sizeOfOffset))
161
+
162
+ // Start is the static position of current slot + offset.
163
+ const start = staticPosition + offset
164
+
165
+ const value: unknown[] = []
166
+ for (let i = 0; i < length; ++i) {
167
+ // Move cursor along to the next slot (next offset pointer).
168
+ cursor.setPosition(start + i * 32)
169
+ const [data] = decodeParameter(cursor, param, {
170
+ staticPosition: start,
171
+ })
172
+ value.push(data)
173
+ }
174
+
175
+ // As we have gone wondering, restore to the original position + next slot.
176
+ cursor.setPosition(staticPosition + 32)
177
+ return [value, 32]
178
+ }
179
+
180
+ // If the length of the array is known in advance and the array is deeply static,
181
+ // then we can just decode each element in sequence.
182
+ let consumed = 0
183
+ const value: unknown[] = []
184
+ for (let i = 0; i < length; ++i) {
185
+ const [data, consumed_] = decodeParameter(cursor, param, {
186
+ staticPosition: staticPosition + consumed,
187
+ })
188
+ consumed += consumed_
189
+ value.push(data)
190
+ }
191
+ return [value, consumed]
192
+ }
193
+
194
+ export declare namespace decodeArray {
195
+ type ErrorType = Bytes.toNumber.ErrorType | Errors.GlobalErrorType
196
+ }
197
+
198
+ /** @internal */
199
+ export function decodeBool(cursor: Cursor.Cursor) {
200
+ return [Bytes.toBoolean(cursor.readBytes(32), { size: 32 }), 32]
201
+ }
202
+
203
+ export declare namespace decodeBool {
204
+ type ErrorType = Bytes.toBoolean.ErrorType | Errors.GlobalErrorType
205
+ }
206
+
207
+ /** @internal */
208
+ export function decodeBytes(
209
+ cursor: Cursor.Cursor,
210
+ param: AbiParameters.Parameter,
211
+ { staticPosition }: { staticPosition: number },
212
+ ) {
213
+ const [_, size] = param.type.split('bytes')
214
+ if (!size) {
215
+ // Dealing with dynamic types, so get the offset of the bytes data.
216
+ const offset = Bytes.toNumber(cursor.readBytes(32))
217
+
218
+ // Set position of the cursor to start of bytes data.
219
+ cursor.setPosition(staticPosition + offset)
220
+
221
+ const length = Bytes.toNumber(cursor.readBytes(32))
222
+
223
+ // If there is no length, we have zero data.
224
+ if (length === 0) {
225
+ // As we have gone wondering, restore to the original position + next slot.
226
+ cursor.setPosition(staticPosition + 32)
227
+ return ['0x', 32]
228
+ }
229
+
230
+ const data = cursor.readBytes(length)
231
+
232
+ // As we have gone wondering, restore to the original position + next slot.
233
+ cursor.setPosition(staticPosition + 32)
234
+ return [Hex.fromBytes(data), 32]
235
+ }
236
+
237
+ const value = Hex.fromBytes(cursor.readBytes(Number.parseInt(size), 32))
238
+ return [value, 32]
239
+ }
240
+
241
+ export declare namespace decodeBytes {
242
+ type ErrorType =
243
+ | Hex.fromBytes.ErrorType
244
+ | Bytes.toNumber.ErrorType
245
+ | Errors.GlobalErrorType
246
+ }
247
+
248
+ /** @internal */
249
+ export function decodeNumber(
250
+ cursor: Cursor.Cursor,
251
+ param: AbiParameters.Parameter,
252
+ ) {
253
+ const signed = param.type.startsWith('int')
254
+ const size = Number.parseInt(param.type.split('int')[1] || '256')
255
+ const value = cursor.readBytes(32)
256
+ return [
257
+ size > 48
258
+ ? Bytes.toBigInt(value, { signed })
259
+ : Bytes.toNumber(value, { signed }),
260
+ 32,
261
+ ]
262
+ }
263
+
264
+ export declare namespace decodeNumber {
265
+ type ErrorType =
266
+ | Bytes.toNumber.ErrorType
267
+ | Bytes.toBigInt.ErrorType
268
+ | Errors.GlobalErrorType
269
+ }
270
+
271
+ /** @internal */
272
+ export type TupleAbiParameter = AbiParameters.Parameter & {
273
+ components: readonly AbiParameters.Parameter[]
274
+ }
275
+
276
+ /** @internal */
277
+ export function decodeTuple(
278
+ cursor: Cursor.Cursor,
279
+ param: TupleAbiParameter,
280
+ { staticPosition }: { staticPosition: number },
281
+ ) {
282
+ // Tuples can have unnamed components (i.e. they are arrays), so we must
283
+ // determine whether the tuple is named or unnamed. In the case of a named
284
+ // tuple, the value will be an object where each property is the name of the
285
+ // component. In the case of an unnamed tuple, the value will be an array.
286
+ const hasUnnamedChild =
287
+ param.components.length === 0 || param.components.some(({ name }) => !name)
288
+
289
+ // Initialize the value to an object or an array, depending on whether the
290
+ // tuple is named or unnamed.
291
+ const value: any = hasUnnamedChild ? [] : {}
292
+ let consumed = 0
293
+
294
+ // If the tuple has a dynamic child, we must first decode the offset to the
295
+ // tuple data.
296
+ if (hasDynamicChild(param)) {
297
+ // Dealing with dynamic types, so get the offset of the tuple data.
298
+ const offset = Bytes.toNumber(cursor.readBytes(sizeOfOffset))
299
+
300
+ // Start is the static position of referencing slot + offset.
301
+ const start = staticPosition + offset
302
+
303
+ for (let i = 0; i < param.components.length; ++i) {
304
+ const component = param.components[i]!
305
+ cursor.setPosition(start + consumed)
306
+ const [data, consumed_] = decodeParameter(cursor, component, {
307
+ staticPosition: start,
308
+ })
309
+ consumed += consumed_
310
+ value[hasUnnamedChild ? i : component?.name!] = data
311
+ }
312
+
313
+ // As we have gone wondering, restore to the original position + next slot.
314
+ cursor.setPosition(staticPosition + 32)
315
+ return [value, 32]
316
+ }
317
+
318
+ // If the tuple has static children, we can just decode each component
319
+ // in sequence.
320
+ for (let i = 0; i < param.components.length; ++i) {
321
+ const component = param.components[i]!
322
+ const [data, consumed_] = decodeParameter(cursor, component, {
323
+ staticPosition,
324
+ })
325
+ value[hasUnnamedChild ? i : component?.name!] = data
326
+ consumed += consumed_
327
+ }
328
+ return [value, consumed]
329
+ }
330
+
331
+ export declare namespace decodeTuple {
332
+ type ErrorType = Bytes.toNumber.ErrorType | Errors.GlobalErrorType
333
+ }
334
+
335
+ /** @internal */
336
+ export function decodeString(
337
+ cursor: Cursor.Cursor,
338
+ { staticPosition }: { staticPosition: number },
339
+ ) {
340
+ // Get offset to start of string data.
341
+ const offset = Bytes.toNumber(cursor.readBytes(32))
342
+
343
+ // Start is the static position of current slot + offset.
344
+ const start = staticPosition + offset
345
+ cursor.setPosition(start)
346
+
347
+ const length = Bytes.toNumber(cursor.readBytes(32))
348
+
349
+ // If there is no length, we have zero data (empty string).
350
+ if (length === 0) {
351
+ cursor.setPosition(staticPosition + 32)
352
+ return ['', 32]
353
+ }
354
+
355
+ const data = cursor.readBytes(length, 32)
356
+ const value = Bytes.toString(Bytes.trimLeft(data))
357
+
358
+ // As we have gone wondering, restore to the original position + next slot.
359
+ cursor.setPosition(staticPosition + 32)
360
+
361
+ return [value, 32]
362
+ }
363
+
364
+ export declare namespace decodeString {
365
+ type ErrorType =
366
+ | Bytes.toNumber.ErrorType
367
+ | Bytes.toString.ErrorType
368
+ | Bytes.trimLeft.ErrorType
369
+ | Errors.GlobalErrorType
370
+ }
371
+
372
+ /** @internal */
373
+ export function prepareParameters<
374
+ const parameters extends AbiParameters.AbiParameters,
375
+ >({
376
+ parameters,
377
+ values,
378
+ }: {
379
+ parameters: parameters
380
+ values: parameters extends AbiParameters.AbiParameters
381
+ ? ToPrimitiveTypes<parameters>
382
+ : never
383
+ }) {
384
+ const preparedParameters: PreparedParameter[] = []
385
+ for (let i = 0; i < parameters.length; i++) {
386
+ preparedParameters.push(
387
+ prepareParameter({ parameter: parameters[i]!, value: values[i] }),
388
+ )
389
+ }
390
+ return preparedParameters
391
+ }
392
+
393
+ /** @internal */
394
+ export declare namespace prepareParameters {
395
+ type ErrorType = prepareParameter.ErrorType | Errors.GlobalErrorType
396
+ }
397
+
398
+ /** @internal */
399
+ export function prepareParameter<
400
+ const parameter extends AbiParameters.Parameter,
401
+ >({
402
+ parameter: parameter_,
403
+ value,
404
+ }: {
405
+ parameter: parameter
406
+ value: parameter extends AbiParameters.Parameter
407
+ ? ParameterToPrimitiveType<parameter>
408
+ : never
409
+ }): PreparedParameter {
410
+ const parameter = parameter_ as AbiParameters.Parameter
411
+
412
+ const arrayComponents = getArrayComponents(parameter.type)
413
+ if (arrayComponents) {
414
+ const [length, type] = arrayComponents
415
+ return encodeArray(value, {
416
+ length,
417
+ parameter: {
418
+ ...parameter,
419
+ type,
420
+ },
421
+ })
422
+ }
423
+ if (parameter.type === 'tuple') {
424
+ return encodeTuple(value as unknown as Tuple, {
425
+ parameter: parameter as TupleAbiParameter,
426
+ })
427
+ }
428
+ if (parameter.type === 'address') {
429
+ return encodeAddress(value as unknown as Hex.Hex)
430
+ }
431
+ if (parameter.type === 'bool') {
432
+ return encodeBoolean(value as unknown as boolean)
433
+ }
434
+ if (parameter.type.startsWith('uint') || parameter.type.startsWith('int')) {
435
+ const signed = parameter.type.startsWith('int')
436
+ return encodeNumber(value as unknown as number, { signed })
437
+ }
438
+ if (parameter.type.startsWith('bytes')) {
439
+ return encodeBytes(value as unknown as Hex.Hex, { type: parameter.type })
440
+ }
441
+ if (parameter.type === 'string') {
442
+ return encodeString(value as unknown as string)
443
+ }
444
+ throw new AbiParameters.InvalidTypeError(parameter.type)
445
+ }
446
+
447
+ /** @internal */
448
+ export declare namespace prepareParameter {
449
+ type ErrorType =
450
+ | encodeArray.ErrorType
451
+ | encodeTuple.ErrorType
452
+ | encodeAddress.ErrorType
453
+ | encodeBoolean.ErrorType
454
+ | encodeBytes.ErrorType
455
+ | encodeString.ErrorType
456
+ | AbiParameters.InvalidTypeError
457
+ | Errors.GlobalErrorType
458
+ }
459
+
460
+ /** @internal */
461
+ export function encode(preparedParameters: PreparedParameter[]): Hex.Hex {
462
+ // 1. Compute the size of the static part of the parameters.
463
+ let staticSize = 0
464
+ for (let i = 0; i < preparedParameters.length; i++) {
465
+ const { dynamic, encoded } = preparedParameters[i]!
466
+ if (dynamic) staticSize += 32
467
+ else staticSize += Hex.size(encoded)
468
+ }
469
+
470
+ // 2. Split the parameters into static and dynamic parts.
471
+ const staticParameters: Hex.Hex[] = []
472
+ const dynamicParameters: Hex.Hex[] = []
473
+ let dynamicSize = 0
474
+ for (let i = 0; i < preparedParameters.length; i++) {
475
+ const { dynamic, encoded } = preparedParameters[i]!
476
+ if (dynamic) {
477
+ staticParameters.push(
478
+ Hex.fromNumber(staticSize + dynamicSize, { size: 32 }),
479
+ )
480
+ dynamicParameters.push(encoded)
481
+ dynamicSize += Hex.size(encoded)
482
+ } else {
483
+ staticParameters.push(encoded)
484
+ }
485
+ }
486
+
487
+ // 3. Concatenate static and dynamic parts.
488
+ return Hex.concat(...staticParameters, ...dynamicParameters)
489
+ }
490
+
491
+ /** @internal */
492
+ export declare namespace encode {
493
+ type ErrorType =
494
+ | Hex.concat.ErrorType
495
+ | Hex.fromNumber.ErrorType
496
+ | Hex.size.ErrorType
497
+ | Errors.GlobalErrorType
498
+ }
499
+
500
+ /** @internal */
501
+ export function encodeAddress(value: Hex.Hex): PreparedParameter {
502
+ Address.assert(value, { strict: false })
503
+ return {
504
+ dynamic: false,
505
+ encoded: Hex.padLeft(value.toLowerCase() as Hex.Hex),
506
+ }
507
+ }
508
+
509
+ /** @internal */
510
+ export declare namespace encodeAddress {
511
+ type ErrorType =
512
+ | Address.assert.ErrorType
513
+ | Hex.padLeft.ErrorType
514
+ | Errors.GlobalErrorType
515
+ }
516
+
517
+ /** @internal */
518
+ export function encodeArray<const parameter extends AbiParameters.Parameter>(
519
+ value: ParameterToPrimitiveType<parameter>,
520
+ {
521
+ length,
522
+ parameter,
523
+ }: {
524
+ length: number | null
525
+ parameter: parameter
526
+ },
527
+ ): PreparedParameter {
528
+ const dynamic = length === null
529
+
530
+ if (!Array.isArray(value)) throw new AbiParameters.InvalidArrayError(value)
531
+ if (!dynamic && value.length !== length)
532
+ throw new AbiParameters.ArrayLengthMismatchError({
533
+ expectedLength: length!,
534
+ givenLength: value.length,
535
+ type: `${parameter.type}[${length}]`,
536
+ })
537
+
538
+ let dynamicChild = false
539
+ const preparedParameters: PreparedParameter[] = []
540
+ for (let i = 0; i < value.length; i++) {
541
+ const preparedParam = prepareParameter({ parameter, value: value[i] })
542
+ if (preparedParam.dynamic) dynamicChild = true
543
+ preparedParameters.push(preparedParam)
544
+ }
545
+
546
+ if (dynamic || dynamicChild) {
547
+ const data = encode(preparedParameters)
548
+ if (dynamic) {
549
+ const length = Hex.fromNumber(preparedParameters.length, { size: 32 })
550
+ return {
551
+ dynamic: true,
552
+ encoded:
553
+ preparedParameters.length > 0 ? Hex.concat(length, data) : length,
554
+ }
555
+ }
556
+ if (dynamicChild) return { dynamic: true, encoded: data }
557
+ }
558
+ return {
559
+ dynamic: false,
560
+ encoded: Hex.concat(...preparedParameters.map(({ encoded }) => encoded)),
561
+ }
562
+ }
563
+
564
+ /** @internal */
565
+ export declare namespace encodeArray {
566
+ type ErrorType =
567
+ | AbiParameters.InvalidArrayError
568
+ | AbiParameters.ArrayLengthMismatchError
569
+ | Hex.concat.ErrorType
570
+ | Hex.fromNumber.ErrorType
571
+ | Errors.GlobalErrorType
572
+ }
573
+
574
+ /** @internal */
575
+ export function encodeBytes(
576
+ value: Hex.Hex,
577
+ { type }: { type: string },
578
+ ): PreparedParameter {
579
+ const [, parametersize] = type.split('bytes')
580
+ const bytesSize = Hex.size(value)
581
+ if (!parametersize) {
582
+ let value_ = value
583
+ // If the size is not divisible by 32 bytes, pad the end
584
+ // with empty bytes to the ceiling 32 bytes.
585
+ if (bytesSize % 32 !== 0)
586
+ value_ = Hex.padRight(value_, Math.ceil((value.length - 2) / 2 / 32) * 32)
587
+ return {
588
+ dynamic: true,
589
+ encoded: Hex.concat(
590
+ Hex.padLeft(Hex.fromNumber(bytesSize, { size: 32 })),
591
+ value_,
592
+ ),
593
+ }
594
+ }
595
+ if (bytesSize !== Number.parseInt(parametersize))
596
+ throw new AbiParameters.BytesSizeMismatchError({
597
+ expectedSize: Number.parseInt(parametersize),
598
+ value,
599
+ })
600
+ return { dynamic: false, encoded: Hex.padRight(value) }
601
+ }
602
+
603
+ /** @internal */
604
+ export declare namespace encodeBytes {
605
+ type ErrorType =
606
+ | Hex.padLeft.ErrorType
607
+ | Hex.padRight.ErrorType
608
+ | Hex.fromNumber.ErrorType
609
+ | Hex.slice.ErrorType
610
+ | Errors.GlobalErrorType
611
+ }
612
+
613
+ /** @internal */
614
+ export function encodeBoolean(value: boolean): PreparedParameter {
615
+ if (typeof value !== 'boolean')
616
+ throw new Errors.BaseError(
617
+ `Invalid boolean value: "${value}" (type: ${typeof value}). Expected: \`true\` or \`false\`.`,
618
+ )
619
+ return { dynamic: false, encoded: Hex.padLeft(Hex.fromBoolean(value)) }
620
+ }
621
+
622
+ /** @internal */
623
+ export declare namespace encodeBoolean {
624
+ type ErrorType =
625
+ | Hex.padLeft.ErrorType
626
+ | Hex.fromBoolean.ErrorType
627
+ | Errors.GlobalErrorType
628
+ }
629
+
630
+ /** @internal */
631
+ export function encodeNumber(
632
+ value: number,
633
+ { signed }: { signed: boolean },
634
+ ): PreparedParameter {
635
+ return {
636
+ dynamic: false,
637
+ encoded: Hex.fromNumber(value, {
638
+ size: 32,
639
+ signed,
640
+ }),
641
+ }
642
+ }
643
+
644
+ /** @internal */
645
+ export declare namespace encodeNumber {
646
+ type ErrorType = Hex.fromNumber.ErrorType | Errors.GlobalErrorType
647
+ }
648
+
649
+ /** @internal */
650
+ export function encodeString(value: string): PreparedParameter {
651
+ const hexValue = Hex.fromString(value)
652
+ const partsLength = Math.ceil(Hex.size(hexValue) / 32)
653
+ const parts: Hex.Hex[] = []
654
+ for (let i = 0; i < partsLength; i++) {
655
+ parts.push(Hex.padRight(Hex.slice(hexValue, i * 32, (i + 1) * 32)))
656
+ }
657
+ return {
658
+ dynamic: true,
659
+ encoded: Hex.concat(
660
+ Hex.padRight(Hex.fromNumber(Hex.size(hexValue), { size: 32 })),
661
+ ...parts,
662
+ ),
663
+ }
664
+ }
665
+
666
+ /** @internal */
667
+ export declare namespace encodeString {
668
+ type ErrorType =
669
+ | Hex.fromNumber.ErrorType
670
+ | Hex.padRight.ErrorType
671
+ | Hex.slice.ErrorType
672
+ | Hex.size.ErrorType
673
+ | Errors.GlobalErrorType
674
+ }
675
+
676
+ /** @internal */
677
+ export function encodeTuple<
678
+ const parameter extends AbiParameters.Parameter & {
679
+ components: readonly AbiParameters.Parameter[]
680
+ },
681
+ >(
682
+ value: ParameterToPrimitiveType<parameter>,
683
+ { parameter }: { parameter: parameter },
684
+ ): PreparedParameter {
685
+ let dynamic = false
686
+ const preparedParameters: PreparedParameter[] = []
687
+ for (let i = 0; i < parameter.components.length; i++) {
688
+ const param_ = parameter.components[i]!
689
+ const index = Array.isArray(value) ? i : param_.name
690
+ const preparedParam = prepareParameter({
691
+ parameter: param_,
692
+ value: (value as any)[index!] as readonly unknown[],
693
+ })
694
+ preparedParameters.push(preparedParam)
695
+ if (preparedParam.dynamic) dynamic = true
696
+ }
697
+ return {
698
+ dynamic,
699
+ encoded: dynamic
700
+ ? encode(preparedParameters)
701
+ : Hex.concat(...preparedParameters.map(({ encoded }) => encoded)),
702
+ }
703
+ }
704
+
705
+ /** @internal */
706
+ export declare namespace encodeTuple {
707
+ type ErrorType = Hex.concat.ErrorType | Errors.GlobalErrorType
708
+ }
709
+
710
+ /** @internal */
711
+ export function getArrayComponents(
712
+ type: string,
713
+ ): [length: number | null, innerType: string] | undefined {
714
+ const matches = type.match(/^(.*)\[(\d+)?\]$/)
715
+ return matches
716
+ ? // Return `null` if the array is dynamic.
717
+ [matches[2]! ? Number(matches[2]!) : null, matches[1]!]
718
+ : undefined
719
+ }
720
+
721
+ /** @internal */
722
+ export function hasDynamicChild(param: AbiParameters.Parameter) {
723
+ const { type } = param
724
+ if (type === 'string') return true
725
+ if (type === 'bytes') return true
726
+ if (type.endsWith('[]')) return true
727
+
728
+ if (type === 'tuple') return (param as any).components?.some(hasDynamicChild)
729
+
730
+ const arrayComponents = getArrayComponents(param.type)
731
+ if (
732
+ arrayComponents &&
733
+ hasDynamicChild({
734
+ ...param,
735
+ type: arrayComponents[1],
736
+ } as AbiParameters.Parameter)
737
+ )
738
+ return true
739
+
740
+ return false
741
+ }